rt-4.4.4/000755 000765 000024 00000000000 13437512113 013016 5ustar00sunnavystaff000000 000000 rt-4.4.4/devel/000755 000765 000024 00000000000 13437510132 014114 5ustar00sunnavystaff000000 000000 rt-4.4.4/install-sh000755 000765 000024 00000032464 13437510132 015032 0ustar00sunnavystaff000000 000000 #!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: rt-4.4.4/configure.ac000755 000765 000024 00000043121 13437510132 015307 0ustar00sunnavystaff000000 000000 autoconf; exec ./configure $@ dnl dnl Process this file with autoconf to produce a configure script dnl dnl Embed in generated ./configure script the following CVS info: AC_REVISION($Revision$)dnl dnl Setup autoconf AC_PREREQ([2.53]) AC_INIT(RT, m4_esyscmd([( git describe --tags || cat ./.tag 2> /dev/null || echo "rt-3.9.EXPORTED" )| tr -d "\n"]), [rt-bugs@bestpractical.com]) AC_CONFIG_SRCDIR([lib/RT.pm]) dnl Save our incant early since $@ gets overwritten by some macros. dnl ${ac_configure_args} is available later, but it's quoted differently dnl and undocumented. See http://www.spinics.net/lists/ac/msg10022.html. AC_SUBST(CONFIGURE_INCANT, "$0 $@") dnl Extract RT version number components AC_SUBST([rt_version_major], m4_bregexp(AC_PACKAGE_VERSION,[^rt-\(\w+\)\.\(\w+\)\.\(.+\)$],[\1])) AC_SUBST([rt_version_minor], m4_bregexp(AC_PACKAGE_VERSION,[^rt-\(\w+\)\.\(\w+\)\.\(.+\)$],[\2])) AC_SUBST([rt_version_patch], m4_bregexp(AC_PACKAGE_VERSION,[^rt-\(\w+\)\.\(\w+\)\.\(.+\)$],[\3])) test "x$rt_version_major" = 'x' && rt_version_major=0 test "x$rt_version_minor" = 'x' && rt_version_minor=0 test "x$rt_version_patch" = 'x' && rt_version_patch=0 dnl Check for programs AC_PROG_INSTALL AC_ARG_VAR([PERL],[Perl interpreter command]) AC_PATH_PROG([PERL], [perl], [not found]) if test "$PERL" = 'not found'; then AC_MSG_ERROR([cannot use $PACKAGE_NAME without perl]) fi dnl BSD find uses -perm +xxxx, GNU find has deprecated this syntax in favour of dnl -perm /xxx. AC_MSG_CHECKING([checking version of find]) AS_IF([find --version 2>&1 | grep 'GNU'], [ FINDPERM="/" AC_MSG_RESULT([configuring for GNU find]) ], [ FINDPERM="+" AC_MSG_RESULT([configuring for BSD find]) ]) AC_SUBST([FINDPERM]) dnl WEB_HANDLER AC_ARG_WITH(web-handler, AC_HELP_STRING([--with-web-handler=LIST], [comma separated list of web-handlers RT will be able to use. Default is fastcgi. Valid values are modperl1, modperl2, fastcgi and standalone. To successfully run RT you need only one. ]), WEB_HANDLER=$withval, WEB_HANDLER=fastcgi) my_web_handler_test=$($PERL -e 'print "ok" unless grep $_ !~ /^(modperl1|modperl2|fastcgi|standalone)$/i, grep defined && length, split /\s*,\s*/, $ARGV@<:@0@:>@' $WEB_HANDLER) if test "$my_web_handler_test" != "ok"; then AC_MSG_ERROR([Only modperl1, modperl2, fastcgi and standalone are valid web-handlers]) fi AC_SUBST(WEB_HANDLER) dnl Defaults paths for installation AC_PREFIX_DEFAULT([/opt/rt4]) RT_ENABLE_LAYOUT # ACRT_USER_EXISTS( users, variable, default ) # - users is a list of users [www apache www-docs] # from highest to lowest priority to high priority (i.e. first match) # - variable is what you set with the result # AC_DEFUN([ACRT_USER_GUESS], [ $2=$3 for x in $1; do AC_MSG_CHECKING([if user $x exists]) AS_IF([ $PERL -e"exit( defined getpwnam('$x') ? 0 : 1)" ], [ AC_MSG_RESULT([found]); $2=$x ; break], [ AC_MSG_RESULT([not found]) ]) done ]) AC_DEFUN([ACRT_GROUP_GUESS], [ $2=$3 for x in $1; do AC_MSG_CHECKING([if group $x exists]) AS_IF([ $PERL -e"exit( defined getgrnam('$x') ? 0 : 1)" ], [ AC_MSG_RESULT([found]); $2=$x ; break], [ AC_MSG_RESULT([not found]) ]) done ]) dnl BIN_OWNER AC_ARG_WITH(bin-owner, AC_HELP_STRING([--with-bin-owner=OWNER], [user that will own RT binaries (default root)]), BIN_OWNER=$withval, BIN_OWNER=root) AC_SUBST(BIN_OWNER) dnl LIBS_OWNER AC_ARG_WITH(libs-owner, AC_HELP_STRING([--with-libs-owner=OWNER], [user that will own RT libraries (default root)]), LIBS_OWNER=$withval, LIBS_OWNER=root) AC_SUBST(LIBS_OWNER) dnl LIBS_GROUP AC_ARG_WITH(libs-group, AC_HELP_STRING([--with-libs-group=GROUP], [group that will own RT binaries (default bin)]), LIBS_GROUP=$withval, LIBS_GROUP=bin) AC_SUBST(LIBS_GROUP) dnl DB_TYPE AC_ARG_WITH(db-type, AC_HELP_STRING([--with-db-type=TYPE], [sort of database RT will use (default: mysql) (mysql, Pg, Oracle and SQLite are valid)]), DB_TYPE=$withval, DB_TYPE=mysql) if test "$DB_TYPE" != 'mysql' -a "$DB_TYPE" != 'Pg' -a "$DB_TYPE" != 'SQLite' -a "$DB_TYPE" != 'Oracle' ; then AC_MSG_ERROR([Only Oracle, Pg, mysql and SQLite are valid db types]) fi AC_SUBST(DB_TYPE) dnl DATABASE_ENV_PREF if test "$DB_TYPE" = 'Oracle'; then test "x$ORACLE_HOME" = 'x' && AC_MSG_ERROR([Please declare the ORACLE_HOME environment variable]) DATABASE_ENV_PREF="\$ENV{'ORACLE_HOME'} = '$ORACLE_HOME';" fi AC_SUBST(DATABASE_ENV_PREF) dnl DB_HOST AC_ARG_WITH(db-host, AC_HELP_STRING([--with-db-host=HOSTNAME], [FQDN of database server (default: localhost)]), DB_HOST=$withval, DB_HOST=localhost) AC_SUBST(DB_HOST) dnl DB_PORT AC_ARG_WITH(db-port, AC_HELP_STRING([--with-db-port=PORT], [port on which the database listens on]), DB_PORT=$withval, DB_PORT=) AC_SUBST(DB_PORT) dnl DB_RT_HOST AC_ARG_WITH(db-rt-host, AC_HELP_STRING([--with-db-rt-host=HOSTNAME], [FQDN of RT server which talks to the database server (default: localhost)]), DB_RT_HOST=$withval, DB_RT_HOST=localhost) AC_SUBST(DB_RT_HOST) dnl DB_DATABASE_ADMIN if test "$DB_TYPE" = "Pg" ; then DB_DBA="postgres" else DB_DBA="root" fi AC_ARG_WITH(db-dba, AC_HELP_STRING([--with-db-dba=DBA], [name of database administrator (default: root or postgres)]), DB_DBA=$withval, DB_DBA="$DB_DBA") AC_SUBST(DB_DBA) dnl DB_DATABASE AC_ARG_WITH(db-database, AC_HELP_STRING([--with-db-database=DBNAME], [name of the database to use (default: rt4)]), DB_DATABASE=$withval, DB_DATABASE=rt4) AC_SUBST(DB_DATABASE) dnl DB_RT_USER AC_ARG_WITH(db-rt-user, AC_HELP_STRING([--with-db-rt-user=DBUSER], [name of database user (default: rt_user)]), DB_RT_USER=$withval, DB_RT_USER=rt_user) AC_SUBST(DB_RT_USER) dnl DB_RT_PASS AC_ARG_WITH(db-rt-pass, AC_HELP_STRING([--with-db-rt-pass=PASSWORD], [password for database user (default: rt_pass)]), DB_RT_PASS=$withval, DB_RT_PASS=rt_pass) AC_SUBST(DB_RT_PASS) dnl WEB_USER AC_ARG_WITH(web-user, AC_HELP_STRING([--with-web-user=USER], [user the web server runs as (default: www)]), WEB_USER=$withval, ACRT_USER_GUESS([www www-data apache httpd nobody],[WEB_USER],[www]) ) AC_SUBST(WEB_USER) dnl WEB_GROUP AC_ARG_WITH(web-group, AC_HELP_STRING([--with-web-group=GROUP], [group the web server runs as (default: www)]), WEB_GROUP=$withval, ACRT_GROUP_GUESS([www www-data apache httpd nogroup nobody],[WEB_GROUP], [www])) AC_SUBST(WEB_GROUP) dnl RTGROUP AC_ARG_WITH(rt-group, AC_HELP_STRING([--with-rt-group=GROUP], [group to own all files (default: rt)]), RTGROUP=$withval, ACRT_GROUP_GUESS([rt3 rt $WEB_GROUP],[RTGROUP], [rt])) AC_SUBST(RTGROUP) dnl INSTALL AS ME my_group=$($PERL -MPOSIX=getgid -le 'print scalar getgrgid getgid') my_user=${USER:-$LOGNAME} AC_ARG_WITH(my-user-group, AC_HELP_STRING([--with-my-user-group], [set all users and groups to current user/group]), RTGROUP=$my_group BIN_OWNER=$my_user LIBS_OWNER=$my_user LIBS_GROUP=$my_group WEB_USER=$my_user WEB_GROUP=$my_group) # Test for valid database names AC_MSG_CHECKING([if database name is set]) AS_IF([ echo $DB_DATABASE | $PERL -e 'exit(1) unless <> =~ /\S/' ], [ AC_MSG_RESULT([yes]) ], [ AC_MSG_ERROR([no. database name is not set]) ] ) dnl Dependencies for testing and developing RT AC_ARG_WITH(developer,[],RT_DEVELOPER=$withval,RT_DEVELOPER="0") AC_ARG_ENABLE(developer, AC_HELP_STRING([--enable-developer], [Add dependencies needed for testing and developing RT]), RT_DEVELOPER=$enableval, RT_DEVELOPER=$RT_DEVELOPER) if test "$RT_DEVELOPER" = yes; then RT_DEVELOPER="1" else RT_DEVELOPER="0" fi AC_SUBST(RT_DEVELOPER) dnl RT's GraphViz dependency charts AC_CHECK_PROG([RT_GRAPHVIZ], [dot], "yes", "no") AC_ARG_WITH(graphviz,[],RT_GRAPHVIZ=$withval) AC_ARG_ENABLE(graphviz, AC_HELP_STRING([--enable-graphviz], [Turns on support for RT's GraphViz dependency charts]), RT_GRAPHVIZ=$enableval) if test "$RT_GRAPHVIZ" = yes; then RT_GRAPHVIZ="1" else RT_GRAPHVIZ="0" fi AC_SUBST(RT_GRAPHVIZ) dnl RT's GD pie and bar charts AC_CHECK_PROG([RT_GD], [gdlib-config], "yes", "no") AC_ARG_WITH(gd,[],RT_GD=$withval) AC_ARG_ENABLE(gd, AC_HELP_STRING([--enable-gd], [Turns on support for RT's GD pie and bar charts]), RT_GD=$enableval) if test "$RT_GD" = yes; then RT_GD="1" else RT_GD="0" fi AC_SUBST(RT_GD) dnl RT's GPG support AC_CHECK_PROG([RT_GPG_DEPS], [gpg], "yes", "no") if test "$RT_GPG_DEPS" = yes; then RT_GPG_DEPS="1" else RT_GPG_DEPS="0" fi AC_ARG_ENABLE(gpg, AC_HELP_STRING([--enable-gpg], [Turns on GNU Privacy Guard (GPG) support]), RT_GPG=$enableval) if test "$RT_GPG" = yes; then RT_GPG="1" RT_GPG_DEPS="1" else if test "$RT_GPG" = no; then RT_GPG="0" RT_GPG_DEPS="0" else RT_GPG="0" fi fi AC_SUBST(RT_GPG_DEPS) AC_SUBST(RT_GPG) dnl RT's SMIME support AC_CHECK_PROG([RT_SMIME_DEPS], [openssl], "yes", "no") if test "$RT_SMIME_DEPS" = yes; then RT_SMIME_DEPS="1" else RT_SMIME_DEPS="0" fi AC_ARG_ENABLE(smime, AC_HELP_STRING([--enable-smime], [Turns on Secure MIME (SMIME) support]), RT_SMIME=$enableval) if test "$RT_SMIME" = yes; then RT_SMIME="1" RT_SMIME_DEPS="1" else if test "$RT_SMIME" = no; then RT_SMIME="0" RT_SMIME_DEPS="0" else RT_SMIME="0" fi fi AC_SUBST(RT_SMIME_DEPS) AC_SUBST(RT_SMIME) dnl Dependencies for external auth AC_ARG_WITH(externalauth,[],RT_EXTERNALAUTH=$withval,RT_EXTERNALAUTH="0") AC_ARG_ENABLE(externalauth, AC_HELP_STRING([--enable-externalauth], [Add dependencies needed for external auth]), RT_EXTERNALAUTH=$enableval, RT_EXTERNALAUTH=$RT_EXTERNALAUTH) if test "$RT_EXTERNALAUTH" = yes; then RT_EXTERNALAUTH="1" else RT_EXTERNALAUTH="0" fi AC_SUBST(RT_EXTERNALAUTH) dnl ExternalStorage AC_ARG_WITH(attachment-store, AC_HELP_STRING([--with-attachment-store=TYPE], [which attachment storage RT will use for attachments (default: database) (database, disk, S3 and Dropbox are valid)]), ATTACHMENT_STORE=$withval, ATTACHMENT_STORE=database) if test "$ATTACHMENT_STORE" != 'database' -a "$ATTACHMENT_STORE" != 'disk' -a "$ATTACHMENT_STORE" != 'S3' -a "$ATTACHMENT_STORE" != 'Dropbox' ; then AC_MSG_ERROR([Only database, disk, S3 and Dropbox are valid db types]) fi AC_SUBST(ATTACHMENT_STORE) dnl This section maps the variable names this script 'natively' generates dnl to their existing names. They should be removed from here as the .in dnl files are changed to use the new names. dnl version numbers AC_SUBST(RT_VERSION_MAJOR, ${rt_version_major}) AC_SUBST(RT_VERSION_MINOR, ${rt_version_minor}) AC_SUBST(RT_VERSION_PATCH, ${rt_version_patch}) dnl layout paths AC_SUBST([RT_PATH], ${exp_prefix}) AC_SUBST([RT_DOC_PATH], ${exp_manualdir}) AC_SUBST([RT_LOCAL_PATH], ${exp_customdir}) AC_SUBST([RT_LIB_PATH], ${exp_libdir}) AC_SUBST([RT_LEXICON_PATH], ${exp_lexdir}) AC_SUBST([RT_STATIC_PATH], ${exp_staticdir}) AC_SUBST([RT_ETC_PATH], ${exp_sysconfdir}) AC_SUBST([CONFIG_FILE_PATH], ${exp_sysconfdir}) AC_SUBST([RT_BIN_PATH], ${exp_bindir}) AC_SUBST([RT_SBIN_PATH], ${exp_sbindir}) AC_SUBST([RT_VAR_PATH], ${exp_localstatedir}) AC_SUBST([RT_MAN_PATH], ${exp_mandir}) AC_SUBST([RT_FONT_PATH], ${exp_fontdir}) AC_SUBST([RT_PLUGIN_PATH], ${exp_plugindir}) AC_SUBST([MASON_DATA_PATH], ${exp_masonstatedir}) AC_SUBST([MASON_SESSION_PATH], ${exp_sessionstatedir}) AC_SUBST([MASON_HTML_PATH], ${exp_htmldir}) AC_SUBST([LOCAL_ETC_PATH], ${exp_custometcdir}) AC_SUBST([MASON_LOCAL_HTML_PATH], ${exp_customhtmldir}) AC_SUBST([LOCAL_LEXICON_PATH], ${exp_customlexdir}) AC_SUBST([LOCAL_STATIC_PATH], ${exp_customstaticdir}) AC_SUBST([LOCAL_LIB_PATH], ${exp_customlibdir}) AC_SUBST([LOCAL_PLUGIN_PATH], ${exp_customplugindir}) AC_SUBST([RT_LOG_PATH], ${exp_logfiledir}) if test ${exp_sysconfdir} = "etc" -o ${exp_sysconfdir} = "etc/rt"; then AC_SUBST([RT_PATH_R], ${exp_prefix}) AC_SUBST([RT_DOC_PATH_R], ${exp_prefix}/${exp_manualdir}) AC_SUBST([RT_LOCAL_PATH_R], ${exp_prefix}/${exp_customdir}) AC_SUBST([RT_LIB_PATH_R], ${exp_prefix}/${exp_libdir}) AC_SUBST([RT_ETC_PATH_R], ${exp_prefix}/${exp_sysconfdir}) AC_SUBST([CONFIG_FILE_PATH_R], ${exp_prefix}/${exp_sysconfdir}) AC_SUBST([RT_BIN_PATH_R], ${exp_prefix}/${exp_bindir}) AC_SUBST([RT_SBIN_PATH_R], ${exp_prefix}/${exp_sbindir}) AC_SUBST([RT_VAR_PATH_R], ${exp_prefix}/${exp_localstatedir}) AC_SUBST([RT_MAN_PATH_R], ${exp_prefix}/${exp_mandir}) AC_SUBST([RT_FONT_PATH_R], ${exp_prefix}/${exp_fontdir}) AC_SUBST([RT_LEXICON_PATH_R], ${exp_prefix}/${exp_lexdir}) AC_SUBST([RT_STATIC_PATH_R], ${exp_prefix}/${exp_staticdir}) AC_SUBST([RT_PLUGIN_PATH_R], ${exp_prefix}/${exp_plugindir}) AC_SUBST([MASON_DATA_PATH_R], ${exp_prefix}/${exp_masonstatedir}) AC_SUBST([MASON_SESSION_PATH_R], ${exp_prefix}/${exp_sessionstatedir}) AC_SUBST([MASON_HTML_PATH_R], ${exp_prefix}/${exp_htmldir}) AC_SUBST([LOCAL_ETC_PATH_R], ${exp_prefix}/${exp_custometcdir}) AC_SUBST([MASON_LOCAL_HTML_PATH_R], ${exp_prefix}/${exp_customhtmldir}) AC_SUBST([LOCAL_LEXICON_PATH_R], ${exp_prefix}/${exp_customlexdir}) AC_SUBST([LOCAL_STATIC_PATH_R], ${exp_prefix}/${exp_customstaticdir}) AC_SUBST([LOCAL_LIB_PATH_R], ${exp_prefix}/${exp_customlibdir}) AC_SUBST([LOCAL_PLUGIN_PATH_R], ${exp_prefix}/${exp_customplugindir}) AC_SUBST([RT_LOG_PATH_R], ${exp_prefix}/${exp_logfiledir}) else AC_SUBST([RT_PATH_R], ${exp_prefix}) AC_SUBST([RT_DOC_PATH_R], ${exp_manualdir}) AC_SUBST([RT_LOCAL_PATH_R], ${exp_customdir}) AC_SUBST([RT_LIB_PATH_R], ${exp_libdir}) AC_SUBST([RT_LEXICON_PATH_R], ${exp_lexdir}) AC_SUBST([RT_STATIC_PATH_R], ${exp_staticdir}) AC_SUBST([RT_ETC_PATH_R], ${exp_sysconfdir}) AC_SUBST([RT_PLUGIN_PATH_R], ${exp_plugindir}) AC_SUBST([CONFIG_FILE_PATH_R], ${exp_sysconfdir}) AC_SUBST([RT_BIN_PATH_R], ${exp_bindir}) AC_SUBST([RT_SBIN_PATH_R], ${exp_sbindir}) AC_SUBST([RT_VAR_PATH_R], ${exp_localstatedir}) AC_SUBST([RT_MAN_PATH_R], ${exp_mandir}) AC_SUBST([RT_FONT_PATH_R], ${exp_fontdir}) AC_SUBST([MASON_DATA_PATH_R], ${exp_masonstatedir}) AC_SUBST([MASON_SESSION_PATH_R], ${exp_sessionstatedir}) AC_SUBST([MASON_HTML_PATH_R], ${exp_htmldir}) AC_SUBST([LOCAL_ETC_PATH_R], ${exp_custometcdir}) AC_SUBST([MASON_LOCAL_HTML_PATH_R], ${exp_customhtmldir}) AC_SUBST([LOCAL_LEXICON_PATH_R], ${exp_customlexdir}) AC_SUBST([LOCAL_STATIC_PATH_R], ${exp_customstaticdir}) AC_SUBST([LOCAL_PLUGIN_PATH_R], ${exp_customplugindir}) AC_SUBST([LOCAL_LIB_PATH_R], ${exp_customlibdir}) AC_SUBST([RT_LOG_PATH_R], ${exp_logfiledir}) fi dnl Configure the output files, and generate them. dnl Binaries that should be +x AC_CONFIG_FILES([ etc/upgrade/3.8-ical-extension etc/upgrade/4.0-customfield-checkbox-extension etc/upgrade/generate-rtaddressregexp etc/upgrade/reset-sequences etc/upgrade/sanity-check-stylesheets etc/upgrade/shrink-cgm-table etc/upgrade/shrink-transactions-table etc/upgrade/switch-templates-to etc/upgrade/time-worked-history etc/upgrade/upgrade-articles etc/upgrade/upgrade-assets etc/upgrade/vulnerable-passwords etc/upgrade/upgrade-sla sbin/rt-ldapimport sbin/rt-attributes-viewer sbin/rt-preferences-viewer sbin/rt-session-viewer sbin/rt-dump-metadata sbin/rt-setup-database sbin/rt-test-dependencies sbin/rt-email-digest sbin/rt-email-dashboards sbin/rt-externalize-attachments sbin/rt-clean-sessions sbin/rt-shredder sbin/rt-validator sbin/rt-validate-aliases sbin/rt-email-group-admin sbin/rt-search-attributes sbin/rt-server sbin/rt-server.fcgi sbin/standalone_httpd sbin/rt-setup-fulltext-index sbin/rt-fulltext-indexer sbin/rt-serializer sbin/rt-importer sbin/rt-passwd sbin/rt-munge-attachments bin/rt-crontool bin/rt-mailgate bin/rt], [chmod ug+x $ac_file] ) dnl All other generated files AC_CONFIG_FILES([ Makefile etc/RT_Config.pm lib/RT/Generated.pm t/data/configs/apache2.2+mod_perl.conf t/data/configs/apache2.2+fastcgi.conf t/data/configs/apache2.4+mod_perl.conf t/data/configs/apache2.4+fastcgi.conf], ) AC_OUTPUT rt-4.4.4/bin/000755 000765 000024 00000000000 13437512113 013566 5ustar00sunnavystaff000000 000000 rt-4.4.4/configure000755 000765 000024 00000367361 13437512111 014743 0ustar00sunnavystaff000000 000000 #! /bin/sh # From configure.ac Revision. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for RT rt-4.4.4. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: rt-bugs@bestpractical.com about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='RT' PACKAGE_TARNAME='rt' PACKAGE_VERSION='rt-4.4.4' PACKAGE_STRING='RT rt-4.4.4' PACKAGE_BUGREPORT='rt-bugs@bestpractical.com' PACKAGE_URL='' ac_unique_file="lib/RT.pm" ac_default_prefix=/opt/rt4 ac_subst_vars='LTLIBOBJS LIBOBJS RT_LOG_PATH_R LOCAL_PLUGIN_PATH_R LOCAL_LIB_PATH_R LOCAL_STATIC_PATH_R LOCAL_LEXICON_PATH_R MASON_LOCAL_HTML_PATH_R LOCAL_ETC_PATH_R MASON_HTML_PATH_R MASON_SESSION_PATH_R MASON_DATA_PATH_R RT_PLUGIN_PATH_R RT_STATIC_PATH_R RT_LEXICON_PATH_R RT_FONT_PATH_R RT_MAN_PATH_R RT_VAR_PATH_R RT_SBIN_PATH_R RT_BIN_PATH_R CONFIG_FILE_PATH_R RT_ETC_PATH_R RT_LIB_PATH_R RT_LOCAL_PATH_R RT_DOC_PATH_R RT_PATH_R RT_LOG_PATH LOCAL_PLUGIN_PATH LOCAL_LIB_PATH LOCAL_STATIC_PATH LOCAL_LEXICON_PATH MASON_LOCAL_HTML_PATH LOCAL_ETC_PATH MASON_HTML_PATH MASON_SESSION_PATH MASON_DATA_PATH RT_PLUGIN_PATH RT_FONT_PATH RT_MAN_PATH RT_VAR_PATH RT_SBIN_PATH RT_BIN_PATH CONFIG_FILE_PATH RT_ETC_PATH RT_STATIC_PATH RT_LEXICON_PATH RT_LIB_PATH RT_LOCAL_PATH RT_DOC_PATH RT_PATH RT_VERSION_PATCH RT_VERSION_MINOR RT_VERSION_MAJOR ATTACHMENT_STORE RT_EXTERNALAUTH RT_SMIME RT_SMIME_DEPS RT_GPG RT_GPG_DEPS RT_GD RT_GRAPHVIZ RT_DEVELOPER RTGROUP WEB_GROUP WEB_USER DB_RT_PASS DB_RT_USER DB_DATABASE DB_DBA DB_RT_HOST DB_PORT DB_HOST DATABASE_ENV_PREF DB_TYPE LIBS_GROUP LIBS_OWNER BIN_OWNER COMMENT_INPLACE_LAYOUT rt_layout_name exp_customlibdir customlibdir exp_customstaticdir customstaticdir exp_customlexdir customlexdir exp_customhtmldir customhtmldir exp_customplugindir customplugindir exp_custometcdir custometcdir exp_customdir customdir exp_sessionstatedir sessionstatedir exp_masonstatedir masonstatedir exp_logfiledir logfiledir exp_localstatedir exp_plugindir plugindir exp_manualdir manualdir exp_fontdir fontdir exp_htmldir exp_datadir exp_staticdir staticdir exp_lexdir lexdir exp_libdir exp_mandir exp_sysconfdir exp_sbindir exp_bindir exp_exec_prefix exp_prefix WEB_HANDLER FINDPERM PERL INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM rt_version_patch rt_version_minor rt_version_major CONFIGURE_INCANT target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_web_handler enable_layout with_bin_owner with_libs_owner with_libs_group with_db_type with_db_host with_db_port with_db_rt_host with_db_dba with_db_database with_db_rt_user with_db_rt_pass with_web_user with_web_group with_rt_group with_my_user_group with_developer enable_developer with_graphviz enable_graphviz with_gd enable_gd enable_gpg enable_smime with_externalauth enable_externalauth with_attachment_store ' ac_precious_vars='build_alias host_alias target_alias PERL' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures RT rt-4.4.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/rt] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of RT rt-4.4.4:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-layout=LAYOUT Use a specific directory layout (Default: relative) --enable-developer Add dependencies needed for testing and developing RT --enable-graphviz Turns on support for RT's GraphViz dependency charts --enable-gd Turns on support for RT's GD pie and bar charts --enable-gpg Turns on GNU Privacy Guard (GPG) support --enable-smime Turns on Secure MIME (SMIME) support --enable-externalauth Add dependencies needed for external auth Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-web-handler=LIST comma separated list of web-handlers RT will be able to use. Default is fastcgi. Valid values are modperl1, modperl2, fastcgi and standalone. To successfully run RT you need only one. --with-bin-owner=OWNER user that will own RT binaries (default root) --with-libs-owner=OWNER user that will own RT libraries (default root) --with-libs-group=GROUP group that will own RT binaries (default bin) --with-db-type=TYPE sort of database RT will use (default: mysql) (mysql, Pg, Oracle and SQLite are valid) --with-db-host=HOSTNAME FQDN of database server (default: localhost) --with-db-port=PORT port on which the database listens on --with-db-rt-host=HOSTNAME FQDN of RT server which talks to the database server (default: localhost) --with-db-dba=DBA name of database administrator (default: root or postgres) --with-db-database=DBNAME name of the database to use (default: rt4) --with-db-rt-user=DBUSER name of database user (default: rt_user) --with-db-rt-pass=PASSWORD password for database user (default: rt_pass) --with-web-user=USER user the web server runs as (default: www) --with-web-group=GROUP group the web server runs as (default: www) --with-rt-group=GROUP group to own all files (default: rt) --with-my-user-group set all users and groups to current user/group --with-attachment-store=TYPE which attachment storage RT will use for attachments (default: database) (database, disk, S3 and Dropbox are valid) Some influential environment variables: PERL Perl interpreter command Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF RT configure rt-4.4.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by RT $as_me rt-4.4.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CONFIGURE_INCANT="$0 $@" rt_version_major=4 rt_version_minor=4 rt_version_patch=4 test "x$rt_version_major" = 'x' && rt_version_major=0 test "x$rt_version_minor" = 'x' && rt_version_minor=0 test "x$rt_version_patch" = 'x' && rt_version_patch=0 ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="not found" ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$PERL" = 'not found'; then as_fn_error $? "cannot use $PACKAGE_NAME without perl" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking checking version of find" >&5 $as_echo_n "checking checking version of find... " >&6; } if find --version 2>&1 | grep 'GNU'; then : FINDPERM="/" { $as_echo "$as_me:${as_lineno-$LINENO}: result: configuring for GNU find" >&5 $as_echo "configuring for GNU find" >&6; } else FINDPERM="+" { $as_echo "$as_me:${as_lineno-$LINENO}: result: configuring for BSD find" >&5 $as_echo "configuring for BSD find" >&6; } fi # Check whether --with-web-handler was given. if test "${with_web_handler+set}" = set; then : withval=$with_web_handler; WEB_HANDLER=$withval else WEB_HANDLER=fastcgi fi my_web_handler_test=$($PERL -e 'print "ok" unless grep $_ !~ /^(modperl1|modperl2|fastcgi|standalone)$/i, grep defined && length, split /\s*,\s*/, $ARGV[0]' $WEB_HANDLER) if test "$my_web_handler_test" != "ok"; then as_fn_error $? "Only modperl1, modperl2, fastcgi and standalone are valid web-handlers" "$LINENO" 5 fi # Check whether --enable-layout was given. if test "${enable_layout+set}" = set; then : enableval=$enable_layout; LAYOUT=$enableval fi if test "x$LAYOUT" = "x"; then LAYOUT="relative" fi if test ! -f $srcdir/config.layout; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Layout file $srcdir/config.layout not found" >&5 $as_echo "$as_me: WARNING: Layout file $srcdir/config.layout not found" >&2;} rt_layout_name=no else pldconf=./config.pld $PERL -0777 -p -e "\$layout = '$LAYOUT';" -e ' s/.*//gims; s/\<\/Layout\>.*//s; s/^#.*$//m; s/^\s+//gim; s/\s+$/\n/gim; s/\+$/\/rt3/gim; # m4 will not let us just use $srcdir/config.layout, we need $1 s/^\s*((?:bin|sbin|libexec|data|sysconf|sharedstate|localstate|lib|include|oldinclude|info|man|html)dir)\s*:\s*(.*)$/$1=$2/gim; s/^\s*(.*?)\s*:\s*(.*)$/\(test "x\$$1" = "xNONE" || test "x\$$1" = "x") && $1=$2/gim; ' < $srcdir/config.layout > $pldconf if test -s $pldconf; then rt_layout_name=$LAYOUT . $pldconf for var in prefix exec_prefix bindir sbindir \ sysconfdir mandir libdir datadir htmldir fontdir\ lexdir staticdir localstatedir logfiledir masonstatedir \ sessionstatedir customdir custometcdir customhtmldir \ customlexdir customstaticdir customplugindir customlibdir manualdir; do eval "val=\"\$$var\"" val=`echo $val | sed -e 's:\(.\)/*$:\1:'` val=`echo $val | sed -e 's:[\$]\([a-z_]*\):$\1:g'` eval "$var='$val'" done else rt_layout_name=no fi #rm $pldconf fi ap_last='' ap_cur='$prefix' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_prefix="${ap_cur}" ap_last='' ap_cur='$exec_prefix' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_exec_prefix="${ap_cur}" ap_last='' ap_cur='$bindir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_bindir="${ap_cur}" ap_last='' ap_cur='$sbindir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_sbindir="${ap_cur}" ap_last='' ap_cur='$sysconfdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_sysconfdir="${ap_cur}" ap_last='' ap_cur='$mandir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_mandir="${ap_cur}" ap_last='' ap_cur='$libdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_libdir="${ap_cur}" ap_last='' ap_cur='$lexdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_lexdir="${ap_cur}" ap_last='' ap_cur='$staticdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_staticdir="${ap_cur}" ap_last='' ap_cur='$datadir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_datadir="${ap_cur}" ap_last='' ap_cur='$htmldir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_htmldir="${ap_cur}" ap_last='' ap_cur='$fontdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_fontdir="${ap_cur}" ap_last='' ap_cur='$manualdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_manualdir="${ap_cur}" ap_last='' ap_cur='$plugindir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_plugindir="${ap_cur}" ap_last='' ap_cur='$localstatedir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_localstatedir="${ap_cur}" ap_last='' ap_cur='$logfiledir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_logfiledir="${ap_cur}" ap_last='' ap_cur='$masonstatedir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_masonstatedir="${ap_cur}" ap_last='' ap_cur='$sessionstatedir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_sessionstatedir="${ap_cur}" ap_last='' ap_cur='$customdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_customdir="${ap_cur}" ap_last='' ap_cur='$custometcdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_custometcdir="${ap_cur}" ap_last='' ap_cur='$customplugindir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_customplugindir="${ap_cur}" ap_last='' ap_cur='$customhtmldir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_customhtmldir="${ap_cur}" ap_last='' ap_cur='$customlexdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_customlexdir="${ap_cur}" ap_last='' ap_cur='$customstaticdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_customstaticdir="${ap_cur}" ap_last='' ap_cur='$customlibdir' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done exp_customlibdir="${ap_cur}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chosen layout" >&5 $as_echo_n "checking for chosen layout... " >&6; } if test "x$rt_layout_name" = "xno"; then if test "x$LAYOUT" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LAYOUT" >&5 $as_echo "$LAYOUT" >&6; } fi as_fn_error $? "a valid layout must be specified (or the default used)" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $rt_layout_name" >&5 $as_echo "$rt_layout_name" >&6; } fi if test "x$rt_layout_name" != "xinplace" ; then COMMENT_INPLACE_LAYOUT="" else COMMENT_INPLACE_LAYOUT=# fi # ACRT_USER_EXISTS( users, variable, default ) # - users is a list of users [www apache www-docs] # from highest to lowest priority to high priority (i.e. first match) # - variable is what you set with the result # # Check whether --with-bin-owner was given. if test "${with_bin_owner+set}" = set; then : withval=$with_bin_owner; BIN_OWNER=$withval else BIN_OWNER=root fi # Check whether --with-libs-owner was given. if test "${with_libs_owner+set}" = set; then : withval=$with_libs_owner; LIBS_OWNER=$withval else LIBS_OWNER=root fi # Check whether --with-libs-group was given. if test "${with_libs_group+set}" = set; then : withval=$with_libs_group; LIBS_GROUP=$withval else LIBS_GROUP=bin fi # Check whether --with-db-type was given. if test "${with_db_type+set}" = set; then : withval=$with_db_type; DB_TYPE=$withval else DB_TYPE=mysql fi if test "$DB_TYPE" != 'mysql' -a "$DB_TYPE" != 'Pg' -a "$DB_TYPE" != 'SQLite' -a "$DB_TYPE" != 'Oracle' ; then as_fn_error $? "Only Oracle, Pg, mysql and SQLite are valid db types" "$LINENO" 5 fi if test "$DB_TYPE" = 'Oracle'; then test "x$ORACLE_HOME" = 'x' && as_fn_error $? "Please declare the ORACLE_HOME environment variable" "$LINENO" 5 DATABASE_ENV_PREF="\$ENV{'ORACLE_HOME'} = '$ORACLE_HOME';" fi # Check whether --with-db-host was given. if test "${with_db_host+set}" = set; then : withval=$with_db_host; DB_HOST=$withval else DB_HOST=localhost fi # Check whether --with-db-port was given. if test "${with_db_port+set}" = set; then : withval=$with_db_port; DB_PORT=$withval else DB_PORT= fi # Check whether --with-db-rt-host was given. if test "${with_db_rt_host+set}" = set; then : withval=$with_db_rt_host; DB_RT_HOST=$withval else DB_RT_HOST=localhost fi if test "$DB_TYPE" = "Pg" ; then DB_DBA="postgres" else DB_DBA="root" fi # Check whether --with-db-dba was given. if test "${with_db_dba+set}" = set; then : withval=$with_db_dba; DB_DBA=$withval else DB_DBA="$DB_DBA" fi # Check whether --with-db-database was given. if test "${with_db_database+set}" = set; then : withval=$with_db_database; DB_DATABASE=$withval else DB_DATABASE=rt4 fi # Check whether --with-db-rt-user was given. if test "${with_db_rt_user+set}" = set; then : withval=$with_db_rt_user; DB_RT_USER=$withval else DB_RT_USER=rt_user fi # Check whether --with-db-rt-pass was given. if test "${with_db_rt_pass+set}" = set; then : withval=$with_db_rt_pass; DB_RT_PASS=$withval else DB_RT_PASS=rt_pass fi # Check whether --with-web-user was given. if test "${with_web_user+set}" = set; then : withval=$with_web_user; WEB_USER=$withval else WEB_USER=www for x in www www-data apache httpd nobody; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking if user $x exists" >&5 $as_echo_n "checking if user $x exists... " >&6; } if $PERL -e"exit( defined getpwnam('$x') ? 0 : 1)" ; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; }; WEB_USER=$x ; break else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } fi done fi # Check whether --with-web-group was given. if test "${with_web_group+set}" = set; then : withval=$with_web_group; WEB_GROUP=$withval else WEB_GROUP=www for x in www www-data apache httpd nogroup nobody; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking if group $x exists" >&5 $as_echo_n "checking if group $x exists... " >&6; } if $PERL -e"exit( defined getgrnam('$x') ? 0 : 1)" ; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; }; WEB_GROUP=$x ; break else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } fi done fi # Check whether --with-rt-group was given. if test "${with_rt_group+set}" = set; then : withval=$with_rt_group; RTGROUP=$withval else RTGROUP=rt for x in rt3 rt $WEB_GROUP; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking if group $x exists" >&5 $as_echo_n "checking if group $x exists... " >&6; } if $PERL -e"exit( defined getgrnam('$x') ? 0 : 1)" ; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; }; RTGROUP=$x ; break else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } fi done fi my_group=$($PERL -MPOSIX=getgid -le 'print scalar getgrgid getgid') my_user=${USER:-$LOGNAME} # Check whether --with-my-user-group was given. if test "${with_my_user_group+set}" = set; then : withval=$with_my_user_group; RTGROUP=$my_group BIN_OWNER=$my_user LIBS_OWNER=$my_user LIBS_GROUP=$my_group WEB_USER=$my_user WEB_GROUP=$my_group fi # Test for valid database names { $as_echo "$as_me:${as_lineno-$LINENO}: checking if database name is set" >&5 $as_echo_n "checking if database name is set... " >&6; } if echo $DB_DATABASE | $PERL -e 'exit(1) unless <> =~ /\S/' ; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "no. database name is not set" "$LINENO" 5 fi # Check whether --with-developer was given. if test "${with_developer+set}" = set; then : withval=$with_developer; RT_DEVELOPER=$withval else RT_DEVELOPER="0" fi # Check whether --enable-developer was given. if test "${enable_developer+set}" = set; then : enableval=$enable_developer; RT_DEVELOPER=$enableval else RT_DEVELOPER=$RT_DEVELOPER fi if test "$RT_DEVELOPER" = yes; then RT_DEVELOPER="1" else RT_DEVELOPER="0" fi # Extract the first word of "dot", so it can be a program name with args. set dummy dot; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RT_GRAPHVIZ+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RT_GRAPHVIZ"; then ac_cv_prog_RT_GRAPHVIZ="$RT_GRAPHVIZ" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RT_GRAPHVIZ=""yes"" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_RT_GRAPHVIZ" && ac_cv_prog_RT_GRAPHVIZ=""no"" fi fi RT_GRAPHVIZ=$ac_cv_prog_RT_GRAPHVIZ if test -n "$RT_GRAPHVIZ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RT_GRAPHVIZ" >&5 $as_echo "$RT_GRAPHVIZ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --with-graphviz was given. if test "${with_graphviz+set}" = set; then : withval=$with_graphviz; RT_GRAPHVIZ=$withval fi # Check whether --enable-graphviz was given. if test "${enable_graphviz+set}" = set; then : enableval=$enable_graphviz; RT_GRAPHVIZ=$enableval fi if test "$RT_GRAPHVIZ" = yes; then RT_GRAPHVIZ="1" else RT_GRAPHVIZ="0" fi # Extract the first word of "gdlib-config", so it can be a program name with args. set dummy gdlib-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RT_GD+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RT_GD"; then ac_cv_prog_RT_GD="$RT_GD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RT_GD=""yes"" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_RT_GD" && ac_cv_prog_RT_GD=""no"" fi fi RT_GD=$ac_cv_prog_RT_GD if test -n "$RT_GD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RT_GD" >&5 $as_echo "$RT_GD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --with-gd was given. if test "${with_gd+set}" = set; then : withval=$with_gd; RT_GD=$withval fi # Check whether --enable-gd was given. if test "${enable_gd+set}" = set; then : enableval=$enable_gd; RT_GD=$enableval fi if test "$RT_GD" = yes; then RT_GD="1" else RT_GD="0" fi # Extract the first word of "gpg", so it can be a program name with args. set dummy gpg; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RT_GPG_DEPS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RT_GPG_DEPS"; then ac_cv_prog_RT_GPG_DEPS="$RT_GPG_DEPS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RT_GPG_DEPS=""yes"" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_RT_GPG_DEPS" && ac_cv_prog_RT_GPG_DEPS=""no"" fi fi RT_GPG_DEPS=$ac_cv_prog_RT_GPG_DEPS if test -n "$RT_GPG_DEPS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RT_GPG_DEPS" >&5 $as_echo "$RT_GPG_DEPS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$RT_GPG_DEPS" = yes; then RT_GPG_DEPS="1" else RT_GPG_DEPS="0" fi # Check whether --enable-gpg was given. if test "${enable_gpg+set}" = set; then : enableval=$enable_gpg; RT_GPG=$enableval fi if test "$RT_GPG" = yes; then RT_GPG="1" RT_GPG_DEPS="1" else if test "$RT_GPG" = no; then RT_GPG="0" RT_GPG_DEPS="0" else RT_GPG="0" fi fi # Extract the first word of "openssl", so it can be a program name with args. set dummy openssl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RT_SMIME_DEPS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RT_SMIME_DEPS"; then ac_cv_prog_RT_SMIME_DEPS="$RT_SMIME_DEPS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RT_SMIME_DEPS=""yes"" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_RT_SMIME_DEPS" && ac_cv_prog_RT_SMIME_DEPS=""no"" fi fi RT_SMIME_DEPS=$ac_cv_prog_RT_SMIME_DEPS if test -n "$RT_SMIME_DEPS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RT_SMIME_DEPS" >&5 $as_echo "$RT_SMIME_DEPS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$RT_SMIME_DEPS" = yes; then RT_SMIME_DEPS="1" else RT_SMIME_DEPS="0" fi # Check whether --enable-smime was given. if test "${enable_smime+set}" = set; then : enableval=$enable_smime; RT_SMIME=$enableval fi if test "$RT_SMIME" = yes; then RT_SMIME="1" RT_SMIME_DEPS="1" else if test "$RT_SMIME" = no; then RT_SMIME="0" RT_SMIME_DEPS="0" else RT_SMIME="0" fi fi # Check whether --with-externalauth was given. if test "${with_externalauth+set}" = set; then : withval=$with_externalauth; RT_EXTERNALAUTH=$withval else RT_EXTERNALAUTH="0" fi # Check whether --enable-externalauth was given. if test "${enable_externalauth+set}" = set; then : enableval=$enable_externalauth; RT_EXTERNALAUTH=$enableval else RT_EXTERNALAUTH=$RT_EXTERNALAUTH fi if test "$RT_EXTERNALAUTH" = yes; then RT_EXTERNALAUTH="1" else RT_EXTERNALAUTH="0" fi # Check whether --with-attachment-store was given. if test "${with_attachment_store+set}" = set; then : withval=$with_attachment_store; ATTACHMENT_STORE=$withval else ATTACHMENT_STORE=database fi if test "$ATTACHMENT_STORE" != 'database' -a "$ATTACHMENT_STORE" != 'disk' -a "$ATTACHMENT_STORE" != 'S3' -a "$ATTACHMENT_STORE" != 'Dropbox' ; then as_fn_error $? "Only database, disk, S3 and Dropbox are valid db types" "$LINENO" 5 fi RT_VERSION_MAJOR=${rt_version_major} RT_VERSION_MINOR=${rt_version_minor} RT_VERSION_PATCH=${rt_version_patch} RT_PATH=${exp_prefix} RT_DOC_PATH=${exp_manualdir} RT_LOCAL_PATH=${exp_customdir} RT_LIB_PATH=${exp_libdir} RT_LEXICON_PATH=${exp_lexdir} RT_STATIC_PATH=${exp_staticdir} RT_ETC_PATH=${exp_sysconfdir} CONFIG_FILE_PATH=${exp_sysconfdir} RT_BIN_PATH=${exp_bindir} RT_SBIN_PATH=${exp_sbindir} RT_VAR_PATH=${exp_localstatedir} RT_MAN_PATH=${exp_mandir} RT_FONT_PATH=${exp_fontdir} RT_PLUGIN_PATH=${exp_plugindir} MASON_DATA_PATH=${exp_masonstatedir} MASON_SESSION_PATH=${exp_sessionstatedir} MASON_HTML_PATH=${exp_htmldir} LOCAL_ETC_PATH=${exp_custometcdir} MASON_LOCAL_HTML_PATH=${exp_customhtmldir} LOCAL_LEXICON_PATH=${exp_customlexdir} LOCAL_STATIC_PATH=${exp_customstaticdir} LOCAL_LIB_PATH=${exp_customlibdir} LOCAL_PLUGIN_PATH=${exp_customplugindir} RT_LOG_PATH=${exp_logfiledir} if test ${exp_sysconfdir} = "etc" -o ${exp_sysconfdir} = "etc/rt"; then RT_PATH_R=${exp_prefix} RT_DOC_PATH_R=${exp_prefix}/${exp_manualdir} RT_LOCAL_PATH_R=${exp_prefix}/${exp_customdir} RT_LIB_PATH_R=${exp_prefix}/${exp_libdir} RT_ETC_PATH_R=${exp_prefix}/${exp_sysconfdir} CONFIG_FILE_PATH_R=${exp_prefix}/${exp_sysconfdir} RT_BIN_PATH_R=${exp_prefix}/${exp_bindir} RT_SBIN_PATH_R=${exp_prefix}/${exp_sbindir} RT_VAR_PATH_R=${exp_prefix}/${exp_localstatedir} RT_MAN_PATH_R=${exp_prefix}/${exp_mandir} RT_FONT_PATH_R=${exp_prefix}/${exp_fontdir} RT_LEXICON_PATH_R=${exp_prefix}/${exp_lexdir} RT_STATIC_PATH_R=${exp_prefix}/${exp_staticdir} RT_PLUGIN_PATH_R=${exp_prefix}/${exp_plugindir} MASON_DATA_PATH_R=${exp_prefix}/${exp_masonstatedir} MASON_SESSION_PATH_R=${exp_prefix}/${exp_sessionstatedir} MASON_HTML_PATH_R=${exp_prefix}/${exp_htmldir} LOCAL_ETC_PATH_R=${exp_prefix}/${exp_custometcdir} MASON_LOCAL_HTML_PATH_R=${exp_prefix}/${exp_customhtmldir} LOCAL_LEXICON_PATH_R=${exp_prefix}/${exp_customlexdir} LOCAL_STATIC_PATH_R=${exp_prefix}/${exp_customstaticdir} LOCAL_LIB_PATH_R=${exp_prefix}/${exp_customlibdir} LOCAL_PLUGIN_PATH_R=${exp_prefix}/${exp_customplugindir} RT_LOG_PATH_R=${exp_prefix}/${exp_logfiledir} else RT_PATH_R=${exp_prefix} RT_DOC_PATH_R=${exp_manualdir} RT_LOCAL_PATH_R=${exp_customdir} RT_LIB_PATH_R=${exp_libdir} RT_LEXICON_PATH_R=${exp_lexdir} RT_STATIC_PATH_R=${exp_staticdir} RT_ETC_PATH_R=${exp_sysconfdir} RT_PLUGIN_PATH_R=${exp_plugindir} CONFIG_FILE_PATH_R=${exp_sysconfdir} RT_BIN_PATH_R=${exp_bindir} RT_SBIN_PATH_R=${exp_sbindir} RT_VAR_PATH_R=${exp_localstatedir} RT_MAN_PATH_R=${exp_mandir} RT_FONT_PATH_R=${exp_fontdir} MASON_DATA_PATH_R=${exp_masonstatedir} MASON_SESSION_PATH_R=${exp_sessionstatedir} MASON_HTML_PATH_R=${exp_htmldir} LOCAL_ETC_PATH_R=${exp_custometcdir} MASON_LOCAL_HTML_PATH_R=${exp_customhtmldir} LOCAL_LEXICON_PATH_R=${exp_customlexdir} LOCAL_STATIC_PATH_R=${exp_customstaticdir} LOCAL_PLUGIN_PATH_R=${exp_customplugindir} LOCAL_LIB_PATH_R=${exp_customlibdir} RT_LOG_PATH_R=${exp_logfiledir} fi ac_config_files="$ac_config_files etc/upgrade/3.8-ical-extension etc/upgrade/4.0-customfield-checkbox-extension etc/upgrade/generate-rtaddressregexp etc/upgrade/reset-sequences etc/upgrade/sanity-check-stylesheets etc/upgrade/shrink-cgm-table etc/upgrade/shrink-transactions-table etc/upgrade/switch-templates-to etc/upgrade/time-worked-history etc/upgrade/upgrade-articles etc/upgrade/upgrade-assets etc/upgrade/vulnerable-passwords etc/upgrade/upgrade-sla sbin/rt-ldapimport sbin/rt-attributes-viewer sbin/rt-preferences-viewer sbin/rt-session-viewer sbin/rt-dump-metadata sbin/rt-setup-database sbin/rt-test-dependencies sbin/rt-email-digest sbin/rt-email-dashboards sbin/rt-externalize-attachments sbin/rt-clean-sessions sbin/rt-shredder sbin/rt-validator sbin/rt-validate-aliases sbin/rt-email-group-admin sbin/rt-search-attributes sbin/rt-server sbin/rt-server.fcgi sbin/standalone_httpd sbin/rt-setup-fulltext-index sbin/rt-fulltext-indexer sbin/rt-serializer sbin/rt-importer sbin/rt-passwd sbin/rt-munge-attachments bin/rt-crontool bin/rt-mailgate bin/rt" ac_config_files="$ac_config_files Makefile etc/RT_Config.pm lib/RT/Generated.pm t/data/configs/apache2.2+mod_perl.conf t/data/configs/apache2.2+fastcgi.conf t/data/configs/apache2.4+mod_perl.conf t/data/configs/apache2.4+fastcgi.conf" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by RT $as_me rt-4.4.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ RT config.status rt-4.4.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "etc/upgrade/3.8-ical-extension") CONFIG_FILES="$CONFIG_FILES etc/upgrade/3.8-ical-extension" ;; "etc/upgrade/4.0-customfield-checkbox-extension") CONFIG_FILES="$CONFIG_FILES etc/upgrade/4.0-customfield-checkbox-extension" ;; "etc/upgrade/generate-rtaddressregexp") CONFIG_FILES="$CONFIG_FILES etc/upgrade/generate-rtaddressregexp" ;; "etc/upgrade/reset-sequences") CONFIG_FILES="$CONFIG_FILES etc/upgrade/reset-sequences" ;; "etc/upgrade/sanity-check-stylesheets") CONFIG_FILES="$CONFIG_FILES etc/upgrade/sanity-check-stylesheets" ;; "etc/upgrade/shrink-cgm-table") CONFIG_FILES="$CONFIG_FILES etc/upgrade/shrink-cgm-table" ;; "etc/upgrade/shrink-transactions-table") CONFIG_FILES="$CONFIG_FILES etc/upgrade/shrink-transactions-table" ;; "etc/upgrade/switch-templates-to") CONFIG_FILES="$CONFIG_FILES etc/upgrade/switch-templates-to" ;; "etc/upgrade/time-worked-history") CONFIG_FILES="$CONFIG_FILES etc/upgrade/time-worked-history" ;; "etc/upgrade/upgrade-articles") CONFIG_FILES="$CONFIG_FILES etc/upgrade/upgrade-articles" ;; "etc/upgrade/upgrade-assets") CONFIG_FILES="$CONFIG_FILES etc/upgrade/upgrade-assets" ;; "etc/upgrade/vulnerable-passwords") CONFIG_FILES="$CONFIG_FILES etc/upgrade/vulnerable-passwords" ;; "etc/upgrade/upgrade-sla") CONFIG_FILES="$CONFIG_FILES etc/upgrade/upgrade-sla" ;; "sbin/rt-ldapimport") CONFIG_FILES="$CONFIG_FILES sbin/rt-ldapimport" ;; "sbin/rt-attributes-viewer") CONFIG_FILES="$CONFIG_FILES sbin/rt-attributes-viewer" ;; "sbin/rt-preferences-viewer") CONFIG_FILES="$CONFIG_FILES sbin/rt-preferences-viewer" ;; "sbin/rt-session-viewer") CONFIG_FILES="$CONFIG_FILES sbin/rt-session-viewer" ;; "sbin/rt-dump-metadata") CONFIG_FILES="$CONFIG_FILES sbin/rt-dump-metadata" ;; "sbin/rt-setup-database") CONFIG_FILES="$CONFIG_FILES sbin/rt-setup-database" ;; "sbin/rt-test-dependencies") CONFIG_FILES="$CONFIG_FILES sbin/rt-test-dependencies" ;; "sbin/rt-email-digest") CONFIG_FILES="$CONFIG_FILES sbin/rt-email-digest" ;; "sbin/rt-email-dashboards") CONFIG_FILES="$CONFIG_FILES sbin/rt-email-dashboards" ;; "sbin/rt-externalize-attachments") CONFIG_FILES="$CONFIG_FILES sbin/rt-externalize-attachments" ;; "sbin/rt-clean-sessions") CONFIG_FILES="$CONFIG_FILES sbin/rt-clean-sessions" ;; "sbin/rt-shredder") CONFIG_FILES="$CONFIG_FILES sbin/rt-shredder" ;; "sbin/rt-validator") CONFIG_FILES="$CONFIG_FILES sbin/rt-validator" ;; "sbin/rt-validate-aliases") CONFIG_FILES="$CONFIG_FILES sbin/rt-validate-aliases" ;; "sbin/rt-email-group-admin") CONFIG_FILES="$CONFIG_FILES sbin/rt-email-group-admin" ;; "sbin/rt-search-attributes") CONFIG_FILES="$CONFIG_FILES sbin/rt-search-attributes" ;; "sbin/rt-server") CONFIG_FILES="$CONFIG_FILES sbin/rt-server" ;; "sbin/rt-server.fcgi") CONFIG_FILES="$CONFIG_FILES sbin/rt-server.fcgi" ;; "sbin/standalone_httpd") CONFIG_FILES="$CONFIG_FILES sbin/standalone_httpd" ;; "sbin/rt-setup-fulltext-index") CONFIG_FILES="$CONFIG_FILES sbin/rt-setup-fulltext-index" ;; "sbin/rt-fulltext-indexer") CONFIG_FILES="$CONFIG_FILES sbin/rt-fulltext-indexer" ;; "sbin/rt-serializer") CONFIG_FILES="$CONFIG_FILES sbin/rt-serializer" ;; "sbin/rt-importer") CONFIG_FILES="$CONFIG_FILES sbin/rt-importer" ;; "sbin/rt-passwd") CONFIG_FILES="$CONFIG_FILES sbin/rt-passwd" ;; "sbin/rt-munge-attachments") CONFIG_FILES="$CONFIG_FILES sbin/rt-munge-attachments" ;; "bin/rt-crontool") CONFIG_FILES="$CONFIG_FILES bin/rt-crontool" ;; "bin/rt-mailgate") CONFIG_FILES="$CONFIG_FILES bin/rt-mailgate" ;; "bin/rt") CONFIG_FILES="$CONFIG_FILES bin/rt" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "etc/RT_Config.pm") CONFIG_FILES="$CONFIG_FILES etc/RT_Config.pm" ;; "lib/RT/Generated.pm") CONFIG_FILES="$CONFIG_FILES lib/RT/Generated.pm" ;; "t/data/configs/apache2.2+mod_perl.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.2+mod_perl.conf" ;; "t/data/configs/apache2.2+fastcgi.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.2+fastcgi.conf" ;; "t/data/configs/apache2.4+mod_perl.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.4+mod_perl.conf" ;; "t/data/configs/apache2.4+fastcgi.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.4+fastcgi.conf" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac case $ac_file$ac_mode in "etc/upgrade/3.8-ical-extension":F) chmod ug+x $ac_file ;; "etc/upgrade/4.0-customfield-checkbox-extension":F) chmod ug+x $ac_file ;; "etc/upgrade/generate-rtaddressregexp":F) chmod ug+x $ac_file ;; "etc/upgrade/reset-sequences":F) chmod ug+x $ac_file ;; "etc/upgrade/sanity-check-stylesheets":F) chmod ug+x $ac_file ;; "etc/upgrade/shrink-cgm-table":F) chmod ug+x $ac_file ;; "etc/upgrade/shrink-transactions-table":F) chmod ug+x $ac_file ;; "etc/upgrade/switch-templates-to":F) chmod ug+x $ac_file ;; "etc/upgrade/time-worked-history":F) chmod ug+x $ac_file ;; "etc/upgrade/upgrade-articles":F) chmod ug+x $ac_file ;; "etc/upgrade/upgrade-assets":F) chmod ug+x $ac_file ;; "etc/upgrade/vulnerable-passwords":F) chmod ug+x $ac_file ;; "etc/upgrade/upgrade-sla":F) chmod ug+x $ac_file ;; "sbin/rt-ldapimport":F) chmod ug+x $ac_file ;; "sbin/rt-attributes-viewer":F) chmod ug+x $ac_file ;; "sbin/rt-preferences-viewer":F) chmod ug+x $ac_file ;; "sbin/rt-session-viewer":F) chmod ug+x $ac_file ;; "sbin/rt-dump-metadata":F) chmod ug+x $ac_file ;; "sbin/rt-setup-database":F) chmod ug+x $ac_file ;; "sbin/rt-test-dependencies":F) chmod ug+x $ac_file ;; "sbin/rt-email-digest":F) chmod ug+x $ac_file ;; "sbin/rt-email-dashboards":F) chmod ug+x $ac_file ;; "sbin/rt-externalize-attachments":F) chmod ug+x $ac_file ;; "sbin/rt-clean-sessions":F) chmod ug+x $ac_file ;; "sbin/rt-shredder":F) chmod ug+x $ac_file ;; "sbin/rt-validator":F) chmod ug+x $ac_file ;; "sbin/rt-validate-aliases":F) chmod ug+x $ac_file ;; "sbin/rt-email-group-admin":F) chmod ug+x $ac_file ;; "sbin/rt-search-attributes":F) chmod ug+x $ac_file ;; "sbin/rt-server":F) chmod ug+x $ac_file ;; "sbin/rt-server.fcgi":F) chmod ug+x $ac_file ;; "sbin/standalone_httpd":F) chmod ug+x $ac_file ;; "sbin/rt-setup-fulltext-index":F) chmod ug+x $ac_file ;; "sbin/rt-fulltext-indexer":F) chmod ug+x $ac_file ;; "sbin/rt-serializer":F) chmod ug+x $ac_file ;; "sbin/rt-importer":F) chmod ug+x $ac_file ;; "sbin/rt-passwd":F) chmod ug+x $ac_file ;; "sbin/rt-munge-attachments":F) chmod ug+x $ac_file ;; "bin/rt-crontool":F) chmod ug+x $ac_file ;; "bin/rt-mailgate":F) chmod ug+x $ac_file ;; "bin/rt":F) chmod ug+x $ac_file ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi rt-4.4.4/Makefile000644 000765 000024 00000044062 13437512113 014464 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} # # DO NOT HAND-EDIT the file named 'Makefile'. This file is autogenerated. # Have a look at "configure" and "Makefile.in" instead # PERL = /usr/bin/perl INSTALL = ./install-sh CC = @CC@ RT_LAYOUT = relative CONFIG_FILE_PATH = /opt/rt4/etc CONFIG_FILE = $(CONFIG_FILE_PATH)/RT_Config.pm SITE_CONFIG_FILE = $(CONFIG_FILE_PATH)/RT_SiteConfig.pm RT_VERSION_MAJOR = 4 RT_VERSION_MINOR = 4 RT_VERSION_PATCH = 4 RT_VERSION = $(RT_VERSION_MAJOR).$(RT_VERSION_MINOR).$(RT_VERSION_PATCH) TAG = rt-$(RT_VERSION_MAJOR)-$(RT_VERSION_MINOR)-$(RT_VERSION_PATCH) # This is the group that all of the installed files will be chgrp'ed to. RTGROUP = www # User which should own rt binaries. BIN_OWNER = root # User that should own all of RT's libraries, generally root. LIBS_OWNER = root # Group that should own all of RT's libraries, generally root. LIBS_GROUP = bin WEB_USER = www WEB_GROUP = www # DESTDIR allows you to specify that RT be installed somewhere other than # where it will eventually reside. DESTDIR _must_ have a trailing slash # if it's defined. DESTDIR = RT_PATH = /opt/rt4 RT_ETC_PATH = /opt/rt4/etc RT_BIN_PATH = /opt/rt4/bin RT_SBIN_PATH = /opt/rt4/sbin RT_LIB_PATH = /opt/rt4/lib RT_MAN_PATH = /opt/rt4/man RT_VAR_PATH = /opt/rt4/var RT_DOC_PATH = /opt/rt4/docs RT_FONT_PATH = /opt/rt4/share/fonts RT_LEXICON_PATH = /opt/rt4/share/po RT_STATIC_PATH = /opt/rt4/share/static RT_LOCAL_PATH = /opt/rt4/local LOCAL_PLUGIN_PATH = /opt/rt4/local/plugins LOCAL_ETC_PATH = /opt/rt4/local/etc LOCAL_LIB_PATH = /opt/rt4/local/lib LOCAL_LEXICON_PATH = /opt/rt4/local/po LOCAL_STATIC_PATH = /opt/rt4/local/static MASON_HTML_PATH = /opt/rt4/share/html MASON_LOCAL_HTML_PATH = /opt/rt4/local/html MASON_DATA_PATH = /opt/rt4/var/mason_data MASON_SESSION_PATH = /opt/rt4/var/session_data RT_LOG_PATH = /opt/rt4/var/log # RT_READABLE_DIR_MODE is the mode of directories that are generally meant # to be accessable RT_READABLE_DIR_MODE = 0755 # RT's CLI RT_CLI_BIN = rt # RT's mail gateway RT_MAILGATE_BIN = rt-mailgate # RT's cron tool RT_CRON_BIN = rt-crontool BINARIES = $(RT_MAILGATE_BIN) \ $(RT_CLI_BIN) \ $(RT_CRON_BIN) SYSTEM_BINARIES = rt-attributes-viewer \ rt-munge-attachments \ rt-clean-sessions \ rt-dump-metadata \ rt-email-dashboards \ rt-email-digest \ rt-email-group-admin \ rt-externalize-attachments \ rt-fulltext-indexer \ rt-importer \ rt-ldapimport \ rt-passwd \ rt-preferences-viewer \ rt-search-attributes \ rt-serializer \ rt-server \ rt-server.fcgi \ rt-session-viewer \ rt-setup-database \ rt-setup-fulltext-index \ rt-shredder \ rt-test-dependencies \ rt-validator \ rt-validate-aliases \ standalone_httpd ETC_FILES = acl.Pg \ acl.Oracle \ acl.mysql \ schema.Pg \ schema.Oracle \ schema.mysql \ schema.SQLite \ initialdata WEB_HANDLER = standalone # # DB_TYPE defines what sort of database RT trys to talk to # "mysql", "Oracle", "Pg", and "SQLite" are known to work. DB_TYPE = SQLite # Set DBA to the name of a unix account with the proper permissions and # environment to run your commandline SQL sbin # Set DB_DBA to the name of a DB user with permission to create new databases # For mysql, you probably want 'root' # For Pg, you probably want 'postgres' # For Oracle, you want 'system' DB_DBA = root DB_HOST = localhost # If you're not running your database server on its default port, # specifiy the port the database server is running on below. # It's generally safe to leave this blank DB_PORT = # # Set this to the canonical name of the interface RT will be talking to the # database on. If you said that the RT_DB_HOST above was "localhost," this # should be too. This value will be used to grant rt access to the database. # If you want to access the RT database from multiple hosts, you'll need # to grant those database rights by hand. # DB_RT_HOST = localhost # set this to the name you want to give to the RT database in # your database server. For Oracle, this should be the name of your sid DB_DATABASE = rt4 DB_RT_USER = rt_user DB_RT_PASS = rt_pass TEST_FILES = t/*.t t/*/*.t t/*/*/*.t TEST_VERBOSE = 0 RT_TEST_PARALLEL_NUM ?= 5 #################################################################### all: default default: @echo "Please read RT's README before beginning your installation." instruct: @echo "Congratulations. RT is now installed." @echo "" @echo "" @echo "You must now configure RT by editing $(SITE_CONFIG_FILE)." @echo "" @echo "(You will definitely need to set RT's database password in " @echo "$(SITE_CONFIG_FILE) before continuing. Not doing so could be " @echo "very dangerous. Note that you do not have to manually add a " @echo "database user or set up a database for RT. These actions will be " @echo "taken care of in the next step.)" @echo "" @echo "After that, you need to initialize RT's database by running" @echo " 'make initialize-database'" upgrade-instruct: @echo "Congratulations. RT has been upgraded. You should now check over" @echo "$(CONFIG_FILE) for any necessary site customization. Additionally," @echo "you should update RT's system database objects by running " @echo " make upgrade-database" upgrade: testdeps config-install dirs files-install fixperms upgrade-instruct my_with_web_handlers= $(shell $(PERL) -e 'print join " ", map "--with-$$_", grep defined && length, split /,/, "$(WEB_HANDLER)"') testdeps: $(PERL) ./sbin/rt-test-dependencies --with-$(DB_TYPE) $(my_with_web_handlers) depends: fixdeps fixdeps: $(PERL) ./sbin/rt-test-dependencies --install --with-$(DB_TYPE) $(my_with_web_handlers) #}}} fixperms: # Make the libraries readable chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)$(RT_PATH) chown -R $(LIBS_OWNER) $(DESTDIR)$(RT_LIB_PATH) chgrp -R $(LIBS_GROUP) $(DESTDIR)$(RT_LIB_PATH) chmod -R u+rwX,go-w,go+rX $(DESTDIR)$(RT_LIB_PATH) chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)$(RT_BIN_PATH) chmod 0755 $(DESTDIR)$(RT_ETC_PATH) cd $(DESTDIR)$(RT_ETC_PATH) && chmod 0400 $(ETC_FILES) #TODO: the config file should probably be able to have its # owner set separately from the binaries. chown -R $(BIN_OWNER) $(DESTDIR)$(RT_ETC_PATH) chgrp -R $(RTGROUP) $(DESTDIR)$(RT_ETC_PATH) chmod 0440 $(DESTDIR)$(CONFIG_FILE) chmod 0640 $(DESTDIR)$(SITE_CONFIG_FILE) # Make the system binaries cd $(DESTDIR)$(RT_BIN_PATH) && ( chmod 0755 $(BINARIES) ; chown $(BIN_OWNER) $(BINARIES); chgrp $(RTGROUP) $(BINARIES)) # Make the system binaries executable also cd $(DESTDIR)$(RT_SBIN_PATH) && ( chmod 0755 $(SYSTEM_BINARIES) ; chown $(BIN_OWNER) $(SYSTEM_BINARIES); chgrp $(RTGROUP) $(SYSTEM_BINARIES)) # Make upgrade scripts executable if they are in the source. # ( cd etc/upgrade && find . -type f -not -name '*.in' -perm +0111 -print ) | while read file ; do \ chmod a+x "$(DESTDIR)$(RT_ETC_PATH)/upgrade/$$file" ; \ done # Make the web ui readable by all. chmod -R u+rwX,go-w,go+rX $(DESTDIR)$(MASON_HTML_PATH) \ $(DESTDIR)$(MASON_LOCAL_HTML_PATH) \ $(DESTDIR)$(RT_LEXICON_PATH) \ $(DESTDIR)$(LOCAL_LEXICON_PATH) \ $(DESTDIR)$(RT_STATIC_PATH) \ $(DESTDIR)$(LOCAL_STATIC_PATH) chown -R $(LIBS_OWNER) $(DESTDIR)$(MASON_HTML_PATH) \ $(DESTDIR)$(MASON_LOCAL_HTML_PATH) \ $(DESTDIR)$(RT_LEXICON_PATH) \ $(DESTDIR)$(LOCAL_LEXICON_PATH) \ $(DESTDIR)$(RT_STATIC_PATH) \ $(DESTDIR)$(LOCAL_STATIC_PATH) chgrp -R $(LIBS_GROUP) $(DESTDIR)$(MASON_HTML_PATH) \ $(DESTDIR)$(MASON_LOCAL_HTML_PATH) \ $(DESTDIR)$(RT_LEXICON_PATH) \ $(DESTDIR)$(LOCAL_LEXICON_PATH) \ $(DESTDIR)$(RT_STATIC_PATH) \ $(DESTDIR)$(LOCAL_STATIC_PATH) # Make the web ui's data dir writable chmod 0770 $(DESTDIR)$(MASON_DATA_PATH) \ $(DESTDIR)$(MASON_SESSION_PATH) chown -R $(WEB_USER) $(DESTDIR)$(MASON_DATA_PATH) \ $(DESTDIR)$(MASON_SESSION_PATH) chgrp -R $(WEB_GROUP) $(DESTDIR)$(MASON_DATA_PATH) \ $(DESTDIR)$(MASON_SESSION_PATH) dirs: $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LOG_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_FONT_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LEXICON_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH) $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH) $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/cache $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/etc $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/obj $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_SESSION_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_HTML_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_LOCAL_HTML_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_ETC_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LIB_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_PLUGIN_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LEXICON_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_STATIC_PATH) clean-mason-cache: rm -rf $(DESTDIR)$(MASON_DATA_PATH)/cache/* rm -rf $(DESTDIR)$(MASON_DATA_PATH)/etc/* rm -rf $(DESTDIR)$(MASON_DATA_PATH)/obj/* install: testdeps config-install dirs files-install fixperms instruct files-install: libs-install etc-install config-install bin-install sbin-install html-install doc-install font-install po-install static-install config-install: $(INSTALL) -m 0755 -o $(BIN_OWNER) -g $(RTGROUP) -d $(DESTDIR)$(CONFIG_FILE_PATH) -$(INSTALL) -m 0440 -o $(BIN_OWNER) -g $(RTGROUP) etc/RT_Config.pm $(DESTDIR)$(CONFIG_FILE) [ -f $(DESTDIR)$(SITE_CONFIG_FILE) ] || $(INSTALL) -m 0640 -o $(BIN_OWNER) -g $(RTGROUP) etc/RT_SiteConfig.pm $(DESTDIR)$(SITE_CONFIG_FILE) @echo "Installed configuration. About to install RT in $(RT_PATH)" test: $(PERL) "-MExtUtils::Command::MM" -e "test_harness($(TEST_VERBOSE), 'lib')" $(TEST_FILES) parallel-test: test-parallel test-parallel: RT_TEST_PARALLEL=1 $(PERL) "-MApp::Prove" -e 'my $$p = App::Prove->new(); $$p->process_args("-wlrj$(RT_TEST_PARALLEL_NUM)","--state=slow,save", "t"); exit( $$p->run() ? 0 : 1 )' regression-reset-db: force-dropdb $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action init --dba-password '' initdb :: initialize-database initialize-database: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action init --prompt-for-dba-password upgrade-database: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action upgrade --prompt-for-dba-password dropdb: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action drop --prompt-for-dba-password force-dropdb: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action drop --dba-password '' --force critic: perlcritic --quiet sbin bin lib libs-install: [ -d $(DESTDIR)$(RT_LIB_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LIB_PATH) -( cd lib && find . -type d -print ) | while read dir ; do \ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_LIB_PATH)/$$dir" ; \ done -( cd lib && find . -type f -print ) | while read file ; do \ $(INSTALL) -m 0644 "lib/$$file" "$(DESTDIR)$(RT_LIB_PATH)/$$file" ; \ done html-install: [ -d $(DESTDIR)$(MASON_HTML_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_HTML_PATH) -( cd share/html && find . -type d -print ) | while read dir ; do \ $(INSTALL) -m 0755 -d "$(DESTDIR)$(MASON_HTML_PATH)/$$dir" ; \ done -( cd share/html && find . -type f -print ) | while read file ; do \ $(INSTALL) -m 0644 "share/html/$$file" "$(DESTDIR)$(MASON_HTML_PATH)/$$file" ; \ done $(MAKE) clean-mason-cache font-install: [ -d $(DESTDIR)$(RT_FONT_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_FONT_PATH) -( cd share/fonts && find . -type f -print ) | while read file ; do \ $(INSTALL) -m 0644 "share/fonts/$$file" "$(DESTDIR)$(RT_FONT_PATH)/$$file" ; \ done po-install: [ -d $(DESTDIR)$(RT_LEXICON_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LEXICON_PATH) -( cd share/po && find . -type f -print ) | while read file ; do \ $(INSTALL) -m 0644 "share/po/$$file" "$(DESTDIR)$(RT_LEXICON_PATH)/$$file" ; \ done static-install: [ -d $(DESTDIR)$(RT_STATIC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH) -( cd share/static && find . -type d -print ) | while read dir ; do \ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_STATIC_PATH)/$$dir" ; \ done -( cd share/static && find . -type f -print ) | while read file ; do \ $(INSTALL) -m 0644 "share/static/$$file" "$(DESTDIR)$(RT_STATIC_PATH)/$$file" ; \ done doc-install: # RT 3.0.0 - RT 3.0.2 would accidentally create a file instead of a dir -[ -f $(DESTDIR)$(RT_DOC_PATH) ] && rm $(DESTDIR)$(RT_DOC_PATH) [ -d $(DESTDIR)$(RT_DOC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_DOC_PATH) -( cd docs && find . -type d -print ) | while read dir ; do \ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_DOC_PATH)/$$dir" ; \ done -( cd docs && find . -type f -print ) | while read file ; do \ $(INSTALL) -m 0644 "docs/$$file" "$(DESTDIR)$(RT_DOC_PATH)/$$file" ; \ done -$(INSTALL) -m 0644 ./README $(DESTDIR)$(RT_DOC_PATH)/ etc-install: [ -d $(DESTDIR)$(RT_ETC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_ETC_PATH) [ -d "$(DESTDIR)$(RT_ETC_PATH)/RT_SiteConfig.d" ] || $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_ETC_PATH)/RT_SiteConfig.d" for file in $(ETC_FILES) ; do \ $(INSTALL) -m 0644 "etc/$$file" "$(DESTDIR)$(RT_ETC_PATH)/" ; \ done [ -d $(DESTDIR)$(RT_ETC_PATH)/upgrade ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_ETC_PATH)/upgrade -( cd etc/upgrade && find . -type d -print ) | while read dir ; do \ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_ETC_PATH)/upgrade/$$dir" ; \ done -( cd etc/upgrade && find . -type f -not -name '*.in' -print ) | while read file ; do \ $(INSTALL) -m 0644 "etc/upgrade/$$file" "$(DESTDIR)$(RT_ETC_PATH)/upgrade/$$file" ; \ done sbin-install: $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_SBIN_PATH) for file in $(SYSTEM_BINARIES) ; do \ $(INSTALL) -o $(BIN_OWNER) -g $(RTGROUP) -m 0755 "sbin/$$file" "$(DESTDIR)$(RT_SBIN_PATH)/" ; \ done bin-install: $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_BIN_PATH) for file in $(BINARIES) ; do \ $(INSTALL) -o $(BIN_OWNER) -g $(RTGROUP) -m 0755 "bin/$$file" "$(DESTDIR)$(RT_BIN_PATH)/" ; \ done regenerate-catalogs: $(PERL) devel/tools/extract-message-catalog license-tag: $(PERL) devel/tools/license_tag start-httpd: $(PERL) sbin/standalone_httpd & start-server: $(PERL) sbin/rt-server & SNAPSHOT=$(shell git describe --tags) THIRD_PARTY=devel/third-party/ snapshot: build-snapshot build-third-party clearsign-snapshot clearsign-third-party snapshot-shasums build-snapshot: git archive --prefix "$(SNAPSHOT)/" HEAD | tar -xf - ( cd $(SNAPSHOT) && \ echo "$(SNAPSHOT)" > .tag && \ autoconf && \ INSTALL=./install-sh PERL=/usr/bin/perl ./configure \ --with-db-type=SQLite \ --enable-layout=relative \ --with-web-handler=standalone && \ rm -rf autom4te.cache \ config.status config.log config.pld \ ) tar -czf "$(SNAPSHOT).tar.gz" "$(SNAPSHOT)/" rm -fr "$(SNAPSHOT)/" clearsign-snapshot: gpg --armor --detach-sign "$(SNAPSHOT).tar.gz" build-third-party: git archive --prefix "$(SNAPSHOT)/$(THIRD_PARTY)" HEAD:$(THIRD_PARTY) \ | gzip > "$(SNAPSHOT)-third-party-source.tar.gz" rm -rf "$(SNAPSHOT)/$(THIRD_PARTY)" clearsign-third-party: gpg --armor --detach-sign "$(SNAPSHOT)-third-party-source.tar.gz" snapshot-shasums: sha1sum $(SNAPSHOT)*.tar.gz* vessel-import: build-snapshot [ -d $(VESSEL) ] || (echo "VESSEL isn't a path to your shipwright vessel" && exit -1) cp $(VESSEL)/scripts/RT/build.pl /tmp/build.pl ./sbin/rt-test-dependencies --with-standalone --with-fastcgi --with-sqlite --list > /tmp/rt.yml shipwright import file:$(SNAPSHOT).tar.gz \ --require-yml /tmp/rt.yml \ --build-script /tmp/build.pl \ --name RT \ --repository fs:$(VESSEL) \ --log-level=info \ --skip cpan-capitalization,cpan-mod_perl,cpan-Encode,cpan-PPI,cpan-Test-Exception-LessClever,cpan-Test-Manifest,cpan-Test-Object,cpan-Test-Pod,cpan-Test-Requires,cpan-Test-SubCalls,cpan-Test-cpan-Tester,cpan-Test-Warn --skip-all-recommends mv $(VESSEL)/scripts/RT/build $(VESSEL)/scripts/RT/build.pl rt-4.4.4/sbin/000755 000765 000024 00000000000 13437512113 013751 5ustar00sunnavystaff000000 000000 rt-4.4.4/etc/000755 000765 000024 00000000000 13437512113 013571 5ustar00sunnavystaff000000 000000 rt-4.4.4/docs/000755 000765 000024 00000000000 13437510132 013745 5ustar00sunnavystaff000000 000000 rt-4.4.4/t/000755 000765 000024 00000000000 13437510132 013260 5ustar00sunnavystaff000000 000000 rt-4.4.4/README000644 000765 000024 00000031031 13437510132 013673 0ustar00sunnavystaff000000 000000 RT is an enterprise-grade issue tracking system. It allows organizations to keep track of what needs to get done, who is working on which tasks, what's already been done, and when tasks were (or weren't) completed. RT doesn't cost anything to use, no matter how much you use it; it is freely available under the terms of Version 2 of the GNU General Public License. RT is commercially-supported software. To purchase support, training, custom development, or professional services, please get in touch with us at . REQUIRED PACKAGES ----------------- o Perl 5.10.1 or later (http://www.perl.org). RT won't start on versions of Perl older than 5.10.1. o A supported SQL database Currently supported: MySQL 5.1 - 5.7 with InnoDB support MariaDB 10.0 - 10.1 with InnoDB support Postgres 9.0 or later Oracle 11g or later SQLite 3.0 or later; for testing only, no upgrade path guaranteed o Apache version 1.3.x or 2.x (http://httpd.apache.org) with FastCGI -- (http://www.fastcgi.com) or mod_perl -- (http://perl.apache.org) or another webserver with FastCGI support RT's FastCGI handler needs to access RT's configuration file. o Various and sundry perl modules A tool included with RT takes care of the installation of most of these automatically during the install process. The tool supplied with RT uses Perl's CPAN (http://www.cpan.org) to install modules. Some operating systems package all or some of the modules required, and you may be better off installing the modules that way. GENERAL INSTALLATION -------------------- 1) Unpack this distribution other than where you want to install RT. To do this cleanly, run the following command: tar xzvf rt.tar.gz -C /tmp 2) Run the "configure" script. To see the list of options, run: ./configure --help Peruse the options, then rerun ./configure with the flags you want. RT defaults to installing in /opt/rt4 with MySQL as its database. It tries to guess which of www-data, www, apache or nobody your webserver will run as, but you can override that behavior. Note that the default install directory in /opt/rt4 does not work under SELinux's default configuration. If you are upgrading from a previous version of RT, please review the upgrade notes for the appropriate versions, which can be found in docs/UPGRADING-* If you are coming from 4.2.x to 4.4.x you should review both the UPGRADING-4.2 and UPGRADING-4.4 files. Similarly, if you were coming from 4.0.x, you would want to review the UPGRADING-4.0, UPGRADING-4.2 and UPGRADING-4.4 documents. Any upgrade steps given in version-specific UPGRADING files should be run after the rest of the steps below; however, please read the relevant documentation before beginning the upgrade, so as to be aware of important changes. RT stores the arguments given to ./configure at the top of the etc/RT_Config.pm file in case you need to recreate your previous use of ./configure. 3) Make sure that RT has the Perl and system libraries it needs to run. Check for missing dependencies by running: make testdeps 4) If the script reports any missing dependencies, install them by hand, or run the following command as a user who has permission to install perl modules on your system: make fixdeps Some modules require user input or environment variables to install correctly, so it may be necessary to install them manually. If you are having trouble installing GD, refer to "Installing GD libraries" in docs/charts.pod. Ticket relationship graphing requires the graphviz library which you should install using your distribution's package manager. 5) Check to make sure everything was installed properly. make testdeps It might sometimes be necessary to run "make fixdeps" several times to install all necessary perl modules. 6a) If this is a NEW installation (not an upgrade): As a user with permission to install RT in your chosen directory, type: make install To configure RT with the web installer, run: /opt/rt4/sbin/rt-server and follow the instructions. Once completed, you should now have a working RT instance running with the standalone rt-server. Press Ctrl-C to stop it, and proceed to Step 7 to configure a recommended deployment environment for production. To configure RT manually, you must setup etc/RT_SiteConfig.pm in your RT installation directory. You'll need to add any values you need to change from the defaults in etc/RT_Config.pm As a user with permission to read RT's configuration file, type: make initialize-database If the make fails, type: make dropdb and re-run 'make initialize-database'. 6b) If you are UPGRADING from a previous installation: Before upgrading, always ensure that you have a complete current backup. If you don't have a current backup, upgrading your database could accidentally damage it and lose data, or worse. If you are using MySQL, please read the instructions in docs/UPGRADING.mysql as well to ensure that you do not corrupt existing data. First, stop your webserver. You may also wish to put incoming email into a hold queue, to avoid temporary delivery failure messages if your upgrade is expected to take several hours. Next, install new binaries, config files and libraries by running: make upgrade This will also prompt you to upgrade your database by running: make upgrade-database You should back up your database before running this command. When you run it, you will be prompted for your previous version of RT (such as 4.2.12) so that the appropriate set of database upgrades can be applied. If 'make upgrade-database' completes without error, your upgrade has been successful; you should now run any commands that were supplied in version-specific UPGRADING documentation. You should then restart your webserver. 7) Configure the web server, as described in docs/web_deployment.pod, and the email gateway, as described below. NOTE: The default credentials for RT are: User: root Pass: password Not changing the root password from the default is a SECURITY risk! Once you've set up the web interface, consider setting up automatic logout for inactive sessions. For more information about how to do that, run: perldoc /opt/rt4/sbin/rt-clean-sessions 8) Set up users, groups, queues, scrips and access control. Until you do this, RT will not be able to send or receive email, nor will it be more than marginally functional. This is not an optional step. 9) Set up automated recurring tasks (cronjobs): To generate email digest messages, you must arrange for the provided utility to be run once daily, and once weekly. You may also want to arrange for the rt-email-dashboards utility to be run hourly. If you choose to use the external storage feature, that must process new attachments on a regular basis. If your task scheduler is cron, you can configure it by adding the following lines as /etc/cron.d/rt: 0 0 * * * root /opt/rt4/sbin/rt-email-digest -m daily 0 0 * * 0 root /opt/rt4/sbin/rt-email-digest -m weekly 0 * * * * root /opt/rt4/sbin/rt-email-dashboards 0 0 * * * root /opt/rt4/sbin/rt-externalize-attachments 10) Configure the RT email gateway. To let email flow to your RT server, you need to add a few lines of configuration to your mail server's "aliases" file. These lines "pipe" incoming email messages from your mail server to RT. Add the following lines to /etc/aliases (or your local equivalent) on your mail server: rt: "|/opt/rt4/bin/rt-mailgate --queue general --action correspond --url http://rt.example.com/" rt-comment: "|/opt/rt4/bin/rt-mailgate --queue general --action comment --url http://rt.example.com/" You'll need to add similar lines for each queue you want to be able to send email to. To find out more about how to configure RT's email gateway, type: perldoc /opt/rt4/bin/rt-mailgate 11) Set up full text search Full text search (FTS) without database indexing is a very slow operation, and is thus disabled by default. You'll need to follow the instructions in docs/full_text_indexing.pod to enable FTS. 12) Set up automatic backups for RT and its data as described in the docs/backups.pod document. GETTING HELP ------------ If RT is mission-critical for you or if you use it heavily, we recommend that you purchase a commercial support contract. Details on support contracts are available at http://www.bestpractical.com or by writing to . If you're interested in having RT extended or customized or would like more information about commercial support options, please send email to to discuss rates and availability. COMMUNITY FORUM AND WIKI ------------------------ To keep up to date on the latest RT tips, techniques and extensions, you may wish to join the RT Community Forum website. You can find it here: https://forum.bestpractical.com You'll find many different categories of discussion there including the RT Users category for general RT topics. If you're interested in customizing RT code, there is a category for RT Developers with more technical topics. The RT wiki, at https://rt-wiki.bestpractical.com, is also a potential resource. SECURITY -------- If you believe you've discovered a security issue in RT, please send an email to with a detailed description of the issue, and a secure means to respond to you (such as your PGP public key). You can find our PGP key and fingerprint at https://bestpractical.com/security/ BUGS ---- RT's a pretty complex application, and as you get up to speed, you might run into some trouble. Generally, it's best to ask about things you run into on the Community Forum (or pick up a commercial support contract from Best Practical). But, sometimes people do run into bugs. In the exceedingly unlikely event that you hit a bug in RT, please report it! We'd love to hear about problems you have with RT, so we can fix them. To report a bug, send email to . # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} rt-4.4.4/COPYING000644 000765 000024 00000043070 13437510132 014054 0ustar00sunnavystaff000000 000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. rt-4.4.4/lib/000755 000765 000024 00000000000 13437510132 013563 5ustar00sunnavystaff000000 000000 rt-4.4.4/config.layout000644 000765 000024 00000014621 13437510132 015525 0ustar00sunnavystaff000000 000000 ## ## config.layout -- Pre-defined Installation Path Layouts ## ## Hints: ## - layouts can be loaded with configure's --enable-layout=ID option ## - when no --enable-layout option is given, the default layout is `RT' ## - a trailing plus character (`+') on paths is replaced with a ## `/' suffix where is currently hardcoded to 'rt3'. ## (This may become a configurable parameter at some point.) ## ## The following variables must _all_ be set: ## prefix exec_prefix bindir sbindir sysconfdir mandir libdir ## datadir htmldir localstatedir logfiledir masonstatedir fontdir ## sessionstatedir customdir customhtmldir customlexdir customstaticdir ## (This can be seen in m4/rt_layout.m4.) ## # Default RT3 path layout. prefix: /opt/rt4 exec_prefix: ${prefix} bindir: ${exec_prefix}/bin sbindir: ${exec_prefix}/sbin sysconfdir: ${prefix}/etc mandir: ${prefix}/man plugindir: ${prefix}/plugins libdir: ${prefix}/lib datadir: ${prefix}/share htmldir: ${datadir}/html fontdir: ${datadir}/fonts lexdir: ${datadir}/po staticdir: ${datadir}/static manualdir: ${prefix}/docs localstatedir: ${prefix}/var logfiledir: ${localstatedir}/log masonstatedir: ${localstatedir}/mason_data sessionstatedir: ${localstatedir}/session_data customdir: ${prefix}/local custometcdir: ${customdir}/etc customhtmldir: ${customdir}/html customlexdir: ${customdir}/po customstaticdir: ${customdir}/static customlibdir: ${customdir}/lib customplugindir: ${customdir}/plugins prefix: . exec_prefix: ${prefix} bindir: ${exec_prefix}/bin sbindir: ${exec_prefix}/sbin sysconfdir: ${prefix}/etc mandir: ${prefix}/man plugindir: ${prefix}/plugins libdir: ${prefix}/lib datadir: ${prefix}/share htmldir: ${datadir}/html lexdir: ${datadir}/po staticdir: ${datadir}/static fontdir: ${datadir}/fonts manualdir: ${prefix}/docs localstatedir: ${prefix}/var logfiledir: ${localstatedir}/log masonstatedir: ${localstatedir}/mason_data sessionstatedir: ${localstatedir}/session_data customdir: ${prefix}/local custometcdir: ${customdir}/etc customhtmldir: ${customdir}/html customlexdir: ${customdir}/po customstaticdir: ${customdir}/static customlibdir: ${customdir}/lib customplugindir: ${customdir}/plugins prefix: /usr/local exec_prefix: ${prefix} bindir: ${prefix}/bin sbindir: ${prefix}/sbin sysconfdir: /etc+ datadir: ${prefix}/share # FIXME: missing support for lib64 libdir: ${prefix}/lib mandir: ${datadir}/man # FIXME: no such directory in FHS; shouldn't go to somewhere in "${datadir}/rt/"? plugindir: ${datadir}/plugins htmldir: ${datadir}/html lexdir: ${datadir}/po staticdir: ${datadir}/static fontdir: ${datadir}/fonts manualdir: ${datadir}/doc localstatedir: /var logfiledir: ${localstatedir}/log # XXX: "/var/cache/mason/*"? masonstatedir: ${localstatedir}/cache/mason_data sessionstatedir: ${localstatedir}/cache/session_data customdir: ${prefix}/local custometcdir: ${customdir}/etc customhtmldir: ${customdir}/html customlexdir: ${customdir}/po customstaticdir: ${customdir}/static customlibdir: ${customdir}/lib customplugindir: ${customdir}/plugins prefix: /usr/local exec_prefix: ${prefix} bindir: ${exec_prefix}/bin sbindir: ${exec_prefix}/sbin sysconfdir: ${prefix}/etc+ mandir: ${prefix}/man plugindir: ${prefix}/plugins libdir: ${prefix}/lib+ datadir: ${prefix}/share+ htmldir: ${datadir}/html lexdir: ${datadir}/po staticdir: ${datadir}/static fontdir: ${datadir}/fonts manualdir: ${prefix}/share/doc+ logfiledir: /var/log localstatedir: /var/run+ masonstatedir: ${localstatedir}/mason_data sessionstatedir: ${localstatedir}/session_data customdir: ${prefix}/share+ custometcdir: ${customdir}/local/etc customhtmldir: ${customdir}/local/html customlexdir: ${customdir}/local/po customstaticdir: ${customdir}/static customlibdir: ${customdir}/local/lib customplugindir: ${customdir}/local/plugins # RH path layout. prefix: /usr exec_prefix: ${prefix} bindir: ${exec_prefix}/bin sbindir: ${exec_prefix}/sbin sysconfdir: /etc/rt3 mandir: ${prefix}/man libdir: ${prefix}/lib/rt3 datadir: /var/rt3 htmldir: ${datadir}/html fontdir: ${datadir}/fonts lexdir: ${datadir}/po staticdir: ${datadir}/static manualdir: ${datadir}/doc plugindir: ${datadir}/plugins localstatedir: /var logfiledir: ${localstatedir}/log/rt3 masonstatedir: ${localstatedir}/rt3/mason_data sessionstatedir: ${localstatedir}/rt3/session_data customdir: ${prefix}/local/rt3 custometcdir: ${customdir}/etc customhtmldir: ${customdir}/html customlexdir: ${customdir}/po customstaticdir: ${customdir}/static customlibdir: ${customdir}/lib customplugindir: ${customdir}/plugins prefix: /opt/rt4 exec_prefix: ${prefix} bindir: bin sbindir: sbin sysconfdir: etc mandir: man plugindir: plugins libdir: lib datadir: share htmldir: ${datadir}/html fontdir: ${datadir}/fonts lexdir: ${datadir}/po staticdir: ${datadir}/static manualdir: docs localstatedir: var logfiledir: ${localstatedir}/log masonstatedir: ${localstatedir}/mason_data sessionstatedir: ${localstatedir}/session_data customdir: local custometcdir: ${customdir}/etc customhtmldir: ${customdir}/html customlexdir: ${customdir}/po customstaticdir: ${customdir}/static customlibdir: ${customdir}/lib customplugindir: ${customdir}/plugins prefix: /opt/rt4 exec_prefix: ${prefix} bindir: bin sbindir: sbin sysconfdir: etc/rt/ mandir: man libdir: lib/rt datadir: share/rt plugindir: ${datadir}/plugins htmldir: ${datadir}/html fontdir: ${datadir}/fonts lexdir: ${datadir}/po staticdir: ${datadir}/static manualdir: docs/rt localstatedir: var/rt/ logfiledir: ${localstatedir}/log masonstatedir: ${localstatedir}/mason_data sessionstatedir: ${localstatedir}/session_data customdir: local/rt/ custometcdir: ${customdir}/etc customhtmldir: ${customdir}/html customlexdir: ${customdir}/po customstaticdir: ${customdir}/static customlibdir: ${customdir}/lib customplugindir: ${customdir}/plugins rt-4.4.4/.tag000644 000765 000024 00000000011 13437512111 013560 0ustar00sunnavystaff000000 000000 rt-4.4.4 rt-4.4.4/.perltidyrc000644 000765 000024 00000000652 13437510132 015202 0ustar00sunnavystaff000000 000000 --maximum-line-length=78 --indent-columns=4 --continuation-indentation=4 --standard-error-output --vertical-tightness=2 --closing-token-indentation=1 --paren-tightness=1 --brace-tightness=1 --square-bracket-tightness=1 --block-brace-tightness=1 --nospace-for-semicolon --no-outdent-long-quotes --cuddled-else --want-break-before="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" rt-4.4.4/Makefile.in000644 000765 000024 00000047346 13437510132 015100 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} # # DO NOT HAND-EDIT the file named 'Makefile'. This file is autogenerated. # Have a look at "configure" and "Makefile.in" instead # PERL = @PERL@ INSTALL = @INSTALL@ CC = @CC@ RT_LAYOUT = @rt_layout_name@ CONFIG_FILE_PATH = @CONFIG_FILE_PATH_R@ CONFIG_FILE = $(CONFIG_FILE_PATH)/RT_Config.pm SITE_CONFIG_FILE = $(CONFIG_FILE_PATH)/RT_SiteConfig.pm RT_VERSION_MAJOR = @RT_VERSION_MAJOR@ RT_VERSION_MINOR = @RT_VERSION_MINOR@ RT_VERSION_PATCH = @RT_VERSION_PATCH@ RT_VERSION = $(RT_VERSION_MAJOR).$(RT_VERSION_MINOR).$(RT_VERSION_PATCH) TAG = rt-$(RT_VERSION_MAJOR)-$(RT_VERSION_MINOR)-$(RT_VERSION_PATCH) # This is the group that all of the installed files will be chgrp'ed to. RTGROUP = @RTGROUP@ # User which should own rt binaries. BIN_OWNER = @BIN_OWNER@ # User that should own all of RT's libraries, generally root. LIBS_OWNER = @LIBS_OWNER@ # Group that should own all of RT's libraries, generally root. LIBS_GROUP = @LIBS_GROUP@ WEB_USER = @WEB_USER@ WEB_GROUP = @WEB_GROUP@ # DESTDIR allows you to specify that RT be installed somewhere other than # where it will eventually reside. DESTDIR _must_ have a trailing slash # if it's defined. DESTDIR = RT_PATH = @RT_PATH_R@ RT_ETC_PATH = @RT_ETC_PATH_R@ RT_BIN_PATH = @RT_BIN_PATH_R@ RT_SBIN_PATH = @RT_SBIN_PATH_R@ RT_LIB_PATH = @RT_LIB_PATH_R@ RT_MAN_PATH = @RT_MAN_PATH_R@ RT_VAR_PATH = @RT_VAR_PATH_R@ RT_DOC_PATH = @RT_DOC_PATH_R@ RT_FONT_PATH = @RT_FONT_PATH_R@ RT_LEXICON_PATH = @RT_LEXICON_PATH_R@ RT_STATIC_PATH = @RT_STATIC_PATH_R@ RT_LOCAL_PATH = @RT_LOCAL_PATH_R@ LOCAL_PLUGIN_PATH = @RT_LOCAL_PATH_R@/plugins LOCAL_ETC_PATH = @LOCAL_ETC_PATH_R@ LOCAL_LIB_PATH = @LOCAL_LIB_PATH_R@ LOCAL_LEXICON_PATH = @LOCAL_LEXICON_PATH_R@ LOCAL_STATIC_PATH = @LOCAL_STATIC_PATH_R@ MASON_HTML_PATH = @MASON_HTML_PATH_R@ MASON_LOCAL_HTML_PATH = @MASON_LOCAL_HTML_PATH_R@ MASON_DATA_PATH = @MASON_DATA_PATH_R@ MASON_SESSION_PATH = @MASON_SESSION_PATH_R@ RT_LOG_PATH = @RT_LOG_PATH_R@ # RT_READABLE_DIR_MODE is the mode of directories that are generally meant # to be accessable RT_READABLE_DIR_MODE = 0755 # RT's CLI RT_CLI_BIN = rt # RT's mail gateway RT_MAILGATE_BIN = rt-mailgate # RT's cron tool RT_CRON_BIN = rt-crontool BINARIES = $(RT_MAILGATE_BIN) \ $(RT_CLI_BIN) \ $(RT_CRON_BIN) SYSTEM_BINARIES = rt-attributes-viewer \ rt-munge-attachments \ rt-clean-sessions \ rt-dump-metadata \ rt-email-dashboards \ rt-email-digest \ rt-email-group-admin \ rt-externalize-attachments \ rt-fulltext-indexer \ rt-importer \ rt-ldapimport \ rt-passwd \ rt-preferences-viewer \ rt-search-attributes \ rt-serializer \ rt-server \ rt-server.fcgi \ rt-session-viewer \ rt-setup-database \ rt-setup-fulltext-index \ rt-shredder \ rt-test-dependencies \ rt-validator \ rt-validate-aliases \ standalone_httpd ETC_FILES = acl.Pg \ acl.Oracle \ acl.mysql \ schema.Pg \ schema.Oracle \ schema.mysql \ schema.SQLite \ initialdata WEB_HANDLER = @WEB_HANDLER@ # # DB_TYPE defines what sort of database RT trys to talk to # "mysql", "Oracle", "Pg", and "SQLite" are known to work. DB_TYPE = @DB_TYPE@ # Set DBA to the name of a unix account with the proper permissions and # environment to run your commandline SQL sbin # Set DB_DBA to the name of a DB user with permission to create new databases # For mysql, you probably want 'root' # For Pg, you probably want 'postgres' # For Oracle, you want 'system' DB_DBA = @DB_DBA@ DB_HOST = @DB_HOST@ # If you're not running your database server on its default port, # specifiy the port the database server is running on below. # It's generally safe to leave this blank DB_PORT = @DB_PORT@ # # Set this to the canonical name of the interface RT will be talking to the # database on. If you said that the RT_DB_HOST above was "localhost," this # should be too. This value will be used to grant rt access to the database. # If you want to access the RT database from multiple hosts, you'll need # to grant those database rights by hand. # DB_RT_HOST = @DB_RT_HOST@ # set this to the name you want to give to the RT database in # your database server. For Oracle, this should be the name of your sid DB_DATABASE = @DB_DATABASE@ DB_RT_USER = @DB_RT_USER@ DB_RT_PASS = @DB_RT_PASS@ TEST_FILES = t/*.t t/*/*.t t/*/*/*.t TEST_VERBOSE = 0 RT_TEST_PARALLEL_NUM ?= 5 #################################################################### all: default default: @echo "Please read RT's README before beginning your installation." instruct: @echo "Congratulations. RT is now installed." @echo "" @echo "" @echo "You must now configure RT by editing $(SITE_CONFIG_FILE)." @echo "" @echo "(You will definitely need to set RT's database password in " @echo "$(SITE_CONFIG_FILE) before continuing. Not doing so could be " @echo "very dangerous. Note that you do not have to manually add a " @echo "database user or set up a database for RT. These actions will be " @echo "taken care of in the next step.)" @echo "" @echo "After that, you need to initialize RT's database by running" @echo " 'make initialize-database'" upgrade-instruct: @echo "Congratulations. RT has been upgraded. You should now check over" @echo "$(CONFIG_FILE) for any necessary site customization. Additionally," @echo "you should update RT's system database objects by running " @echo " make upgrade-database" upgrade: testdeps config-install dirs files-install fixperms upgrade-instruct my_with_web_handlers= $(shell $(PERL) -e 'print join " ", map "--with-$$_", grep defined && length, split /,/, "$(WEB_HANDLER)"') testdeps: $(PERL) ./sbin/rt-test-dependencies --with-$(DB_TYPE) $(my_with_web_handlers) depends: fixdeps fixdeps: $(PERL) ./sbin/rt-test-dependencies --install --with-$(DB_TYPE) $(my_with_web_handlers) #}}} fixperms: # Make the libraries readable chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)$(RT_PATH) chown -R $(LIBS_OWNER) $(DESTDIR)$(RT_LIB_PATH) chgrp -R $(LIBS_GROUP) $(DESTDIR)$(RT_LIB_PATH) chmod -R u+rwX,go-w,go+rX $(DESTDIR)$(RT_LIB_PATH) chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)$(RT_BIN_PATH) chmod 0755 $(DESTDIR)$(RT_ETC_PATH) cd $(DESTDIR)$(RT_ETC_PATH) && chmod 0400 $(ETC_FILES) #TODO: the config file should probably be able to have its # owner set separately from the binaries. chown -R $(BIN_OWNER) $(DESTDIR)$(RT_ETC_PATH) chgrp -R $(RTGROUP) $(DESTDIR)$(RT_ETC_PATH) chmod 0440 $(DESTDIR)$(CONFIG_FILE) chmod 0640 $(DESTDIR)$(SITE_CONFIG_FILE) # Make the system binaries cd $(DESTDIR)$(RT_BIN_PATH) && ( chmod 0755 $(BINARIES) ; chown $(BIN_OWNER) $(BINARIES); chgrp $(RTGROUP) $(BINARIES)) # Make the system binaries executable also cd $(DESTDIR)$(RT_SBIN_PATH) && ( chmod 0755 $(SYSTEM_BINARIES) ; chown $(BIN_OWNER) $(SYSTEM_BINARIES); chgrp $(RTGROUP) $(SYSTEM_BINARIES)) # Make upgrade scripts executable if they are in the source. # ( cd etc/upgrade && find . -type f -not -name '*.in' -perm @FINDPERM@0111 -print ) | while read file ; do \ chmod a+x "$(DESTDIR)$(RT_ETC_PATH)/upgrade/$$file" ; \ done # Make the web ui readable by all. chmod -R u+rwX,go-w,go+rX $(DESTDIR)$(MASON_HTML_PATH) \ $(DESTDIR)$(MASON_LOCAL_HTML_PATH) \ $(DESTDIR)$(RT_LEXICON_PATH) \ $(DESTDIR)$(LOCAL_LEXICON_PATH) \ $(DESTDIR)$(RT_STATIC_PATH) \ $(DESTDIR)$(LOCAL_STATIC_PATH) chown -R $(LIBS_OWNER) $(DESTDIR)$(MASON_HTML_PATH) \ $(DESTDIR)$(MASON_LOCAL_HTML_PATH) \ $(DESTDIR)$(RT_LEXICON_PATH) \ $(DESTDIR)$(LOCAL_LEXICON_PATH) \ $(DESTDIR)$(RT_STATIC_PATH) \ $(DESTDIR)$(LOCAL_STATIC_PATH) chgrp -R $(LIBS_GROUP) $(DESTDIR)$(MASON_HTML_PATH) \ $(DESTDIR)$(MASON_LOCAL_HTML_PATH) \ $(DESTDIR)$(RT_LEXICON_PATH) \ $(DESTDIR)$(LOCAL_LEXICON_PATH) \ $(DESTDIR)$(RT_STATIC_PATH) \ $(DESTDIR)$(LOCAL_STATIC_PATH) # Make the web ui's data dir writable chmod 0770 $(DESTDIR)$(MASON_DATA_PATH) \ $(DESTDIR)$(MASON_SESSION_PATH) chown -R $(WEB_USER) $(DESTDIR)$(MASON_DATA_PATH) \ $(DESTDIR)$(MASON_SESSION_PATH) chgrp -R $(WEB_GROUP) $(DESTDIR)$(MASON_DATA_PATH) \ $(DESTDIR)$(MASON_SESSION_PATH) dirs: $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LOG_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_FONT_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LEXICON_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH) $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH) $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/cache $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/etc $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/obj $(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_SESSION_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_HTML_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_LOCAL_HTML_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_ETC_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LIB_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_PLUGIN_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LEXICON_PATH) $(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_STATIC_PATH) clean-mason-cache: rm -rf $(DESTDIR)$(MASON_DATA_PATH)/cache/* rm -rf $(DESTDIR)$(MASON_DATA_PATH)/etc/* rm -rf $(DESTDIR)$(MASON_DATA_PATH)/obj/* install: testdeps config-install dirs files-install fixperms instruct files-install: libs-install etc-install config-install bin-install sbin-install html-install doc-install font-install po-install static-install config-install: @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -o $(BIN_OWNER) -g $(RTGROUP) -d $(DESTDIR)$(CONFIG_FILE_PATH) @COMMENT_INPLACE_LAYOUT@ -$(INSTALL) -m 0440 -o $(BIN_OWNER) -g $(RTGROUP) etc/RT_Config.pm $(DESTDIR)$(CONFIG_FILE) @COMMENT_INPLACE_LAYOUT@ [ -f $(DESTDIR)$(SITE_CONFIG_FILE) ] || $(INSTALL) -m 0640 -o $(BIN_OWNER) -g $(RTGROUP) etc/RT_SiteConfig.pm $(DESTDIR)$(SITE_CONFIG_FILE) @COMMENT_INPLACE_LAYOUT@ @echo "Installed configuration. About to install RT in $(RT_PATH)" test: $(PERL) "-MExtUtils::Command::MM" -e "test_harness($(TEST_VERBOSE), 'lib')" $(TEST_FILES) parallel-test: test-parallel test-parallel: RT_TEST_PARALLEL=1 $(PERL) "-MApp::Prove" -e 'my $$p = App::Prove->new(); $$p->process_args("-wlrj$(RT_TEST_PARALLEL_NUM)","--state=slow,save", "t"); exit( $$p->run() ? 0 : 1 )' regression-reset-db: force-dropdb $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action init --dba-password '' initdb :: initialize-database initialize-database: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action init --prompt-for-dba-password upgrade-database: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action upgrade --prompt-for-dba-password dropdb: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action drop --prompt-for-dba-password force-dropdb: $(PERL) -I$(LOCAL_LIB_PATH) -I$(RT_LIB_PATH) sbin/rt-setup-database --action drop --dba-password '' --force critic: perlcritic --quiet sbin bin lib libs-install: @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(RT_LIB_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LIB_PATH) @COMMENT_INPLACE_LAYOUT@ -( cd lib && find . -type d -print ) | while read dir ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_LIB_PATH)/$$dir" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ -( cd lib && find . -type f -print ) | while read file ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "lib/$$file" "$(DESTDIR)$(RT_LIB_PATH)/$$file" ; \ @COMMENT_INPLACE_LAYOUT@ done html-install: @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(MASON_HTML_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(MASON_HTML_PATH) @COMMENT_INPLACE_LAYOUT@ -( cd share/html && find . -type d -print ) | while read dir ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -d "$(DESTDIR)$(MASON_HTML_PATH)/$$dir" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ -( cd share/html && find . -type f -print ) | while read file ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "share/html/$$file" "$(DESTDIR)$(MASON_HTML_PATH)/$$file" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ $(MAKE) clean-mason-cache font-install: @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(RT_FONT_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_FONT_PATH) @COMMENT_INPLACE_LAYOUT@ -( cd share/fonts && find . -type f -print ) | while read file ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "share/fonts/$$file" "$(DESTDIR)$(RT_FONT_PATH)/$$file" ; \ @COMMENT_INPLACE_LAYOUT@ done po-install: @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(RT_LEXICON_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LEXICON_PATH) @COMMENT_INPLACE_LAYOUT@ -( cd share/po && find . -type f -print ) | while read file ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "share/po/$$file" "$(DESTDIR)$(RT_LEXICON_PATH)/$$file" ; \ @COMMENT_INPLACE_LAYOUT@ done static-install: @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(RT_STATIC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH) @COMMENT_INPLACE_LAYOUT@ -( cd share/static && find . -type d -print ) | while read dir ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_STATIC_PATH)/$$dir" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ -( cd share/static && find . -type f -print ) | while read file ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "share/static/$$file" "$(DESTDIR)$(RT_STATIC_PATH)/$$file" ; \ @COMMENT_INPLACE_LAYOUT@ done doc-install: @COMMENT_INPLACE_LAYOUT@ # RT 3.0.0 - RT 3.0.2 would accidentally create a file instead of a dir @COMMENT_INPLACE_LAYOUT@ -[ -f $(DESTDIR)$(RT_DOC_PATH) ] && rm $(DESTDIR)$(RT_DOC_PATH) @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(RT_DOC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_DOC_PATH) @COMMENT_INPLACE_LAYOUT@ -( cd docs && find . -type d -print ) | while read dir ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_DOC_PATH)/$$dir" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ -( cd docs && find . -type f -print ) | while read file ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "docs/$$file" "$(DESTDIR)$(RT_DOC_PATH)/$$file" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ -$(INSTALL) -m 0644 ./README $(DESTDIR)$(RT_DOC_PATH)/ etc-install: @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(RT_ETC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_ETC_PATH) @COMMENT_INPLACE_LAYOUT@ [ -d "$(DESTDIR)$(RT_ETC_PATH)/RT_SiteConfig.d" ] || $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_ETC_PATH)/RT_SiteConfig.d" @COMMENT_INPLACE_LAYOUT@ for file in $(ETC_FILES) ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "etc/$$file" "$(DESTDIR)$(RT_ETC_PATH)/" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ [ -d $(DESTDIR)$(RT_ETC_PATH)/upgrade ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_ETC_PATH)/upgrade @COMMENT_INPLACE_LAYOUT@ -( cd etc/upgrade && find . -type d -print ) | while read dir ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_ETC_PATH)/upgrade/$$dir" ; \ @COMMENT_INPLACE_LAYOUT@ done @COMMENT_INPLACE_LAYOUT@ -( cd etc/upgrade && find . -type f -not -name '*.in' -print ) | while read file ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0644 "etc/upgrade/$$file" "$(DESTDIR)$(RT_ETC_PATH)/upgrade/$$file" ; \ @COMMENT_INPLACE_LAYOUT@ done sbin-install: @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_SBIN_PATH) @COMMENT_INPLACE_LAYOUT@ for file in $(SYSTEM_BINARIES) ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -o $(BIN_OWNER) -g $(RTGROUP) -m 0755 "sbin/$$file" "$(DESTDIR)$(RT_SBIN_PATH)/" ; \ @COMMENT_INPLACE_LAYOUT@ done bin-install: @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_BIN_PATH) @COMMENT_INPLACE_LAYOUT@ for file in $(BINARIES) ; do \ @COMMENT_INPLACE_LAYOUT@ $(INSTALL) -o $(BIN_OWNER) -g $(RTGROUP) -m 0755 "bin/$$file" "$(DESTDIR)$(RT_BIN_PATH)/" ; \ @COMMENT_INPLACE_LAYOUT@ done regenerate-catalogs: $(PERL) devel/tools/extract-message-catalog license-tag: $(PERL) devel/tools/license_tag start-httpd: $(PERL) sbin/standalone_httpd & start-server: $(PERL) sbin/rt-server & SNAPSHOT=$(shell git describe --tags) THIRD_PARTY=devel/third-party/ snapshot: build-snapshot build-third-party clearsign-snapshot clearsign-third-party snapshot-shasums build-snapshot: git archive --prefix "$(SNAPSHOT)/" HEAD | tar -xf - ( cd $(SNAPSHOT) && \ echo "$(SNAPSHOT)" > .tag && \ autoconf && \ INSTALL=./install-sh PERL=/usr/bin/perl ./configure \ --with-db-type=SQLite \ --enable-layout=relative \ --with-web-handler=standalone && \ rm -rf autom4te.cache \ config.status config.log config.pld \ ) tar -czf "$(SNAPSHOT).tar.gz" "$(SNAPSHOT)/" rm -fr "$(SNAPSHOT)/" clearsign-snapshot: gpg --armor --detach-sign "$(SNAPSHOT).tar.gz" build-third-party: git archive --prefix "$(SNAPSHOT)/$(THIRD_PARTY)" HEAD:$(THIRD_PARTY) \ | gzip > "$(SNAPSHOT)-third-party-source.tar.gz" rm -rf "$(SNAPSHOT)/$(THIRD_PARTY)" clearsign-third-party: gpg --armor --detach-sign "$(SNAPSHOT)-third-party-source.tar.gz" snapshot-shasums: sha1sum $(SNAPSHOT)*.tar.gz* vessel-import: build-snapshot [ -d $(VESSEL) ] || (echo "VESSEL isn't a path to your shipwright vessel" && exit -1) cp $(VESSEL)/scripts/RT/build.pl /tmp/build.pl ./sbin/rt-test-dependencies --with-standalone --with-fastcgi --with-sqlite --list > /tmp/rt.yml shipwright import file:$(SNAPSHOT).tar.gz \ --require-yml /tmp/rt.yml \ --build-script /tmp/build.pl \ --name RT \ --repository fs:$(VESSEL) \ --log-level=info \ --skip cpan-capitalization,cpan-mod_perl,cpan-Encode,cpan-PPI,cpan-Test-Exception-LessClever,cpan-Test-Manifest,cpan-Test-Object,cpan-Test-Pod,cpan-Test-Requires,cpan-Test-SubCalls,cpan-Test-cpan-Tester,cpan-Test-Warn --skip-all-recommends mv $(VESSEL)/scripts/RT/build $(VESSEL)/scripts/RT/build.pl rt-4.4.4/aclocal.m4000644 000765 000024 00000012141 13437510132 014654 0ustar00sunnavystaff000000 000000 dnl aclocal.m4 generated automatically by aclocal 1.4-p6 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. dnl dnl @synopsis RT_ENABLE_LAYOUT() dnl dnl Enable a specific directory layout for the installation to use. dnl This configures a command-line parameter that can be specified dnl at ./configure invocation. dnl dnl The use of this feature in this way is a little hackish, but dnl better than a heap of options for every directory. dnl dnl This code is heavily borrowed *cough* from the Apache 2 code. dnl AC_DEFUN([RT_ENABLE_LAYOUT],[ AC_ARG_ENABLE(layout, AC_HELP_STRING([--enable-layout=LAYOUT], [Use a specific directory layout (Default: relative)]), LAYOUT=$enableval) if test "x$LAYOUT" = "x"; then LAYOUT="relative" fi RT_LAYOUT($srcdir/config.layout, $LAYOUT) AC_MSG_CHECKING(for chosen layout) if test "x$rt_layout_name" = "xno"; then if test "x$LAYOUT" = "xno"; then AC_MSG_RESULT(none) else AC_MSG_RESULT($LAYOUT) fi AC_MSG_ERROR([a valid layout must be specified (or the default used)]) else AC_SUBST(rt_layout_name) AC_MSG_RESULT($rt_layout_name) fi if test "x$rt_layout_name" != "xinplace" ; then AC_SUBST([COMMENT_INPLACE_LAYOUT], [""]) else AC_SUBST([COMMENT_INPLACE_LAYOUT], [# ]) fi ]) dnl dnl @synopsis RT_LAYOUT(configlayout, layoutname) dnl dnl This macro reads an Apache-style layout file (specified as the dnl configlayout parameter), and searches for a specific layout dnl (named using the layoutname parameter). dnl dnl The entries for a given layout are then inserted into the dnl environment such that they become available as substitution dnl variables. In addition, the rt_layout_name variable is set dnl (but not exported) if the layout is valid. dnl dnl This code is heavily borrowed *cough* from the Apache 2 codebase. dnl AC_DEFUN([RT_LAYOUT],[ if test ! -f $srcdir/config.layout; then AC_MSG_WARN([Layout file $srcdir/config.layout not found]) rt_layout_name=no else pldconf=./config.pld $PERL -0777 -p -e "\$layout = '$2';" -e ' s/.*//gims; s/\<\/Layout\>.*//s; s/^#.*$//m; s/^\s+//gim; s/\s+$/\n/gim; s/\+$/\/rt3/gim; # m4 will not let us just use $1, we need @S|@1 s/^\s*((?:bin|sbin|libexec|data|sysconf|sharedstate|localstate|lib|include|oldinclude|info|man|html)dir)\s*:\s*(.*)$/@S|@1=@S|@2/gim; s/^\s*(.*?)\s*:\s*(.*)$/\(test "x\@S|@@S|@1" = "xNONE" || test "x\@S|@@S|@1" = "x") && @S|@1=@S|@2/gim; ' < $1 > $pldconf if test -s $pldconf; then rt_layout_name=$2 . $pldconf changequote({,}) for var in prefix exec_prefix bindir sbindir \ sysconfdir mandir libdir datadir htmldir fontdir\ lexdir staticdir localstatedir logfiledir masonstatedir \ sessionstatedir customdir custometcdir customhtmldir \ customlexdir customstaticdir customplugindir customlibdir manualdir; do eval "val=\"\$$var\"" val=`echo $val | sed -e 's:\(.\)/*$:\1:'` val=`echo $val | sed -e 's:[\$]\([a-z_]*\):${\1}:g'` eval "$var='$val'" done changequote([,]) else rt_layout_name=no fi #rm $pldconf fi RT_SUBST_EXPANDED_ARG(prefix) RT_SUBST_EXPANDED_ARG(exec_prefix) RT_SUBST_EXPANDED_ARG(bindir) RT_SUBST_EXPANDED_ARG(sbindir) RT_SUBST_EXPANDED_ARG(sysconfdir) RT_SUBST_EXPANDED_ARG(mandir) RT_SUBST_EXPANDED_ARG(libdir) RT_SUBST_EXPANDED_ARG(lexdir) RT_SUBST_EXPANDED_ARG(staticdir) RT_SUBST_EXPANDED_ARG(datadir) RT_SUBST_EXPANDED_ARG(htmldir) RT_SUBST_EXPANDED_ARG(fontdir) RT_SUBST_EXPANDED_ARG(manualdir) RT_SUBST_EXPANDED_ARG(plugindir) RT_SUBST_EXPANDED_ARG(localstatedir) RT_SUBST_EXPANDED_ARG(logfiledir) RT_SUBST_EXPANDED_ARG(masonstatedir) RT_SUBST_EXPANDED_ARG(sessionstatedir) RT_SUBST_EXPANDED_ARG(customdir) RT_SUBST_EXPANDED_ARG(custometcdir) RT_SUBST_EXPANDED_ARG(customplugindir) RT_SUBST_EXPANDED_ARG(customhtmldir) RT_SUBST_EXPANDED_ARG(customlexdir) RT_SUBST_EXPANDED_ARG(customstaticdir) RT_SUBST_EXPANDED_ARG(customlibdir) ])dnl dnl dnl @synopsis RT_SUBST_EXPANDED_ARG(var) dnl dnl Export (via AC_SUBST) a given variable, along with an expanded dnl version of the variable (same name, but with exp_ prefix). dnl dnl This code is heavily borrowed *cough* from the Apache 2 source. dnl AC_DEFUN([RT_SUBST_EXPANDED_ARG],[ RT_EXPAND_VAR(exp_$1, [$]$1) AC_SUBST($1) AC_SUBST(exp_$1) ]) dnl dnl @synopsis RT_EXPAND_VAR(baz, $fraz) dnl dnl Iteratively expands the second parameter, until successive iterations dnl yield no change. The result is then assigned to the first parameter. dnl dnl This code is heavily borrowed from the Apache 2 codebase. dnl AC_DEFUN([RT_EXPAND_VAR],[ ap_last='' ap_cur='$2' while test "x${ap_cur}" != "x${ap_last}"; do ap_last="${ap_cur}" ap_cur=`eval "echo ${ap_cur}"` done $1="${ap_cur}" ]) rt-4.4.4/README.Oracle000644 000765 000024 00000003043 13437510132 015101 0ustar00sunnavystaff000000 000000 On RT 3.8.2 and later, RT deployment for Oracle databases is very straightforward. You don't need to configure Oracle beforehand. During installation a user is created and all RT's objects are created in his schema. The user is created with the following parameters: CREATE USER IDENTIFIED BY DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON USERS And the user is also granted 'CONNECT' and 'RESOURCE'. It's up to you to do decide how to manage users, change quotas, table spaces, etc. RT has an option $DatabaseName which is used to define the SID of the Oracle database. You don't have to set up the TWO_TASK environment variable or any helper files for establishing connections. Example: ./configure \ --with-db-type=Oracle \ --with-db-database=XE \ --with-db-host=192.168.0.1 \ --with-db-dba=system \ --with-db-rt-user=rtdb1 \ --with-db-rt-pass=rtdb1secret \ ... other configure options ... That should be enough to get you started on Oracle, but to complete installation you must follow the general instructions in the README file. As with all databases it is important to analyze the schema and get current statistics after every significant dataset change. Oracle's cost-based optimizer can provide particularly bad performance when the schema statistics are inaccurate. To analyze the schema of the user called RT, execute the following from within sqlplus: execute dbms_utility.analyze_schema( 'RT', 'estimate'); rt-4.4.4/.perlcriticrc000644 000765 000024 00000001505 13437510132 015504 0ustar00sunnavystaff000000 000000 # This perlcritic policy file isn't to be taken as gospel. It's just a start # As of now, it's mostly about disabling policies we're not able to follow or # strongly disagree with exclude = Subroutines::ProhibitExplicitReturnUndef Modules::RequireFilenameMatchesPackage TestingAndDebugging::ProhibitNoStrict color = 1 verbose = 7 # we don't unpack @_ right away as we mostly use named vars with defaults: # sub foo { # my $self = shift; # my %args = ( default => 'value', ..., @_ ); # ... [-Subroutines::RequireArgUnpacking] # Readonly superiority is not convincing, especially considering # that 'use constant' participates in constants folding during # compilation [-ValuesAndExpressions::ProhibitConstantPragma] # brutal [BuiltinFunctions::RequireBlockGrep] severity = 1 [BuiltinFunctions::RequireBlockMap] severity = 1 rt-4.4.4/share/000755 000765 000024 00000000000 13437510132 014117 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/000755 000765 000024 00000000000 13437510132 015063 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/po/000755 000765 000024 00000000000 13437510132 014535 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/static/000755 000765 000024 00000000000 13437510132 015406 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/fonts/000755 000765 000024 00000000000 13437510132 015250 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/fonts/DroidSans.ttf000644 000765 000024 00000443124 13437510132 017665 0ustar00sunnavystaff000000 000000 LTSH"mý tcOS/2Ÿƒ•[˜`cmapÕeA;L8cvt 9’=ÀIlüfpgmsÓ#°?„gaspFH glyf÷àÜP( @hdmxV‚ý Ø-theadëÑWû6hheaxT$hmtxe…ðûø zkernÙ‰æ]hËîloca>É‚>KhÀmaxpx nameùȤ)X jpostJœOÖ4Ä„prep;ùî©FŒÝÁ=ØÍ_<õÁš3ÃuÚRþ ýÕôÙmþ Zþ þ¢ô^_‘z/ZÝkš3š3Ðfò à¯@ [(1ASC@ ÿýþ„mã ŸJ¶ ÍÁ'“7…+3h{šfžmÏ…hRh=hRhf?“R%“ühbh²h`hRhhƒhqhZhjhj%“%?hfhfhfh%îmÝøÇÓ}yÇ9ÇîÇ…}œÇ¶R+ÿH¢ÇîÇöÇÕÇð}œÇî}¸Ç'h'–¸‹`7PRm¤üm3B)Jÿüž‰?^°®´q°qHq¢%%¶® ÿ¼ø®®+®¶®žq°®°q1®œZ¶!¶¤Õø#é ‡RÕ=héÕ3hf'“h¼hDh{hhéãyž3¨d¦DåRhf“R¨dÿúm{hf¦1¦ž‰Á®=q%“¤#¦?ÍBåTå?å,åhDÝÝÝÝÝÝÑÿþÓ}9Ç9Ç9Ç9Ƕ>¶R¶¶@y/ÕÇð}ð}ð}ð}ð}hð}–¸–¸–¸–¸7œÇÑ®?^?^?^?^?^?^ª^´qHqHqHqHqÿÞ®ÿ½ÿîžo¶®žqžqžqžqžqhfžs¶¤¶¤¶¤¶¤é °®é Ý?^Ý?^Ý?^Ó}´qÓ}´qÓ}´qÓ}´qyǰqy/°q9ÇHq9ÇHq9ÇHq9ÇHq9ÇHq…}%%…}%%…}%%…}%%œÇ¶®œ¶¶ÿõÿ£¶=ÿë¶0ÿÞ¶RD¶R®áR% +ÿHÿ¼¢Çø®ø®îÇ«îÇfîÇ®îÇf®îÿöÕǶ®ÕǶ®ÕǶ®FÿÿÕǶ®ð}žqð}žqð}žq}Hq¸Ç1®¸Ç1`¸Ç1r'hœZ'hœZ'hœZ'hœZ'¶!'¶!'¶!–¸¶¤–¸¶¤–¸¶¤–¸¶¤–¸¶¤–¸¶¤ø7é 7PR‡RPR‡RPR‡RL®hËÝ?^Ñÿþª^ð}žs'hœZžžuž! žm{žžßžøžÝÿé%“Éÿçÿç²ÿçBÿçTÿçJÿçžÿäÝøÇîÇ‹%9ÇPRœÇð}¶R¢Ç‹öÇÕÇ?Rð}‡ÇœÇBN'7#h`#hðN¶@7°q Z¶®ž¤¸¤°qÑ®é žo Z¤q¶®‡qž¤ø®ÿòÁ®#¤qžq ž¤¤q´q˜¸¤–q1ÿìì¤qž¸¤žq¸¤q9Ç îÇÓ}'h¶R¶@+ÿHHuÇ ¢Ç®‡ÇÝœÇøÇîÇ39Ç…\HÕÉÕÉ¢ÇZöÇœÇð}‡ÇœÇÓ}'®#h`šÇH¦úÇúÇ=–ÇœÇÁ;Ǹ?^u‰®3®`)HqîDé®é®î®^¾®é®žqÁ®°®´q‡)é “q#Ñ®¬šô®®m)þ®‰®²7y®?#Hq¶3®´qœZ ÿîÿ¼ƒå®¶î®é Á®îÇ3®øøø7é RRRJÿüff?fçç?ã{ø{–o“ ZfÏ…7…NRNRö“ þ øjh`hD–h?hwçÇþ%ðNôfS3Oq¦b‹)îÇ Jhfd%¨whfhfhfhfªm´´žÏÿ¼‡o}¦%¦ ¦;¦%¦/¦1¦!«Uh%šÍTTÿ¼fÍ R öÇ+®Ý?^BþÓªs3“V_( +    &"  "&   *. . * .  ( '    ' &&&&&& """"" "& . .... &&&     ..          $ ...."""*(****   ...... &&0 &"*$&-  &""" &"& . . -(0&""0$  .* .    &+   *" &+  . &d                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ,~@>~’ðÿ¼ÇÉÝ󊌡ÎÒÖ O\_‘?…óM   " & 0 3 : < D  ¤ § ¬!!!!"!&!.!^"""""""+"H"`"e%Êûþÿÿýÿÿ  ’ðú¼ÆÉØó„ŒŽ£ÑÖQ^>€òM   & 0 2 9 < D  £ § ¬!!!!"!&!.!["""""""+"H"`"d%ÊûþÿÿüÿÿÿãÿÂÿ°aÿIÿ1ÿ–þ…þ„þvÿhýÐýÏýÎýÍþ‚þý›ýšý™ý˜ýhäXäãzãã âBáïáîáíáêáááàáÛáÚáÓá™ávátápáá á àþàûàôàÈà%à"àààààßçßÐßÍÜiOS45]^   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a†‡‰‹“˜ž£¢¤¦¥§©«ª¬­¯®°±³µ´¶¸·¼»½¾ rdeix¡pk vj0ˆš-s12gw'*).l|!¨ºcn,B/(m}‚…—  ¹3Á:f45y „ŒƒŠ‘Ž•–”œ›óKRqNOPzSQL@EYXUTSRQPONMLKJIHGFEDCBA@?>=<;:9876510/.-,('&%$#"! ,E#F` °&`°&#HH-,E#F#a °&a°&#HH-,E#F`° a °F`°&#HH-,E#F#a° ` °&a° a°&#HH-,E#F`°@a °f`°&#HH-,E#F#a°@` °&a°@a°&#HH-, <<-, E# °ÍD# ¸ZQX# °D#Y °íQX# °MD#Y °&QX# ° D#Y!!-, EhD °` E°FvhŠE`D-,± C#Ce -,± C#C -,°(#p±(>°(#p±(E:± -, E°%Ead°PQXED!!Y-,I°#D-, E°C`D-,°C°Ce -, i°@a°‹ ±,ÀŠŒ¸b`+ d#da\X°aY-,ŠEŠŠ‡°+°)#D°)zä-,Ee°,#DE°+#D-,KRXED!!Y-,KQXED!!Y-,°%# Šõ°`#íì-,°%# Šõ°a#íì-,°%õíì-,F#F`ŠŠF# FŠ`Ša¸ÿ€b# #б ŠpE` °PX°a¸ÿº‹°FŒY°`h:-, E°%FRK°Q[X°%F ha°%°%?#!8!Y-, E°%FPX°%F ha°%°%?#!8!Y-,°C°C -,!! d#d‹¸@b-,!°€QX d#d‹¸ b²@/+Y°`-,!°ÀQX d#d‹¸Ub²€/+Y°`-, d#d‹¸@b`#!-,KSXа%Id#Ei°@‹a°€b° aj°#D#°ö!#Š 9/Y-,KSX °%Idi °&°%Id#a°€b° aj°#D°&°öа#D°ö°#D°íа& 9# 9//Y-,E#E`#E`#E`#vh°€b -,°H+-, E°TX°@D E°@aD!!Y-,E±0/E#Ea`°`iD-,KQX°/#p°#B!!Y-,KQX °%EiSXD!!Y!!Y-,E°C°`c°`iD-,°/ED-,E# EŠ`D-,E#E`D-,K#QX¹3ÿà±4 ³34YDD-,°CX°&EŠXdf°`d° `f X!°@Y°aY#XeY°)#D#°)à!!!!!Y-,°CTXKS#KQZX8!!Y!!!!Y-,°CX°%Ed° `f X!°@Y°a#XeY°)#D°%°% XY°%°% F°%#B<°%°%°%°% F°%°`#B< XY°%°%°)à°) EeD°%°%°)à°%°% XY°%°%CH°%°%°%°%°`CH!Y!!!!!!!-,°% F°%#B°%°%EH!!!!-,°% °%°%CH!!!-,E# E °P X#e#Y#h °@PX!°@Y#XeYŠ`D-,KS#KQZX EŠ`D!!Y-,KTX EŠ`D!!Y-,KS#KQZX8!!Y-,°!KTX8!!Y-,°CTX°F+!!!!Y-,°CTX°G+!!!Y-,°CTX°H+!!!!Y-,°CTX°I+!!!Y-, Š#KSŠKQZX#8!!Y-,°%I°SX °@8!Y-,F#F`#Fa#  FŠa¸ÿ€bб@@ŠpE`h:-, Š#IdŠ#SX<!Y-,KRX}zY-,°KKTB-,±B±#ˆQ±@ˆSZX¹ ˆTX²C`BY±$ˆQX¹ @ˆTX²C`B±$ˆTX² C`BKKRX²C`BY¹@€ˆTX²C`BY¹@€c¸ˆTX²C`BY¹@c¸ˆTX²C`BY¹@c¸ˆTX²@C`BYYYYY-,Eh#KQX# E d°@PX|YhŠ`YD-,°°%°%°#>°#>± ° #eB° #B°#?°#?± °#eB°#B°-,zŠE#õ-@ øÿ÷Ÿ÷ó`ò¸ÿè@+ë Fß3ÝUÞÿÜU0ÝÝUÜú0ÂoÀïÀü¶0·`·€·¸ÿÀ@8·F籯/¯?¯O¯_¯o¯@¯F¬Qœ_œà›+ššš šsšƒš¸ÿê@š F¯—¿—+––Ÿ–¯–|–¸ÿê@…– F/’?’O’@’ F/‘Ÿ‘‡†@|P|t t0ttòt oÿo©o—ouo…oKo nÿn©n—nKnUÿÿÿ?gg/g?gÿg@fPf f°f?ee¯e dàd¸ÿÀ@Kd F`_G_P"÷[ì[T[„[I[;[ùZïZkZKZ;Z3UU3U?¯WW/W¸ÿÀ³VF¸ÿà³V F¸ÿÀ³TF¸ÿÀ@eT F?POP_PúHïH‡HeHVH:HúGïG‡G;Gÿ3UU3UUGUúÏÿo¯ï€¸±TS++K¸ÿRK°P[°ˆ°%S°ˆ°@QZ°ˆ°UZ[X±ŽY…BK°2SX°`YK°dSX°@YK°€SX°±BYss^stu+++++++_sssssssssss++++_sst+++_ssssssssss+++_s^stsst++++_sssstssssststt_s+st+s+_sstt_s+_sstt_ss++sts+st+ss++s+++sss+^ N¶u¶ÍJÿìÿìÿìþþ¬¶¼ÕUƒ—Ÿ}å®®qqºÅº¤ŸÇÇ}}°¹Š›¦w–in´ÁÕfox–ÀÕGþ:Åxþöî–ˆ®–‰ –”Z‚–¨ŒyÙ´ ƒm mˆ“ ‚‰¶ü”ÿïƒm{¼ªT¼¶×•–®¶þ¼þoþƒo­****o¡)âq)M|¬âD[•´?”eÌ?g‚Ú = y » ÷ j 4    t ³ ì 9 — ÍI—·+|Õ"‹üf§å8îMžÑ÷;Yp•i®k΢ã_¯È9wÀ"ƒÉ9ŽÏ'ÔeÎu™õHHô j!!t!¤"]"¡#J#´$$5$=% %#%~%º& &&¤&î'+'e'«'â(*(z(£(È(÷)m)…)œ)´)Ë)ä* *r*…**´*Ì*å*ý++++D+¨+¿+×+î,,,6,›--4-K-c-|-“-Ý.x..¥.».Ñ.é//±/Ä/Û/ñ00070N0e0~11$1;1Q1h11˜2 2‚2™2¯2Å2Þ2ô3Y3q3‰3Ÿ3¶3Ì3ã444/4F4^4u4Ž4¥4½4Õ4è4ð5i5€5–5­5Ã5Ú5ñ66&6=6S6j6€6—6®6Å6Ý6ð777;7Œ7ç7þ88,8C8Z8q8„8˜8¯8È8ñ99,9C9V9i9²9Ê9ç9ú::&:>:Q:t:Á;;%;;;O;b;y;;²<>%>8>L>d>|>“>©>À>Ö>ê>ý??*?=?Q?h?z?Ñ@;@S@i@@—@®@Ä@Ý@õAA&A9ALAcAzA‘A§AÀA×AíBBB2BHB{BßCÁD–D®DÅDÜDòEEENE„EœE×EþFNF{FÂGG2G£G¼GöHHAH‚H³HçII(I0I8IjI¶I¾IÆIÎJ=JEJMJ™J¡J©JöJþK)K1KyKK‰LL LŽMM)MBMXMnM„MœM±N#N¥OOŒPPnP®Q Q^QfQâR0RrSSSnSÈT7TTÚUUšV.VWW2WKWaWwW•W®X(X?XªX²XºXÓXÛYrYÑZ/ZFZ]Z¦Z®[[ [[„[Œ\\œ\û]][]¿]Ç]Ï]×]ß]ç]ï]÷^g^o^w^¬^ó_;_‘_ç`=`‹`îaeaâaêbeb×bÿcecmcâd`d¤d»dõe@e¥eëeóff$f,fkfsfðføg2grg½hhshÕiiˆiüjSjkjÚjðkLkTk\kuk}kõlTl®lÄlÚmmTmm—m®mÅmÜmönn(n@n[nvn‘nºnåooDoroÎp*p”pïquq¸r]s*s2s:sms¢s´sÒttpt÷uvvÃwAw÷x~x†xéyyAypy›zzbz‘zÛ{{-{É||£}}`}¤}ð~~-~p~£~É~îVŸü€[€Š'‘‘‘‘‘‘‘‘‘‘‘‘‘‘‚ÛƒNƒZƒb„ „ˆ…$…;…R…f…z…§…ô†G†t† Á ¶+@  p€¸ÿÀ@  H?2/3/+]33/310!!7!!ÁIü·hyý‡¶úJhæ“ÿã‘¶:¹ÿð@ H€ š¸ÿÀ@  H ›?/õÎ/+3/á2]10+#34>32#".Py3ßð"./""/."žú¹&5!!5&%5""5…¦²¶7@#˜ Ð à / o  ˜àð?33/3/]á]]9/á10#!#J)s)-)r)¶ýðýð3ø¶™@X±!  ± P P  H  ®  ®?Oß   /3?399//]33á2233á]22/]33/3/]ä9293/ä92393/3/10!!#!#!5!!5!3!3!!!×?þÍR“TþÝRNþþAþî+R“R%TTüë#@þÝ}þ¸‰þT¬þT¬‰H‰°þP°þP‰þ¸H{ÿ‰Ù-6?´@34/))/!!p/<753&&'4.'66Ù2]…TŠ2f`T !W`e/YƒV*1[OŠd©CB8ŒJX‡[.°+F3][þ(B1YS¾FrT7 æÝ ¬!²BUnJCoS5 ´°*‘)þZBSkH!7-&þ‹b£$9/&qYfÿì3Ë ';?]²<>¸ÿð@3<><>(´2µ#´(AA´ µ´ 0?>%¶7·!¶-¶·¶?áôá?áôá??/]áôá]Þáôá99//881032#"#".54>3232#"#".54>32#úGPœœPGÇ$JsOIpL&#IqNKqM'¬GPœœPGÆ#JsOJpK&#IqNKqL'ÿüÕž,¥¥JH£¥l¬v??v¬llªu>>uªýJ¥¤IH£¥l«v??v«llªu>>uª’úJ¶mÿì}Í!S€@M'JI,IH G6AGB B6B6B;54.#"2>7%4>7.54>32>73#'#".¦!4$;V8/B*Vd‡:bTH þ}4P7#B`þ}(MoG<-2^ŠXSƒ[02Tm<`+" ¸)5A'á¨1`l|Ni§s="AAC%#>@F)$=,Yû¯(6—!?HU86[A$ðNzdV*$MWc9KwS++SwK@m]O$þŒ73#.R$JqN¬Œ‘%GjEªNqJ$1}óåÓ]Áþ2ôwìâÔ^ZÎáð=þ¼¶@ò ð°øù??Þ]áä210#>54'3$KqNªEjH$¬NqK$1|ðáÎZ^ÔâìwôÎÁ]ÓåóRw$@˜€?2/]/^]å]10%'%7˜+þ†õ²°ž¸òþ‰‡+þwoÁþº`fþš`FÁo‰f¢ )@  ªï `  ­³?3á2/]]2á2]10!5!3!!#éþ}ƒ–ƒþ}–‡–…þ{–þ?þøyî 8@Ï  +  —¸ÿÀ@ H_œ /í/]]+3í2]]]10%#>7j'/3Šî6z|{8=„ƒ}5RÑBy@ @¹/á/]Î105!RðѨ¨“ÿã‘ú5@€  –ÀÐ4Ddt¸ÿÀ¶ H›/í/+]]í]]1074>32#".“"./""/."o&5!!5&%5""5ç¶±¸ÿð@ ?/382/8310#çýà³!¶úJ¶bÿìÍ'&@o))o  #ss?á?á/]á]Þá10#"&&54663232>54.#"3q²v¯s93o±~w°t:ýBkMMlEElMMkBݱþèÂff±±ÁfeÁþè²–à•KJ”á—–à”JJ”à²Ç¶5@!@n¿ÿ~ @ ??Í/^]]]á3/3]10!#4>7'3ǰ”`–‘+baY"y{+`ðË#<@ #o%%"o! " s"t?á2?á39/]3/3í]3/á310!!5>54.#"'>32!ðüp^KvS,"?V5_™Ef(\jvA`›l;5]Kþ籜}Q†€L;Z? M54.##532>54.#"'>32Á.StG±¸A„ÊŠmÁUWË]\†W)5bY……Q~U,$B\8k£J\&]n}Fl£n8`IxX9 µ‘` t@"-ª.2(JlCDa?—(Jf=4R9C6}6)6a…?¾ N@, Vn  w‡_ t??39/3á22/]3]]9/]3333á2/]210##!533!4>7#?Õ°ý]—¼Õþ{  þeHþ¸HŸ×ü0d8{uf"11.ý ƒÿìö¶*N@&o,,'$$(h#Y###ð¸ÿÀ@ Hs't$s ?3á?á9/á/+]3/]]333]Þá3102#".'532>54&#"'!!66!c«HD†Å€3c[R!!Ybc*O|V.°¨??9Z7²ýì' i7l ir¶~C ¬$ %NvQ— 9°¦þ]qÿì Ë+?7@ 1n "AA;o 6u,s's?á?á9/á/]á2]Þ2á104>32&&#"3>32#".2>54.#"q5\ŽÆ…./+#X+Z‰dC* 9L_;_šl;>t¤fd¯€JÛnÕ#Ì#º###  h8˜8Y8(888H88“C&CVCCC-s;s?á?á9/]]Á]]]99/]3/]]]áá]Î2/]]á9á9102#".54>7.54>32>54.''">54&5T•qB(F`8:oW5Cy©fn«u=-Lh:1V?%Cr•Ç DhHFkH$'If?~€j}#>W30U?$~Í,X„XClWEL_vI\•h86e’\Kx`JIZmBWƒX,û¦5Y?##A\84TH@<›Tje9R@34BT6ejjÿìË)=5@9o??/n   4u*s%u?á?á9/á/]3á]Þá210#".'532>7##".54>32"32>54.5\ŽÆ…..,#X+‡®f+ 8L`;_šl;?s¥fe®€Jþ%.;r¥jr·DN óG(TWFoN*/K`0C…kB“ÿã‘f'>@)€)) ) –ÀÐ4Ddt¸ÿÀ@  H#››/í?í/+]]3å2]1074>32#".4>32#".“"./""/.""./""/."o&5!!5&%5""5‘'5!!5'%4""4?þø‘f a@/"€"" "–À Ð d t P D ;  /   +  —¸ÿÀ@H_›œ /í?í/]]+3í2]3/]]]]]]å]10%#>74>32#".j'/3Š"./""/."î6z|{8=„ƒ}5í'5!!5'%4""4fîÝN@0@@o0 Pp€Ðð?/^]]]q33/]]29=/33/]]Î10%5üdœý!ßî¨fá þ”þ¾fºé\@= @ Æ»©†{hB9­/­ðo/]]á3/^]]qá/]]]]]]]]3]Î2105!5!fœüdœT••þf––fîÝN@0@@o0 Pp€Ðð?/^]]]q33/]]39=/33/]]Î105fàý œüdBl þfþX%ÿã%Ë';>@!2š(('F F=/= -›7Q?á3/å2/^]9/]Þá9/á3/á1054>7>54.#"'66324>32#".'B20D+9U8S–F?Q¼a]•h86P64B&»"./""/."ž%9\PM*)CEO50O94"‘*;3`‹WCiZT/-C?B,þÑ&5!!5&%5""5mÿJ¶Who@?X`'''FF'N1 j@j;@NN, [d¿@6S@EI/3Á?Á99//^]^]Á3Á22/]Á]ÞqÁ9///]]ÁÁ10#".'##".54>3232>54.#"32>7#"$&546$3232>77&&#"%9La:-I4!6GY5MwR+;ožb-ZRE"+.F/V˜Ñ{©þþ¯ZO™ã“=wod+VØ‚³þçÃfvÛ7Áœ¿jüeU7N2M*Je?Û>}qaH)2A#%B18eŽVe¨zDþ`5D(=hŒNŽÝ˜OoÇþê R&,fó¼Eîˆe½þñþÕ…w-SsEý :^xݼ„@$FFII€Ð¸ÿÀ@ H/Ÿß¸ÿð@_ H?2?9/9+á/83^]3/8+]q39=/99]]99]]3310!!#3.' ýߢ¼ªþg”‘Åþ;¼úDj¨4 ZåõÖ$*[p€g1111$Zd0 #`y $`"`?á?á9/^]]á9öá2]]ö]á9/]]qá210!2#!32>54&##!2>54.#ǀÃB'JmEEyZ4A{°oþºôTrFš¦ß XwI !K|\¶'Wg>lR7 -OxVdm:J;Y;xhý—ýð(He=8^C%}ÿì˜Ë#L@¯@Hº ` p  ¸ÿÀ@ H %¯%[f$!_ _?á3?á3öá]3/+]]9/+]10"3267#"&&546632&&k®{C;v°vY N'NUa;¤ðLW©ú¢lÄON?”'Q˜Ú‰Û–N#¢lÆ©¦Æn,*œ .Çü¶ &@ [gZd``?á?áöá]öá10#!!24.##3 ü`¶þ÷¨þ’—™ø®_ÅB~¸uÉ¢ é¹þé»^¶\µþô¶’ÕŠCû‰$Ǿ¶ B@&g  Zd _O¯ _ _?á?á9/^]qáöá2æ29/]10!!!!!!!¾ý ÷ýÃýé=¶¤þ<¢ýøÇ¾¶ p@ÿ€Ð¸ÿÀ@8 H  / ¯ Zd _?oÿ@H@H_??á9/++^]qáöá2^]3/+]]q9/10!#!!!!º÷ýÃý鶤ýü¤}ÿìòË+7@++ )Zg--[ f,+_$_$_?á?á9/áöá]ö2á9/10!#"&&546$32.#"32>7!ä7pv‚Kò¦V_¶ «oÌXH$SX].z¼B7x¾†,I>7þÕý3 iî¬Ãi,*¢Q˜Ú‰‚ØœV ´ÇÕ¶ =@# Ze À ¿  Zd _ ?2?39/^]áöá2]]]öá210!#!#3!3ÕºýfººšºªýV¶ý˜hRd¶ W@& + { › « û T + ; K   Zɸÿø@ H  ?Á2?Á2/^]+]Á2ñÁ2_]]]]q10!!57'5!dý¬¬f)˜)ff)ûh)ÿHþ{s¶/@ß`p/Z    _/á?/^]3/á]]]10"&'532>533L"N-%K=&»;i“þ{   2XD¶ú^iše1Ç¢¶ d@- f   °/Zd  H¸ÿð@ H ?3?399++öá2]]]3/8^]33/839]310!##373¢Óþ=‹ººyÄÑýøºrý¸¶ý%¨3ýƒÇ¾¶#@¯Zd_?á?öá]]31033!Ǻ=¶úð¦Ç/¶‹@69 H9Z¸ÿø@ H H eO  ¸ÿø@ H&  Z d H  ¸ÿð¶ H ?22+2?33+3öá22]+^]]]ö993+3+á2]+210]]!##!3!#46767##þE¬œžºþAJI?‹9ü–¶ûX¨úJw4†=GIûǶQ@)(Ze°'   Z dH  ¸ÿð¶H ?22+?3+3öá22]]]]öá2]210!###33&'.53×ý1¬ÕÌ®ºMLAŽ9üç¶ûLLJ CC> }ÿìqÍ'4@ [g)À)¿)p)/)_)[ f(#__?á?áöá]]]]öá10#"&&54663232>54.#"qQ í›£ïLLžð£›ë QûÑ4k¥rr¥k22j¤rr¦l4Ý©þêÆllƪªÄkkÅþ뫉ۙQQ™Û‰ŠÚ—QQ—ÚÇ3¶F@,[(8HgÏ@Zd`0@` ??á9/]áöá2^]]]ö]á10###!232>54&##37~Ϙ–ºj†Â~<ýN]‹[.¤®  [¨MýǶ9m þg GqQމ}þbqÍ18@"([g3À3¿3p3/3_3[f2-_#_ /?3á?áöá]]]]öá10&&'#"&&54663232>54.#"q1_Ž]+‰Zyg­3)£ïLLžð£›ë QûÑ4k¥rr¥k22j¤rr¦l4݃ⵄ&^<ŽIÆlƪªÄkkÅþ뫉ۙQQ™Û‰ŠÚ—QQ—ÚÇ ¶‚@V ù H  [ éù H  ?Ÿ¿ß Zd ``?3?á9/^]á9öá2]]Î82+]q2/]á9^]3+]q10#! #'32>54.##ºd þ1Qh7ŽÛþ¡å¤Z~Q%)SW \ý¤¶ÎÑW‚]>ýq\ž#EgEHd@hÿìÉË3B@'Y##Zg5¿5ÿ5`5?5*Z f4*'_$ ` ?3á?3á99ö2á]]]öá3]10#"&'532654.'.54>32&&#"ÉE€¸soÁA"W`f2 ™Iz]YƒU)@t¡aw¾JCA¥Xz†FsT[‰\/‡a™j7#"²xp6PC?%#Sh„TXŠ_2-#œ+q`9SC;!$L`~¶^@2 Ð O Ï  0 ¯ï„Z@àWgw¸ÿÀ@  H_??á2/+]3/^]]á2/]]]]]q10!#!5!!q»þ^þþ_¤¤¸ÿìݸ/@Ze°o¯Z d_ ?2?áöá]]]öá10#".5332>7ÝB…Ɉ€Ä…D»­¯Y€R(¸üLrÄRMŽÇz®üH¯À6bˆQ¸‹¶ l@ `p°ð¸ÿÀ@ H/¿@ H¸ÿð´ ¸ÿà³ H ¸ÿð@  H ?3?33++?3/83+]3/8+]39=/33103#3667ÅÆþ»þÅ'*.¶úJ¶üa[©JJ©aþ¶*ß¶H¸ÿøµH¸ÿø@HHH¸ÿø@/H%D´%%$%D%T%%% p€À¸ÿÀ@ H,o,, ,0,,¸ÿð@ H H %%¸ÿà³ H%¸ÿð¶ H%?33++3?333++/83^]]]3/8+]q39=///]^]q3+3+3+3+3+3+103>73#&&'&'#3>7)Åå  ÈÇþ‘¼þ ò¼þ~Åß  ¶ü¨8pi^&&Zcg1rúJª3l/7437/p6ü\¶ü‡.cb[&%blo1`¶ @  7  8p€À¸ÿÀ@ H   /  ¸ÿð³¸ÿð@(' ?2?399]]/822/83^]3/8+]q39=/3]33]3/8310!##33`Óþžþ‘¼ÅþZÆLN¾þ[{ý…üºýÑ/ýL7¶s@ï  @ H«˜@¸ÿð@/€OZw‡—O6?3?9]/^]]]á92/8]]]33/8]]]]]3+]103#3TÈþB»þBËÓãüƒýÇ/‡Rþ¶ 8@ g  ? O Ÿ f __?á9?á9æ2/2^]æ22/10!!5!5!!þüTÇýMƒý:Û‘¦‘û¤þ¼9¶&@óñ°Àõøõù?á?á/]áí210!!#39þk•ßßþ¼ú•ú1é¶!·¸ÿð´?///8338310#É ²ýà¶úJ¶3þ¼É¶$@óñ`p õùõø?á?áÖ]áí2103#5!!3ßß–þj®Ï•ù)%Á¶?Í/3/103#)Ëf¿¡þ¯þ£%œüdßý!ÿüþ¼NÿH¶º/á/3/10!5!Nü®Rþ¼Œ‰Ù! @ €_/]Ì/Í10#.'53x#RM?Û+.0ÙSXQ"QQL^ÿìœ^#2T@)G#U44o40H ¸ÿÐ@ H H V3P*R$P??3á?9/áá2æ2/++á^]öá2210!'##".5467754.#"'6632%2>55%!BN`?EtU0çì¸7Q4SB@J¶df•a0þ/=hL+ZzI a˜-A*'Q{T¤°ECZ70"‰(8)YŠbý&MuOc 9Q3\V®ÿì?/8µ-HW11¸ÿ¸@ I%GT0*P  P?2á?3á??öá22+öá102#".'##33>"32654&ž^šm<32.#"3267Re°‚JL…²fN•268<:‘”Qƒ66{?‰Õ–Û‰>"š  ÉÔÓÃ%¢qÿì04@&GU22.H V1+P P?3á?3á??öá]öá2210%##".54>323&'&&53#%2>754.#"T;M`<]šn<32!32>7"!4.`n¶ƒHBx§ecžn;ýL™—3WQL'(MQW`r… ì9XJŽÒ‡ˆÖ•NGµnqÁ¶ ¢Ûœ•DqP,ðp@NÏß`€ ?O¿G/¯ € OP ??á?^]3á2/^]3/]3á22/]9/]]]10###5754>32&&#"3‹õ·ÂÂ-U|N;c'/I((:&õÁü?ÁKD`kT# 0SAh%þü^?R^§@ 2SG7/`7p7€77/7/'HYG¸ÿÀ@M H ý°ˆ 0@``¿`ß` `@'@ H'2 7&&5467.54>3232654.##"32654&#"üÅ&/_Œ],!)8°]€Q$A†Í‹k j5'BW/*6@E+G12b’a%Oþ@;aHº¹7ZA°#L?)\lcdgidcjJq#mEL^5  (!/Pm=XŒa4*PqG<[B* R5=Y*?Q`3YŒb4 û%@.sl.:! ,M`spow{tx®2@GU`€ G TP ?2??á3öá22]öá10!4&#"#33>32\ipQnC¶¶ ER\0·¹‚4f”`ýÇþ2+?*¿Òý3 uå%@  GTS??3/åö2á2]10!#34632#"&d¶¶Ä=-'?,-=J)<6 +:98ÿ¼þuå!.@# #G  T"S P?á?3/åæ2/2á2]10"&'532>534632#"&B0?6#.#¶"Hm=-'?,-=þ ” 'A3ôûM{W/_<6 +:98®ð^@ D¸ÿÀ@ H/ G T ¸ÿø@ H H ??399++?öá2^]3/8+]333931073##3V‡%Óþo¬Ñþ°m´´7ªiþ%ý‘øRþZý6þí®d@ GT??öá]10!#3d¶¶®‡^,e@?# G¹ – ¦ ‰ g w  G,U.ð.Ï. .P..GT-#P( ?22??3á223öá2^]]]]öá9/]]]]á210!4&#"#4&#"#33>323>32ÑdiIfA·ciMh?¶” BOY.xŸ&IW`2¯±‚/[‡Xý¢‚4f”`ýÇJ”+?*X^/D-¿Òý3®^0@GU`€ G TP  ?2??á3öá2]öá10!4&#"#33>32\ipQnC¶” ER\0·¹‚4f”`ýÇJ”+?*¿Òý3qÿì-^0@HW!@!Ð!à!!H V PP?á?áöá^]]öá10#".54>3232654&#"-C}²og®GC|³og®Gý‰šš‡‰šš‡'‰Õ‘LL‘Õ‰ˆÓ‘KK‘ÓˆÑÓÓÑÑÏÏ®þ?^06@.HW22& G T1 P +P?2á???3áöá222]öá10".'##33>32"32654&ž;`M; ¶”:M`<^šm<754.#"".54>32373#46767#5LiAAlQ‡f]šn<‰H;?hK)¶”9GX^¨3_…Qý°JÉ+P=%Zÿì?^5H@-%G W7?7_7Ÿ77,G Ÿ¯V6&)P," P?á2?99á2ö]2á]]ö]á310#"&'532>54.'.54>32&&#"?:mš`mœ;LTY,A[95\HHsP+7dŒVa¡H?A‰Gfb8^FHqP*-PxQ(#"¦);$212#4./7#".5#5773!!ú-*# (04>jM,››Niþì?Š  N…e}QNæü‰ýƒab¤ÿìJ0@GU`€G T P??3á?3öá]öá210!'##".5332>53u ER\0[Š\/¶joQnC¶“+?).b˜iÍý=‚‚4e”`:û¶ÕJm¹ÿø@ H H ¸ÿÀ³H¸ÿÀ@ H¿ÏïP/O¸ÿð@ G  ??39]/8Á^]]]3/8++Á9=/3+3+10!33>73wþ‰¼Ç  Ǽþ‰Jý!hl``lh!cû¶ãJ/ù/ÿø@ H/ H' ¸ÿø@ H  H  H¸ÿø@ HT''¸ÿà@ H[  H'  '-.¸ÿÀ³H.¸ÿÀ@ H...1 1011¸ÿð@-  'fv?33]3?3]33/83^]]3/8++39=///+]+]3+3+3+3+3+3+10!.'&'##33>733>73ð¨   ¬Óþ翃  ³Ä¬   ‰ºþäh-24:>?:2j%ýœJý¸-ig[Wa_!ký•"\_XWhm/Hû¶#ÛJ å@¡‰ †÷å6èç øê9k{W:JdtX5E   ÷å6@H@Hk{W:J  0  °  Ù È º   ; K (    ??/]]]Á]]]]^]]qÞ]]]++Á]]]q9=///]]]]]]Á]]]q3]33]Á]]]q10]]33##˜þŸÏúúÏþuÏþôþòÏ3þfšýéýÍ´þL þßJ"d¶"¸ÿÀ³H¸ÿÀ@ H$¿$Ï$ï$P$$/$O$¸ÿð@ "#P?2?á333/8Á3^]]]3/8++Á9=/331033>73#"&'532>77 ½× ǼþNAVtP4L@#0F4%9Jý›(XXR#Va^!cû'QZ1 ‘,@) R5J l@ — H¸ÿÀ@ H ? _  ˜¸ÿøµ H¸ÿÀ·H?¸ÿð@ HO HO?á2+?á2+/]+33+]]3/+3+]310!!5!5!!5ýþ °ýô}D‰’üÑ=þ¼¢¶'@@%÷ 'ñ#ö  #õÙ_)õøõù?á?á9/]]á9/]æ33ñ2â/210.54ᒑ4>7ô-A(Mƒ_6ƒ}}ƒ6_ƒM(A-wssw0=# –!GnNNgV›VgMNnG!• #=0þ´i{ zjéþ-@0@p€ª@€À??/^]á]q103#é––ø3þ¼˜¶)@@% $$÷ñöõïÿÙ$õ#ù õø?á?á9/]]á9/]33æñ2â/2104675&&54.'53"5>5áwssw-A(Mƒ_6!A`>}ƒ6_ƒM(A-;jz {iL0=# •!GnNþ³4H-›Vgþ²NnG!– #=0fJZ#<@ %%  ­ ¸ÿÀ@H­  ? O o  /]3ñÈ/+2á/]]Î10.#"563232>7#".%7-)<;8d”27C/%7/(<;8c•27C‹ !,¢l  !,¢l “þ‹‘^A¹ÿð@ H0 °Àš¸ÿÀ@ H ›/^]/õÎ/+3/á2]10+3##".54>32Õy3ßï#..##..#¤ûçH&5!!5&%4""4¼ÿìºË%Z@%F %'@'H 0 @ Ð  s!s¸ÿÀ@ H??99//+3á3á/^]á]Æ29/3á210$#5.54>753.#"3267vnL‰WŠb45a‹V‰Hˆ.58<;‘”Qƒ6ÔÈÎ K…ljˈK ¬¤!š  ÊÔÒÃ%¡D#É(u@ o#¸ÿÀ³ H¸ÿÈ@0 H**!@ H)!u /"""¯"¿"ß"ÿ"""ts?á?á9/]3á23/+3]3/++399//^]3á2102&&#"!!!!5>55#534>šj®BB8K0RY@+¦š )DaCÕ‰DW‰_2{ì‹#7†@#.« !p99 $ª€¸ÿÀ@1 H8€  )® 3®Ï ï    °  ? o  /]]]áÆ2/]á93Æ]23/+]áÆ2]3/]9ñÀ/]210467'766327'#"&''7&&732>54.#"º#b/l<7&&54>32&&#"#"&'532>54.'.7>54.'‰-:KU7dŒVaH8AŒGcf9_FHqN*)4EL;l›`lœ;LTY+E]73^LIsP)š?eH#)!AlR/&)3S@-&rT=bD%( ‹';9.,/ANa>4UD1&mNGoM(! ž'3--1>NdY%?:7 $.8"&@;9-:3 jÙ 5@! †¯À†@P‘Ÿ Ï 0  /]]3å2/^]áÜ]á104632#"&%4632#"&38('::'(8w8(#:&(8s6015522560 &522dÿìDË%AUj@CÅ"""&LÃ4À44WBÃ& ÉÉ/Ÿ`p€-GÈ;QÈ-?á/á99//]^]áá/áÞ]qá99//3/á10"32>7#".54>32&&4>32#".732>54.#"{=^@!=_C69815<#f˜e36i™d?„;>4aü¾6aЧÀhhÀ§Ša66aЧÀhhÀ§Ša6me¯ê……ê¯ee¯ê……ê¯e,SxKNxR+  ƒ Bzªge§xC!þ¾hÀ§Ša66aЧÀhhÀ§‰b55b‰§Àh…ê¯ee¯ê……ê¯ee¯êDBÇ-N@/-à///O//¯/$à `  .-ä'äÀäÞ?áÜÄá99/áÆ]2/á]Ö]á2210'#".5467754&#"'663232>55ç'/8#+H4c=80Z*03u<}wÉ3D)2*":+R# 3M3flH9d$jzþ:9+3-,A,1Rs“Ç `@ ë P`   ¸ÿÀ@! H Ÿ¯ëŸ   /3/39=/93333/]á]Æ+299//]á310%R5uîîuþË—6tíítþÊ)žNþ¤þ¤N›žNþ¤þ¤N›f9@$ª–‹yVK8 ­³?á/]]]]]]]]]Þá10#!5•üùýé–ÿÿRÑBydÿìDË:NÂ@}¤´Ä´ÄRÅ Å ÅÀÐEÃ-À--P;ÃÉÉ/Ÿ`p€&@È4JÈ&?á?á99//]^]qá339á2/áÞ]qá99//]^]q9áá29‡+Á‡+Ä]10]32654&#####324>32#".732>54.#"çH[OSYF’-9C5*! ³Î_騞ûë6aЧÀhhÀ§Ša66aЧÀhhÀ§Ša6me¯ê……ê¯ee¯ê……ê¯eHEJ;0K9( nW%G8`þ }‚þÃhÀ§Ša66aЧÀhhÀ§‰b55b‰§Àh…ê¯ee¯ê……ê¯ee¯êÿú ¶º/á/3/10!5!ûô Œ{VòË'C@,« )Ÿ)ª0@® àðo #®?á3/^]]]qá/]á]Öá104>32#".732>54.#"{2UsAAsV22VsAAsU2{4F((F55F((F4AsV22VsAArU11UrA'E44E'(G55Gf¢ :@! ª ï `  ­ ­³?3á2/á/]]333á223]10!5!3!!#5!éþ}ƒ–ƒþ}–þ}œ‡–…þ{–þþú––1JmÉ@@á O   @ Há¸ÿÀ@H åÞåÝ?á?á9/+3/á+]Þ2á10!57>54&#"'6632!mýÄÑ9H(B63]-N6…RUC;"A@2&^0A!?[92VU[79hÉ0a@<áá2_222@ H''@ Hä/_ß&#å,Þå ß?3á?á39/^]á9/+3/+]Þá3/á9/910#"&'532654&##532654.#"'>32NQEXX(S~VF{9?„5bXk`bb\T#/;a3E=DL,EiF#çNjjN73#‰//*Û?MQ#yôLQQ"QXS®þJ7@" G U `p€GTP  ?3??á?öá2]öá21032>53#'##"&'#3djoRnC¶“ 0gHj#¶¶‡‚‚4e”`:û¶“ST.*&(#U*þÀ6qþüf7@!™0@P ™   /2?Á/]]Öá9/^]á10####".54>3!fxÏy=U_›m32#".“"./""/."Ó&5!!5&%4""4#þ˜9@ „Œ@ H /á/9/+áÆÖá9/]33310#"&'532654.'73˜–-1GP.?%Zy9":+þáall+1# °s):?Jº¶4@!O@ Há 0Ý åÜ?áÍ?/]]3á3/+]103#4>7'3‡‘&^J¶ü”<<8(I`B‹Ç.²à¸ÿÀ@ H!!à äÀäÞ?áÜáÖá]Ö+á10#".54>3232654&#"‹)MmD?jN+)LmD>kN,þ:KVUKKUVKmS‚Y//Y‚SSX..XSwyywxssTs–Ç V@/Ÿ¯ë   ëŸ @     /3/399=//3333/]]áÆ299//3á]10'7'7–þÊtíít6þhþËuîîu5þeN\\NþbþeN\\Nþbÿÿ?‹¶&{'J<üý·0@¿?@@]5]]5]]]55?55ÿÿ, ¶&{í'5t3ý·(@°@p@]]5]]5]5?5ÿÿÎÉ&u'¨<?ý·<@'8p8P88´3¤3„3d3P303 33L]]]]]]]]5]]55?55DþwD^';D@2š(('F == F¸ÿÀ@H ''-›7Q/á3?å2/9/+á^]Î9/á3/á103267#".54>7>55#".54>32P'A20D+9U7T–E@R¼a]•g85Q64B&º#..##..#¤%:[QL*)CEO50O93#’*:3`ŠXDhZT/-C>C+/&5!!5&%4""4ÿÿÝs&$Cÿ½R´&¸ÿœ´%+5+5ÿÿÝs&$vR@ !&l%+5+5ÿÿÝs&$KR´&¸ÿÿ´%+5+5ÿÿÝ5&$RR@ &,%+5+5ÿÿÝ+&$j!R@ &)%+55+55ÿÿÝ&$P}1@ ïßP@ %+55]]]]]]]55ÿþV¶„@* Z©$4T  g¸ÿð@  __ _ O  ¯   _?3á/?99//^]qááá2/83æ29///]]]]}‡ÄÄ3á2310!!!#!!!!!!#Výþ%˺ÉýÃýê=ûu“lÅþ;¶¤þ<¢ýøÆ¨ÿÿ}þ˜Ë&&zü ¶O*$ %+5ÿÿǾs&(Cÿ·R´ &¸ÿ´ %+5+5ÿÿǾs&(v?R@ &J %+5+5ÿÿǾs&(KÿñR´ &¸ÿý´ %+5+5ÿÿǾ+&(jÿõR@ & %+55+55ÿÿ>ds&,CþµR´ &¸ÿ¨´ %+5+5ÿÿRŠs&,vÿxR@ &j %+5+5ÿÿ©s&,KÿR@  & %+5+5ÿÿ@w+&,jÿ R@ & %+55+55/ü¶]@:[g! !Zd _?o¯ßÿ@H``?á?á9/+^]q3á2æ22/á2]öá9/103!2#!#%4.##!!3 /˜—™ø®_`¶þ÷¨þ’˜B~¸uÉPþ°¢ %‘\µþô°¹þé»^ƒ`’ÕŠCþ¢þ$ÿÿÇ5&1R‹R@  & !/ %+5+5ÿÿ}ÿìqs&2CTR´(&¸ÿ«´.( %+5+5ÿÿ}ÿìqs&2vR@ 4&X(. %+5+5ÿÿ}ÿìqs&2K®R@ (&0( %+5+5ÿÿ}ÿìq5&2R}R´0&¸ÿð´1? %+5+5ÿÿ}ÿìq+&2jªR@ 1&(< %+55+55-Ý{ ‡¹ÿð³H¸ÿà@HH H H H¸ÿð³H¸ÿà@0H@  P   Pp€ ÀÐð ³?^]q2323/]3333]10++++++++7'ËþÂi=Bhþ¿?fþ¾þÃgÓ?iþÂ>gþ¿þÀf=þÅg}ÿ´qü&1\@:)*'[ g3À3¿3p3/3_3[f2)*-"_  -_ ?3á?39á9öá]]]]ö9á910#"''7&5466327&&#"'32>\[^Q í›½…N‰Za[Lžð£^¡BPü·.0C0rGr¦l4jXý¾/rEr¥k2®•cþÞ·©þêÆlGN‘d*¾ªÄk*&üáƒÑN± Q—ÚŠ—üTQ™Ûÿÿ¸ÿìÝs&8C=R´&¸ÿÀ´ %+5+5ÿÿ¸ÿìÝs&8vÅR@ $&H %+5+5ÿÿ¸ÿìÝs&8KyR´&¸ÿý´  %+5+5ÿÿ¸ÿìÝ+&8j}R@ !&, %+55+55ÿÿ7s&<v1R@ &c %+5+5Ç3¶<@![gŸ Zd``    ??99//ááöá22]]öá10###33232>54&##37~Ϙ–ºº°†Â~<ýN]‹[.¤® [¨Mþöü9m þg GqQˆ®ÿìuKm@HF.5G/@ H_.o./..A$GWMM MÀM@GATL$5:PGAP?3á??á9öá]öá9///^]]+]áá10#"&'532>54.'.54>54.#"#4>32ò+?K?+'F98X=!8eUa‹5AHL%8Q4+H8?U5)>H>)!W~Q'#"¦-@($;8:#(DCF*6O?6:C,*>)0SAûN°hU%&Ltÿÿ^ÿìœ!&DC”´3&¸ÿå´93 "%+5+5ÿÿ^ÿìœ!&Dv5@ ?&…39 "%+5+5ÿÿ^ÿìœ!&DKâ@ 3&3;3 "%+5+5ÿÿ^ÿìœã&DR½@ ;&)7#"&'#".732>55"!4.^çì¸7Q4SB@J¶dƒ¦+3¦gašl9ý`““1UNJ%'KOU1ŠÊ>"L_tJG{Z4½aO=hL+ZzI …n ×7T3¤°ECZ70"‰(8U]U]GµnqÁ¶ ¢rs6U;'Q{R\V&MuOc 9Qcœ•DqP,ÿÿqþo^&FzB ¶/&  %+5ÿÿqÿìá!&HC”´(&¸ÿ¹´.(%+5+5ÿÿqÿìá!&HvR@ 4&v(.%+5+5ÿÿqÿìá!&HKÞ@ (&0(%+5+5ÿÿqÿìáÙ&HjÚ@ 1&(<%+55+55ÿÿÿÞg!&óCþU´&¸ÿš´ %+5+5ÿÿ®B!&óvÿ0@ &t %+5+5ÿÿÿ½U!&óKþ»@ & %+5+5ÿÿÿî%Ù&ójþ»@  &%+55+55oÿì-#'9t@F(H# """ W;@;Ð;à;;2H V: #!!-P¯¿07P?á?99//]]3á39öá^]]æ9///9á210#".54>327&&''7&&'774.#"326-C}²oh¯G?v¨ifš+xZÿJÙ(U/FAz;ãJÃCoO,¼"FnKMmF!!GmLš‡=ŽÜ˜OB¹ww¸~A;<vÀQ™rƒ7{ H,ŠquAœ»Ý°8kR2.XƒUL}Z1Çÿÿ®ã&QRù@ !&"0 %+5+5ÿÿqÿì-!&RCØ´ &¸ÿ×´& %+5+5ÿÿqÿì-!&RvP@ ,&N & %+5+5ÿÿqÿì-!&RKû´ &¸ÿú´( %+5+5ÿÿqÿì-ã&RRâ´(&¸ÿý´)7 %+5+5ÿÿqÿì-Ù&Rjù¶)&¸ÿù´ 4 %+55+55fø¬+`@0-"ªªVf(8¸ÿð@( H'­ ­ `°ÀЭ³?á3/^]á3/]qá/3+3]]á3/á]105!4>32#".4>32#".fœý¿)*  *))*  *)‡––þî#/ /#!//Û#/ /#!//sÿ´/‘$-\@;'(%H  W/@/Ð/à//H V.('+"P +P?Æá?Æ9á9öá^]]ö9á910#"''7&&54>327&&#"4'326/C}²o}bDƒP?FC|³o?q1DƒP>EýK-š‡D'þrH-š‡'‰Õ‘L5mJƒHÕ‰ˆÓ‘KlIIцTƒ3‡ÏÑŸcý{Óÿÿ¤ÿì!&XC£´&¸ÿ›´! %+5+5ÿÿ¤ÿì!&Xv`@ '&W! %+5+5ÿÿ¤ÿì!&XK@ &# %+5+5ÿÿ¤ÿìÙ&Xj¶$&¸ÿû´/ %+55+55ÿÿ þß!&\v@ /&g#)%+5+5®þ? 18@/H W33' GT2,P!P?3á?3á??öá2222]öá10>32#".'##3%"32654&d:M`<^šm<>%+5ÿÿ/ü¶’qÿìž'8U@1-G& "&U::6H V9'%O" 3P (P?3á?]3á?9/3á2?öá]æ29/á22210%##".54>323&'&&55!5!533##%2>754.#"T;M`<]šn<32\ipQnC¶œœ¶{þ… ER\0·¹š‚‚4f”`ýðÕ‰¶¶‰¸+?*¿Òý\ÿÿÿõÄ5&,RþóR@ &#%+5+5ÿÿÿ£rã&óRþ¡@  & %+5+5ÿÿ=|Á&,Mÿ"R@ & %+5+5ÿÿÿë*o&óMþÐ@ &%+5+5ÿÿ0Š@&,NÿR@ & %+5+5ÿÿÿÞ8î&óNþ½@  &%+5+5ÿÿRþBd¶&,Qœ ¶%+5ÿÿDþBƒå&LQ%@ o%%%%+]5ÿÿRd7&,OPR@ & %+5+5®dJ@ GT??öá]10!#3d¶¶JÿÿRþ{)¶&,-¶8@O@H¸ÿÀ@H¿! !!P!!!@H+]]]]]++]]5ÿÿ þ‡å&LM.@ Ïß5Ÿ5€5_5@5 555@H+]]]]]]]]55ÿÿÿHþ{ds&-KþÊR@ & %+5+5ÿÿÿ¼þW!&7Kþ½@ & %+5+5ÿÿÇþ;¢¶&.9s¹ÿ±´ %+5ÿÿ®þ;ð&N9!¹ÿÄ´ %+5®ðJI@ D¸ÿÀ@ H/GT ?2?399öá2^]3/8+]339310!#373#þ¬m´´ƒ3Íþo¬éQþhJþç5##33&'&&53‹3M"N-%K=&ý¬ÕÌ®7dþ{   2XDºMLAŽ9üç¶ûuAA8}4 ú^iše1®þ^(:@" G$U**`*€*GT)P P?á???á3öá2]öá9/10"&'532>54&#"#33>32î0?6#.#ipQnC¶” ER\0·¹"Hmþ ” 'A3m‚‚4f”`ýÇJ”+?*¿Òü•M{W/ÿÿ}ÿìqÁ&2M¼R@ *&() %+5+5ÿÿqÿì-o&RM@ "& ! %+5+5ÿÿ}ÿìq@&2NªR@ -&2( %+5+5ÿÿqÿì-î&RN´%&¸ÿÿ´* %+5+5ÿÿ}ÿìqs&2SìR@ 4&C(< %+55+55ÿÿqÿì-!&RSF@ ,&E 4 %+55+55}ÿì¤Í*[@6Z'' g,,[ f+_O¯__$__?á?á?á?á9/^]qáöá]æ29/á29/]10!!#"&&546632!!!!!"3267&&¤ý +[0£ïLLžð£bTôýÂýé>üVr¦l44k¥r4Z&&Y lƪªÄk¤þ<¢ýø…Q—ÚŠ‰Û™QXqÿìá^*6?d@;?HÐ111 7H%WAAÿA@A+H V@P?+????.<4P .P?33á2?33á29/^]]áöá]]qö2á9/]á29910"&'#".54>326632!32>732654&#"4.#"`‚ÌA?Æ€g®GC|³oyÃ?<¹ucžn;ýL™—3WQL'(MQWûš‰š–‹Œ—š‡ð9X>r… pmmpL‘Õ‰ˆÓ‘KojipGµnqÁ¶ ¢;ÑÓÉÑÜÎÏbDqP,œ•ÿÿÇ s&5vTR´)&¸ÿî´# %+5+5ÿÿ®!&UvÎ@ #&@%+5+5ÿÿÇþ; ¶&59w¹ÿ¶´# %+5ÿÿ`þ;^&U9þñ¹ÿ´%+5ÿÿÇ s&5LR´"&¸ÿ©´( %+5+5ÿÿr !&ULÿp´&¸ÿã´"%+5+5ÿÿhÿìÉs&6v;R@ @&p4:%+5+5ÿÿZÿì?!&VvÜ@ B&]6<%+5+5ÿÿhÿìÉs&6KÿíR@ 4&"<4%+5+5ÿÿZÿì?!&VK›@ 6&>6%+5+5ÿÿhþÉË&6z5¹ÿú´:4%+5ÿÿZþ?^&Vzð ¶<6%+5ÿÿhÿìÉs&6LÿæR@ 9&?4%+5+5ÿÿZÿì?!&VL—@ ;&A6%+5+5ÿÿþ;¶&79ù¹ÿØ´%+5ÿÿ!þ;F&W9ÿ]¹ÿ÷´$%+5ÿÿs&7LÿÈR@  &%+5+5ÿÿ!ÿìè&W8o ¶a$$%+5¶s@Là_ß 0@¿ÿ ZPð w‡—1  ` _?á2?9/3á2/^]]]33/]]9á22/]9]]]q10!5!!!!#!5¶þ^þþ_'þÙ»þ×3ߤ¤þ!•ýbž•!ÿìF%j¶ ¸ÿÀ@7 H'/'?'#G °À"O OP ?á?33á29/3á2/^]33Ä]2á22]3/+33]10%2>7#".55#535#5773!!!!ú-*# (04>jM,‹‹››Niþìþþ?Š  N…eûŠøQNæü‰øŠûabÿÿ¸ÿìÝ5&8R`R´ &¸ÿÿ´!/ %+5+5ÿÿ¤ÿìã&XRó@ #&$2 %+5+5ÿÿ¸ÿìÝÁ&8MR´&¸ÿÿ´ %+5+5ÿÿ¤ÿìo&XM!@ & %+5+5ÿÿ¸ÿìÝ@&8N}R@ &" %+5+5ÿÿ¤ÿìî&XN @  &% %+5+5ÿÿ¸ÿìÝÙ&8P{R@ &" %+55+55ÿÿ¤ÿì‡&XP @  &% %+55+55ÿÿ¸ÿìÝs&8S²R@ $&6, %+55+55ÿÿ¤ÿì!&XSP@ '&H/ %+55+55ÿÿ¸þBݸ&8Q ¶ % %+5ÿÿ¤þBJ&XQ¸ ¶!!%+5ÿÿþs&:K;R@ +&3+%+5+5ÿÿã!&ZK®@ 0&80.%+5+5ÿÿ7s&<KÿÐR@  & %+5+5ÿÿ þß!&\K©@ #&+#%+5+5ÿÿ7+&<jÿÎR@ & %+55+55ÿÿRþs&=v9R@ &^ %+5+5ÿÿR5!&]vÖ@ &` %+5+5ÿÿRþ7&=O)R@ & %+5+5ÿÿR5å&]OÍ@ & %+5+5ÿÿRþs&=LÿàR@ & %+5+5ÿÿR5!&]L†@ & %+5+5®¾%@  GT P??áöá]3/1034>32&&#"®-U|N;c&/H((:'°kT# 0SAûNËþéË+J@*0-)G 0@`)) #P P?á?á9/3á2/^]3/3/3á2/2]10#"&'532>5#5754>32&&#"3-U{N =9(;&ÂÂ-U|N;c&/H((:'öDü?kT# ™ 0SAÃKD‰kT# 0SA‘‰Ýª#1>@^‰))¾**0118ƒ    V#f##Yi2ƒoÖ 7 G W Ç  Ù8HXÈ €Ð¸ÿÀ@ H@@@/@@Ÿ@ß@ ¸ÿð@1 _# H <55Œ<ï`1 1#<11<#) ?3/9////]]]]á]333+á/83^]3/8+]q39=/3]]3]]3/]á99]99]3/]qá3/33/í]10#!#&&54>32.'>73#4&#"326P<3ü¾šýÓœ¼ø3: ;R21T># ”‘…0/*Û?MQ#y¼?21?31 2?œF`û#‡þyÛ`F3O87Oü_}.6;<6.þƒ‹=A@AGBþö4<<43;<^ÿ윪 1@T`œ@#UƒAA/AAA[ƒK K K 7G1Ub?b>H(¸ÿÐ@: H( H((VaXŒPP ` p  PP^Œ@FPFFF'$P+8R+2P/]??3á?9/áá23/]á9/3/]áæ2/++á]öá2299//Íá3/]á10>73#'##".5467754.#"'6632%2>55#".54>324&#"326Ç0/*Û?MR#xR%!BN`?EtU0çì¸7Q4SB@J¶df•a0þ/=hL+ZzI a†#=T12R;!!;R20T>#u?12?981?¸=A@AGBù\˜-A*'Q{T¤°ECZ70"‰(8)YŠbý&MuOc 9Q3\V3Q88O33O87O45<<55<<ÿÿÿþVs&ˆv%R´ &¸H´%+5+5ÿÿ^ÿìD!&¨vu@ ]&qQW%+5+5ÿÿ}ÿ´qs&švR@ >&X28%+5+5ÿÿsÿ´/!&ºvP@ :&L.4 %+5+5ÿÿhþ;ÉË&69¹ÿÚ´4:%+5ÿÿZþ;?^&V9»¹ÿá´6<%+5Ùš!%@À€_/]3Ì2/Ì9=/3310#&&'#5>73šy3l46j3yDC;À;CEÙ"a77a"LQQ""QQLÙš!%@À  €_/]3Í2/Ì9=/3310#.'536673šEC;À;CDy3j64l3yLQP##PQL"a88a"ÙZo@ _/]á/Í10!!?ýÁo–!Ù{î/@ƒÿÀ ƒ  Ÿ  €_/]áÍ]2/áÜ]á10#".'332>7{,MmGImI'l0C,$A3"î=eJ)'If?+2 1( uå @‡‘Ÿ Ï ï 0  /]]å/á104632#"& =-'?,-=s<6 +:98mÙ1‡@@-ƒ?O_ƒ0  Œ?O_¯ÿŒ_/]áÔ^]á/]áÔ]á10#".54>324&#"3261#=T12R; ;R20T>#u?12?981?²3Q88O33O87O45<<55<<þB^@ €„ Ž /á//áÌ103267#"&54>73´4"-@dd/8‹î-+qhZ*K@4…ÙÑã8@#/  @H@ H /]2á3/++á3/^]Ì]10".#"#>3232673þ(OLF -0h!5J.*QLE-.i!5JÛ#+#5>73#%>73#ß//*Ç?MQ#ek0/*Æ?MQ#dôLQQ"QXSLQQ"QXSøÙ! '@ H@ ’€ _  /]í/]3Í2+10>73#ø Ç!-4lôMQP!NWV  ‰´ )f@„$$$$Ï$$@ H$$ „¸ÿÀ@' H H ’ ‘'ÿ`°Ð/^]]]3å29/í/3Í2+3/+á3/+]qá10>73#'4632#"&%4632#"&þ Ï08= Rê8)#:&)8µ8(#:&(8‡KOQ$ MPQ%60 &522560 &522ÿÿÿéݼ&$Týñÿ—¶0"¸ÿé´""%+]5?5“H‘^3@€  –ÀÐ4Ddt¸ÿÀ¶ H›/å/+]]í]104>32#".“"./""/."Ó&5!!5&%4""4ÿÿÿçM¸'(Týïÿ—.´¸ÿÀ²H¸ÿ@%g¿]]þ4++5?5ÿÿÿçP¸&+{Týïÿ—1´¸ÿÀ²H¸ÿ±@%eo/]]]þ4++5?5ÿÿÿç`¸',üTýïÿ—f@À 0 ¸ÿ¥@/%ðÐÀ¯p`P@? @H@ H++]]]]]]]]]]5+]]]]]]5?5ÿÿÿçÿìÃÍ&2RTýïÿ—G@0- .€.p.P. ...$.. %PPg¿777]]þ]]44+]]]]]]]5?5ÿÿÿçT¸'<Týïÿ—K´¸ÿÀ¶H ¸ÿÀ² H¸ÿÖ@%À° ?/]]]]]]]5++]+5?5ÿÿÿçÍ&vZTýïÿ—5@#5 66666%PPg¿???]]þ]]4+]]]5?5ÿÿÿäÿìw´&†UþÐ@À$@$ $:%+]]555ÿÿݼ$ÿÿLJ¶%Ǿ¶C@ Äô°¸ÿÀ@H/Oo@HZd_??áöá+]3/+_]]10!#¾ýú¶¦úð¶%h¶X@ [`p°ð¸ÿÀ@' H/_oŸ¿@ H [ H _?á?3+/á+]3/+]á9=/3310%!53!&&hû½»^*þ®ü.}}…1ÍJ¨[ý ða¨ÿÿǾ¶(ÿÿRþ¶=ÿÿÇÕ¶+}ÿìqÍ+S@4"[g-Ð-Ï-€-?-o-[f,`¯ßÿ'__ ?á?á9/^]áöá]]]]öá99//10!!%#"&&54663232>54.#"ìýê…Q í›£ïLLžð£›ë QûÑ4k¥rr¥k22j¤rr¦l49¡E©þêÆllƪªÄkkÅþ뫉ۙQQ™Û‰ŠÚ—QQ—ÚÿÿRd¶,ÿÿÇ¢¶.‹¶ _@/ïÿ@H@ H@ H  ¸ÿð@" /O_Ÿ¯Ïï H  ?2?3+/8]]2/839=/33+++]10!#&&'#3‹ÆþÛ.*þÙÅ绚a¨KK¨[ü`¶ÿÿÇ/¶0ÿÿǶ1Rî¶ c@> À? O o 0 p € O  _¯ _ _?á?á9/^]á/]]3/]]Î]]q2/99//]]10!!!!!5ͦýZRJü¶südN¢ ¤û’¤¤ÿÿ}ÿìqÍ2ÇÁ¶1@Ze ° o Ÿ ¯  Zd_?2?áöá]]]öá10!#!#!Á»ý{ºúúî¶ÿÿÇ3¶3N¶ Z@ [ H ¸ÿÀ@&H  / o  [/? _ _?á?á9=/3/]3á2^]3/+99//+á10355!!!Nžþn}ýX…þg÷˜f%“¤ýîý¤¤ÿÿ¶7ÿÿ7¶<hÿìºË!.;@P"gZ;!š‡z([g=/==Ð=¯=¿==_=0===5[f<";`./`!!!!??99//3á23á2öá^]]]]]]qqöá9/]]]33á]2210332###5#".54>3332>54.+"33´»I†Â~<4TxŸe/»/eŸxT5=~Â…J»]‹[.)SW9»9WT(.[‹]Ë´^™Äf={nR0áá0Rn{=fÄ™^üS;i”XN‹h<32!!5>54.úr¤j2#Qƒ_ý°b@oP.Q ìš›ë Q.PnAbý°_ƒQ#2j¤)Dºud»«—A“¤0‡¨Ço–ô¬^^¬ô–oǨ‡0¤“A—«»duºDÿÿ@w+&,jÿ R@ & %+55+55ÿÿ7+&<jÿÎR@ & %+55+55ÿÿqÿì‘!&~T@ J&>D/%+5+5ÿÿZÿì\!&‚TÊ@ F&m:@-%+5+5ÿÿ®þ!&„TD@ %&b %+5+5ÿÿ¤ÿìw!&†Tþδ"&¸ÿý´"%+5+5ÿÿ¤ÿì=´&’U²¸ÿî´,B%+555qÿì‘^=8@8G/(??HV>" P8/,P3?3á222?á3?öá]Ô2á2210%2>754.#"".54>32366733267#".'#5LiAAlQ‡f]šn<=q¢dp1 !  2"%A"&?2$ ;M`ƒ/b˜hek7ÚÌÑÍ—HÔŒÕISU#R!hy~7þ]<3… '@0"=.®þu=Y@49H3/333,G W? ?0?"GT>2P333"'PP?á?á29/^]á9?öá2]öá99//]9á102#"&'#4>"32>54.##532>54.w`£vC˜°¹?x­m`¤<¶Ey¨c8dK, NRR$PoF5`„OfMRwN%&D_1b”b•­ʺl¢m7 ýé4{²s7–L`ü’ (MoGPuM%˜(If=?^> þßJc@@HP/OH¸ÿð@   @ ¸ÿð@   ??33?3/83/8^]39=/333/8á]^]]+10%#4>733>73`" ¾%þ`½Ù Ǽ>ˆ†~4*y‰?>ýº(]ZPR]Z!Loÿì-2DQ@.F8.3H$WF@FÐFàFF=H.VE$B 88 BP)P ?3á?á9/993öá^]]ö2á9/99á10.54>32.#"#".54>4.'3268]C%3\}JDq`Q#J IQ[3*<'=A)1l~“XÁƒC=uªnj£zSþQEoYI:b‘gBoQ-´Zÿì\^9Y@7#-W; ;°;À;?;_;;4F##GV:P¿9y9‰999 1P( P?á?á9/]]á9öá3/á]]]æ29/910#"32>7#".54>75.54>32&&#"3œŠ…)F`73\QG;žmq¦l5&?R,+F3:iV5ZRM(?KGls'Hd=‡™[^3E* ")1VuC>X>) +>P2FmJ& “"&MM-@'qþoj39@.F 55À5 H))V4.P?á22/æ2/á]Ö]2á3/3105!#>54.'.54667#®¶€¸~L( -TxKG_:"+ª+"0[MY‡\.\šÉl+/(`/{™vͳš…o0Yl@#.;H*-XRK HHC%"Bl˜f”èÙl®þ^1@GU`€ G TP  ????á3öá2]öá104&#"#33>32\ipQnC¶” ER\0·¹þ¯‚‚4f”`ýÇJ”+?*¿ÒûGqÿì+'[@:%GW))Ð))Ÿ)@))$G V(PË$º$‰$™$$$$PP?á?á9/^]]]]áöá2^]]]]qöá210#"&&5466322>7!"!4p³~v¯t83o±~v°u:þ+IhE#ýË!DhJGfD#3 „ ¼þ×ÎmmÎ)¼¼)ÎlkÍþ×ü¹J”ß•“ß•KE‰Í‰¤ÿìwH5@#0   `pÀÐGTP??áöá^]3/]1032>7#".5Z?H-*$ )04>jM,HüüabŠ  N…eÿÿ®ðJúÿòÿì!.h@*") ) )P4D 0`000.¸ÿð@.)PP?á?á9/3?/83^]]3/]]]99=//339310#'.#"566323267#".'.'#¸5 +=+"2B#JiO?H.&&7%';/%‡  5å3 )C1‘ *Y‡]ü669… (@.¢!^aWMªOýÁ®þJ?@& G U `p€GT P  ?3??á33?öá22]öá221032>53#'##"&'#3djoRnC¶“ 0gHj#¶¶‡‚‚4e”`:û¶“ST.*&(#U*þÀ6ÏJ;@ GW°¸ÿð¶ ?2?3/82^]]qöá9=/331033>53#¼É ZrB¶%\šuÀJý°!cg\`Íç—£þàþõýqþojF~@N2;;*AF8--$ F H?H_HHïHHH$VG<28P9*IYi8$O9ú??9/á9]]9á22öá]]Ö]ñÀ/^]9/3á93/310#"#>54.'&&54>75&&54>7##5!#"3#¢QW--TxKG_:"+ª+"0[M²¸/Nf7er-Ok>"'!U.>7I‘sG FrQw‰1UqAN`;".;H*-XRK HHC%""ǵMcC †uHfI1™&NuN5Q7ÿÿqÿì-^RÿìÉJX@8 G/Ÿï G/ïÿ@HT PP?á??á22ö+]á3]3/]3/9/]á10%267#"&5!##57!#P/J0qqþm¶Ý‰'Ó/  „‚¾üP°JPšýNF7¤þ-^'9@!%HW)Ï)@)) GT(P"P?3á??áöá22^]]]öá10#"&'##4>32"32654&-?u§hK6¶Ax©ia£wCþ;‰‚6KŒ{}'‰Õ‘L--+.'a.þ݈ӑKK‘ÓÄÈþ¬31ÓÑÑÏqþoo^1Q@6''F   3?3_33ï33HV2(-Q7 (8H $ú??9]]á2öá]]Ö]2á3/10#>54.'.54>32.#"-I~aG_:"+ª+"0[MM„b7Iƒ³jN•268<:PrI"`yN/.;H*-XRK HHC%"Av´‚šâ•I"š  9p¤qÿì…J)6@!$!HW+++ +°+à+H V*%PP?á?á2öá]ö22á210#".54>3!!32>54&'#"->z´uk¯}DM΀éþö%A0ý!GnMLmG!OK;_‹Z+øoÀPFŠË…œÚŠ>š)]l|6Ui;7b†N×Y,c¡ÿåfJ:@$   W+;GàPP?á?á2/]áÆ]]æ^]210!32>7#".5!57fþŒ->$*($ '.5@uY4þ׆Jšý¢;R3‡ M†hsJP¤ÿì=J)@GW`€GT P?á?3öá]öá10".5332654.'3\ªd)¶ BfF’ ¶ôPŒ½mXý²VŒc6è÷G}ut==rwKþÁþÓqþ%^%5^@<1%G–¦&HW7 77à7o77Ÿ7@777GV6+P 1P$??3á2?3áöá^]]]]qqöá9/]3á210.54>746324.#">fm·†K 8N-%?-3Xt@¥‘Z’f7V¾hO6I+1%H{Y3þÚC‰Õ—S˜Š}7`3hr}Go™a0^¼ÁPÉz•ÙJþ&%b”e35WAý ;kŸÿìþ%N( @hxg w Ç  v7¸ÿÀ@H4À¸ÿÀ@ H**?*O*Ï*°%À%%%¸ÿð@)'( P#P?á??á9]]?3/833/]^]3/+]3/8]+39=/]]33]3]10233267#".'#&&#"566¼-I:1{²þs²&4%.9(C_G3ƒþ¶ÂÆ G5$>N>\=þ¨Jüøþ &B3 &FfAjýƒ>¾OY  ¤þq'L@/G&GW)0)@))°)À)))!GT( &P???3á2?3öá^]]öá9/3á210>54.'3#.53VNƒ_4¶W“Äm²o¼‰L¶6ZxBús 7332>5332>54.'3#"&'#éZŒ`2/ º /6K-.D,²cQ-K6/ » /2`Zk‹ ‹R’ËyQ‡‡HI†‡ŽRb–e4)Hb92þ΋4e–bRއ†IH‡‡QyË’RW[[WÿÿÿìwÙ&†jþâ@ &2*%+55+55ÿÿ¤ÿì=Ù&’j¶'&¸ÿÞ´2%+55+55ÿÿqÿì-!&RT@ ,&= & %+5+5ÿÿ¤ÿì=!&’T@ *&$%+5+5ÿÿqÿì–!&–TÃ!@ H&`<<¸ÿÀ@ H=554&#!#!5!!!2ž/FD' @3!i{þ»»þ¬±þ^Z]’e55_„   3WE…stý#¤¤þo1^‹Y‰iše1ÿÿǾs&av3R@ &> %+5+5}ÿì˜Ë&_@@HÊ#p#€##¸ÿÀ@$ H##(¿([f'_¯ $_  _?3á?á39/^]áöá2]3/+]]99//+10"!!3267#"&&546632&&_ xM tý†@v«qY N'NUa;¤ðLW©ú¢lÄON?”'Az¯o¢‚ÉŠH#¢lÆ©¦Æn,*œ .ÿÿhÿìÉË6ÿÿRd¶,ÿÿ@w+&,jÿ R@ & %+55+55ÿÿÿHþ{s¶-ÿéß¶*5µ%+Z ¸ÿø@SHZ#™#à#´#Ä#Ô##P## ###/[g7Ï77@ H65_%¯%%%+_#`+`?á?á?á9/^]á3/+]öá99//^]]]^]38]á+2á210#!!#"&'532>7667!3232654.##ß<~†þ¿þÂ!"5OnN#J: 0>* '+“m˜Ï~7ýww®¤.[‹]X¬ažp=qôìÔQg¢o; š ?bu69È:ªý˜Bq˜þ„ˆFa<Ç ¶!S@2Z #####ÿ# Z d"!_ ¯   ` ?3á?39/^]3á2öá2]qöá9/3á210#!!#3!33232654.## <~†þ¿ý¸ººHºm˜Ï~7ýww®¤.[‹]X¬ažp=ªýV¶ý˜hý˜Bq˜þ„ˆFa<¶s@MZUoô °tZ0@PÀ°gw^?O_ _?3?9/áá2/]]]]]3/]á22/]]]^]öá10!2#4&#!#!5!!#Z]’e5ºi{þ»»þ¬±þ^1^‹Yýòöstý#¤¤ÿÿÇ¢s&´v‰R@ &" %+5+5ÿÿÿì®i&½6#R@ '& ,"%+5+5ÇþÁ¶ c@AÆÖZÅÕ¨–HG: Ze ° o Ÿ ¯  Zd _/33/á?3öá]]]öá9/]]+]]]á]10!!#!3!3ÁþZ±þ]º…»þ¶úðÿÿݼ$Ç3¶K@._[g_Ï Zd_ ¯   _`?á?á9/^]áöá2^]öá9/]10#!!!3232654.##3<~†þ–ý¦–˜Ï~7ýN ®¤.[‹]¬ažp=¶¤þ7!3!! °üd°q/VMA0eÂþƒþú.=FM'þþ'UÈÙæèãiúðjL¹ÊÑÈ·KÿÿǾ¶(¶Ë@Nf v † 7 G W  G ÷  Ziy‰8HX¨¸™†Wgw  p € À  ¸ÿÀ@& H  ð¿Ïß @¸ÿð@ ?33?33933/8333^]]]]]]3/8+]q3339/]]]]33]]á]23]]10333###%ýíÍ ³ Íýí!Óýî³ýîÓòÄý<Äý<Äý<ýåýåýHÿììË9h@?'[!0!!0[ g;Ÿ;p€?O_: `ª!x!!!!/,`5`?3á?á39/^]]]á93/]]]öá9///9á10#"&'532654&##532>54.#"'>32Ñ3[}KWŠ^2CˆÍ‰nÀU+`cc.²°Ïº¿°\Ža2%D_:n©K\&btƒGm¦q9`IxX9  9YwH` t@"-ª$ ”‡‡—'He=6S:C6}6)6a…ɶk@ Z eЯ 0 Zd ¸ÿè³H ¸ÿà@# H  &  H H ) ?22^]++?3]++3öá22]]]öá2210333#46767##É®ÌÕ¬ý1×¶üà>CC JL´úJ9ŽALMûFÿÿÉi&²6‰R´&¸ÿë´" %+5+5Ç¢¶ ^@!   ° /  — V  ¸ÿø@ H Zd ?2?399öá23+]]]]]3/8^]338310!##33¢Ûýººº5ÏýËåý¶ý<ÄýBÿé“¶b±¸ÿø@;HZ‰à´ÄÔP€Ze!!!! _` ??3á?á3/^]öá9/^]]]38]á+210!#!#"&'532>7667!“ºþ…!"5OnN#J: 0>* '+ÐqôìÔQg¢o; š ?bu69È:ªÿÿÇ/¶0ÿÿÇÕ¶+ÿÿ}ÿìqÍ2ÿÿÇÁ¶nÿÿÇ3¶3ÿÿ}ÿì˜Ë&ÿÿ¶7ÿì®¶!o@!`p°ð¸ÿÀ@ H### ¸ÿð@ "ç÷Ö¸ÿà@ H _ ?2?3á9+]]3/833]3/8+]393310#"&'532>733>7®þT&Spœo3Z%%Y45RB8ýîÌ  7¶ûú]¤{H¹5V??ü×  !ÿÿhÿìºËsÿÿ`¶;Çþq¶ ;@!Z Z ° ¯  Zd _?3/á2?3öá]]]Ôá3/á10%3#!3!3Á°°üº…»¦ýÙ¶úð¦¶H@Zep / Z` p   °  ¸ÿÀ@ H _ ??39/á3/+]á]]]öá210!##".5332673ºsÃb]’e5ºi{Z¹pºV,.1_ŠYGýÑst((ÆÇ3¶ `@BVZ†–¦gw Ze   P p € À Ð à  Zd _?á2?33öá^]]qöá9/]]qá]10!!3!3!33ù”ººº¶úðúðÇþã¶q@KV  Z † – ¦ g w   ZZe Pp€ÀÐàZd  _?3/á22?33öá^]]qä2/áá9/]]qá]10%3#!3!3!33°°ù”ººº¦ýÙ¶úðúðÕ¶R@3 Z[g/?_¯_ ¯  _ `?á?á9/^]á3/^]qöá9/]á210#!!5!3232654.##Õ<~†þ•þ¬•˜Ï7ýN ®£-\Š]¬ažp=¤ý˜Bq˜þ„ˆFa<Ç϶I@+[ZeŸ Zd_ ¯  `?3á?39/^]áöá2^]öá9/]á10#!33232654.##33<~†þ–º–˜Ï~7ýN ®¤.[‹]“»¬ažp=¶ý˜Bq˜þ„ˆFa<ýV¶úJÇ3¶H@.[g_@H@ H Zd_ ¯  `?á?9/^]áöá2++^]ö]á10#!33232654.##3<~†þ–º–˜Ï~7ýN ®¤.[‹]¬ažp=¶ý˜Bq˜þ„ˆFa<;ÿìDË$Q@/ [  g&¿&Ï&ß&%_ªx__?á3?3á9/^]]]á3/]æ99//á210"'6632#".'532!5!.º^”?NOÄl¢ô¢RR¥÷¤:aVN'N Yí÷ý‹q Gs'. œ*,mÁþö³þàÊm¢#¢o°z@ÇÿìžÍ.^@<[  %[g00?0o00ï0ÿ00@H Z d/*_ _   _?á??9/^]á?áöá2+]qöá9/]3á10#"&&'!#3!>3232>54.#"žO›å–—á˜Pþ®ººV U˜Û‘•åšOûú1glmf00elmžg1Ý©þêÆld· ýV¶ý˜’ì§ZkÅþ뫉ۙQQ™Û‰ŠÚ—QQ—Úò¶›@ æö¸ÿø@$ HZ e?Ÿ¿ß æö¸ÿø@ HK@ H¸ÿð@&[ßïÿ@Hf`` ?3?á9/3áö^]+]á3/8+]3+]q]]ö93á2+]q10#.5463!##"33Bþ²Û}7cK,ýûu»¼JsO)'NwQ´\ý¤>aˆ]ÆÉúJ\»>aDBiJ(ÿÿ^ÿìœ^Duÿì!#';I@,-H W=Ð==@==7HV<2P(P#  H Q?á+?á9/3áöá2^]]]]ö2á1046676673>32#".2>54.#"u1h¢q}òf!2{}u,>dH) >Tk@c–e2E|®hk­{Bá4&#!32>ö{k8aG)/eŸqþ9ÅSŽg;‚€ÿ8]C&mlþõì>\?5hu$=[?CtV0J@kýÇ\Hþ¨*E M@þ×$<® J/@ PGTP??áöá]]]3/]10!#! þZ¶\°üPJ)þƒ7Jy@F /? ¸ÿð@9¢ ²     GF U¯Ï0/FO Pû?2?á22?á3/á]]]ä]2/áá99//]]8]]á310#!#3>7!3!#7®ýN®VAcC"—þ²À$:Q4þƒ}þƒ_ßóüP$g×ÑÂSÿÿqÿìá^H¾Jœ@ FÖ ¹ É ¦ —  ¸ÿÀ³H¸ÿÀ@$ Hß0p ¸ÿð@  ?33?33933/8333^]]]q3/8^]++3339/]]]]33á231033###3¤ ÅþXÎÎþC¤þDÏÏþXÅ5ýëýëýË-ýÓ-ýÓ5DÿìR^9_@:F99 4G!W;°;À;Ð;o; ;) V:8PÏ9‰9™9999/P&P?á?á9/^]]]á9æ2]]]öá99//9á102>54&#"'>32#"&'532>54&##5q=dH'slGK?(MRZ5Vi:3F+,R?&5l¦qm¯:LWa37`F)…Ї'@-MM&"“ &JmF2M;) ,BZ>CuV1#"¦*E3^[™®;J Q@ HFU    À Ð ð  ¸ÿÀ³H ¸ÿð@ H F T   ?33?33öá2++]öá2+103##Z é¬ ýþêJýdü˜û¶‡üjJÿÿ®;&Ò6%´&¸ÿÿ´ %+5+5®åJ A@#   GT  ?3?3933öá22]3/8]333103##3úÄþaÆÎþK´´JýñýÅ-ýÓJýëÿò°JL@1Fô€ÀÐT GU/ÿ PO??á?á3/^]öá9/]]]qá10!#!#"&'532667!°¶þþ@_‚V17YE3T°þýþ”æiƒuñoú®J ^@?FU"Ï"@"P""FT!;K[ )4DT& ?333]]?33]]3öá2^]]]öá210!##.'#3>73¡þø‡þ÷¢Ý  Ù9;6ýP° 1;>üJýG"C<21;A!½®;J [@GU 0 @ P Ð ð  ¸ÿÀ@#H G T P멹/ ?2?39/^]]]áöá2+]qöá210!3#!#d!¶¶ýß¶Jþ9Çû¶éþJÿÿqÿì-^R®J-@GU  ` p € GTP?2?áöá]öá10!#!#!d¶d¶þJû¶°ÿÿ®þ?^Sÿÿqÿìo^F)^JX@< ß p € _ Ì¿G`pаÀP??á2/]3/]]á2/^]]q]]]q10!#!5!^þÁ·þÁ5°üP°šÿÿ þßJ\qþ#")t@K' F I¹ É — §  #HW+ ++Ÿ+ï+€+o+@+++HV*&P'P  ??3á2?3á2?öá^]]]]]qqöá9/]]+33á2210#.54>734&'66!q½ˆLG†¾wªr¿‰LG…Áyªþ œ®X}P%9›ª¬™Z UÆ}}È‘V þ$Ü VÉ~}ÇU ºü»Ò< =g‘^ºÌüÆÑÿÿ#ÛJ[®þƒ²J D@+GG   ` p € À GT  Pû??á2?3öá]Ô]á3/^]á10#!3!33²¶ü²¶ø¶ þƒ}JüP°üPšþJ1@ G U`€GTP  ?2?9/á3öá]öá21032>73##".5P¸-PLM*¶¶,PU^:NzR+Jþf®,Õû¶é0 /TsD¦®FJ f@CG¶ Æ © t „ ” g  GU  € ð o @  / GT P ?33?á2öá^]]]]qqöá9/_]]_]]á10%!3!3!3Õº·úh¶»¶š°û¶JüP°®þƒåJw@N G¶Æ©t„”g GG¿ @€àð/GT  Pû??á22?33öá^]]qqÄ]2/]áá9/_]]_]]á10#!3!3!33å¶ú¶»¶º·Ÿþƒ}JüP°üP°üP)üJ\@>GWP`à?G  ° ð   P `    P¿ P P ?á?á9/]á/^]3/]qá2]]öá10!2#!!5!4.#!!2>HÔÌ/eŸqþ9þ˜!A`@ÿ7]D&‡œ›M|X/°šüø1B(þ¨)B®PJ a@@G pÐ G U¿Ïßÿ G TP¿ P ?3á?39/]áöá2^]]]qöá9/^]á1032#!3#332>54.#dìÔÌ/eŸqþb¶ì¶¶üÛ8]C&!A`@‡œ›M|X/Jû¶Jý¤þ¨)B01B(®J @@)GW p°ÐG T P¿ P ?á?9/]áöá2^]qöá10!2#!3!2>54.#dÔÌ/eŸqþ9¶8]C&!A`@‡œ›M|X/Jý¤þ¨)B01B(7ÿìB^&^@> H"W((¯(@(/@ HX' P啕/QQ?á?á9/^]]]áæ+q2]]öá29/10"&'532>7!5!&&#"'>32BY|66ƒRItR0þ#Û ’Œ;<85@HN&f³„MQŒº¢%(T„\𦗠 š  >‰Û’ÔŠC®ÿì^&r@KH O !HW((/(ï(ÿ(G((/( G T'$P P啕,   P?á??9/^]]]]á?áöá2]]]qöá9/]q3á10#".'!#3!>3232654&#"@x«jb¢uFþï¶¶ Hv cb§yDý)€Ž~€Ž~'‰Õ‘LB¾|þJþ9t±x>K‘ÓˆÑÓÓÑÑÏÏ#‘JS@GUo¸ÿð@F@HVPP ?2?á9/á2ö+á3/83^]öá293103#.54>3!##33#"éÆ#-TA(8dŠS¼¶ôÝ%AZ6ÛþkhÍ 0LlGNyQ*û¶°T0F.f_ÿÿqÿìáÙ&HjÚ@ 1&(<%+55+55þ1S@2 G-U33`3€3#"GT2!O#P)) ))P?á???]á39/3á2ö2á222]öá910"&'532>54&#"##5353!!3>32ð0?6#.#ipQnC¶œœ¶{þ… ER\0·¹"Hmþ ” 'A3D‚‚4f”`ýðÕ‰¶¶‰¸+?*¿Òü¾M{W/ÿÿ® !&ÍvÔ@ &E %+5+5qÿìo^"O@1 $$¯$@$HV#P啕/Q Q?á?á9/^]]]áöá2]]Î29/10".54>32.#"!!3267Re°‚JL…²fN•268<:‹’Ûþ# ’ŠQƒ66{?‰Õ–Û‰>"š  —¦š¸¤%¢ÿÿZÿì?^Vÿÿ uåLÿÿÿî%Ù&ójþ»@  &%+55+55ÿÿÿ¼þuåMÿòJ*k@E F%G Ô $  GW,,/,?,_,,¿,ï,+$P¿% PO%P ?á?á?á9/]á3/]öá99//]]]]á2á1032#!##"&'532667!4.##32>‡ìÔË.eŸqþbÙ@_‚V17YE3+Ù!A`@×Û8]C&‡œ›M|X/°þýþ”æiƒuñoúüø1B(þ¨)B®uJ!S@0GG W#ï#€#?##GT"P¿P?2?3á9/]3á2öá2]]]]öá9/3á210!332#!!#4.##32>d϶ìÔÌ/eŸqþbþ1¶!Aa?ØÜ7]D&Jþ9Çþ=œ›M|X/éþJüø1B(þ¨)B!S@2h G!U##`#€# G T" OP  ?2??]á39/3á2ö2á222]öá9]10!4&#"##5353!!3>32\ipQnC¶œœ¶{þ… ER\0·¹š‚‚4f”`ýðÕ‰¶¶‰¸+?*¿Òý\ÿÿ®å!&Ôv@ & %+5+5ÿÿ þß&\6±@ (& -#%+5+5®þƒJ Y@=Ö·ÇGµÅÕv†JZ GU  ` p € G T P û ?3??á3öá]öá9/]]]á]]10%!3!#!3dø¶þ³·þ ¶š°û¶þƒ}JǾãD@,Zßïÿ ° Ð  ¯ Zd_ ??3/]áöá]]3/]]á103!#°ýú¶-þ-úð¶® ‰0@G GT O??á3/]öá3/]á10!#!3 þZ¶¦¶Áü?J?ÿÿþs&:CçR´+&¸ÿ¬´1+%+5+5ÿÿã!&ZCL´0&¸ÿž´60.%+5+5ÿÿþs&:v R@ 7&d+1%+5+5ÿÿã!&Zv@ <&i06.%+5+5ÿÿþ+&:j9R¶4&¸ÿÿ´+?%+55+55ÿÿãÙ&Zj¬¶9&¸ÿÿ´0D.%+55+55ÿÿ7s&<CÿrR´ &¸ÿ¤´ %+5+5ÿÿ þß!&\CÿK´#&¸ÿ¤´)#%+5+5RÑ®y¹ÿÀ@  H¹½?á/3/+105!R\Ѩ¨RÑ®y¹ÿÀ@  H¹½?á/3/+105!R\Ѩ¨RÑ®y¹ÿÀ@  H¹½?á/3/+105!R\Ѩ¨ÿüþ1NÿÓ*@ ºïÿº /]á/]á/33/310!5!5!5!Nü®Rü®Rþ1‹Œ‹ÁP¶ %@__o¿Ï ˜ œ?å/á/]3]10'>73%'.4‰Á6z|{8=„ƒ|5ÁP¶ %@_ ˜_o¿Ïœ?å/]á/3]10#>7B'/3‰¶7y}z8<„„|5?þøyî 5¹ÿÀ@ H ˜_oϸÿÀ·Hœ¨?å/+33/]á+10%#>7j'/3Šî6z|{8=„ƒ}5ÁR¶ +@__o¿Ïߘ œ?å/á3/]3]10#.'7î‰4.'¶5|„„<8z}y7ÁѶ b@H¿_o_o¿Ïߘ ˜P`p°ÀÐ_o¿Ï œ?3å2/]33/]á/á3/]3]]]10'>73!'>73¦'.4‰ý¸'.4‰Á6z|{8=„ƒ|56z|{8=„ƒ|5ÁѶ b@H¿_oP`p°ÀИ_o¿Ï ˜_o¿Ïßœ ?2å2/33/]á/]á3/]3]]]10#>7!#>7B'/3‰H'/3‰¶7y}z8<„„|57y}z8<„„|5?þøúî ~@QÐàð¤´Ä 0@`p€P`pÀИàð_ ˜_oÏ߸ÿÀ@ Hœ ¨?2å2/+33/]á/]]á3/]3]_]]]10%#>7!#>7j'/3ŠH'/3‰î6z|{8=„ƒ}56z|{8=„ƒ}5{h |@R   à ð o  0 @ Àä ô Ö w j T E &  À  6¾ ¿ Â/?ö222á222/]á]233æ]]]]]]]3/3æ3]]]10%#53%hþµ7Ù7þÉ77Ù7KÝüü´¡þ_{}°@q °ð @P À ôæ‡zdU6FÀ¾  P ° ¿  ¿Â/ö222á222?ö222á222/^]q333/á222233æ]]]]]]]q23/33æ2]]]q10%%#553%%1Lþ´7Ù8þ´L//þ´L8Ù7Lþ´/ð´þ‡y´"´xþˆ´þí–åmòF@$/_oÏïÿ_ o Ÿ ¯ ß ï  Ð¸ÿÀ@  H/]Å]/+]Å]]]104>32#".–$?V21V@%%@V12V?$ìGd??dGFd??d“ÿãÛú'9¨@v;$;û;ä;»;Ë;¤;‹;d;t;K;4; ;–fv(–$2û2à2Ô2»2¤2‹2r2f2K202 222 –àðTd -›7#/33í22/^]]]í/^]]_]]]]]]]]]]qí9/]í]]]]]]]]]q1074>32#".%4>32#".%4>32#"&“"./""/."%"./""/."%#./""/6Io&5!!5&%5""5%&5!!5&%5""5%&5!!5&%5"BfÿìôË ';?I]‰@\@´TµJ´2µ#´( >0<@<°<0(@(><((<>E´J_?_O____¯_´ µ´ 0G¶Y·C¶O?>%¶7·!¶-¶·¶?áôá?áôá???áôá/]áôá]Þá9///]]]áôáôá1032#"#".54>3232#"#".54>32#32#"#".54>32úGPœœPGÇ$JsOIpL&#IqNKqM'¬GPœœPGÆ#JsOJpK&#IqNKqL'ÿüÕž,—GQ››QGÇ#JsOJpK&#IqNJrL'¥¥JH£¥l¬v??v¬llªu>>uªýJ¥¤IH£¥l«v??v«llªu>>uª’úJ¶ü¥¤IH£¥l«v??v«llªu>>uªÿÿ…¦J¶ ÿÿ…¦²¶RsüÇ<±¸ÿÀ@ H?Ÿ¯ßïÿëŸ//9=/33/]á]Æ+210R5uîîuþË)žNþ¤þ¤N›RsüÇ?@(ëßïÿ ?Ÿ¯ßïÿ?//9=/33/]3]/]]á10'7üþËuííu5þeN\\Nþbÿÿ“ÿãb¶'Ñ µ/11]]þ h¶±¸ÿð@ ??/82/8310#hüÕ+¶úJ¶j“ÇA@à`Ààð à ¸ÿÀ@ H ÀäÞ Ü??á3Ì2/+á2]]Ö]á104&#"#33632??-A*i @‚å¦QD4WAþ¦XeúþP`¶v@H   0Z ßÀ`_?o@H _ ??á99//+^]á3á2/^]3/]3á22]3/]99//10!!##53!!!!Ã$þܳ°°ðýÃýê‰þú‰'¤ýü¤D#É0‡@ o+'###¸ÿÀ@> H22)%@ H%u&&)u* *o&Ð***?*O*¯*¿*&*&*ts?á?á299//]]]3á23á2/+33]3/+399//333á22102&&#"!!!!!!5>55#535#5354>šj®BB8K0RY@+¦š )DaC‰ž‰ÝW‰_2–ÿì¶¶*5y@1on$ÿ@H¸ÿÀ@, H777@ H+#n$|6u+s"""$5s%$u ?á??á99//á3á2öá2+]3/++]99//3á22á10%2>7#".5#57733####3232>54&##;$#P?5X@$œœAkÑÑ4þŒ4|̘/²û†¿{:ý½]‹[.¤®9Š "FjH¿RM½Ó‰þVLN‰[¨MýǶ9m þg GqQމ?ÿìJË9†´(6¸ÿÀ@K H;;,## o."c(((:#`$$,`--_$$$ï$ÿ$--/-_-Ÿ-Ï-$-$-7t3_?3á?á399//]]3á23á23/]33á2233]3/+39910"!!!!3267#".'#53&45465#53>32&&Ev^C°þAþ’"¹•K‡;;…[s¶‡X¤”” X‡¸ra OP3w'4c[‰  )‰¯¸ ¢I‡Áy‰.‰}ÊN+1’+ÿøÛÁ+H†@ 9F´¸ÿð@JpFF FÐFßFF1"´ïÿJ@´111 1à1ð11Bü,ý=ü6'üýü ???áôá?áôá/^]qáÞ]qá9////8]]83á3310##".54>3232>54.#"".54>32&&#"3267 üÕ+n-PpD?nQ/,PqD>nR/þ3&<+*<%%<*+<&ýËEyZ45\}H3d !U"g_Â3Z##c¶úJ¶û˜SW--WSSW--WS3V>##>V34U=!!=U’&R€Z_„R&k tvåkwÿì{Ë-:U@2.p#@H##<5(n 0€6v((0vu  ?3/á?á9/33á22/]Å3á2ÖÁ9/+á10%2>73#".5556674>324#">o 9.d&FiF:jQ0.a14_-@hK6W=!5\|G$7cf ) 6N3w2R;SƒZ0%Tˆcç yî;lS1*OoEc¦†h&þÓ0Q;!!¼2E*þj!Nbylj¶+7;º@rZ99,á"°Ÿ0@"" 2á::/:::ïg=o=¿=Ï=@=  Z d3232654&#"5!¨Íý‡¦Ïv¤á)MmD?kM,)MmD>kN,þBHQQGGQQHcðºMLAŽ9üç¶ûLLJ CC> ü¹S‚Y//Y‚SSX..XSqssqrmmý““%åP¶ £@]Ä ÄÀÐào0@P ÐÄŸ¯""/"?""@H"@HÏï H ȸÿà@ H?333/333+3á23+3/]++]Ö]á2229///]]]]]]á22á10##5!###33#4>7#hÄ Ç@º{º´¿²Ãåellý›%"þIÑýÙ'ý/¬ ## ýÛÿÿN¦ÍvfÿÝ‹H"/;@!#J1/JN+/;///)N N?á?á9/]á9//]á2Þ2á10".54>32!32>7.#"y‚ƆE,Lfv€?qÂŽQüÅ@MX.Jt^M"H$SnÌ;M]53WI<#^Ìnc ~\<O“уþœ," 326454&#"5>322>7.#"; AeбmjŒS"2Qs™b[“-‹‰DCACKO%}¦c*ýž5^QC5% );I*>fO:%-F¦jáÔ¼RBnL<ƒe=OE* ¾É ®  Y–Äüs,Mhz…C(E30Qhon/2V@$)b¶X@ [`p°ð¸ÿÀ@' H/_oŸ¿@ H [ _ H ?3+?á/á+]3/+]á9=/331073!&&'!)¾»ÀûÇw -*ú¦qEú¹oša¨KK¨[ýÇþ'¶7@Ze 0 @ p €  ¸ÿÀ@HZd_?2?áöá+]öá10!#!mýº`þüù¢ø^Jþã¶ \@ [p ¸ÿÀ· H  ¸ÿà@ H  ¸ÿÀ@H _ _?á?á9=/3+3/33+23/+99//]á1055!!!Jpý Hü¼:ý°›þs’+r¤ý ü¤f‡2@–‹yVK8 ­³?á/]]]]]]]]Î105!fœ‡––%ÿòÅ ,@®//9/á//8399//33310##5!3s…þë´)å’ ýi¬w‘1#3Cv@OIH ðE/E_E:'J'j'*77'?w/—//ª 0x??«4*®:$®7'   Ÿ /]]33/^]39á2á2/á]/]á]9]]]]10]]#"&'#".54>32>32267&&#""32>54.1+MmB]›AFNS+AnO-+NoCUž>DOW0BmM+ü{?l41kE(@,,A|?k73lD'@-.@Í?rW4is0O8,RuHAsV1kp0N8-RuùWa^Z3D&$B2jWa]\3D'&C1þ#7@#%Ð% ¬  ®®?á?á/]3]]á2]]]102&&#"#"&'532>54>ƒ"K=$3B'2Y|J$K>#3E*/Wy “ 'AT-ú×^†V) “%@T0'^†V(f{%#GK@.AII.  @)­1¯C­ ¯­ß ï ÿ  @H ;­.C³?3á3/+]á3õ2áõá3/]3]Î210.#"563232>7#"..#"563232>7#".%7-)<;8d”27C/%7/(<;8c•27C/%7-)<;8d”27C/%7/(<;8a—27C¼ !,¢l  !,¢l ®  ,¢m  -¢l f¤¦@   ¸ÿð@O    @Æ»©†{hB9  ­­/ ðo/]]33/^]]q3á223á233/]]]]]]]]3]Î299//883}‡ÄÄÄÄ3‡ÄÄÄÄ10#5!!5!3!!!'^ø>yþIü…ŠiúþÁ{ºþ‰º–•;à•þü–þê9fÝ R@2 @ @o0 Pp€Ðð?/^]]]q33/]]29=/33/]3]Î210%5 5!üdœý!ßüdœî¨fá þ”þ¾þq––fÝ R@2  @ @o0 Pp€Ðð?/^]]]q33/]]39=/33/]3]Î21055!fâýœüdœBj¢þfþXî––m?à ]@6  ¬ ÿ @ P € ° À  / ª­ ­/á?á99=//33/]á]]]Þá99333310#3 ?þÂL þÏþÏ1áýßäýþýþÿÿ&IL¢$@¯P¯/@//]]]]]]]55ÿÿ&IO¢"@¯P¯!@!!]]]]]]]5ÏÙÍ?@) ¯Ï0p 0  @ HŽ/á3/+]3/^]3/]]]q10#".'332>7Í1]dgŒX)ª2L5,I6"NvQ)'PwP9I)+H5ÿ¼þdJ#@ G  T P?á?æ2/á]10"&'532>53B0?6#.#¶"Hmþ ” 'A3ôûM{W/‡Íy @ …? ’?å/3Ý]á10>73#‡ ´).`çMQP!NVV oþ;uÿƒ @ … ’/å/á2/310>73#o ²,6bþVLTS!MWV!}Ùƒ! @ …’ ?å/á2/310#5>73ƒ ²-7bLTS!NVV!%9Ç *@á O@ Há åÞåß?á?á/á+]Þá1032654&#"#".54>32¸GQNNNNQGÇ#JsOJpK&#IqN•š¥¡Ÿ§¥ŸŸ¥lªu>>uªll©t<ì J¼ F@* á _@ Háå   /  åÜÝ??á9/^]3á2/á+]9/33á210##5!533!5467}þ‰y}þô › ÀÀoCýÍÃ*c1 %*(ð;7f¶$J@!"" á&O&&&@ H ¸ÿÀ@H å!åÜåß?á?á9/á/++]Þá39/333102#"&'532654&#"'!!66B=kO-¦¡?y,<=;U__Y %'%C!ºþ¾9m#DeAŒ LXMU+¨{×%9Õ-8@  !á/O///@ H)á $äÞåß?á?39/3á/á2+]Þá910#".54>7366322654&#"*NoD@nR/E~²n-O`@ cJ6Z@$þÛDTMG'?--=fAoP--X€Sn³m'm@O`;+1%Hi÷\VRZ)7,I5/Jd¶8¹ÿð@áO@ HÐàðåÜÝ??á/]+]Þá9/810!5!@þb5þ¿Jñ{düø19qÇ%4Dw@"8á!Bá =2!!,áFOFFF@ H&á¸ÿÀ@'H =2K2[2k2›2«225¶=Æ=Ö==)åß5åÞ?á?á9]9]99/+á+]Þá99//9áá102#"&54>7.54>32654.''">54&R4^F*'4">0*Mi?‹–*8.#+H_bJHJK'7!AB”8? -, AÇ7T8%>2(-7E*9]B$ƒs*E8++5>%8S7ýh;FF;0' "Mè76*$ #,67!9{É%5;@"1à 7O777@ H)á,ä&å!Þ åß?á?á9/3á/á+]Þ9á210#"&'532>7##".54>32%"32>54.{!Z¢@6Sl@ $0=&<`D$)KlCArT0þËDVJL&?-*>B`»“[} 5Wr=$%GfABoQ-/a“¬^XLX)3$H;$TþÁî #'+/37;?CGS_oxä@Y4, 8WQzpotgdd‚~kpQÀQÐQQokkoQ]‰OŒ_ŒŒŒD($ ]PK`KKKA=1 *BF>&2†oygppz`zoTHHpo€oaoo¸ÿÀ@% Hoo`ZNNŠx`/`?`o```, 95!/^]3333/33339/]333/33/+]]3/339/333/3/3/3/3/33333/]3/33333/]39///]333/33333/3/3/310!#%5!#533!5353!5!!5!5!#3#35!#35!35!#35#3#3"&54672'2654&#"32##32654&##32654&#532653#"T/ÀÎ0mùoÀÃmýIûáþò·mmmmûÂü0ooÀwú¨ooooþmmú™‡‡‡‡H??HEBBŸ¬mp--83m^Ï{B.$)0;J1%&4 %1}h_=¾0oÁÁoþÐÁù/ÂmmÂþÑmmmmþooú¨ú;mm¦Jooooü/yýhþŠŸŽ‘›œ‘ŽŸhg^^ff^^gêCS1D D:QYb" "ãš+% *üf$2’þr^dTþÁª#/P@(##$ *0*@***O$$$ ##0---''/3/33/3/]3//3/3/33/]3/]3/310 54676654.#"663232654&#"þ¬üTüVë!LcM1[ƒQ+ZWR"RD~8?>'REJGFDGGDFGüVüW©û/,>:LƒYEkJ'#²".:/1DA5yP;þí>II>@IIÿÿÿ¼þU!&7Lþ»ÿÿÁP¶ ÿì²+ Ou@GM C>;GCC;GOQ Q?Q3G "P)>OONN))0)@)P))N)N8PH8P?á?á99//^]3á2á/]á]]3/]3á9/á999910.#"#".54>54&#"'6632324&'.54>323j 9M[0LV.j«<@ăo’V" 6%%d62E, 0N:¤¤®ò–C'QYh¡uKÑlªt=XH8iR3Š:ŸþîÉs7_}E(]YK-! 2D(#V]a-*J620>KxšQCpR.Tœß‹‰HÃ"@¯$ï$$@ H"«!˜!@!!!!¸ÿð@D!!   HŸ ¯ } k Z O + ;  Zw‡—O! ?Á??99/^]]]á2/]]]]]]+qq93/8]]]]]3+]10>7>32&&#"#3=?</5@)#+  # (2662»þBËÛK¨ ‰,(=' ‘*#Un€……<ýã/‡ÿì`J<@Gg//GÕ,·,©,š,,,7H«»>>T>d>„>¤>´>@>0>>"H0@P¸ÿÀ@H--'P 2'P?2á2?á229/9/+^]á]]_]]q3/]á9/_]]]]á]910"&54>7!57!##"&'#32>55332>54.')¶Ã +þë†Èó&ĵj‹ ‹º(6K-.D,³bR-K6$êó9}~{8JPš8{~}9óêW[[WÄ6vyz:bƒN!)Hb9°°‚Š!Nƒb:zyv6ÿÿÇ/u&0vyT@ '&K %+5+5ÿÿ®‡!&PvÇ@ :&z-3+%+5+5ÿÿýÕݼ&$[ ·%+55ÿÿ^ýÕœ^&D[¼ ·=3 "%+55ÿÿþÓÿìÃÍ&2R\þ@?¶-5¸ÿÀ² H¸ÿ!@55 %°€P@]]]]]]55++55?55sýÕ7ÿƒ:@(ƒ?O_ƒ0  Œ0@P ðŒ/áÔ^]á/]áÔ]á10#".54>324&#"3267#=T12R; ;R20T>#t@12?981@þ®3Q88O33O87O45<<55<<“hÙÇ B@ 0@¸ÿÀ@ H+      ?O_/Ì]99///Í]]2/+3Í]910>73#%467#"&° Ï08>Rþãxz<9%2/:E‰KOQ$ MPQ%xNsL.%'Fÿÿ¹&I'I¢LD8@&9p9@9/999à°¯KpK@KK]]]]]]5]]]]]55ÿÿ¨&I'I¢OD6@%9p9@9/999à°¯=p=@==]]]]]]5]]]]]5Ëê!úÀ Ü$ÿ®,)7R9R:f;)<R=)FÿÃGÿÃHÿÃJÿ×RÿÃTÿÃW)Y)Z\)‚ÿ®ƒÿ®„ÿ®…ÿ®†ÿ®‡ÿ®ˆÿ\Ž)))‘)ŸR¨ÿéÿêÿëÿìÿíÿôÿõÿöÿ÷ÿøÿúÿÿ)Á)Âÿ®Äÿ®Æÿ®ÉÿÃËÿÃÍÿÃÏÿÃÕÿÃ×ÿÃÙÿÃÛÿÃÝÿÃì)ð)ò)ÿÃÿÃÿÃÿÃ$R&R6f78R9):R;)=)?)Cÿ®_ÿ®iÿ®qRyÿÃ~ÿÀ)‚ÿÊ)ŒÿÃŽÿÃÿÑ)“ÿÔ)–ÿÙÿÛÿÃR¤ÿš¦R¨=ªÿ®®ÿ…°=±µÿ…¼R½=¿)ÄRÏÿÃØÿÃÛÿÃÜ)Ý)ÞÿÃêÿÃíÿÃúfûüfýþfÿR)(ÿ® $ÿ® ,) 7R 9R :f ;) <R =) Fÿà Gÿà Hÿà Jÿ× Rÿà Tÿà W) Y) Z \) ‚ÿ® ƒÿ® „ÿ® …ÿ® †ÿ® ‡ÿ® ˆÿ\ Ž) ) ) ‘) ŸR ¨ÿà ©ÿà ªÿà «ÿà ¬ÿà ­ÿà ´ÿà µÿà ¶ÿà ·ÿà ¸ÿà ºÿà ¿) Á) Âÿ® Äÿ® Æÿ® Éÿà Ëÿà Íÿà Ïÿà Õÿà ×ÿà Ùÿà Ûÿà Ýÿà ì) ð) ò) ÿà ÿà ÿà ÿà $R &R 6f 7 8R 9) :R ;) =) ?) Cÿ® _ÿ® iÿ® qR yÿà ~ÿà €) ‚ÿà Š) Œÿà Žÿà ÿà ‘) “ÿà ”) –ÿà ™ÿà ›ÿà R ¤ÿš ¦R ¨= ªÿ® ®ÿ… °= ± µÿ… ¼R ½= ¿) ÄR Ïÿà Øÿà Ûÿà Ü) Ý) Þÿà êÿà íÿà úf û üf ý þf ÿ R ) (ÿ® -{ ö{ £{&ÿÃ*ÿÃ2ÿÃ4ÿÃ7ÿš8ÿ×9ÿš:ÿ®<ÿš‰ÿÔÿÕÿÖÿ×ÿØÿÚÿÛÿלÿ×ÿמÿןÿšÈÿÃÎÿÃÞÿÃàÿÃâÿÃäÿÃÿÃÿÃ$ÿš&ÿš,ÿ×0ÿ×2ÿ×4ÿ×6ÿ®8ÿš:ÿšfÿÃmÿÃqÿš¸ÿûÿüÿšúÿ®üÿ®þÿ®ÿš7ÿšqÿšrÿðÿ×µÿ×¼ÿšÄÿ®&ÿÃ*ÿÃ2ÿÃ4ÿÃ7ÿš8ÿ×9ÿš:ÿ®<ÿš‰ÿÔÿÕÿÖÿ×ÿØÿÚÿÛÿלÿ×ÿמÿןÿšÈÿÃÎÿÃÞÿÃàÿÃâÿÃäÿÃÿÃÿÃ$ÿš&ÿš,ÿ×0ÿ×2ÿ×4ÿ×6ÿ®8ÿš:ÿšfÿÃmÿÃqÿš¸ÿûÿüÿšúÿ®üÿ®þÿ®ÿš$ÿ®$ ÿ®$&ÿì$*ÿì$2ÿì$4ÿì$7ÿ…$8ÿì$9ÿÃ$:ÿ×$<ÿš$‰ÿì$”ÿì$•ÿì$–ÿì$—ÿì$˜ÿì$šÿì$›ÿì$œÿì$ÿì$žÿì$Ÿÿš$Èÿì$Îÿì$Þÿì$àÿì$âÿì$äÿì$ÿì$ÿì$ÿ×$$ÿ…$&ÿ…$,ÿì$0ÿì$2ÿì$4ÿì$6ÿ×$8ÿš$:ÿš$fÿì$mÿì$qÿ…$¸ÿì$»ÿì$¼ÿ…$úÿ×$üÿ×$þÿ×$ÿš$ÿ®$ ÿ®%,ÿì%7ÿì%9ÿì%;ÿì%<ÿì%Ÿÿì%$ÿì%&ÿì%8ÿì%:ÿì%qÿì%¼ÿì%ÿì&)& )& )&&ÿ×&*ÿ×&2ÿ×&4ÿ×&@)&`)&‰ÿ×&”ÿ×&•ÿ×&–ÿ×&—ÿ×&˜ÿ×&šÿ×&Èÿ×&Îÿ×&Þÿ×&àÿ×&âÿ×&äÿ×&ÿ×&ÿ×&fÿ×&mÿ×&¸ÿ×&»ÿ×&)& )'ÿÃ'ÿÃ'$ÿì',ÿì'7ÿÃ'9ÿì':ÿì';ÿì'<ÿ×'=ÿì'‚ÿì'ƒÿì'„ÿì'…ÿì'†ÿì'‡ÿì'ˆÿÃ'Žÿì'ÿì'ÿì'‘ÿì'Ÿÿ×'Âÿì'Äÿì'Æÿì'ìÿì'ðÿì'òÿì'$ÿÃ'&ÿÃ'6ÿì'8ÿ×':ÿ×';ÿì'=ÿì'?ÿì'Cÿì'_ÿì'iÿì'qÿÃ'ªÿì'¼ÿÃ'úÿì'üÿì'þÿì'ÿ×'(ÿì)=) =) ))ÿš)ÿš)"))$ÿ×)9):)<)@))`))‚ÿ×)ƒÿ×)„ÿ×)…ÿ×)†ÿ×)‡ÿ×)ˆÿÃ)Ÿ)Âÿ×)Äÿ×)Æÿ×)6)8):)Cÿ×)_ÿ×)iÿ×)ªÿ×)ú)ü)þ))=) =)(ÿ×,), ),&ÿì,*ÿì,2ÿì,4ÿì,‰ÿì,”ÿì,•ÿì,–ÿì,—ÿì,˜ÿì,šÿì,Èÿì,Îÿì,Þÿì,àÿì,âÿì,äÿì,ÿì,ÿì,ÿì,fÿì,mÿì,¸ÿì,»ÿì,), ).). ).&ÿ×.*ÿ×.2ÿ×.4ÿ×.‰ÿ×.”ÿ×.•ÿ×.–ÿ×.—ÿ×.˜ÿ×.šÿ×.Èÿ×.Îÿ×.Þÿ×.àÿ×.âÿ×.äÿ×.ÿ×.ÿ×.ÿ×.fÿ×.mÿ×.¸ÿ×.»ÿ×.). )/ÿš/ ÿš/&ÿì/*ÿì/2ÿì/4ÿì/7ÿ…/8ÿì/9ÿ®/:ÿÃ/<ÿš/‰ÿì/”ÿì/•ÿì/–ÿì/—ÿì/˜ÿì/šÿì/›ÿì/œÿì/ÿì/žÿì/Ÿÿš/Èÿì/Îÿì/Þÿì/àÿì/âÿì/äÿì/ÿì/ÿì/ÿì/$ÿ…/&ÿ…/,ÿì/0ÿì/2ÿì/4ÿì/6ÿÃ/8ÿš/:ÿš/fÿì/mÿì/qÿ…/¸ÿì/»ÿì/¼ÿ…/úÿÃ/üÿÃ/þÿÃ/ÿš/ÿš/ ÿš2ÿÃ2ÿÃ2$ÿì2,ÿì27ÿÃ29ÿ×2:ÿì2;ÿ×2<ÿ×2=ÿì2‚ÿì2ƒÿì2„ÿì2…ÿì2†ÿì2‡ÿì2ˆÿ×2Žÿì2ÿì2ÿì2‘ÿì2Ÿÿ×2Âÿì2Äÿì2Æÿì2ìÿì2ðÿì2òÿì2$ÿÃ2&ÿÃ26ÿì28ÿ×2:ÿ×2;ÿì2=ÿì2?ÿì2Cÿì2_ÿì2iÿì2qÿÃ2ªÿì2¼ÿÃ2úÿì2üÿì2þÿì2ÿ×2(ÿì3ÿ33ÿ33$ÿ®3&ÿì3;ÿì3<ÿì3=ÿ×3‚ÿ®3ƒÿ®3„ÿ®3…ÿ®3†ÿ®3‡ÿ®3ˆÿq3‰ÿì3Ÿÿì3Âÿ®3Äÿ®3Æÿ®3Èÿì3Îÿì38ÿì3:ÿì3;ÿ×3=ÿ×3?ÿ×3Cÿ®3_ÿ®3iÿ®3ªÿ®3»ÿì3ÿì3(ÿ®4ÿÃ4ÿÃ4$ÿì4,ÿì47ÿÃ49ÿ×4:ÿì4;ÿ×4<ÿ×4=ÿì4‚ÿì4ƒÿì4„ÿì4…ÿì4†ÿì4‡ÿì4ˆÿÃ4Žÿì4ÿì4ÿì4‘ÿì4Ÿÿ×4Âÿì4Äÿì4Æÿì4ìÿì4ðÿì4òÿì4$ÿÃ4&ÿÃ46ÿì48ÿ×4:ÿ×4;ÿì4=ÿì4?ÿì4Cÿì4_ÿì4iÿì4qÿÃ4ªÿì4¼ÿÃ4úÿì4üÿì4þÿì4ÿ×4(ÿì57ÿì5$ÿì5&ÿì5qÿì5¼ÿì7R7 R7ÿš7ÿš7ÿš7")7$ÿ…7&ÿÃ7*ÿÃ72ÿÃ74ÿÃ76ÿì777Dÿ…7Fÿ…7Gÿ…7Hÿ…7Jÿš7Pÿ®7Qÿ®7Rÿ…7Sÿ®7Tÿ…7Uÿ®7Vÿ…7Xÿ®7YÿÃ7ZÿÃ7[ÿÃ7\ÿÃ7]ÿÃ7‚ÿ…7ƒÿ…7„ÿ…7…ÿ…7†ÿ…7‡ÿ…7ˆÿq7‰ÿÃ7”ÿÃ7•ÿÃ7–ÿÃ7—ÿÃ7˜ÿÃ7šÿÃ7¢ÿ…7£ÿ…7¤ÿ…7¥ÿ…7¦ÿ…7§ÿ…7¨ÿ…7©ÿ…7ªÿ…7«ÿ…7¬ÿ…7­ÿ…7³ÿ®7´ÿ…7µÿ…7¶ÿ…7·ÿ…7¸ÿ…7ºÿ…7»ÿ®7¼ÿ®7½ÿ®7¾ÿ®7¿ÿÃ7ÁÿÃ7Âÿ…7Ãÿ…7Äÿ…7Åÿ…7Æÿ…7Çÿ…7ÈÿÃ7Éÿ…7Ëÿ…7Íÿ…7ÎÿÃ7Ïÿ…7Õÿ…7×ÿ…7Ùÿ…7Ûÿ…7Ýÿ…7ÞÿÃ7àÿÃ7âÿÃ7äÿÃ7ÿ®7ÿ®7 ÿ®7ÿÃ7ÿ…7ÿ…7ÿÃ7ÿ…7ÿÃ7ÿ…7ÿì7ÿ…7ÿ…7 ÿì7!ÿ…7"ÿì7#ÿ…7$7&77ÿÃ79ÿÃ7@ÿÃ7Cÿ…7Dÿ…7Jÿ…7_ÿ…7fÿÃ7iÿ…7mÿÃ7q7yÿ…7{ÿ®7~ÿ…7€ÿÃ7‚ÿ…7„ÿ®7ŠÿÃ7Œÿ…7Žÿ…7ÿ…7‘ÿÃ7“ÿ…7”ÿÃ7–ÿ…7™ÿ…7›ÿ…7 ÿì7ªÿ…7¸ÿÃ7»ÿÃ7¼7Êÿ…7Ïÿ…7Øÿ…7Ûÿ…7ÜÿÃ7ÝÿÃ7Þÿ…7êÿ…7íÿ…7îÿ…7ûÿÃ7ýÿÃ7ÿÿÃ7ÿÃ7ÿ®7ÿš7R7 R7(ÿ…8ÿ×8ÿ×8$ÿì8‚ÿì8ƒÿì8„ÿì8…ÿì8†ÿì8‡ÿì8ˆÿ×8Âÿì8Äÿì8Æÿì8Cÿì8_ÿì8iÿì8ªÿì8(ÿì9R9 R9ÿš9ÿš9")9$ÿÃ9&ÿ×9*ÿ×92ÿ×94ÿ×9DÿÃ9FÿÃ9GÿÃ9HÿÃ9JÿÃ9Pÿ×9Qÿ×9RÿÃ9Sÿ×9TÿÃ9Uÿ×9Vÿ×9Xÿ×9‚ÿÃ9ƒÿÃ9„ÿÃ9…ÿÃ9†ÿÃ9‡ÿÃ9ˆÿ…9‰ÿ×9”ÿ×9•ÿ×9–ÿ×9—ÿ×9˜ÿ×9šÿ×9¢ÿÃ9£ÿÃ9¤ÿÃ9¥ÿÃ9¦ÿÃ9§ÿÃ9¨ÿÃ9©ÿÃ9ªÿÃ9«ÿÃ9¬ÿÃ9­ÿÃ9³ÿ×9´ÿÃ9µÿÃ9¶ÿÃ9·ÿÃ9¸ÿÃ9ºÿÃ9»ÿ×9¼ÿ×9½ÿ×9¾ÿ×9ÂÿÃ9ÃÿÃ9ÄÿÃ9ÅÿÃ9ÆÿÃ9ÇÿÃ9Èÿ×9ÉÿÃ9ËÿÃ9ÍÿÃ9Îÿ×9ÏÿÃ9ÕÿÃ9×ÿÃ9ÙÿÃ9ÛÿÃ9ÝÿÃ9Þÿ×9àÿ×9âÿ×9äÿ×9ÿ×9ÿ×9 ÿ×9ÿ×9ÿÃ9ÿÃ9ÿ×9ÿÃ9ÿ×9ÿÃ9ÿ×9ÿ×9!ÿ×9#ÿ×9CÿÃ9DÿÃ9Jÿ×9_ÿÃ9fÿ×9iÿÃ9mÿ×9yÿÃ9{ÿ×9~ÿÃ9‚ÿÃ9„ÿ×9ŒÿÃ9ŽÿÃ9ÿÃ9“ÿÃ9–ÿÃ9™ÿÃ9›ÿÃ9ªÿÃ9¸ÿ×9»ÿ×9ÊÿÃ9ÏÿÃ9ØÿÃ9ÛÿÃ9ÞÿÃ9êÿÃ9íÿÃ9îÿ×9R9 R9(ÿÃ:f: f:ÿ®:ÿ®:$ÿ×:&ÿì:*ÿì:2ÿì:4ÿì:Dÿ×:Fÿ×:Gÿ×:Hÿ×:Jÿì:Pÿì:Qÿì:Rÿ×:Sÿì:Tÿ×:Uÿì:Vÿ×:Xÿì:]ÿì:‚ÿ×:ƒÿ×:„ÿ×:…ÿ×:†ÿ×:‡ÿ×:ˆÿ®:‰ÿì:”ÿì:•ÿì:–ÿì:—ÿì:˜ÿì:šÿì:¢ÿ×:£ÿ×:¤ÿ×:¥ÿ×:¦ÿ×:§ÿ×:¨ÿ×:©ÿ×:ªÿ×:«ÿ×:¬ÿ×:­ÿ×:³ÿì:´ÿ×:µÿ×:¶ÿ×:·ÿ×:¸ÿ×:ºÿ×:»ÿì:¼ÿì:½ÿì:¾ÿì:Âÿ×:Ãÿ×:Äÿ×:Åÿ×:Æÿ×:Çÿ×:Èÿì:Éÿ×:Ëÿ×:Íÿ×:Îÿì:Ïÿ×:Õÿ×:×ÿ×:Ùÿ×:Ûÿ×:Ýÿ×:Þÿì:àÿì:âÿì:äÿì:ÿì:ÿì: ÿì:ÿì:ÿ×:ÿ×:ÿì:ÿ×:ÿì:ÿ×:ÿ×:ÿ×:!ÿ×:#ÿ×:@ÿì:Cÿ×:Dÿ×:Jÿ×:_ÿ×:fÿì:iÿ×:mÿì:yÿ×:{ÿì:~ÿ×:‚ÿ×:„ÿì:Œÿ×:Žÿ×:ÿ×:“ÿ×:–ÿ×:™ÿ×:›ÿ×:ªÿ×:¸ÿì:»ÿì:Êÿ×:Ïÿ×:Øÿ×:Ûÿ×:Þÿ×:êÿ×:íÿ×:îÿ×:f: f:(ÿ×;); );&ÿ×;*ÿ×;2ÿ×;4ÿ×;Fÿì;Gÿì;Hÿì;Rÿì;Tÿì;‰ÿ×;”ÿ×;•ÿ×;–ÿ×;—ÿ×;˜ÿ×;šÿ×;¨ÿì;©ÿì;ªÿì;«ÿì;¬ÿì;­ÿì;´ÿì;µÿì;¶ÿì;·ÿì;¸ÿì;ºÿì;Èÿ×;Éÿì;Ëÿì;Íÿì;Îÿ×;Ïÿì;Õÿì;×ÿì;Ùÿì;Ûÿì;Ýÿì;Þÿ×;àÿ×;âÿ×;äÿ×;ÿ×;ÿì;ÿì;ÿ×;ÿì;ÿ×;ÿì;fÿ×;mÿ×;yÿì;~ÿì;‚ÿì;Œÿì;Žÿì;ÿì;“ÿì;–ÿì;™ÿì;›ÿì;¸ÿ×;»ÿ×;Ïÿì;Øÿì;Ûÿì;Þÿì;êÿì;íÿì;); )<R< R<ÿš<ÿš<")<$ÿš<&ÿ×<*ÿ×<2ÿ×<4ÿ×<6ÿì<Dÿš<Fÿš<Gÿš<Hÿš<Jÿš<PÿÃ<QÿÃ<Rÿš<SÿÃ<Tÿš<UÿÃ<Vÿ®<XÿÃ<[ÿ×<\ÿì<]ÿÃ<‚ÿš<ƒÿš<„ÿš<…ÿš<†ÿš<‡ÿš<ˆÿq<‰ÿ×<”ÿ×<•ÿ×<–ÿ×<—ÿ×<˜ÿ×<šÿ×<¢ÿš<£ÿš<¤ÿš<¥ÿš<¦ÿš<§ÿš<¨ÿš<©ÿš<ªÿš<«ÿš<¬ÿš<­ÿš<³ÿÃ<´ÿš<µÿš<¶ÿš<·ÿš<¸ÿš<ºÿš<»ÿÃ<¼ÿÃ<½ÿÃ<¾ÿÃ<¿ÿì<Áÿì<Âÿš<Ãÿš<Äÿš<Åÿš<Æÿš<Çÿš<Èÿ×<Éÿš<Ëÿš<Íÿš<Îÿ×<Ïÿš<Õÿš<×ÿš<Ùÿš<Ûÿš<Ýÿš<Þÿ×<àÿ×<âÿ×<äÿ×<ÿÃ<ÿÃ< ÿÃ<ÿ×<ÿš<ÿš<ÿ×<ÿš<ÿ×<ÿš<ÿì<ÿ®<ÿ®< ÿì<!ÿ®<"ÿì<#ÿ®<9ÿì<@ÿÃ<Cÿš<Dÿš<Jÿ®<_ÿš<fÿ×<iÿš<mÿ×<yÿš<{ÿÃ<~ÿš<€ÿì<‚ÿš<„ÿÃ<Šÿì<Œÿš<Žÿš<ÿš<“ÿš<–ÿš<™ÿš<›ÿš< ÿì<ªÿš<¸ÿ×<»ÿ×<Êÿš<Ïÿš<Øÿš<Ûÿš<Ýÿì<Þÿš<êÿš<íÿš<îÿ®<ÿì<R< R<(ÿš=)= )=&ÿì=*ÿì=2ÿì=4ÿì=‰ÿì=”ÿì=•ÿì=–ÿì=—ÿì=˜ÿì=šÿì=Èÿì=Îÿì=Þÿì=àÿì=âÿì=äÿì=ÿì=ÿì=ÿ×=fÿì=mÿì=¸ÿì=»ÿì=)= )>-{>ö{>£{D ÿ×E ÿ×F=F =F=F =H ÿ×IfI fIYIZI\I¿IÁI7I9I€IŠI‘I”IÜIÝIûIýIÿIIfI fJ)J )JJJ)J )K ÿÃN)N )N)N )P ÿ×Q ÿ×R[ÿ×R]ÿìR@ÿìUfU fUDÿìUJÿìU¢ÿìU£ÿìU¤ÿìU¥ÿìU¦ÿìU§ÿìUÃÿìUÅÿìUÇÿìUDÿìUÊÿìUfU fV=V =V=V =WRW RWWWRW RYRY RYIYRY RZRZ RZIZRZ R[)[ )[Rÿ×[¨ÿ×[´ÿ×[µÿ×[¶ÿ×[·ÿ×[¸ÿ×[ºÿ×[ÿ×[ÿ×[ÿ×[ÿ×[Œÿ×[Žÿ×[ÿ×[“ÿ×[–ÿ×[™ÿ×[›ÿ×[Øÿ×[Þÿ×[)[ )\=\ =\I\=\ =]Rÿì]¨ÿì]´ÿì]µÿì]¶ÿì]·ÿì]¸ÿì]ºÿì]ÿì]ÿì]ÿì]ÿì]Œÿì]Žÿì]ÿì]“ÿì]–ÿì]™ÿì]›ÿì]Øÿì]Þÿì^-{^ö{^£{mqÿ×mxÿ×m‘)}qÿš}rÿÃ}xÿÂÿ®‚ ÿ®‚ ÿ…‚D‚D‚"ÿÂ&ÿì‚*ÿì‚-^‚2ÿì‚4ÿì‚7ÿ…‚8ÿì‚9ÿÂ:ÿׂ<ÿš‚=;‚Iÿì‚Wÿì‚YÿׂZÿì‚\ÿׂ‚ÿׂ‰ÿì‚”ÿì‚•ÿì‚–ÿì‚—ÿ삘ÿ삚ÿì‚›ÿ삜ÿì‚ÿ삞ÿ삟ÿš‚¿ÿׂÁÿׂÈÿì‚Îÿì‚Þÿì‚àÿì‚âÿì‚äÿì‚ö^‚ÿì‚ÿì‚ÿׂ$ÿ…‚&ÿ…‚,ÿì‚0ÿì‚2ÿì‚4ÿì‚6ÿׂ7ÿì‚8ÿš‚9ÿׂ:ÿš‚;;‚=;‚?;‚fÿì‚mÿì‚qÿ…‚€ÿׂŠÿׂ‘ÿׂ”ÿׂ£^‚¸ÿì‚»ÿ삼ÿ…‚ÜÿׂÝÿׂúÿׂûÿì‚üÿׂýÿì‚þÿׂÿÿì‚ÿš‚ÿׂÿ®‚ ÿ®ƒÿ®ƒ ÿ®ƒ ÿ…ƒDƒDƒ"ÿÃ&ÿìƒ*ÿìƒ-^ƒ2ÿìƒ4ÿìƒ7ÿ…ƒ8ÿìƒ9ÿÃ:ÿ׃<ÿšƒ=;ƒIÿìƒWÿìƒYÿ׃Zÿìƒ\ÿ׃„ÿ׃‰ÿ샊ÿ׃ÿ׃ÿ僔ÿ샕ÿ샖ÿ샗ÿ샘ÿ샚ÿ샛ÿ샜ÿìƒÿ샞ÿ샟ÿšƒ¿ÿ׃Áÿ׃ÈÿìƒÎÿìƒÞÿìƒàÿìƒâÿìƒäÿìƒö^ƒÿìƒÿìƒÿ׃$ÿ…ƒ&ÿ…ƒ,ÿìƒ0ÿìƒ2ÿìƒ4ÿìƒ6ÿ׃7ÿìƒ8ÿšƒ9ÿ׃:ÿšƒ;;ƒ=;ƒ?;ƒfÿìƒmÿìƒqÿ…ƒ€ÿ׃Šÿ׃‘ÿ׃”ÿ׃£^ƒ¸ÿ샻ÿ샼ÿ…ƒÜÿ׃Ýÿ׃úÿ׃ûÿìƒüÿ׃ýÿìƒþÿ׃ÿÿìƒÿšƒÿ׃ÿ®ƒ ÿ®„ÿ®„ ÿ®„ ÿ…„D„D„"ÿÄ&ÿì„*ÿì„-^„2ÿì„4ÿì„7ÿ…„8ÿì„9ÿÄ:ÿׄ<ÿš„=;„Iÿì„Wÿì„YÿׄZÿì„\ÿׄ„ÿׄ‰ÿ섊ÿׄÿׄÿå„”ÿì„•ÿì„–ÿì„—ÿ섘ÿ섚ÿì„›ÿ서ÿì„ÿ섞ÿ섟ÿš„¿ÿׄÁÿׄÈÿì„Îÿì„Þÿì„àÿì„âÿì„äÿì„ö^„ÿì„ÿì„ÿׄ$ÿ…„&ÿ…„,ÿì„0ÿì„2ÿì„4ÿì„6ÿׄ7ÿì„8ÿš„9ÿׄ:ÿš„;;„=;„?;„fÿì„mÿì„qÿ…„€ÿׄŠÿׄ‘ÿׄ”ÿׄ£^„¸ÿì„»ÿ센ÿ…„ÜÿׄÝÿׄúÿׄûÿì„üÿׄýÿì„þÿׄÿÿì„ÿš„ÿׄÿ®„ ÿ®…ÿ®… ÿ®… ÿ……D…D…"ÿÃ…&ÿì…*ÿì…-^…2ÿì…4ÿì…7ÿ……8ÿì…9ÿÃ…:ÿ×…<ÿš…=;…Iÿì…Wÿì…Yÿ×…Zÿì…\ÿ×…‚ÿ×…‰ÿì…”ÿì…•ÿì…–ÿì…—ÿì…˜ÿì…šÿì…›ÿì…œÿì…ÿì…žÿì…Ÿÿš…¿ÿ×…Áÿ×…Èÿì…Îÿì…Þÿì…àÿì…âÿì…äÿì…ö^…ÿì…ÿì…ÿ×…$ÿ……&ÿ……,ÿì…0ÿì…2ÿì…4ÿì…6ÿ×…7ÿì…8ÿš…9ÿ×…:ÿš…;;…=;…?;…fÿì…mÿì…qÿ……€ÿ×…Šÿ×…‘ÿ×…”ÿ×…£^…¸ÿì…»ÿì…¼ÿ……Üÿ×…Ýÿ×…úÿ×…ûÿì…üÿ×…ýÿì…þÿ×…ÿÿì…ÿš…ÿ×…ÿ®… ÿ®†ÿ®† ÿ®† ÿ†D†D†"ÿ׆&ÿì†*ÿì†-^†2ÿì†4ÿì†7ÿ…†8ÿì†9ÿÆ:ÿ׆<ÿš†=;†Wÿå†YÿÕ†Zÿå†\ÿÛ†‰ÿ솔ÿ솕ÿ솖ÿ솗ÿ솘ÿ솚ÿ솛ÿ솜ÿì†ÿ솞ÿ솟ÿš†¿ÿÛ†ÁÿÛ†Èÿì†Îÿì†Þÿì†àÿì†âÿì†äÿì†ö^†ÿì†ÿì†ÿ׆$ÿ…†&ÿ…†,ÿì†0ÿì†2ÿì†4ÿì†6ÿ׆7ÿå†8ÿš†9ÿÛ†:ÿš†;;†=;†?;†fÿì†mÿì†qÿ…†€ÿÛ†ŠÿÕ†‘ÿÕ†”ÿÕ†£^†¸ÿ솻ÿ솼ÿ…†ÜÿÕ†ÝÿÛ†úÿ׆ûÿå†üÿ׆ýÿå†þÿ׆ÿÿå†ÿš†ÿÛ†ÿ®† ÿ®‡ÿf‡ ÿf‡ ÿ‡D‡D‡"ÿׇ&ÿì‡*ÿì‡-^‡2ÿì‡4ÿì‡7ÿ…‡8ÿì‡9ÿÇ:ÿׇ<ÿš‡=;‡Wÿå‡YÿÕ‡Zÿå‡\ÿÛ‡‰ÿ쇔ÿ쇕ÿ쇖ÿ쇗ÿ쇘ÿ쇚ÿ쇛ÿ쇜ÿì‡ÿ쇞ÿ쇟ÿš‡¿ÿÛ‡ÁÿÛ‡Èÿì‡Îÿì‡Þÿì‡àÿì‡âÿì‡äÿì‡ö^‡ÿì‡ÿì‡ÿׇ$ÿ…‡&ÿ…‡,ÿì‡0ÿì‡2ÿì‡4ÿì‡6ÿׇ7ÿå‡8ÿš‡9ÿÛ‡:ÿš‡;;‡=;‡?;‡fÿì‡mÿì‡qÿ…‡€ÿÛ‡ŠÿÕ‡‘ÿÕ‡”ÿÕ‡£^‡¸ÿ쇻ÿ쇼ÿ…‡ÜÿÕ‡ÝÿÛ‡úÿׇûÿå‡üÿׇýÿå‡þÿׇÿÿå‡ÿš‡ÿÛ‡ÿf‡ÿ®‡ ÿf‡ ÿ®‡ ÿš‰)‰ )‰ )‰&ÿ׉*ÿ׉2ÿ׉4ÿ׉@)‰`)‰‰ÿ׉”ÿ׉•ÿ׉–ÿ׉—ÿ׉˜ÿ׉šÿ׉Èÿ׉Îÿ׉Þÿ׉àÿ׉âÿ׉äÿ׉ÿ׉ÿ׉fÿ׉mÿ׉¸ÿ׉»ÿ׉)‰ )Š)Š )Šÿ׊&ÿìŠ2ÿìŠ4ÿ슄ÿ슉ÿ슊ÿìŠÿ슔ÿ슕ÿ슖ÿ슗ÿ슘ÿ슚ÿìŠÈÿìŠÎÿìŠö=ŠÿìŠÿìŠfÿìŠmÿ슣=Џÿ슻ÿìŠ)Š )‹)‹ )‹ÿ׋&ÿì‹2ÿì‹4ÿ싉ÿì‹‹ÿì‹”ÿì‹•ÿì‹–ÿì‹—ÿ싘ÿ싚ÿì‹Èÿì‹Îÿì‹ö=‹ÿì‹ÿì‹fÿì‹mÿì‹£=‹¸ÿì‹»ÿì‹)‹ )Œ)Œ )Œÿ׌&ÿìŒ2ÿìŒ4ÿ쌄ÿ쌉ÿ쌊ÿìŒÿ쌔ÿ쌕ÿ쌖ÿ쌗ÿ쌘ÿ쌚ÿìŒÈÿìŒÎÿìŒö=ŒÿìŒÿìŒfÿìŒmÿ쌣=Œ¸ÿ쌻ÿìŒ)Œ )) )ÿ×&ÿì2ÿì4ÿì„ÿì‰ÿìŠÿìÿì”ÿì•ÿì–ÿì—ÿì˜ÿìšÿìÈÿìÎÿìö=ÿìÿìfÿìmÿì£=¸ÿì»ÿì) )Ž)Ž )Ž&ÿìŽ*ÿìŽ2ÿìŽ4ÿ쎉ÿ쎔ÿ쎕ÿ쎖ÿ쎗ÿ쎘ÿ쎚ÿìŽÈÿìŽÎÿìŽÞÿìŽàÿìŽâÿìŽäÿìŽÿìŽÿìŽÿìŽfÿìŽmÿ쎸ÿ쎻ÿìŽ)Ž )) )&ÿì*ÿì2ÿì4ÿì‰ÿì”ÿì•ÿì–ÿì—ÿì˜ÿìšÿìÈÿìÎÿìÞÿìàÿìâÿìäÿìÿìÿìÿìfÿìmÿì¸ÿì»ÿì) )) )&ÿì*ÿì2ÿì4ÿì‰ÿì”ÿì•ÿì–ÿì—ÿì˜ÿìšÿìÈÿìÎÿìÞÿìàÿìâÿìäÿìÿìÿìÿìfÿìmÿì¸ÿì»ÿì) )‘)‘ )‘&ÿì‘*ÿì‘2ÿì‘4ÿ쑉ÿì‘”ÿì‘•ÿì‘–ÿì‘—ÿ쑘ÿ쑚ÿì‘Èÿì‘Îÿì‘Þÿì‘àÿì‘âÿì‘äÿì‘ÿì‘ÿì‘ÿì‘fÿì‘mÿ쑸ÿì‘»ÿì‘)‘ )’$ÿì’‚ÿì’ƒÿì’„ÿì’…ÿì’†ÿì’‡ÿì’Âÿì’Äÿì’Æÿì’Cÿì’_ÿì’iÿì’ªÿì’(ÿì” ÿ×”ÿÔÿÔ$ÿì”,ÿì”-ÿö”6ÿì”7ÿÔ9ÿ×”:ÿì”;ÿ×”<ÿ×”=ÿì”@ÿ×”`ÿ×”‚ÿ씃ÿ씄ÿì”…ÿ씆ÿ씇ÿ씈ÿ×”Žÿì”ÿì”ÿ씑ÿ씟ÿ×”Âÿì”Äÿì”Æÿì”ìÿì”ðÿì”òÿì”öÿö”ÿì” ÿì”"ÿì”$ÿÔ&ÿÔ6ÿì”8ÿ×”:ÿ×”;ÿì”=ÿì”?ÿì”Cÿì”_ÿì”iÿì”qÿÔ ÿ씣ÿö”ªÿ씼ÿÔúÿì”üÿì”þÿì”ÿ×”(ÿì• ÿוÿÕÿÕ$ÿì•,ÿì•-ÿö•6ÿì•7ÿÕ9ÿו:ÿì•;ÿו<ÿו=ÿì•@ÿו`ÿו‚ÿ앃ÿì•„ÿì•…ÿ앆ÿ앇ÿ안ÿוŽÿì•ÿì•ÿì•‘ÿ앟ÿוÂÿì•Äÿì•Æÿì•ìÿì•ðÿì•òÿì•öÿö•ÿì• ÿì•"ÿì•$ÿÕ&ÿÕ6ÿì•8ÿו:ÿו;ÿì•=ÿì•?ÿì•Cÿì•_ÿì•iÿì•qÿÕ ÿì•£ÿö•ªÿ야ÿÕúÿì•üÿì•þÿì•ÿו(ÿì– ÿ×–ÿÖÿÖ$ÿì–,ÿì–-ÿö–6ÿì–7ÿÖ9ÿ×–:ÿì–;ÿ×–<ÿ×–=ÿì–@ÿ×–`ÿ×–‚ÿì–ƒÿì–„ÿì–…ÿì–†ÿì–‡ÿì–ˆÿ×–Žÿì–ÿì–ÿì–‘ÿì–Ÿÿ×–Âÿì–Äÿì–Æÿì–ìÿì–ðÿì–òÿì–öÿö–ÿì– ÿì–"ÿì–$ÿÖ&ÿÖ6ÿì–8ÿ×–:ÿ×–;ÿì–=ÿì–?ÿì–Cÿì–_ÿì–iÿì–qÿÖ ÿì–£ÿö–ªÿì–¼ÿÖúÿì–üÿì–þÿì–ÿ×–(ÿì— ÿ×—ÿ×ÿ×$ÿì—,ÿì—-ÿö—6ÿì—7ÿ×9ÿ×—:ÿì—;ÿ×—<ÿ×—=ÿì—@ÿ×—`ÿ×—‚ÿì—ƒÿì—„ÿì—…ÿì—†ÿì—‡ÿì—ˆÿ×—Žÿì—ÿì—ÿì—‘ÿì—Ÿÿ×—Âÿì—Äÿì—Æÿì—ìÿì—ðÿì—òÿì—öÿö—ÿì— ÿì—"ÿì—$ÿ×&ÿ×6ÿì—8ÿ×—:ÿ×—;ÿì—=ÿì—?ÿì—Cÿì—_ÿì—iÿì—qÿ× ÿì—£ÿö—ªÿì—¼ÿ×úÿì—üÿì—þÿì—ÿ×—(ÿì˜ ÿטÿØÿØ$ÿì˜,ÿì˜-ÿö˜6ÿì˜7ÿØ9ÿט:ÿì˜;ÿט<ÿט=ÿì˜@ÿט`ÿט‚ÿ옃ÿ옄ÿ옅ÿ옆ÿ옇ÿ예ÿטŽÿì˜ÿì˜ÿ옑ÿ옟ÿטÂÿì˜Äÿì˜Æÿì˜ìÿì˜ðÿì˜òÿì˜öÿö˜ÿì˜ ÿì˜"ÿì˜$ÿØ&ÿØ6ÿì˜8ÿט:ÿט;ÿì˜=ÿì˜?ÿì˜Cÿì˜_ÿì˜iÿì˜qÿØ ÿ옣ÿö˜ªÿ옼ÿØúÿì˜üÿì˜þÿì˜ÿט(ÿìšÿÚÿÚ$ÿìš,ÿìš7ÿÚ9ÿך:ÿìš;ÿך<ÿך=ÿìš‚ÿ욃ÿìš„ÿìš…ÿ욆ÿ욇ÿ욈ÿךŽÿìšÿìšÿìš‘ÿ욟ÿךÂÿìšÄÿìšÆÿìšìÿìšðÿìšòÿìš$ÿÚ&ÿÚ6ÿìš8ÿך:ÿך;ÿìš=ÿìš?ÿìšCÿìš_ÿìšiÿìšqÿÚªÿìš¼ÿÚúÿìšüÿìšþÿìšÿך(ÿì›ÿ×›ÿ×›$ÿì›0ÿì›=ÿì›Dÿ웂ÿ웃ÿ웄ÿì›…ÿ웆ÿ웇ÿ웈ÿ×›¢ÿ웣ÿ웤ÿ웥ÿ웦ÿì›§ÿì›Âÿì›Ãÿì›Äÿì›Åÿì›Æÿì›Çÿì›;ÿì›=ÿì›?ÿì›Cÿì›Dÿì›_ÿì›iÿ웪ÿì›Êÿì›(ÿìœÿלÿל$ÿìœ0ÿìœ=ÿìœDÿ윂ÿ윃ÿ위ÿ윅ÿ윆ÿ윇ÿ윈ÿל¢ÿ윣ÿ윤ÿ윥ÿ윦ÿ윧ÿìœÂÿìœÃÿìœÄÿìœÅÿìœÆÿìœÇÿìœ;ÿìœ=ÿìœ?ÿìœCÿìœDÿìœ_ÿìœiÿ윪ÿìœÊÿìœ(ÿìÿ×ÿ×$ÿì0ÿì=ÿìDÿì‚ÿìƒÿì„ÿì…ÿì†ÿì‡ÿìˆÿ×¢ÿì£ÿì¤ÿì¥ÿì¦ÿì§ÿìÂÿìÃÿìÄÿìÅÿìÆÿìÇÿì;ÿì=ÿì?ÿìCÿìDÿì_ÿìiÿìªÿìÊÿì(ÿìžÿמÿמ$ÿìž0ÿìž=ÿìžDÿìž‚ÿ잃ÿìž„ÿìž…ÿ잆ÿ잇ÿ있ÿמ¢ÿ잣ÿ잤ÿ장ÿ잦ÿìž§ÿìžÂÿìžÃÿìžÄÿìžÅÿìžÆÿìžÇÿìž;ÿìž=ÿìž?ÿìžCÿìžDÿìž_ÿìžiÿ잪ÿìžÊÿìž(ÿìŸRŸ ÿß RŸ =Ÿ )ŸÿšŸÿšŸÿšŸ")Ÿ$ÿšŸ&ÿן*ÿן-ÿ¾Ÿ0ÿß2ÿן4ÿן6ÿìŸ7'Ÿ9)Ÿ:Ÿ@=ŸDÿšŸFÿšŸGÿšŸHÿšŸIÿåŸJÿšŸPÿßQÿßRÿšŸSÿßTÿšŸUÿßVÿ®ŸXÿßYÿןZÿìŸ[ÿן\ÿìŸ]ÿß`=Ÿ‚ÿšŸƒÿšŸ„ÿšŸ…ÿšŸ†ÿšŸ‡ÿšŸˆÿqŸ‰ÿן”ÿן•ÿן–ÿן—ÿן˜ÿןšÿן¢ÿšŸ£ÿšŸ¤ÿšŸ¥ÿšŸ¦ÿšŸ§ÿšŸ¨ÿšŸ©ÿšŸªÿšŸ«ÿšŸ¬ÿšŸ­ÿšŸ³ÿß´ÿšŸµÿšŸ¶ÿšŸ·ÿšŸ¸ÿšŸºÿšŸ»ÿß¼ÿß½ÿß¾ÿß¿ÿìŸÁÿìŸÂÿšŸÃÿšŸÄÿšŸÅÿšŸÆÿšŸÇÿšŸÈÿןÉÿšŸËÿšŸÍÿšŸÎÿןÏÿšŸÕÿšŸ×ÿšŸÙÿšŸÛÿšŸÝÿšŸÞÿןàÿןâÿןäÿןöÿ¾Ÿÿßÿß ÿßÿןÿšŸÿšŸÿןÿšŸÿןÿšŸÿìŸÿ®Ÿÿ®Ÿ ÿìŸ!ÿ®Ÿ"ÿìŸ#ÿ®Ÿ$'Ÿ&'Ÿ6Ÿ7ÿìŸ9ÿìŸ@ÿßCÿšŸDÿšŸJÿ®Ÿ_ÿšŸfÿןiÿšŸmÿןq'ŸyÿšŸ{ÿß~ÿšŸ€ÿ쟂ÿšŸ„ÿߊÿןŒÿšŸŽÿšŸÿšŸ‘ÿן“ÿšŸ”ÿן–ÿšŸ™ÿšŸ›ÿšŸ ÿ쟣ÿ¾ŸªÿšŸ¸ÿן»ÿן¼'ŸÊÿšŸÏÿšŸØÿšŸÛÿšŸÜÿןÝÿìŸÞÿšŸêÿšŸíÿšŸîÿ®ŸúŸûÿìŸüŸýÿìŸþŸÿÿìŸÿìŸRŸ RŸ(ÿš¢ ÿ×£ ÿפ ÿ×¥ ÿצ ÿ×§ ÿר[ÿר]ÿì¨@ÿì©=© =©=© =ªÿ˜ª ÿ׫ÿ˜« ÿ׬ÿ˜¬ ÿ×­ÿ˜­ ÿ׳ÿ˜³ ÿ׳ ÿ×´ÿo´ ÿo´IÿÛ´[ÿ×´]ÿì´@ÿìµÿoµ ÿoµIÿÛµ[ÿ×µ]ÿìµ@ÿì¶ÿo¶ ÿo¶IÿÛ¶[ÿ×¶]ÿì¶@ÿì·ÿo· ÿo·IÿÛ·[ÿ×·]ÿì·@ÿì¸ÿo¸ ÿo¸IÿÛ¸[ÿ׸]ÿì¸@ÿìº[ÿ׺]ÿìº@ÿì»ÿ¾» ÿ¾¼ÿ¾¼ ÿ¾½ÿ¾½ ÿ¾¾ÿ¾¾ ÿ¾¿=¿ =¿ÿ¾¿ÿ¾¿"ÿ´¿Fÿö¿Gÿö¿Hÿö¿I¿Jÿö¿Rÿö¿Tÿö¿W¿¨ÿö¿©ÿö¿ªÿö¿«ÿö¿¬ÿö¿­ÿö¿´ÿö¿µÿö¿¶ÿö¿·ÿö¿¸ÿö¿ºÿö¿Éÿö¿Ëÿö¿Íÿö¿Ïÿö¿Õÿö¿×ÿö¿Ùÿö¿Ûÿö¿Ýÿö¿ÿö¿ÿö¿ÿö¿ÿö¿yÿö¿~ÿö¿‚ÿö¿Œÿö¿Žÿö¿ÿö¿“ÿö¿–ÿö¿™ÿö¿›ÿö¿Ïÿö¿Øÿö¿Ûÿö¿Þÿö¿êÿö¿íÿö¿=¿ÿ¿ =¿ ÿ¿ÿ¿ Á=Á =Áÿ¾Áÿ¾ÁIÁ=Á =Âÿ®Â ÿ®Â&ÿìÂ*ÿìÂ2ÿìÂ4ÿìÂ7ÿ…Â8ÿìÂ9ÿÃÂ:ÿ×Â<ÿšÂ‰ÿì”ÿì•ÿì–ÿì—ÿì˜ÿìšÿì›ÿìœÿìÂÿìžÿìŸÿšÂÈÿìÂÎÿìÂÞÿìÂàÿìÂâÿìÂäÿìÂÿìÂÿìÂÿ×Â$ÿ…Â&ÿ…Â,ÿìÂ0ÿìÂ2ÿìÂ4ÿìÂ6ÿ×Â8ÿšÂ:ÿšÂfÿìÂmÿìÂqÿ…¸ÿì»ÿì¼ÿ…Âúÿ×Âüÿ×Âþÿ×ÂÿšÂÿ®Â ÿ®Ã ÿ×Äÿ®Ä ÿ®Ä&ÿìÄ*ÿìÄ2ÿìÄ4ÿìÄ7ÿ…Ä8ÿìÄ9ÿÃÄ:ÿ×Ä<ÿšÄ‰ÿìÄ”ÿìÄ•ÿìÄ–ÿìÄ—ÿìĘÿìÄšÿìÄ›ÿìÄœÿìÄÿìÄžÿìÄŸÿšÄÈÿìÄÎÿìÄÞÿìÄàÿìÄâÿìÄäÿìÄÿìÄÿìÄÿ×Ä$ÿ…Ä&ÿ…Ä,ÿìÄ0ÿìÄ2ÿìÄ4ÿìÄ6ÿ×Ä8ÿšÄ:ÿšÄfÿìÄmÿìÄqÿ…ĸÿìÄ»ÿìļÿ…Äúÿ×Äüÿ×Äþÿ×ÄÿšÄÿ®Ä ÿ®Å ÿׯÿ®Æ ÿ®Æ&ÿìÆ*ÿìÆ-áÆ2ÿìÆ4ÿìÆ7ÿ…Æ8ÿìÆ9ÿÃÆ:ÿׯ<ÿšÆ‰ÿìÆ”ÿìÆ•ÿìÆ–ÿìÆ—ÿìÆ˜ÿìÆšÿìÆ›ÿìÆœÿìÆÿìÆžÿìÆŸÿšÆÈÿìÆÎÿìÆÞÿìÆàÿìÆâÿìÆäÿìÆÿìÆÿìÆÿׯ$ÿ…Æ&ÿ…Æ,ÿìÆ0ÿìÆ2ÿìÆ4ÿìÆ6ÿׯ8ÿšÆ:ÿšÆfÿìÆmÿìÆqÿ…ƸÿìÆ»ÿìÆ¼ÿ…ÆúÿׯüÿׯþÿׯÿšÆÿ®Æ ÿ®Ç ÿ×È)È )È )È&ÿ×È*ÿ×È2ÿ×È4ÿ×È@)È`)ȉÿ×È”ÿ×È•ÿ×È–ÿ×È—ÿ×Șÿ×Èšÿ×ÈÈÿ×ÈÎÿ×ÈÞÿ×Èàÿ×Èâÿ×Èäÿ×Èÿ×Èÿ×Èfÿ×Èmÿ×ȸÿ×È»ÿ×È)È )É=É =É=É =Ë=Ë =Ë=Ë =Í=Í =Í=Í =Î)Î )Î )Î&ÿ×Î*ÿ×Î2ÿ×Î4ÿ×Î@)Î`)Ήÿ×Δÿ×Εÿ×Ζÿ×Ηÿ×Θÿ×Κÿ×ÎÈÿ×ÎÎÿ×ÎÞÿ×Îàÿ×Îâÿ×Îäÿ×Îÿ×Îÿ×Îfÿ×Îmÿ×θÿ×λÿ×Î)Î )Ï=Ï =Ï=Ï =ÑfÑ fÑ Ñ"¤Ñ@¤ÑERÑKRÑL=ÑM=ÑNRÑORÑ`¸Ñ®öѰÍѱÍÑçRÑé¤Ñë ÑíÍÑïöÑñ)Ñõ=Ñ÷áÑùRÑüRÑþRÑRÑRÑRÑÑ Õ ÿ×× ÿ×Ù ÿ×Ú-fÛ ÿ×Ý ÿ×ì)ì )ì&ÿìì*ÿìì2ÿìì4ÿìì‰ÿìì”ÿìì•ÿìì–ÿìì—ÿìì˜ÿììšÿììÈÿììÎÿììÞÿììàÿììâÿììäÿììÿììÿììÿììfÿììmÿìì¸ÿìì»ÿìì)ì )ð)ð )ð&ÿìð*ÿìð-Rð2ÿìð4ÿìð‰ÿìð”ÿìð•ÿìð–ÿìð—ÿìð˜ÿìðšÿìðÈÿìðÎÿìðÞÿìðàÿìðâÿìðäÿìðÿìðÿìðÿìðfÿìðmÿìð¸ÿìð»ÿìð)ð )ò)ò )ò&ÿìò*ÿìò2ÿìò4ÿìò‰ÿìò”ÿìò•ÿìò–ÿìò—ÿìò˜ÿìòšÿìòÈÿìòÎÿìòÞÿìòàÿìòâÿìòäÿìòÿìòÿìòÿìòfÿìòmÿìò¸ÿìò»ÿìò)ò )ø)ø )ø&ÿ×ø*ÿ×ø2ÿ×ø4ÿ×ø‰ÿ×ø”ÿ×ø•ÿ×ø–ÿ×ø—ÿ×ø˜ÿ×øšÿ×øÈÿ×øÎÿ×øÞÿ×øàÿ×øâÿ×øäÿ×øÿ×øÿ×øÿ×øfÿ×ømÿ×ø¸ÿ×ø»ÿ×ø)ø )ú)ú )ú)ú )ûÿšû ÿšû&ÿìû*ÿìû2ÿìû4ÿìû7ÿ…û8ÿìû9ÿ®û:ÿÃû<ÿšû‰ÿìû”ÿìû•ÿìû–ÿìû—ÿìû˜ÿìûšÿìû›ÿìûœÿìûÿìûžÿìûŸÿšûÈÿìûÎÿìûÞÿìûàÿìûâÿìûäÿìûÿìûÿìûÿìû$ÿ…û&ÿ…û,ÿìû0ÿìû2ÿìû4ÿìû6ÿÃû8ÿšû:ÿšûfÿìûmÿìûqÿ…û¸ÿìû»ÿìû¼ÿ…ûúÿÃûüÿÃûþÿÃûÿšûÿšû ÿšýÿšý ÿšý&ÿìý*ÿìý2ÿìý4ÿìý7ÿ…ý8ÿìý9ÿ®ý:ÿÃý<ÿšý‰ÿìý”ÿìý•ÿìý–ÿìý—ÿìý˜ÿìýšÿìý›ÿìýœÿìýÿìýžÿìýŸÿšýÈÿìýÎÿìýÞÿìýàÿìýâÿìýäÿìýÿìýÿìýÿìý$ÿ…ý&ÿ…ý,ÿìý0ÿìý2ÿìý4ÿìý6ÿÃý8ÿšý:ÿšýfÿìýmÿìýqÿ…ý¸ÿìý»ÿìý¼ÿ…ýúÿÃýüÿÃýþÿÃýÿšýÿšý ÿšÿÿšÿ ÿšÿ&ÿìÿ*ÿìÿ2ÿìÿ4ÿìÿ7ÿ…ÿ8ÿìÿ9ÿ®ÿ:ÿÃÿ<ÿšÿ‰ÿìÿ”ÿìÿ•ÿìÿ–ÿìÿ—ÿìÿ˜ÿìÿšÿìÿ›ÿìÿœÿìÿÿìÿžÿìÿŸÿšÿÈÿìÿÎÿìÿÞÿìÿàÿìÿâÿìÿäÿìÿÿìÿÿìÿÿìÿ$ÿ…ÿ&ÿ…ÿ,ÿìÿ0ÿìÿ2ÿìÿ4ÿìÿ6ÿÃÿ8ÿšÿ:ÿšÿfÿìÿmÿìÿqÿ…ÿ¸ÿìÿ»ÿìÿ¼ÿ…ÿúÿÃÿüÿÃÿþÿÃÿÿšÿÿšÿ ÿšf f "¤@¤ERKRL=M=NROR`¸®ö°Í±ÍçRé¤ë íÍïöñ)õ=÷áùRüRþRRRR ÿš ÿš&ÿì*ÿì2ÿì4ÿì7ÿ…8ÿì9ÿ®:ÿÃ<ÿš‰ÿì”ÿì•ÿì–ÿì—ÿì˜ÿìšÿì›ÿìœÿìÿìžÿìŸÿšÈÿìÎÿìÞÿìàÿìâÿìäÿìÿìÿìÿì$ÿ…&ÿ…,ÿì0ÿì2ÿì4ÿì6ÿÃ8ÿš:ÿšfÿìmÿìqÿ…¸ÿì»ÿì¼ÿ…úÿÃüÿÃþÿÃÿšÿš ÿšÿš ÿš&ÿì*ÿì2ÿì4ÿì7ÿ…8ÿì9ÿ®:ÿÃ<ÿš‰ÿì”ÿì•ÿì–ÿì—ÿì˜ÿìšÿì›ÿìœÿìÿìžÿìŸÿšÈÿìÎÿìÞÿìàÿìâÿìäÿìÿìÿìÿì$ÿ…&ÿ…,ÿì0ÿì2ÿì4ÿì6ÿÃ8ÿš:ÿšfÿìmÿìqÿ…¸ÿì»ÿì¼ÿ…úÿÃüÿÃþÿÃÿšÿš ÿš ÿ× ÿ× ÿ×ÿÃÿÃ$ÿì,ÿì7ÿÃ9ÿ×:ÿì;ÿ×<ÿ×=ÿì‚ÿìƒÿì„ÿì…ÿì†ÿì‡ÿìˆÿ׎ÿìÿìÿì‘ÿìŸÿ×ÂÿìÄÿìÆÿììÿìðÿìòÿì$ÿÃ&ÿÃ6ÿì8ÿ×:ÿ×;ÿì=ÿì?ÿìCÿì_ÿìiÿìqÿêÿì¼ÿÃúÿìüÿìþÿìÿ×(ÿì[ÿ×]ÿì@ÿì[ÿ×]ÿì@ÿìÿÃÿÃ$ÿì,ÿì7ÿÃ9ÿ×:ÿì;ÿ×<ÿ×=ÿì‚ÿìƒÿì„ÿì…ÿì†ÿì‡ÿìˆÿ׎ÿìÿìÿì‘ÿìŸÿ×ÂÿìÄÿìÆÿììÿìðÿìòÿì$ÿÃ&ÿÃ6ÿì8ÿ×:ÿ×;ÿì=ÿì?ÿìCÿì_ÿìiÿìqÿêÿì¼ÿÃúÿìüÿìþÿìÿ×(ÿì[ÿ×]ÿì@ÿì[ÿ×]ÿì@ÿì= == == == =!=! =!=! =")" )"0"6ÿì"7ÿ×"9ÿì":ÿì";ÿ×"<ÿ×"Yÿì"\ÿì"Ÿÿ×"¿ÿì"Áÿì"ÿì" ÿì""ÿì"#ÿì"$ÿ×"&ÿ×"6ÿì"8ÿ×"9ÿì":ÿ×"qÿ×"€ÿì"Šÿì"‘ÿì"”ÿì" ÿì"¼ÿ×"Üÿì"Ýÿì"úÿì"üÿì"þÿì"ÿ×"ÿì")" )#=# =#=# =$R$ R$ÿš$ÿš$")$$ÿ…$&ÿÃ$*ÿÃ$2ÿÃ$4ÿÃ$6ÿì$7$Dÿ…$Fÿ…$Gÿ…$Hÿ…$Jÿš$Pÿ®$Qÿ®$Rÿ…$Sÿ®$Tÿ…$Uÿ®$Vÿ…$Xÿ®$YÿÃ$ZÿÃ$[ÿÃ$\ÿÃ$]ÿÃ$‚ÿ…$ƒÿ…$„ÿ…$…ÿ…$†ÿ…$‡ÿ…$ˆÿq$‰ÿÃ$”ÿÃ$•ÿÃ$–ÿÃ$—ÿÃ$˜ÿÃ$šÿÃ$¢ÿ…$£ÿ…$¤ÿ…$¥ÿ…$¦ÿ…$§ÿ…$¨ÿ…$©ÿ…$ªÿ…$«ÿ…$¬ÿ…$­ÿ…$³ÿ®$´ÿ…$µÿ…$¶ÿ…$·ÿ…$¸ÿ…$ºÿ…$»ÿ®$¼ÿ®$½ÿ®$¾ÿ®$¿ÿÃ$ÁÿÃ$Âÿ…$Ãÿ…$Äÿ…$Åÿ…$Æÿ…$Çÿ…$ÈÿÃ$Éÿ…$Ëÿ…$Íÿ…$ÎÿÃ$Ïÿ…$Õÿ…$×ÿ…$Ùÿ…$Ûÿ…$Ýÿ…$ÞÿÃ$àÿÃ$âÿÃ$äÿÃ$ÿ®$ÿ®$ ÿ®$ÿÃ$ÿ…$ÿ…$ÿÃ$ÿ…$ÿÃ$ÿ…$ÿì$ÿ…$ÿ…$ ÿì$!ÿ…$"ÿì$#ÿ…$$$&$7ÿÃ$9ÿÃ$@ÿÃ$Cÿ…$Dÿ…$Jÿ…$_ÿ…$fÿÃ$iÿ…$mÿÃ$q$yÿ…${ÿ®$~ÿ…$€ÿÃ$‚ÿ…$„ÿ®$ŠÿÃ$Œÿ…$Žÿ…$ÿ…$‘ÿÃ$“ÿ…$”ÿÃ$–ÿ…$™ÿ…$›ÿ…$ ÿì$ªÿ…$¸ÿÃ$»ÿÃ$¼$Êÿ…$Ïÿ…$Øÿ…$Ûÿ…$ÜÿÃ$ÝÿÃ$Þÿ…$êÿ…$íÿ…$îÿ…$ûÿÃ$ýÿÃ$ÿÿÃ$ÿÃ$R$ R$(ÿ…&R& R&ÿš&ÿš&")&$ÿ…&&ÿÃ&*ÿÃ&2ÿÃ&4ÿÃ&6ÿì&7&Dÿ…&Fÿ…&Gÿ…&Hÿ…&Jÿš&Pÿ®&Qÿ®&Rÿ…&Sÿ®&Tÿ…&Uÿ®&Vÿ…&Xÿ®&YÿÃ&ZÿÃ&[ÿÃ&\ÿÃ&]ÿÃ&‚ÿ…&ƒÿ…&„ÿ…&…ÿ…&†ÿ…&‡ÿ…&ˆÿq&‰ÿÃ&”ÿÃ&•ÿÃ&–ÿÃ&—ÿÃ&˜ÿÃ&šÿÃ&¢ÿ…&£ÿ…&¤ÿ…&¥ÿ…&¦ÿ…&§ÿ…&¨ÿ…&©ÿ…&ªÿ…&«ÿ…&¬ÿ…&­ÿ…&³ÿ®&´ÿ…&µÿ…&¶ÿ…&·ÿ…&¸ÿ…&ºÿ…&»ÿ®&¼ÿ®&½ÿ®&¾ÿ®&¿ÿÃ&ÁÿÃ&Âÿ…&Ãÿ…&Äÿ…&Åÿ…&Æÿ…&Çÿ…&ÈÿÃ&Éÿ…&Ëÿ…&Íÿ…&ÎÿÃ&Ïÿ…&Õÿ…&×ÿ…&Ùÿ…&Ûÿ…&Ýÿ…&ÞÿÃ&àÿÃ&âÿÃ&äÿÃ&ÿ®&ÿ®& ÿ®&ÿÃ&ÿ…&ÿ…&ÿÃ&ÿ…&ÿÃ&ÿ…&ÿì&ÿ…&ÿ…& ÿì&!ÿ…&"ÿì&#ÿ…&$&&&7ÿÃ&9ÿÃ&@ÿÃ&Cÿ…&Dÿ…&Jÿ…&_ÿ…&fÿÃ&iÿ…&mÿÃ&q&yÿ…&{ÿ®&~ÿ…&€ÿÃ&‚ÿ…&„ÿ®&ŠÿÃ&Œÿ…&Žÿ…&ÿ…&‘ÿÃ&“ÿ…&”ÿÃ&–ÿ…&™ÿ…&›ÿ…& ÿì&ªÿ…&¸ÿÃ&»ÿÃ&¼&Êÿ…&Ïÿ…&Øÿ…&Ûÿ…&ÜÿÃ&ÝÿÃ&Þÿ…&êÿ…&íÿ…&îÿ…&ûÿÃ&ýÿÃ&ÿÿÃ&ÿÃ&R& R&(ÿ…'f' f' '"¤'@¤'ER'KR'L='M='NR'OR'`¸'®ö'°Í'±Í'çR'é¤'ë 'íÍ'ïö'ñ)'õ='÷á'ùR'üR'þR'R'R'R'' ,ÿ×,ÿ×,$ÿì,‚ÿì,ƒÿì,„ÿì,…ÿì,†ÿì,‡ÿì,ˆÿ×,Âÿì,Äÿì,Æÿì,Cÿì,_ÿì,iÿì,ªÿì,(ÿì0ÿ×0ÿ×0$ÿì0‚ÿì0ƒÿì0„ÿì0…ÿì0†ÿì0‡ÿì0ˆÿ×0Âÿì0Äÿì0Æÿì0Cÿì0_ÿì0iÿì0ªÿì0(ÿì2ÿ×2ÿ×2$ÿì2‚ÿì2ƒÿì2„ÿì2…ÿì2†ÿì2‡ÿì2ˆÿ×2Âÿì2Äÿì2Æÿì2Cÿì2_ÿì2iÿì2ªÿì2(ÿì4ÿ×4ÿ×4$ÿì4‚ÿì4ƒÿì4„ÿì4…ÿì4†ÿì4‡ÿì4ˆÿ×4Âÿì4Äÿì4Æÿì4Cÿì4_ÿì4iÿì4ªÿì4(ÿì6f6 f6ÿ®6ÿ®6$ÿ×6&ÿì6*ÿì62ÿì64ÿì6Dÿ×6Fÿ×6Gÿ×6Hÿ×6Jÿì6Pÿì6Qÿì6Rÿ×6Sÿì6Tÿ×6Uÿì6Vÿ×6Xÿì6]ÿì6‚ÿ×6ƒÿ×6„ÿ×6…ÿ×6†ÿ×6‡ÿ×6ˆÿ®6‰ÿì6”ÿì6•ÿì6–ÿì6—ÿì6˜ÿì6šÿì6¢ÿ×6£ÿ×6¤ÿ×6¥ÿ×6¦ÿ×6§ÿ×6¨ÿ×6©ÿ×6ªÿ×6«ÿ×6¬ÿ×6­ÿ×6³ÿì6´ÿ×6µÿ×6¶ÿ×6·ÿ×6¸ÿ×6ºÿ×6»ÿì6¼ÿì6½ÿì6¾ÿì6Âÿ×6Ãÿ×6Äÿ×6Åÿ×6Æÿ×6Çÿ×6Èÿì6Éÿ×6Ëÿ×6Íÿ×6Îÿì6Ïÿ×6Õÿ×6×ÿ×6Ùÿ×6Ûÿ×6Ýÿ×6Þÿì6àÿì6âÿì6äÿì6ÿì6ÿì6 ÿì6ÿì6ÿ×6ÿ×6ÿì6ÿ×6ÿì6ÿ×6ÿ×6ÿ×6!ÿ×6#ÿ×6@ÿì6Cÿ×6Dÿ×6Jÿ×6_ÿ×6fÿì6iÿ×6mÿì6yÿ×6{ÿì6~ÿ×6‚ÿ×6„ÿì6Œÿ×6Žÿ×6ÿ×6“ÿ×6–ÿ×6™ÿ×6›ÿ×6ªÿ×6¸ÿì6»ÿì6Êÿ×6Ïÿ×6Øÿ×6Ûÿ×6Þÿ×6êÿ×6íÿ×6îÿ×6f6 f6(ÿ×7R7 R7I7R7 R8R8 R8ÿš8ÿš8")8$ÿš8&ÿ×8*ÿ×82ÿ×84ÿ×86ÿì8Dÿš8Fÿš8Gÿš8Hÿš8Jÿš8PÿÃ8QÿÃ8Rÿš8SÿÃ8Tÿš8UÿÃ8Vÿ®8XÿÃ8[ÿ×8\ÿì8]ÿÃ8‚ÿš8ƒÿš8„ÿš8…ÿš8†ÿš8‡ÿš8ˆÿq8‰ÿ×8”ÿ×8•ÿ×8–ÿ×8—ÿ×8˜ÿ×8šÿ×8¢ÿš8£ÿš8¤ÿš8¥ÿš8¦ÿš8§ÿš8¨ÿš8©ÿš8ªÿš8«ÿš8¬ÿš8­ÿš8³ÿÃ8´ÿš8µÿš8¶ÿš8·ÿš8¸ÿš8ºÿš8»ÿÃ8¼ÿÃ8½ÿÃ8¾ÿÃ8¿ÿì8Áÿì8Âÿš8Ãÿš8Äÿš8Åÿš8Æÿš8Çÿš8Èÿ×8Éÿš8Ëÿš8Íÿš8Îÿ×8Ïÿš8Õÿš8×ÿš8Ùÿš8Ûÿš8Ýÿš8Þÿ×8àÿ×8âÿ×8äÿ×8ÿÃ8ÿÃ8 ÿÃ8ÿ×8ÿš8ÿš8ÿ×8ÿš8ÿ×8ÿš8ÿì8ÿ®8ÿ®8 ÿì8!ÿ®8"ÿì8#ÿ®89ÿì8@ÿÃ8Cÿš8Dÿš8Jÿ®8_ÿš8fÿ×8iÿš8mÿ×8yÿš8{ÿÃ8~ÿš8€ÿì8‚ÿš8„ÿÃ8Šÿì8Œÿš8Žÿš8ÿš8“ÿš8–ÿš8™ÿš8›ÿš8 ÿì8ªÿš8¸ÿ×8»ÿ×8Êÿš8Ïÿš8Øÿš8Ûÿš8Ýÿì8Þÿš8êÿš8íÿš8îÿ®8ÿì8R8 R8(ÿš9=9 =9I9=9 =:R: ÿÃ: R: =: ):ÿš:ÿ\:ÿš:"):$ÿš:&ÿ×:*ÿ×:-ÿ¾:0ÿì:2ÿ×:4ÿ×:6ÿì:7':@=:Dÿš:Fÿš:Gÿš:Hÿš:Iÿå:Jÿš:PÿÃ:QÿÃ:Rÿš:SÿÃ:Tÿš:UÿÃ:Vÿ®:XÿÃ:[ÿ×:\ÿì:]ÿÃ:`=:‚ÿš:ƒÿš:„ÿš:…ÿš:†ÿš:‡ÿš:ˆÿq:‰ÿ×:”ÿ×:•ÿ×:–ÿ×:—ÿ×:˜ÿ×:šÿ×:¢ÿš:£ÿš:¤ÿš:¥ÿš:¦ÿš:§ÿš:¨ÿš:©ÿš:ªÿš:«ÿš:¬ÿš:­ÿš:³ÿÃ:´ÿš:µÿš:¶ÿš:·ÿš:¸ÿš:ºÿš:»ÿÃ:¼ÿÃ:½ÿÃ:¾ÿÃ:¿ÿì:Áÿì:Âÿš:Ãÿš:Äÿš:Åÿš:Æÿš:Çÿš:Èÿ×:Éÿš:Ëÿš:Íÿš:Îÿ×:Ïÿš:Õÿš:×ÿš:Ùÿš:Ûÿš:Ýÿš:Þÿ×:àÿ×:âÿ×:äÿ×:öÿ¾:ÿÃ:ÿÃ: ÿÃ:ÿ×:ÿš:ÿš:ÿ×:ÿš:ÿ×:ÿš:ÿì:ÿ®:ÿ®: ÿì:!ÿ®:"ÿì:#ÿ®:$':&':9ÿì:@ÿÃ:Cÿš:Dÿš:Jÿ®:_ÿš:fÿ×:iÿš:mÿ×:q':yÿš:{ÿÃ:~ÿš:€ÿì:‚ÿš:„ÿÃ:Šÿì:Œÿš:Žÿš:ÿš:“ÿš:–ÿš:™ÿš:›ÿš: ÿì:£ÿ¾:ªÿš:¸ÿ×:»ÿ×:¼':Êÿš:Ïÿš:Øÿš:Ûÿš:Ýÿì:Þÿš:êÿš:íÿš:îÿ®:ÿì:R: R:ÿ×:(ÿš;); );&ÿì;*ÿì;2ÿì;4ÿì;‰ÿì;”ÿì;•ÿì;–ÿì;—ÿì;˜ÿì;šÿì;Èÿì;Îÿì;Þÿì;àÿì;âÿì;äÿì;ÿì;ÿì;ÿ×;fÿì;mÿì;¸ÿì;»ÿì;); )=)= )=&ÿì=*ÿì=2ÿì=4ÿì=‰ÿì=”ÿì=•ÿì=–ÿì=—ÿì=˜ÿì=šÿì=Èÿì=Îÿì=Þÿì=àÿì=âÿì=äÿì=ÿì=ÿì=ÿ×=fÿì=mÿì=¸ÿì=»ÿì=)= )?)? )?ÿÃ?&ÿì?*ÿì?2ÿì?4ÿì?6ÿ×?8ÿì?Fÿì?Gÿì?Hÿì?Rÿì?Tÿì?Yÿ×?Zÿ×?\ÿ×?‰ÿì?”ÿì?•ÿì?–ÿì?—ÿì?˜ÿì?šÿì?›ÿì?œÿì?ÿì?žÿì?¨ÿì?©ÿì?ªÿì?«ÿì?¬ÿì?­ÿì?´ÿì?µÿì?¶ÿì?·ÿì?¸ÿì?ºÿì?¿ÿ×?Áÿ×?Èÿì?Éÿì?Ëÿì?Íÿì?Îÿì?Ïÿì?Õÿì?×ÿì?Ùÿì?Ûÿì?Ýÿì?Þÿì?àÿì?âÿì?äÿì?ÿì?ÿì?ÿì?ÿì?ÿì?ÿ×?ÿì?ÿ×? ÿ×?"ÿ×?,ÿì?0ÿì?2ÿì?4ÿì?7ÿ×?9ÿ×?fÿì?mÿì?yÿì?~ÿì?€ÿ×?‚ÿì?Šÿ×?Œÿì?Žÿì?ÿì?‘ÿ×?“ÿì?”ÿ×?–ÿì?™ÿì?›ÿì? ÿ×?¸ÿì?»ÿì?Ïÿì?Øÿì?Ûÿì?Üÿ×?Ýÿ×?Þÿì?êÿì?íÿì?ûÿ×?ýÿ×?ÿÿ×?ÿ×?)? )@Rÿì@¨ÿì@´ÿì@µÿì@¶ÿì@·ÿì@¸ÿì@ºÿì@ÿì@ÿì@ÿì@ÿì@Œÿì@Žÿì@ÿì@“ÿì@–ÿì@™ÿì@›ÿì@Øÿì@Þÿì@ Cÿ®C ÿ®C&ÿìC*ÿìC2ÿìC4ÿìC7ÿ…C8ÿìC9ÿÃC:ÿ×C<ÿšC‰ÿìC”ÿìC•ÿìC–ÿìC—ÿìC˜ÿìCšÿìC›ÿìCœÿìCÿìCžÿìCŸÿšCÈÿìCÎÿìCÞÿìCàÿìCâÿìCäÿìCÿìCÿìCÿ×C$ÿ…C&ÿ…C,ÿìC0ÿìC2ÿìC4ÿìC6ÿ×C8ÿšC:ÿšCfÿìCmÿìCqÿ…C¸ÿìC»ÿìC¼ÿ…Cúÿ×Cüÿ×Cþÿ×CÿšCÿ®C ÿ®D ÿ×J=J =J=J =Vb)VfÿìVi)VmÿìVqÿ…VrÿšVsÿ×Vuÿ×VxÿšVˆ)V‘ÿÃZfÿìZmÿìZsÿì[_ÿì[dÿì[gÿì[lÿì[pÿì[qÿÃ[rÿ×[tÿ×[wÿì[xÿ×[ˆÿì\ÿÃ\mÿÃ\_ÿš\bÿÃ\fÿ×\iÿÃ\sÿ×\vÿ×\yÿš\zÿš\{ÿÃ\}ÿÃ\~ÿš\ÿ®\‚ÿš\ƒÿ×\„ÿÃ\…ÿ×\†ÿÃ\‡ÿÃ\‰ÿÃ\Œÿš\Žÿš\ÿš\ÿš\’ÿÃ\“ÿ®\”ÿ×\•ÿÃ\–ÿ®\˜ÿ×\™ÿš\šÿÃ\›ÿ®\ÿÃ\ÿÃ]qÿÃ]rÿÃ]xÿÃ^yÿ×^}ÿ×^~ÿ×^€ÿ×^ÿ×^ƒÿì^…ÿ×^†ÿ×^ˆ)^Šÿ×^‹ÿì^Œÿ×^ÿì^ÿì^ÿ×^‘ÿì^’ÿ×^“ÿ×^”ÿì^•ÿ×^–ÿì^˜ÿ×^™ÿ×^šÿ×^›ÿ×_ÿ®_ ÿ®_&ÿì_*ÿì_2ÿì_4ÿì_7ÿ…_8ÿì_9ÿÃ_:ÿ×_<ÿš_‰ÿì_”ÿì_•ÿì_–ÿì_—ÿì_˜ÿì_šÿì_›ÿì_œÿì_ÿì_žÿì_Ÿÿš_Èÿì_Îÿì_Þÿì_àÿì_âÿì_äÿì_ÿì_ÿì_ÿ×_$ÿ…_&ÿ…_,ÿì_0ÿì_2ÿì_4ÿì_6ÿ×_8ÿš_:ÿš_fÿì_mÿì_qÿ…_rÿš_sÿ×_uÿÃ_xÿš_‘ÿÃ_úÿ×_üÿ×_þÿ×_ÿš_ÿ®_ ÿ®`7ÿì`9ÿì`;ÿì`<ÿì`Ÿÿì`$ÿì`&ÿì`8ÿì`:ÿì`gÿì`lÿ×`pÿì`qÿì`rÿì`tÿì`wÿì`xÿì`‘ÿì`”ÿì`ÿìaÿša ÿšaÿšaÿšaÿša&ÿìa*ÿìa2ÿìa4ÿìa7ÿ…a8ÿìa9ÿ®a:ÿÃa<ÿšamÿša}ÿ®a‰ÿìa”ÿìa•ÿìa–ÿìa—ÿìa˜ÿìašÿìa›ÿìaœÿìaÿìažÿìaŸÿšaÈÿìaÎÿìaÞÿìaàÿìaâÿìaäÿìaÿìaÿìaÿìa$ÿ…a&ÿ…a,ÿìa0ÿìa2ÿìa4ÿìa6ÿÃa8ÿša:ÿša_ÿ…abÿšafÿìaiÿšamÿìasÿ®avÿ×ayÿ…azÿ…a{ÿ®a~ÿ…a€ÿÃaÿša‚ÿ…a„ÿÃa†ÿÃa‡ÿÃa‰ÿÃaŠÿÃaŒÿ…aÿÃaŽÿšaÿ…aÿ…a‘ÿÃa’ÿÃa“ÿ…a”ÿÃa•ÿÃa–ÿša—)a˜ÿÃa™ÿ…ašÿÃa›ÿšaúÿÃaüÿÃaþÿÃaÿšaÿšaÿšaÿša ÿšbRb Rbÿšbÿšb")b$ÿÃb&ÿ×b*ÿ×b2ÿ×b4ÿ×bDÿÃbFÿÃbGÿÃbHÿÃbJÿÃbPÿ×bQÿ×bRÿÃbSÿ×bTÿÃbUÿ×bVÿ×bXÿ×b‚ÿÃbƒÿÃb„ÿÃb…ÿÃb†ÿÃb‡ÿÃbˆÿ…b‰ÿ×b”ÿ×b•ÿ×b–ÿ×b—ÿ×b˜ÿ×bšÿ×b¢ÿÃb£ÿÃb¤ÿÃb¥ÿÃb¦ÿÃb§ÿÃb¨ÿÃb©ÿÃbªÿÃb«ÿÃb¬ÿÃb­ÿÃb³ÿ×b´ÿÃbµÿÃb¶ÿÃb·ÿÃb¸ÿÃbºÿÃb»ÿ×b¼ÿ×b½ÿ×b¾ÿ×bÂÿÃbÃÿÃbÄÿÃbÅÿÃbÆÿÃbÇÿÃbÈÿ×bÉÿÃbËÿÃbÍÿÃbÎÿ×bÏÿÃbÕÿÃb×ÿÃbÙÿÃbÛÿÃbÝÿÃbÞÿ×bàÿ×bâÿ×bäÿ×bÿ×bÿ×b ÿ×bÿ×bÿÃbÿÃbÿ×bÿÃbÿ×bÿÃbÿ×bÿ×b!ÿ×b#ÿ×bCÿÃbDÿÃbJÿ×bbbfÿ×bmÿ×bqÿšbrÿÃbsÿ×buÿ×bxÿÃbyÿÃbˆ)bÿ×bRb Rb(ÿÃdfÿìdmÿìdsÿìd’ÿ×d•ÿ×d—)d˜ÿ×dšÿ×fÿÃfÿÃf$ÿìf,ÿìf7ÿÃf9ÿ×f:ÿìf;ÿ×f<ÿ×f=ÿìf‚ÿìfƒÿìf„ÿìf…ÿìf†ÿìf‡ÿìfˆÿ×fŽÿìfÿìfÿìf‘ÿìfŸÿ×fÂÿìfÄÿìfÆÿìfìÿìfðÿìfòÿìf$ÿÃf&ÿÃf6ÿìf8ÿ×f:ÿ×f;ÿìf=ÿìf?ÿìfCÿìf_ÿìfbÿ×fgÿìfiÿìflÿìfpÿìfqÿÃfrÿ×ftÿ×fxÿ×fúÿìfüÿìfþÿìfÿ×f(ÿìgfÿìgmÿìgsÿìgÿìgˆ)h)h )h&ÿ×h*ÿ×h2ÿ×h4ÿ×h‰ÿ×h”ÿ×h•ÿ×h–ÿ×h—ÿ×h˜ÿ×hšÿ×hÈÿ×hÎÿ×hÞÿ×hàÿ×hâÿ×häÿ×hÿ×hÿ×hÿ×hfÿ×hmÿ×hsÿ®h‘ÿ×h—)h)h )iÿ®i ÿ®i")i$ÿÃi&ÿìi*ÿìi2ÿìi4ÿìi7ÿ…i8ÿìi9ÿÃi:ÿ×i<ÿšiDÿÃiFÿÃiGÿÃiHÿÃiJÿÃiPÿ×iQÿ×iRÿÃiSÿ×iTÿÃiUÿ×iVÿ×iXÿ×i‚ÿÃiƒÿÃi„ÿÃi…ÿÃi†ÿÃi‡ÿÃiˆÿ…i‰ÿìi”ÿìi•ÿìi–ÿìi—ÿìi˜ÿìišÿìi›ÿìiœÿìiÿìižÿìiŸÿši¢ÿÃi£ÿÃi¤ÿÃi¥ÿÃi¦ÿÃi§ÿÃi¨ÿÃi©ÿÃiªÿÃi«ÿÃi¬ÿÃi­ÿÃi³ÿ×i´ÿÃiµÿÃi¶ÿÃi·ÿÃi¸ÿÃiºÿÃi»ÿ×i¼ÿ×i½ÿ×i¾ÿ×iÂÿÃiÃÿÃiÄÿÃiÅÿÃiÆÿÃiÇÿÃiÈÿìiÉÿÃiËÿÃiÍÿÃiÎÿìiÏÿÃiÕÿÃi×ÿÃiÙÿÃiÛÿÃiÝÿÃiÞÿìiàÿìiâÿìiäÿìiÿ×iÿ×i ÿ×iÿìiÿÃiÿÃiÿìiÿÃiÿ×iÿÃiÿ×iÿ×i!ÿ×i#ÿ×i$ÿ…i&ÿ…i,ÿìi0ÿìi2ÿìi4ÿìi6ÿ×i8ÿši:ÿšiCÿÃiDÿÃiJÿ×ifÿìimÿìiqÿ…irÿšisÿ×iuÿÃixÿši‘ÿ×iúÿ×iüÿ×iþÿ×iÿšiÿ®i ÿ®i(ÿÃlfÿìlmÿìlˆ)mÿÃmÿÃm$ÿìm,ÿìm7ÿÃm9ÿ×m:ÿìm;ÿ×m<ÿ×m=ÿìm‚ÿìmƒÿìm„ÿìm…ÿìm†ÿìm‡ÿìmˆÿ×mŽÿìmÿìmÿìm‘ÿìmŸÿ×mÂÿìmÄÿìmÆÿìmìÿìmðÿìmòÿìm$ÿÃm&ÿÃm6ÿìm8ÿ×m:ÿ×m;ÿìm=ÿìm?ÿìmCÿìm_ÿìmgÿìmiÿìmlÿìmpÿìmqÿÃmrÿ×mtÿ×mwÿìmxÿ×múÿìmüÿìmþÿìmÿ×m(ÿìoÿ3oÿ3o$ÿ®o&ÿìo;ÿìo<ÿìo=ÿ×o‚ÿ®oƒÿ®o„ÿ®o…ÿ®o†ÿ®o‡ÿ®oˆÿqo‰ÿìoŸÿìoÂÿ®oÄÿ®oÆÿ®oÈÿìoÎÿìo8ÿìo:ÿìo;ÿ×o=ÿ×o?ÿ×oCÿ®o_ÿ®obÿ®odÿìoiÿ®otÿìoxÿìoÿ×oˆÿ×oŽÿ×oÿìo(ÿ®p)p )p&ÿ×p*ÿ×p2ÿ×p4ÿ×p‰ÿ×p”ÿ×p•ÿ×p–ÿ×p—ÿ×p˜ÿ×pšÿ×pÈÿ×pÎÿ×pÞÿ×pàÿ×pâÿ×päÿ×pÿ×pÿ×pÿ×pfÿ×pmÿ×psÿ×pˆ)p)p )qRq Rqÿšqÿšqÿšq")q$ÿ…q&ÿÃq*ÿÃq2ÿÃq4ÿÃq6ÿìq7qDÿ…qFÿ…qGÿ…qHÿ…qJÿšqPÿ®qQÿ®qRÿ…qSÿ®qTÿ…qUÿ®qVÿ…qXÿ®qYÿÃqZÿÃq[ÿÃq\ÿÃq]ÿÃqmÿšq}ÿ×q‚ÿ…qƒÿ…q„ÿ…q…ÿ…q†ÿ…q‡ÿ…qˆÿqq‰ÿÃq”ÿÃq•ÿÃq–ÿÃq—ÿÃq˜ÿÃqšÿÃq¢ÿ…q£ÿ…q¤ÿ…q¥ÿ…q¦ÿ…q§ÿ…q¨ÿ…q©ÿ…qªÿ…q«ÿ…q¬ÿ…q­ÿ…q³ÿ®q´ÿ…qµÿ…q¶ÿ…q·ÿ…q¸ÿ…qºÿ…q»ÿ®q¼ÿ®q½ÿ®q¾ÿ®q¿ÿÃqÁÿÃqÂÿ…qÃÿ…qÄÿ…qÅÿ…qÆÿ…qÇÿ…qÈÿÃqÉÿ…qËÿ…qÍÿ…qÎÿÃqÏÿ…qÕÿ…q×ÿ…qÙÿ…qÛÿ…qÝÿ…qÞÿÃqàÿÃqâÿÃqäÿÃqÿ®qÿ®q ÿ®qÿÃqÿ…qÿ…qÿÃqÿ…qÿÃqÿ…qÿìqÿ…qÿ…q ÿìq!ÿ…q"ÿìq#ÿ…q$q&q7ÿÃq9ÿÃq@ÿÃqCÿ…qDÿ…qJÿ…q_ÿ…qbÿšqfÿÃqiÿ…qmÿÃqqqsÿÃqvÿÃqyÿ…qzÿ…q{ÿ®q}ÿ®q~ÿ…q€ÿÃqÿ®q‚ÿ…q„ÿ®q†ÿ®q‡ÿ®qˆq‰ÿ®qŠÿÃqŒÿ…qŽÿ…qÿ…qÿ…q‘ÿÃq’ÿ®q“ÿ…q”ÿÃq•ÿ®q–ÿ…q—=q˜ÿ®q™ÿ…qšÿ®q›ÿ…qûÿÃqýÿÃqÿÿÃqÿÃqÿšqÿšqRq Rq(ÿ…rÿšrÿÃrÿšrmÿÃr_ÿšrbÿÃrfÿ×riÿšrmÿ×rsÿÃrvÿ×ryÿšrzÿ®r{ÿÃr|ÿìr}ÿ×r~ÿšrÿ×rÿšr‚ÿ®rƒÿ×r„ÿÃr…ÿ×r†ÿÃr‡ÿÃrˆr‰ÿÃr‹ÿìrŒÿšrŽÿšrÿšrÿšr‘ÿìr’ÿÃr“ÿšr”ÿ×r•ÿÃr–ÿ®r—)r˜ÿÃr™ÿšršÿÃr›ÿ®rÿÃrÿÃs_ÿ×sbÿ×sgÿìsiÿ×sqÿÃsrÿÃstÿÃswÿ×sxÿÃsˆÿ×tfÿ×tmÿ×tsÿÃtyÿìt|ÿìt}ÿìt~ÿìtÿìt…ÿìt†ÿìtˆtŒÿìtÿìtÿìt‘ÿ×t’ÿ×t“ÿìt•ÿ×t–ÿìt˜ÿ×t™ÿìtšÿ×t›ÿìuÿ®uÿ®u_ÿÃubÿ×uiÿÃuÿ×uŽÿ×uÿìu“ÿìu–ÿìu™ÿìu›ÿìvqÿÃvrÿ×vxÿ×w)w )w&ÿìw*ÿìw2ÿìw4ÿìw‰ÿìw”ÿìw•ÿìw–ÿìw—ÿìw˜ÿìwšÿìwÈÿìwÎÿìwÞÿìwàÿìwâÿìwäÿìwÿìwÿìwÿìwfÿìwmÿìwsÿ×w€ÿìwÿìwˆw‘ÿìw)w )xRx ÿÃx Rx =x )xÿšxÿ\xÿšx")x$ÿšx&ÿ×x*ÿ×x-ÿ¾x0ÿìx2ÿ×x4ÿ×x6ÿìx7'x@=xDÿšxFÿšxGÿšxHÿšxIÿåxJÿšxPÿÃxQÿÃxRÿšxSÿÃxTÿšxUÿÃxVÿ®xXÿÃx[ÿ×x\ÿìx]ÿÃx`=xmÿÃx}ÿ×x‚ÿšxƒÿšx„ÿšx…ÿšx†ÿšx‡ÿšxˆÿqx‰ÿ×x”ÿ×x•ÿ×x–ÿ×x—ÿ×x˜ÿ×xšÿ×x¢ÿšx£ÿšx¤ÿšx¥ÿšx¦ÿšx§ÿšx¨ÿšx©ÿšxªÿšx«ÿšx¬ÿšx­ÿšx³ÿÃx´ÿšxµÿšx¶ÿšx·ÿšx¸ÿšxºÿšx»ÿÃx¼ÿÃx½ÿÃx¾ÿÃx¿ÿìxÁÿìxÂÿšxÃÿšxÄÿšxÅÿšxÆÿšxÇÿšxÈÿ×xÉÿšxËÿšxÍÿšxÎÿ×xÏÿšxÕÿšx×ÿšxÙÿšxÛÿšxÝÿšxÞÿ×xàÿ×xâÿ×xäÿ×xöÿ¾xÿÃxÿÃx ÿÃxÿ×xÿšxÿšxÿ×xÿšxÿ×xÿšxÿìxÿ®xÿ®x ÿìx!ÿ®x"ÿìx#ÿ®x$'x&'x9ÿìx@ÿÃxCÿšxDÿšxJÿ®x_ÿšxbÿÃxfÿ×xiÿšxmÿ×xsÿÃxvÿ×xyÿšxzÿ®x{ÿÃx|ÿìx}ÿÃx~ÿšxÿ×x€ÿìxÿšx‚ÿšxƒÿ×x„ÿÃx†ÿÃx‡ÿÃx‰ÿÃxŠÿìx‹ÿìxŒÿšxÿ×xŽÿšxÿšxÿšx‘ÿ×x’ÿÃx“ÿšx”ÿ×x•ÿÃx–ÿšx—)x˜ÿÃx™ÿšxšÿÃx›ÿšxÿìxRx Rxÿ×x(ÿšyˆ)zyÿ×z~ÿìzÿìzŒÿìzÿìz“ÿì{ ÿ×|yÿì||ÿì|}ÿì|€ÿì|ÿì|…ÿì|†ÿì|ˆ)|Šÿ×|Œÿì|ÿì|ÿì|ÿì|‘ÿ×|’ÿì|•ÿì|—ÿì|˜ÿì|™ÿì|šÿì~ˆ)”ÿì€=€ =€I€ÿì€)€Žÿ쀑€”€–€=€ =‘ÿì”ÿׂ=‚ =‚yÿׂÿ삌ÿׂÿì‚ÿׂ“ÿׂ™ÿׂ=‚ =ƒyÿ®ƒzÿ׃}ÿ׃~ÿÀÿ׃ÿÂÿ׃ƒÿ׃„ÿ׃…ÿ׃†ÿ׃‡ÿ새)ƒŠÿ׃‹ÿ׃ŒÿÃÿÃÿÃÿÑÿÃ’ÿÓÿÕÿÖÿØÿÙÿÚÿÛÿÄ ÿ׆R† R†yÿ׆}ÿì†~ÿ솀ÿ׆…ÿ׆†ÿ솈)†Šÿ׆ÿ׆‘ÿ׆“ÿ׆—ÿì†R† R‡)‡ )‡yÿׇ~ÿׇÿׇ‚ÿ쇌ÿì‡)‡ )ˆ=ˆ =ˆIˆ}ÿ숀ÿ숅ÿ׈ˆ=ˆŠÿ׈ÿ׈‘ÿÈ”ÿ׈=ˆ =Š=Š =ŠIŠŠŽÿìŠ=Š =‹=‹~ÿ싈)Œ[ÿ׌]ÿìŒ@ÿ쌑ÿ쌔ÿ×~ÿ쀊)‘Ž[ÿ׎]ÿìŽ@ÿ쎑ÿ쎔ÿ×[ÿ×]ÿì@ÿ쀊‘)‘R‘ R‘I‘})‘€‘ÿ쑊)‘Œÿב‘ÿבÿì‘‘‘R‘ R“[ÿד]ÿì“@ÿì“”ÿì”R” R”I”yÿ×”zÿ×”~ÿ×”€”ÿ×”‚ÿ×”…ÿ씌ÿ×”ÿ×”ÿ×”’ÿ씓ÿì””)”•ÿ×”–ÿ×”™ÿì”R” R•[ÿו]ÿì•@ÿì–[ÿ×–]ÿì–@ÿì–€—yÿì—}ÿì—~ÿ×—€ÿ×—ÿì—…ÿ×—ˆ)—Œÿì—ÿ×—ÿì—ÿì—‘ÿ×—’ÿì—”ÿì—•ÿ×—˜ÿì—™ÿì—šÿì—›ÿì™[ÿ×™]ÿì™@ÿì›[ÿ×›]ÿì›@ÿìœ)œ )œÿל&ÿìœ-=œ2ÿìœ4ÿ위ÿ윉ÿ윊ÿìœÿ윔ÿ윕ÿ윖ÿ윗ÿ윘ÿ윚ÿìœÈÿìœÎÿìœö=œÿìœÿ윸ÿ윻ÿ윾ÿìœ)œ )ÿà ÿÃÿ…¦ÿ…°ÿ×¼ÿ…½ÿ׿ÿìÁÿÃÄÿ…ÜÿÃÝÿìßÿìáÿÃäÿ®ÿà ÿÞRž Ržÿ\ž&ÿìž*ÿìž2ÿìž4ÿìž7ÿ…ž8ÿìž9ÿ®ž:ÿÞ<ÿšž‰ÿìž”ÿìž•ÿìž–ÿìž—ÿ잘ÿìžšÿìž›ÿìžœÿìžÿìžžÿ잟ÿšžÈÿìžÎÿìžÞÿìžàÿìžâÿìžäÿìžÿìžÿìžÿìž$ÿ…ž&ÿ…ž,ÿìž0ÿìž2ÿìž4ÿìž6ÿÞ8ÿšž:ÿšžŸÿ잤ÿšžªÿ…ž®ÿ…žµÿ…ž¸ÿמ»ÿìž¾ÿÞÊÿ…žËÿמÌÿÞÍÿÞÎÿ\žÏÿ…žÐÿÞÑÿÞÒÿÞÓÿÞÔÿÞÕÿ\žÖÿÞ×ÿÞØÿ…žÙÿÞÚÿÞÛÿ…žÜÿÞÝÿÞÞÿ…žßÿÞàÿÞáÿÞâÿÞãÿÞäÿÞåÿÞæÿÞçÿÞèÿÞéÿšžêÿ…žìÿÞíÿ…žîÿ®žð=žòÿ\žóÿÞõÿÞ÷ÿÞùÿÞúÿÞüÿÞþÿÞÿšžRž RŸ)Ÿ )ŸŸÿן¸ÿ쟻ÿן¾ÿìŸÞÿןáÿן)Ÿ )  ÿì ÜÿסŸÿì¡ÜÿסÝÿì¡áÿסäÿì¢)¢ )¢&ÿì¢*ÿì¢2ÿì¢4ÿ좉ÿ좔ÿ좕ÿ좖ÿ좗ÿ좘ÿ좚ÿì¢Èÿì¢Îÿì¢Þÿì¢àÿì¢âÿì¢äÿì¢ÿì¢ÿì¢ÿ좟ÿ좸ÿ좻ÿì¢ )¤ÿš¤ ÿš¤¦ÿ…¤¨ÿפ°ÿפµÿ줼ÿ…¤½ÿ줿ÿì¤Áÿ®¤Äÿ…¤Üÿפáÿפäÿäÿš¤ ÿš¥ÿš¥ ÿš¥ÿ…¥¦ÿ…¥¨ÿ×¥°ÿ쥼ÿ…¥½ÿ×¥Áÿ®¥Äÿ…¥Üÿ×¥ßÿì¥áÿì¥äÿ×¥ÿš¥ ÿš¦ÿš¦¦ÿš¦Äÿ…¦ÜÿצÝÿì¦áÿצäÿæöÿì§)§ )§&ÿ×§*ÿ×§2ÿ×§4ÿ×§‰ÿ×§”ÿ×§•ÿ×§–ÿ×§—ÿ×§˜ÿ×§šÿ×§Èÿ×§Îÿ×§Þÿ×§àÿ×§âÿ×§äÿ×§ÿ×§ÿ×§ÿ×§Ÿÿ×§¤)§µ)§¸ÿ×§»ÿ×§¾ÿ®§Ëÿì§Î§Ïÿ×§Øÿ×§Ûÿ×§Üÿ×§Ýÿ×§Þÿ×§áÿçäÿ×§êÿ×§íÿ×§)§ )¨R¨ R¨¤ÿš¨ªÿ…¨®ÿq¨µÿš¨»ÿר¼)¨¾ÿרĨÉÿì¨Êÿ®¨ÌÿרÍÿרÎÿ\¨Ïÿ®¨ÑÿרÒÿרÓÿרÔÿרÕÿ\¨Öÿר×ÿרØÿ®¨ÙÿרÚÿרÛÿ®¨Þÿ®¨àÿרáÿרâÿרãÿרåÿרæÿרèÿרéÿרêÿרìÿרíÿ®¨îÿרðR¨òÿq¨óÿרõÿר÷ÿרùÿרR¨ Rªÿ®ª ÿ®ª&ÿìª*ÿìª2ÿìª4ÿìª7ÿ…ª8ÿìª9ÿê:ÿת<ÿšª‰ÿ쪔ÿ쪕ÿ쪖ÿ쪗ÿ쪘ÿ쪚ÿ쪛ÿ쪜ÿìªÿ쪞ÿ쪟ÿšªÈÿìªÎÿìªÞÿìªàÿìªâÿìªäÿìªÿìªÿìªÿת$ÿ…ª&ÿ…ª,ÿìª0ÿìª2ÿìª4ÿìª6ÿת8ÿšª:ÿšªÿšªŸÿ쪤=ª¦ÿ…ª®)ªµ)ª¸ÿ쪻ÿ쪼ÿ…ª¾ÿתÁÿ®ªÄÿšªÕ)ªÜÿתáÿêäÿêç)ªò)ªúÿתüÿתþÿתÿšªÿ®ª ÿ®«ÿ׫¼ÿ׫½ÿ׫¿ÿì«ÁÿëÄÿ׫Ðÿì«Üÿ׫áÿ׫äÿ׬7ÿì¬9ÿì¬;ÿì¬<ÿ쬟ÿì¬$ÿì¬&ÿì¬8ÿì¬:ÿ쬰ÿ쬼ÿ쬽ÿ쬿ÿì¬ÿì­R­ R­ÿ\­Ÿÿì­¤ÿš­ªÿ…­®ÿ…­µÿ…­¸ÿ×­¾ÿíÊÿ…­ÌÿíÍÿíÎÿ\­Ïÿ…­ÐÿíÑÿíÒÿíÓÿíÔÿíÕÿ\­Öÿí×ÿíØÿ…­ÙÿíÚÿíÛÿ…­ÜÿíÝÿíÞÿ…­ßÿíàÿíáÿíâÿíãÿíäÿíåÿíæÿíçÿíèÿíéÿš­êÿ…­ìÿííÿ…­îÿ®­ð=­òÿ\­óÿíõÿí÷ÿíùÿíR­ R®ÿ×®£ö®¤)®¦ÿ×®ª®®)®µ)®¸ÿì®»ÿ쮼ÿ×®¾ÿì®Áÿ×®Äÿ×®Î)®Õ)®áÿ×®ç)®ñf®ò)°=° =°ÿ×°Ÿÿ×°¤)°µ)°¸ÿ×°»ÿ×°¾ÿðËÿ×°Õ)°Üÿ×°áÿ®°ò)°=° =±)± )±±ÿì±µÿ×±¼ÿ×±½ÿì±¾ÿ챿ÿ×±Áÿì±Äÿì±Çÿì±)± )´)´ )´ÿ×´&ÿ×´*ÿ×´2ÿ×´4ÿ×´‰ÿ×´”ÿ×´•ÿ×´–ÿ×´—ÿ×´˜ÿ×´šÿ×´Èÿ×´Îÿ×´Þÿ×´àÿ×´âÿ×´äÿ×´ÿ×´ÿ×´ÿ×´Ÿÿ×´¤=´µ)´¸ÿ×´»ÿ×´¾ÿ®´Ëÿ×´Õ)´áÿ®´äÿ×´ò)´)´ )¸ÿøÿø$ÿì¸,ÿì¸7ÿø9ÿ׸:ÿì¸;ÿ׸<ÿ׸=ÿ츂ÿ츃ÿ츄ÿ츅ÿ츆ÿ츇ÿ츈ÿ׸Žÿì¸ÿì¸ÿ츑ÿ츟ÿ׸Âÿì¸Äÿì¸Æÿì¸ìÿì¸ðÿì¸òÿì¸$ÿø&ÿø6ÿì¸8ÿ׸:ÿ׸;ÿì¸=ÿì¸?ÿì¸Cÿì¸ÿ׸¤ÿ׸¦ÿ׸ªÿ츮ÿ츰ÿ׸¼ÿø¿ÿì¸Äÿ׸úÿì¸üÿì¸þÿì¸ÿ׸(ÿìº=º =ºÿ3ºÿ3º$ÿ®º&ÿìº;ÿìº<ÿìº=ÿ׺‚ÿ®ºƒÿ®º„ÿ®º…ÿ®º†ÿ®º‡ÿ®ºˆÿqº‰ÿ캟ÿìºÂÿ®ºÄÿ®ºÆÿ®ºÈÿìºÎÿìº8ÿìº:ÿìº;ÿ׺=ÿ׺?ÿ׺Cÿ®º¤ÿ®ºªÿ®º®ÿšºµÿšº»ÿìºÎÿšºÕÿ®ºòÿ®ºÿìº=º =º(ÿ®»)» )» )»&ÿ×»*ÿ×»2ÿ×»4ÿ×»@)»`)»‰ÿ×»”ÿ×»•ÿ×»–ÿ×»—ÿ×»˜ÿ×»šÿ×»Èÿ×»Îÿ×»Þÿ×»àÿ×»âÿ×»äÿ×»ÿ×»ÿ×»Ÿÿ×»¸ÿ×»»ÿ×»¾ÿûáÿû)» )¼R¼ R¼ÿš¼ÿš¼ÿš¼")¼$ÿ…¼&ÿü*ÿü2ÿü4ÿü6ÿì¼7¼Dÿ…¼Fÿ…¼Gÿ…¼Hÿ…¼Jÿš¼Pÿ®¼Qÿ®¼Rÿ…¼Sÿ®¼Tÿ…¼Uÿ®¼Vÿ…¼Xÿ®¼YÿüZÿü[ÿü\ÿü]ÿü‚ÿ…¼ƒÿ…¼„ÿ…¼…ÿ…¼†ÿ…¼‡ÿ…¼ˆÿq¼‰ÿü”ÿü•ÿü–ÿü—ÿü˜ÿüšÿü¢ÿ…¼£ÿ…¼¤ÿ…¼¥ÿ…¼¦ÿ…¼§ÿ…¼¨ÿ…¼©ÿ…¼ªÿ…¼«ÿ…¼¬ÿ…¼­ÿ…¼³ÿ®¼´ÿ…¼µÿ…¼¶ÿ…¼·ÿ…¼¸ÿ…¼ºÿ…¼»ÿ®¼¼ÿ®¼½ÿ®¼¾ÿ®¼¿ÿüÁÿüÂÿ…¼Ãÿ…¼Äÿ…¼Åÿ…¼Æÿ…¼Çÿ…¼ÈÿüÉÿ…¼Ëÿ…¼Íÿ…¼ÎÿüÏÿ…¼Õÿ…¼×ÿ…¼Ùÿ…¼Ûÿ…¼Ýÿ…¼Þÿüàÿüâÿüäÿüÿ®¼ÿ®¼ ÿ®¼ÿüÿ…¼ÿ…¼ÿüÿ…¼ÿüÿ…¼ÿì¼ÿ…¼ÿ…¼ ÿì¼!ÿ…¼"ÿì¼#ÿ…¼$¼&¼7ÿü9ÿü@ÿüCÿ…¼Dÿ…¼Jÿ…¼Ÿÿü ÿ켤ÿ®¼ªÿ…¼®ÿš¼µÿš¼¸ÿü»ÿü¼¼¾ÿüļÊÿ…¼ÌÿüÍÿüÎÿq¼Ïÿ…¼ÐÿüÑÿüÒÿüÔÿüÕÿq¼Öÿü×ÿüØÿ…¼ÙÿüÚÿüÛÿ…¼ÜÿüÝÿüÞÿ…¼ßÿüàÿüáÿüâÿüãÿüåÿüæÿüèÿüéÿüêÿ…¼ë)¼ìÿüíÿ…¼îÿ…¼ðR¼òÿ…¼óÿüõÿü÷ÿüùÿüûÿüýÿüÿÿüÿüR¼ R¼(ÿ…½=½ =½ÿ×½Ÿÿ×½¤ÿ®½ªÿš½®ÿ…½µÿš½»ÿ×½¾ÿì½Ä)½Êÿ®½ÌÿýÍÿýÎÿq½ÏÿýÒÿýÓÿýÔÿýÕÿq½Öÿý×ÿýØÿš½ÙÿýÚÿýÛÿýÞÿ®½àÿýáÿýâÿýãÿýåÿýæÿýèÿýéÿýêÿýìÿýíÿýîÿýð=½òÿ…½óÿýõÿý÷ÿýùÿý=½ =¾ÿ×¾¤ÿ×¾¦ÿþ¨ÿ쾪ÿ×¾®ÿ×¾°ÿþµÿ×¾¼ÿþ¿ÿ×¾ÄÿþÇÿ×¾ÎÿþÕÿþòÿÿ)¿ )¿Ÿÿ׿¤=¿®)¿µ)¿¸ÿì¿»ÿ׿¾ÿ׿Áÿì¿áÿÿ)¿ )À£öÀ¤)ÀªÀ®)Àµ)À¼ÿìÀ¾ÿìÀ¿ÀÁÿìÀÎ)ÀÕÀáÿ×Àç)ÀñfÀò)Ãÿìãáä=ê)î)õ)üÿìý)þÿìÿÃÁÿìÃÄÿìÃÇÃÎ=ÃÑÃÕ)ÃÜÿìÃáÿ×ÃäÿìÃç)ÃñfÃò)ÄÿÃÄ ÿÃÄÿ…ĦÿqĨÿ×ļÿ…ÄÁÿÃÄÄÿ…ÄÜÿ×Ääÿ×ÄÿÃÄ ÿÃÆÿšÆ ÿšÆÿ…Ʀÿ…ƨÿׯ¼ÿ…ÆÁÿÃÆÄÿ…ÆÜÿׯäÿׯÿšÆ ÿšÇÿ×Ǥÿ×Ǧÿ×Ǩÿ×Ç®ÿ×ǰÿÃDZÿìǵÿÃǼÿ×ǽÿìÇ¿ÿ×ÇÕÿ×Çòÿ×Èÿ×Ȥÿ×Ȧÿ×ȨÿìÈ®ÿ×Ȱÿ×ȱÿìȵÿ×ȽÿìÈ¿ÿ×ÈÎÿ×ÈÕÿ×Èòÿ×Ê ÿ×ÊÜÿ×ÊÝÿìÊáÿìÊäÿ×Êöÿ×ËÎÿ×ËÐÿ×ËÜÿ×ËÝÿ×Ëßÿ×ËáÿìËäÿ×Ëöÿ×Ì=Ì =ÌÐÿìÌÜÿ×ÌÝÿ×Ìßÿ×ÌáÿìÌäÿ×Ìöÿ×Ì=Ì =ÍÎÿšÍÕÿšÍíÿìÍòÿšÎÊÎÎ)ÎÜÿ×Îáÿ×ÎäÿÃÎñ{Ï ÿ×ÏÐÿ×ÏÜÿìÏßÿìÐ)Ð )ÐÏÿ×ÐØÿ×ÐÛÿìÐÞÿ×Ðáÿ×Ðêÿ×Ðíÿ×Ð)Ð )Ñ=Ñ =ÑÑÿìÑÜÿìÑÝÿìÑßÿìÑáÿ×ÑöÿìÑ=Ñ =Ô)Ô )ÔËÿ×ÔÏÿ×ÔØÿ×ÔÛÿ×ÔÞÿ×Ôáÿ×Ôêÿ×Ôíÿ×Ô)Ô )Ø[ÿר]ÿìØ@ÿìØÐÿרÑÿìØÕÿìØÜÿרÝÿìØßÿרòÿìØöÿìÚÐÿ×ÚÑÿìÚÕÿìÚÜÿìÚßÿìÚäÿìÚòÿìÛ=Û =ÛÏÿìÛØÿìÛíÿìÛ=Û =ÜRÜ RÜIÜÊÿ×ÜÎÿšÜÏÿìÜÕÿÃÜØÿ×ÜÛÿ×ÜÝÜÞÿ×Üíÿ×ÜòÿšÜöÜRÜ RÝ=Ý =ÝIÝÊÿìÝÎÿÃÝÕÿÃÝØÿìÝÜÝÞÿìÝòÿÃÝ=Ý =Þ[ÿ×Þ]ÿìÞ@ÿìÞÐÿ×ÞÑÿìÞÕÿìÞÜÿ×ÞßÿìÞáÿìÞäÿ×Þòÿ×ßËÿìßÏÿìߨÿìßÛÿìßÞÿìßáÿìßêÿìßíÿìàÎ)àÕ)àÜÿìàáÿìàäÿ×àç)àéàñfàò)àöãÎ=ãÕ)ãÜÿìãáÿìãäÿìãçãêÿìãíÿìãñfãò)ãöäÜÿšäÝÿ×äßÿìäáÿ×ääÿqäöÿÃå=å =å=å =æ=æ =æÜÿšæÝÿ׿ßÿìæáÿ׿äÿqæ=æ =çÎÿ×çÐÿ×çÑÿìçÕÿìçßÿìçäÿ×çòÿìçöÿ×èÎÿ×èÐÿ×èÑÿìèÕÿìèßÿìèäÿ×èöÿìé=é =é=é =êÿ˜ê ÿ×êßÿììÎÿšìÏÿ×ìÕÿšìØÿ×ìÛÿììÞÿ×ìêÿ×ìíÿììòÿší=í =í=í =î=î =î=î =ðë=ðô=òÐÿ×òÜÿšòÝÿÃòÞÿìòßÿìòáÿ×òäÿšòöÿ×óÐÿ×óÜÿšóÝÿÃóßÿìóáÿ×óäÿšôöÿ×õ)õ )õËÿìõÏÿ×õØÿ×õÛÿìõÞÿ×õêÿ×õíÿ×õöÿìõ)õ )öÊÿ×öÕÿÃöØÿìöÜöòÿ×øRø Røÿ\ø&ÿìø*ÿìø2ÿìø4ÿìø7ÿ…ø8ÿìø9ÿ®ø:ÿÃø<ÿšø‰ÿìø”ÿìø•ÿìø–ÿìø—ÿìø˜ÿìøšÿìø›ÿìøœÿìøÿìøžÿìøŸÿšøÈÿìøÎÿìøÞÿìøàÿìøâÿìøäÿìøÿìøÿìøÿìø$ÿ…ø&ÿ…ø,ÿìø0ÿìø2ÿìø4ÿìø6ÿÃø8ÿšø:ÿšøŸÿìø¤ÿšøªÿ…ø®ÿ…øµÿ…ø¸ÿ×ø»ÿìø¼ÿ…ø¾ÿÃøÊÿ…øÌÿÃøÍÿÃøÎÿ\øÏÿ…øÐÿÃøÑÿÃøÒÿÃøÓÿÃøÔÿÃøÕÿ\øÖÿÃø×ÿÃøØÿ…øÙÿÃøÚÿÃøÛÿ…øÜÿÃøÝÿÃøÞÿ…øßÿÃøàÿÃøáÿÃøâÿÃøãÿÃøäÿÃøåÿÃøæÿÃøçÿÃøèÿÃøéÿšøêÿ…øìÿÃøíÿ…øîÿ®øð=øòÿ\øóÿÃøõÿÃø÷ÿÃøùÿÃøúÿÃøüÿÃøþÿÃøÿšøRø RùÎÿšùÕÿšùíÿìùòÿšúfú fúÿ®úÿ®ú$ÿ×ú&ÿìú*ÿìú2ÿìú4ÿìúDÿ×úFÿ×úGÿ×úHÿ×úJÿìúPÿìúQÿìúRÿ×úSÿìúTÿ×úUÿìúVÿ×úXÿìú]ÿìú‚ÿ×úƒÿ×ú„ÿ×ú…ÿ×ú†ÿ×ú‡ÿ×úˆÿ®ú‰ÿìú”ÿìú•ÿìú–ÿìú—ÿìú˜ÿìúšÿìú¢ÿ×ú£ÿ×ú¤ÿ×ú¥ÿ×ú¦ÿ×ú§ÿ×ú¨ÿ×ú©ÿ×úªÿ×ú«ÿ×ú¬ÿ×ú­ÿ×ú³ÿìú´ÿ×úµÿ×ú¶ÿ×ú·ÿ×ú¸ÿ×úºÿ×ú»ÿìú¼ÿìú½ÿìú¾ÿìúÂÿ×úÃÿ×úÄÿ×úÅÿ×úÆÿ×úÇÿ×úÈÿìúÉÿ×úËÿ×úÍÿ×úÎÿìúÏÿ×úÕÿ×ú×ÿ×úÙÿ×úÛÿ×úÝÿ×úÞÿìúàÿìúâÿìúäÿìúÿìúÿìú ÿìúÿìúÿ×úÿ×úÿìúÿ×úÿìúÿ×úÿ×úÿ×ú!ÿ×ú#ÿ×ú@ÿìúCÿ×úDÿ×úJÿ×ú_ÿ×úfÿìúiÿ×úmÿìúyÿ×ú{ÿìú~ÿ×ú‚ÿ×ú„ÿìúŒÿ×úŽÿ×úÿ×ú“ÿ×ú–ÿ×ú™ÿ×ú›ÿ×úªÿ×ú¸ÿìú»ÿìúÊÿ×úÏÿ×úØÿ×úÛÿ×úÞÿ×úêÿ×úíÿ×úîÿ×úfú fú(ÿ×ûRû RûIûRû Rüfü füÿ®üÿ®ü$ÿ×ü&ÿìü*ÿìü2ÿìü4ÿìüDÿ×üFÿ×üGÿ×üHÿ×üJÿìüPÿìüQÿìüRÿ×üSÿìüTÿ×üUÿìüVÿ×üXÿìü]ÿìü‚ÿ×üƒÿ×ü„ÿ×ü…ÿ×ü†ÿ×ü‡ÿ×üˆÿ®ü‰ÿìü”ÿìü•ÿìü–ÿìü—ÿìü˜ÿìüšÿìü¢ÿ×ü£ÿ×ü¤ÿ×ü¥ÿ×ü¦ÿ×ü§ÿ×ü¨ÿ×ü©ÿ×üªÿ×ü«ÿ×ü¬ÿ×ü­ÿ×ü³ÿìü´ÿ×üµÿ×ü¶ÿ×ü·ÿ×ü¸ÿ×üºÿ×ü»ÿìü¼ÿìü½ÿìü¾ÿìüÂÿ×üÃÿ×üÄÿ×üÅÿ×üÆÿ×üÇÿ×üÈÿìüÉÿ×üËÿ×üÍÿ×üÎÿìüÏÿ×üÕÿ×ü×ÿ×üÙÿ×üÛÿ×üÝÿ×üÞÿìüàÿìüâÿìüäÿìüÿìüÿìü ÿìüÿìüÿ×üÿ×üÿìüÿ×üÿìüÿ×üÿ×üÿ×ü!ÿ×ü#ÿ×ü@ÿìüCÿ×üDÿ×üJÿ×ü_ÿ×üfÿìüiÿ×ümÿìüyÿ×ü{ÿìü~ÿ×ü‚ÿ×ü„ÿìüŒÿ×üŽÿ×üÿ×ü“ÿ×ü–ÿ×ü™ÿ×ü›ÿ×üªÿ×ü¸ÿìü»ÿìüÊÿ×üÏÿ×üØÿ×üÛÿ×üÞÿ×üêÿ×üíÿ×üîÿ×üfü fü(ÿ×ýRý RýIýRý Rþfþ fþÿ®þÿ®þ$ÿ×þ&ÿìþ*ÿìþ2ÿìþ4ÿìþDÿ×þFÿ×þGÿ×þHÿ×þJÿìþPÿìþQÿìþRÿ×þSÿìþTÿ×þUÿìþVÿ×þXÿìþ]ÿìþ‚ÿ×þƒÿ×þ„ÿ×þ…ÿ×þ†ÿ×þ‡ÿ×þˆÿ®þ‰ÿìþ”ÿìþ•ÿìþ–ÿìþ—ÿìþ˜ÿìþšÿìþ¢ÿ×þ£ÿ×þ¤ÿ×þ¥ÿ×þ¦ÿ×þ§ÿ×þ¨ÿ×þ©ÿ×þªÿ×þ«ÿ×þ¬ÿ×þ­ÿ×þ³ÿìþ´ÿ×þµÿ×þ¶ÿ×þ·ÿ×þ¸ÿ×þºÿ×þ»ÿìþ¼ÿìþ½ÿìþ¾ÿìþÂÿ×þÃÿ×þÄÿ×þÅÿ×þÆÿ×þÇÿ×þÈÿìþÉÿ×þËÿ×þÍÿ×þÎÿìþÏÿ×þÕÿ×þ×ÿ×þÙÿ×þÛÿ×þÝÿ×þÞÿìþàÿìþâÿìþäÿìþÿìþÿìþ ÿìþÿìþÿ×þÿ×þÿìþÿ×þÿìþÿ×þÿ×þÿ×þ!ÿ×þ#ÿ×þ@ÿìþCÿ×þDÿ×þJÿ×þ_ÿ×þfÿìþiÿ×þmÿìþyÿ×þ{ÿìþ~ÿ×þ‚ÿ×þ„ÿìþŒÿ×þŽÿ×þÿ×þ“ÿ×þ–ÿ×þ™ÿ×þ›ÿ×þªÿ×þ¸ÿìþ»ÿìþÊÿ×þÏÿ×þØÿ×þÛÿ×þÞÿ×þêÿ×þíÿ×þîÿ×þfþ fþ(ÿ×ÿRÿ RÿIÿRÿ RR Rÿšÿš")$ÿš&ÿ×*ÿ×2ÿ×4ÿ×6ÿìDÿšFÿšGÿšHÿšJÿšPÿÃQÿÃRÿšSÿÃTÿšUÿÃVÿ®XÿÃ[ÿ×\ÿì]ÿÂÿšƒÿš„ÿš…ÿš†ÿš‡ÿšˆÿq‰ÿ×”ÿוÿ×–ÿ×—ÿטÿךÿ×¢ÿš£ÿš¤ÿš¥ÿš¦ÿš§ÿš¨ÿš©ÿšªÿš«ÿš¬ÿš­ÿš³ÿôÿšµÿš¶ÿš·ÿš¸ÿšºÿš»ÿüÿýÿþÿÿÿìÁÿìÂÿšÃÿšÄÿšÅÿšÆÿšÇÿšÈÿ×ÉÿšËÿšÍÿšÎÿ×ÏÿšÕÿš×ÿšÙÿšÛÿšÝÿšÞÿ×àÿ×âÿ×äÿ×ÿÃÿà ÿÃÿ×ÿšÿšÿ×ÿšÿ×ÿšÿìÿ®ÿ® ÿì!ÿ®"ÿì#ÿ®9ÿì@ÿÃCÿšDÿšJÿ®_ÿšfÿ×iÿšmÿ×yÿš{ÿÃ~ÿš€ÿì‚ÿš„ÿÊÿìŒÿšŽÿšÿš“ÿš–ÿš™ÿš›ÿš ÿìªÿš¸ÿ×»ÿ×ÊÿšÏÿšØÿšÛÿšÝÿìÞÿšêÿšíÿšîÿ®ÿìR R(ÿš= =I= =7ÿšqÿšrÿÃ7ÿšqÿšrÿÃ$ÿ®,)7R9R:f;)<R=)FÿÃGÿÃHÿÃJÿ×RÿÃTÿÃW)Y)Z‚ÿ®ƒÿ®„ÿ®…ÿ®†ÿ®‡ÿ®ˆÿ\Ž)))‘)ŸR¨ÿéÿêÿëÿìÿíÿôÿõÿöÿ÷ÿøÿúÿÃÂÿ®Äÿ®Æÿ®ÉÿÃËÿÃÍÿÃÏÿÃÕÿÃ×ÿÃÙÿÃÛÿÃÝÿÃì)ð)ò)ÿÃÿÃÿÃÿÃ$R&R6f78R:R;)=)?)Cÿ®_ÿ®iÿ®qRyÿÃ~ÿÂÿÊ)ŒÿÃŽÿÃÿÑ)“ÿÔ)–ÿÙÿÛÿÃR¤ÿš¦R¨=ªÿ®®ÿ…°=±µÿ…¼R½=¿)ÄRÏÿÃØÿÃÛÿÃÜ)ÞÿÃêÿÃíÿÃúfûüfýþfÿR(ÿ® $ÿ® ,) 7R 9R :f ;) <R =) Fÿà Gÿà Hÿà Jÿ× Rÿà Tÿà W) Y) Z ‚ÿ® ƒÿ® „ÿ® …ÿ® †ÿ® ‡ÿ® ˆÿ\ Ž) ) ) ‘) ŸR ¨ÿà ©ÿà ªÿà «ÿà ¬ÿà ­ÿà ´ÿà µÿà ¶ÿà ·ÿà ¸ÿà ºÿà Âÿ® Äÿ® Æÿ® Éÿà Ëÿà Íÿà Ïÿà Õÿà ×ÿà Ùÿà Ûÿà Ýÿà ì) ð) ò) ÿà ÿà ÿà ÿà $R &R 6f 7 8R :R ;) =) ?) Cÿ® _ÿ® iÿ® qR yÿà ~ÿà ‚ÿà Š) Œÿà Žÿà ÿà ‘) “ÿà ”) –ÿà ™ÿà ›ÿà R ¤ÿš ¦R ¨= ªÿ® ®ÿ… °= ± µÿ… ¼R ½= ¿) ÄR Ïÿà Øÿà Ûÿà Ü) Þÿà êÿà íÿà úf û üf ý þf ÿ R (ÿ®(ÿ®( ÿ®(&ÿì(*ÿì(2ÿì(4ÿì(7ÿ…(8ÿì(9ÿÃ(:ÿ×(<ÿš(‰ÿì(”ÿì(•ÿì(–ÿì(—ÿì(˜ÿì(šÿì(›ÿì(œÿì(ÿì(žÿì(Ÿÿš(Èÿì(Îÿì(Þÿì(àÿì(âÿì(äÿì(ÿì(ÿì(ÿ×($ÿ…(&ÿ…(,ÿì(0ÿì(2ÿì(4ÿì(6ÿ×(8ÿš(:ÿš(fÿì(mÿì(qÿ…(¸ÿì(»ÿì(¼ÿ…(úÿ×(üÿ×(þÿ×(ÿš(ÿ®( ÿ®24 4>E 4 Z fNo½ gÑ 4 h8   ´ *   ,ì  œ* (Æ Îî 8¼ \ô ¢P F òDigitized data copyright © 2006, Google Corporation.Droid SansRegularAscender - Droid SansVersion 1.00DroidSansDroid is a trademark of Google and may be registered in certain jurisdictions.Ascender CorporationDroid Sans is a humanist sans serif typeface designed for user interfaces and electronic communication.Digitized data copyright © 2006, Google Corporation.Droid SansRegularAscender - Droid SansVersion 1.00 build 107DroidSansDroid is a trademark of Google and may be registered in certain jurisdictions.Ascender CorporationDroid Sans is a humanist sans serif typeface designed for user interfaces and electronic communication.http://www.ascendercorp.com/http://www.ascendercorp.com/typedesigners.htmlThis font software is the valuable property of Ascender Corporation and/or its suppliers and its use by you is covered under the terms of a license agreement. This font software is licensed to you by Ascender Corporation for your personal or business use on up to five personal computers. You may not use this font software on more than five personal computers unless you have obtained a license from Ascender to do so. Except as specifically permitted by the license, you may not copy this font software. If you have any questions, please review the license agreement you received with this font software, and/or contact Ascender Corporation. Contact Information: Ascender Corporation Web http://www.ascendercorp.com/http://ascendercorp.com/eula10.htmlÿff_  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a¬£„…½–膎‹©¤Šƒ“òó—ˆÞñžªõôö¢­ÉÇ®bcdËeÈÊÏÌÍÎéfÓÐѯgð‘ÖÔÕhëí‰jikmln oqprsutvwêxzy{}|¸¡~€ìîº   ýþ  ÿøù !"#$%&'()*+,-./0×123456789:;<=>?âã@ABCDEFGHIJKLMN°±OPQRSTUVWXûüäåYZ[\]^_`abcdefghijklmn»opqræçs¦tuvwxyz{Øá|ÛÜÝàÙß}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ›¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()²³*+¶·Ä,´µÅ‚‡«Æ-.¾¿/¼0÷123456ŒŸ789:;˜<š™ï¥’œ§”•¹=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg.nulluni00AD overscoreperiodcenteredAmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflexCdotcdotDcarondcaronDcroatdcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflexGdotgdot Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonek IdotaccentIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongs Aringacute aringacuteAEacuteaeacute Oslashacute oslashacute Scommaaccent scommaaccentmacrontonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiuni03A9 IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonos afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 afii10110 afii10193 afii10050 afii10098WgravewgraveWacutewacute Wdieresis wdieresisYgraveygrave afii00208 underscoredbl quotereversedminutesecond exclamdbl nsuperior afii08941pesetaEuro afii61248 afii61289 afii61352 estimated oneeighth threeeighths fiveeighths seveneighthsDeltauniFB01uniFB02 cyrillicbrevedotlessjcaroncommaaccent commaaccentcommaaccentrotate zerosuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperioruni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni200BuniFEFFuniFFFCuniFFFDuni01F0uni02BCuni03D1uni03D2uni03D6uni1E3Euni1E3Funi1E00uni1E01uni1F4Duni02F3 dasiaoxiauniFB03uniFB04ÿÿrt-4.4.4/share/fonts/Droid.README000644 000765 000024 00000000711 13437510132 017167 0ustar00sunnavystaff000000 000000 Droid is a font family created by Ascender Corporation for use by the Open Handset Alliance platform Android and licensed under the Apache license. The fonts are intended for use on the small screens of mobile handsets and were designed by Steve Matteson of Ascender Corporation. The name was derived from the Open Handset Alliance platform name Android. Droid Sans Fallback is a font with CJK support. See Also: http://en.wikipedia.org/wiki/Droid_(font) rt-4.4.4/share/fonts/DroidSansFallback.ttf000644 000765 000024 00013417450 13437510132 021314 0ustar00sunnavystaff000000 000000 €pOS/2ÚÃî4x`cmapÈç`|àÈcvt A`fpgm°!Y°ADgasp. glyfö³äèL) ¦headæ»YÀü6hheae4$hmtxé’ÙGØ^¤kern>‰Bœ.ôloca ¡¤¬Ad¦èmaxpªõX name_ ‡ .ôpostÿï .ü prep€ˆ)AL#ë-_<õ ÃGxgÃK¢“ÿéÿ¼  ÿ¼+ÿéÿ䙩¹¬'/þ³¦$³¦z > €¯+ß|û1ASC@ÿæÄÿà D‰· K’CEg¥Ó ´:M M @R E`   EE mÞœŸš¯‡~±´W Eÿé”~ß»¾”¾—… …³‘âŒ‡Š N`Nˆi”1ˆ –w–‰T…—BBÿøBå—”––ft W—{¿€}q [=[ E|”&U R Õ n UU”1¨E5UZ½½½m Ú¯¾”šˆ ˆ Õ ‰‰‰BÿýB””” ”———–ˆ –‰‰´—BÿþBœ …~M~Bÿÿ©»—”äé…W—” #”$B”./”œŸ~‘‡Š ´¾W ”‘ß»ˆ ¾±”ˆ …‡Ä ŒÄ ¾ –š}”t u—‘Tƒÿþ˜„r”¡”—s—³†ÿþ¾Á‡œ”Ÿ~¦‡ÑŒ »»”«ß´¾±”š…–Ä Œ³©ÿÿ¨Ó”˜—ˆ ’‘fŒ‰¸v ~Œ¸”˜–wq}²€š–ßá®À‘vψ‰€  --]]|Î+ : g +P-¾ ½½½½B:664€F FFp]4J7tbD:FlapBFSGF<IFEGFphFFFG-D9=FF4:E@DP*4,I,B@36-02;gBRAbEFJ;AB;CIBMJ"C?F;SMFC8#:8JMwEF821'41221 ƒ!R ‰EšÿýšÿýšBš7šÿýšÿýšBš7šÿýšÿýšBš7šBšBš7š7šÿýšÿýšÿýšÿýšBšBš7š7šÿýšÿýšÿýšÿýšBšBš7š7š7š7š7š7šÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýš,šBš,š,šÿýšÿýšÿýšBš,š,šÿýšÿýšÿýšBš,š,šÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšBšÿýšÿýšBššššÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšÿýšššÿýš†šššššššššššš#š#šššššššššššššššššð ðJJ00,,aE%WJ€2€6€1€6€#€6€.€.€)€)€+€+€€€€€€€€€%€ €€:Uˆ Bÿø”—————C #”1”1#³ ^/€==p=FUUUU2½½M, 8 : I 8:PBFw2#*€ *€ € ::::**-F<CB11.-€ €7AA4444FFFF""FF1111-iM"€<€€<€+€0(3€B€+¥;/1?++<<&&??-**&"""      %01+2$&(³ÁDD0'7%,+($!,VU <888'''#&);)!9:+8%$&3*h#FF #&"(+7D)   &+!!2"-%2"""$#""13&&"7##-1()j[iZG7F2v%!##BC' *B,gI  ..            "  "    #+*%pw-€ €€1€ €€€€€€€€€ €€€ € €€€€€€ €€ €€€€€€€€€€€€&€€ € €€€€€ €€€€€€€ €€€€ €€€ €€ €€€ --- ---  ---  ---  &&& &&& &&& &&&11&&11&%11&&11&&11"#11##11"#11"#********11%"11%"11%"11%"22"#22"#22"#22"#11"#11"#11"#11"#-------- "  "" ""  #"      ------- $$ $$ $$ $$ # ##  ## ##  ## ##  ##  %%  ... .. ... .. .11#"11%"11%"11%" .. .. .. ..********¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼Œ”šŒ”šŒ”šŒ•šŒ”š¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼Œ”šŒ”šŒ”šŒ”šŒ”š…‹w…†‹…“‘w…‡‹…”‘w~„”‡Œ€•‘w‡„“‡Œ…”‘n~„’‘‰Œg{^kpp~lju{^llo€toly]mmo€uolzzbmnp€soh~z\moq€tq‰v‡Š”‡Ž‹•††€‹•vŒ”‰’€Œ—v‹‘”‰”€Œ—v‹ˆ”ˆ”ftw\kpz€kwfu}^krv€kvfty]mrt€kvbwycmrt€nvbvybnoo€lv¼¼½¼¼½¼¼¼¼¼¼¼¼½.....................&&&&&&&&&&&&&&&&&&&&&&&&$&&&#&&&&&&"" $&&!533252325235225332522)%%.)%%.)%%)%%)%%.)%%%%%.))).))))%%)%%.)%%521155215525525221552551155114414445511551)%$,)%),)%%)%%)%#,)%%)%%+)%%,)&&)%%)##+)%%)%%+)%%+&&&&%%)%%+)%%)&&&)%%&)%%)%%)%%&)%%)%%+)%%+)%%)%%)$$+)%%)$$*($$*(%%($$)$$*)%%%%%%%%%%%%%%%%%%%%%%%522255525255555252555555155515555555551555)%%-).%-)%%)%%)%%-)%%..+#...#........)#---#"""!!"!!!!!!111.111.111111111.111)%%(*%%)*&&*&&)&&$*&&)%%%*&&#*&&*&&*&&$)%%---------------------555155515555555511555...+...+.........+...0+0+0+0*0+00+00+0*0*0 F b? gS]D KK JADF m zc Ko[` K_]ou y„ŒŸ ))))k m D v m ¢ ~ i r z [ ny€‹ U Xi VW ; @ L>VG‚++  “ q N`[a\KeV‹lZs'  O Ib m [KUg]JE  :W |U ŒZ €UY >— ZUJ yœSKb   ! †L# P YM?SlR D@€ )   G^  # M ¶ FF6Œ‰ N‡Q Y `I aJ­@ q VN ' ±6 A+ J’ ar c LM€WL G>BP s V ]N a ¡— b , 3:l6C> %^Z  ƒ L#k RFAHN rgDf#+  d\ M[ h} †S x q y n‚ eQ   NV N U«s ` \Q[  Y &AHuQXN ^ngXj a b>WEI >H T_8F 1  L`NNKG?Evˆ… +  } H2uhP zxDg TlNoH >œc lY› z !!] ej t d – ˆ  ] ˜| U a €hY"bS Q CJ 0} M sŠ\ f ‘`k ® †mq|kqpr u bnFD ' Y g ?@F+s vHCk M p ` dA ª  NlQMWRISF@K CKBIMMUOJR LJ [LGCGI y : I › . arQUaX^fUœyTVOE@`OWZPAP>•PCIQaO! MÄKSPS8 o‘# wdd`bHU RphbuTa FldVjclVZgP MnZVR bYR\USPE `PH\NTRUF ‘bRVy”VWdYMMW@{d  `rUIFG\\R B5H@@ Y O€ «E €TG: owbee cgUz^" ia  Œi k a b i Wb }  €guif su _" Zbw ‡ t LZg LIT „gmX[TV ”f vum n  | ‚ ‹R dJZNz ¡6 > ‚ $ y W dvr^„ L” 4 QÔ }ou{wJG TN + wrZ`” m ƒ \rw~mpnvšI [NJHRqQ  O bX ypD@  •B › wq_ Ÿ qK2Wg Š `=K] ^o 9_ uekdCes n d` im`is V 6 U_ *blH X kB67†5I?@ Bš +  @ †T}uc nH """7  € Š€ |„ ƒO oNŒm˜ Tpl M& &¥O ‘ L[y ‚ KG 6i 1g_L`H U I^y S ]EZ? \   `yy?W\/? [ƒ n wv…iZIF @† s  3:7^LE? G8.dNUNX XAGCV  hbf l} v’2V ]a Yj  ›GER Z_dknU=nMfaIR ] L' Y ‡cZ K5 cj ©H  N †u)* mq & 440,Tz g Y dtXKi =39 3;A<-==:<97K2-<.2_ G56= +)-; Y`d W a f  Pd mrQ [[\ƒ J pUO7V = llmtTxm 1€r so .……|Œ  o xl  GV_[nU  cWJ„  [&\‰@¾T™V }s 9Ze™u K ™Vi—SWjm[G [p1f p }vd •   gs -•=`G<: XKHU ; Q Ef\‹CR ”J OeE'] †XPwS |{K‚W 6] 5455 y~ ;662855=  $ gj ,, jeA‰)E[gWR q X  k`V@/ªK Ž` o u–  ‰glJMc:„’SEB|  YjPZ ™  SEN@CEmas d qh Mˆ [k  † ~¬©y [ @XWWf€r hfp "r_`K  yS… TJ[u mqFJ†H\ )GE‹]  ¤t   s  R ¶Qn y 7+yW  '! " 5V  =lwljpo~qvwJjW+\] a [€GUO8’E2kfelTN a Q?eo’U _†¦J ‚g mu .D Ih3H\934/7b.< 98;  X s[jr Y r"r^TCfX š{X>[ tq uizvxw =V` Fm„ @ sx[d+J{|_a R \ v7 RlIg]gcUb ] 8<j4:M QAlK cL] n«¦n¡TB€| _K W_ Rfi X[ Uz—mWFYdKK¢E@fUm‹ i~bTo}y3@zCUNQRD@ aV jI ipc”$ $KRgr kŒQOdj6f e  dPhbJB^gcakaXk`Vb QeeSngZZG"*#"_&V"p[]  ‹Ui‰F[r‚|„\jsmp    Kg3W  z  WIRx p ! # ! !UCq‹8\FMLH] \ … ‹zwzhotw  a \ W} : YHa P ZM O ]VOZLhu  cNkuN[hN ` bCkƒ uq ;;gg &C  A; -K 6jž9 o 0Rl€w vmVg„v9 : }7V KoˆqQTOW+ _ flm WC5`.m ;\gm[’s JYFgJ OYj ˆ *k} ƒ[š YY¦ C~D[c Zio €r X ‚W‡;K j9A¡½W žbARž žERž žaP s[L R_? }| e $*+rC FUb\mZB bi ¦ ‚«r m/  Fd ; j[TbPZoFW€ k`r Pu l KJe:\ EKJF B\iet|XEyurrwzyghmg`bZoHR†M Š][ •PR SSPvDHj^R MDWƒ}m} ndnudYP®glc\kfb fS__ \ej i 0 . 9”/D "  @•h  Of\hd UQKPr\nY  ~cW]§? #Tme“ qr Kdr[HŽ^ vi P]\KKE[ +F" HTbm<=fYgis ˜ƒbepM] B]E_iji Qg pgm q b hB DRVVžR e )wXeK Gs GT 6W8g_f {r] tw  GO>JX k€ †9 cN gfea€T–L Œ i &w N Q ?o K ObYh gCVaIA*&~ _.edu tŽc8\kH mgu[b? 2PXc[m [`Xa\BgG>MT>@SbJhdven[z€ )  1/? wvK _ hr'~ƒXD_ l qo GQWQAe8TKn e f Fc=C P ^wn'(ŸMZw+“+~a }„ (U\EW d I I]en  spui … ^  WKaLepH`kb^k uEE0X ><50 42/8 km=JN ?n J\U Qg š i ƒƒ w|…^QPRR 'k B†LoyS^fGr } €c u^efKlJ Bz ` bMI=Y> V}f ar (dbPi$ |9B { E˜B… !" _lvf dkeIU m€ pkgpQ d: \X[SYc ’ o  V ok q ‡uŠ RG^ w RLn it Pu?FP[^  fmNX^Im weH•>7| ahi G]`k kMf vrƒsi!ilavkgjw_hgdmgmxHtp‹,+gXG§Ž  O g^eQmi?Bˆ?‰Š_W‰apn‚O^ gOKg ^ [xvy  r_Suuutiomnloljpf^kg ^ niZ\iq c?K I]U j Gp CP  jtLI_›„sg}|  n ] @ cXxy GPM adm*xsu~ olk pq a AyytŸd <10\MauI_f`iqqpe_q[Z[Mfb\  YdG JM u_^XdMhh|Ur gq~‚phˆz waZX 8 HIW`E` c ;U\ p RmT prjKahWfpRaKLFNV`kŠ €G ^^• ‹MaT‰ YrYV  Eƒ Qnf pNzK }5U-^ …QE>;‰ C l ~VJ qtyS,^h cGhMppf_NS TƒhuK?Vi_OUF r t ioZFA•;BEV +7 Zdof Pm|r P  DR} qvrlqV^ w `IXJfodly?GZ‡€ dQ D\  LN#^l@l_  ZSlG~ iRH<…{ Dz i2d ) aH`c› b u X M<M Lb?QQtLO XDr _ TX9 elz\WmQ Dg y l=MdnV V bF Ee^X =; `L  WeP_ozR T]{i=k^H|Xp TL`[ogOUzƒŠ  mfqc] Qo tR? v]…i;~NƒBBA–– [ K/K?·u ‚N J•mf Wij  ‹ Œ TL aXDC a  g @ ˆ O F Š: LU_8W C yJp949 U ^ hhd lW^F‚ |_d_ ps}N sld{~}€ƒ|†{OQn„€k p£sokwatbžg{ ™¢_pqZc‚~u  TibD KI_ L ciXu`c] fm ?36D BL[L\fSinncpvftmra R`Lne Ov†Z  P‹bPƒa   GgK mkVE UaROVI zƒ uyo‰qpa ~~yqJU`k ›HP ~V] EktFPk [RZc rk G\bWOLW! qaTFY€ qy{m EHEJJ \N’_ƒH^p*Sq+ ‰aQkmn Hd 9A l[IPT lU[fGh s~ {ƒh YF i e  [aN^SZJfxfoNJrfGC RDZ W45gxS;`D‡RM FPA? spxoq €Z_ImfNWVC j vG] BA\ L Y`OelT Cm Y> UX ][ Q €Fg6 i u|A€M‰Ž LZU€I‰ __k\`gEL 6| r~vx~ qwp kHLE ; q @O\ aidK —T] egZJl‡ƒxxwwumguogvrkd^JWs\Glsrk]T SIF[ {M_e ak}‚ ‚ƒ‚ [ej™œa–^] CLPTc`SKŸAF T : F ‰ ƒ’G\k a DQIhikO` ]rV \ dKT 3J_u 5„AGS_…wniY_ PfWr}c&h ‹ZE :s` 7›o  G :;FSF>XIR-?aqmi LIV -\OAisq†` c \O6Z cq 9 E[ i c mmW4Q_] A Xh Gk?5 KUeKraUa @p`i?y €YJDPL\ Itk5T[GgxE@ [l SeVMC@O Z<l gU^[QMIS\k P7[eT_<m U; _G dqYq]ldQG QN]T§_Œ\ ]QkDNf   ~gMt  _e K TAQhGWaTp[ aDoF _smV7T>B<§ Bk xJ bK: _JJhG] ^dsT5 F u`RBQQe\cp0?˜< ^_`^e\WX VJb T DTmˆXbReMU m0TMl€ €z~§ER^d\4E`_K Wa X  R@^fnUE\ `b BC  i/ Y\LN7UM E JMSGLMk+ O iYTrmFb_a uZ]^h] ˆ\\WQRG [D@EMZdŽ@ gff_eT`{U]dbZ`LNS`“^dY@RYaXZMRTVH>\UaQVX`UYSJVFc ^cJSOCLMUcFMX@G NRI KQmm2 xfl`_ c`RKKBDFCJDDHBJPcZ[MLKMITF E† xk e    !     ­PKOA`U?  l;;[K‹Va7 OULIGlXPKE\KIAQRM[nl KCMUEe[gUKIL_W HDIY@CGIMFK@DS@IN~L\u‰2D%C% {Q[`gLE>@F@FMES@VJK>@y|m€„€xrvykpk‚{xptq ABB=E:8  Oja     ^imi` rtl !udtp_tb   w   I T_YAq\QJYY€ QgdT´) [„[KgYU[XWUK YUJDR£ PQQJ?WYRZZQV^LIF>OLRRYRRROVK …€…‰~€\Q : W`WSUI^]aTi\W`]`N`EIX?RIWPXXU@YPUWS Œ`k`[`deZZYkbX]XnY]ke][__X^`X_[ r cte` d`^`c`aRa`rnijeb  [ `_Mƒ!!&%€hl_]Ag `USV^ UA Yu LjVUf¬TYNcbg\SS]]UB\YNG]YUCQbl[NHZVYOS…\   qnqnnpkot d `ofkedZttvlqq{ -AM[UYPcDUPR gc`^M t   GLFRNQKBg`^DJbJTIJGlJYS[G lS^  Q?]DFSuzrllunnwillssvgnjpvxBCAW]Z 89IHTH;;LMOMH@EŠFEBIBJG @;PBDQII8BCC>>BA?>ExLKO?HGLBB8A@8L>C:>@ƒEI:<MA?Œ4W@B>CAA@:N[  WQibg"\\K| | [Š Y,\f+‡ Q^]W_Z+[ l Z kigkk_ei l U\VV „€ jO“on    # m Bh || ¥m `lotemjrfdpogea €}xu fW   !!!!!x s{tsvtn “ldJ^^ET c^ ltai[gm hfh^fp gk v ‚ } £[n`†`ESYOZOZ_cOUD@XTRXI ‹\UWJ^]EKLMKL[JFJ;7N    NHQOO?@LeQ‡5VG[lep`k^Y \[ ^U?R]eluŽ 3 i_p{RCL| ws‡stnl w{kszproyt|dnbdfZ ckgiankchgid`e Ifu [_KE Igts[kx p] lqIBIK  +( KKŸ$Jv M\Jn _`MV U_cao^H\QXGPX'UqSZ JTZKcZeJVHRbZ`PraQXom`hmfi`c] bj_ W]X\z]_T‰ lj_YZ P  u  zt  zy       t „ˆ |qz zx R» #008 |3…_Y Q}ŠC I —xŒ;  H j]l ‰ G  a u u z  z @  ^` Yf    ¤ Xk”QSGX]Qkfa_]ixql]`‘ |p{~šrzv r    s  OE;   Y[[Ÿ"b[bnR Mb R{‚ Oj$R`Rga` _V R hg _’WL QTVHIEUP«XœII € w  RSRUFSXS^fo¤]t[žcJ?^VN`ŠQQ[›  I^?>”N{=BGs;€—ŠB5Œ?DGH6C6>GGM €Tb)N}4Z ˆ”I^ k q,+--)`=JW& dZDYU\VOR[o\ znf \‚\\OsU b] r x!hea]jYhnmeg•f`kWƒb haXƒ \ lZ[hkbRe^l …‚„+ ) urtmukkrc ga),igf e_mw¤¢e q  „ [8R_K[:Yb CX_U_faz:LS^fZPFA;MELGUT b^OQNPfMR{ b˜`— m+ cfLJL@OLL IJCY[cgf ^_ TY a š ±YOYRZgNX PPTG O;^\K QisGXKNSKU ZXC8E<EKUchR\U‡]YSV PDGDFS‰J•DBGV”ABD8DFAXF`tUdbiblgddjtti]ecfliscegeaUD=L`_bb XUYR[ `f ~kc Yqnb_qmikb d /    Xf<8HU`  g¬ a AQUFG7K |U59 ?BZN TGF¨ŠN M\\SJ’mq§‚g\X"bhdk`d Z±£¬°¼KWHS MDTV]VJCQCfaT%aaGN JU^adnn>M UObkpmZA9Q SLY`M\ IR?[jp ROpe?R€?Q 7?phE9 ‚Dj`iq_\Z^d]d[¥\TbF [dh bgiVEm]O U[Metm?YPU [g^ls O`   G{kŸxw’c`i [` ^Mbk³ªdG V_XTQœOxFdkUfU_R bh lb^Q ~ r¹RPµ mke]gg^Ri oeqhpNI\uz‘   Wj‚ e_QDY O\L?vor W 5C & \Za dZU^S9TPbdbYD J E j# a  RIL\e‰Ki a [\fPJ PciWdTQQ`QdkVCsJ^amv XRd   eSObmyUEEc_RZ ‚G lgiS hbbX^dm€w‚od ] Y`oj`nue`XeJpr;pj<CGN ` vO4     v  \P0    P     B8 JOGSFF@>>?IAUA@EDBC>{>U>B:<CBGG9    # @ wK ?BT 04  m! !/!;5915318B2<@    A\=;37893629,2-26<:  ) U! Q aBQ‹):V>LXPK JMP ZA YOSRQ†FEbN XQKCHDPGI NHKHKV>ONnGB LSLD=O7/::8?3403512244.046,16212041- L  ^ SLT !PP]IYKRS(3 J Uz;  lLy ?O ?      ) -  #'%%-w )cFj`[OKY4 x{Q=[YUX3_TUYQVRGY /  0' *(6+ [      V      $&ƒ0  s ] 3_8,+B?<BD>C>?78:&jCjsi8.-!%9c$   V S  ~T †d S #%"$7" Res+q87;?B0@?4GK3136911784).?96<=42456<F5+A5&?A*74:39.538,69:2833,81264.3513k ' e` W"w X?JGL=DK> : PZ3  FJMa I 3 X A[@ R-_ G P +  H| . ‚NzM ‡ryG HK0 JLK /'( 8 BLC;6Kgm`MHX ` ILU_SX_EW ySH TWiTGRT4CKUKwKINKHOR~OKIKE@lKUTRN‚ OW=MK@TLGIGHKb     tmomkdhnckhc\^i,"1)b  P 2 FS2I "   … \> V yURSgaOZ/MUE]R T M U K BdIPF}F S‡FQ mLKHMS„T_HWN E ‚S WSIW@•P\MuS _PRY[EZ „ @NWI8]]Z^^ HQTGQ J@ NORNALOAMM T:  30   y!gf aP_a]]$$ L ŠLY D2CK@@FFPI_OF0D98J‹^LCI1LBVb<MDB>;N<?ME:7F>:EJCADyEaGAKA?<FBu2@5>>CE=7F@C<K9?C9cjF@A8C.L4@A6@J<Eiq7@EF.>8}|8CP:@>>:?E=e 9DMB;DB69C6@5KA694 ;MC56A??_@9^?IB=E?5i@6@<9<= %'c  ?  \ dR V†  |wr% G yO3Q G   Vf5~ 11c Q¡¦`TT NL_LKTPKE GN§¡ÃCJV[S[‡JKt_GOD ƒLFD ‡ z"      KYPKU]^IDOHIN<R;ROJEHNX9LNKPXLOIY=E^COC>DI>GGGQHIKLLHOIXMMHBHD@QMDICID?=:RJ9DC?A8E@DGCCL;BFLGF>JENDAODNH9=>=IHR<;;>:@AD?9?4:œ5DHAC=œD " J       2  OQYƒ"VZ k Sfe LN4 V_ˆ-WO ][g XSS 8  J  kd RX0 - - #   , i  … && !      †    ) O+ %R m a &   K  N Y%J G W  |  K8    V       GN Š3v a \iTa0T ` 3•fYZ{ VOb‹Q UWB^ZRW‚O i      T4  uj t  €  4icx    #'  ka`(g[9\dSfd2T _Q\ R w   '  d *#     "      #* $$   &     S  H  Z  fK  ^  NJ TRZE    f*)  Ie d a"krA  K  J   P  I  N        gZy >UD k Q  )  J" )  b KGF\  J    k &  1 @ †    n w T        I    A  ‰         F         „   {    .4323& ^ ] &c_ h˜ ‡u]  3 if_d^. _   \ c1 _   QAFJIACB< ' h_ _' ‰W  \T‡  z\QVYOGY  O !u v‚x fk 8_]\ _U‡TUWVvX…#Y[` eY^MTEFRUKzr 5 +      4\c1 M 06 x“K, : p m•ƒ„wurnk{{~mwoskhdwm{jepcfqkemefgjOY ŒYk‰UO V]ORX t‚RO^T\ZZ_    ^ ^  ^ GFZ) eU\HNJ[LNUMYRMZRKS[OQQMbJKD]GL]bPMDNQJX[KSHQPGFK^[NINNIDTEPZNIVLKFOQKKPEONBPLGMEVEMPUBKHJEOBPEGMLLMJMJICJCPAMFMACKLPLEC m ]  no˜lqorf Gv[ OoiH XŠ/ \bZ^[‘iV†\ `^fY^ W‚‹lU__XkZF9:9@751-:17<K</>=6;81610=GB„/83+@3859;15181>6.308/.596/E;O?<8<R=;:H@>7<I45L?H;1669;77gZXYY}MN}uV \2  "   U _ Y    T    — B 52Bm aS –œƒ‹—’ƒ ƒ……‹ v \‹ Skkon ]m_gfj  a‘rf   U   .+ ;‡‚ƒƒw†€~1w{' Kh nbkg`d@œŒhkp7/ = 5  w  tn  7 ((d 7 ;= 2 )/+(+,0;*55+&555506  ‚p>   ! " G  • f N   \  AHG ]    51 \    X   9=c $#_ G5UC  c X 2/  A  -   VF \I]f   @  u   Z XNM V FB ii`                                                                                                                                                                               &                                   ""                                                                                                    "     *                                                                                                                                                                                                 &                                                                                         !                           ' "                                                                                                                                                                           " "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ༹ ~  ¡¡b¤¤c§¨dªªf­®g¯¯M°´i¶ºn¼¿sÆÆwÐÐxרyÞá{ææèê€ìíƒðð…òó†÷úˆüüŒþþŽ‘&'’++”13•88˜?B™IKMM RS¡fg£kk¥ÎÎâÐÐãÒÒäÔÔåÖÖæØØçÚÚèÜÜéÇǦÉËëÍÍîÐÐêØÛ¨Ýݬ‘¡­£©¾±ÁÅÃÉÖÝOÞQQ        "  $ !& % % & &( ' ' 0 0) 2 3* 5 5à ; ;ï t tá  ð „ù ¬ ¬,!!ý!!-! ! þ!!.!!/!!!!ÿ!"!"0!&!&1!+!+!S!T![!^2!`!b!c!cø!d!k!p!r!s!s!t!t!u!x!y!y!!™!Ò!Ò(!Ô!Ô)""*""6""+"",""/" " 0""7""8""-""9""."":"" 1"#"#4"%"%3"'"*5"+"+;",",ñ".".ò"4"7ó"<"<÷"="=9"H"H<"L"L:"R"R;"`"`="a"a<"d"e>"f"g="j"k?"n"oA"‚"ƒC"†"‡E"•"•I"™"™J"¥"¥G"¿"¿H##K$`$µž$Ð$éô%%K%P%t^%%ƒ%’%•’% %¡–%£%©˜%²%³Ÿ%¶%·¡%¼%½£%À%Á¥%Æ%ȧ%Ë%˪%Î%Ñ«%â%å¯%ï%ï³&&´&&¶&&¸&&¹&@&@º&B&B»&`&a¼&c&e¾&g&jÁ&l&mÅ&o&oÇ00N00100R00100S00c0!0$1 0%0%f0&0)1$0A0”g0™0ž»0¡0öÁ0û0þ11)111Ž@22ž2 2)1(2122122929142`2{»22×2£2¨1533Ø3 3 Ù33Ú33Û3"3#Ü3&3'Þ3+3+à3636á3;3;â3I3Jã3M3Må3Q3Qæ3W3Wç3{3~1;3€3„è3ˆ3Êí3Í3Ó03Õ3Ö73Ø3Ø93Û3Ý:MM@“MµMµ@”NN1?NNeNNNNN N *•N N oN N N N .NNNN*UNNÛNN1@NNNN*VNN1BNN*WNN1ENNSNN*XN!N!#N"N"*YN$N$1FN%N%/N&N&—N'N(1GN*N+1IN,N, N-N.1KN0N11MN2N2N3N31ON4N4@•N6N61QN8N8¦N9N9jN:N:N;N=1RN>N>!“N?N?1UNBNB1VNCNCÚNENEÀNGNI1WNKNKXNLNO1ZNPNP%ÎNRNS³NTNT1^NUNU2NVNV1_NWNW*ZNXNX–NYNY(N\N\1`N]N]ßN^N^1aN_N_SN`Na1bNbNb@–NfNf1dNiNi@—NkNk@˜NmNm@™NpNpüNqNq@šNsNs@›NvNw@œN~N@žN€N€1gN‚N„@ N…N…1hN†N†”NˆNˆ0N‰N‰=NŠNŒ1iNN<NŽNŽ*^NN*—NN/iN‘N‘*_N’N”1lN•N•®N˜N˜ÕN™N™•NšNšÝN›N›@£NœNœ1oNžNž#iNŸNŸ˜N N¡cN¢N¢@¤N¤N¤fN¥N¥°N¦N¦eN§N§ÐN¨N¨ñN©N©@¥N«N¬@¦N­N­*`N®N®@¨N°N°@©N²N²!¾N³N³@ªNµN¶@«N¹N¹@­NºNº‚N»N»1vN¼N¼@®N¿NÉ@¯NÊNÊ1yNËNËžNÍNÏ@ºNÑNÑ@½NÓNÚ@¾NÜNß@ÆNáNá@ÊNãNã@ËNäNä*bNåNå²NèNî@ÌNðN÷@ÓNûNý@ÛNÿO@ÞOOîOO@àOO @äO O@èOO@ñOO©OO @ôO"O"@úO$O'@ûO*O-@ÿO/O0AO2O4AO6O6AO8O?A OAOAAOCOCAOFOIAOLOWAOXOXâOYOY& OZOdA#OeOe,OgOgA.OiOlA/OnOpA3OsO…A6O†O†&O‡O‹AIOOANOO’AOO”O•ASO–O– O—O˜AUOšOžAWO O¡A\O£O£A^O¥O¯A_O²O³AjOµO·AlO¹O»AoO¿OÅArOÇOÇAyOÉOËAzOÍOÑA}OÓOÔA‚OÖOÝA„OÞOÞ#ƒOßOáAŒOãOæAOèOêA“OìOïA–OñOñAšOóOøA›OúOúA¡OþPA¢PPA¥PPA¦P P $$P PA©PPA®PP1AºP3P3AÎP5P7AÏP9P<AÒP>P>AÖP@PCA×PEPQAÛPSPSAèPUPWAéPZPeAìPhPpAøPrPxBPzP{BP}P€B P‚PƒBP…P…BP‡PˆBP‹PŽBP‘P’BP”P–BP˜P˜hP™PžBP¢P£B"P¥P¥B$P§P©B%P¬P¸B(PºP»B5P½P¿B7PÁPÂB:PÄPÈB<PÉPÉ&ÀPÊPËBAPÍPÏBCPÑPÑBFPÓPØBGPÚPÛBMPÝPÞBOPàPàBQPãPêBRPìPñBZPóPöB`PøPùBdPûPûBfPýQ BgQQBwQQB€QQBQQ"B‚Q$Q&B†Q)Q*B‰Q-Q.B‹Q0Q5BQ7Q=B“Q?Q?&ØQ@Q@1žQAQAÇQCQC èQDQDðQEQEBšQFQF¼QGQG QHQHßQIQIþQJQJB›QKQK&òQLQL^QMQM'QNQN1 QPQP1¡QQQQ_QRQRÀQTQU1¢QVQWBœQYQYBžQZQZ$=Q[Q[BŸQ\Q\1¥Q]Q_B QaQdB£QeQeçQgQgæQhQh^QiQi1¦QjQj#†QkQkñQlQn1§QpQp1ªQqQq/QsQs1«QtQtQuQu7QvQv1¬QwQwQxQx§QyQy1­Q{Q{1®Q|Q|êQ}Q}[Q€Q€1¯QQB§Q‚Q‚/Q…Q‡1°QˆQˆB¨Q‰Q‰1´QŠQЦQŒQŒ¥QQ‚QQ%:QQQ‘Q‘ Q’Q’ „Q“Q“ÃQ”Q”B©Q•Q–1µQ—Q—BªQ˜Q˜1¸Q™Q™B«Q›Q›B¬QœQœÔQQžB­Q Q B¯Q¢Q¢B°Q¤Q¦B±Q¨Q©B´QªQ¬1ÀQ¯Q·B¶Q¹Q¹B¿Q»Q¾BÀQÀQÀBÄQÄQÑBÅQÔQÔBÓQÖQØBÔQÛQÞB×QàQà¯QáQáEQäQäBÛQæQçBÜQéQíBÞQïQñBãQóQó1ÆQõQõ>QöQö(QøQøÕQùQù«QúQû1ÇQüQÿBæRRÐRR'‰RR×RRÀRR BêR R /%RRBðRRBñRRRRBöR R!BÿR$R%CR'R+CR-R.CR0R3C R5R;CR=R=CR?RDCRFRGCRIRLCRMRM#¤RNRRC"RTRVC'RZR_C*RaReC0RgRgC5RiRuC6RwRxCCRzR}CERR„CIR‡RCORR”CVR–R™C[R›R›éRœRC_RžRž0€RŸR¤CaR¦R¦‹R¨R¯CgR±RµCoR¹R¹CtR»R¼CuR¾RÃCwRÅRÅC}RÇRÇC~RÉRÉCRËRËC€RÍRÍCRÐRÐC‚RÒRÓCƒRÕRÙC…RÛRÛCŠRÝRàC‹RâRäCRæRçC’RéRéC”RëRëC•RïRõC–R÷RøCRùRùYRúRú]RûRüCŸRþSC¡SS>SSËSSC¦SSuS S C§S SCªSS]SSC­SS-SSC¯SSìSSC°SSâSSC±SS$C³S&S&C¹S*S*CºS-S1C»S3S4CÀS7S7CÂS8S8ïS9S9CÃS:S:ÖS;S@CÄSASAôSCSC¶SDSD1èSESEGSFSFCÊSGSG¥SHSH«SISJ1éSLSM1ëSNSNWSOSOCËSQSQ1íSRSRmSSSS USTSTCÌSUSUÐSVSV1îSWSW"´SXSXiSZSZCÍS\S\ùS^S^1ïS_S_CÎS`S`øSaSb1ðScSdSfSgCÏShSh1òSiSiæSkSk1óSlSlCÑSnSn1õSoSo0SpSpCÒSqSqSrStCÓSuSuSwS}CÖSSCÝS‚S‚sS„S„0'S…S†CÞS‰SCàS’SšCçSœS CðS¢S©CõS¬S®CýS°S°DS²S²DS³S³ŠS´S´DS¶S¶úS¹S¹DS»S»2 S¿S¿ûSÁSÂ2 SÃSÃÏSÈSÉHSÊSʆSËSË\SÌSÌDSÍSͽSÎSÎDSÑSÑ/tSÔSÔDSÖSÖDS×S×2SØSÙDSÛSÛD SÝSÝD SßSß2SàSáD SâSã2SäSäSåSæ2SèSéDSêSê&²SëSëDSìSìySíSîDSïSï*øSðSðjSñSñDSòSò"SóSó2SõSöDS÷S÷+äSøSø2SùSýDTTDTTDTTDTT'VT T dT T ‰T T D T T xT T wTTvTTuTTD!TTtTTD"TTrTTD$TT2TT!D(T#T2D.T3T32T4T4©T5T9D>T;T>DCT@TADGTBTB"TCTCDITETEDJTFTF'DTGTGDKTHTH'CTITI2TJTJ&9TKTKDLTNTPDMTQTQ¤TRTWDPTXTX&!TYTY2T[T\DVT_TgDXThTh']TjTlDaToTxDdTzT|DnT}T}&T~T‚DqT„T„DvT†TˆDwTŠT’DzT”T–DƒT˜TD†T T "pT¡T¡DŒT¢T¢"ÑT£T´DT¶T·DŸT¸T¸!TºT»D¡T¼T¼'LT½T¿D£TÀTÀ\TÁTÁ'MTÂTÈD¦TÉTÉ!üTÌTÚD­TÜTàD¼TáTá$TâTâDÁTäTäDÂTåTå#ÿTæTëDÃTíTîDÉTñTóDËT÷TøDÎTúTýDÐTÿTÿDÔUUDÕUU DÖUUDàUUDåUUDæUUDèU U DëU"U$DìU&U'DïU*U*DñU,U9DòU;U<EU>UAEUCUEEUFUF’UHUSE UUUWEU\U_EUaUgEUjUjE#UlUnE$UuUxE'U{UƒE+U„U„22U†U†23U‡UE4U‘U•E=U˜UšEBUœUœ,!UUŸEEU¡U¥EHU¦U¦27U§U©EMUªUª28U«U«EPU¬U¬'lU­U­EQU®U®'kU°U³ERUµU·EVU¹U¹EYU»U»EZU½UÀE[UÂUÆE_UÇUÇîUÈUÖEdUÙUÝEsUßUßExUáUìEyUïUïE…UòUóE†UõU÷EˆUùUúE‹UüVEVVE”VVE•VV E–V VE˜VVEVVE¤V#V$E©V'V'E«V)V*E¬V,V6E®V8V;E¹V=VBE½VEVFEÃVHVJEÅVLVNEÈVPVPEËVSVTEÌVWV\EÎV^V^EÔV`V`EÕVbVfEÖVhVi2RVjVtEÛVvV|EæV~V‡EíVŠVŠE÷VŒVEøV“V•EýV—VšFVœVFV V FV¢V¢2^V£V£FV¥V¨FVªV¯F V²V·FV¼V¾FVÀVÃFVÅVÆFVÈVÎF!VÑVÑF(VÓVÔF)V×V×VØVØ”VÚVÛF+VÝVÝF-VÞVÞ¨VßVßÜVàVåF.VçVçF4VêVêkVëVëF5VíVîF6VðVðF8VñVñ2sVòVõF9V÷V÷F=VùVúF>VýWF@WW FHW W jW W FMWWFOWWFPWWFSWWFTWWFUWWFXWW¼W W FYW"W#FZW&W'F\W(W(TW)W*F^W,W,F`W-W-îW.W0FaW3W4FdW7W;FfW>W>FkW@WBFlWEWEFoWGWGFpWIWOFqWPWP'ŸWQWQFxWRWRWWWWFyWYWbFzWdWfF„WhWkF‡WmWsF‹WtWt2WuWwF’W{W}F•WW€F˜W‚W‚'¤WƒW†FšWˆW‰FžW‹WŒF WWF¢W’W•F£W—W›F§WW§F¬W©W®F·W°W°F½W²W¶F¾W¸WºFÃW¼W½FÆW¿W¿FÈWÀWÀ2•WÁWÃFÉWÆWÈFÌWËWÌFÏWÎWÐFÑWÒWÖFÔWØWÚFÙWÜWÝFÜWßWåFÞWçWçFåWéWéFæWìWùFçWúWú2˜WûWýFõXXFøXX¥XXFúXX$ýXXFýXXGXXGXXGXXG X X!G X#X%GX'X*GX,X.GX/X/2™X0X;GX=X=G%X?XAG&XDXDG)XHXOG*XQXUG2XWX[G7X]X^G<XaXeG>XhXiGCXkXmGEXoXrGHXtXvGLXyXƒGOX…X‹GZXŽX”GaX—XšGhXœX¡GlX£X£GrX¥X¦GsX¨X©GuX«X¬GwX®X¯GyX±X³G{X¸X¿G~XÁXÂG†XÅXÊGˆXÌXÌGŽXÎXÏGXÑXßG‘XâXåG XçXéG¤XëXì2¼XîXòG§XóXó$XôXô ùXöXöG¬X÷X÷YXùXù1XúXÿG­YYOYY2ÅYY2ÇYYG³Y Y G´Y Y 2ÈY Y !ƒYYGµYY2ËYY2ÍYY2ÎYY^YYG¶YYšYYYYG¹YY G»Y"Y"+ Y$Y$2ÑY%Y%G½Y'Y'ªY)Y)¦Y*Y*•Y+Y,2ÒY-Y-(#Y.Y.2ÔY/Y/G¾Y1Y12ÖY2Y2G¿Y4Y42ØY7Y76Y8Y8ÎY9Y9üY:Y:GÀY<Y<GÁY>Y> ×Y@YAGÂYBYB2ÜYDYEGÄYGYG*YHYH ?YIYJ2ßYKYKGÆYNYNGÇYOYO2âYPYP"®YQYQGÈYSYSGÉYTYT DYUYXGÊYZY]GÎY`Y``YaYa_YbYcGÒYeYeGÔYgYlGÕYmYm2ïYnYnGÛYpYrGÜYsYs$YtYtGßYvYyGàY{YˆGäYŠYŠGòYYGóY’Y“G÷Y–Y™GùY›Y›GýYYžGþY Y¬HY®Y¯H Y±Y¶HY¹YºHY»Y»ÜY¼Y¾HYÀYÁHYÃYÃHYÅYÔHYÖYÞH-YàYáH6YãYæH8YèYîH<YñZHCZZHTZZ#µZZ HUZ Z H[ZZH\ZZH]ZZH^ZZH_ZZ HgZ#Z#HjZ%Z%HkZ)Z)HlZ-Z/HmZ1Z9HpZ<Z<HyZ>Z>HzZ@Z@H{ZAZA‘ZBZDH|ZFZJHZLZMH„ZPZSH†ZUZXHŠZZZ`HŽZbZbH•ZdZgH–ZiZjHšZlZmHœZpZpHžZtZxHŸZzZ}H¤ZZH¨ZƒZ„H©ZŠZŒH«ZŽZH®Z’Z•H±Z—Z—HµZšZŸH¶Z¢Z¢H¼Z¤Z§H½Z©ZªHÁZ¬Z¬HÃZ®ZÂHÄZÄZÄHÙZÆZÍHÚZÐZÐHâZÒZÒHãZÔZãHäZåZæHôZèZîHöZñZñHýZóZûHþZýZýIZÿZÿI[[I [[I [[ I [ [ I[[I[[I[[I[[I[[I[ [(I[*[*I&[,[0I'[2[2I,[4[4I-[6[8I.[<[@I1[C[CI6[E[EI7[G[HI8[K[NI:[P[P/[Q[Q[S[SŽ[T[TI>[U[U3[V[WI?[X[XO[Y[\IA[][]3[_[_IE[b[fIF[i[lIK[n[nIO[p[sIP[u[uIT[w[xIU[z[}IW[[I[[€[€,[[I\[ƒ[„I][…[…Ø[‡[‰I_[‹[‹Ib[Œ[Œ[[Ic[’[“If[•[™Ih[š[šÅ[›[¨Im[ª[®I{[°[°I€[³[¶I[¸[¹I…[½[ÇI‡[É[ÎI’[Ð[ÔI˜[Ö[ÙI[Û[ÛI¡[Ý[ìI¢[î[óI²[õ[öI¸[ø[ø,[ù[ùIº[ú[úG[û[üI»[þ[þI½[ÿ[ÿ(\\I¾\\  \\$s\\I¿\\'ê\ \ IÃ\ \ ,\ \IÅ\\?\\IÈ\\g\\IÉ\\3m\\IÊ\\IÌ\\Ž\\IÍ\\3o\\ IÎ\"\",\$\$;\%\%IÐ\'\'\(\(3q\*\*IÑ\,\,IÒ\-\-3s\0\1IÓ\3\4IÕ\7\7I×\8\83u\9\9J\:\:3v\;\<IØ\=\=\>\BIÚ\D\QIß\S\TIí\U\UË\V\VIï\X\YIð\[\^Iò\`\jIö\l\mJ\n\o3’\q\q,\s\tJ\v\vJ\y\|J\~\J \\‚J \†\†J\ˆ\J\\šJ\›\›3—\œ\J!\Ÿ\±J#\³\³J6\µ\¸J7\º\ÁJ;\Ä\ÌJC\Î\ÐJL\Ò\ÔJO\Ö\ÛJR\Þ\áJX\ä\æJ\\è\êJ_\ì\ñJb\ô\õJh\ö\ö#À\÷\ûJj\ý\ýJo\ÿ]Jp]]Ju] ]Jw]]J|]]J~]] J†]"])JŠ]-].J’]0]:J”]<]CJŸ]E]EJ§]G]GJ¨]I]LJ©]N]NJ­]P]SJ®]U]UJ²]X]YJ³][]^Jµ]b]cJ¹]e]eJ»]g]iJ¼]k]mJ¿]o]oJÂ]q]tJÃ]v]wJÇ]y]zJÉ]|]‚JË]„]„JÒ]†]JÓ]]JÛ]’]•JÜ]—]—Jà]™]šJá]œ]¢Jã]§]ªJê]¬]²Jî]´]´3·]µ]µJõ]·]ºJö]¼]½Jú]À]ÀJü]Â]ÃJý]Å]ÇJÿ]É]ÉK]Ë]ÍK]Ï]ÖK]Ø]ØK]Û]Û3Ã]Ý]Þ3Ä]ß]ßK]à]à¦]á]âK]ã]ã0]å]å3È]æ]æ]ç]çK]è]è3É]é]éK]ë]ë3Ê]î]î#]ï]ðK]ñ]ô3Ë]õ]õí]÷]÷!y]ù]ùK]û]ûK]ý]ýK]þ]ÿ^^^^^^K^^K^ ^ K^^K ^^K$^^D^^K*^^^^%K,^&^& ÷^'^)K3^+^+K6^-^-Y^.^.K7^/^/3Ó^0^1K8^3^4K:^6^7K<^8^8×^;^EK>^G^GKI^J^OKJ^S^UKP^W^YKS^[^dKV^f^pK`^r^s3Ù^t^tº^u^uKk^v^vâ^w^w3Ü^x^xÂ^y^yKl^z^z3Þ^{^|Km^}^~3à^^ü^€^„Ko^†^Kt^^‘K|^“^—K^™^œK„^ž^ Kˆ^¢^¨K‹^ª^®K’^°^·K—^¸^¸–^¹^¹KŸ^¾^¾K ^Á^ÌK¡^Î^ãK­^å^êKÃ^ì^ìKÉ^î^óKÊ^ô^ô%@^ö^øKÐ^ú^üKÓ^þ_4*__KÖ__!ì__ KÛ_ _ 42_ _ KÞ__E__’__Kà__45__¿__Kâ__46__t__Kã__47__Kä__Kå__48_ _*Kæ_-_0Kñ_1_14:_3_:Kõ_<_<Ký_>_>Kþ_@_AKÿ_C_FL_H_LL_N_OL _P_Q4>_R_RL _S_Sè_T_UL _V_V"í_W_W/T_X_YL_[_]L_a_a»_b_bL_d_dL_e_e!ç_f_f"_g_g4E_i_mL_o_qL_s_s+¿_t_tL_v_yL_{_ŒL#__“L5_•_™L9_›_œL>_ž_¡L@_¥_¦LD_¨_¯LF_²_·LN_¹_¹LT_»_ÁLU_Ã_É_Ä_Ä_Å_Å4O_Æ_ÆL\_É_ÉL]_Ì_ÍL^_Ï_ÒL`_Ô_ÙLd_Ü_ÜLj_Ý_Ý _Þ_ÞLk_à_áLl_ã_åLn_ç_èLq_ê_ëLs_í_ñLu_ó_õLz_÷_øL}_ú_ûL_ý`L` `L‹``Lš` `"L `$`/L£`1`5L¯`7`7L´`9`<Lµ`?`GL¹`I`MLÂ`P`PLÇ`R`ULÈ`X`[LÌ`]``LÐ`b`lLÔ`m`m4a`n`pLß`r`sLâ`u`}Lä``Lí`ƒ`ŽLð``Lü`’`’Lý`”`—Lþ`š`M`Ÿ` M`¢`¤M`¦`©M `ª`ªZ`«`­M`¯`ÁM`Ã`ÍM%`Î`Î4q`Ï`ÏM0`Ñ`ÑM1`Ó`ÕM2`Ø`äM5`æ`éMB`ë`üMF`þaMXaaM\aa M`a aMdaaMnaaMoaa!Msa#a$Mva&a)Mxa+a,M|a.a0M~a2a2Ma4a4M‚a6a7Mƒa;aBM…aDaOMaQaVM™aXa[MŸa]a_M£aaahM¦ajalM®anauM±avav4“awawM¹ayazMºa|a~M¼a€aM¿a‚a‚4•aƒaƒMÁa‡a‡MÂa‰aŽMÃaa”MÉa–a–MÎa˜a›MÏaaMÓaŸaŸMÔa¡a¢MÕa¤a¤M×a§a¸MØaºaºMêa¼a¼Mëa¾a¿MìaÁaÃMîaÅaÍMñaÐaÒMúaÔaÔMýaÖaÖMþaØaØMÿaÞaàNaãaëNaíaîN aðaòNaôbNbbNbbN!bbSb b –b b ”b b N#bb—bbN%bbŠbbªbbN&bb7bbN(bb>bbN)bb4³bbN-bb4´bbN.b b 4µb!b!N/b"b"`b#b'N0b)b4N5b6b6úb7b7(¼b8b8ûb:b;NAb=bCNCbFbJNJbKbKObLbL4¾bMbM{bNbNNObPbUNPbXb\NVb^b^N[b`btN\bvbwNqbyb~Nsbbib€b„Nyb†bŠN~bŒbŒNƒbŽbN„b‘b˜N†bšbœNŽbžb¢N‘b¤b¦N–b¨b±N™b³b¶N£b¸b¹N§b»b¿N©bÂbÂN®bÄbÔN¯bÖbÝNÀbßbãNÈbåbéNÍbëcNÒcc Nëc cNîccNõccNùcc%Nüc'c-Oc/c/O c2c4O c6c6Oc8cQOcTcZO+c\c\O2c^c_O3caccO5ceceO8cgciO9ckckO<cmcrO=cucxOCczc}OGcc…OKc‡cŠORcŒcŒ½cc’OVc”c”O\c–c™O]c›c¥Oac§cµOlc·c¸O{cºc¾O}cÀcÀO‚cÂcÐOƒcÒcÓO’cÕcáO”cãcåO¡cçcëO¤cícúO©cýcýO·cÿdO¸ddO¼d dO¾ddOÆddOÍdd(OÐd*d0OÛd3d7Oâd9d:Oçd=dHOédJdKOõdMdNO÷dPdTOùdXdYOþd[daPdediPdkdpP drd{Pd}d}PddPd‚d…Pd‡dŒP"dd“P(d•dšP-dœd P3d¢d¦P8d©d©P=d«d®P>d°d³PBdµdµPFd·dÅPGdÇdÇPVdÉdËPWdÍdÐPZdÒdÒP^dÔdÔP_dÖdÛP`dÞdÞPfdàdéPgdëdíPqdïdôPtdödøPzdúdÿP}ee5eePƒeeP„e e P‰e ePŠeePeeP—e e&Pše)e.P¡e/e/5e2e3P§e4e55e6e9P©e;e;P­e=e?P®eAeAP±eCeCP²eEeFP³eHeJPµeLeOP¸eQeQP¼eSeYP½e[e^PÄebehPÈejemPÏeoepPÓerezPÕe{e{5e|e|PÞe~e…Pße‡e‡5eˆe‰Pçe‹eŒPéeŽeŽPëee–Pìe—e—e™e™Póe›e¢Pôe¤e¥5"e§e¨Püe©e© 7eªe°Pþe²e³Qe¶e¸Qe¹e¹@e»e½Q e¿e¿Q eÁeÁ$¥eÂeÆQeËeÐQeÒeÓQeÖe×QeÙeÛQeÝeßQ eàeá57eâeãQ#eåeå5;eæeæåeçeçQ%eèeèeéeéˆeìe÷Q&eúeýQ2eÿfQ6ffQ8ff%•ffQIffQKffQLff6f f"QOf$f$QRf%f%Yf&f(QSf+f+QVf-f.QWf/f/"f0f6QYf9f<Q`f>f?QdfAfEQffGfGQkfIfLQlfOfOQpfQfWQqfYf\Qxf]f]Uf^f_Q|fafbQ~fdflQ€fnfnafoftQ‰fvf|Qf~f~Q–f€f„Q—f†fŽQœffQ¥f‘f‘,f”f™Q¦ffQ¬fŸf¢Q­f¦f«Q±f®f³Q·f´f´%bfµfµQ½f·fÁQ¾fÄfÄQÉfÆfÌQÊfÏfÏQÑfÒfÒQÒfÖfÖQÓfØfÞQÔfàfàQÛfãfäQÜfæfæQÞfèfèQßféfé5ZfëfîQàfðfð5[fòfò¬fófó±fôfôfõfõ&föf÷QäføføafùgQæggµggQïggÅg g 5eg g Qñg g Ëg gQòggQögg$îggQøggQüggQýgg5ggg#Qþg&g'Rg(g(Úg*g,5ig-g-Rg.g/5lg1g1•g3g4Rg5g5:g6g>Rg?g?ˆg@gCRgEgIRgKgQRgSgSR!gUgWR"gYgZR%g\g^R'g_g_g`gdR*gegegfgfR/ghgjR0glgmR3gogpR5gqgqÑgrgR7ggREgƒg‡RFg‰g‰RKg‹g•RLg—gšRWgœgœ2gg£R[g¥g«Rbg­g°Rig²g»Rmg¾g¾RwgÀgÆRxgÈgÔRgØgàRŒgâgçR•gégëR›gìgìÖgígøRžgúhRªhh R¶hhR¼hhR¾hhRÂhh$hhRÃhhRÄhh"RÅh%h&RÌh(h+RÎh-h/RÒh1h5RÕh7h<RÚh=h=5~h>h>Ràh@hFRáhHhURèhYhYRöh\h]R÷h_hiRùhkhkShmhoShqhrShthyS h{hƒSh…h‡Sh‰hShh”S!h–h—S'h›hS)hŸh¤S,h¦h¶S2h¹hºSCh¼h¼SEhÀhÀSFhÂhÂSGhÄhÄ5hÅhÉSHhÊhÊ5hËhÖSMh×h×5hØhØSYhÚhÚSZhÜháS[hãhäSahæhìSchîhýSjiiSziiS|i iSiiSiiSŽii(S’i*i*Sœi-i-Si/i0Sži2i9S i;i=S¨i?iBS«iDiES¯iHiLS±iNiOS¶iQicS¸ieifSËihilSÍimimÏiniqSÒisi~SÖi€i„Sâi†iŠSçiiŽSìii‘Sîi“iœSðižižSúi i¡Sûi£i·Sýi¹i¹Ti»i¿TiÁiÄTiÆiÇTiÉiÐTiÓiÔT&iØiÙT(iÛiÛT*iÝiàT+iâiâT/iäièT0iêiîT5iñiôT:iöiùT>iûjTBjj TJjjTTjjTUjjT^jj#T_j%j+Tfj.j2Tmj4j6Trj8jATujDjDTjFjF5ÅjGjIT€jKjKTƒjMjVT„jXj[TŽj]jbT’jdjkT˜jmjmT jojoT¡jqjsT¢jvjvT¥jxjyT¦j|j|T¨j~jT©jƒj…T­j‡j‡T°j‰j‰T±jŒjŽT²jj—TµjšjœT½jžj¦TÀj¨j¯TÉj³j´TÑj¶j»TÓj½j½TÙjÁjÃTÚjÅjÇTÝjËjÍTàjÏjÑTãjÓjÓTæjÙjâTçjäjåTñjçjèTójêjìTõjîjñTøjójóTüjöjöTýjøjüTþkkUkkUkk UkkU kkUkk5õkkUk k ék!k%Uk'k(Uk,k-U k/k/U"k1k4U#k6k?U'kAkCU1kEkNU4kPkQU>kSkVU@kYkYUDk[k\UEk^kaUGkbkd5ûkeke<kfkf5þkgkgUKkikjULkmkmUNkokoUOkrktUPkvkxUSkyky6k{k{6k|k|UVk~k„UWk†kU^k‘k›Uhkžk§Uskªk«U}k­k²Uk³k³6k´k·U…kºk½U‰k¿kÉUkÊkÊ6kËkËWkÌkÌ6kÍkÍXkÎkÏ…kÐkÐU˜kÒkÓU™kÔkÔkÕkÙU›kÚkÚ6kÛkÛOkÞkäU kækæ6kçkèU§kêkìU©kïkðU¬kòkóU®kõkõU°k÷kùU±kûl U´l l UÃllBll6 llUÆll×llUÇllUÎll,UÏl.l0UÝl2l3Uàl4l760l8l8­l;l;Uâl=lAUãlBlB64lClCUèlFlGUélIlPUëlRlRUólTlUUôlWlWUölYl]U÷l^l^"l_lbUüldlkVlmlmVloltV lvlvVlxl{Vl}l~Vl€l‰VlŠlŠ68l‹lV l’l–V&l˜lV+lŸlŸV1l¡l§V2l©l®V9l°l´V?l¶lÇVDlÉlÉ#SlÊlÊVVlÌlÍVWlÏl×VYlÙlÞVblàlãVhlålåVllçlïVmlðlð$mlñlóVvlõlþVymmVƒmmV…mmV‡mmV“mm V™m"m"Vm%m%Vžm'mHVŸmJmKVÁmMmOVÃmQmTVÆmXmZVÊm\m\VÍm^mjVÎmlmpVÛmtm€Vàm‚mŽVímm™Vúm›m¡Wm£m¤W m¦m¬W m®m¯Wm²mµWm·m¸WmºmÀWmÂmÍW#mÏmæW/mèmýWGnnW]nnW^nnW_nnW`nnWhnnWjnnWonn)Wtn+n6Wn8nAW‹nCnGW•nInKWšnMnNWnQnVWŸnXnXW¥nZniW¦nknkW¶nnnoW·nqntW¹nvnzW½n~n€WÂn‚nƒWÅn…n†WÇnˆn‰WÉnŒnWËn’n”WÐn–n™WÓn›n§W×nªn«Wän®n´Wæn¶n·Wín¹nØWïnÚnÚXnÜnâXnänæXnènéXnënïXnñnòX!nônùX#nûoX)oo X2o oX8ooX;ooX@ooXCoo'XDo)o3XNo5o<XYo>oAXaoCoCXeoEoGXfoKoKXioMoUXjoWoXXsoZodXuofogX€oiopX‚orotXŠovoxXozo‚Xo„o‰X™o‹oŽXŸoo—X£oœoœX«ožožX¬o o¶X­o¸oºXÄo¼oÄXÇoÆoÏXÐoÑoÒXÚoÔoÕXÜoØoØXÞoÚoäXßoæoéXêoëo÷XîoúoüXûoþpXþppYp pYppY pp$Yp&p,Yp/p5Y&p7p<Y-p>pFY3pHpJY<pLpLY?pOpRY@pUpXYDpZp[YHp]pfYJphpjYTpkpk%Åplpl6âpmpmYWpopoYXpppp>pqpqYYptpvYZpxpxY]pzpzY^p|p€Y_p‚p†Ydp‰pŠYipŽpŽYkp‘p–Ylp˜pšYrpœpYupŸpŸYwp¡p¡Yxp¤p¤Yyp©p©Yzp«p¬Y{p­p­bp®p±Y}p³pµYp·p¹Y„pºpº¬p»p¾Y‡pÀpÃY‹pÅpÈYpÊpËY“pÍpÎY•pÏpÏ#pÑpÔY—p×pâY›päpäY§pæpéY¨pëpíY¬pïpñY¯pópôY²pöpýY´pÿqY¼qqY¾qqY¿qqYÀq qYÁqqkqqYÇqqYÈqq YÒq!q!Kq"q#YÕq%q%Y×q&q&jq(q(YØq.q2YÙq6q6YÞq:q:Yßq<q<YàqAqGYáqIqNYèqPqPYîqRqVYïqXqZYôq\qjY÷qlqlZqnqnZqpqpZqrqsZ qxqxZ qzq{Z q}q}Zq€q‚Zq„qŠZqqZq’q’Zq”q•Zq—q¢Zq¤q¥Z*q§qªZ,q¬q¬Z0q¯q³Z1qµqµZ6q¸qºZ7q¼qËZ:qÎqÐZJqÒqÒZMqÔqÜZNqßqâZWqäqèZ[qìqîZ`qðqòZcqôqõZfqøqùZhqûrZjrrZsr r Zvr r ZwrrZyrrZzrrZ|rrZr"r#Z‚r&r'Z„r(r(7r)r)Z†r*r*7r,r,Z‡r-r-£r0r0"§r1r27r5r87r9r:Zˆr;r;Ïr<r<ZŠr=r=žr>r?7r@rBZ‹rDrDZŽrFrFZrGrG7rHrMZrOrOZ–rRrSZ—rVrVZ™rXrXZšrYrY)BrZrZZ›r[r[%˜r]rcZœrfrgZ£rirjZ¥rlrlZ§rnrpZ¨rrr‚Z«r„r“Z¼r•r˜ZÌršr›ZÐrrªZÒr¬r¬Zàr­r­|r®r²Zár´rºZær½rÆZírÈrÎZ÷rÐrÒZþrÔrÔ[rÖrÜ[rÞrä[ ræræ[rèrô[rös[ss[*ss[+s s [-ss[0ss[2ss[5ss[:s!s'[?s)s<[Fs>s@[ZsBsE[]sIsJ[asLsR[csWs[[js]sc[osesp[vsrss[‚susx[„szsƒ[ˆs„s„ís…sŠ[’s‹s‹)GsŽsŽ[˜s‘s˜[™s›s›[¡ss[¢sŸs¢[£s¤s©[§s«s°[­s²sÀ[³sÂsÃ[ÂsÅsÔ[ÄsÖsÞ[Ôsàsà[Ýsãsë[Þsísî[çsñsò[ésôsú[ësüt[òtt [øtt\tt\tt\tt\tt\ t t&\ t(t6\t8t8\ t:t:\!t<t<\"t?tD\#tFtF\)tJtK\*tMtR\,tTtU\2tWtW\4tYt\\5t^t`\9tbte\<tgtj\@tmts\Dtutw\Ktyty\Nt|tƒ\Ot…t‹\WtŽtŽ\^tt\_t’t’\`t”t•\at—t˜\ctštš\etœtœ\ftžt£\gt¥t«\mt­t­\tt¯t²\utµt¹\ytºtº7St»t»\~t½tÃ\tÅtÆ\†tÊtË\ˆtÏtÏ\ŠtÒtÒ\‹tÔtÛ\ŒtÜtÜ7ZtÝtå\”tætæ§tçté\tìtì\ tîtò\¡tôtø\¦tûtû\«týu\¬uu\µu u\·uuuu\Äuu#Puu\Åuuu!u!\Éu"u"Xu#u#›u%u&\Êu(u*†u+u+Šu,u,‰u-u/\Ìu0u1„u2u2‹u3u37au5u57bu7u7\Ïu8u97cu:u:\Ðu;u;u<u@\ÑuDuK\ÖuLuL ouMuN\ÞuOuO#=uQuQ\àuSuT\áuYu]\ãu_u`\èubub7iucug\êuiuj\ïukuk¶ulum\ñuouo\óupup7kurut\ôuuuu7muvuvzuwuy\÷uzuz7nu}u}\úu~u~%luu€7ou‚u‚7quƒu„\ûu†u‡\ýu‰u‰\ÿuŠuŠu‹uŒ7suŽu]uu7uu‘u‘]u’u’}u”uš]uu] uŸu¥] u§u§]uªu¬]u®u¶]u¸uÅ]uÇuÒ]-uÔuÛ]9uÝuä]Auæuë]Iuíuí]Ouïv]Pvv]cvv]dvv ]evv]kvv+]nv-v-]‡v/v5]ˆv8v8]v:v@]vBvC]—vFvI]™vLvN]vPvP] vRvT]¡vVvZ]¤v\v\]©v^ve]ªvgvr]²vuvu]¾vvvv7ûvxvx~vyvy]¿vzvzþv{v|]Àv}v}7þv~v~vv„]Âv†v‹]ÈvŽv“]Îv•v–]Ôv™vž]Öv¤v¤]Üv¦v¦]Ývªv«]Þv­v­]àv®v®8v¯v²]áv´vµ]åv·v»]çv½v¾]ìv¿v¿vÂvÆ]îvÈvÊ]óvÍvÔ]övÖvØ]þvÚvß^vává^vãvæ^vçvçÉvévê^ vìví^vîvîÕvïvñ^vòvò8vóvó^vôvô8võvõ^v÷vü^vþvþ!tww!uww^ww^w w !w w ^ w w !kw w ^!ww^"ww^&ww^'ww^*ww8w w ^+w"w)^,w-w-^4w/w/^5w1w>^6w@w@8wAwA^DwCwG^EwJwR^JwTwV^SwYw\^Vw^wc^Zwewo^`wywy^kw|w}^lw~w8w€w…^nw‡w‰^tw‹w^ww‘w’^|w•w•^~w—w—^w™w£^€w¥w¥^‹w§w­^Œw°w·^“w¹w½^›w¿w¿^ wÂwÂ^¡wÄwÄ^¢wÇwÇ^£wÉwÊ^¤wÌwÌ^¦wÍwÍÄwÎwÐ^§wÓwÕ^ªw×wÚ^­wÛwÛ8'wÜwÜ^±wÞwÞ8(wàwà^²wâwâ8)wãwã^³wåwå^´wçwé^µwëwò^¸wówóŽwöx^Àxx^Îx x ^Ðx x^Ñxx^Þxx^ßxx#^áx%x5^æx7x<^÷x>x@^ýxCxC_xExE_xGxJ_xLxP_xRxR_ xUxW_ x\x^_x`x`_xbxb_xdxe_xhxr_xtxt_!xwxw_"xyx|_#x~x€_'xx8/xƒx‡_*x‰x‰_/xŒx_0x‘x‘_4x“xœ_5xžx¥_?x§x­_Gx¯xµ_Nx¹x¼_Ux¾x¾_YxÁxÁ_ZxÃxÆ_[xÈxÉ__xÊxÊ%`xËxÑ_axÔxÕ_hxÙxÛ_jxÝxã_mxåxå_txçxê_uxìxí_yxïxï_{xòxõ_|x÷x÷_€xùxÿ_yy_ˆyy_Šyy_Œy y _y y _Žyy_yy_yy_•yy_—yy_˜y!y!_œy#y+_y,y,8Ay-y-_¦y/y1_§y4y5_ªy8y9_¬y:y;8Ey<yB_®yDyL_µyOyW_¾yZye_Çygyk_Óymym8Gyoyp_Øyryt_Úywyz_Ýy|y}_áyy‚_ãy„y…_çyˆyˆ_éyŠy‹_êyy˜_ìyšy_øy y¢_üy¤y¤_ÿy¦y¨`yªy®`y°y´`y¶y·` y¸y¹8Kyºyº yy»y»8My½y¾8Ny¿yÁ`yÃyÃ`yÅyÆ`yÈyÈ`yÉyÉ8QyÊyË`yÍyÏ`yÑyÒ`yÕyÖ`yØyØ`yÜyá` yãyä`&yæyæ$dyçyç`(yéyð`)yöyø`1yúyû`4yýyý`6zz`7zz`8zz`=z z`>zz`Czz`Izz `Oz"z#`Rz&z&`Tz(z(`Uz+z+`Vz.z3`Wz6z7`]z9z9`_z;z@``zBzD`fzFzQ`izTzT`uzVzX`vzZz\`yz_zc`|zgzi`zkzn`„zpzq`ˆztz{`Šz}z`’zƒz`—zz™`¢zœz `­z¢z£`²z¥z¦`´z¨z¸`¶zºzº`Çz¾zÁ`ÈzÃzÅ`ÌzÇzÈ`ÏzÊzÊ`ÑzËzËhzÍzÍ`ÒzÏzÏ`ÓzÑzÑ`ÔzÒzÒ!½zÓzÓ`ÕzÕzÚ`ÖzÜzÜ$ózÝzÞ`Üzßzß/ªzàzàŽzázä`Þzåzå/©zæzç`âzêzë`äzízð`æzözø`êzùzù8zúzû`ízýzý`ïzÿ{`ð{{ `ø{{`ü{{a{{a{ { a {"{&a {({(a{*{6a{8{<a{>{>a#{@{@a${D{Ra%{T{Ta4{V{Va5{X{Xa6{Z{[a7{]{]a9{`{ga:{i{iaB{l{naC{p{{aF{}{~aR{€{€aT{‚{‚aU{„{ˆaV{Š{’a[{”{¢ad{¤{¤as{¦{­at{¯{¯a|{±{±a}{´{µa~{·{¹a€{¾{¾aƒ{À{Áa„{Ä{Äa†{Æ{Ça‡{É{Ìa‰{Î{Ïa{Ñ{Õa{Ø{ëa”{í{îa¨{ð{ôaª{ö{ùa¯{û|a³||a¼| |a¿||aË||aÍ||#aÎ|%|-aÖ|0|0aß|3|3aà|7|9aá|;|Aaä|C|Caë|E|Eaì|G|Jaí|L|Mañ|O|Paó|S|Taõ|V|\a÷|_|`aþ|c|gb|i|lb|n|ob |r|rb |s|s^|t|ub |x|…b|ˆ|b||’b"|”|˜b%|›|›/¤|œ|žb*|Ÿ|ŸÂ|¡|£b-|¤|¤9D|¥|¥b0|§|¨b1|ª|«b3|­|¯b5|±|µb8|¹|Âb=|Å|ÅbG|Ç|ÈbH|Ê|ÎbJ|Ð|ÒbO|Ô|ÙbR|Ü|àbX|â|âb]|ç|èb^|ê|êb`|ì|ìba|î|òbb|ô|ôbg|ö|÷bh|ø|ø™|ú|úbj|û|ûÞ|ý|þbk}}"bm}'})b}+},b“}.}3b•}5}6b›}8}Hb}J}Lb®}N}Vb±}X}Xbº}[}\b»}^}_b½}a}cb¿}f}kbÂ}m}sbÈ}u}wbÏ}y}}bÒ}}b×}ƒ}†bÚ}ˆ}‰bÞ}Œ}bà}‘}”bä}–}–bè}™}£bé}¦}¦9O}§}§bô}©}²bõ}´}µbÿ}·}Âc}Ä}Çc }É}Ìc}Î}Ïc}Ñ}Òc}Õ}ác}ã}äc&}æ}êc(}ì}ìc-}î}ôc.}ö}÷c5}ù}ûc7~~c:~~c;~~c>~~&cN~)~+c[~-~Mc^~P~Zc~\~ccŠ~f~kc’~m~mc˜~o~pc™~r~ƒc›~†~œc­~Ÿ~Ÿ9n~ ~­cÄ~¯~³cÒ~µ~ºc×~½~ÕcÝ~×~ãcö~å~ëd~í~ød ~ú d d&d+5d866c8:dO=?dRBEdUGHdYJPd[QQzTT{UUdbWXdcZcdeendopvdyww/žxd€‚dˆƒƒ9•…‰dŠŠŠ¼‹‹9˜ŒŒÚŽd‘’d‘””d“••$Û––d”šd•žžOŸ¨d™©©¾¬±d£²²9³³d©µ¼dª½½9¡¾Ãd²ÅÇd¸ÉÒd»ÔÕdÅרdÇÛÜdÉÞãdËåædÑèõdÓ÷ùdáû€d䀀’€€€€dꀀN€€d뀀9«€ € 9¬€ € dì€ € E€ €d퀀9®€€dò€€dø€€"dú€$€*dÿ€,€-e€0€1e€3€39°€4€9e €;€;e€=€?e€B€B/<€C€Ce€F€He€J€Me€O€Re€T€Te €V€Ve!€X€Xe"€Z€Ze#€\€_e$€a€be(€d€de*€g€je+€l€le/€o€ye0€}€~e;€€€€€€9½€‚€‚e=€ƒ€ƒ9¾€„€„e>€…€…9¿€†€‡e?€‰€‰€Š€ŒeA€€eD€’€’eF€“€“9Á€•€•eG€–€–9€˜€˜eH€™€™9Àš€eI€Ÿ€¥eM€©€©9Ä€ª€¯eT€±€²eZ€´€´9Æ€µ€µe\€·€¸e]€º€ºe_€¼€Âe`€Ã€Ã"5€Ä€Ä ‚€Å€Êeg€Ì€Ñem€Ô€Þes€à€áe~€ã€ãe€€ä€ä#»€å€íe€ï€öeŠ€ø€þe’e™ eœ /F e¡e«e¯!%e²''e·))e¸+-e¹/3e¼66eÁ8:eÂ=>eÅCDeÇFHeÉJUeÌY\eØ^beÜdgeáiieåkkeæmteçv€eeú†eüf‘‘f““f••f—™fšš­› f ¢¤f¦¬f®®f°µf·Êf"ÌÍf6ÏÓf8ÕÕf=×Ûf>ÝâfCãã9àååfIæç9áèèfJéé9äêêÍìîfKòòfNóó,ôôfO÷ùfPúú9çûûfSüüÑþþ9èÿÿ!ù‚‚fT‚‚®‚‚9ë‚‚Ê‚ ‚ fV‚ ‚ 9ñ‚ ‚ m‚ ‚'‚‚fX‚‚f[‚‚Ú‚‚9ò‚‚)‚ ‚#f`‚%‚%fd‚(‚@fe‚B‚Bf~‚D‚Ef‚G‚Gf‚I‚If‚‚K‚Kfƒ‚N‚Sf„‚U‚_fŠ‚a‚df•‚f‚ff™‚h‚mfš‚n‚nK‚o‚o}‚p‚qf ‚r‚rt‚s‚wf¢‚x‚x9ö‚y‚y0‚z‚zf§‚|‚€f¨‚‚‚…f­‚ˆ‚ˆ9ù‚Š‚‹f±‚‚“f³‚”‚”9ÿ‚—‚±fº‚³‚ºfÕ‚»‚»:‚¼‚Åf݂ǂÈfç‚Ê‚Ïfé‚Ñ‚Ùfï‚Û‚Üfø‚Þ‚áfú‚ã‚èfþ‚ê‚íg‚ï‚÷g‚ù‚ûg‚ý‚þgƒƒ gƒ ƒ g ƒ ƒ :Iƒƒg!ƒƒg#ƒƒg$ƒƒg-ƒ ƒ g.ƒ"ƒ-g/ƒ/ƒ/g;ƒ1ƒ5g<ƒ6ƒ6Sƒ7ƒ7gAƒ8ƒ8Uƒ9ƒ:gBƒ;ƒ;:]ƒ<ƒ<gDƒ?ƒHgEƒIƒIXƒJƒTgOƒVƒVgZƒXƒXg[ƒZƒ\g\ƒ^ƒog_ƒsƒxgqƒzƒgwƒƒg}ƒƒƒƒg~ƒ…ƒgƒ’ƒ g‹ƒ¢ƒ«gšƒ®ƒºg¤ƒ¼ƒ¼g±ƒ½ƒ½/Ûƒ¿ƒÌg²ƒÎƒÏgÀƒÑƒÑgƒӃÙgÃۃågʃçƒìgÕƒîƒÿgÛ„„gí„„gî„„gð„ „gò„„gý„„gþ„ „ h„"„-h„/„=h„?„@h„B„Hh„I„I/Ü„K„Nh&„P„Rh*„T„Th-„V„Wh.„Y„ch0„e„ih;„k„qh@„s„zhG„}„~hO„‚„‚hQ„„„„hR„†„‰hS„‹„‘hW„”„”h^„—„˜h_„™„™P„š„¢ha„¤„¤hj„§„²hk„´„´hw„¶„¶hx„¸„½hy„¿„Âh„Ä„Çhƒ„É„Ôh‡„Ö„×h“„Ù„Ýh•„ß„àhš„ã„ãhœ„å„ìh„î„ôh¥„ö„÷h¬„ù…h®……h¶……h·……hÁ……!hË…#…1hÑ…5…5hà…7…Ahá…C…Khì…M…Nhõ…Q…Qh÷…S…[hø…]…^i…`…ni…q…ri…t…|i…~…~i…€…‘i…”…¤i0…¦…¬iA…®…±iH…³…ºiL…½…ÉiT…Ë…Ëia…Í…Óib…Õ…Õii…×…Úij…Ü…ßin…á…æir…è…íix…ï…òi~…ö…ûi‚…ý†iˆ††À††iކ † i‘††i•††i–††i—††'iž†)†*i¨†,†6iª†8†<iµ†>†@iº†C†Ci½†F†Hi¾†K†LiÁ†M†MІN†N¶†O†ViÆY†\iˆ^†_iφa†eiцg†jiÖ†k†k †l†piÚ†q†q!†s†ti߆w†wiá†y†|iâ†}†} l†~†‚i憅†‡i놊†Ži‘i󆓆šiõ†œ†žiý†¡†¥j†§†¬j†¯†±j †³†Ìj†Í†Í\†Î†Ñj(†Ó†Ôj,†Ö†ßj.†â†äj8†æ†æj;†è†ûj<†þ†þjP‡‡jQ‡‡j`‡‡jc‡‡jd‡‡jj‡ ‡*jk‡,‡.jv‡0‡5jy‡7‡8j‡:‡<j‡>‡Cj„‡F‡IjЇK‡gjއh‡h<2‡i‡pj«‡s‡j³‡‡…jÀ‡‡‡‰jŇ‹‡‹jȇ‡jɇ‡”jʇ–‡˜jЇš‡ŸjÓ‡¢‡¤jÙ‡¨‡¨j܇ª‡°j݇²‡Àjä‡Â‡Ìjó‡Ð‡Ôjþ‡×‡Ùk‡Û‡èk‡ê‡ïk‡ò‡ôk‡ö‡÷k‡ù‡ük‡þˆk#ˆˆk)ˆˆk6ˆˆk;ˆˆk<ˆˆ,k?ˆ.ˆ3kMˆ5ˆ9kSˆ;ˆ?kXˆ@ˆ@<^ˆAˆFk]ˆHˆHkcˆJˆJkdˆKˆK̈LˆNkeˆRˆWkhˆYˆ[knˆ]ˆ^kqˆaˆbksˆcˆc¯ˆdˆd÷ˆeˆekuˆgˆgkvˆhˆhl ‰A‰Dl$‰F‰Fl(‰I‰Il)‰K‰Ml*‰O‰Sl-‰V‰dl2‰f‰flA‰i‰olB‰q‰tlI‰v‰wlM‰y‰|lO‰~‰~ƒ‰‰Œ‰‰ƒlS‰…‰ˆlV‰Š‰ŠlZ‰‹‰‹<›‰‰l[‰“‰“l\‰•‰˜l]‰š‰Ÿla‰¡‰¤lg‰¦‰§lk‰©‰ªlm‰¬‰¯lo‰²‰³ls‰¶‰·lu‰¹‰ºlw‰½‰Àly‰Á‰ÁR‰Â‰Âl}‰Ä‰Ìl~‰Î‰Ñl‡‰Ò‰Ò@‰Ó‰Öl‹‰Ù‰él‰ë‰íl ‰ï‰ôl£‰ö‰øl©‰ú‰ül¬‰þ‰ÿl¯ŠŠ<¯ŠŠl±ŠŠl´Š Š l¶Š Š l·ŠŠl¸ŠŠl¾ŠŠlŠŠlÊ"Š#lÆŠ%Š%lÈŠ'Š'lÉŠ*Š*lÊŠ,Š-lËŠ0Š1lÍŠ3Š4lÏŠ6Š7lÑŠ9Š<lÓŠ>ŠAl׊DŠFlÛŠHŠHlÞŠJŠJlߊLŠRlàŠTŠYlçŠ[Š[líŠ^Š^lîŠ`ŠclïŠfŠflóŠhŠilôŠkŠnlöŠpŠwlúŠyŠy<°ŠzŠ|mŠŠmŠŠ‡mЉЉ<±ŠŠŠm ŠŠmБГmЕЖmŠ˜ŠšmŠžŠžmŠ Š¡mУЍmŠªŠ­m#ааm'ввm(жжm)ЏŠÀm*ŠÂŠÄm3ŠÅŠÅ<³ŠÆŠÉm6ŠËŠÍm:ŠÏŠÏm=ŠÑŠâm>ŠäŠämPŠæŠèmQŠêŠëmTŠíŠømVŠúŠümbŠþ‹me‹‹mj‹ ‹mo‹ ‹(m„‹*‹,m‹.‹1m‹3‹3m”‹5‹7m•‹9‹>m˜‹@‹Bmž‹E‹Lm¡‹N‹]m©‹_‹`m¹‹c‹cm»‹e‹hm¼‹j‹mmÀ‹o‹pmÄ‹q‹q<Å‹r‹rmÆ‹t‹tmÇ‹w‹{mÈ‹}‹€mÍ‹‚‹†mÑ‹ˆ‹ˆmÖ‹Š‹Œm׋ދŽmÚ‹‹mÛ‹’‹–mÜ‹˜‹šmዜ‹œm䋞‹Ÿmå‹ ‹ <Ñ‹¡‹«mç‹­‹°mò‹²‹ºmö‹¼‹Æmÿ‹È‹Ïn ‹Ñ‹én‹ëŒn+Œ ŒnIŒŒ6n]Œ7Œ7{Œ9Œ?nuŒAŒCn|ŒEŒEnŒFŒF¨ŒGŒJn€ŒKŒK<ÙŒLŒPn„ŒTŒTn‰ŒUŒVƒŒWŒWnŠŒZŒZn‹Œ\Œ]nŒŒ_Œ_nŽŒaŒakŒbŒbnŒdŒfnŒhŒmn“ŒoŒsn™ŒuŒwnžŒxŒxeŒyŒ}n¡Œ€Œ‚n¦Œ„Œ†n©Œ‰ŒŠn¬ŒŒŒ•n®Œ—Œšn¸ŒœŒœn¼ŒŒ쌞Œž iŒ Œ "tŒ¡Œ¡n½Œ¢Œ¢<àŒ£Œ¥n¾Œ§Œ¬nÁŒ­Œ®<猯Œ°nÇŒ²Œ²nÉŒ³Œ³ÇŒ´ŒÅnʌnjÈn܌ʌÊnތ̌ÏnߌьÓnãŒÕŒÕnæŒ×Œ×nçŒÙŒÝnèŒÞŒÞ%NŒßŒâníŒãŒã ŒäŒènñŒêŒê%ZŒìŒînöŒðŒñnùŒóŒõnûŒøŒþnþoo o oooooÎÑÐ!.o///K00!ó14o(55"68o,99N:Lo/MM=NNoBOOlPPoCSVoDX^oH`coOdd=fioSkooWpp'qq:ryo\{{od}}oe€of„…oh‰–oj™™ox›œoyŸ¡o{££o~¥¥o§¨o€ª¯o‚±²oˆ³³'%´ºoм¼o‘¾¿o’ÁÈo”ËÑoœÓÓo£Õäo¤æìo´îõo»÷ŽoÃŽŽ oÍŽ Ž oÖŽŽ'oØŽ)Ž,oñŽ.Ž1oõŽ3Ž6oùŽ8Ž:oýŽ<ŽBpŽDŽEpŽGŽNp ŽPŽWpŽYŽgpŽiŽjp(ŽlŽmp*ŽoŽpp,ŽrŽtp.ŽvŽvp1ŽxŽxp2ŽzŽ|p3ŽŽp6ŽŽ‚p7Ž„Žˆp9މމ=FŽŠŽšp>ŽœŽ¡pOޣަpUŽ¨ŽªpYޫޫެެp\ޝ޲p]ŽºŽºpa޽޾pbŽÀŽÀpdŽÂŽÂpeŽÅŽÆpfŽÈŽÉphŽÊŽÊ=XŽËŽÌpjŽÍŽÍ!)ŽÎŽÏplŽÑŽÔpnŽ×ŽØprŽÛŽãptŽåŽép}ŽëŽìp‚ŽîŽïp„ŽñŽñp†Žôp‡p— p¡#'p²)*p·,,p¹./pº29p¼;;pÄ>>pÅ??=_@@pÆBIpÇKdpÏff=igipékpì‹q‘q “šq››=pœœÁžŸq££q¦©q««q ­±q!²²=w´´q&¶¶u··q'¹¿q(ÁÂq/ÄÉq1ËËq7ÍÎq8Ðæq:èëqQíðqUòüqYýý0lþqdqm$q}&'q‰-/q‹12qŽ46q89q“;?q•ABqšDEqœGGqžIKqŸMYq¢[^q¯`cq³eeq·giq¸kkq»mpq¼r‹qÀqÚqÛ‘‘&O“•qÝ—™qà››qã£q䥨q몪qשּׁqð®¶qñ¸»qú½¿qþÁÁrÃÅrÇÈrÊËrÎÑr Óír ïõr(÷‘ r/‘ ‘ rB‘ ‘rC‘‘$rI‘&‘6rZ‘8‘;rk‘>‘Aro‘C‘Hrs‘I‘I&q‘J‘Jry‘K‘K!¢‘L‘Prz‘R‘Xr‘Z‘Zr†‘]‘er‡‘h‘jr‘l‘lr“‘n‘zr”‘}‘‡r¡‘‰‘r¬‘‘“r±‘—‘—r¶‘™‘¥r·‘§‘¨rÄ‘ª‘µrÆ‘·‘ºrÒ‘¼‘¾rÖ‘À‘ÀrÙ‘Á‘Á>‘‘ÃrÚ‘Å‘ÅrܑƑÆ7‘Ç‘Ërݑ̑Ì/¬‘Í‘Í!`‘ΑÎrâ‘Ï‘Ï-‘БÐrã‘ёёӑÛrä‘Ü‘Ü$Ö‘Ý‘ßrí‘á‘îrð‘ñ‘ñrþ‘ó‘ùrÿ‘ü‘ýs‘ÿ’s’ ’ s’ ’s’’s’’s’’s ’’s!’#’'s"’)’)s'’,’.s(’0’4s+’6’:s0’<’@s5’D’Fs:’H’Ts=’V’WsJ’Y’[sL’^’^sO’`’gsP’l’msX’o’rsZ’t’ts^’v’€s_’‚’ƒsj’…’ˆsl’Š’Žsp’‘’‘su’“’sv’ ’®s’²’·s’¹’¹s–’»’¼s—’À’Ós™’Õ’Õs­’×’Ùs®’Ý’ás±’ä’äs¶’æ’ês·’í’ós¼’÷’üsÃ’þ“sÉ““sΓ“sÏ““ sГ “sÒ““sØ““sÝ““/sá“2“6sô“8“<sù“>“>sþ“D“Dsÿ“F“Rt“T“\t “^“^t“`“at“c“et“g“gt“j“jt“l“nt“p“qt!“u“wt#“y“|t&“~“~t*“€“€t+“‚“ƒt,“ˆ“Št.“Œ“t1“‘“’t5“”“›t7““Ÿt?“¡“ªtB“¬“µtL“·“·tV“¹“¹tW“À“ÀtX““ÄtY“Æ“Èt\“Ê“Êt_“Ì“Òt`“Ô“Útg“Ü“ßtn“á“ètr“ì“ìtz“î“ît{“õ”t|””tˆ””tŠ” ”tŒ””tš” ”!t”%”%tŸ”(”,t ”.”.t¥”0”3t¦”5”Atª”D”Lt·”O”StÀ”U”UtÅ”W”WtÆ”Z”[tÇ”]”^tÉ”`”`tË”b”dtÌ”h”ktÏ”m”xtÓ”|”ƒtß”…”…&”†”tç”’”•tò”—”—tö”™”Æt÷”È”Îu%”ДÒu,”Õ”Ùu/”Û”åu4”ç”úu?”ü•uS••us•!•&uv•(•2u|•4•<u‡•>•Bu•D•Gu••I•Ju™•L•Tu›•V•Yu¤•[•_u¨•a•mu­•o•suº•v•vu¿•w•w>2•z•}uÀ••>3•€•€f•‚•ƒuÄ•†•”uÆ•–•–uÕ•˜•™uÖ•›•œuØ•ž•¥uÚ•§•©uâ•«•®uå•°•²u镵•·u앹•Àuï•ÕÃu÷•Å•Íuø•ЕÖv•Ø•Øv•Ú•Üv •Þ•åv •è•è’•é•ëv•í•þv––v)––v0––v;––v?––¶––µ––$vA–(–(vH–*–*vI–,–6vJ–9–=vU–?–@vZ–B–Qv\–S–Uvl–X–Xvo–[–_vp–a–mvu–o–xv‚–z–zvŒ–|–~v–€–€v–ƒ–‹v‘––•vš–—–™v£–›–žv¦– –¤vª–§–ªv¯–¬–¬v³–®–´v´–¶–¶M–·–¸v»–¹–¹>––»–¼v½–½–½$Ж¾–¿v¿–À–À>—–Á–ÏvÁ–Ñ–ÞvЖߖß>Ÿ–à–ãvÞ–å–åvâ–è–è–é–ëvã–ï–ñvæ–ò–ò6–ó–óvé–õ–úvê–û–ûÌ–ý—vð—— vö— —vþ——w——w—— w—"—0w —2—3w—5—5w—8—;w—=—?w#—B—Dw&—F—Iw)—K—Kw-—M—Mw.—O—Ow/—Q—R>Õ—S—Sw0—U—Vw1—X—\w3—^—^>×—`—aw8—b—b"E—d—fw:—h—hw=—i—i!B—j—nw>—p—twC—v—†wH—ˆ—ˆwY—Š—‹wZ——’w\—”—”wb———šwc—œ—žwg— —¦wj—¨—¨wq—ª—¯wr—²—´wx—¶—·w{—¹—¹w}—»—»w~—¿—¿w—Á—Áw€—×Éw—Ë—Ë"þ—Ì—Ðwˆ—Ó—Ùw—Ü—ßw”—á—áw˜—ã—ãw™—å—åwš—æ—æp—ç—çw›—é—ìwœ—í—í![—î—îw —ð—ðw¡—ñ—ñ>á—ò—òw¢—ó—ó!É—õ—öw£—ø—ûw¥—ý˜w©˜˜ Ę˜w­˜ ˜ w´˜ ˜wµ˜˜w½˜˜wÀ˜ ˜!wŘ$˜$wǘ&˜)wȘ+˜-w̘/˜0wϘ2˜2wј4˜5wÒ˜7˜9wÔ˜;˜=wטA˜AwÚ˜C˜FwÛ˜H˜UwߘW˜`wí˜b˜ew÷˜g˜gwû˜i˜kwü˜o˜twÿ˜u˜u•˜v˜Šx˜Œ˜x˜˜‘x˜“˜”x˜–˜˜x!˜š˜¢x$˜¤˜§x-˜¨˜¨0˜©˜ªx1˜¬˜¯x3˜±˜³x7˜¶˜¶x:˜¸˜¸x;˜º˜Äx<˜Æ˜ÇxG˜É˜ÉxI˜Ë˜ÌxJ˜Î˜Î#ç˜Ñ˜ÓxL˜Õ˜ÕxO˜Ø˜ÚxP˜Û˜Û˜Ü˜ÜxS˜Þ˜Þy˜ß˜ß)¯˜á˜ãxT˜å˜åxW˜ç˜ëxX˜í˜ïx]˜ò˜òx`˜ô˜ôxa˜ö˜öxb˜ù˜úxc˜ü˜þxe™™xh™™xi™™xk™™ xl™ ™ >ù™ ™ xo™™xq™™xz™™!x|™$™%x™'™3xƒ™5™5x™:™:x‘™<™?x’™A™Cx–™E™Ex™™G™Ixš™K™Nx™P™Yx¡™[™[x«™\™\>ÿ™^™_x¬™a™ax®™c™c©™e™ex¯™g™rx°™t™wx¼™z™zxÀ™|™}xÁ™™xÙ„™ˆxÆ™Š™‹xË™™xÍ™™•xΙ–™–!™™—™˜xÕ™™™™"”™œ™žx×™¡™¡xÚ™£™£xÛ™¥™¨xÜ™«™«xà™¬™¬ö™­™µxᙹ™½xê™Á™Éxï™Ë™Ùxø™Û™Ýy™ß™ßy ™â™åy ™ç™çy™é™êy™ì™îy™ð™òy™ô™ôy™ö™ÿyšš y#š šy.ššy1ššy7š š y=š"š%y>š'š.yBš0š2yJš4š:yMš=šFyTšHšJy^šLšPyašRšWyfšYš[ylš^š`yošbšbyršdškysšlšl>šmšqy{šsš‚y€š„šˆyšŠšŒy•šš“y˜š–š˜yššš¥y š§š§y¬š¨š¨#+š«š«y­š­š­y®š¯š±y¯š³š´y²š¶š¼y´š¾šÂy»šÄšÇyÀšÊšÍyĚϚÖyȚؚØ%šÙšÙ?šÜšÜyКޚÞyÑšßšß$½šášãyÒšåšçyÕšêšïyØšñšôyÞšöš÷yâšùšþyä››yê››yë››yï› ›yð››yú›› z›"›$z›%›%$›'›+z›.›/z ›1›1?;›2›2$›3›3z ›5›5z›7›7z›:›;z›<›<#û›>›?z›A›Oz›Q›Rz#›T›Vz%›X›Yz(›Z›ZÄ›[›[z*›_›az+›d›dz.›f›hz/›l›lz2›o›rz3›t›wz7›z›~z;›€›€z@›‚›ƒzA›…›ˆzC›Ž›“zG›•›—zM›š››zP›ž›¢zR›¤›¦zW›¨›¨zZ›ª›«z[›­›¯z]›±›±z`›´›¶za›¸›¹zd›»›»zf›½›½zg›¿›Ázh›Ã›Äzk›Æ›Êzm›Ï›Ïzr›Ñ›Özs›×›×?P›Ù›Üzy›Þ›Þz}›à›èz~›ê›ìz‡›ð›òzŠ›õ›õz›÷›øzŽ›ý›ýzœœz‘œœz’œœzœœzžœœz¢œœz£œ!œ!z¦œ#œ%z§œ(œ)zªœ+œ4z¬œ6œ7z¶œ9œAz¸œDœDzÁœFœNzœPœPzËœRœRzÌœTœZzÍœ^œ`zÔœbœczלfœhzÙœmœnzÜœqœqzÞœsœzzßœ|œ|Aœœz眜‚z蜅œˆz꜋œ‹zŽz’zñœ”œ•zôœšœœzöœžœ©zùœ«œ«{œ­œ®{œ°œ¸{œºœ½{œÃœÇ{œÊœÐ{œÓœÙ{!œÜœß{(œâœâ{,œåœå¿œæœç{-œéœí{/œðœ÷{4œùœý{<œÿ{A {C{J{K{L{M{O{R {S"#{W%&{Y(1{[33{e68{f;;{i=F{jHH{tJL{uOT{xVa{~dd{Šgl{‹ou{‘w{{˜}}{‚{ž„Œ{¢{«’’{­””{®–¤{¯¦­{¾¯¯{Ʊ±?s²¼{Ǿ¿{ÒÁÈ{ÔÊÓ{ÜÕß{æáæ{ñèé{÷ëð{ùòû{ÿýž| ž ž |ž ž |ž ž |žž|žž|žž|žž|"žžž ž#|$ž%ž&|(ž(ž-|*ž/ž/?Šž1ž3|0ž5ž:|3ž=ž?|9žAžL|<žNžO|HžQžQ|JžUžU|KžWžX|LžZž\|Nž^ž^|Qžcžd|Ržfžm|Tžpžq|\žsžs|^žužusžxžz|_ž|ž~|bžž?’ž€žƒ|ež†žŽ|iž‘ž•|rž—ž—|wž™ž|xžŸž¡|}ž¤ž¤|€ž¥ž¥"Rž¦ž§|ž©žª|ƒž­ž®|…ž°ž°|‡ž´žÀ|ˆžÂžÂ|•žÃžÄ?©žÈžÉ|–žÌžÌ|˜žÍžÍ?­žÎžÎ%]žÏžÐ|™žÑžÒ%/žÓžÖ|›žØžà|Ÿžâžâ|¨žäžë|©žížð|±žòžõ|µžöžö?²ž÷ž÷|¹žùžù2žúžü|ºžýžþ?³žÿŸ|½ŸŸ |ÀŸ Ÿ |ÆŸŸÈŸŸ|ÇŸŸ|ÉŸŸVŸŸ|ÊŸŸ|ÒŸ Ÿ ™Ÿ!Ÿ!–Ÿ"Ÿ%|ÓŸ(Ÿ9|ן;Ÿ;5Ÿ=Ÿ>|éŸ@ŸD|ëŸFŸI|ðŸJŸJ%}ŸKŸQ|ôŸRŸR'”ŸTŸY|ûŸ[Ÿg}ŸjŸl}ŸnŸr}ŸtŸ{}Ÿ~Ÿ€}ŸƒŸŒ}!ŸŸqŸŸ’}+Ÿ”Ÿ•}.Ÿ˜Ÿ˜}0Ÿ™Ÿ™+ÞŸšŸ›}1ŸœŸœ?ŸŸ}3ŸŸŸŸ🠟 ?ÄŸ¢Ÿ¢}4Ÿ¤Ÿ¥}5¬×£}7ùù¨Ûùùùù?Åùù¨Üùù?Èù ù ¨Þù ù ?Íù ù ¨ßùù?Ðùù¨âùù?Ôùù¨åùù?Úùù'¨íù(ù(?àù)ù,¨øù-ù-?âù.ù2¨üù3ù3?çù4ù4’ù5ù5©ù6ù6?éù7ù;©ù<ù=?îù>ù>©ù?ù@?ñùAùE©ùFùF?øùGùN© ùOùO?þùPùY©ùZùZ@ù[ù]©ù^ù^jù_ùa©"ùbùb@ùcùcìùdùf©%ùgùg.ùhùj©(ùkùk@ ùlùl©+ùmùm@ ùnùn©,ùoùq@ùrùv©-ùwùx@ùyù{©2ù|ù|@ù}ù}©5ù~ù~-ùù©6ù€ù€"ùù$ù‚ùƒ@ù„ù‡©7ùˆùˆ@ù‰ù‰©;ùŠùŠéù‹ù©<ùŽùŽºùù•©?ù–ù˜@(ù™ù™©Fùšùš@,ù›ùœ©Gùù@/ùžùž©IùŸù¢@0ù£ù©©Jùªùª@:ù«ù­©Qù®ù®@=ù¯ù¹©Tùºùº”ù»ù»©_ù¼ù¼@Hù½ùÀ©`ùÁùÁ@LùÂùédùÄùÄ@OùÅùЩfùÑùÑ@WùÒùÝ©rùÞùÞuùßùä©~ùåùå@aùæùæ©„ùçùç@cùèùè©…ùéùê@eùëù쩆ùíùí@hùîùö©ˆù÷ù÷*Ýùøùû©‘ùüùü@nùýùÿ©•úú@qúú©˜úú@súú ©™ú ú @wúú©Ÿúú@}úú©¢úú@„úú!©®ú"ú#@‡ú$ú)©±ú*ú*@ú+ú+©·ú,ú,@‘ú-ú-©¸þ0þ1=þ3þD?þIþOQþPþPÈþQþQXþRþRÉþTþWÊþYþfÎþhþkÜÿÿ^@ÿaÿŸYÿàÿâÿãÿãÿäÿåÿæÿæL°,°!-K°ÈQK°SZX¹ÿ…Y""""Z€ÞPæj„ªÐ 4Vnš´þ"lÎ Z¼ÚR²ü>`‚¤ ¦à < € º à  N t ž Ì ö  L ~ È  ^ ¢  " Z † Ú,PpŠªÌänÈ f²ôžÜ`’¨@Šæ@tÐLzÎüDh¼Ô(\”¨òP`æ0bª 0bŽÈò<š ¨L–È6xî   ® Ä Ú!N!d!z!ð"""r"à"ö# #"#‚#˜$$$.$p$¾$Ô$ê%%%F%\%r%¢%Î%ä&.&‚&˜&î'l'œ'ì((6(N(x(¤(î) )Z)j)z)–)È)Ø)è)ø*N*^*n*š*ª*º*è*ø++&+P+`+p+Ú+ê,6,„,ö-d-œ..l.¾.ú/H/x/ˆ/æ0(0X0Î0Þ1 1p1¾1ø262’2î303’3¨3¸3ú4 44T4d4ž5545ˆ5°5ä5ô666$646D6T6–6¦6¶6Þ77:7j7¬7ô828z8Ð99$9Š9æ::::J:„:è;;^;†;¸;ê<<"<@:>x>¾??V?l?„?œ?´?Ö?ø@0@h@˜@âALB B:BbB¾CLC´D0DrD‚E"EúF¾GTGºGÚHH*HœHâI>I|I¨IÔJ J2JKK˜LL2L^LŠLÆLîMM(MTMnM¸MÜN&NˆNÄOOvO”P PlP¶PøQQ<Q^QÆR`RšRöS:StSšS¼TT.TXT†T´TÎUU:U„UÂVV^VÀVÞWW@W”WÂWæX X*XDXdX†X XÄY*Y„YÈZZjZ¬[Z[˜[Þ\0\^\„\à]]f]À^^L^¬^ì_(_T_¤_Ò``@`”`¬aa4ažb&bÆc@cÐdpdÎe‚f$fÌgLgôh²iJiúj¸k4kþl¾m„mänbnøohoîp„pØq‚rr¸s.sÌt€uu´vhvÚwšxPy y"y8yNydyzyy¦y¼yÒzZzvzþ{ž||¤}F}¢~X~öž€8€Ä<È‚F‚¼ƒ˜„„v„ð…V…°†@†°‡.‡¼ˆHˆ°‰@‰´Š"Š„‹‹d‹ÞŒ8ŒÚrôŽŠ’tð‘h‘ì’\’À“X“Ò”Z”𕈕ø–’——ˆ—ô˜v˜â™h™Ì™òš šTš€š˜š°šÈšà››<›h›”›Ìœœ:œpœŒœ¨œÄœàœü4Plˆ¤ÀÜøžž0žPžpž”ž¸žØžüŸ Ÿ@Ÿ`Ÿ€Ÿ¤ŸÈŸè   0 P p ” ¸ Ø ø¡¡@¡`¡€¡¤¡È¡è¢¢,¢P¢p¢˜¢À¢è££8£`£ˆ£´£à¤ ¤8¤`¤ˆ¤°¤Ø¥¥"¥H¥l¥¥º¥Þ¦¦,¦P¦t¦ž¦Â¦æ§§8§d§š§Â§î¨&¨P¨x¨¬¨Ö¨þ©4©l©¤©ìªª0ªRªtªŽª¨ªÚªò« «"«:«R«j«‚«œ«¶«Ð«ê¬¬¬8¬R¬l® ®ò¯ ¯$¯<¯^¯Œ¯Ð°°Ð±*±„²Ê²à³³³8³P³r³Š³¬³Æ³î´$´n´öµ"µ`µžµ´µÊµàµö¶@¶j¶´·¤¸Ø¹àºä»D»¤»ð¼Z¼²½>½z¾ ¿¿6¿z¿ÆÀ ÀhÀŠÀªÀàÁÁnÁšÁÀÁæÂ:޲ÂÖÃ4ôÃðÄÄ0ÄRÄtĖİÅÅ®ÆDÆ^ƘƮÆÄÆÚÆðÇ Ç(ÇDÇ`ǂǒǢDzÇÄÈrȬÉ,ɲÊʆÊÐËXËh˲ËÂËÒËâÌÌ2ÌH̨̒Í4ÍÞÎÎ>Î~ÎŽÎÚÏ$ÏrϾÏÎÐÐlвÑ$ÑÂÑîÒÒ„ÒìÓ~Ô8Ô ÔìÕ<ÕXÕzÕºÕÒÖÖ^Ö¤Öê×`×ÖØØZØœØÜÙ.Ù¸ÙòÚÚNÚhÚÔÛÛHÛbÛ‚Û¨ÛÀÛâÜÜ<ÜtÜâÝfÝÆÝôÞ,ÞbÞ˜ÞÎßßZß’ßÊà àNàlààúádá”â>âPâPâpâºââã6ãVãvãªãÞãúää@äjäŽä²äÜäþå"åHå„åÀåöæ,ædæÎç‚è2è€èÖé&évêê”ë2ëÒìRìúíˆî>î‚îîïVïæð6ð®ñ$ñÆòòbòäóŽô ô°õ*õÌöX÷ ÷„ø&ø\ø˜øüù>ù¨ùôúhûûzüDüêý\ýöþÆÿ¬$Äz ÂÌ0ªLðx¸ N Î L È ^ ø b Ò < ž2¼,š ®ˆ„ü0z®ø,ˆÞ2^ŠÂü$LœðPØ"”æ`¬ DÖF” ^ÚBÒ pÔ`² * | Ð!J!‚!â" "Z"˜"º# #‚#¨#Ü$8$ª$ð%\%Þ&&~&ö'&'~'ì(R(à)„)Î**Z*¤*ð+>+–+¼+ä,,<,„,Â--Z-„-¶-æ.(.p.¬.æ/H/¢/è00,0L0”0Ø161l1¢1ò2H2Š2ì383†3°3ä4404|4¼4þ5`5˜5Þ66N6š6ì727”7º88l8¸8î9<9d9¦9¾: :B:^:ˆ:È:ä;6;´;Ô<<6>ž>È>ú?R?ª?â@8@Š@ÂA2AxAžAÆAüB^B~B¦BÎCC CJCrC¤CÄCøD4D`DŒD¬DâE$EPExEE²EÊEÊEüF2FzF°G GbGèH,H¬HüINIŒIüJ>J„JöKlKÌLL’M0MpM°MôNLN¬NÌObO´P*PQ QÌR(RlR¼RðS8SŠS¾SêT TpTÀUUpUÐV8V¤W*W–XXlXÈY4YÊZ6Z [[†[ð\b\â]|]þ^Š__z_ü`¦a&a€aÚb8bžccvcìd|dôeteØf>f²gTgÈh<h´i6iªj&j¬kNkÚlplòmrmþn°o*oÖpxpàqÊr–sDsÞt4u@vRw&w’x˜yTz6zÂ{@{¦|,|®}}°~z~ê>¶€¸²‚~‚¾ƒ"ƒ„„b…"…º†t‡‡ˆˆÌ‰xŠ ŠŠ‹jŒ0ŒÀtŽrXØ‘”’‚““Ô”˜•B–—N˜°™Z™èš˜›D›Àœ œ¨$rОlžâŸŒ . ¦¡&¡–¢££²¤,¤¼¥Ì¦l§§ ¨8¨Ä© ©„©èª.« «X«æ¬Š­p­ò®v¯¯X¯p¯ˆ¯ð°°@°”°ê±±2±V±z±®±â²²"²>²Z²„²®²Ü³³Š³þ´,´b´Ê´êµ4µPµlµŒµ¸µê¶@¶l¶¢¶Ê··h··¼¸¸&¸~¸ª¸ä¹ ¹\¹®¹øºRº˜º¼ºþ»L»˜»ü¼6¼’¼Þ½0½j½’½Ò½ô¾Z¾º¾Ú¿¿N¿’¿ÌÀ2À~ÀÆÁ ÁRÁ ÁîÂÂBˆ¼ÃÃJÃtèÃâÄÄ`Ä„ĨÄÌÄîÅÅ2ÅTÅvŘźÅÜÆÆ$ÆHÆjƌƮÆÐÆòÇÇ6ÇXÇ|Ç ÇÄÇæÈÈ*ÈLÈnÈȲÈÔÈøÉÉ@ÉbÉ„ɦÉÈÉêÊ Ê.ÊPÊŠÊÄÊþË4ËjË ËÖÌ ÌBÌxÌ®ÌèÍ"Í\Í’ÍÈÍþÎ4ÎjΠÎÖÏ ÏFÏ€ϺÏðÐ&Ð\Ð’ÐÈÐþÑ4ÑjѤÑÞÒÒNÒ„ÒºÒðÓ&Ó\Ó’ÓÈÓìÔÔ4ÔPÔlÔˆÔ¤ÔÀÔÜÕÕ$ÕHÕdՀ՜ոÕÔÕðÖÖ8Ö\ÖxÖ”Ö°ÖÌÖè××(×L×p׌ר×Ä×à×üØØBØlØ–ضØÖØöÙÙ6ÙVـ٪ÙÐÙðÚÚ0ÚPÚpÚÚ¶ÚÜÛÛ"ÛBÛbÛ‚Û¢ÛÂÛìÜÜ8ÜXÜxܘܸÜØÜøÝ<Ý|ݼÝöÞ2ÞlÞ¦Þàßß^ßžßâààVààÊáá@á€áÀââ:âtâ®âèã"ã\ã ãàä äZä”äÎååBå|å¬åÜæ æ4æ\æ„æ¬æÔæüç,ç\ç„ç¬çÔçüè$èLè|è¬èÜéé,éTé|é¤éÌéüê,ê\ê„ê¬êÔêüë$ëLëvë ëÊëììì0ìRìtì–ì¸ìÚìüíí@íbí„í¦íÈíêî î.îPîrî”î¶îØîúïï>ï`ï‚ï¤ïÆïèð ð<ðnð ðÊðôññHñrñœñÆñðòòDònò˜òÂòìóó@ójó”ó¾óèôô<ôfôôºôäõõ8õbõŒõ¶õàö8ööè÷0÷x÷ÀøøPø˜øàù(ùpù¸úúHúúØû ûhû°ûøü@üˆüÐýý`ý¨ýðþ8þ€þÈÿÿXÿ ÿè0dœÎ6hšÌþ2d˜Ì2d–Èü4f˜Êü.`’Æø*\Âô&X®~Ô * € Ö , ‚ Ø . „ Ú 0 † Ü 2 ˆ Þ4Šà6Œâ8Žä:æ<’è>”Þ(r¼Pšä.x V ê4~È\¦ð:„Îb¬ö@ŠÔh¦àTŽÄþ8pªè " \ – Î!!>!v!®!æ" "X""È##8#p#¨#à$$V$$È%%8%p%Ø&@&¨''r'Ú(B(ª))z)â*J*²++|+Ü,D,¨--x-Ü.>. //d/È0*0’0ú1d1Æ2(2Œ2ì3P3²3ø4>4„4Æ55J5Œ5Î66V6ž6ä7&7h7ª7ì8.8p8¶8ø9:9|9¾::B:Ž:Ð;;T;–;Ø<<\<ž<à="=T=†=¸=è>>F>v>¤>Ò??2?d?–?È?ö@$@T@„@²@àAABAtA¦AÔBB2BbB’BÀBîCCPC‚C´CâDD@DpD DÎDüE,E^EEÂEêFF:FbFŠF²FàGGDGlG”G¼GäH H4HbHH¾HæII6I^I†I®IÜJ J8J`JˆJ°JØKK(KbKœKÖL LBL|L¶LðM*MdMžMØNNDN~N¸NòO,OfO OÚPPFP€PºPôQ.QhQ¢QÜRRHR‚R¼RöS0SSðTPT°UUpUÐV0VVðWPW°XXpXÐY0YYðZPZ°[[p[Ð\0\\ð]P]°^^p^Ð_0__ð`P`p``°`Ð`ðaa0aPapaa°aÐaðbb0bXb€b¨bÐbøc cHcpc˜cÀcèdd8d`dˆd°dØee(ePexe eÈeðff@fhff¸fàggDgvg¨gÚh h>hph¢hÔii8ijiœiÎiîjj.jNjnjŽj®jÎjîkk.kNknkŽk®kÎkîll.lNlnlŽl®lÎlîmm.mNmnmŽm®mÎmînn.nNnnnŽn®nÎnîoo.oNonoŽo®oÎoîppBplp–pÀpêqq>qhq’q¼qærr:rdrŽr¸râs s6s`sŠs´sÞtt2t\t†t°tÚuu.uXu‚u¬uÖvv*vTv~v¨vÒvüw&wPwzw¤wÎwöxxFxnx–x¾xæyy6y^y†y®yÖyþz&zNzvzžzÆzî{{>{f{Ž{¶{Þ||.|V|~|¦|Î|ö}}F}n}–}¾}æ~~6~^~†~®~Ö~þ&XŠ¼î€ €R€„€¶€èL~°â‚‚F‚x‚ª‚܃ƒ@ƒrƒ¤ƒÖ„„:„l„ž„Ð……4…f…˜…Ê…ü†.†`†’†Ä†ö‡(‡Z‡Œ‡¾‡ðˆ"ˆTˆ†ˆ¸ˆê‰ ‰*‰J‰j‰Š‰ª‰Ê‰êŠ Š*ŠJŠjŠŠŠªŠÊŠê‹ ‹*‹J‹j‹Š‹ª‹Ê‹êŒ Œ*ŒJŒjŒŠŒªŒÊŒê *JjŠªÊêŽ Ž*ŽJŽjŽŠŽªŽàL‚¸î$ZÆü‘2‘h‘ž‘Ô’ ’@’v’¬’â““N“„“º“ð”&”\”’”È”þ•4•j• •Ö– –B–x–®–ä——P—†—¼—ò˜(˜^˜”˜Ê™™6™t™²™ðš.šlšªšè›&›d›¢›àœœ\œšœØT’ОžLžŠžÈŸŸDŸ‚ŸÀŸþ < z ¸ ö¡4¡r¡°¡î¢,¢j¢¨¢æ£$£b£ £Þ¤¤Z¤˜¤Ö¥¥R¥€¥®¥Ü¦ ¦8¦f¦”¦Â¦ð§§L§z§¨§Ö¨¨2¨`¨Ž¨¼¨ê©©F©t©¢©Ð©þª,ªZªˆª¶ªä««@«n«œ«Ê«ø¬&¬T¬‚¬°¬Þ­ ­:­h­–­Ä­ò® ®H®p®˜®À®è¯¯8¯`¯ˆ¯°¯Ø°°(°P°x° °È°ð±±@±h±±¸±à²²0²X²€²¨²Ð²ø³ ³H³p³˜³À³è´´8´`´ˆ´°´Øµµ(µPµxµ µÈµð¶¶0¶P¶p¶¶°¶Ð¶ð··0·P·p··°·Ð·ð¸¸0¸P¸p¸¸°¸Ð¸ð¹¹0¹P¹p¹¹°¹Ð¹ðºº0ºPºpºº°ºÐ»»<»r»¨»Þ¼¼J¼€¼¶¼ì½"½X½Ž½Ä½ú¾0¾f¾œ¾Ò¿¿>¿t¿ª¿àÀÀLÀ‚À¸ÀîÁ$ÁZÁÁÆÁüÂ2ÂhžÂÔà Ã@ÃvìÃîÄ0ÄrÄ´ÄöÅ8ÅzżÅþÆ@Æ‚ÆÄÇÇHÇŠÇÌÈÈPÈ’ÈÔÉÉXÉšÉÜÊÊ`Ê¢ÊäË&Ëh˪ËìÌ.Ìp̲ÌôÍ6ÍxͺÍüÎ>΀ήÎÜÏ Ï8ÏfÏ”ÏÂÏðÐÐLÐzШÐÖÑÑ2Ñ`ÑŽѼÑêÒÒFÒtÒ¢ÒÐÒþÓ,ÓZÓˆÓ¶ÓäÔÔ@ÔnÔœÔÊÔøÕ&ÕTÕ‚Õ°ÕÞÖ Ö4Ö\Ö„Ö¬ÖÔÖü×$×L×tל×Ä×ìØØ<Ød،شØÜÙÙ,ÙTÙ|Ù¤ÙÌÙôÚÚDÚlÚ”Ú¼ÚäÛ Û4Û\Û„Û¬ÛÔÛüÜ$ÜLÜtܜܴÜÌÜäÜüÝÝ,ÝDÝ\ÝtÝŒݤݼÝÔÝìÞÞÞ4ÞLÞdÞ|Þ”Þ¬ÞÄÞÜÞôß ß$ß<ßTßl߄ߜߴßÌßäßüàà,àDà\àtà˜à¼ààáá(áLápá”á¸áÜââ$âHâlââ´âØâüã ãDãhãŒã°ãÔãøää@ädäˆä¬äÐäôåå<å`å„å¨åÌåðææ8æPæhæ€æ˜æ°æÈæàæøçç(ç@çXçpçˆç ç¼çØçôèè,èHèdè€èœè¸èÔèðé é(éDé`é|é˜é´éÐéìêê@êjê”ê¾êèëë<ëfëëºëäìì8ìbìŒì¶ìàí í4í^ížíÞîî^îžîÞïï^ïžïÞðð^ðžðÞññ^ñžñÞòò^òžòºòÖòòóó*óFóbó~óšó¶óÒóîô ô&ôBô^ôzô–ô²ôÎôêõ<õŽõàö2ö„öÖ÷$÷r÷Àøø\ø¬øúùHùšùìú>úúâû4û†ûüürüèý^ýÔþJþÀÿ6ÿ¬"˜„úpæ\ÒH¾4Tt”´Ôô4Tt”´Ôô4Tt”´Ôü$LtœÄì  < d Œ ´ Ü  , T | ¤ Ì ô  \ œ Ü  \ œ Ú  Z š ÚX˜ÖR’ÒR î<ŠØ&tÂ^¬úH–ä2€Îj¸dºf¼h¾jÀlÂnÄlÀlÂnÄ  p Ä!!n!Â""j"À##l#Â$$n$Ä%%\%¨%ô&>&ˆ&Ò''h'²'ü(F((Ú)&)r)¾**T* *ì+F+ +ú,T,®--b-¼..p.Ê/$/~/Ø020Œ0æ1@1š1ô2N2Ò3V3Ú4^4à5b5ä6h6ì7p7ô8x8ü9~::†; ;Ž<<–==D=n=˜=Â=ê>>:>d>Ž>¸>â? ?6?`?Š?´?Þ@@2@\@†@¸@êAANA€A²AäBBHBzB¬BÞCCBCtC¦CØD D<DnD DøEPE¨FFXF°GG`G¸HHhHÀIIpIÈJ JxJÐK(K€KØLLHL€L¸LðM(M`M˜MÐNN@NxN°NèO OXOOÈPP8PpPÆQQrQÈRRtRÊS$SzSÐT&T|TÒU(U~UÔV*V€VÖW,W‚WÌXX`XªXôY>YˆYÒZZfZ°Zú[D[Ž[Ø\"\l\¶]]J]”]Ì^^<^t^¬^ä__T_Œ_Ä_ü`4`l`¤`ÜaaLa„a¼aôb,bnb°bòc4cvc¸cúd<d~dÀeeDe†eÈf fLfŽfÐggTg–g¼gâhh.hThzh hÆhìii8i^i„iªiÐiöjjBjhjŽj´jÜkk,kTk|k¤kÌkôllDlll”l¼läm m4m\m„m¬mÔmün2nhnžnÔo o@ovo¬oâppNp„pºpðq&q\q’qÈqþr4rjrÊs*sŠsêtJtªu ujuÊv*vŠvêwJwªx xjxÊy*yŠyêzJz¬{{À||d|ê}F}²~~`:²€<€ hÌ‚.‚^‚ª‚êƒjƒô„‚… …š††ô‡8‡ªˆˆŽ‰4‰ÖŠxŠì‹´Œ&<ŽVhz‘‚’Š“˜”š•°–j–¨–æ—h—ê˜P˜Ž˜ò™V™ÊšB𬛛@›l›–›Âœ:œ†œÔn¾žžNžŽžÎŸŸNŸŒŸÐ  X œ à¡$¡h¡¦¡ê¢H¢À£8£¶¤.¤¦¥¥–¦¦Ž¦Â§x§¬¨¨`¨ö©`©¾ª(ª\ªÒ«8«À¬H¬²­H­ê®r®â¯.¯à°0°Ú±‚±è²–³³´´xµ`µÔ¶„¶ø·J·œ·ö¸H¸Þ¹L¹ˆ¹àººÈ»<»t¼^¼š½¦½â¾¾~¾ø¿lÀBÀ¤Á Á6ÁbÁŽÁÖ˜ÂÄÂÄ:ÄøÅ(Å~ŲÅøÆ,ÆŒÇÇžÈ0È¢É&ɪÊ”ËLË‚ËÞÌ:ÌšÌüÍ`ÍÀÎ>δÎðÏ(Ï`ϘÏÐÐÐ@Ñ ÑŽÒ ÒFÒ¢ÒòÓxÓ°Ô Ô<ÔšÕÕ€ÕÐÖ"ÖtÖÆ××x×ÊØBضÙZÙ¸ÚÚdÛ(Û|Ü>Ü–ÝVÝæÞ&ÞšÞàß&ß|àà>à¨àþáÊâRããÐä<ätäòåNå¾åöæ¤çLçôè|èôé4é´êŽêÈëžì$ì€ííŽî.îšï.ïžððPðÆññXñ òópôŽõ°öZö¬öÞ÷:÷„øFø°ùnùœúlú¶ûjûÐü„ýnþ*þêÿzÿ²*ŒnÌdªð:ˆJ T°6r® pÚ  Š H ò D Æ  | Ú N ¸Hê*jæbà~Ú:ºþ¦2|â`˜Âdö"¾"Z æ2œÜ\¤Xü,ˆÚ.ÆH î > ®!!€!ì""L"´#J#°$x%%t%ü&L&ª&à''L'˜'ä(4(º(î)ˆ)¼***ž+ +J+Ä,",V,Â- -ê.H/$/T/Â0X1˜22¬33z3Þ4X4²5&5˜606ª6Ò7Ú8ž9J9Ô:V:Â:ú;j;Ø<$<¸=f=à>@>Š>¾??j@$@„AvAÔBB¤BÌC(C´DD E&EnEòFxGGÎHPHªIRI–IÜJ$JjJòK&KŽKêLHLÂM(M|M´NfOO”OäP.PvP¶QHR$R‚RÈSS`S¸TUU¦UÞV.V|W¼X&XnYYŠZZrZâ[:[¸\>]]@]þ^¶_v_®`0`Üa€aæbDbÀbúc8cºdd¨dìe>eÒf.f¨g`gÆh<h´i(i¾j:jtj¬k0k¢l‚m.mônvnÀo@oÚpZpÀqqˆqÂr rpr¼rÞs&snsät:t”tÖu@uªv:väww†wôx<x¾y0y”yðzì{˜{ô|,|’|Ö} }h}°~~¾¨€€Š€Ì¼‚v‚¼ƒœƒè„„Î…ˆ†>†f‡‡|‡ÖˆZˆ”ˆæ‰@‰ˆ‰ÆŠ&Š\Š”ŠÚ‹ÂŒ>Œ~ŒÐ:bÌŽfŽÂX´š‘|’,’¼“\”$”l”â•*•r•ì–€–Þ—’—þ˜l˜´™ ™¼šš¨››z›æœ.œ”œÚÖžnžºŸ Ÿ„  ˆ ê¡Š¢8¢’££n£¶£ü¤P¤´¥P¦*¦¢¦ð§€§ö¨Þ©~©èªhª”««f«¬¬4¬”­0­f­æ®:®”®ú¯P¯¦°°Ô±f²,³(³°³ô´Z´‚´äµFµ²¶*¶Ö·X¸D¹4ººÆ»»b»Ä¼>¼ ½†¾<¾Ä¿<¿¦ÀÀ¸ÁÁ†ÂhÃÃFÄÄzÄØÅPÅœÆ"ÆpƼÇbǺÈ ÈèɆÊ6ÊðËZÌÌLÌöÍÍnÍ–;Î"ÎrάÎæÏ(ÏŒÏþÐXÐîÑ:ѲÒ’ÓÓ^ÓþÔ`ÔÊÕHÕºÖPÖ¤×"×vØغÙzÚÚ0ÚdÚÂÛ4ÛÌÜŠÝZÞÞ–Þüßrà8àXáázá®â`â¢ã|ä6äjäæåšæ´æêç çjç°è4è¤ééVé˜éØêhëëzëìì~í,í¬îî|ïïÆðXðäñDñnñÔò0ó óPóøô¨ôØõõXõÔöÐ÷d÷¶ø>ø„øœù~ùÞúÎüüœýýœýâþbþÆÿÿÿÌ&~:’b¨ô€ZÎ8Îzø~ T ¤  Æ Ž  j Ô  € À*¼þfº¢*ŒÀfÐfØNª–ÎÔDÀVþ ’6TŒ.‚¶: $ z Ô!!†""¨#z$*% &&Ò'R'Ò(&(Ð)r)ö*¦++b+¸,,\,Â--@-°..2/"/â0¾1H22d2´3*3 44Œ4¸5.66^6Ø7H7¶8*8f9 9R9ü:V:æ;2;Œ<*<„<þ=x=º>D>Ê?2?æ@N@¶APAÊBæC.CÌD$D¼EEpEàF€GBG²H6II²IêJÆKfLL¢MdN¨O:O–P P~P®QŠQèRŒRúSRSºTTbT¶VV²WNWöXˆXÞY0YtYÀYèZH[6[ \$\î]\]’]î^J_ _¸`0`øaVa bb€bîc<c¬dBdØe&eØf&ggèh\h i<i¾iòj¾kNk”kôl$l´mfm¾nhooŒpFp¨q†r@s2sÖtzu:uÌvˆw>wŠxdyzz–{f|H|š}~}Ô~.~öx€šRº‚B‚ȃƒnƒÎ„2„€„Þ…l††œ†ä‡\‡°‡Ò‡úˆ"ˆJˆÀ‰ ‰zŠŠpŠØ‹F‹øŒvŒàZ ŽŽlŽîžt‘X‘~‘Ð’J’è“j“°“ø”ª”•:•¢–D–Æ—(—|—À˜(˜À™Vššš›ŒœBœÒÄøžtžìŸpŸú T € Ô¡(¡„¢¢Œ££Ž£ò¤x¥¥œ¦*¦–§2§º¨p¨Ò©2ªªtªð«v«È¬­"­v­Ø®@®h®œ¯&¯´° °d°Ð±’±Ê²l³.³ì´¬´ðµ®¶v·@¸¸˜¹N¹àºB» »¸¼f¼ô½F¾,¿¿öÀfÁÁ¶Â&ˆÃ6ÃtÄ.ÄšÄàÅfÅìƸÇBÇÎÇøÈjÉÉÆÊtË"ËþÌÖÍ\;Î ÎÊÏpÐÐNЂкÑdÒÒìÓ~ÓüÔ|ÔüÕˆÕÞÖ*Ö‚Öà×LרØnØ¢Ù ÙrÙ¶Ú ÚtÚÒÛ2Û¸ÜDÜäÝžÝôÞPÞ²ß4ß’ßäàbáálââjãääîåH岿žçŽè>èºéLé´ê&êfê¤ëëšì0ìÄíípí¼îîpîØï(ïˆï¨ðð˜ðîñ`ñªñöò.òŽòÐó2ó–óÞô:ô†ôæõõvõÞöövöü÷X÷Èøøhø–ù ùvùÒúúVú˜úØûûPû†û¼üüÖýýàþ°ÿ*ÿ¤"òxêXövðV  Àj¦ât– ( º P ´  x H   6 ÌdÈ0xì$ˆÆ‚NÐ@® äjþzþ‚<zþ0n8È‚:Â$ŒhÈ $ „!:!ô"z##†#ö$f%%ž&8&È'V'æ(’)D)è*Ž+*+ž+Æ,h--‚..¦/8/Þ0„1l2*2è3b3Ü4V4Ì5L606¬77´8L8®9*99î:V;(;ö<Æ=>X> ?H?Ø@|@ðBC CHCpDìEdF FÆGGHH¦HüIzJJÜKNKÆL®LâM\MÚNpOOtPhP¾QQÖR(RhSTTT²UNVFWWŠXX\XâYDYxZZ¢[&[[º\ \h]]Š^<__T`,aaNa¢aþbRb¦cBcÞd"dÆe exeäfPfØg^gêhŒi.iÎj2j–júkJkškâl*l”m.m¾nnPnÞoro¼pZpøqZqŠqúrhrÊs,s¨t"t´uZuÊv:v¨wwnw´x y$ydzVzÞ{Î|n}}H}¦~ž~ÖÆ€ff΂<‚d‚ÀƒƒŽ„8„Ü…N…n…Ð…ð†d†°‡‡d‡°ˆˆ^ˆÆ‰Š2Š„‹tŒ Œ@Œ~¢ŽŽjŽÞp²‘\’’Ì“X“ä”`••‚––ž—6—¾˜L˜ú™¢šP𸛤œPœ”$€ØžjžŸ8Ÿ”Ÿþ V¡¡L¡¸¢D¢¬¢þ£V£¨¤"¤Ê¥’¦F¦r§(§r§¸§þ¨.¨|¨Ä©©X©°ª ªfªˆªÊªþ«H«¶¬¬@¬v¬Ò­B­x­¸®J®š®ö¯<¯ˆ¯Ô° °B°x°¶°ì±$±„±ô²*²¢³P³¼´(´üµ°¶8·@·Ì¸œ¹@¹ÜºTºÌ»B»¾¼$¼ ½½ˆ¾¾x¾ô¿P¿¬ÀÀTÀ”ÀÔÁÁ¤ÁÚ ÂP†Ã&ÚÃöÄ*ÄnÄ ÅÅ>ÅšÅöÆ"ÆžÆÔÇZǘÇÐÇúÈBÈ”É É4ÉhÉ´ÉüÊ$ʆÊÔË Ë\ËŽËÐÌ¢ÌîÍ:Íf͸Î ÎLΰÎúÏ:ÏpϺÐЄÐôÑ8ÑnÑ®ÒÒ`Ò°ÒúÓHÓ˜ÓâÔNÔ¢ÔþÕ|ÕâÖRÖÂ×2×~×êØ8؆ÙÙ°ÙÜÚÚ4Ú`ڌڸÚäÛzÜ2ÜZÜ¢ÜÊÝÝLÝ’ÞÞ„Þ¸ßßhßÐàRàzà¢á á¦ââZâ âìãã<ãjãÔääVä¨äâå(å°æ2æ´ç6ç~è<èèêéDéØê2êÂë ëŽìì”ííšíìîNîÎïJïÎðXð¬ðøñxñÆòFòÆòæó(ójóªóÜô(ôtôÀôðõ:õpõ²õâö*ö„öÀöè÷T÷„÷îø\ø¤øÌùDù¸ú<újúÆû"û~ûÆüüæýýþþBþzþðÿHÄH"lÂ@x¾@†ì@ˆêDŒÈ ^¦"b  è Ž ` ü d È  l Î0’ôläZ¼PÜpÂ`‚ôHÔ|Jèˆ,Ðbºö2@¸6ÚN‚®â8€Ìü 6 ´!v"R#D#ü$–%%ˆ& &†''ì(H(°) )r)¬)þ*†+D,,V--è...ò/Â0Š1*1ì2ž3^4f4²5ª6 6p6Â7(7j7¼7ô8`8Ò9V9ú:2: :ê;Z;Ä<*<Ö=’=ð>b>Ú?p?º@\@þAœB:BÚCVCÀDD`D¢DèEDEŠEôF4FFæGZGüHVHÀIBJJ¾KK@K¬LLLLªMMRMæNPN¼O6OÆOþPÂQ†RR\RòSŒT,TÈUURU¢VNVúW¦XXbXÊY6Y‚YþZBZrZ¢[2[¼\F\\Ú]D]Æ^2^’^Ø__F_ˆ_ú``æahaîb^bÎcBc²d&d–e&e¶fFfÚgnhDii>iŽj jzjòkhkÚlLlÆmJm¼mènlnæoXoØp\pÞqRqÂrr€rêsJs¦tt2t–túuPu|vvˆwwŠwÊxNxÔyyŽyäzBzÌ{€||ì} ~"~¾’€€ìd‚ ‚êƒXƒÊ„8„¦„î…^…̆<†¬‡‡t‡¼‡ôˆ ˆ†ˆÖ‰6‰üŠ4ŠvЏ‹(‹‹ÀŒ*Œ¨ŒòD¾ŽZŽàt \œ‘‘†‘ì’N’¤““Š“ü”T”¨••\•ª––f–ª——B—¬—ܘ,˜†˜ð™t™Ìššnšššð›F›ˆ›ÎœœVœšœÖB°žž^ž¸Ÿ¦Ÿì L Ž î¡2¡p¡ì¢`¢Ò£@£´¤"¤”¥¥Z¥¸¦¦X¦´§0§”§Ü¨:¨Œ©©@©²ªªpªÎ««\«¶¬¬†¬Þ­&­˜­î®F®œ¯"¯z¯Ò°@°¼±¨±ú²&²€³³F³ª´´„µ<µ`µö¶¶®·(·P·p·”·ú¸¸t¸¶¹*¹d¹¤ººfºÒ»$»v»Ö¼¼B¼Ž¼æ½4½z½ô¾–¾â¿~¿ÌÀÀXÀ®Á Á„ÁöÂP²ÃÃ^úÄDÄÎÅTÅœÆ.ÆÎÇ*ÇtǰÈÈ`ÈÀÉÉtÉÚÊRËrÌ̲Í~Î4ÎþÏ–ÐLаÑRÑ‚Ò(ÒÈÓlÔÔ²ÕÕXÕ¦ÕøÖJÖ¤××\×®ØØNتØöÙnÙ®Ú ÚhÚÐÛ ÛjÛÖÜBܦÝ(ÞVÞÈßÚàîá\á¾â"âˆã(ã`ãˆã°ä"äJäzäªäòå8åhå˜ææ0æâçç>çxç¾è.è–èæééxé¶éîêJêÌë$ë’ëèì>ìŽìÞíTí íìî<îžîÐï0ï’ïîðpðÞñTñÄò8ò˜ó~óÞô6ô–ôìõ@õ”õòöFöšöî÷HøøjøÚù2ù†ùàú6úÌûbû¨ü ü˜ý ý þ<þ®ÿTÿ„ÿÊÿþ(nÆ Tœîbªð8tÎF‚Ð:f  D¶(^†èBj’Èþ & | Ê H ª à 0 – æ 6 n š  X Ô$–ê:ŠØ,†À>|h²\¬ú2f Ø<~Â\ÄøJ¸œ–l¾,’ô^ŠÆö2|æ"^šÖB’  \ ˜ Ô!!p!¸"""š"ô##`#Ò$>$ $Ð%˜%À&$&†&è'F'¤((°)R)Æ*2*Æ+8+ ,,ª--Œ-ú.d.Ð/>/Ú060Œ0â1"1R1’1è202†2à363”3ê4F4œ4ò565p5ª6>6Œ6æ7@7¤8<8l8Œ9N9è:¾;H;ö<ž=B=æ>º?^@@¦A A¢B8B~CpD"DîEÖFvFìG<GŒGÌHHHHœIBI‚IÂJJBJªKXKòL„LÞMžN6NÊOO–PP RRžSÊTTfT¾UU–UøV`VÂW0WªXXtYJYºZ®[[@[Â\"\P\œ\ü]f]Î^^\^À__”_ö`F`˜`üa`a´bbTb¦böcÚd.d¬e0eæf’g>gêh–i:iâjÔkblHlúmÞnTo<oÒp~qŒr s´tÆuTuÒvZvÞwdwêxnxòyzzzŠ{{„||„}}d~~X~®~ì²ð€.€|€Æè‚:‚r‚ª‚ìƒ2ƒjƒ¢ƒÚ„„´„ì…$…d…ʆ$†„†Þ‡<‡š‡êˆ$ˆ^ˆ¢ˆæ‰&‰l‰²ŠŠlŠ®‹‹z‹ÀŒŒlŒÌ*ŽŽ(ŽŠŽöJªrœ‘‘@‘¤’’ˆ’Â’ü“H“”””T”𔿕0•Ž•ì–J–„—ˆ˜x™™Äš`šô›„œ œ–* žž\žÒŸHŸ†ŸÐ 8 ²¡,¡Š¡þ¢6¢®£&£ž£þ¤„¥¥’¦¦ª§§R§Ü¨€¨ô©l©àªTªÈªü«p«ä¬t¬ö­z­þ®‚®ô¯\¯Î°h°ø±’²²’³&´´¬µ4µÌ¶¶Œ¶À··\·ª·ô¸B¸¸¹Z¹¨ºFº”ºâ»®¼8¼Æ½½N½n½ü¾n¾Ê¿P¿ÊÀÀˆÁÁ~ÁÄÂ<¸ÃÈÃÖÄNĤÅÅÖÆJƪÇ"ÇšÈÈ~ÈèÉPÉ”ÊÊžË.ËÄÌhÌþͨÎ>ÎàÏvÐ ÐXЦÐòÑ.ÑfÑ´ÒÒ:ÒˆÒØÓ&Ó|ÓÒÔÔnÔªÕÕTÕ´ÕðÖ¢Öö×2ׄ×ÖØJظÙ*ÙžÙöÚTÚ¬ÛÛœÛìÜJÜšÜêÝ:ÝŠÝêÞ2ÞxÞØß&ßžßþàæââ\âœâäã2ãzãÂä äˆå å’ææ ç(ç®è2èèîéJé¦êêXê¾ëëzëØììnìÖí2íˆíäî@î¢îøïXï¸ð<ðÀñ ñ¤òò”òÚó>ó¦ôô|õ8öŒ÷¢ø„øêùPùÜújûûœü8üœý(ý´þDþÐÿ\ÿè z ì F ž î H ¢ ú R ¤  v ä X Î : – ö †  ª : Ê \ Ü l ü Ž ò \ Æ D ” æ X À J ò t \ F Œ  – Ú & j ® Ú  L  | Ê  € Æ J Ô  Š  < r Ø 4 ˆ Ü 0 \ ì z  ¦ ð !^ !Ì "< "¬ # #ˆ #ö $f $’ $â %< %x %Æ &, &š &Þ 'R 'ª ( (n (Þ )" )d )Ò *< *ª +4 , ,’ -R . /$ /” 02 0Ú 1º 1þ 2® 3 3¸ 4  5~ 5ð 6` 6Î 78 8 8Ú 96 : :t ;@ ;¸ < <„ = =¦ > >: >~ >â ? ?j ?Ô @ @† @ð AZ AÆ B2 Bx C C` CÄ D( DÌ Ep Eö Fš GL G¢ Gø HN H¾ I. Iž J JZ J¦ Jò Kt K¼ L L` L² M MØ NŠ Nö OH O  OÞ P P† Pê QB Q  Qú RT R² S ST S² T Tj TÚ U. UŽ V V~ Vð Wb WÔ X XZ Xœ XÞ Y Yª Z$ Zh Z¬ [ [` [º \ \’ \ì ]F ]º ^n ^Ì _( _z `F a ax aº aú bL b‚ c& c„ cÞ dT d¦ dø eJ eò f” g: gØ h€ i i€ iÆ jL jÎ kŠ lF m mÎ nŒ oF oæ p¢ q^ qÒ rF r† s" sÒ tH tÒ uF uº v2 v¦ w wL x( y yì zª { {~ {ì |Z |Ä }2 }þ ~& ~” ^ €( €† D Ä ‚& ‚‚ ƒV ƒÞ „( „ž … …r …Ü †F †¨ ‡ ‡Z ‡¾ ˆB ˆ¬ ‰$ ‰d Š Šú ‹ˆ ‹ò Œ\ Œè r Ž Žš 6 Ì D È ‘6 ‘¤ ’ ’d ’Ò “ “F “´ ”$ ”‚ ”î •„ •ð –Î —ª ˜z ™ ™è š: › ›Œ œ` œê t ú ž‚ žþ ŸR Ÿ¦    |  Ô ¡$ ¡t ¢ ¢V ¢’ ¢è £< £Ê ¤x ¤Ì ¥ ¥h ¥È ¥ü ¦@ ¦„ ¦Ü §( §x §Ä ¨n © ©š ©î ªt ªú «~ ¬ ¬B ¬Ä ­B ­ü ®¶ ¯Œ °f °Î ±d ² ²” ³6 ³Ì ´\ ´ü µŠ µô ¶^ ¶È ·0 ·š ¸ ¸p ¸Ú ¹D ¹´ º ºŒ ºú »h »¬ »Ø ¼ ¼j ¼¶ ¼þ ½d ½Ö ¾ ¾r ¾ä ¿V ¿à ÀP À¾ Á8 Áü ˆ à À Ãä ÄH Ĭ Å Åp ÅÐ Æ4 Ƙ Æà ÇN Ǿ È Ȳ ÉJ ɤ Éü ʦ Ë\ Ëö ÌŒ Í" ͼ ÎV Îê Ï„ Ð Ð~ Ðæ Ñ, Ñ’ Ñì ÒJ Ò¼ Ó2 Ó  Ô Ôˆ Õ Õt Õæ ÖX ÖÌ ×F ×À Ø0 ؤ Ù Ù„ Ùô Úl ÚÈ Û$ Û€ Ü ܈ ÝB ݶ Þ. ÞÜ ßd ßì àp àô áÜ âf â ãj ä ä^ ä¾ åP åâ æ’ æ¸ æÞ çV çÆ çú è^ èæ éX éæ ê@ êÐ ë` ëì ìx í íˆ íþ ît îæ ïX ïÜ ð^ ðâ ñh ñì ò¬ óf ó² óþ ôD ô¸ õP õè ö~ ÷ ÷¦ ø øt øê ùZ ùÆ ú< ú¬ û û‚ ûê üd üâ ýN ý¾ þ. þ¤ þü ÿp ¢ 8 Ò j  À f  ¶ f Ü R ¸  „ ð Š ð Z ¾ & Ž ø ` J 0 ¤  |  P Þ ^ Ü \ Ü \ Ö V ¶  ˆ æ D ¤  T ®  ^ ´ ’ ê h ¾     b º ¤  š 4 Ð !l " "  #< #Ø $t % %† &t ' 'Œ ( (Œ ) )Ž *\ *à +R +ê ,n , -F -v -ú .p /0 /b /ò 0v 0Ø 1: 1Ä 2X 2Þ 3f 3ì 4r 4þ 5„ 6 6 7 7œ 8 8¬ 9: 9È :X :æ ;t ;ü <š =( =¦ >$ >„ >þ ?t @ @J @Ü AX A¬ B4 B¾ C8 C¶ DD D˜ E E€ Eê F@ F² G Gr Gª H Hv H® I In IÖ J JZ Jè K| L Lr M M¤ N< NÎ OP OÔ PR PÔ QX QÚ R^ SH S® TH TÈ U6 U¶ V6 V° W2 W® X0 X¬ Y, Y° Z< Z¸ [@ [Ä \0 \¦ ]† ^ ^¬ _. _® `, `¬ a, aª b& bn bè cj c¾ d> d¸ e2 e eÚ f$ fn f¸ g gL g– gþ h\ h¶ i i† iú jp jØ k kh k° kø l@ lˆ lÐ m mŒ mÔ n nÈ o ož oæ pd qD q’ qà r rr s s˜ t u uÔ vØ wÜ xÐ yH yÀ zp zè {` {à |` |à }V }Ú ~Z  † €* €Ô ¾ ‚ ‚N ‚Ü ƒ~ ƒÂ „t „è …\ † †¨ ‡< ‡r ‡Ä ˆb ˆ¨ ˆî ‰Ž ‰ü Šš ‹ ‹„ ‹ø Œ~ ŒÖ J ê Ž\ ŽÐ D ¸ * j â ‘V ‘Ê ’" ’– “ “€ ”, ”ž ”þ •` •À – –z –Ü —L —¬ ˜ ˜T ˜¶ ™ ™® šD šÚ ›p ›Ð œ0 œˆ œ´  t Ì žŽ žÖ Ÿˆ  B  ü ¡º ¢` £ £Ì ¤€ ¥> ¥ø ¦¦ §b ¨ ¨Ú ©– ªR « «Ê ¬„ ­( ­† ®$ ®Â ¯: ¯ê °N °È ±. ±â ²6 ² ²ä ³8 ³Œ ³ä ´ ´b ´¸ µ µd µ¼ ¶ ¶d ¶¨ · ·À ·ø ¸ ¸€ ¸ò ¹d ¹¬ ¹ô ºD ºÖ »" »’ ¼ ¼F ¼¸ ½N ½ú ¾¬ ¿Z ¿˜ ÀR Àš ÀÒ Á Á^ Á¢ Áê Â0 Âx ÂÀ à ÃN Ô ÃÞ Ä& Än Ķ Äü ÅD Ũ Åü Æ~ Ç ÇŽ È È’ É É‚ Éî ÊV ʼ Ë" ˈ Ëæ ÌD ̪ Í ÍŒ Î* Έ Îæ Ïè ÐF Ъ Ñ4 Ñž Ñü Òh ÒÖ ÓN Ó¼ Ô Ôt ÔÐ Õ, Õè Ö¨ ×, Ø ج Ù Ù¨ Ú” Úî ÛV ÛÜ Üš Üö ÝR ÝÌ ÞB ÞÊ ßB ߬ à à† á á” â ⪠ãB ãö ä  å å˜ æ æ” ç çŒ è. èz é éð êÜ ëd ëò ì€ ìò íb íÒ îB î² ïX ð ð¬ ñV ñü ò¨ óR ó¼ ô$ ôŒ õ õ˜ ö ö– öî ÷p ÷ò ø4 ø| øþ ù‚ ú( úÐ ûx ü üN üª ýP ýØ þJ þ¬ ÿ ÿp ÿö ž Ú 6 ’ ð ¢ ú P Ò P Ö Z Ú R Ð B º 6 ´ 8  @  6 ² 2 ¶ h ê œ  r â ž  ˜  D ¦  l î T ¶   > ž  ˆ ð Ú V Þ f  ` ä p  X †  ~ ö v ! !Š " "– # #ž $" $  % %° &* &¨ 'T 'ô („ (° )P * *Ð +˜ ,0 ,¸ -¦ .D .â /h /ú 0˜ 1* 1¼ 2N 2à 3< 3Î 4@ 4Ð 56 5ž 6 6t 6È 7 7l 7Ê 8. 8‚ 8æ 9F 9À : :| :Ü ; ;> ;„ ;à > >ž ? ?f ?Æ @& @Æ Af AÐ BB B² Bø CŒ D D¶ EJ EÞ Fr G G´ Hp I" IÖ JŽ KD Kþ Lh LÒ M& MŒ Mä N< N” Nê OB Oº P0 Pœ Q Qr QÞ RJ R¶ S SŠ Sð T^ Tè UT Uº V0 Vœ W W Xb Y Y€ Yð Z` ZÐ [@ [È \8 \ª ]* ]ª ]ð ^p ^ð _p _ð `p `ð ar b bt bÖ c cˆ cä d\ dä eh eì fp g g¼ hZ hÞ i^ iÚ jV jÔ k k¤ l. l¨ lÜ mX mú nx n¸ o6 o¨ pH pÄ qF qÀ r: r¸ s, sÌ tD tâ uV uþ v¢ wL wø xP xô yš z z~ zè {X {È |2 |ê }  ~X  Ð €\ €è t ‚ ‚Œ ƒ ƒp ƒÐ „2 „” „ö …z † †Š ‡* ‡Ê ˆÀ ‰D ‰È ŠN ŠÐ ‹  ŒT j È Ž Ž| ŽÜ < œ 2 Ä ‘X ‘ê ’| “ “® ”L ”¾ •0 •  – –l –Æ —B —Ž ˜ ˜² ˜Ú ™V ™Š š š. š® šØ ›¬ ›ö œp œè B  ž< ž¸ Ÿ6 Ÿ²  .  ª ¡& ¡¢ ¢ ¢Ð £€ £þ ¤z ¥ ¥ž ¥ê ¦p ¦¸ ¦è §j §¼ ¨ ¨Ä ©v ª& ªÎ «€ ¬ ¬° ­H ­à ®x ¯ ¯¨ ° °˜ °ì ±@ ±” ±è ²4 ²€ ²Ô ³& ³R ³¤ ´ ´n ´Ô µ8 µª ¶ ¶† ¶ø ·j ·Ü ¸H ¸º ¹( ¹^ ¹Ð ºB ºº »6 »² ¼. ¼¬ ½( ½¦ ¾$ ¾¢ ¿ ¿ž À À– Á Á’ Áô ÂV ¸ Ãj Ä ÄÆ Äæ Å ÅÊ Æp ÆÜ Ç” Ç´ È ȶ É, É´ ÉÔ Ê† Êî Ë  ÌP Í ÍL Íþ ζ ÏZ Ïz ÏÜ Ð~ О о Ñb Ñ‚ ÑÜ ÒV Ò~ Ó( ÓÔ Ô~ Õ* ÕÖ Ö| ×8 ×° Ø\ Ù Ù– ÚH Úö Û¤ ÜX Ý ݲ Þ Þ~ ß ß´ à( à á^ â( âî ã¸ ä‚ åH æ æª ç@ çØ èn é é0 éŒ ê0 êÄ ëZ ëð ìP ìî í† î îÖ ï” ð ðÌ ñˆ òT òÈ ó˜ ôP ôì õ† ö* öÐ ÷< ÷Þ øz øþ ù‚ ú úŠ û0 ûÔ üz ý ý þX þò ÿ– 8 Š Ü . ˜ ê < Ž à 2 Ò $ ˆ Ú . ‚ Ö * ~ Ò & z Î "    š  ‚ ö n Ü L º ( –  z ò l ò x  ¬ F ä €  ¼ R ô  (  \ ö , ^ æ n ¸  € æ L ²  ~  ’ ê v – ! !¢ ", "º #. #° $2 $® %" %  & &| &ø 'l 'Ü (x (è ) )` )Ð *@ *è + +„ +ú ,f ,Þ -f -Æ .0 .œ / /t /Þ 0D 0° 1 1T 1¾ 2* 2Œ 2ü 3h 3´ 4h 4Ü 5L 5À 6 6Ž 6¾ 72 7¨ 8 8X 8® 9 : :þ ;n <Ž = =† >$ >Ò ?T ?î @ @® AJ Aä B€ C C¶ Cæ D‚ E EÀ F^ Fð G‚ H Hœ I IÆ J4 J” Jú KZ K¾ L" Lt L M$ MÌ N0 N NÞ O< OÜ P6 PÀ QT Qè RZ RÔ S S€ Sö Td TÒ U@ U® V VŒ Vú Wh XP X¤ Y" Y Z ZŠ [ [z \, \Þ ]„ ^. ^Ô _€ `* `Ô a€ b. bl c c¼ d^ dâ ef eê fn fò gv h0 hž i" iÀ j& jŒ k k” kè lZ lŠ m m’ n n¬ nú o~ p pŒ pì qj r rx sb s¬ t$ tœ u už vZ w w| wô xT xª xÖ yJ y  yÞ z@ z˜ zÚ { {‚ {ð |h |¬ } }^ ~2 ~Ê € D ¤ ‚ ‚ä ƒ\ ƒ´ „ „d „ò …| † † ‡" ‡¬ ˆ< ˆÊ ‰Z ‰â Š: ŠÊ ‹X ‹ä ŒZ Œ’ Œæ L Š ð Ž2 Ž  0 ¶  h À ‘p ’ ’Î “8 “¤ ” ”r ”Ð •. •Œ –, –Ð —v ˜ ˜¸ ™Z ™Ð š^ šâ ›P ›ð œR œÈ ‚ ž žö Ÿ’  .  ¼ ¡N ¡Ü ¢n ¢è £R £Ê ¤4 ¤Î ¥F ¥Ú ¦– §* §Î ¨Š ©H ª ª¾ «~ «Â ¬" ¬f ¬Â ­ ­H ­Â ®B ®¬ ¯2 ¯‚ ¯ü °v °ð ±L ±  ²& ²  ³ ³¦ ´6 ´¾ µh ¶ ¶¤ ·6 ·² ¸* ¸¤ ¹ ¹– º ºŠ » »‚ »ô ¼T ¼Î ½J ½² ¾& ¾° ¿, ¿¦ Àž Á  Âè Ãt ÄN ÄÊ Åp Åú Ç Ç” È Ȧ É, ÉÀ ÊR ʸ ËT Ëð ̬ Íb Íþ ÎŒ Ï ϰ Ð< ÐÌ Ñ\ Ñè Òt Ó Ó² Ôf ÔÚ ÕN ÕÀ Ö0 Ö¤ × ׌ Ø> Øô Ù  Ú& Ú¬ Û2 Û¸ Ü> ÜÄ ÝH Ý´ Þ ÞŒ Þø ßd ßÐ à< àž á ဠáö ân â ã ã ä äx äî å^ åÔ æd æ¾ çT çà èp èü éŒ éÔ ê` êð ë| ë¼ ìH í íª íè îh îª ïR ïö ðž ðà ñˆ ò, òˆ ó óˆ ô ô® õR ö öX öØ ÷R ÷Ô øR øÎ ùN ùâ út û ûœ ü6 üœ ý ýh þ þÌ ÿ2 ÿ˜ ÿö \ ì Þ  š ” d  â F ª è Š 4 à ~ 6 Ð n  ¦ 4 ° , ¨ & –  v æ V F Ú n à P  0 ¤ 8 Æ V â n ô ´ t 4 ü À þ À ˆ F ² !p "0 "ð #¦ $` % %´ &F &Ü 'p (~ )„ *’ +, +l +ì ,h ,Ø -n -è .ž /` /ö 0€ 1 1l 1Ò 28 2ž 3 3j 4 4¼ 5Š 6T 7 7ô 8¼ 9Š :X ; ;è <œ =T > >h >Ð ?2 ?Ä @V @è Az B Bž C4 CÆ D\ Dò EŒ F( F GX HH I2 Iª J" Jœ K K’ L L° M` N NÀ O OÎ PL PÆ Q8 Q° R& Râ Sž TX TŒ UH V V¾ Wz Wæ Xj XÌ YJ Y‚ Z< Z€ [ [¢ \. \¾ ]N ]¦ ^r _@ ` `Ô a¢ bl bÔ cœ dh e eà f° g: gÈ hX hä il iø j„ k k– l0 l¶ m@ m² n4 nz o o’ pX pü qˆ r rº sP t tö uˆ v v¤ w0 wö xl y y’ zp { {È |t }" }Î ~| V ¢ ò €r €¾ ^ à ‚^ ‚Þ ƒ^ ƒÞ „^ „Þ … …P …Ø †l †ò ‡² ˆ. ˆÞ ‰Ž Šf ‹* ‹ö Œ¨ h Ž< ŽÆ N Ö ` ê ‘t ‘þ ’ˆ “ “¦ ”0 ”º •n –" –Ô —Ž ˜> ˜ð ™z š šŽ › ›¢ œ, œÊ d þ ž Ÿ( ŸÀ  X  ò ¡l ¡Ò ¢* ¢  £0 £’ £ú ¤` ¤Ø ¥* ¥’ ¥ö ¦h ¦æ §8 §Š §Ü ¨. ¨€ ¨Ò ©$ ©ˆ ©Ú ª ªb ª² ªô «Ê ¬L ¬¨ ­¨ ® ¯P °( °þ ±` ² ²Ú ³D ³¦ ´N µ µ¾ ¶| ·6 ·î ¸¤ ¹N º º@ ºì »œ ¼F ¼¬ ½\ ¾" ¾¼ ¿" ¿ˆ À2 ÀÄ Á6 Á‚ Â< Âú ú Ät Å2 Åò Æœ Ç Ǹ È` É É® ÊP Êð Ë’ Ì0 ÌÔ Íz Î Î^ ÎÄ Ï Ï® ÐT Ñ Ñè Ò° Ó‚ Ô@ Õ ÕÒ Ö  ×n ØT Ù4 Ùˆ ÙÆ Ú„ Û Û” Ü ܶ ÝP Ýî ÞŒ ß* ßÈ àh á â âè ãÆ ä¤ å‚ æb ç ç¤ èF èæ éÊ êh ê¦ ë. ëÆ ì` ìö íŠ î îž ïL ïú ðB ðò ñš òB ó ó ô ô  õ õä öä ÷ä ø¾ ù¾ ú˜ ût ür ýn þ. þî ÿ¸‚FØžn*òjâZÒZâ j ô €  – $ ¬ 4 ÂJØf¤Œ’zîbÜt°Jæ„"¼PèzBÔpn¶ > È!R!Ü"¢#h$.$ò%¸&~'D( (â)¼*˜+<+Ü,|--à.”/J/þ0~0ø1t1ô2Œ3$3¼4z55¶6V6ö7–868ö9¶:l;,;ì<¬=`>>¢?F?ì@ŒA>AðBBÊC|D@DúEÆFŠGLHH I2IÀJ KbL"LæMªNhO$OäP¤Q`RRÞS SÔTT–U$U¾VhWW¼XdYY¶Zf[[®\\] ]¶^b__®`T`ôab$b°cFcôd¢eNe°ffpfÎg¶h(hÈi0iüjvjÒk0kÐkðlœmLmônšo*oºpZpúq˜r8rÚspsötÂu€vzvøwdxx˜y.yÄz˜{8{Ü|‚}~Z~ð†€€¤:Ò‚nƒƒ°„`……´†\†Ø‡ŽˆP‰ ‰ÆŠ~‹8‹úŒ¼ŒôŽ@Žð‘^’L“2””p•:–&——ò˜¦™–š šÐ›œœBœú°ždŸŸÒ ²¡‚¢4¢â£Š¤>¤Ì¥V¥ä¦Œ§:§ì¨|© ©œª4ªÎ«^«î¬ˆ­­Ž® ®Š¯¯‚°°¨± ±œ²²”³³„´´~´úµtµð¶l·*·ä¸œ¹4¹Ìºb»T»°¼¼l½½´¾6¾æ¿ÈÀŒÁÁªÂ6ÂÂÃHÄ@ÅŶÆ"ÆŒÆöÇ`ǺÇþÈfÈ®ÉÉÊÊxË˰ÌH̪Í ÍNÍêÎ>Î’ÎèÏ:Ï’ÏäÐ6ЊÐÜÑ0ÑâÒ”Ó ÔˆÕpÖX×.ØØÚÙvÙÔÚÎÛ”ÜTÝÞJß~à´ájâ ã ãôääåÔæ¼ç¦èdéé¼êhë&ëäìíNî î~ï<ïúðDñ.òòþóˆôxõdöD÷2øøæù²ú|ûHüüâý¬þ„ÿ.øœ†<ŒübàF¢ü,`è,xÄ^Ö < ˆ Ì h ´ . z Î  d ¼ D  ðÈl¸6ÂDð~8PœÔ6˜ Œ N–ðNª fvÚ0Ö"”ÞXÚ J À!!l!Ö"H"¼#P#®$¢%p&&Î'j((®)N**´+X+â,d-"..Š/R04122Ô3z4F5 67.8T99â:²;î<à=ò>N>®??p?Ê@*@˜@úAlAìBrB²C4CxCèD2D|DðEˆFF¬G0G¤H@HÜIVI¢IòJRJ²KK¤LLhL¾M8MºNNŠNÞOFOºP@P”QQ‚QòRhRæSRTT|UUxUðVjVøW\WúX°Y.Y†YâZtZÖ[8[š[ü\\\¾] ]‚^^J^Â__l_À``l` `Úaa`a²aþbhbÐcXcÂd dˆdÈe(eÊftfügvhhŠiiŽj j˜k2k²l.lÆm mfmònZnÎoopoîpÆqbrps^sätptêu<u¦vv|væwPw´wðxbxòy’zDzÐ{2{®|,|¦}}œ~4~ÎTþ€®Lƒ ƒ¶„@……ª†R‡D‡ðˆ ‰2‰Š‰ìŠt‹ªŒœ<ŽޤR,𑬒x“"”••Ì–š— —ä˜ˆ˜ô™¤šNšî›8›‚›Ìœœ`œª –àž*žlž¸ŸŸZ  Ô¡V¢¢Î£†£ê¤n¤ö¦¦ä§Œ¨H© ©Êªî«¢­®,®Ø°.± ²R³€³Ö´ ´€´¼µ&µà¶D¶¶è·¤¸L¹¹x¹ðºFºœ»»†¼2¼ª¼ú½j½æ¾t¿¿šÀÀ^À¾Á$ÁºÂDÂôÃ’ÃþÄdÄÀÅ"ÅvÅêÆŽÇ,ǪÈBÈÀÉ0ɘÉúÊPʰËBËÊÌDÌÎÍ ͰÎZÎäψÏäÐZÐàÑÎÒzÓ ÓœÔ:Ô˜ÔöÕDÕÜÖTÖÐ×tØ4ØÒÙ˜ÙúÚxÛÛØÜzܼÝ*ݨÞVßfà>á áèâ ã„äå`æŠæâç*ç‚çÈèfèôé¤êXêàë¦ìœííPí¨îî–îòïfððRðšñ ñhòòxó&óüô„ôÔõhõÌö*ö˜öÜ÷F÷ ÷Öøø|ùùxù¶úVúäûNûÊü‚ýýªþþ¸ÿ:ÿÀ|",쮼ú8¨V,¾† 0 ,  |  Œ R.ÌLîЦâÀdèàŽn`D2Þ"`ÂLü¦Ð  ‚ î!N!Œ!ì"v"Ü#v#ä$€%%â&Z&Ø'|'ø(x(ö)–**˜++\,,Ô./0 0¤1.1Ö2~323¼4`5,5Þ6t77R7®88>8°8ü9„9Ú:0:†:â;V;¸<.= =h=æ>R??Ø@p@êAlAâB„CdDHDÒEzF\GG–HBHòJ4J–KhKœL L®MJMäN˜OTPhPôQÀR†S†T<UUÌVèWøX0YYê[[[Þ\P\Ð]b^^ì_‚`0`Êa*aœaôbTb´ccfc¶d dVd¦dòe^eØfTfÒgRgÊhJhÌi*ižiôjdjÄk"k€kÔl*l†lâmBmšnn„nòonoÈp(p¤pæqq°rJr¬sHsètHtºuZuÜvZväwxwäxxyydyÄzž{z|(|Ú}â~@~Ö,Üæ‚žƒ^„††ê‡V‡ÞˆDˆˆˆè‰x‰îŠn‹‹ÐŒn2îŽt$ü‘æ’v“&“~”Z”²•H•Ò–H–ž—Ì™™þš–›&›¼œ˜(ØžZŸŸ¶ Z¡¡¤¡ê¢–£’¤¤ò¥Š¦r§¨$¨Ô©’ª^ªú«’¬"¬ä­ ­–­ö® ¯P°:°±±t±Ü²€²ö³r´^´öµÖ¶¦·z·®¸¸h¸ ¸à¹6¹j¹²º0ºšºâ»»|»ê¼V¼Ü½h½À¾¾F¾†¾ø¿v¿ÈÀÀnÀ²ÀúÁ>Á~ÂÂF†ÂðÃnÄBÄžÅÅNÅÊÆ ÆNÆŽÆàǨÈrÉ’Ê.ʶË`ÌÌøͲÎhÏÏØФÑ*ÒÒÒÓ¸ÔhÕÕÆÖ4Ö¸×פ×ðØ8ØÖÙDÙäÚPÚøÛ–Ü,Ü¢Ý2ݾÞhßß|ßæà~á"á¢ââjã,ã äläøåâæ€ç@èèæé¬êpë ë´ì†íí¼î˜ï|ïðð¢ñÈò°óvôôºõ\ö"öÂ÷døøÞù‚ú ú¦ûVüüîý þˆÿ ÿòF:²rRÀVh   þ ö î Øb|–Æ îÒ rŒP^œþ^¾€¸ðVž^è:Þ |!B!°"¦##È$6$¤%%´&€''î(°))¬)ø*”*Ò+L+ä,",´-8-º.L.è/¸0Ž1^1œ2®33f3æ4X4¢4ò5J5 5ø6j6î7´8@8Š99X9Ä:R:ä<<,<”<ô=\=¾=ø>D??P?”?Þ@Z@ØAAbAÜB„CC¢CúDFDÀE:EÊFLG GòHtII¸J†K(KÂLšMhMÎNNNöO°P P¸Q>QÂR`S S¬TTbTÀUU|V&VzVÌWjXXfYˆZ8Zî[Š\~]@]ú^:^–__¤`.`¬a|bZcHcÐd’dÔeexf:ffúg@g‚gæh(h®iiTi€i¾jjZj¤jîk8k‚kàl mRmÐnznøorp6pÖqq\q¾r"rŒs0t tèvwx@y&yªz˜{|| |š}}\}¶~@~ðxè€8 ¨‚2ƒƒÐ„Œ„ò…^†<†t†ü‡„ˆˆ|ˆ¬‰”‰ÒŠ0Šþ‹NŒ„LŽŽ`.VÜ,˜Âì‘‘<‘f‘î’†’°’Ú“–“À“æ” ”t”š”Ä••ª–D—4—À˜š™|šš¼›bœœÚœäžžjž¼Ÿ<Ÿ¤Ÿò $ €¡¡²¢¢œ¢þ£^£æ¤`¤â¥d¦D§ §x§¶¨@¨ª©©¾ªÚ«Æ¬V¬ž¬ò­l­–®®x®ê¯L¯°° °Â±|±ò³ ´P´Øµ&¶ ··´¸&¸l¸¶¸à¹„º(ºØ»ˆ»È¼¼²½½‚¾¾Î¿ ¿ÐÀÈÁ®”ÃzÄ`ĺÅÅjÆÆrÆÞÇfÇÔÈ ÉÈÊŽË&Ë˾ËìÌ8ÌÒÍlÍÖÎ,ÎÊÏlÐоÑNÑØÒ²Ó<ÓêÔÚÕ ÕŒÕâÖNÖÀ× ×fתØBØÄÙÙ|ÙÚÚ¾Û€ÜLÜÄÝœÞxßßÄà àòá~â"ããâälåæç0çöèÞébê>êüëvëºì.ì¢í,í¾îðïÌð²ñ”òDòÀó<ó¸ô&ô–õõèö0ö~öÌ÷÷˜÷âø,ø¨ù$ù¶úšûJûòüšýhþFþÌÿ”ÿüNÊ\¾x¢Ì`¶0¬XRØb’âÐ ˜ x ¨ Ø  8 î h Š þ „ öäRŽFÂ~äDÊ" ‚Þ´Š~JÜ hXRäN|œün°  ¶!P!Ì"D"Þ#È$4$t$Ì%\%¬%ü&r&ô'T'¬(.(¼)J)ê*°+>+â,D,°--p.H.Â/V/¶0‚1B2d3V3à4d4ø66Š787Ú868’8ê9|:;;è==n=ô>f??œ@@ÐA"A–AöB|C0CöDE"EŒF@F¾G‚H:HÂIžJ(JÌKjL6MMÒN„O(OàP¶Q’RXS SÀTU(VVôWÒXÊY‚Zh[˜[Ú\\œ]]Ð^Ž_^``’`Þa‚b^c8cŠdHdÒeŠfFfæghgðhVhäiÈj¬kŽkælÌm2mÐmønLn¶nüoBoˆoÎpppp®pîq.qnqšqÆr4ržrÞs(sXsŒsÀttht®uuJu¨vvDv¶wwzwÖxFxÌz{2{œ{î|"|T|||À}}V}¨~~¸N€*€Î–¾‚‚¤ƒ˜ƒâ„„V„ „ê…V…œ†N‡8‡n‡žˆˆ˜ˆú‰X‰¬ŠŠˆ‹‹V‹˜ŒŒ¼f¾Ž ŽZŽ„4f8¸‘j‘Ö’€““~“æ”V”À•b•Ú––®——t—Ƙ˜l™™X™ˆ™ðš„šò›*›j›öœl–ž žjžÆŸ¤ @¡¡Ö¢>¢ü£‚£Ô¤,¥¦¦þ§°¨’©"©X©¼ªHªö«š¬¬¢­€­ø®`®Ü¯X¯ª¯ü°R°¢±T±ò²”³8³È´˜µ.¶¶ž·8¸(¸Ö¹‚ºXºà»¶»ê½½š¾¬ÀÀ¢Á4ÂÂxÃZÃÖÄzÄèŰÆFÆÌÇ ÇvǼÈ0È„ÉÉÒÊ@Ê„ÊÈË,ËØÌHÌÚÍ ÎŒÎêÐfÑÑšÒÒÌÓØÔ6ÔÆÕVÖÖ®×4×þؾÙ„ÚZÛÜ ÝݦßߎßêànàÄádáÌáøâXâæãbãîäpå*æ.ç¤è ètéé”êê¢ë"ë ìTì„í&í¬î`ïZð8ðæñlñàòžóDóÚôRôÄôüõ|õÐöDö´÷F÷’÷ÂøDøzø®ù¤úŒû\ûÀüVüÈý:þþ6þšÿÿrÿìf–’ ¼x È|2ðŽ"  Ä T  v ^ þ . ^ ®¸bÎ:Üzvø¼\¬hþŒV,œÜRÂ0tútö¸Î¼ ¨!Œ"b#j$ˆ%¨&6&n' '²(¬)º**D*Ä+ˆ,¨-R-Ô.6.È/*/Œ/Ò0\0¤1D2L2”2Ü3X3Ü4 4ž4Ú55b5ž5Ö66V6è7.8L9l:ˆ:Ê;D;¨<$<¨==–>>`??Ð@b@øAäBÄC¢D²E E†F.F€FÔGGVG¦HHVIfI¾JbKKÚLpM\MºN N¦O$O¼PdPþQ¨QþR.RbR®RäS\SœTU.UvVV¶VþW¢X.X¬Y@YØZ.[\$\°]–^^¬_@_ð`Øa~b^c*cêd†ereÚf0fÆg`gühLi iŠjj¢kTkâlŒmmvn"nnðoZožp^qqÖr rhr¼rìsVs¸t0thuDv2w@x>x”xèyDz6{.{‚{ö|&|p|º} }˜~(~¶zà€F€â|‚‚Š‚æƒÈ„„”… …„…ú†~†ò‡Œˆ,ˆ~‰nŠb‹‹°„öŽl0ô¶‘~’R’ΓL“È”2” ••À––´—X—ü˜L˜œ™|šX›2›ðœ€ŽîžLž®ŸR   Ø¡N¡ê¢þ£¶¤>¤ü¥À¦¼§Ì©D©pªªŒ««Ž¬D¬È­J­š­Ê­ú®L®œ®È¯¯ °`°Ü±²²H²Ì³¤´z´üµº¶¼·R·¼¸~¹H¹´ºº²»`¼¼r¼æ½¦¾n¿¿°ÀTÀøÁœÂ@ÂÞÃÌĜłÆXÇLǨÈdÉÉìÊDʨËË|ËôÌN̬Í^ÍØÎxÏϼÐZÑÑpÑúÒàÓšÔ¼ÕVÖX×`Ø^ÙŒÚÀÛ4Û´ÜpÜœÝÞ,Þ„ß`à>àðápáðâLâÔã¢ä:äò妿Zç çºènéé€êJëëÞì¦í"î2ïRðXð®ñÜòPòØó\óîônôÊõ\õ®ööº÷6÷¾øøØùjú`ûXüý&þbþ þÞÿ¢ œ°4Ò Tîœ.Ö œ  ¢ P ä x  ‚š&̤’–䞀ö´ŽÈ öÆÞ²Z$|ô Ž!(!ž!â"˜#€$%.%Ž&&j&à'D'Ì(p(Þ)º*ª+,,N,Ä-8-´.0.¤/T/Ø0P0â1@1Ô2,2®3Â4"4z55†5î6ž7N7þ8L8š9F::”;F;Î<†==ú>F>Ä?.?”@hA@B8ClC²D2D²E4E²F0FFòGtGôH”I6I~J€KrL2LôMPN,O OÐPPnPúQžR€SZT$T´U¤V0VºW:WŽX$X¤YYÒYþZ4ZŽ[[Î\L\Ê]Ž^|__ü`‚`äaaNaŒaÌb bÌc~deœfäg:gjgâhFhäi~jjxjükÆmm–múnÖo<o¢p:pÒq¢rzssêtÊu¦v"v ww”xxˆyyÒz–{d|.}}Ö~tœ€$€®8Ú‚|ƒƒÀ„b……¤†J†ì‡¢ˆ`‰‰ä‹ŒZŒè6øŽºÌÒ‘Ú’¢“R”4”ˆ”Ø•*•z•È–:–Ž–è—>—Ú˜z™™´šFšÐ›\›æœJœÚrôž˜Ÿ$Ÿ´ ª¡:¡´¢Š£J¤¤–¥P¥ò¦ä§P§Š¨R© ©ÀªŠªö«|¬¬Š¬î­ˆ­ú®L¯¯’°&°º±P²r³’³îµ¶.·L¸¸ê¹Äºv»»º¼b½l½Î¾$¾®¿ŒÀ`ÁFŠÃÞÄÄŒÅÅ|ÅüƆÆôÇHÇèÈ¢ÉXÊDÊæË®ÌpÍ~Î6ÏÏþÑ2ÒRÒöÓxÓêÔjÔ¾Õ&Õ„ÖÖ˜××>Ø&ØðÙ®ÚPÛÛÆÜvÝ&ÝÖÞêß²ààVá8ââêãtä.åæ:æÂçÊèÊéÌê¾ë&ììÖíJíºîRîèï|ððxðÜñŒòxóhóÐô6ôœõfö0ö÷÷šøø°ù2ùÚúÀû üxýTþ.ÿÿà>ÂFÌL’®¾pÐ0Ì Ü † ø ª ˆ ö d Ä6¢¼ ,Ö‚4òbÒ@”àBŽ&€Ü2¦PªøF”JÚ^Ĩ¤.´  æ!þ"ä#Ü$(%V%¨&$&Ò'„((ä)j)ô*Â+’,`-2. .Ü/6//ü0Œ11ª242Ä2ü3R3¢44¢5(5¬686È7P88ä9®:x;D;â<|==Œ>\>ü?¤@L@ÌAHA¼AüB¦C6CâD^DØEŠF4FâGbGÌHHhH IIVIœJKKtL LÀM`NNfO@O‚OÜP4PPÊQQzR R¤SnT8T UUfU–UüVbV¤W WŽX$XÌYY\YòZ’[4[Ö\x]]ª^^¤_0_¼`L`Þajb:c cÚdrdèe eÌf\fìg|h h˜i&i´j>jvk kZk¨kölDl’mˆnlooÐp‚q4qÆr^rðsPttÒu”vÖwºxbyyÈz({{°|@|œ}}Z}¶~~n~Î.ò€”6®‚‚d‚胎ƒò„8„°…(… ††Š‡‡|‡ôˆ¤‰‰üŠpŠÈ‹ ‹t‹ÈŒŒxŒØ8Ž"Žú¨^‘„’Ê“ ”L••X•¢•º•Ü– –T–€–¶–ø—^—®˜˜p™™‚šš‚šð›ˆ›èœÀpž$žšŸŸ‚Ÿð „¡¢££p¤|¤”¤æ¥4¥¦¥ö¦`§§¢¨:¨R¨’¨Ê©©l©´ªª°««8«€«ð¬~¬ª­­n­Æ®$®’®Ü¯X¯Ì°J°æ±V±Â² ²Œ³³‚´‚µPµ€¶*¶Ò¶ô·:·|·¾¸*¸¸ø¹p¹æº˜ºü»(»@»|»à¼¼n¼¢½½R½Ì¾¾Š¿¿ŒÀ$À€ÀÈÁvœÃ(ÄÄÆÅBÅÀƸÇ<ÈÈHÉPÉ–Ê&ÊüËXÌÍ2ÍŽκÏòÐþÑ^ÑâÒ†ÓÓ¸Ô*Ô^ÕÕ¾Ö(Ö|Öâ×4רØ&ÙÙÀÚ¾Û"ÛlÛÒÜÜ”ÝVÝvÝÆÞ@ÞŽÞìß¾ßÞàNà°áxâ`â”ã&ã¤ãää(å4å|åÈæNæâçvçÂè&è„é†êtëÚì4ìäí6íÖî îVî¢ï2ïÚðdð¨ñRñ¤òZòàó¦ôpôÂõ&õŠööböšöö÷V÷®÷æøjùùXùœùàú\ú úÔûXû”ûìüŠýýbý¶ýúþLþ¼ÿ8ÿš ŠÜ~*ðÆ”’ö–R  ” ¬ Ö :   ú  r ø " ’ øpøbò”ØVÆ\Ä(Ø@bþX¸$~Ø*š:âpä\Ò@Ú<ŠörÞx l þ!r!ä"P"~# #$T%%Ž&R'd'â(š))’)º*€++è,p-N-ž.J. /2/¾0˜1ž2Æ323Ö4@4 5z6 7º9:F:¤<<><ˆ<Ø=B=”=ö>X> ??¬@$@”AAzBB¬CC¦DvDèEtF>FÄG8GÔH8IIšJ4JÞLŽLàMXMÀN"NœOJOªPrPðQªQîRŠS>SrSòTŽUTUÐVVdVÆW~X*XÈY¤ZFZ”[V[Ê[ú\ž]B]È^l^°^ì_š_Ê`L`ÞaŠbŠc\dFeeˆfTfêg$h&i<ili°iîj>j kkZkÀllm m˜n:nºo€p0pÔqÊrþtFt–u4v v^vÀw*w~wìxxŒxàyyvzzvzì{‚||j}$}ž~~f š€€”*È‚*‚惆„4„ì…L…¸…ð†f‡0‡¢ˆˆXˆü‰ŒŠŠ–‹|ŒŒpŒòÎŽ:Ž Tªòž‘,‘Þ’°“b”f•º–Η4—˜˜Œ™jšn››êžž¬žüŸXŸ , |¡R¢0¢š£p¤¤>¤’¤Ø¥,¥€¥ú¦f¦¢¦ô§§Ü¨V¨¼©T©¤©äªdªÒ«4«`«Ú¬x¬ò­‚­è®.®Â¯\°°Ä±L±Æ²X³³’´,´²µRµø¶´·°¸>¹¹¬º*º¼»¬¼†½@½ò¾z¿ ¿æÀ”ÁdÂ<ÃÄÄÔÅ‚Æ`ÇÇÀÈlɂʂËnÌJÌr̾ÍÍ®ÎTÎzÎòÏzÐÐôѰÑèÒ„Ó4ÓlÓ¶ÔÔ\ÔÔÕBÕŠÕàÖ:Ö|ÖÂ× ×XתØØfØòÙxÙúÚšÛjÛÜÜxÝÝØÞ†ߌà˜ášáÊâ0â„âÎãDãØä(ätäÆäöåÌæ0æšçç¨è"èœéRéúê˜ë&ìì†ìÒí^îî°îÚï’ð&ññÔòfó@óêôÆõxör÷ø¢ùÆú¦ûüPý"ý”þªÿº¾*bÖ0œÄöpÂf†ÆXîŠðT F & V ® î j À & Z 2”ÚHªèXÀ pþ8Šzî„êjìŽHºj„<Ú\ƈ„ö€F  ¢!`!ø"Š#L$@%%Ô&š'n(L)$)î*¾+^, ,Ì-‚.l//ì0Æ1î2’3V44¸5Ì6h789.::;p<–=Ê> >L>Ž>â?$?l?Æ?þ@`@¾@ÖAADA”BB¬CCäD|DþEÎEúF8F°G0GøHH¨IšIÒJ0J‚JàKvLLÖMLNLNæOVOÌPJP°QQnQÔR(R€RøSšSàTzTÞU`UÞV<VþWXW¾XX†XÖYTYöZÂ[[¼\2\°]`]’^&__X_À``ŒabbbZbÄcc dd¬eTe¦fVg gÒh0hòjj„k8llþm¾nbnÔo,p(pÀq˜r@stXuv.vtvôw`xHy$yþzÆ{ {b{Ä|H|Ú}Æ~V \€ö‚¾ƒ¤„d…p†b‡¦‡¾‡Þˆˆn‰&‰öŠØ‹v‹ÈŒŒtŒ®ŒúpŽŽjŽž~æŽà‘D‘à’V’î“z“ü”t”ä•~––R——€—ê˜b˜Ü™Šš’›`›¼œfœÖ`žž²Ÿp @ ’¡v¡è¢ £`£Ò¤v¥T¥Œ¦ ¦Š¦ü§’¨"¨p©"© ª,ªÚ«€¬¬Š­R­ö®T®ò¯n°v±\²V²¤³Ò´pµø··Þ¹º0»*¼X½Œ¾Š¿tÀHÀîÂZÃÆÄ0ÄÖÅ8ŤÆjÆÚÇhÇôÈÂɆÊRÊöËäÌšÍÍB͸ÎÎÞÏ Ï„ÏÂÐ6ѦÑÚÒ*ÒhÒÖÓLÓ¾Ô*ÔŒÕÕŽÖ Öº×nØ*Ù@ÙüÚfÚÚÛVÛÌÜÜÜHܦÜèÝ@ݲÞ:ÞjÞ´ßßßêà`àäá.áŠâ2âÜãXä äÊ儿æ²çBè èÎéHê6êÆëÈëúìbìÞí^í¸íîîPîÆïjð&ð ñ.ñðòDòšòðóHóÀôô„ô¸ôþõTõšöö`öž÷"÷p÷àø&øŠøÜù*ù¶úˆúÄûŽüü¬ý.ý„ýÀþ6þœÿ$ÿrÿÎ.¦~Lþ´`¦p€ròV² 0 ”  z  Ž  F œ > ÆTÀ4ô”NÀd:´ 8ŒD îæz$®|&¼  ´!"`"Ð#Ê$% &H'2(4(Ü)8)´*F*Î+h+æ,h,Ò-¶.d/>/Ê0r1n2|3"44È5T5Œ6n78Z9>::;$;€<‚=,=ì>È?Œ@jA(BPC<D:EZFlG¶I4JÖKæL¸M0N&OšOÊPPzQQnQòR¾S˜T>UUtUÒVfVèWXWúXŠYY®ZPZÆ\B\¢]8^|^®_x_ø``üaÌbtcDcÖdteeøf~fòggFgrgÞh0hÂiiviæjnjÈk8kÚlXlÊmm˜nn¼nÜo.o`p,pdp¸qqxqØr rRrÂs0sds¨t(tXtÆu2u¬vvjvÄw wrx:x”yy¢z"zÌ{H{z||‚|¼}^}º~~¦FÊ€b€Ò"¸‚vƒ*ƒŠƒØ„…h†T†˜†þ‡ˆ†‰‰N‰Øж‹ŽŒHþŽš`¤\‘‘Ä’¤“B“ž”4”¦•\––²—Š˜r™<™ š’››|›´œXœâ>˜žNŸLŸð ì¡J¡â¢X¢Ö£`£¢£è¤0¤\¥6¥Þ¦X¦È§Ž¨"¨Ê©ÚªVªÄ«¤«â¬­2­Ž®2¯~°±²(²Ú³&´´|´Àµ<¶ ·J¸.¹>¹Üº„»ž¼Ø½V¾4¾ð¿øÀÒÁÂÂJÃ6ÄÅÅRÆhÇ(ÇÆÈÌÉöʌ˜ÌlÍÍÖδÏ|ЬÑæÒ¸Ó¨Ô.ÕJÖžØLÙðÛÜbÞ4ÞÞ¨ÞÐß0ßbß´ààhàÈáFáÞâ@âÎã.ãÐä€å.å€åôæ¤çèè&èÄéé¬ê‚ëRìHìöíJí¬î.îžîÞïÐñòò˜ó€óðõõÈöÜørúBú”ûhüpý~ýðþÿN²î,ðL¾``¶Hð¬öž¼ œ ú J j Š  . jÌDÄtÂ4þ°¶ú0è(¬Ì.ˆ ¸ÚNê\®8¨2¾¨ x!P"’#,$¦%¨&Â'¶(.(š)* *~+8+„+Þ,Z,æ-d-¬.$. /2/Ð0r11b22¬45N6$6–77¢8h8Ä8ð9 9r9Þ:8:°;.;˜<<œ<è=j=ø>D>º??|?ì@*@Œ@òA,A B$BfBžBôCJCÄDJDèEvFF~FøGÀHNHÔIjIìJJJÚKlLLˆMM²N2N²OJPP®QQ–R,R¨S.SæT”UVUôVfVÒW@WâXžYˆZZâ[t\f]*]â^r_ _¸`\aaÊb¢c†d†e\f6fºg¢hŒiNj(j¸k¦lŒm0nopp¶qÒrXrÆsŠttÊuèvÔw¢xVxøyÂz®{v|v}L~"8€2ì‚Ѓ¬„|…d†B† ‡¸ˆÄ‰ðŠº‹î|pðpÊ‘‘t‘ì’h’ö“‚”8”~”À•"•†•æ––æ—H—ä˜\™™Èšä›F›ªœVœâ  žFžâŸLŸö ¶¡6¡¢R¢È¢ô£T¤V¥4¥þ¦Ð§N¨8¨˜¨þ©F©„ªªT««š¬ ¬®­"­Ü®:®ê¯’¯¾° ±&±´±þ²H²€³¦´Œ¶·X¸€¹P¹¸º »»T¼¼Î½D½ì¾Ì¿ÚÀ2À~ÁÁbÁðÂÊÃ$üÄzÅ(ÅôÆ.ÆŽÆêÇ4ÇxÇÈÈ$ÈŠÈèÉbɤÉâÊLÊÐË„ËöÌb̪Í ÍrÍÌÎÎrÎòψÏêÐbÐØÑ@ÑäÒRÒàÓ¦ÔTÔüÕXÖ@×פØ`Ù,ÙèÚVÛ8Ü(ÜÐÝÝêÞÌßxà8á`áÆââ|âæãNãˆãÜä.ä˜äðåtåÌæ>æ”æÊçHç¸çüè¬é é„éöêDê¦êôëœì*ì|ìÂíí²îîžï$ï˜ð,ðÌñbòò^òÒóóšô.ô¤ôìõfõðö@öœ÷.÷–øøŠù&ùªúú¼ûûÊüÐý(ý¦þ@þ‚ÿÿ€ÿêªl êp,¬@ |žD¾ > ¾ <   ² z â È’š†,ÂPÒ,ЬJæœ<F ÎÒdÚ4ОV " ˆ!6!ì"¢#R$$¬$Ô%´&:&f&È'^((Ø)|*X+6,,¼-€.@.ø/ 0\1V1ú2d2Ä3–4|5Š6b6Þ7~8X99ò:Ä;Š<€=¾>°?Ü@ÈB8C\DèEÎF¶GžHŠI®JšK®L¸M†O"PPQœRÐSøU<UúVšVôW|XRXˆXÈYYŒZ8Zê\\H\ð]\]ö^0_\_Ð`Pa:bbbðcbdŠeeÜf¼g.g®hi<i¾jÞknl mœnn4oHp4q4qœr@rzssPs¼tHtÒu0u²v‚vÚw0wrwàxRxšxØy\yÀzz®{.{è|:|°}Ê~.~ˆ~ì €D€ð\‚2‚ЃȄ`…T†R‡dˆì‰T‰¤ŠŠº‹ŒhŽD\üpì‘x’’¢“4“ú”Œ•<•ð–¢——v—²˜˜d˜Æ™4™üš\šÔ›@œ:œ€œâ°ž0ž„Ÿ"ŸÔ v è¡b¡Ä¢F¢¢£Z£ª¤¤Œ¤ø¥„¥è¦†§2§Æ¨¸©ªjªâ«’¬V¬æ­º®h®ø¯p°X±&²L³^´r´ºµ<¶&¶„·d·À¸H¹¹n¹¶¹öº¼»r¼<¼Ü½½È¾Œ¿hÀŒÁ†ÁòÂNžÂüÃTØÃÈÄÄBÄ’ÅÅvÅØÆ@ÆšÇÇ~ÇîÈ2ÈzÉÉRÉÄÊ:ʪËËŒËöÌjÌÔÍ0Í`͸ÍöÎÖÏ:ÏšÏâÐDЮÑ"ÑŽÑîÒnÒ¨Ó(Ó¾Ô6ÔˆÔÔÕ,ÕzÕ¸Ö:Öœ××2ׂ×ÜØØNØÀÙ0ÙjÚÚhÚäÛLÛÜ(ÜÝÝ^ݶÞVÞÈß6ß~àà’á$á áöâ&â®ãã˜ääfå åråêæ0æŠæîç@ç¨è8è’èÆé0éîêrëëÆìLìÂííZíèîpî´ï<ïÀð,ñ ñŽòò|ó óˆô2ôšôôõrõìöˆ÷&÷èøbùùnùþú€úÜû<û~ûÒü&ü†üÄý*ýŽþþlþðÿ†²:ÄBà”ÚTÎhFª2xª & š . ˆ ä x 6 ¬ h æ*\þšò†ö€ ´tÆœ0n ¬D®ÆtæR¾"š\  œ!^!ä"€#,#j#î$n%%œ&*&ª''º(V(Ø)0)¦*D*Ä+„+î,\,Î-n-ò.F//¨0H0ð1N1¼262¨3.3‚44l56@6¬7N88 9H9Ò:j;H;Ô<ª=D>>”>Ú?¾@œ@îA„B<BÀCŽD"EE|EôFÄGGàHTII®JJJüKšKØLšM„NLOHP&P´Q¶RxS0SòTNUXUØV–W–WüXÖYlZ@Zü[¢\6\¦\ü]Î^|_8_Ž``øa¸bRc cÂdäeºf¤gŒhBhìi^iÎj0jük–llÒm¾n–o4oºpfqDqðr¬sTtt¦u’vVw"wðx¶y*yÊz’{F{ú|Ð}¤~Dœ€Œ^‚0‚²ƒj„b……¨†^‡tˆ^‰@ŠЦ‹¶Œ’H¾ŽDŽÎHü¸‘l‘æ’Ž“X””œ•,––Η昊™ ™þš¨›v›¾œÆž|ŸBŸ¼ r¡d¢*¢´£ª¤~¥B¦¦²§r§þ©ª<«.«ò¬Ø­œ®”¯Ð°ª±¨²@²ì³à´’µ6µö¶Ê··Ä¸Œ¹xº8º¸»Ö¼´½R¾L¾ð¿ÊÀ¤ÁfÂ0ÂÖÃÄĪÄúÅèƸÇfÈÈÊÊ6Ë^ÌfÌÌÍæΘψÐ(ÐîÑÎÒHÓ(ÔÔþÕÞֺ׮ظÙÞÛÛÊÜüÝÐÞÄàáââÞãäÄåŠæ~çTèé ê<ëëèìöíÖîªïlð€ñvòVòæô\õpöb÷nøJùZù¾úÜûÀüÊý þ–2ZŒldœ† D œ , Z Ê¾Ü¦ÔøÆú$œÞ\îÖ  > þ"\#$$‚%æ&Œ&ü'L'Œ((†)(*x*Þ++Š+ì,N,ž-B-ú.V.æ/D/Ø0t0Ò1B2:2¨323€4n5:66ì77ü8Ä9P:(:ò;l>€?(@@@¤ARAîCCêDàEÐFÚG¨H IÎJ KKöLÖNROŽPšQ–R~ST:U¼V V<V˜VøW8W¢XXŽY YÈZ˜[*[à\n\¬]~^^ä_X_Î`¶aa–aÖb>bðc„cød°eepeøf$f„g gÆh>h¾i†j2kBl:l¢mBm´n$ooŽpdp¸qjrs:t&uvvúxlx¾y(ylzJz¾{{Œ||Š|ª}˜~<t²€€¬.Æ‚¦ƒN„f…Z†\†¸‡€ˆHˆ˜‰hŠ ж‹†Œ(Œ¬6ªŽŽzŽÐzêì‘x‘Ð’N’°“ª””n• ––î—ܘ8™jšv›xœ$œdÒž Ÿ8Ÿ¤  t¡\¡ô¢š£:£þ¤Ú¦¦‚¦â§R§Î¨,¨ˆ¨È©`ªªlªà«$«Ä¬"¬¤­@­¼® ®r®Ô¯&¯Ä°X°ò±È²t³X³ø´Îµš¶Œ·v¸T¹8ºB»¼¼¸½Ü¾B¾¬¿¿R¿ ¿èÀ ÀLÁ ÁМÃxÄJÅ@ÅúƈÆàÇÇ6ÇfÇŽÇþÈRȶÉ2ÉpÉÈÊÊšÊêË8Ë Ì@ÌÐÍfÍæÎ6δÏ0ϸÐ^ÐÔÑzÒdÓÓ¾ÔzÕBÕÊÖžײØØÙjÙÔÚ\Û2ÛÔÜFÜÈÝ2Ý®Þ\ÞàßöàúáÞâ¦ã”ååöænç<èvéêë2ìŠíŠî<ïfðbðÔñ0ñâòTòÆótôôüõ®ö ÷øø˜ù@ù²úˆüüjüúý\ýþþPÿ\ÿôb´®hÞ°ÈðˆÖX¬ú.fÈ"zâF ì R ˜ ô V ² þ 0 œ ê | È 6 À F¸ünÌ0†¾ŽþŽþDÊ:Ð,¦´^þ’(º‚Ôf¾J˜ð²NÀN  –!!†""®#\#Ð$N$Æ%P&&~''˜(@(ô)þ**ü+¢,t--Ü.|/.00æ1’2r3244â5À6V7d8>99à:ø<<¬=*=î?0?Ò@¨BC.D`EEúFRFþGžHhII‚J2JêKÜL:LºLøMŽMþNŠO OàPžQ¦S S>S”T(TÒUjUÀVVbVÞWjX<XêYÖZtZæ[f[Ä\\è]h]ô^Ú_H`vabb¶c$d2e>ffg`h`itjBjúkJk˜kÄl>l‚lêm’nnˆnÊo>ošo²oèppFpnpºqq€qìr$rœräs>sjsÌt8tŒtêuBuŽvvŒvÔwRwöxZxÒy y@yøzzzê{œ| |À}p}ø~F~´<ЀH€ÞXÊ‚fƒ"ƒÜ„”……ކƇL‡èˆŽ‰F‰^‰Œ‰®‰æŠHŠ’Šþ‹*‹‹òŒdŒª\ÞŽ>Žv’ ¼‘P‘¾’p““”(”¼•†–R–ž——¾˜r˜Ì™D™Üš~›D›ÖœÚ|þž¬Ÿ(Ÿ¤ŸÖ  ð¡”¢^£v¤Z¤†¤ø¥`¥Ò¦¦¢§§È¨$¨º©8©Ž©ôªp« «Ö¬¬¬æ­`­Æ®~®ò¯´°j±(²@³³Þ´¬µTµò¶À·J¸ ¸ê¹¶º¦»„¼z½$¾$¿&ÀÀæÁÈÂzÃ\ÄÄôÆÇTÇÒÈPÈ¢ÈúÉÄÊÖË´ÌdÍ\ÍêÏÏXÐ~Ñ8ÒÒ ÓÓlÓæÔ¨ÕnÕÎÖÖ„×פØTÙ(ÙÖÚÊ۾ܠ݆Þßßþàøá²â,â¦ãzä|åÎæNæÀæêçœè éPéèëëÖìÖífîJïðñ†òòêóêôbõNö"ö®÷÷€÷êøXøºùùžúú û(û~ûÄüfüîýtýüþšÿ$ÿÀhì®DÊ\¸Jú¤F b V &  ºˆ Ô>|Òbè`ÞlàŽÒ2ð^@d¾ô–DxÆ  Ì!˜"r#4#ê$Ž$ò%à&d&˜'H((°)2)d)Ø*>*ˆ+2+æ,Ž-0-Ú.//Æ0p0ô1â3@3ˆ4\546*6ð7~88Ô9d:4:ö<8<à=6=z>?h@JA2B BÔCØDÄEhF.FvF¬G2H4IJJJXJ–JðK8KÞLTLÒMPMúNlNÜOˆPP¢Q`QøRÎS˜T~U0VBWVWøXžYBYæZÐ[D\\f]P^Ð_r``6`‚`úa\aübüddðfg2g`gØiifkkölhlºm:m¤n o,pLpâqdqÌr`s˜tšuœvfw2x°yzzž{¶|P}¨~\~Î*x€D€œ:¤‚˜ƒ¢„’…„†t‡”ˆX‰‰ØŠ€‹fŒ–@Žj6Œrª‘’’t’Ü“\“Ò”®•8•ú–Ä—T—Θ^™ršRš¨››ºœ|¶žÈŸj  œ¡n¢Š££`£î¤š¥¥t¥è¦>§ ¨¨îª ªJ«\¬z­h®8®þ°±d²l²Î³\´&µ<¶r·|¸H¹¹ ¹üº¸»”¼‚½T¾P¾¨¿¿XÀ>À‚ÀðÁØÂHˆÀÃúÄJÄØÅPÆÆzÆÖÇ ǬÇþÈþÉnÉÚʺËæ̸ÍÎÎvÏ|ÏÈЄÑÑ–ÒTÒœÓpÓúÔ„ÔÖÕœÕøÖš××`Ø,ØÔÙ¢ÚÚbÛšÜ\ÜÖݤÞlÞÊß6ßšàºá2á¤â.âÒãÂãêä¶åRåÊæ®ç çþè¾é°êRêîë¶ëêì†ìöíPíöîÒð@ññÈò:òÞónôô†õõàöZ÷÷ª÷À÷Ö÷ìøøø.øDøZøpø†øœø²øÈøÞøôù ù ù6ùLùbùxùŽù¤ùºùÖùìúúú.úDúZúpú†úœú²úÈúÞúôû û û6ûLûbûxûŽû¤ûºûÐûæûüüü(ü>üTüjü€ü–ü¬üÂüØüîýýý0ýLýbýxýŽý¤ýºýÐýæýüþþ(þ>þTþjþ€þ–þ¬þÂþØþîÿÿÿ0ÿFÿ\ÿrÿˆÿžÿ´ÿÊÿàÿö "8Ndz¦¼Òèþ*@Vl‚˜®ÄÚð2Hdz¦¼Òèþ*@Vl‚˜®ÄÚð2H^tŠ ¶Òèþ*@Vl‚˜®ÄÚð2H^tŠ ¼Òè0F\rˆž´Êæü(>Tj€–¬ÂØî   0 F \ r ˆ ¤ º Ð æ   . D Z p † œ ² È Þ ô   6 L b x Ž ¤ À Ö ì   . D ` v Œ ¢ ¸ Î ä ú  & < R h ~ ” ª À Ö ì.J`vŒ¢¸Îäú&<Rh~”ªÀÖì.J`|’¨¾Ôê,BXn„š°Æâø$:Pf|’¨¾Ôð2H^tŠ ¶Ìèþ*@Vl‚˜®ÄÚð2H^tŠ ¶Òèþ*@Vl‚˜®ÄÚð"8Ndz¦¼Øî0LbxޤºÐæü(>Tj€–¬ÂØî 6LbxޤºÐì4J`vŒ¨¾Ôê,BXnŠ ¼Òèþ0F\rޤºÐæü(>ZpŒ¢¸Îäú,BXtŠ ¶Ìâø  $ @ V l ‚ ˜ ® Ä Ú ð!!"!8!N!d!z!–!¬!Â!Ø!î""&"<"R"h"~"”"ª"À"Ü"ò###4#J#`#v#Œ#¢#¸#Ô#ê$$$2$H$d$z$$¦$¼$Ò$è%%%0%L%b%x%”%ª%À%Ö%ì&&&.&D&Z&p&†&œ&¸&Î&ä&ú''&'B'X'n'„' '¶'Ì'â'ø(($(:(P(f(|(’(¨(¾(Ô(ð)))2)H)^)t)Š) )¶)Ì)â)ø**$*:*P*f*‚*ž*º*Ð*æ+++.+D+Z+p+†+œ+²+Î+ê,,,2,H,^,t,Š, ,¶,Ì,â,ø--$-:-P-f-|-’-¨-¾-Ô-ê...,.B.X.n.„.š.°.Æ.Ü.ò///4/J/`/v/Œ/¢/¸/Î/ä/ú00&0<0R0h0~0”0ª0À0Ö0ì111.1D1Z1p1†1œ1²1È1Þ1ô2 2 262L2b2x2Ž2¤2º2Ð2æ2ü33(3>3T3j3€3–3¬3Â3Ø3î44404F4\4r4ˆ4ž4´4Ê4à4ö5 5(5>5T5j5€5–5¬5Â5Ø5î66606F6\6r6ˆ6ž6´6Ê6à6ö7 7"787N7d7z77¦7¼7Ò7è7þ8808F8\8r8ˆ8ž8´8Ð8æ8ü99(9>9T9j9€9–9¬9Â9Ø9î:: :6:L:b:x:”:ª:À:Ü:ò;;;4;J;`;v;Œ;¢;¾;Ô;ê<<<,>&><>R>h>~>”>°>Æ>Ü>ò???4?J?`?v?Œ?¢?¸?Î?ä?ú@@&@<@R@h@~@”@ª@À@Ö@ìAAA.ADAZApA†AœA²AÈAÞAôB B B6BLBbBxBŽB¤BºBÐBæBüCC(C>CTCjC€C–C¬CÈCÞCôD D D6DLDbD~D”DªDÀDÖDìEEE.EDEZEpE†EœE²EÈEÞEôF F F6FLFbFxFŽF¤FºFÐFæFüGG(G>GTGjG€G–G¬GÂGØGîHHH0HFH\HrHˆHžH´HÊHàHöI I"I>ITIjI€I–I¬IÂIØIôJ J J6JLJbJxJ”JªJÀJÖJìKKK.KDKZKpK†KœK²KÈKÞKôL L L6LLLbLxLŽL¤LºLÐLìMMM.MDMZMpM†MœM²MÈMÞMúNN&N<NRNhN~N”NªNÀNÖNìOOO.ODOZOpO†OœO²OÈOäOúPP&PBPXPnP„PšP°PÆPÜPòQQQ4QPQlQ‚Q˜Q®QÄQÚQðRRR2RHR^RtRŠR R¶RÌRâRøSS*S@SVSlS‚S˜S®SÄSÚSðTTT2TNTdTzTT¦T¼TØTîUUU0UFUbUxUŽU¤UºUÐUæUüVV.VDVZVpV†VœV²VÈVÞVôW W W6WLWbWxWŽW¤WºWÐWæWüXX(XDXZXpX†XœX²XÈXÞXôY Y Y6YLYhY~YšY°YÆYÜYòZZZ:ZPZfZ|Z’Z¨Z¾ZÔZð[[[2[H[d[z[[¦[¼[Ò[è[þ\\0\F\\\r\ˆ\ž\´\Ê\à\ö] ]"]8]T]j]€]–]¬]È]Þ]ô^^&^B^X^t^Š^¦^¼^Ò^è^þ__*_F_\_r_ˆ_ž_´_Ð_æ```.`D```v`Œ`¢`¸`Î`ä`úaa&a<aRana„aša°aÆaÜaòbbb4bJb`bvbŒb¨b¾bÔbêccc,cBcXcnc„cšc°cÆcÜcòddd4dJd`dvdŒd¢d¸dÎdädúee&e<eRehe~e”eªeÀeÖeìfff.fDfZfvfŒf¢f¸fÎfäfúgg,gBg^gzgg¦gÂgägúhh&hBhXhnh„hšh°hÆhÜhòiii4iJi`ivi’i¨i¾iÔiðj j(j>jTjjj€j–j¬jÈjÞjôk k k<kRkhk~kšk°kÆkÜkòlll4lJl`lvlŒl¢l¾lÚlðmmm2mNmdmzmm¦m¼mÒmèmþnn*n@nVnln‚n˜n®nÄnÚnöo o"o8oNodozoo¦oÂoÞoôpp&p<pXpnp„pšp°pÌpâpøqq*q@qVqlq‚q˜q®qÄqÚqðrrr2rNrdrzr–r²rÈrÞrôs s&sBs^stsŠs s¶sÌsâsøtt$t:tPtft‚t˜t´tÐtætüuu(uDuZupu†u¢u¸uÎuäuúvv&v<vRvhv~v”vªvÀvÖvìwww.wDwZwpw†wœw²wÈwÞwôxx&x<xRxhx~x”xªxÀxÖxìyyy.yDyZypy†yœy²yÈyÞyôz z z6zLzbzxzŽz¤zºzÐzæzü{{({>{T{j{€{–{¬{Â{Ø{î|||0|F|\|r|ˆ|ž|´|Ê|à|ö} }"}8}N}j}€}–}¬}Â}Ø}î~~~0~F~\~r~ˆ~ž~´~Ð~æ~ü(>Tj€–¬ÂØô€ €&€<€R€h€~€”€ª€À€Ü€ò4J`v’¨¾Ôê‚‚‚,‚B‚X‚n‚„‚š‚°‚Æ‚â‚øƒƒ$ƒ:ƒVƒlƒ‚ƒžƒ´ƒÊƒàƒö„ „"„8„N„d„z„„¦„¼„Ò„è„þ……0…F…\…r…ˆ…ž…´…Ê…à…ö† †"†8†N†d†z††¦†¼†Ò†è†þ‡‡*‡@‡V‡l‡‚‡˜‡®‡Ä‡Ú‡ðˆˆˆ2ˆHˆ^ˆtˆˆ¦ˆ¼ˆÒˆèˆþ‰‰0‰F‰\‰r‰ˆ‰ž‰º‰Ö‰ìŠŠŠ4ŠJŠfŠ|Š’ЍоŠÔŠê‹‹‹,‹B‹X‹n‹„‹š‹°‹Ì‹è‹þŒŒ0ŒLŒbŒxŒŽŒªŒÀŒÖŒì:Pf|˜®ÄÚðŽŽŽ2ŽHŽdŽzŽަ޼ŽÒŽèŽþ0LbxޤºÐæü(>Tj€–²ÈÞú‘‘&‘<‘X‘n‘„‘š‘°‘Æ‘Ü‘ò’’$’@’\’r’ˆ’ž’´’Ê’à’ö“ “"“>“T“p“Œ“¨“¾“Ô“ê”””2”H”d”€”œ”²”Ȕޔú••&•<•R•h•~•”•ª•À•Ö•ì–––.–D–Z–p–†–¢–¸–Ô–ê———2—H—^—t——¦—¼—Ò—è—þ˜˜*˜@˜V˜l˜‚˜˜˜®˜Ä˜Ú˜ð™™™2™H™^™t™Š™ ™¶™Ì™â™øšš$š:šPšfš|š˜š®šÄšÚšð›››2›H›^›t›Š› ›¶›Ì›â›øœœ$œ:œVœlœ‚œ˜œ®œÄœÚœð2H^tŠ ¶Ìâøžž$ž:žPžfž|ž’ž¨ž¾žÔžêŸŸŸ,ŸBŸXŸnŸ„ŸšŸ°ŸÆŸÜŸò   4 J ` v Œ ¢ ¸ Î ä ú¡¡&¡<¡R¡h¡~¡”¡ª¡À¡Ö¡ì¢¢¢.¢D¢Z¢p¢†¢œ¢²¢È¢Þ¢ô£ £ £6£L£b£x£”£ª£À£Ö£ì¤¤¤.¤D¤Z¤p¤†¤œ¤²¤È¤Þ¤ô¥ ¥ ¥6¥L¥b¥~¥”¥ª¥À¥Ö¥ì¦¦¦.¦D¦Z¦p¦†¦œ¦²¦È¦Þ¦ô§ § §6§L§b§x§Ž§¤§º§Ð§æ§ü¨¨(¨D¨Z¨p¨†¨œ¨²¨È¨Þ¨ô© © ©6©R©n©„©š©°©Æ©â©øªª*ª@ªVªlªˆªžª´ªÊªàªö« «"«8«N«d«z««¦«¼«Ò«è«þ¬¬*¬@¬V¬l¬‚¬˜¬®¬Ä¬Ú¬ö­ ­"­8­N­d­z­­¦­Â­Ø­î®®®0®F®\®r®ˆ®ž®´®Ð®æ®ü¯¯(¯>¯T¯j¯€¯–¯¬¯Â¯Ø¯î°°°0°L°b°x°Ž°¤°º°Ð°æ°ü±±(±>±T±j±€±œ±¸±Î±ä±ú²²&²<²R²h²~²”²°²Æ²Ü²ò³³³:³P³f³|³’³¨³¾³Ô³ê´´´2´H´^´z´´¦´¼´Ò´è´þµµ0µFµ\µrµˆµžµ´µÊµàµö¶¶(¶>¶Z¶v¶Œ¶¢¶¸¶Î¶ä¶ú··&·<·R·h·~·”·°·Ì·â·ø¸¸$¸:¸P¸f¸|¸’¸¨¸¾¸Ô¸ê¹¹¹,¹B¹X¹n¹„¹š¹°¹Ì¹â¹øºº$º@ºVºrºˆºžº´ºÊºàºö» »"»8»N»d»z»»¦»¼»Ò»è»þ¼¼*¼@¼V¼l¼‚¼˜¼®¼Ê¼à¼ö½ ½"½8½N½d½z½½¦½¼½Ø½î¾¾¾0¾F¾\¾r¾ˆ¾ž¾´¾Ê¾à¾ö¿ ¿"¿8¿N¿d¿z¿¿¦¿¼¿Ò¿è¿þÀÀ*À@ÀVÀlÀ‚À˜À®ÀÄÀÚÀðÁÁÁ2ÁNÁdÁzÁÁ¦Á¼ÁÒÁîÂÂÂ0ÂFÂ\ÂrÂŽ¤ºÂÐÂìÃÃÃ4ÃJÃ`ÃvÃŒâøÃÎÃäÃúÄÄ,ÄBÄXÄnĄĚİÄÆÄÜÄòÅÅÅ4ÅJÅ`ÅvŌŢŸÅÎÅäÅúÆÆ&Æ<ÆRÆhÆ~Æ”ƪÆÀÆÖÆìÇÇÇ.ÇDÇZÇpdžÇœDzÇÈÇäÇúÈÈ&È<ÈRÈhÈ~È”ȪÈÀÈÖÈìÉÉÉ.ÉDÉZÉpɆÉœɲÉÈÉÞÉôÊ Ê Ê6ÊLÊbÊ~Ê”ʪÊÀÊÖÊìËËË.ËDËZËpˆËœ˸ËÎËêÌÌ"Ì>ÌZÌp̆Ìœ̲ÌÈÌÞÌôÍ Í Í6ÍLÍbÍxÍŽͤͺÍÐÍæÍüÎÎ(Î>ÎTÎj΀ΖάÎÂÎØÎîÏÏÏ0ÏFÏ\ÏrψϞϴÏÊÏæÏüÐÐ(Ð>ÐTÐjЀЖЬÐÂÐØÐôÑÑ&Ñ<ÑRÑhÑ~Ñ”ѪÑÀÑÖÑìÒÒÒ.ÒDÒZÒp҆ҜҲÒÈÒÞÒôÓ Ó Ó6ÓLÓbÓxÓŽÓ¤ÓºÓÐÓìÔÔÔ4ÔJÔ`ÔvԌԢԸÔÎÔäÔúÕÕ&Õ<ÕRÕhÕ~Õ”ÕªÕÀÕÖÕìÖÖÖ.ÖDÖZÖpֆֲ֜ÖÈÖÞÖô× × ×6×L×b×x׎פ׺×Ð׿×üØØ(Ø>ØTØj؀ؖجØÂØØØîÙÙÙ0ÙFÙ\ÙrÙˆÙžÙ´ÙÊÙàÙöÚ Ú"Ú8ÚTÚjÚ€Ú–Ú¬ÚÂÚØÚîÛ Û Û6ÛLÛhÛ~Û”ÛªÛÀÛÖÛìÜÜÜ4ÜJÜ`Ü|Ü’ܨܾÜÔÜêÝÝÝ,ÝBÝXÝn݄ݚݰÝÆÝÜÝòÞÞÞ4ÞJÞfÞ|Þ’Þ¨Þ¾ÞÔÞêßßß8ßNßdßzß–߬ßÂßÞßôà à à6àRàhà„àšà°àÆàÜàòááá4áJá`áváŒá¢á¸áÎáäáúââ&âBâXânâ„âšâ°âÌâââøãã$ã:ãPãfã‚ã˜ã®ãÊãæãüää.äDäZäpä†äœä²äÈäÞäôå å å6åLåbåxåŽå¤åºåÐåæåüææ(æ>æTæjæ€æ–æ¬æÂæØæîççç0çFç\çrçˆçžç´çÊçàçöè è"è8èNèdèzèè¬èÂèØèôé é é6éLébé~é”éªéÀéÖéìêêê4êJê`êvêŒê¢ê¸êÎêäêúëë&ë<ëRëhë~ë”ëªëÀëÖëìììì.ìDìZìpì†ìœì²ìÈìÞìôí í í6íLíbíxíŽí¤íºíÐíæíüîî(î>îTîjî€î–î¬îÂîØîîïïï0ïFï\ïrïˆïžï´ïÊïàïöð ð"ð8ðNðdðzðð¦ð¼ðÒðèðþññ*ñ@ñVñlñ‚ñ˜ñ®ñÄñÚñöò ò"ò8òNòdòzòò¦ò¼òÒòèòþóó0óFó\óróˆóžó´óÊóàóöô ô"ô8ôNôdôzôô¦ô¼ôÒôèôþõõ*õ@õVõlõ‚õ˜õ®õÄõÚõðööö2öHö^ötöŠö ö¶öÌöâöø÷÷$÷:÷P÷f÷|÷’÷¨÷¾÷Ô÷êøøø,øBøXønø„øšø°øÆøâøøùù$ù:ùPùfù|ù’ù¨ù¾ùÔùêúúú,úBúXúnúŠú¬úÎúðûûû2ûHû^ûtûŠû û¶ûÌûâûøüü$ü:üVülü‚ü˜ü®üÄüÚüðýýý2ýHý^ýtýŠý ý¶ýÌýâýøþþ$þ:þPþfþ|þ’þ¨þ¾þÔþêÿÿÿ2ÿHÿ^ÿtÿŠÿ ÿ¶ÿÌÿèÿþ  * F b x Ž ª À Ü ø  * @ V l ‚ ˜ ® Ä Ú ð   2 H ^ t Š   ¶ Ì â ø  $ : P f | ’ ¨ ¾ Ú ð   2 H ^ t Š   ¶ Ì â ø  $ : P f | ’ ¨ ¾ Ô ê   , B ^ t Š   ¶ Ì â ø  $ : P f | ˜ ® Ä Ú ð   2 H ^ z  ¦ ¼ Ò è þ  * @ V l ‚ ˜ ® Ä Ú ð   2 H ^ t Š   ¶ Ì â ø  $ : P f ‚ ˜ ® Ä Ú ö " 8 N d z ¦ ¼ Ò è þ  * @ V l ˆ ž ´ Ð æ ü  ( > T j € – ¬  Ø î   0 F \ r ˆ ž ´ Ê à ö  " 8 T j € – ¬ È Þ ô   6 R h ~ ” ª À Ö ì   . D Z p † œ ² È Þ ô   6 L b ~ ” ª Æ Ü ø  $ : P f | ˜ ® Ä Ú ö  " 8 N d € – ¬  Ø ô  & < R h ~ ” ª À Ö ì   4 J f | ’ ¨ Ä Ú ð   2 H ^ t Š   ¶ Ì â ø  $ : P f | ’ ® Ä Ú ð   8 N d z  ¦ ¼ Ø î   0 F \ r ˆ ž ´ Ê à ö  ( > T j € – ¬  Ø î   0 F \ r ˆ ž ´ Ê à ü  ( > Z p † œ ² Î ä ú  & < R h ~ ” ª À Ö ì   . D Z p † œ ² È ä ! ! !2 !N !d !z ! !¬ ! !Ø !ô " " "6 "L "b "x "Ž "¤ "º "Ð "æ "ü # #4 #P #f #| #’ #´ #Ê #æ #ü $ $( $> $T $j $€ $– $¬ $ $Þ $ô % %& %< %R %n %„ %š %° %Æ %Ü %ò & &$ &@ &V &r &Ž &¤ &º &Ð &ì ' ' '. 'D 'Z 'p '† 'œ '² 'È 'ä 'ú ( (& (< (R (h (~ (” (ª (À (Ö (ì ) ) )4 )J )` )v )Œ )¢ )¸ )Î )ä )ú * *& *< *R *h *~ *” *ª *À *Ö *ì + + +. +D +Z +p +† +œ +² +È +Þ +ô , , ,6 ,L ,b ,x ,Ž ,¤ ,º ,Ð ,æ ,ü - -( -> -T -j -€ -– -¬ - -Ø -î . . .0 .F .\ .r .ˆ .ž .´ .Ê .à .ö / /" /8 /N /d /z / /¦ /¼ /Ò /è /þ 0 0* 0@ 0V 0l 0‚ 0˜ 0® 0Ä 0Ú 0ð 1 1 12 1H 1^ 1t 1Š 1  1¶ 1Ì 1â 1ø 2 2$ 2@ 2V 2l 2‚ 2˜ 2® 2Ä 2Ú 2ð 3 3" 38 3N 3d 3z 3 3¦ 3¼ 3Ò 3è 3þ 4 4* 4@ 4V 4l 4‚ 4˜ 4® 4Ä 4Ú 4ð 5 5 52 5H 5^ 5t 5Š 5  5¶ 5Ì 5â 5ø 6 6$ 6: 6P 6l 6‚ 6˜ 6® 6Ä 6Ú 6ð 7 7 72 7H 7d 7z 7 7¦ 7¼ 7Ò 7è 7þ 8 8* 8@ 8V 8l 8‚ 8˜ 8® 8Ä 8Ú 8ð 9 9 92 9N 9d 9z 9 9¦ 9¼ 9Ò 9è 9þ : :* :@ :V :l :‚ :˜ :® :Ä :Ú :ð ; ;" ;8 ;N ;d ;z ; ;¦ ;¼ ;Ò ;è ;þ < <* <@ <\  > >0 >F >\ >r >ˆ >ž >´ >Ê >à >ö ? ?" ?8 ?N ?d ?z ? ?¦ ?¼ ?Ò ?è ?þ @ @0 @F @\ @r @ˆ @ž @´ @Ê @à @ö A A" A8 AN Ad Az A A¦ A¼ AÒ Aè Aþ B B* B@ B\ Br Bˆ Bž B´ BÊ Bà Bö C C" C8 CN Cd C€ C– C¬ C CØ Cî D D D0 DF D\ Dr Dˆ Dž D´ DÊ Dà Dö E E" E8 ET Ej E€ E– E¬ E EØ Eî F F F6 FL Fb Fx FŽ F¤ Fº FÐ Fæ Fü G G4 GJ G` Gv GŒ G¨ G¾ GÔ Gê H H H, HB HX Hn H„ Hš H° HÆ HÜ Hò I I I4 IJ I` Iv IŒ I¢ I¾ IÔ Iê J J J, JB JX Jn J„ Jš J° JÆ JÜ Jò K K K: KP Kf K‚ K˜ K® KÄ Kà Kö L L( L> LT Lj L† Lœ L² LÈ LÞ Lô M M& MB MX Mn M„ Mš M° MÆ MÜ Mò N N N4 NJ N` Nv NŒ N¢ N¸ NÎ Nä Nú O O& OB OX Ot OŠ O  O¶ OÒ Oè Oþ P P* P@ Pb Px PŽ P¤ Pº PÐ Pæ Pü Q Q( Q> QT Qj Q€ Qœ Q² QÈ QÞ Qô R R& R< RR Rh R„ R  R¶ RÌ Râ Rø S S$ S: SP Sf S| S’ S¨ S¾ SÔ Sê T T T2 TH T^ Tt T T¦ T¼ TØ Tî U U U6 UL Ub Ux UŽ U¤ Uº UÐ Uæ Uü V V( VD VZ Vp VŒ V¢ V¸ VÔ Vð W W W2 WH Wd Wz W– W² WÈ WÞ Wô X X X6 XL Xb X~ X” Xª XÆ XÜ Xò Y Y Y4 YJ Y` Yv Y’ Y¨ YÄ YÚ Yö Z Z" Z8 ZT Zj Z† Zœ Z² ZÈ ZÞ Zô [ [ [6 [L [b [~ [” [ª [À [Ü [ò \ \ \4 \J \` \v \Œ \¢ \¾ \Ô \ê ] ] ], ]B ]X ]n ]Š ]  ]¶ ]Ò ]è ]þ ^ ^0 ^F ^\ ^r ^ˆ ^¤ ^º ^Ð ^æ ^ü _ _( _D _Z _p _† _¢ _¾ _Ô _ê ` ` `, `B `X `n `„ `š `° `Æ `Ü `ò a a a4 aJ a` a| a’ a¨ aÄ aÚ að b b b2 bH b^ bt bŠ b  b¶ bÌ bâ bø c c$ c: cP cf c| c’ c¨ c¾ cÔ cê d d d, dB dX dn d„ dš d° dÆ dÜ dò e e e4 eJ e` ev eŒ e¢ e¸ eÎ eä eú f f& f< fR fh f~ f” fª fÀ fÜ fò g g g4 gJ g` gv gŒ g¢ g¸ gÎ gä h h h, hB hX hn h„ h  h¶ hÌ hè hþ i i* i@ iV ir iˆ iž i´ iÊ ià iö j j" j8 jN jd jz j j¦ j¼ jÒ jè jþ k k0 kL kb k~ kš k¶ kÒ kè kþ l l0 lL lh l„ l  l¼ lØ lô m m& mB m^ mz m m¦ m¼ mÒ mè mþ n n* n@ nV nl n‚ n˜ n® nÄ nÚ nð o o o2 oH o^ ot oŠ o¦ o¼ oÒ oè oþ p p* p@ pV pl p‚ p˜ p® pÄ pÚ pð q q q2 qH q^ qt qŠ q  q¶ qÌ qè qþ r r* r@ r\ rr rˆ rž r´ rÊ rà rö s s" s> sT sj s€ s– s¬ s sØ sî t t t0 tF t\ tr tˆ tž t´ tÊ tà tö u u" u8 uN ud uz u u¦ u¼ uÒ uè uþ v v* v@ vV vl v‚ v˜ v´ vÊ và vö w w" w8 wN wd wz w w¦ w¼ wØ wî x x x0 xL xb xx xŽ x¤ xº xÐ xæ xü y y( y> yT yj y€ y– y¬ y yØ yî z z z0 zF z\ zr zˆ zž z´ zÊ zà zö { {" {8 {N {d {z { {¦ {¼ {Ø {î | | |0 |F |\ |r |ˆ |ž |´ |Ê |à |ü } }( }> }T }j }€ }– }¬ } }Ø }î ~ ~ ~0 ~F ~\ ~r ~ˆ ~ž ~´ ~Ê ~à ~ü  ( > T j € – ¬  Ø î € € €0 €F €\ €r €ˆ €ž €´ €Ê €à €ö  ( > T j € – ¬ Â Ø î ‚ ‚ ‚0 ‚F ‚\ ‚r ‚ˆ ‚ž ‚´ ‚Ê ‚à ‚ö ƒ ƒ" ƒ8 ƒN ƒd ƒz ƒ ƒ¦ ƒ¼ ƒÒ ƒè ƒþ „ „* „@ „V „l „‚ „˜ „® „Ä „Ú „ð … … …2 …H …^ …t …Š …  …¶ …Ì …â …ø † †$ †: †V †l †‚ †˜ †® †Ä †Ú †ð ‡ ‡ ‡2 ‡H ‡^ ‡t ‡Š ‡  ‡¶ ‡Ì ‡â ‡ø ˆ ˆ$ ˆ: ˆP ˆf ˆ| ˆ’ ˆ¨ ˆ¾ ˆÔ ˆê ‰ ‰ ‰, ‰B ‰X ‰n ‰„ ‰š ‰° ‰Æ ‰Ü ‰ò Š Š Š4 ŠJ Š` Šv ŠŒ Š¢ Џ ŠÎ Šä Šú ‹ ‹& ‹< ‹R ‹h ‹~ ‹” ‹ª ‹À ‹Ö ‹ì Œ Œ Œ. ŒD ŒZ Œv ŒŒ Œ¢ Œ¸ ŒÔ Œð   2 H ^ t Š   ¶ Ì â ø Ž Ž$ Ž: ŽP Žl Žˆ Žž Ž´ ŽÊ Žà Žö " 8 N d z ¦ ¼ Ò è þ  * @ \ r ˆ ž ´ Ê à ö ‘ ‘" ‘8 ‘N ‘d ‘€ ‘– ‘¬ ‘È ‘Þ ‘ô ’ ’ ’6 ’L ’b ’~ ’” ’ª ’À ’Ö ’ì “ “ “. “D “Z “p “† “œ “² “È “ä “ú ” ”& ”< ”R ”h ”~ ”” ”° ”Æ ”Ü ”ò • • •4 •J •` •v •Œ •¢ •¸ •Ô •ê – – –, –B –X –n –„ –š –° –Æ –Ü –ò — — —4 —J —` —v —Œ —¨ —¾ —Ô —ê ˜ ˜ ˜, ˜B ˜X ˜n ˜„ ˜š ˜° ˜Æ ˜Ü ˜ò ™ ™ ™: ™P ™f ™| ™˜ ™® ™Ê ™à ™ö š š( š> šT šp š† šœ š² šÈ šÞ šú › ›, ›B ›X ›n ›„ ›š ›° ›Ì ›â ›þ œ œ* œ@ œV œl œ‚ œ˜ œ® œÄ œÚ œð  " 8 N j € – ¬ Â Ø î ž ž ž0 žF ž\ žr žˆ žž ž´ žÊ žà žö Ÿ Ÿ" Ÿ8 ŸN Ÿd Ÿz Ÿ Ÿ¦ Ÿ¼ ŸÒ Ÿè Ÿþ    *  F  \  r  ˆ  ž  º  Ð  æ  ü ¡ ¡( ¡> ¡T ¡j ¡€ ¡– ¡¬ ¡Â ¡Þ ¡ú ¢ ¢& ¢< ¢R ¢h ¢~ ¢” ¢ª ¢À ¢Ö ¢ì £ £ £. £D £Z £p £† £œ £¸ £Î £ä £ú ¤ ¤& ¤< ¤R ¤n ¤„ ¤š ¤° ¤Ì ¤â ¤ø ¥ ¥$ ¥@ ¥V ¥r ¥ˆ ¥ž ¥º ¥Ð ¥æ ¥ü ¦ ¦. ¦D ¦` ¦v ¦Œ ¦¢ ¦¸ ¦Î ¦ä ¦ú § §& §< §X §n §„ §š §° §Æ §Ü §ò ¨ ¨ ¨4 ¨P ¨l ¨ˆ ¨ž ¨º ¨Ð ¨æ ¨ü © ©( ©> ©T ©j ©€ ©– ©² ©È ©Þ ©ô ª ª ª6 ªL ªb ªx ªŽ ª¤ ªº ªÖ ªì « « «. «D «Z «p «† «œ «² «È «Þ «ô ¬ ¬& ¬B ¬X ¬n ¬„ ¬š ¬° ¬Æ ¬Ü ¬ò ­ ­ ­4 ­J ­` ­v ­Œ ­¢ ­¸ ­Î ­ä ­ú ® ®& ®< ®R ®h ®~ ®” ®° ®Ì ®è ®þ ¯ ¯* ¯@ ¯V ¯l ¯‚ ¯˜ ¯® ¯Ä ¯Ú ¯ð ° ° °2 °H °d °z ° °¦ °¼ °Ø °î ± ± ±0 ±F ±\ ±r ±ˆ ±ž ±´ ±Ê ±à ±ö ² ²( ²> ²Z ²p ²† ²œ ²¸ ²Î ²ä ³ ³ ³, ³H ³d ³z ³ ³¦ ³¼ ³Ò ³è ´ ´ ´0 ´F ´\ ´r ´ˆ ´ž ´º ´Ð ´æ ´ü µ µ( µ> µZ µp µ† µœ µ¸ µÎ µä µú ¶ ¶, ¶B ¶X ¶n ¶„ ¶š ¶° ¶Æ ¶Ü ¶ò · · ·4 ·J ·f ·| ·’ ·¨ ·¾ ·Ú ·ð ¸ ¸ ¸2 ¸H ¸^ ¸t ¸Š ¸¦ ¸¼ ¸Ò ¸è ¸þ ¹ ¹0 ¹F ¹\ ¹x ¹Ž ¹¤ ¹º ¹Ð ¹ì º º º4 ºJ º` ºv º’ º¨ º¾ ºÔ ºê » » », »B »X »n »„ »  »¶ »Ì »â »ø ¼ ¼$ ¼: ¼P ¼f ¼| ¼’ ¼¨ ¼Ä ¼à ¼ö ½ ½( ½> ½T ½j ½€ ½œ ½¸ ½Î ½ä ½ú ¾ ¾& ¾< ¾R ¾h ¾~ ¾š ¾° ¾Ì ¾è ¾þ ¿ ¿0 ¿F ¿\ ¿r ¿ˆ ¿ž ¿´ ¿Ê ¿æ ¿ü À À. ÀD À` Àv ÀŒ À¨ À¾ ÀÔ Àê Á Á Á, ÁB ÁX Án Á„ Áš Á° ÁÆ ÁÜ Áò  Â* Â@ ÂV Âl ˆ ž ´ ÂÊ Âà Âü à Ã. ÃD Ã` Ãv ÃŒ â þ ÃÔ Ãê Ä Ä Ä2 ÄH Äd Äz Ä– Ĭ ÄÂ ÄØ Äî Å Å Å0 ÅF Å\ År ň Åž Å´ ÅÊ Åà Åö Æ Æ" Æ8 ÆN Æd Æz Æ Æ¦ Ƽ ÆÒ Æè Æþ Ç Ç* ÇF Ç\ Çr Lj Çž Ç´ ÇÊ Çà Çö È È" È8 ÈN Èd Èz È È¦ ȼ ÈÒ Èè Èþ É É* É@ ÉV Él É‚ ɘ É® ÉÄ ÉÚ Éð Ê Ê Ê2 ÊH Ê^ Êt ÊŠ Ê  ʶ ÊÌ Êâ Êø Ë Ë$ Ë: ËP Ëf Ë| Ë’ ˨ ˾ ËÔ Ëê Ì Ì Ì, ÌB ÌX Ìn Ì„ Ìš ̰ ÌÆ ÌÜ Ìò Í Í Í4 ÍJ Íf Í| Í’ ͨ ; ÍÔ Íê Î Î Î, ÎB ÎX În ΄ Κ ΰ ÎÆ ÎÜ Îò Ï Ï Ï4 ÏJ Ï` Ïv ÏŒ Ï¢ ϸ ÏÎ Ïê Ð Ð Ð, ÐB ÐX Ðn Є К а ÐÆ ÐÜ Ðò Ñ Ñ Ñ4 ÑJ Ñ` Ñv ÑŒ Ñ¢ Ѹ ÑÎ Ñä Ñú Ò Ò2 ÒH Ò^ Òt ÒŠ Ò  Ò¶ ÒÌ Òâ Òø Ó Ó$ Ó: ÓP Óf Ó| Ó’ Ó¨ Ó¾ ÓÔ Óê Ô Ô Ô, ÔB ÔX Ôn Ô„ Ôš Ô° ÔÆ ÔÜ Ôò Õ Õ Õ4 ÕJ Õf Õ| Õ’ Õ¨ Õ¾ ÕÔ Õê Ö Ö Ö, ÖB ÖX Ön Ö„ Öš Ö° ÖÆ ÖÜ Öò × × ×4 ×J ×` ×v ׌ ×¢ ׸ ×Î ×ä ×ú Ø Ø& Ø< ØR Øh Ø~ Ø” ت ØÀ ØÖ Øì Ù Ù Ù. ÙD ÙZ Ùp Ù† Ù¢ Ù¸ ÙÎ Ùä Ùú Ú Ú& Ú< ÚR Úh Ú~ Ú” Úª ÚÀ ÚÖ Úì Û Û Û. ÛD ÛZ Ûp Û† Ûœ Û² ÛÈ ÛÞ Ûô Ü Ü Ü6 ÜL Üb Üx ÜŽ ܤ ܺ ÜÐ Üæ Üü Ý Ý( Ý> ÝT Ýj Ý€ Ý– ݬ ÝÂ ÝØ Ýî Þ Þ Þ0 ÞF Þb Þ~ Þ” Þª ÞÀ ÞÖ Þì ß ß ß. ßD ßZ ßp ߆ ßœ ß² ßÈ ßÞ ßô à à à6 àL àb àx àŽ à¤ àº àÐ àæ àü á á( á> áT áj ဠᖠᬠáÂ áØ áî â â â0 âF â\ âr ∠➠⺠âÐ âæ âü ã ã. ãJ ã` ã| 㒠㨠㾠ãÔ ãê ä ä ä, äB äX än ä„ äš ä° äÆ äÜ äò å å å4 åP ål å‚ å˜ å® åÄ åÚ åð æ æ æ2 æH æ^ æt æŠ æ  æ¶ æÌ æâ æø ç ç$ ç: çP çf ç| ç˜ ç® çÄ çÚ çö è è( è> èT èj è€ è– è¬ èÂ èØ èî é é é6 éL éb éx éŽ é¤ éº éÐ éæ ê ê ê. êD êZ êp ê† êœ ê² êÈ êÞ êô ë ë ë6 ëL ëb ëx ëŽ ë¤ ëº ëÐ ëæ ì ì ì. ìD ì` ìv ìŒ ì¨ ì¾ ìÚ ìð í í í8 íN íd íz í– í¬ íÂ íØ íî î î î0 îF îb îx îŽ î¤ îº îÐ îæ ï ï ï4 ïJ ï` ïv ïŒ ï¨ ï¾ ïÔ ïê ð ð ð, ðB ðX ðn ð„ ð  ð¶ ðÌ ðâ ðþ ñ ñ0 ñF ñ\ ñr ñˆ ñž ñ´ ñÊ ñà ñü ò ò( òD òZ òp ò† òœ ò¸ òÎ òä òú ó ó2 óN ój ó† óœ ó² óÈ óä óú ô ô& ô< ôR ôh ô~ ô” ôª ôÀ ôÖ ôì õ õ õ. õD õZ õv õŒ õ¢ õ¸ õÎ õä õú ö ö& ö< öR öh ö~ ö” öª öÀ öÖ öì ÷ ÷ ÷. ÷J ÷` ÷| ÷’ ÷¨ ÷¾ ÷Ô ÷ê ø ø ø2 øH ø^ øt øŠ ø  ø¶ øÒ øè øþ ù ù* ù@ ùV ùr ùˆ ùž ù´ ùÊ ùà ùö ú ú" ú8 úN úd úz ú ú¦ ú¼ úÒ úè úþ û û* û@ ûV ûl û‚ ûž û´ ûÊ ûà ûö ü ü" ü8 üN üj ü€ ü– ü¬ üÈ üÞ üô ý ý ý6 ýL ýh ý~ ý” ýª ýÀ ýÜ ýò þ þ$ þ: þP þr þˆ þ¤ þº þÐ þæ þü ÿ ÿ( ÿD ÿ` ÿv ÿŒ ÿ¢ ÿ¸ ÿÔ ÿê!!!,!B!X!n!„!š!¶!Ì!â!ø!!$!:!P!f!|!’!¨!Ä!Ú!ð!!!2!N!d!z!!¦!¼!Ò!è!þ!!*!@!V!l!‚!ž!´!Ð!ì!!!.!D!`!v!Œ!¢!¸!Î!ê!!!,!B!X!n!„!š!°!Ì!â!þ!!*!F!\!r!ˆ!¤!º!Ð!æ!ü!!(!>!T!j!€!–!¬!Â!Ø!ô! !&!<!R!h!~!”!ª!À!Ö!ì! ! $! :! V! l! ‚! ˜! ®! Ä! Ú! ð! ! "! 8! N! d! z! ! ¬! Â! Ø! î! ! ! <! R! n! ! ¦! ¼! Ø! î! ! ! 0! F! b! x! ”! ª! À! Ö! ì! ! ! .! D! Z! p! †! œ! ¸! Î! ä! ú!!,!B!X!t!Š! !¶!Ì!â!ø!!$!:!P!f!|!˜!®!Ä!à!ü!!.!D!Z!p!†!œ!²!Î!ê!!!2!N!j!€!–!¬!Â!Ø!î!!!0!F!\!r!Ž!ª!Æ!Ü!ò!!!4!V!l!‚!˜!®!Ä!Ú!ð! !"!8!T!j!†!¢!¸!Î!ä!ú!!,!B!^!t!Š!¦!¼!Ø!î! ! !6!L!b!x!Ž!¤!º!Ð!ì!!!.!D!`!|!’!®!Ê!æ!ü!!.!J!f!|!˜!´!Ê!à!ö! !"!8!N!d!€!–!²!È!Þ!ô! ! !6!L!b!~!”!ª!À!Ü!ò!!!4!J!`!|!’!´!Ê!à!ö!!(!>!T!p!†!œ!²!Î!ä!ú!!2!H!^!t!Š! !¶!Ì!â!ø!!$!:!V!l!‚!ž!´!Ê!à!ö! !(!>!Z!p!Œ!¢!¸!Î!ê! ! ! 8! N! d! z! ! ¦! Â! Ø! î!!!!!!0!!F!!\!!r!!ˆ!!¤!!º!!Ö!!ò!"!"!"4!"P!"f!"|!"˜!"®!"Ê!"à!"ü!#!#(!#>!#T!#p!#†!#¢!#¾!#Ô!#ð!$ !$"!$>!$T!$p!$†!$œ!$¸!$Î!$ä!$ú!%!%&!%<!%X!%t!%Š!%¦!%¼!%Ò!%è!%þ!&!&*!&F!&\!&r!&Ž!&¤!&º!&Ð!&ì!'!'!':!'P!'l!'ˆ!'ž!'´!'Ê!'à!'ö!( !("!(>!(Z!(p!(Œ!(¢!(¸!(Î!(ä!(ú!)!)&!)<!)R!)h!)~!)”!)ª!)À!)Ö!)ì!*!*!*.!*D!*Z!*p!*†!*œ!*²!*È!*Þ!*ô!+ !+ !+6!+L!+b!+x!+Ž!+¤!+º!+Ð!+æ!+ü!,!,(!,>!,T!,j!,€!,–!,¬!,Â!,Ø!,î!-!-!-0!-F!-\!-r!-ˆ!-¤!-º!-Ö!-ì!.!.!..!.D!.Z!.p!.†!.œ!.²!.È!.Þ!.ô!/ !/ !/<!/R!/h!/~!/”!/ª!/À!/Ö!/ì!0!0!04!0P!0f!0|!0’!0¨!0¾!0Ô!0ê!1!1!1,!1B!1X!1n!1Š!1 !1¼!1Ò!1è!1þ!2!2*!2@!2V!2l!2‚!2˜!2®!2Ä!2à!2ö!3 !3"!3>!3T!3j!3€!3–!3¬!3Â!3Ø!3î!4!4 !46!4L!4b!4x!4Ž!4ª!4À!4Ö!4ì!5!5!54!5J!5`!5v!5Œ!5¢!5¸!5Ô!5ê!6!6!6,!6B!6^!6t!6Š!6 !6¶!6Ì!6â!6ø!7!7$!7:!7V!7l!7‚!7˜!7´!7Ð!7æ!7ü!8!8(!8>!8T!8j!8†!8œ!8¸!8Î!8ä!8ú!9!9&!9<!9R!9h!9~!9 !9¶!9Ì!9â!9ø!:!:*!:@!:V!:l!:ˆ!:ž!:´!:Ê!:à!:ö!; !;"!;8!;N!;j!;†!;œ!;¸!;Î!;ê!<!<!<,! !>"!>8!>N!>d!>z!>!>¦!>¼!>Ò!>î!? !?&!?<!?R!?n!?Š!? !?¶!?Ì!?â!?ø!@!@*!@@!@\!@r!@ˆ!@ž!@´!@Ð!@æ!@ü!A!A(!A>!AT!Aj!A€!A–!A¬!AÂ!AØ!Aî!B!B!B6!BL!Bb!Bx!BŽ!Bª!BÀ!BÖ!Bì!C!C!C.!CD!C`!Cv!CŒ!C¢!C¸!CÎ!Cä!D!D!D,!DB!DX!Dn!D„!Dš!D°!DÆ!DÜ!Dò!E!E!E4!EJ!E`!Ev!EŒ!E¢!E¸!EÎ!Eä!Eú!F!F&!F<!FR!Fh!F~!F”!F°!FÆ!FÜ!Fò!G!G!G4!GJ!G`!Gv!GŒ!G¢!G¸!GÎ!Gä!Gú!H!H&!HB!H^!Ht!HŠ!H !H¶!HÌ!Hâ!Hø!I!I$!I:!IP!If!I‚!I˜!I®!IÄ!IÚ!Iö!J !J"!J>!JZ!Jp!J†!Jœ!J²!JÈ!JÞ!Jô!K !K !K6!KL!Kb!Kx!KŽ!K¤!Kº!KÐ!Kæ!Kü!L!L(!L>!LT!Lj!L€!L–!L¬!LÂ!LØ!Lî!M!M!M0!MF!M\!Mr!Mˆ!Mž!M´!MÊ!Mà!Mö!N !N"!N8!NN!Nd!Nz!N–!N¬!NÂ!NØ!Nî!O!O!O0!OF!O\!Or!Oˆ!Ož!O´!OÊ!Oà!Oö!P !P"!P8!PN!Pj!P€!P–!P²!PÎ!Pä!Pú!Q!Q&!Q<!QR!Qh!Q~!Q”!Qª!QÀ!QÖ!Qò!R!R$!R:!RP!Rf!R|!R’!R¨!R¾!RÔ!Rê!S!S!S,!SB!S^!St!SŠ!S !S¶!SÌ!Sâ!Sø!T!T*!T@!TV!Tl!T‚!T˜!T®!TÄ!TÚ!Tð!U!U!U2!UH!U^!Ut!U!U¦!U¼!UÒ!Uè!Uþ!V!V0!VF!V\!Vr!Vˆ!Vž!V´!VÐ!Vì!W!W!W.!WD!WZ!Wp!W†!W¢!W¸!WÎ!Wä!X!X!X,!XB!XX!Xn!X„!Xš!X°!XÆ!Xâ!Xø!Y!Y$!Y:!YP!Yf!Y|!Y˜!Y®!YÄ!YÚ!Yð!Z!Z!Z2!ZH!Z^!Zz!Z!Z¬!ZÂ!ZØ!Zî![![![0![F![\![r![Ž![¤![º![Ð![æ![ü!\!\(!\>!\T!\j!\€!\–!\¬!\Â!\Ø!\î!]!]!]0!]F!]\!]r!]ˆ!]ž!]´!]Ê!]à!]ö!^ !^"!^8!^T!^j!^€!^–!^¬!^Â!^Ø!^î!_!_!_0!_F!_\!_r!_ˆ!_ž!_´!_Ê!_à!_ü!`!`(!`>!`T!`j!`€!`œ!`²!`È!`Þ!`ô!a !a !a6!aL!ab!ax!aŽ!a¤!aº!aÐ!aæ!aü!b!b(!b>!bT!bj!b†!bœ!b²!bÎ!bä!bú!c!c&!c<!cR!ch!c~!c”!cª!cÀ!cÖ!cì!d!d!d.!dD!dZ!dp!d†!dœ!d²!dÈ!dä!dú!e!e,!eH!e^!et!eŠ!e !e¶!eÌ!eâ!eø!f!f$!f:!fP!ff!f|!f’!f¨!f¾!fÔ!fê!g!g!g,!gB!gX!gn!g„!gš!g°!gÆ!gâ!gø!h!h$!h:!hP!hf!h|!h’!h¨!h¾!hÔ!hê!i!i!i,!iB!iX!in!i„!iš!i¶!iÌ!iâ!iø!j!j$!j:!jP!jf!j|!j’!j¨!j¾!jÔ!jê!k!k!k,!kB!kX!kn!k„!kš!k°!kÆ!kÜ!kò!l!l$!l:!lP!lf!l|!l’!l¨!l¾!lÚ!lö!m !m"!m8!mT!mj!m€!m–!m²!mÈ!mÞ!mô!n !n !n6!nR!nh!n~!nš!n°!nÆ!nÜ!nò!o!o!o:!oP!of!o|!o˜!o®!oÄ!oà!oö!p !p"!p8!pN!pd!pz!p!p¦!p¼!pÒ!pè!pþ!q!q0!qF!q\!qr!qˆ!qž!q´!qÊ!qà!qü!r!r(!r>!rT!rj!r€!rœ!r²!rÈ!rÞ!rô!s !s !s6!sL!sb!sx!sŽ!s¤!sº!sÐ!sæ!sü!t!t(!t>!tT!tj!t€!t–!t¬!tÂ!tØ!tô!u !u !u6!uR!uh!u~!u”!uª!uÀ!uÖ!uì!v!v!v.!vD!vZ!vp!v†!vœ!v²!vÈ!vÞ!vô!w !w&!w<!wR!wh!w~!w”!wª!wÀ!wÖ!wì!x!x!x.!xD!xZ!xp!x†!xœ!x²!xÈ!xÞ!xô!y !y !y6!yL!yb!yx!yŽ!y¤!yº!yÐ!yæ!yü!z!z(!z>!zT!zj!z€!z–!z¬!zÂ!zØ!zî!{!{!{0!{F!{b!{x!{Ž!{¤!{º!{Ð!{æ!{ü!|!|(!|>!|T!|j!|€!|–!|¬!|Â!|Ø!|î!}!}!}0!}F!}\!}r!}ˆ!}ž!}´!}Ê!}à!}ö!~ !~"!~8!~N!~d!~z!~!~¦!~¼!~Ò!~è!~þ!!*!@!V!l!‚!˜!®!Ä!Ú!ð!€!€!€2!€H!€^!€t!€Š!€ !€¶!€Ì!€â!€ø!!$!:!P!f!|!’!¨!¾!Ô!ê!‚!‚!‚,!‚B!‚X!‚n!‚„!‚š!‚°!‚Æ!‚Ü!‚ò!ƒ!ƒ!ƒ4!ƒJ!ƒ`!ƒv!ƒŒ!ƒ¢!ƒ¸!ƒÎ!ƒä!ƒú!„!„&!„<!„R!„h!„„!„š!„°!„Æ!„Ü!„ò!…!…!…4!…J!…`!…v!…Œ!…¢!…¸!…Î!…ê!†!†!†,!†B!†X!†n!†„!†š!†°!†Æ!†Ü!†ò!‡!‡!‡4!‡J!‡`!‡v!‡Œ!‡¢!‡¸!‡Î!‡ä!‡ú!ˆ!ˆ&!ˆ<!ˆR!ˆh!ˆ~!ˆ”!ˆª!ˆÀ!ˆÖ!ˆì!‰!‰!‰.!‰D!‰Z!‰p!‰†!‰œ!‰²!‰È!‰Þ!‰ô!Š !Š !Š6!ŠL!Šb!Šx!ŠŽ!Ф!Šº!ŠÐ!Šæ!Šü!‹!‹.!‹D!‹Z!‹p!‹†!‹œ!‹²!‹Î!‹ä!‹ú!Œ!Œ,!ŒB!ŒX!Œn!Œ„!Œš!Œ°!ŒÆ!ŒÜ!Œò!!!4!J!`!v!Œ!¢!¸!Î!ä!ú!Ž!Ž&!Ž<!ŽR!Žh!Ž~!Žš!ް!ŽÆ!ŽÜ!Žò!!!4!J!`!v!Œ!¢!¸!Î!ä!ú!!&!<!R!h!~!”!ª!À!Ö!ì!‘!‘!‘4!‘P!‘f!‘|!‘˜!‘®!‘Ä!‘Ú!‘ö!’ !’"!’8!’N!’d!’€!’–!’¬!’È!’ä!’ú!“!“&!“<!“R!“h!“~!“”!“ª!“À!“Ö!“ì!”!”!”.!”D!”Z!”p!”†!”œ!”²!”Î!”ä!”ú!•!•&!•<!•R!•h!•~!•”!•ª!•À!•Ö!•ì!–!–!–.!–D!–Z!–p!–†!–œ!–²!–È!–Þ!–ô!— !— !—6!—L!—b!—x!—Ž!—¤!—º!—Ð!—æ!—ü!˜!˜(!˜>!˜T!˜j!˜€!˜–!˜¬!˜Â!˜Ø!˜î!™!™!™0!™F!™\!™r!™ˆ!™ž!™´!™Ê!™à!™ö!š !š"!š8!šN!šd!šz!š!š¦!š¼!šÒ!šî!›!›!›0!›L!›b!›x!›Ž!›¤!›À!›Ü!›ò!œ!œ!œ4!œJ!œ`!œv!œŒ!œ¢!œ¸!œÎ!œä!œú!!&!<!R!h!~!š!¼!Ò!è!þ!ž!ž*!ž@!žV!žl!ž‚!žž!ž´!žÊ!žà!žö!Ÿ !Ÿ"!Ÿ>!ŸT!Ÿj!Ÿ€!Ÿ–!Ÿ¬!ŸÂ!ŸØ!Ÿî! ! ! 0! F! \! r! ˆ! ž! ´! Ê! à! ö!¡!¡(!¡>!¡T!¡j!¡€!¡œ!¡²!¡È!¡Þ!¡ô!¢ !¢ !¢6!¢L!¢b!¢x!¢Ž!¢¤!¢º!¢Ð!¢æ!¢ü!£!£(!£>!£T!£j!£€!£–!£¬!£Â!£Ø!£î!¤ !¤ !¤6!¤L!¤b!¤x!¤Ž!¤¤!¤º!¤Ð!¤æ!¤ü!¥!¥(!¥>!¥T!¥j!¥€!¥–!¥¬!¥Â!¥Ø!¥î!¦!¦!¦0!¦F!¦\!¦r!¦ˆ!¦ž!¦´!¦Ê!¦à!¦ö!§ !§"!§8!§N!§d!§z!§!§¦!§¼!§Ò!§è!§þ!¨!¨*!¨@!¨V!¨l!¨‚!¨˜!¨®!¨Ê!¨à!¨ö!© !©"!©8!©N!©d!©z!©!©¦!©¼!©Ò!©è!©þ!ª!ª*!ª@!ªV!ªl!ª‚!ª˜!ª®!ªÄ!ªÚ!ªð!«!«"!«8!«N!«d!«z!«!«¦!«¼!«Ò!«è!¬!¬!¬0!¬F!¬\!¬r!¬ˆ!¬ž!¬´!¬Ê!¬à!¬ö!­ !­"!­8!­N!­d!­z!­!­¦!­¼!­Ò!­è!­þ!®!®*!®@!®V!®l!®‚!®ž!®´!®Ê!®à!®ö!¯ !¯"!¯8!¯N!¯d!¯z!¯!¯¦!¯¼!¯Ò!¯è!¯þ!°!°*!°@!°V!°l!°‚!°˜!°®!°Ä!°Ú!°ö!± !±"!±8!±N!±d!±z!±–!±¬!±Â!±Ø!±ô!² !² !²6!²L!²b!²x!²Ž!²ª!²À!²Ö!²ì!³!³!³4!³J!³`!³v!³Œ!³¢!³¸!³Î!³ä!³ú!´!´&!´B!´X!´t!´Š!´ !´¶!´Ì!´â!´ø!µ!µ$!µ:!µP!µf!µ|!µ’!µ¨!µÄ!µÚ!µð!¶!¶!¶2!¶H!¶^!¶t!¶Š!¶ !¶¶!¶Ì!¶â!¶ø!·!·$!·:!·P!·f!·|!·’!·¨!·¾!·Ô!·ê!¸!¸!¸,!¸B!¸X!¸n!¸„!¸š!¸°!¸Æ!¸Ü!¸ò!¹!¹!¹4!¹J!¹`!¹v!¹Œ!¹¢!¹¸!¹Î!¹ä!¹ú!º!º&!º<!ºR!ºh!º~!º”!ºª!ºÀ!ºÖ!ºì!»!»!».!»D!»Z!»p!»†!»œ!»²!»È!»Þ!»ô!¼!¼&!¼<!¼R!¼h!¼~!¼”!¼ª!¼À!¼Ö!¼ì!½!½!½.!½D!½Z!½p!½†!½œ!½²!½È!½ä!½ú!¾!¾&!¾B!¾^!¾t!¾Š!¾ !¾¶!¾Ì!¾â!¾þ!¿!¿*!¿@!¿V!¿l!¿‚!¿˜!¿´!¿Ê!¿à!¿ö!À !À"!À8!ÀN!Àd!Àz!À!À¦!À¼!ÀÒ!Àè!Àþ!Á!Á*!Á@!ÁV!Ál!Á‚!Á˜!Á®!ÁÄ!ÁÚ!Áð!Â!Â!Â2!ÂH!Â^!Ât!Š! !¶!ÂÌ!Ââ!Âø!Ã!Ã*!Ã@!ÃV!Ãl!Â!Ø!î!ÃÄ!ÃÚ!Ãð!Ä!Ä!Ä2!ÄH!Ä^!Ät!ÄŠ!Ä !Ķ!ÄÌ!Äâ!Äø!Å!Å$!Å:!ÅP!Åf!Å|!Å’!Ũ!ž!ÅÔ!Åê!Æ!Æ!Æ,!ÆB!ÆX!Æn!Æ„!Æš!ư!ÆÆ!ÆÜ!Æò!Ç!Ç!Ç4!ÇJ!Ç`!Çv!ÇŒ!Ç¢!Ǹ!ÇÎ!Çä!Çú!È!È&!È<!ÈR!Èh!È~!È”!Ȫ!ÈÀ!ÈÖ!Èì!É!É!É4!ÉJ!É`!Év!ÉŒ!É¢!ɸ!ÉÎ!Éä!Éú!Ê!Ê&!Ê<!ÊR!Êh!Ê~!Ê”!ʪ!ÊÀ!ÊÖ!Êì!Ë!Ë!Ë.!ËD!ËZ!Ëp!ˆ!Ëœ!˲!ËÈ!ËÞ!Ëô!Ì !Ì !Ì6!ÌL!Ìh!Ì„!Ìš!̰!ÌÆ!Ìâ!Ìø!Í!Í$!Í:!ÍP!Íf!Í|!Í’!ͨ!;!ÍÔ!Íê!Î!Î!Î2!ÎH!Î^!Ît!Ί!Π!ζ!ÎÌ!Îâ!Îþ!Ï!Ï0!ÏF!Ï\!Ïr!ψ!Ïž!Ϻ!ÏÖ!Ïì!Ð!Ð!Ð.!ÐJ!Ð`!Ðv!ÐŒ!Т!и!ÐÎ!Ðä!Ðú!Ñ!Ñ&!Ñ<!ÑR!Ñh!Ñ~!Ñ”!Ѫ!ÑÀ!ÑÖ!Ñì!Ò!Ò!Ò.!ÒD!ÒZ!Òp!Ò†!Òœ!Ò²!ÒÈ!ÒÞ!Ó!Ó!Ó,!ÓB!ÓX!Ón!Ó„!Óš!Ó°!ÓÆ!ÓÜ!Óò!Ô!Ô!Ô4!ÔJ!Ô`!Ôv!ÔŒ!Ô¢!Ô¸!ÔÎ!Ôä!Ôú!Õ!Õ&!Õ<!ÕR!Õh!Õ~!Õ”!Õª!ÕÀ!ÕÖ!Õì!Ö!Ö!Ö.!ÖD!ÖZ!Öp!Ö†!Öœ!Ö²!ÖÈ!ÖÞ!Öô!× !× !×<!×R!×h!×~!×”!×°!ׯ!×â!×ø!Ø!Ø$!Ø:!ØV!Øl!Ø‚!ؘ!Ø®!ØÄ!ØÚ!Øð!Ù !Ù"!Ù8!ÙN!Ùd!Ùz!Ù!Ù¦!ÙÂ!ÙØ!Ùî!Ú!Ú!Ú6!ÚL!Úb!Úx!ÚŽ!Ú¤!Úº!ÚÐ!Úæ!Û!Û!Û4!ÛJ!Û`!Ûv!ÛŒ!Û¢!Û¸!ÛÎ!Ûä!Ûú!Ü!Ü&!Ü<!ÜR!Üh!Ü~!Ü”!ܪ!ÜÆ!ÜÜ!Üò!Ý!Ý*!Ý@!ÝV!Ýl!Ý‚!ݘ!Ý´!ÝÊ!Ýà!Ýö!Þ !Þ"!Þ>!ÞT!Þj!Þ€!Þ–!Þ¬!ÞÂ!ÞØ!Þî!ß!ß!ß0!ßF!ß\!ßr!߈!ßž!ß´!ßÐ!ßæ!ßü!à!à(!à>!àT!àp!à†!àœ!à¸!àÎ!àä!á!á!á2!áN!ád!á€!á–!á¬!áÂ!áØ!áô!â !â !â6!âL!âh!â~!âš!â¶!âÌ!ââ!âø!ã!ã$!ã:!ãP!ãf!ã‚!ã˜!ã®!ãÊ!ãà!ãü!ä!ä(!ä>!äT!äp!ä†!ä¢!ä¸!äÎ!ää!äú!å!å,!åB!åX!ån!å„!å !å¶!åÌ!åâ!åþ!æ!æ0!æL!æb!æx!æŽ!æª!æÀ!æÖ!æì!ç!ç!ç4!çP!çl!ç‚!ç˜!ç®!çÊ!çæ!è!è!è.!èD!èZ!èp!èŒ!è¨!è¾!èÔ!èê!é!é!é,!éB!éX!ét!é!é¦!é¼!éØ!éî!ê!ê !ê6!êL!êh!ê~!ê”!êª!êÀ!êÖ!êì!ë!ë!ë.!ëD!ëZ!ëp!ë†!ëœ!ë²!ëÈ!ëÞ!ëô!ì !ì !ì6!ìR!ìn!ì„!ìš!ì°!ìÆ!ìÜ!ìò!í!í!í4!íJ!í`!ív!íŒ!í¢!í¸!íÎ!íä!íú!î!î&!î<!îR!îh!î~!î”!îª!îÆ!îÜ!îò!ï!ï!ï4!ïJ!ï`!ïv!ïŒ!ï¢!ï¸!ïÎ!ïä!ïú!ð!ð,!ðB!ðX!ðn!ð„!ðš!ð°!ðÆ!ðâ!ðø!ñ!ñ$!ñ:!ñP!ñf!ñ|!ñ’!ñ¨!ñ¾!ñÔ!ñê!ò!ò!ò,!òH!ò^!òz!ò!ò¦!ò¼!òÒ!òè!òþ!ó!ó*!ó@!óV!ól!ó‚!óž!óº!óÐ!óæ!óü!ô!ô(!ô>!ôT!ôj!ô€!ô–!ô¬!ôÂ!ôØ!ôî!õ !õ&!õ<!õR!õh!õ~!õ”!õª!õÀ!õÖ!õì!ö!ö!ö.!öD!öZ!öp!ö†!öœ!ö²!öÈ!öÞ!öô!÷ !÷ !÷6!÷L!÷b!÷~!÷”!÷ª!÷À!÷Ö!÷ì!ø!ø!ø.!øD!øZ!øp!ø†!ø¢!ø¾!øÔ!øê!ù!ù!ù,!ùB!ùX!ùn!ù„!ùš!ù°!ùÆ!ùÜ!ùò!ú!ú!ú4!úJ!ú`!úv!úŒ!ú¢!ú¸!úÎ!úä!úú!û!û&!û<!ûR!ûh!û„!ûš!û°!ûÆ!ûÜ!ûò!ü!ü!ü4!üJ!üf!ü‚!ü˜!ü®!üÄ!üÚ!üð!ý!ý!ý2!ýH!ý^!ýt!ýŠ!ý !ý¶!ýÌ!ýâ!ýø!þ!þ$!þ:!þV!þl!þ‚!þ˜!þ®!þÄ!þÚ!þð!ÿ !ÿ"!ÿ8!ÿN!ÿd!ÿz!ÿ!ÿ¦!ÿ¼!ÿÒ!ÿè!ÿþ""*"@"V"l"‚"˜"®"Ä"Ú"ð"""2"H"^"t"Š" "¶"Ì"è"þ""*"@"V"l"‚"˜"®"Ä"Ú"ð"""2"H"^"t"Š" "¶"Ì"â"ø""$":"V"l"‚"˜"®"Ä"Ú"ð"""2"H"d"z""¦"¼"Ò"è"þ""*"@"V"l"‚"˜"´"Ð"æ"ü""."D"Z"v"Œ"¢"¸"Î"ê""","H"^"t""¦"¼"Ò"è"þ" " *" @" V" l" ‚" ˜" ®" Ä" Ú" ð" " " 2" H" d" z" " ¦" ¼" Ò" è" " " 6" L" b" x" Ž" ¤" º" Ð" ì" " " ." D" Z" p" †" œ" ²" È" Þ" ô" " &" <" R" n" „" š" °" Æ" Ü" ò""":"P"f"|"’"¨"Ä"Ú"ð"""2"H"^"t"Š" "¶"Ò"è"þ""*"F"\"r"ˆ"ž"º"Ð"ì"""."J"`"|"’"¨"¾"Ô"ð" "(">"T"j"€"–"¬"È"Þ"ô" " "6"L"b"x"Ž"¤"º"Ð"æ"ü""(">"T"j"€"–"¬"Â"Ø"î"""0"F"\"r"ˆ"ž"´"Ê"à"ö" """8"N"d"z""¦"¼"Ò"è"þ""*"@"V"l"‚"˜"®"Ê"à"ö" """>"T"j"€"–"¬"Â"Ø"î"""0"F"\"r"ˆ"ž"´"Ê"à"ö" """8"N"d"z""¦"¼"Ò"è"þ""*"@"V"l"‚"˜"®"Ê"à"ö" """>"T"j"€"–"²"Î"ê""","B"X"n"„"š"°"Æ"Ü"ò"""4"J"`"v"Œ"¢"¸"Î"ä"ú"","B"X"n"„" "¶"Ì"è"þ" " *" @" V" l" ‚" ˜" ´" Ð" æ" ü"!"!."!D"!Z"!p"!†"!œ"!²"!È"!Þ"!ô"" "" ""6""L""b""x""Ž""¤""º""Ð""æ""ü"#"#("#>"#T"#j"#€"#–"#¬"#È"#Þ"#ô"$"$,"$B"$X"$n"$„"$ "$¶"$Ì"$â"$ø"%"%*"%@"%V"%l"%ˆ"%¤"%º"%Ð"%æ"%ü"&"&("&>"&T"&j"&€"&–"&¬"&Â"&Ø"&î"'"'"'0"'F"'\"'r"'ˆ"'ž"'´"'Ê"'à"'ö"( "(""(8"(N"(d"(z"("(¦"(¼"(Ò"(è"(þ")")*")@")V")l")‚")˜")®")Ä")Ú")ð"*"*"*2"*H"*^"*t"*Š"* "*¶"*Ò"*è"*þ"+"+*"+@"+V"+l"+‚"+˜"+®"+Ä"+Ú"+ð",",",2",H",^",t",Š", ",¶",Ì",â",ø"-"-$"-:"-P"-f"-|"-’"-¨"-¾"-Ô"-ê".".".,".B".X".n".„".š".°".Æ".Ü".ò"/"/"/4"/J"/`"/v"/Œ"/¢"/¾"/Ô"/ê"0"0"0,"0B"0X"0n"0„"0š"0°"0Æ"0Ü"0ò"1"1"14"1J"1`"1v"1’"1¨"1¾"1Ô"1ê"2"2"2,"2B"2X"2n"2„"2š"2°"2Æ"2Ü"2ò"3"3$"3:"3P"3f"3|"3˜"3®"3Ä"3Ú"3ö"4"4("4>"4T"4p"4†"4œ"4²"4È"4Þ"4ô"5 "5 "56"5L"5b"5x"5Ž"5¤"5º"5Ð"5æ"5ü"6"6("6>"6T"6j"6€"6–"6¬"6Â"6Ø"6î"7"7"70"7F"7\"7r"7ˆ"7ž"7´"7Ê"7à"7ö"8 "8""88"8N"8d"8z"8"8¦"8¼"8Ò"8è"8þ"9"9*"9@"9V"9l"9‚"9˜"9´"9Ê"9à"9ö": ":"":8":N":d":z":":¦":¼":Ò":è":þ";";*";@";V";l";‚";˜";®";Ä";Ú";ð"<"<"<2"">">.">D">Z">p">†">œ">¸">Î">ä">ú"?"?&"?<"?R"?h"?~"?”"?ª"?À"?Ö"?ì"@"@"@."@D"@Z"@p"@†"@œ"@²"@È"@Þ"@ô"A "A "A6"AL"Ab"Ax"AŽ"A¤"Aº"AÐ"Aæ"Aü"B"B("B>"BT"Bj"B€"B–"B¬"BÂ"BØ"Bî"C"C"C0"CF"C\"Cr"Cˆ"Cž"C´"CÊ"Cà"Cö"D "D""D>"DT"Dp"D†"Dœ"D²"DÈ"DÞ"Dô"E "E "E<"ER"En"E„"Eš"E¶"EÌ"Eâ"Eø"F"F*"F@"FV"Fl"F‚"F˜"F®"FÄ"FÚ"Fð"G"G"G2"GH"G^"Gt"G"G¦"G¼"GÒ"Gî"H"H"H0"HF"H\"Hr"Hˆ"Hž"H´"HÊ"Hà"Hü"I"I."ID"IZ"Ip"I†"Iœ"I²"IÎ"Iä"Iú"J"J&"J<"JR"Jh"J~"J”"Jª"JÆ"JÜ"Jò"K"K"K4"KJ"K`"Kv"KŒ"K¢"K¸"KÎ"Kä"Kú"L"L&"L<"LR"Lh"L„"Lš"L°"LÆ"LÜ"Lò"M"M"M4"MJ"M`"Mv"MŒ"M¢"M¸"MÎ"Mä"Mú"N"N&"N<"NR"Nh"N~"N”"Nª"NÀ"NÖ"Nì"O"O"O."OD"OZ"Op"O†"Oœ"O²"OÈ"OÞ"Oô"P "P "P6"PL"Pb"Px"PŽ"P¤"Pº"PÐ"Pæ"Pü"Q"Q("Q>"QT"Qj"Q€"Q–"Q¬"QÂ"QØ"Qî"R"R"R0"RF"R\"Rr"Rˆ"Rž"R´"RÐ"Ræ"Rü"S"S("S>"ST"Sj"S€"S–"S¬"SÂ"SØ"Sî"T"T"T0"TF"T\"Tr"Tˆ"Tž"T´"TÊ"Tà"Tö"U "U""U8"UN"Ud"Uz"U"U¦"U¼"UÒ"Uè"Uþ"V"V*"V@"VV"Vl"V‚"V˜"V®"VÄ"VÚ"Vð"W"W"W2"WH"W^"Wt"WŠ"W "W¶"WÌ"Wâ"Wø"X"X$"X:"XP"Xf"X|"X’"X¨"X¾"XÔ"Xê"Y"Y"Y,"YB"YX"Yt"YŠ"Y "Y¶"YÌ"Yâ"Yþ"Z"Z*"Z@"ZV"Zl"Z‚"Z˜"Z®"ZÄ"ZÚ"Zð"["["[2"[H"[^"[t"[Š"[ "[¶"[Ì"[â"[ø"\"\$"\:"\P"\l"\‚"\˜"\®"\Ä"\Ú"\ð"]"]"]2"]H"]^"]t"]Š"] "]¶"]Ì"]â"]ø"^"^$"^:"^P"^l"^‚"^˜"^®"^Ä"^Ú"^ð"_ "_""_8"_N"_j"_†"_œ"_²"_È"_Þ"_ô"` "` "`6"`R"`n"`„"`š"`°"`Æ"`Ü"`ò"a"a"a:"aP"af"a‚"a˜"a®"aÊ"aà"aö"b"b("b>"bT"bj"b€"b–"b¬"bÂ"bØ"bî"c"c "c6"cR"ch"c~"c”"cª"cÆ"cÜ"cò"d"d"d4"dJ"df"d|"d’"d¨"d¾"dÔ"dê"e"e"e8"eN"ej"e†"e¢"e¸"eÎ"eê"f"f"f,"fB"f^"ft"f"f¬"fÂ"fÞ"fô"g "g&"g<"gR"gh"g~"g”"gª"gÆ"gÜ"gò"h"h*"h@"h\"hr"hˆ"h¤"hÀ"hÜ"hò"i"i"i4"iJ"i`"iv"iŒ"i¢"i¸"iÎ"iä"iú"j"j&"j<"jX"jn"jŠ"j "j¶"jÌ"jâ"jø"k"k$"k@"kV"kl"k‚"k˜"k®"kÄ"kÚ"kö"l"l("l>"lT"lp"l†"lœ"l¸"lÔ"lê"m"m"m,"mH"m^"mt"mŠ"m "m¶"mÌ"mâ"mø"n"n$"n:"nV"nr"nˆ"nž"n´"nÊ"næ"nü"o"o."oD"oZ"op"o†"oœ"o²"oÈ"oÞ"oô"p"p&"p<"pR"ph"p~"p”"pª"pÀ"pÖ"pì"q"q"q4"qJ"q`"qv"qŒ"q¨"q¾"qÔ"qê"r"r"r,"rB"rX"rn"rŠ"r "r¶"rÌ"râ"rø"s"s$"s:"sP"sf"s|"s˜"s®"sÊ"sà"sö"t "t("t>"tZ"tp"t†"tœ"t²"tÈ"tÞ"tô"u "u&"u<"uR"un"u„"uš"u°"uÆ"uÜ"uø"v"v0"vL"vh"v„"vš"v°"vÆ"vâ"vø"w"w$"w:"wV"wl"w‚"w˜"w®"wÄ"wÚ"wð"x"x"x2"xH"x^"xz"x"x¦"x¼"xÒ"xè"xþ"y"y*"y@"y\"yr"yŽ"y¤"yº"yÖ"yì"z"z"z."zD"z`"zv"zŒ"z¨"zÄ"zÚ"zð"{ "{""{8"{N"{d"{z"{"{¬"{Â"{Ø"{î"| "|&"|<"|R"|n"|„"|š"|¶"|Ì"|â"|ø"}"}0"}F"}\"}x"}Ž"}¤"}º"}Ð"}æ"}ü"~"~("~D"~`"~v"~’"~¨"~¾"~Ô"~ê"""2"H"^"t""¦"¼"Ò"è"€"€"€6"€L"€b"€x"€Ž"€¤"€À"€Ü"€ò""$"@"\"r"Ž"ª"À"Ö"ì"‚"‚"‚:"‚P"‚f"‚|"‚’"‚¨"‚Ä"‚à"‚ü"ƒ"ƒ("ƒ>"ƒT"ƒp"ƒ†"ƒœ"ƒ²"ƒÈ"ƒÞ"ƒô"„ "„ "„6"„R"„h"„~"„”"„ª"„À"„Ö"„ì"…"…"…."…J"…`"…v"…Œ"…¢"…¸"…Î"…ä"…ú"†"†&"†<"†R"†n"†„"†š"†°"†Ì"†â"†ø"‡"‡$"‡:"‡P"‡l"‡‚"‡˜"‡´"‡Ê"‡à"‡ü"ˆ"ˆ("ˆ>"ˆZ"ˆp"ˆ†"ˆœ"ˆ¸"ˆÎ"ˆä"ˆú"‰"‰,"‰H"‰d"‰z"‰"‰¬"‰Â"‰Ø"‰ô"Š "Š "Š6"ŠR"Šn"Š„"Šš"а"ŠÌ"Šâ"Šø"‹"‹*"‹@"‹V"‹l"‹‚"‹ž"‹´"‹Ð"‹ì"Œ"Œ"Œ:"ŒP"Œl"Œ‚"Œ˜"Œ´"ŒÊ"Œæ"Œü""."J"`"v"Œ"¢"¸"Ô"ê"Ž"Ž""Ž>"ŽT"Žj"Ž€"Ž–"ެ"ŽÈ"ŽÞ"Žô" "2"H"^"t"Š" "¶"Ì"â"ø""*"@"V"l"‚"ž"´"Ê"à"ö"‘ "‘("‘J"‘f"‘|"‘’"‘¨"‘Ä"‘Ú"‘ð"’"’""’8"’N"’j"’€"’œ"’²"’È"’ä"’ú"“"“2"“N"“d"“€"“–"“¬"“Â"“Ø"“ô"” "” "”<"”R"”h"”„"”š"”°"”Æ"”Ü"”ò"•"•"•4"•J"•`"•v"•Œ"•¢"•¸"•Î"•ä"•ú"–"–,"–H"–^"–t"–"–¦"–Â"–Ø"–î"—"—"—0"—F"—\"—r"—ˆ"—ž"—´"—Ê"—à"—ö"˜ "˜""˜8"˜N"˜d"˜z"˜–"˜¬"˜Â"˜Ø"˜î"™ "™ "™6"™L"™b"™~"™”"™ª"™À"™Ü"™ò"š"š$"š:"šP"šf"š|"š’"š®"šÄ"šÚ"šö"› "›""›8"›T"›j"›€"›–"›¬"›Â"›Ø"›î"œ"œ"œ0"œL"œb"œ~"œ”"œ°"œÆ"œâ"œø""$":"P"f"|"’"¨"¾"Ô"ê"ž"ž"ž,"žB"žX"žn"ž„"žš"ž¶"žÌ"žâ"žø"Ÿ"Ÿ$"Ÿ:"ŸP"Ÿf"Ÿ|"Ÿ’"Ÿ¨"Ÿ¾"ŸÔ"Ÿê" " " ," B" X" n" „" š" °" Æ" Ü" ò"¡"¡"¡4"¡P"¡f"¡|"¡’"¡¨"¡¾"¡Ô"¡ê"¢"¢"¢,"¢B"¢X"¢n"¢„"¢š"¢°"¢Æ"¢Ü"¢ò"£"£"£4"£J"£`"£v"£’"£¨"£¾"£Ô"£ê"¤"¤"¤2"¤H"¤^"¤t"¤Š"¤ "¤¶"¤Ì"¤â"¤ø"¥"¥$"¥:"¥P"¥f"¥|"¥’"¥¨"¥¾"¥Ô"¥ê"¦"¦"¦,"¦B"¦X"¦n"¦„"¦ "¦¶"¦Ò"¦è"¦þ"§"§*"§@"§V"§l"§‚"§˜"§´"§Ê"§à"§ö"¨ "¨""¨>"¨T"¨j"¨†"¨œ"¨²"¨È"¨Þ"¨ô"© "© "©6"©L"©b"©x"©Ž"©¤"©º"©Ð"©æ"©ü"ª"ª("ªD"ªZ"ªp"ª†"ªœ"ª²"ªÈ"ªÞ"ªô"« "«&"«B"«X"«n"«Š"« "«¶"«Ì"«â"«ø"¬"¬*"¬@"¬V"¬l"¬‚"¬˜"¬®"¬Ä"¬Ú"¬ð"­"­"­2"­H"­^"­t"­Š"­ "­¶"­Ì"­â"­ø"®"®$"®@"®V"®l"®‚"®˜"®®"®Ä"®à"®ö"¯ "¯""¯8"¯N"¯d"¯z"¯"¯¦"¯¼"¯Ò"¯è"¯þ"°"°0"°F"°\"°r"°ˆ"°ž"°´"°Ê"°æ"°ü"±"±."±D"±Z"±p"±†"±œ"±²"±È"±Þ"±ô"² "²&"²B"²X"²t"²Š"² "²¶"²Ì"²â"²ø"³"³$"³@"³V"³l"³ˆ"³ž"³´"³Ê"³à"³ö"´ "´""´8"´N"´d"´z"´"´¦"´¼"´Ò"´è"´þ"µ"µ0"µF"µ\"µx"µŽ"µ¤"µº"µÐ"µæ"µü"¶"¶("¶>"¶T"¶p"¶†"¶¢"¶¸"¶Î"¶ä"¶ú"·"·,"·B"·X"·n"·„"·š"·°"·Æ"·Ü"·ò"¸"¸"¸4"¸J"¸`"¸v"¸Œ"¸¢"¸¸"¸Î"¸ä"¸ú"¹"¹,"¹B"¹X"¹t"¹Š"¹ "¹¶"¹Ì"¹â"¹ø"º"º$"º:"ºP"ºf"º|"º’"º¨"º¾"ºÔ"ºê"»"»"»,"»B"»X"»n"»„"»š"»°"»Æ"»Ü"»ò"¼"¼"¼4"¼J"¼`"¼v"¼Œ"¼¢"¼¸"¼Î"¼ä"¼ú"½"½,"½B"½X"½n"½„"½š"½°"½Æ"½Ü"½ò"¾"¾"¾4"¾J"¾`"¾v"¾Œ"¾¢"¾¸"¾Î"¾ä"¾ú"¿"¿&"¿B"¿X"¿n"¿„"¿š"¿°"¿Æ"¿Ü"¿ò"À"À"À4"ÀJ"À`"Àv"ÀŒ"À¢"À¸"ÀÎ"Àä"Àú"Á"Á&"Á<"ÁR"Áh"Á~"Á”"Áª"ÁÆ"Áâ"Áþ"Â"Â6"ÂR"Ân"Š"¦"ÂÂ"ÂÞ"Âú"Ã"Ã2"ÃN"Ãd"Ãz"Ã"æ"ü"ÃÒ"Ãè"Ãþ"Ä"Ä*"Ä@"ÄV"Äl"Ä‚"Ę"Ä´"ÄÊ"Äà"Äö"Å "Å""Å8"ÅN"Åj"Å€"Å–"Ŭ"ÅÂ"ÅØ"Åî"Æ"Æ "Æ6"ÆL"Æb"Æx"ÆŽ"Ƥ"ƺ"ÆÐ"Ææ"Æü"Ç"Ç("Ç>"ÇT"Çj"Ç€"Ç–"Ǭ"ÇÂ"ÇØ"Çî"È"È"È0"ÈL"Èb"Èx"È”"Ȫ"ÈÀ"ÈÖ"Èì"É"É"É4"ÉJ"É`"Év"ÉŒ"ɨ"ɾ"ÉÚ"Éð"Ê"Ê"Ê2"ÊH"Ê^"Êt"ÊŠ"Ê "ʶ"ÊÌ"Êâ"Êø"Ë"Ë$"Ë:"ËP"Ëf"Ë|"Ë’"˨"˾"ËÚ"Ëð"Ì "Ì""Ì8"ÌT"Ìj"Ì€"Ì–"̬"ÌÂ"ÌØ"Ìî"Í"Í"Í0"ÍF"Íb"Íx"ÍŽ"ͤ"ͺ"ÍÐ"Íæ"Íü"Î"Î("ÎD"ÎZ"Îp"Ά"Μ"β"ÎÈ"ÎÞ"Îô"Ï"Ï&"Ï<"ÏX"Ïn"Ï„"Ïš"ϰ"ÏÆ"ÏÜ"Ïò"Ð"Ð"Ð:"ÐP"Ðf"Ђ"И"д"ÐÊ"Ðà"Ðö"Ñ "Ñ""Ñ>"ÑT"Ñj"ц"Ñ¢"Ѹ"ÑÎ"Ñð"Ò"Ò""Ò8"ÒN"Òd"Ò€"Ò–"Ò²"ÒÈ"Òä"Òú"Ó"Ó&"ÓB"ÓX"Ón"ÓŠ"Ó¦"Ó¼"ÓÒ"Óè"Óþ"Ô"Ô*"Ô@"ÔV"Ôl"Ô‚"Ô˜"Ô´"ÔÊ"Ôà"Ôö"Õ "Õ""Õ8"ÕN"Õd"Õz"Õ"Õ¦"Õ¼"ÕÒ"Õè"Õþ"Ö"Ö0"ÖL"Öb"Öx"ÖŽ"Ö¤"Öº"ÖÐ"Öæ"Öü"×"×("×>"×T"×j"×€"×–"ײ"×È"×ä"×ú"Ø"Ø&"Ø<"ØR"Øh"Ø~"Ø”"ت"ØÀ"ØÖ"Øì"Ù"Ù"Ù."ÙD"ÙZ"Ùp"Ù†"Ùœ"Ù²"ÙÈ"Ùä"Ùú"Ú"Ú&"Ú<"ÚR"Úh"Ú~"Ú”"Úª"ÚÀ"ÚÖ"Úì"Û"Û"Û."ÛD"Û`"Ûv"ÛŒ"Û¢"Û¸"ÛÎ"Ûä"Ûú"Ü"Ü&"Ü<"ÜR"Üh"Ü~"Ü”"ܪ"ÜÀ"ÜÖ"Üì"Ý"Ý"Ý."ÝD"ÝZ"Ýp"݆"Ýœ"ݲ"ÝÈ"ÝÞ"Ýô"Þ "Þ "Þ6"ÞL"Þb"Þx"ÞŽ"Þ¤"Þº"ÞÐ"Þæ"Þü"ß"ß("ß>"ßT"ßj"߀"ß–"߬"ßÂ"ߨ"ßî"à"à"à0"àF"à\"àr"àˆ"àž"à´"àÊ"àæ"àü"á"á("á>"áT"áj"á€"á–"á¬"áÂ"áØ"áî"â"â"â0"âF"â\"âr"âˆ"âž"â´"âÊ"âà"âö"ã "ã""ã8"ãN"ãd"ãz"ã"ã¦"ãÂ"ãØ"ãî"ä"ä"ä0"äF"ä\"är"äˆ"äž"ä´"äÊ"äà"äö"å "å""å8"åN"åd"åz"å"å¦"å¼"åÒ"åè"åþ"æ"æ*"æ@"æV"æl"æ‚"æ˜"æ®"æÄ"æÚ"æð"ç"ç"ç2"çH"ç^"çz"ç"ç¦"ç¼"çØ"çî"è"è"è0"èF"è\"èr"èˆ"èž"è´"èÊ"èà"èö"é "é""é8"éN"éd"éz"é"é¦"é¼"éÒ"éî"ê"ê"ê0"êF"ê\"êr"êˆ"êž"ê´"êÊ"êà"êö"ë "ë""ë8"ëN"ëd"ëz"ë"ë¦"ë¼"ëÒ"ëè"ëþ"ì"ì*"ì@"ìV"ìl"ì‚"ì˜"ì®"ìÄ"ìÚ"ìð"í"í"í2"íH"í^"ít"íŠ"í "í¶"íÌ"íâ"íø"î"î$"î:"îP"îf"î|"î’"î¨"î¾"îÔ"îê"ï"ï"ï,"ïB"ïX"ïn"ï„"ïš"ï°"ïÆ"ïÜ"ïò"ð"ð$"ð@"ðV"ðl"ð‚"ð˜"ð®"ðÊ"ðà"ðö"ñ "ñ""ñ8"ñN"ñd"ñz"ñ–"ñ¬"ñÂ"ñØ"ñî"ò"ò"ò0"òL"òb"òx"òŽ"ò¤"òº"òÐ"òæ"ó"ó"ó."óD"óZ"óv"óŒ"ó¢"ó¾"óÔ"óê"ô"ô"ô2"ôH"ô^"ôt"ôŠ"ô¦"ô¼"ôÒ"ôî"õ"õ"õ0"õF"õ\"õr"õˆ"õž"õ´"õÊ"õà"õö"ö "ö""ö8"öN"öd"öz"ö"ö¦"öÂ"öØ"öî"÷"÷"÷0"÷F"÷b"÷x"÷Ž"÷¤"÷À"÷Ö"÷ì"ø"ø"ø."øD"ø`"øv"øŒ"ø¢"ø¸"øÎ"øä"øú"ù"ù&"ù<"ùR"ùn"ù„"ùš"ù°"ùÆ"ùÜ"ùò"ú"ú"ú4"úJ"úf"ú‚"ú˜"ú®"úÄ"úÚ"úð"û"û"û2"ûH"û^"ût"ûŠ"û "û¶"ûÌ"ûâ"ûø"ü"ü$"ü:"üP"üf"ü‚"ü˜"ü®"üÄ"üÚ"üð"ý"ý"ý2"ýH"ý^"ýt"ýŠ"ý "ý¶"ýÌ"ýâ"ýø"þ"þ$"þ:"þP"þf"þ|"þ’"þ¨"þ¾"þÔ"þê"ÿ"ÿ"ÿ,"ÿB"ÿX"ÿn"ÿ„"ÿš"ÿ°"ÿÆ"ÿÜ"ÿò###4#J#`#v#Œ#¢#¸#Î#ä#ú##,#B#X#n#„#š#°#Æ#Ü#ò###4#J#`#v#Œ#¢#¸#Î#ä#ú##&#<#R#h#~#”#ª#À#Ö#ì###.#D#Z#p#†#¢#¸#Î#ä#ú##,#B#X#n#„#š#°#Æ#Ü#ò###4#J#`#v#’#®#Ä#Ú#ð###2#H#^#t#Š# #¶#Ì#â#ø##$#:#P#f#|#’#¨#¾#Ô#ê# # # ,# B# X# n# „# š# °# Æ# Ü# ò# # # 4# J# `# v# Œ# ¢# ¸# Î# ä# ú# # &# <# R# h# ~# ”# ª# À# Ö# ì# # # .# D# Z# p# †# œ# ²# È# Þ# ô# # # 6# L# b# x# Ž# ¤# º# Ð# æ# ü##(#>#T#j#€#–#¬#Â#Ø#î###0#F#\#r#ˆ#ž#´#Ê#à#ö# #"#8#N#d#z##¦#¼#Ò#è#þ##*#@#V#l#‚#˜#®#Ä#Ú#ð###2#H#^#t#Š# #¶#Ì#â#ø##$#:#P#f#|#’#¨#¾#Ô#ê###,#B#X#n#„#š#°#Æ#Ü#ø##$#:#P#f#|#’#®#Ä#Ú#ð###2#H#^#t#Š# #¶#Ì#è###0#L#b#x#Ž#ª#À#Ö#ì###.#D#Z#p#†#œ#²#È#Þ#ô# # #<#R#h#~#”#ª#À#Ö#ì###.#D#Z#p#†#œ#²#È#Þ#ô# # #6#L#b#x#Ž#¤#º#Ð#æ#ü##(#>#T#j#€#–#¬#Â#Ø#î###0#F#\#r#ˆ#ž#´#Ê#à#ö# #"#8#N#d#z##¦#¼#Ò#è#þ##*#@#V#l#‚#˜#®#Ä#Ú#ð# # # 2# H# ^# t# Š#  # ¶# Ì# â# ø#!#!$#!:#!P#!f#!|#!’#!¨#!¾#!Ô#!ê#"#"#",#"B#"X#"n#"„#"š#"°#"Æ#"Ü#"ò######4##J##`##v##Œ##¢##¸##Î##ä#$#$#$,#$B#$^#$t#$Š#$ #$¶#$Ì#$â#$ø#%#%$#%:#%P#%f#%|#%’#%¨#%¾#%Ô#%ê#&#&#&,#&B#&X#&n#&„#&š#&°#&Æ#&Ü#&ò#'#'$#':#'P#'f#'|#'’#'¨#'¾#'Ô#'ê#(#(#(,#(H#(^#(t#(Š#( #(¶#(Ì#(â#(ø#)#)$#):#)P#)f#)|#)’#)¨#)¾#)Ô#)ê#*#*#*,#*B#*X#*n#*„#*š#*°#*Æ#*Ü#*ò#+#+#+4#+J#+`#+v#+Œ#+¨#+Ä#+Ú#+ð#,#,#,2#,N#,j#,€#,–#,¬#,Â#,Ø#,î#-#-#-0#-F#-b#-x#-Ž#-¤#-º#-Ð#-ì#.#.#.4#.J#.`#.v#.’#.¨#.¾#.Ô#.ê#/#/#/,#/H#/^#/t#/Š#/ #/¶#/Ì#/â#/þ#0#00#0F#0\#0r#0Ž#0¤#0º#0Ð#0æ#0ü#1#1(#1>#1T#1j#1€#1œ#1²#1È#1Þ#1ô#2 #2 #26#2L#2b#2x#2Ž#2¤#2º#2Ð#2æ#2ü#3#3(#3>#3T#3j#3€#3–#3¬#3Â#3Ø#3î#4#4#40#4F#4\#4r#4ˆ#4ž#4´#4Ê#4à#4ö#5 #5"#58#5N#5d#5z#5#5¦#5¼#5Ò#5è#5þ#6#6*#6@#6V#6l#6‚#6˜#6®#6Ä#6Ú#6ð#7#7#72#7H#7^#7t#7Š#7 #7¶#7Ì#7â#7ø#8#8$#8:#8P#8f#8|#8’#8¨#8¾#8Ô#8ê#9#9#9,#9B#9X#9n#9„#9š#9°#9Æ#9Ü#9ò#:#:#:4#:J#:`#:v#:Œ#:¢#:¸#:Î#:ä#:ú#;#;&#;B#;X#;n#;„#;š#;°#;Æ#;Ü#;ò#<#<#<4##>$#>:#>P#>f#>|#>’#>¨#>¾#>Ô#>ê#?#?#?,#?B#?X#?n#?„#?š#?°#?Æ#?Ü#?ò#@#@#@4#@J#@`#@v#@Œ#@¢#@¸#@Î#@ä#@ú#A#A&#A<#AR#Ah#A„#Aš#A°#AÆ#AÜ#Aø#B#B0#BL#Bh#B~#Bš#B¶#BÌ#Bâ#Bø#C#C$#C:#CP#Cf#C|#C’#C¨#C¾#CÔ#Cê#D#D#D,#DB#DX#Dn#D„#Dš#D°#DÆ#DÜ#Dò#E#E#E4#EJ#E`#Ev#EŒ#E¢#E¸#EÎ#Eä#Eú#F#F&#F<#FR#Fh#F~#F”#Fª#FÀ#FÖ#Fì#G#G#G.#GD#GZ#Gp#G†#Gœ#G²#GÈ#GÞ#Gô#H #H #H6#HL#Hb#Hx#HŽ#H¤#Hº#HÐ#Hæ#Hü#I#I(#ID#IZ#Ip#I†#Iœ#I²#IÈ#IÞ#Iô#J #J #J6#JL#Jb#Jx#JŽ#Jª#JÀ#JÖ#Jì#K#K#K.#KD#KZ#Kv#KŒ#K¢#K¸#KÎ#Kä#Kú#L#L&#L<#LR#Lh#L~#L”#Lª#LÀ#LÖ#Lì#M#M#M.#MD#MZ#Mp#M†#Mœ#M²#MÈ#MÞ#Mô#N #N #N6#NL#Nb#Nx#NŽ#N¤#Nº#NÐ#Næ#Nü#O#O(#O>#OT#Oj#O€#O–#O¬#OÂ#OØ#Oî#P#P#P0#PF#P\#Pr#Pˆ#Pž#P´#PÊ#Pà#Pö#Q#Q(#Q>#QT#Qj#Q€#Q–#Q¬#QÂ#QØ#Qî#R#R#R6#RL#Rb#Rx#RŽ#R¤#Rº#RÐ#Ræ#Rü#S#S(#S>#ST#Sj#S€#S–#S¬#SÂ#SØ#Sî#T#T#T0#TF#T\#Tr#Tˆ#Tž#T´#TÊ#Tà#Tö#U #U"#U8#UN#Ud#Uz#U#U¦#U¼#UÒ#Uè#Uþ#V#V*#V@#VV#Vl#V‚#V˜#V®#VÄ#VÚ#Vð#W#W#W2#WH#W^#Wt#WŠ#W #W¶#WÌ#Wâ#Wø#X#X$#X:#XP#Xf#X|#X’#X¨#X¾#XÔ#Xê#Y#Y#Y,#YB#YX#Yn#Y„#Yš#Y°#YÆ#Yâ#Yø#Z#Z$#Z:#ZP#Zf#Z|#Z’#Z¨#Z¾#ZÔ#Zê#[#[#[,#[H#[^#[t#[Š#[ #[¶#[Ì#[â#[ø#\#\$#\@#\V#\l#\‚#\˜#\®#\Ä#\Ú#\ð#]#]#]2#]H#]^#]t#]Š#] #]¶#]Ì#]â#]ø#^#^$#^:#^P#^f#^|#^’#^¨#^¾#^Ô#^ê#_#_#_,#_B#_X#_n#_„#_š#_°#_Æ#_Ü#_ò#`#`#`4#`J#``#`v#`Œ#`¢#`¸#`Î#`ä#`ú#a#a&#a<#aR#ah#a~#a”#aª#aÀ#aÖ#aì#b#b#b.#bD#bZ#bp#b†#bœ#b²#bÈ#bÞ#bô#c#c&#c<#cR#ch#c~#c”#cª#cÀ#cÖ#cì#d#d#d.#dD#dZ#dp#d†#dœ#d²#dÈ#dÞ#dô#e #e #e<#eR#eh#e~#e”#eª#eÆ#eÜ#eò#f#f#f:#fP#ff#f|#f’#f¨#f¾#fÔ#fê#g#g#g,#gB#gX#gn#g„#gš#g°#gÆ#gÜ#gò#h#h#h4#hJ#h`#hv#hŒ#h¢#h¸#hÎ#hä#hú#i#i&#i<#iR#ih#i~#i”#iª#iÀ#iÖ#iì#j#j#j.#jD#jZ#jp#j†#jœ#j²#jÈ#jÞ#jô#k #k #k6#kL#kb#kx#kŽ#k¤#kº#kÐ#kæ#kü#l#l(#l>#lT#lj#l€#l–#l¬#lÂ#lØ#lî#m#m#m0#mF#m\#mr#mˆ#mž#m´#mÊ#mæ#mü#n#n(#n>#nT#nj#n€#n–#n¬#nÂ#nØ#nî#o#o#o0#oF#o\#or#oˆ#ož#o´#oÊ#oà#oö#p #p"#p8#pN#pd#pz#p#p¦#p¼#pÒ#pè#pþ#q#q*#q@#qV#ql#q‚#q˜#q®#qÄ#qÚ#qð#r#r#r2#rH#r^#rt#rŠ#r #r¶#rÌ#râ#rø#s#s$#s:#sP#sf#s|#s’#s¨#s¾#sÔ#sê#t#t#t2#tH#t^#tt#tŠ#t #t¶#tÌ#tâ#tø#u#u$#u:#uP#uf#u|#u’#u¨#uÄ#uÚ#uð#v#v#v2#vH#v^#vt#vŠ#v #v¶#vÌ#vâ#vþ#w#w*#w@#wV#wl#w‚#w˜#w®#wÄ#wÚ#wð#x#x#x2#xH#x^#xt#xŠ#x #x¶#xÌ#xâ#xø#y#y$#y:#yP#yf#y|#y’#y¨#y¾#yÔ#yð#z#z#z2#zH#z^#zt#zŠ#z #z¶#zÌ#zè#zþ#{#{*#{@#{V#{l#{‚#{˜#{®#{Ä#{Ú#{ð#|#|#|2#|H#|^#|t#|Š#| #|¶#|Ì#|â#|ø#}#}$#}@#}V#}l#}‚#}˜#}®#}Ä#}Ú#}ð#~#~#~2#~H#~^#~t#~Š#~ #~¼#~Ò#~è#~þ##0#F#\#r#ˆ#ž#´#Ê#à#ö#€ #€"#€8#€N#€d#€z#€#€¦#€¼#€Ò#€è#€þ##*#@#V#l#‚#˜#®#Ä#Ú#ð#‚#‚#‚2#‚H#‚^#‚t#‚Š#‚ #‚¼#‚Ò#‚è#‚þ#ƒ#ƒ*#ƒF#ƒ\#ƒr#ƒˆ#ƒž#ƒº#ƒÖ#ƒì#„#„#„4#„J#„`#„v#„Œ#„¢#„¸#„Ô#„ê#…#…#…2#…H#…^#…t#…Š#… #…¶#…Ì#…â#…ø#†#†$#†@#†V#†l#†‚#†˜#†®#†Ä#†à#†ö#‡ #‡"#‡8#‡N#‡d#‡z#‡#‡¬#‡Â#‡Ø#‡î#ˆ#ˆ#ˆ0#ˆL#ˆb#ˆx#ˆŽ#ˆ¤#ˆº#ˆÖ#ˆì#‰#‰#‰.#‰D#‰Z#‰p#‰†#‰œ#‰²#‰È#‰Þ#‰ú#Š#Š&#Š<#ŠR#Šh#Š~#Šš#ж#ŠÌ#Šâ#Šø#‹#‹$#‹:#‹P#‹f#‹|#‹’#‹¨#‹¾#‹Ô#‹ê#Œ#Œ#Œ,#ŒB#ŒX#Œn#Œ„#Œš#Œ°#ŒÆ#Œâ#Œø##$#:#P#f#|#˜#®#Ä#Ú#ð#Ž #Ž"#Ž8#ŽN#Žd#Ž€#Ž–#ެ#ŽÈ#Žä#Žú##&#<#R#n#„# #¶#Ì#â#ø##*#@#V#l#‚#ž#´#Ê#à#ö#‘ #‘"#‘8#‘N#‘d#‘z#‘#‘¦#‘Â#‘Ø#‘î#’#’#’0#’F#’\#’r#’ˆ#’ž#’º#’Ð#’æ#’ü#“#“(#“>#“T#“j#“€#“–#“²#“È#“Þ#“ú#”#”&#”<#”R#”h#”~#””#”ª#”À#”Ö#”ì#•#•#•.#•D#•Z#•p#•†#•œ#•²#•È#•Þ#•ô#– #– #–6#–R#–n#–„#–š#–°#–Æ#–Ü#–ò#—#—#—4#—J#—`#—v#—Œ#—¢#—¸#—Î#—ä#—ú#˜#˜&#˜<#˜R#˜h#˜~#˜”#˜ª#˜À#˜Ö#˜ì#™#™#™.#™D#™Z#™p#™†#™œ#™²#™È#™Þ#™ô#š #š #š6#šL#šb#šx#šŽ#š¤#šº#šÐ#šæ#šü#›#›(#›>#›T#›j#›€#›–#›¬#›Â#›Ø#›î#œ#œ#œ0#œF#œ\#œr#œˆ#œž#œ´#œÊ#œà#œö# #"#>#T#j#€#–#¬#Â#Ø#ô#ž #ž #ž6#žL#žb#žx#žŽ#ž¤#žº#žÐ#žæ#žü#Ÿ#Ÿ(#Ÿ>#ŸT#Ÿj#Ÿ†#Ÿœ#Ÿ²#ŸÈ#ŸÞ#Ÿô#  #  # 6# R# h# ~# ”# ª# À# Ö# ì#¡#¡#¡.#¡D#¡Z#¡p#¡†#¡œ#¡¸#¡Ô#¡ê#¢#¢#¢,#¢B#¢^#¢t#¢Š#¢ #¢¶#¢Ì#¢â#¢ø#£#£$#£:#£P#£f#£|#£’#£¨#£Ä#£Ú#£ö#¤ #¤"#¤8#¤N#¤d#¤z#¤#¤¦#¤¼#¤Ø#¤î#¥#¥#¥0#¥F#¥b#¥x#¥Ž#¥¤#¥º#¥Ð#¥æ#¥ü#¦#¦(#¦>#¦T#¦j#¦€#¦–#¦¬#¦Â#¦Ø#¦î#§#§#§0#§F#§\#§r#§ˆ#§ž#§´#§Ê#§à#§ö#¨ #¨"#¨8#¨N#¨d#¨€#¨–#¨¬#¨È#¨ä#¨ú#©#©&#©<#©R#©h#©~#©”#©ª#©À#©Ö#©ì#ª#ª#ª.#ªD#ªZ#ªp#ª†#ªœ#ª²#ªÈ#ªÞ#ªô#« #« #«6#«L#«b#«x#«Ž#«¤#«º#«Ð#«æ#«ü#¬#¬(#¬>#¬T#¬j#¬€#¬–#¬¬#¬Â#¬Ø#¬î#­#­#­0#­F#­\#­r#­ˆ#­ž#­º#­Ð#­æ#­ü#®#®(#®>#®T#®j#®€#®–#®¬#®Â#®Ø#®î#¯#¯#¯0#¯F#¯\#¯r#¯ˆ#¯ž#¯´#¯Ê#¯à#¯ü#°#°(#°>#°T#°j#°€#°–#°¬#°Â#°Ø#°î#±#±#±0#±F#±\#±r#±ˆ#±ž#±´#±Ê#±à#±ö#² #²"#²8#²N#²d#²z#²#²¦#²¼#²Ò#²è#²þ#³#³*#³@#³V#³l#³‚#³˜#³®#³Ä#³Ú#³ð#´#´#´2#´H#´^#´t#´Š#´ #´¶#´Ì#´â#´ø#µ#µ$#µ:#µP#µf#µ|#µ’#µ¨#µ¾#µÔ#µê#¶#¶#¶,#¶B#¶X#¶n#¶„#¶š#¶°#¶Æ#¶Ü#¶ò#·#·#·4#·J#·f#·|#·’#·¨#·¾#·Ô#·ê#¸#¸#¸,#¸B#¸X#¸n#¸„#¸š#¸°#¸Æ#¸Ü#¸ò#¹#¹#¹:#¹P#¹f#¹|#¹’#¹¨#¹¾#¹Ô#¹ê#º#º#º,#ºB#ºX#ºn#º„#ºš#º°#ºÆ#ºÜ#ºò#»#»#»4#»J#»`#»v#»Œ#»¢#»¸#»Î#»ä#»ú#¼#¼&#¼<#¼R#¼h#¼~#¼”#¼ª#¼Æ#¼Ü#¼ò#½#½#½4#½J#½`#½v#½Œ#½¢#½¸#½Î#½ê#¾#¾#¾,#¾B#¾X#¾t#¾#¾¦#¾¼#¾Ò#¾è#¾þ#¿#¿*#¿@#¿V#¿l#¿‚#¿˜#¿®#¿Ä#¿Ú#¿ð#À #À"#À8#ÀN#Àd#Àz#À#À¦#À¼#ÀÒ#Àè#Àþ#Á#Á*#Á@#Á\#Ár#Áˆ#Áž#Á´#ÁÊ#Áæ#Áü#Â#Â.#ÂD#ÂZ#Âp#†#¢#¸#ÂÎ#Âä#Âú#Ã#Ã&#Ã<#ÃR#Ãh#Ã~#Ú#ð#ÃÆ#ÃÜ#Ãò#Ä#Ä#Ä4#ÄJ#Ä`#Äv#ÄŒ#Ĩ#ľ#ÄÔ#Äê#Å#Å#Å2#ÅH#Å^#Åt#ÅŠ#Å #Ŷ#ÅÒ#Åè#Åþ#Æ#Æ0#ÆF#Æ\#Ær#ƈ#Ƥ#ƺ#ÆÖ#Æì#Ç#Ç#Ç.#ÇD#ÇZ#Çp#dž#Çœ#Dz#ÇÈ#Çä#Çú#È#È&#È<#ÈR#Èn#È„#Èš#Ȱ#ÈÆ#ÈÜ#Èò#É#É#É4#ÉP#Éf#É|#É’#É®#ÉÄ#ÉÚ#Éð#Ê#Ê#Ê2#ÊH#Ê^#Êt#ÊŠ#Ê #ʶ#ÊÌ#Êè#Êþ#Ë#Ë*#Ë@#ËV#Ël#Ë‚#˘#Ë®#ËÄ#ËÚ#Ëö#Ì #Ì(#Ì>#ÌT#Ìj#Ì€#Ì–#̬#ÌÂ#ÌÞ#Ìô#Í #Í #Í<#ÍR#Íh#Í~#Í”#ͪ#ÍÀ#ÍÖ#Íì#Î#Î#Î4#ÎJ#Î`#Îv#ÎŒ#΢#θ#ÎÎ#Îä#Îú#Ï#Ï,#ÏB#Ï^#Ït#ÏŠ#Ï #϶#ÏÒ#Ïè#Ïþ#Ð#Ð0#ÐF#Ð\#Ðr#Ј#О#д#ÐÐ#Ðæ#Ðü#Ñ#Ñ(#Ñ>#ÑT#Ñj#Ñ€#Ñ–#Ѭ#ÑÂ#ÑØ#Ñî#Ò#Ò#Ò0#ÒF#Ò\#Òx#ÒŽ#Ò¤#Òº#ÒÐ#Òæ#Òü#Ó#Ó(#Ó>#ÓT#Ój#Ó€#Ó–#Ó¬#ÓÂ#ÓØ#Óô#Ô #Ô #Ô6#ÔL#Ôb#Ôx#ÔŽ#Ô¤#Ôº#ÔÐ#Ôæ#Ôü#Õ#Õ(#Õ>#ÕT#Õj#Õ€#Õ–#Õ¬#ÕÂ#ÕØ#Õî#Ö#Ö#Ö0#ÖF#Ö\#Ör#Öˆ#Öž#Ö´#ÖÊ#Öà#Öö#× #×"#×8#×N#×d#×z#×#צ#×¼#×Ò#×è#×þ#Ø#Ø0#ØF#Øb#Øx#ØŽ#ؤ#غ#ØÐ#Øæ#Øü#Ù#Ù(#Ù>#ÙZ#Ùp#Ù†#Ùœ#Ù²#ÙÈ#ÙÞ#Ùô#Ú #Ú #Ú6#ÚL#Úb#Úx#ÚŽ#Ú¤#Úº#ÚÐ#Úæ#Úü#Û#Û(#Û>#ÛT#Ûj#Û€#Û–#Û¬#ÛÂ#ÛØ#Ûî#Ü#Ü#Ü0#ÜF#Üh#Ü~#Ü”#ܪ#ÜÀ#ÜÖ#Üì#Ý#Ý#Ý.#ÝD#ÝZ#Ýp#݆#Ýœ#ݲ#ÝÈ#ÝÞ#Ýô#Þ #Þ #Þ6#ÞL#Þb#Þx#Þ”#Þª#ÞÀ#ÞÖ#Þì#ß#ß#ß.#ßD#ßZ#ßp#߆#ßœ#ß²#ßÈ#ßÞ#ßô#à #à #à6#àL#àb#àx#àŽ#à¤#àº#àÐ#àæ#àü#á#á(#á>#áT#áj#á€#á–#á¬#áÂ#áØ#áî#â#â#â0#âF#â\#âr#âˆ#âž#â´#âÊ#âà#âö#ã #ã"#ã8#ãN#ãd#ãz#ã#ã¦#ã¼#ãÒ#ãè#ãþ#ä#ä*#äF#ä\#är#äˆ#äž#ä´#äÊ#äà#äö#å #å"#å8#åN#åd#åz#å#å¦#å¼#åÒ#åî#æ#æ#æ0#æF#æ\#ær#æˆ#æž#æ´#æÊ#æà#æö#ç #ç"#ç8#çN#çd#çz#ç#ç¦#çÂ#çØ#çî#è #è #è6#èL#èh#è„#èš#è°#èÆ#èÜ#èò#é#é#é4#éJ#é`#év#éŒ#é¢#é¸#éÎ#éä#éú#ê#ê&#ê<#êR#êh#ê~#êš#ê°#êÆ#êÜ#êò#ë#ë#ë4#ëJ#ë`#ëv#ëŒ#ë¢#ë¸#ëÎ#ëä#ëú#ì#ì&#ì<#ìR#ìh#ì~#ì”#ìª#ìÀ#ìÖ#ìì#í#í#í.#íD#íZ#íp#í†#íœ#í²#íÈ#íÞ#íô#î #î #î6#îL#îb#î~#î”#îª#îÀ#îÖ#îì#ï#ï#ï.#ïD#ïZ#ïp#ï†#ïœ#ï¸#ïÎ#ïä#ïú#ð#ð&#ð<#ðR#ðh#ð~#ð”#ðª#ðÀ#ðÖ#ðì#ñ#ñ#ñ.#ñD#ñZ#ñp#ñ†#ñœ#ñ²#ñÈ#ñÞ#ñô#ò #ò #ò6#òL#òb#òx#òŽ#ò¤#òº#òÐ#òæ#ó#ó#ó.#óD#óZ#óp#ó†#óœ#ó²#óÈ#óÞ#óô#ô #ô #ô6#ôL#ôb#ôx#ôŽ#ô¤#ôº#ôÐ#ôæ#ôü#õ#õ(#õ>#õT#õj#õ€#õ–#õ¬#õÂ#õØ#õî#ö#ö#ö0#öF#ö\#ör#öˆ#öž#ö´#öÊ#öà#öö#÷ #÷(#÷>#÷T#÷j#÷€#÷–#÷¬#÷Â#÷Ø#÷î#ø#ø #ø6#øL#øb#øx#øŽ#ø¤#øº#øÐ#øæ#øü#ù#ù(#ù>#ùT#ùj#ù€#ù–#ù¬#ùÂ#ùØ#ùî#ú#ú#ú0#úF#ú\#úr#úˆ#úž#ú´#úÊ#úà#úö#û #û"#û>#ûT#ûj#û€#û–#û¬#ûÂ#ûØ#ûî#ü#ü#ü0#üF#ü\#ür#üˆ#üž#üº#üÐ#üæ#üü#ý#ý(#ý>#ýT#ýj#ý€#ý–#ý¬#ýÂ#ýØ#ýî#þ #þ #þ6#þL#þb#þx#þŽ#þ¤#þº#þÐ#þæ#þü#ÿ#ÿ(#ÿ>#ÿT#ÿj#ÿ€#ÿ–#ÿ¬#ÿÂ#ÿØ#ÿî$$$0$F$\$x$”$ª$À$Ö$ì$$$.$D$Z$p$†$œ$²$È$Þ$ô$ $ $6$L$b$x$Ž$¤$º$Ð$æ$ü$$.$D$Z$p$†$œ$²$È$Þ$ô$ $ $6$L$b$x$”$ª$À$Ö$ì$$$.$D$Z$p$†$œ$²$È$Þ$ô$ $ $6$R$h$~$”$ª$À$Ö$ì$$$.$D$Z$p$†$œ$²$È$ä$ú$$&$<$R$h$~$”$ª$À$Ö$ì$ $ $ .$ D$ Z$ p$ †$ œ$ ²$ È$ Þ$ ô$ $ $ 6$ L$ b$ x$ Ž$ ¤$ º$ Ð$ æ$ $ $ .$ D$ Z$ p$ †$ œ$ ²$ È$ Þ$ ô$ $ $ 6$ L$ b$ x$ Ž$ ¤$ À$ Ö$ ì$ $ $ .$ D$ Z$ p$ †$ œ$ ²$ È$ Þ$ ô$ $ $6$L$b$x$Ž$¤$º$Ð$æ$ü$$($D$Z$p$†$œ$²$È$Þ$ô$ $ $6$R$h$~$”$ª$À$Ö$ì$$$4$J$`$v$Œ$¢$¸$Î$ä$ú$$&$<$R$h$~$”$°$Æ$Ü$ò$$$4$J$`$v$Œ$¢$¸$Î$ä$ú$$&$<$R$h$~$”$ª$À$Ö$ì$$$4$J$`$v$Œ$¢$¸$Î$ä$ú$$&$B$X$n$„$š$°$Æ$â$ø$$$$:$V$r$ˆ$ž$´$Ê$à$ö$ $"$>$T$j$€$œ$²$Î$ä$ú$$&$<$R$h$~$š$°$Æ$Ü$ò$$$4$J$`$v$Œ$¢$¸$Î$ä$ú$$&$<$R$h$~$”$ª$À$Ö$ì$$$.$D$Z$v$Œ$¢$¸$Î$ä$ú$$&$<$R$h$~$š$°$Æ$Ü$ò$$$4$J$`$v$Œ$¢$¸$Î$ê$$$2$H$^$t$Š$ $¶$Ì$â$ø$ $ $$ :$ P$ f$ |$ ’$ ¨$ ¾$ Ô$ ê$!$!$!2$!H$!^$!t$!Š$! $!¼$!Ò$!è$!þ$"$"*$"@$"V$"l$"‚$"˜$"®$"Ä$"Ú$"ð$#$#$#2$#H$#^$#t$#Š$# $#¶$#Ì$#â$#ø$$$$$$$:$$P$$f$$|$$’$$¨$$¾$$Ô$$ê$%$%$%,$%B$%X$%t$%Š$% $%¶$%Ì$%â$%ø$&$&$$&:$&P$&f$&|$&’$&¨$&¾$&Ô$&ê$'$'$',$'B$'X$'n$'„$'š$'°$'Æ$'Ü$'ò$($($(4$(P$(f$(|$(’$(¨$(¾$(Ú$(ð$)$)$)8$)N$)d$)z$)$)¦$)¼$)Ò$)è$)þ$*$**$*@$*V$*l$*‚$*˜$*®$*Ä$*Ú$*ð$+$+$+2$+H$+^$+t$+Š$+ $+¶$+Ì$+â$+ø$,$,$$,:$,P$,f$,|$,’$,¨$,¾$,Ô$,ð$-$-$-2$-H$-^$-t$-Š$- $-¶$-Ì$-â$-ø$.$.$$.@$.V$.l$.‚$.˜$.®$.Ä$.Ú$.ð$/$/$/2$/H$/^$/t$/Š$/ $/¶$/Ì$/â$/þ$0$0*$0@$0V$0r$0ˆ$0¤$0º$0Ð$0æ$0ü$1$1($1>$1T$1j$1€$1–$1¬$1Â$1Ø$1î$2$2$20$2F$2\$2r$2ˆ$2ž$2´$2Ê$2à$2ö$3 $3"$38$3N$3d$3z$3$3¦$3¼$3Ò$3è$3þ$4$4*$4F$4\$4r$4ˆ$4ž$4´$4Ê$4à$4ö$5 $5"$58$5N$5j$5†$5¢$5¸$5Î$5ä$5ú$6$6&$6B$6X$6n$6„$6š$6°$6Ì$6â$6ø$7$7$$7:$7P$7f$7|$7’$7¨$7¾$7Ô$7ê$8$8$8,$8B$8X$8n$8„$8š$8°$8Æ$8Ü$8ò$9$9$94$9J$9`$9v$9Œ$9¢$9¸$9Î$9ä$9ú$:$:&$:<$:R$:n$:„$:š$:¶$:Ì$:â$:ø$;$;$$;:$;P$;f$;|$;’$;¨$;¾$;Ô$;ê$<$<$<,$$>$>2$>H$>^$>t$>Š$> $>¶$>Ì$>â$>ø$?$?$$?:$?P$?f$?|$?’$?¨$?¾$?Ô$?ê$@$@$@,$@B$@X$@n$@„$@š$@¶$@Ì$@è$@þ$A$A*$A@$AV$Al$A‚$A˜$A®$AÄ$AÚ$Að$B $B"$B8$BN$Bd$Bz$B$B¦$B¼$BÒ$Bè$Bþ$C$C*$C@$CV$Cl$C‚$C˜$C®$CÄ$Cà$Cö$D $D"$D8$DN$Dd$Dz$D$D¦$D¼$DÒ$Dè$Dþ$E$E*$E@$EV$El$Eˆ$Ež$E´$EÊ$Eà$Eö$F $F($F>$FT$Fj$F€$Fœ$F²$FÈ$FÞ$Fô$G $G $G6$GL$Gb$Gx$GŽ$G¤$Gº$GÐ$Gæ$Gü$H$H($H>$HT$Hj$H€$H–$H¬$HÂ$HØ$Hî$I$I$I0$IF$I\$Ir$Iˆ$Iž$I´$IÊ$Ià$Iö$J $J"$J8$JN$Jd$Jz$J$J¦$J¼$JÒ$Jè$K$K$K0$KF$K\$Kr$Kˆ$Kž$K´$KÊ$Kà$Kö$L $L"$L8$LN$Ld$Lz$L$L¦$L¼$LÒ$Lè$Lþ$M$M*$M@$MV$Ml$M‚$M˜$M®$MÄ$MÚ$Mð$N$N$N2$NH$N^$Nt$NŠ$N $N¶$NÌ$Nâ$Nø$O$O$$O:$OP$Of$O|$O’$O¨$O¾$OÔ$Oê$P$P$P,$PB$PX$Pn$P„$Pš$P¶$PÒ$Pî$Q $Q&$QB$Q^$Qz$Q–$Q²$QÎ$Qê$R$R"$R>$RZ$Rv$R’$R®$RÊ$Ræ$S$S$S:$SV$Sr$SŽ$S¤$SÀ$SÜ$Sø$T$T0$TL$Th$T„$T $T¼$TØ$Tô$U$U,$UH$Ud$U€$Uœ$U¸$UÔ$Uð$V $V($VD$V`$V|$V˜$V®$VÊ$Væ$W$W$W:$WV$Wr$WŽ$Wª$WÆ$Wâ$Wþ$X$X6$XR$Xn$XŠ$X¦$XÂ$XÞ$Xú$Y$Y2$YN$Yj$Y†$Y¢$Y¸$YÔ$Yð$Z $Z($ZD$Z`$Z|$Z˜$Z´$ZÐ$Zì$[$[$$[@$[\$[x$[”$[°$[Ì$[è$\$\ $\<$\X$\t$\$\¬$\Â$\Þ$\ú$]$]2$]N$]j$]†$]¢$]¾$]Ú$]ö$^$^.$^J$^f$^‚$^ž$^º$^Ö$^ò$_$_*$_F$_b$_~$_š$_¶$_Ì$_è$`$` $`<$`X$`t$`$`¬$`È$`ä$a$a$a8$aT$ap$aŒ$a¨$aÄ$aà$aü$b$b4$bP$bl$bˆ$b¤$bÀ$bÖ$bò$c$c*$cF$cb$c~$cš$c¶$cÒ$cî$d $d&$dB$d^$dz$d–$d²$dÎ$dê$e$e"$e>$eZ$ev$e’$e®$eÊ$eà$eü$f$f4$fP$fl$fˆ$f¤$fÀ$fÜ$fø$g$g0$gL$gh$g„$g $g¼$gØ$gô$h$h,$hH$hd$h€$hœ$h¸$hÔ$hê$i$i"$i>$iZ$iv$i’$i®$iÊ$iæ$j$j$j:$jV$jr$jŽ$jª$jÆ$jâ$jþ$k$k6$kR$kn$kŠ$k¦$kÂ$kÞ$kô$l$l,$lH$ld$l€$lœ$l¸$lÔ$lð$m $m($mD$m`$m|$m˜$m´$mÐ$mì$n$n$$n@$n\$nx$n”$n°$nÌ$nè$nþ$o$o6$oR$on$oŠ$o¦$oÂ$oÞ$oú$p$p2$pN$pj$p†$p¢$p¾$pÚ$pö$q$q.$qJ$qf$q‚$qž$qº$qÖ$qò$r$r$$r@$r\$rx$r”$r°$rÌ$rè$s$s $s<$sX$st$s$s¬$sÈ$sä$t$t$t8$tT$tp$tŒ$t¨$tÄ$tà$tü$u$u.$uJ$uf$u‚$už$uº$uÖ$uò$v$v*$vF$vb$v~$vš$v¶$vÒ$vî$w $w&$wB$w^$wz$w–$w²$wÎ$wê$x$x$x8$xT$xp$xŒ$x¨$xÄ$xà$xü$y$y4$yP$yl$yˆ$y¤$yÀ$yÜ$yø$z$z0$zL$zh$z„$z $z¼$zØ$zô${${&${B${^${z${–${²${Î${ê$|$|"$|>$|Z$|v$|’$|®$|Ê$|æ$}$}$}:$}V$}r$}Ž$}ª$}Æ$}â$}þ$~$~0$~L$~h$~„$~ $~¼$~Ø$~ô$$,$H$d$€$œ$¸$Ô$ð$€ $€($€D$€`$€|$€˜$€´$€Ð$€ì$$$$:$V$r$Ž$ª$Æ$â$þ$‚$‚6$‚R$‚n$‚Š$‚¦$‚Â$‚Þ$‚ú$ƒ$ƒ2$ƒN$ƒj$ƒ†$ƒ¢$ƒ¾$ƒÚ$ƒö$„$„.$„D$„`$„|$„˜$„´$„Ð$„ì$…$…$$…@$…\$…x$…”$…°$…Ì$…è$†$† $†<$†X$†t$†$†¬$†È$†ä$‡$‡$‡8$‡N$‡j$‡†$‡¢$‡¾$‡Ú$‡ö$ˆ$ˆ.$ˆJ$ˆf$ˆ‚$ˆž$ˆº$ˆÖ$ˆò$‰$‰*$‰F$‰b$‰~$‰š$‰¶$‰Ò$‰î$Š $Š&$ŠB$ŠX$Št$Š$Ь$ŠÈ$Šä$‹$‹$‹8$‹T$‹p$‹Œ$‹¨$‹Ä$‹à$‹ü$Œ$Œ4$ŒP$Œl$Œˆ$Œ¤$ŒÀ$ŒÜ$Œø$$0$L$b$~$š$¶$Ò$î$Ž $Ž&$ŽB$Ž^$Žz$Ž–$޲$ŽÎ$Žê$$"$>$Z$v$’$®$Ê$æ$$$:$V$l$ˆ$¤$À$Ü$ø$‘$‘0$‘L$‘h$‘„$‘ $‘¼$‘Ø$‘ô$’$’,$’H$’d$’€$’œ$’¸$’Ô$’ð$“ $“($“D$“`$“v$“’$“®$“Ê$“æ$”$”$”:$”V$”r$”Ž$”ª$”Æ$”â$”þ$•$•6$•R$•n$•Š$•¦$•Â$•Þ$•ú$–$–2$–N$–j$–€$–œ$–¸$–Ô$–ð$— $—($—D$—`$—|$—˜$—´$—Ð$—ì$˜$˜$$˜@$˜\$˜x$˜”$˜°$˜Ì$˜è$™$™ $™<$™X$™t$™Š$™¦$™Â$™Þ$™ú$š$š2$šN$šj$š†$š¢$š¾$šÚ$šö$›$›.$›J$›f$›‚$›ž$›º$›Ö$›ò$œ$œ*$œF$œb$œ~$œ”$œ°$œÌ$œè$$ $<$X$t$$¬$È$ä$ž$ž$ž8$žT$žp$žŒ$ž¨$žÄ$žà$žü$Ÿ$Ÿ4$ŸP$Ÿl$Ÿˆ$Ÿž$Ÿº$ŸÖ$Ÿò$ $ *$ F$ b$ ~$ š$ ¶$ Ò$ î$¡ $¡&$¡B$¡^$¡z$¡–$¡²$¡Î$¡ê$¢$¢"$¢>$¢Z$¢v$¢’$¢¨$¢Ä$¢à$¢ü$£$£4$£P$£l$£ˆ$£¤$£À$£Ü$£ø$¤$¤0$¤L$¤h$¤„$¤ $¤¼$¤Ø$¤ô$¥$¥,$¥H$¥d$¥€$¥œ$¥²$¥Î$¥ê$¦$¦"$¦>$¦Z$¦v$¦’$¦®$¦Ê$¦æ$§$§$§:$§V$§r$§Ž$§ª$§Æ$§â$§þ$¨$¨6$¨R$¨n$¨Š$¨¦$¨¼$¨Ø$¨ô$©$©,$©H$©d$©€$©œ$©¸$©Ô$©ð$ª $ª($ªD$ª`$ª|$ª˜$ª´$ªÐ$ªì$«$«$$«@$«\$«x$«”$«°$«Æ$«â$«þ$¬$¬6$¬R$¬n$¬Š$¬¦$¬Â$¬Þ$¬ú$­$­2$­N$­j$­†$­¢$­¾$­Ú$­ö$®$®.$®J$®f$®‚$®ž$®º$®Ð$®ì$¯$¯$$¯@$¯\$¯x$¯”$¯°$¯Ì$¯è$°$° $°<$°X$°t$°$°¬$°È$°ä$±$±$±8$±T$±p$±Œ$±¨$±Ä$±Ú$±ö$²$².$²J$²f$²‚$²ž$²º$²Ö$²ò$³$³*$³F$³b$³~$³š$³¶$³Ò$³î$´ $´&$´B$´^$´z$´–$´²$´Î$´ä$µ$µ$µ8$µT$µp$µŒ$µ¨$µÄ$µà$µü$¶$¶4$¶P$¶l$¶ˆ$¶¤$¶À$¶Ü$¶ø$·$·0$·L$·h$·„$· $·¼$·Ø$·î$¸ $¸&$¸B$¸^$¸z$¸–$¸²$¸Î$¸ê$¹$¹"$¹>$¹Z$¹v$¹’$¹®$¹Ê$¹æ$º$º$º:$ºV$ºr$ºŽ$ºª$ºÆ$ºâ$ºø$»$»0$»L$»h$»„$» $»¼$»Ø$»ô$¼$¼,$¼H$¼d$¼€$¼œ$¼¸$¼Ô$¼ð$½ $½($½D$½`$½|$½˜$½´$½Ð$½ì$¾$¾$¾:$¾V$¾r$¾Ž$¾ª$¾Æ$¾â$¾þ$¿$¿6$¿R$¿n$¿Š$¿¦$¿Â$¿Þ$¿ú$À$À2$ÀN$Àj$À†$À¢$À¾$ÀÚ$Àö$Á $Á($ÁD$Á`$Á|$Á˜$Á´$ÁÐ$Áì$Â$Â$$Â@$Â\$Âx$”$°$ÂÌ$Âè$Ã$à $Ã<$ÃX$Ãt$Ã$ì$ÃÈ$Ãä$Ä$Ä$Ä2$ÄN$Äj$Ć$Ä¢$ľ$ÄÚ$Äö$Å$Å.$ÅJ$Åf$Å‚$Åž$ź$ÅÖ$Åò$Æ$Æ*$ÆF$Æb$Æ~$Æš$ƶ$ÆÒ$Æî$Ç $Ç $Ç<$ÇX$Çt$Ç$Ǭ$ÇÈ$Çä$È$È$È8$ÈT$Èp$ÈŒ$Ȩ$ÈÄ$Èà$Èü$É$É4$ÉP$Él$Ɉ$ɤ$ÉÀ$ÉÜ$Éø$Ê$Ê*$ÊF$Êb$Ê~$Êš$ʶ$ÊÒ$Êî$Ë $Ë&$ËB$Ë^$Ëz$Ë–$˲$ËÎ$Ëê$Ì$Ì"$Ì>$ÌZ$Ìv$Ì’$Ì®$ÌÊ$Ìæ$Í$Í$Í4$ÍP$Íl$͈$ͤ$ÍÀ$ÍÜ$Íø$Î$Î0$ÎL$Îh$΄$Π$μ$ÎØ$Îô$Ï$Ï,$ÏH$Ïd$Ï€$Ïœ$ϸ$ÏÔ$Ïð$Ð $Ð($Ð>$ÐZ$Ðv$Ð’$Ю$ÐÊ$Ðæ$Ñ$Ñ$Ñ:$ÑV$Ñr$ÑŽ$Ѫ$ÑÆ$Ñâ$Ñþ$Ò$Ò6$ÒR$Òn$ÒŠ$Ò¦$ÒÂ$ÒÞ$Òú$Ó$Ó2$ÓH$Ód$Ó€$Óœ$Ó¸$ÓÔ$Óð$Ô $Ô($ÔD$Ô`$Ô|$Ô˜$Ô´$ÔÐ$Ôì$Õ$Õ$$Õ@$Õ\$Õx$Õ”$Õ°$ÕÌ$Õè$Ö$Ö $Ö<$ÖR$Ön$ÖŠ$Ö¦$ÖÂ$ÖÞ$Öú$×$×2$×N$×j$׆$×¢$×¾$×Ú$×ö$Ø$Ø.$ØJ$Øf$Ø‚$Øž$غ$ØÖ$Øò$Ù$Ù*$ÙF$Ù\$Ùx$Ù”$Ù°$ÙÌ$Ùè$Ú$Ú $Ú<$ÚX$Út$Ú$Ú¬$ÚÈ$Úä$Û$Û$Û8$ÛT$Ûp$ÛŒ$Û¨$ÛÄ$Ûà$Ûü$Ü$Ü4$ÜP$Üf$Ü‚$Üž$ܺ$ÜÖ$Üò$Ý$Ý*$ÝF$Ýb$Ý~$Ýš$ݶ$ÝÒ$Ýî$Þ $Þ&$ÞB$Þ^$Þz$Þ–$Þ²$ÞÎ$Þê$ß$ß"$ß>$ßZ$ßp$ߌ$ߨ$ßÄ$ßà$ßü$à$à4$àP$àl$àˆ$à¤$àÀ$àÜ$àø$á$á0$áL$áh$á„$á $á¼$áØ$áô$â$â,$âH$âd$âz$â–$â²$âÎ$âê$ã$ã"$ã>$ãZ$ãv$ã’$ã®$ãÊ$ãæ$ä$ä$ä:$äV$är$äŽ$äª$äÆ$äâ$äþ$å$å6$åR$ån$å„$å $å¼$åØ$åô$æ$æ,$æH$æd$æ€$æœ$æ¸$æÔ$æð$ç $ç($çD$ç`$ç|$ç˜$ç´$çÐ$çì$è$è$$è@$è\$èx$èŽ$èª$èÆ$èâ$èþ$é$é6$éR$én$éŠ$é¦$éÂ$éÞ$éú$ê$ê2$êN$êj$ê†$ê¢$ê¾$êÚ$êö$ë$ë.$ëJ$ëf$ë‚$ë˜$ë´$ëÐ$ëì$ì$ì$$ì@$ì\$ìx$ì”$ì°$ìÌ$ìè$í$í $í<$íX$ít$í$í¬$íÈ$íä$î$î$î8$îT$îp$îŒ$î¢$î¾$îÚ$îö$ï$ï.$ïJ$ïf$ï‚$ïž$ïº$ïÖ$ïò$ð$ð*$ðF$ðb$ð~$ðš$ð¶$ðÒ$ðî$ñ $ñ&$ñB$ñ^$ñz$ñ–$ñ¬$ñÈ$ñä$ò$ò$ò8$òT$òp$òŒ$ò¨$òÄ$òà$òü$ó$ó4$óP$ól$óˆ$ó¤$óÀ$óÜ$óø$ô$ô0$ôL$ôh$ô„$ô $ô¶$ôÒ$ôî$õ $õ&$õB$õ^$õz$õ–$õ²$õÎ$õê$ö$ö"$ö>$öZ$öv$ö’$ö®$öÊ$öæ$÷$÷$÷:$÷V$÷r$÷Ž$÷ª$÷À$÷Ü$÷ø$ø$ø0$øL$øh$ø„$ø $ø¼$øØ$øô$ù$ù,$ùH$ùd$ù€$ùœ$ù¸$ùÔ$ùð$ú $ú($úD$ú`$ú|$ú˜$ú´$úÊ$úæ$û$û$û:$ûV$ûr$ûŽ$ûª$ûÆ$ûâ$ûþ$ü$ü6$üR$ün$üŠ$ü¦$üÂ$üÞ$üú$ý$ý2$ýN$ýj$ý†$ý¢$ý¾$ýÔ$ýð$þ $þ($þD$þ`$þ|$þ˜$þ´$þÐ$þì$ÿ$ÿ$$ÿ@$ÿ\$ÿx$ÿ”$ÿ°$ÿÌ$ÿè%% %<%X%t%%¬%È%Þ%ú%%2%N%j%†%¢%¾%Ú%ö%%.%J%f%‚%ž%º%Ö%ò%%*%F%b%~%š%¶%Ò%è%% %<%X%t%%¬%È%ä%%%8%T%p%Œ%¨%Ä%à%ü%%4%P%l%ˆ%¤%À%Ü%ò%%*%F%b%~%š%¶%Ò%î% %&%B%^%z%–%²%Î%ê% % "% >% Z% v% ’% ®% Ê% æ% ü% % 4% P% l% ˆ% ¤% À% Ü% ø% % 0% L% h% „%  % ¼% Ø% ô% % ,% H% d% €% œ% ¸% Ô% ð% % "% >% Z% v% ’% ®% Ê% æ%%%:%V%r%Ž%ª%Æ%â%þ%%6%R%n%Š%¦%Â%Þ%ú%%,%H%d%€%œ%¸%Ô%ð% %(%D%`%|%˜%´%Ð%ì%%$%@%\%x%”%°%Ì%è%%%6%R%n%Š%¦%Â%Þ%ú%%2%N%j%†%¢%¾%Ú%ö%%.%J%f%‚%ž%º%Ö%ò%%$%@%\%x%”%°%Ì%è%% %<%X%t%%¬%È%ä%%%8%T%p%Œ%¨%Ä%à%ü%%.%J%f%‚%ž%º%Ö%ò%%*%F%b%~%š%¶%Ò%î% %&%B%^%z%–%²%Î%ê%%"%8%T%p%Œ%¨%Ä%à%ü%%4%P%l%ˆ%¤%À%Ü%ø%%0%L%h%„% %¼%Ø%ô%%,%B%^%z%–%²%Î%ê% % "% >% Z% v% ’% ®% Ê% æ%!%!%!:%!V%!r%!Ž%!ª%!Æ%!â%!þ%"%"6%"L%"h%"„%" %"¼%"Ø%"ô%#%#,%#H%#d%#€%#œ%#¸%#Ô%#ð%$ %$(%$D%$`%$|%$˜%$´%$Ð%$ì%%%%$%%@%%V%%r%%Ž%%ª%%Æ%%â%%þ%&%&6%&R%&n%&Š%&¦%&Â%&Þ%&ú%'%'2%'N%'j%'†%'¢%'¾%'Ú%'ö%(%(.%(J%(`%(|%(˜%(´%(Ð%(ì%)%)$%)@%)\%)x%)”%)°%)Ì%)è%*%* %*<%*X%*t%*%*¬%*È%*ä%+%+%+8%+T%+j%+†%+¢%+¾%+Ú%+ö%,%,.%,J%,f%,‚%,ž%,º%,Ö%,ò%-%-*%-F%-b%-~%-š%-¶%-Ò%-î%. %.&%.B%.^%.t%.%.¬%.È%.ä%/%/%/8%/T%/p%/Œ%/¨%/Ä%/à%/ü%0%04%0P%0l%0ˆ%0¤%0À%0Ü%0ø%1%10%1L%1h%1~%1š%1¶%1Ò%1î%2 %2&%2B%2^%2z%2–%2²%2Î%2ê%3%3"%3>%3Z%3v%3’%3®%3Ê%3æ%4%4%4:%4V%4r%4ˆ%4¤%4À%4Ü%4ø%5%50%5L%5h%5„%5 %5¼%5Ø%5ô%6%6,%6H%6d%6€%6œ%6¸%6Ô%6ð%7 %7(%7D%7`%7|%7’%7®%7Ê%7æ%8%8%8:%8V%8r%8Ž%8ª%8Æ%8â%8þ%9%96%9R%9n%9Š%9¦%9Â%9Þ%9ú%:%:2%:N%:j%:†%:œ%:¸%:Ô%:ð%; %;(%;D%;`%;|%;˜%;´%;Ð%;ì%<%<$%<@%<\%%>2%>N%>j%>†%>¢%>¾%>Ú%>ö%?%?.%?J%?f%?‚%?ž%?º%?Ö%?ò%@%@*%@F%@b%@~%@š%@°%@Ì%@è%A%A %A<%AX%At%A%A¬%AÈ%Aä%B%B%B8%BT%Bp%BŒ%B¨%BÄ%Bà%Bü%C%C4%CP%Cl%Cˆ%C¤%Cº%CÖ%Cò%D%D*%DF%Db%D~%Dš%D¶%DÒ%Dî%E %E&%EB%E^%Ez%E–%E²%EÎ%Eê%F%F"%F>%FZ%Fv%F’%F®%FÄ%Fà%Fü%G%G4%GP%Gl%Gˆ%G¤%GÀ%GÜ%Gø%H%H0%HL%Hh%H„%H %H¼%HØ%Hô%I%I,%IH%Id%I€%Iœ%I¸%IÎ%Iê%J%J"%J>%JZ%Jv%J’%J®%JÊ%Jæ%K%K%K:%KV%Kr%KŽ%Kª%KÆ%Kâ%Kþ%L%L6%LR%Ln%LŠ%L¦%LÂ%LØ%Lô%M%M,%MH%Md%M€%Mœ%M¸%MÔ%Mð%N %N(%ND%N`%N|%N˜%N´%NÐ%Nì%O%O$%O@%O\%Ox%O”%O°%OÌ%Oâ%Oþ%P%P6%PR%Pn%PŠ%P¦%PÂ%PÞ%Pú%Q%Q2%QN%Qj%Q†%Q¢%Q¾%QÚ%Qö%R%R.%RJ%Rf%R‚%Rž%Rº%RÖ%Rì%S%S$%S@%S\%Sx%S”%S°%SÌ%Sè%T%T %T<%TX%Tt%T%T¬%TÈ%Tä%U%U%U8%UT%Up%UŒ%U¨%UÄ%Uà%Uö%V%V.%VJ%Vf%V‚%Vž%Vº%VÖ%Vò%W%W*%WF%Wb%W~%Wš%W¶%WÒ%Wî%X %X&%XB%X^%Xz%X–%X²%XÎ%Xê%Y%Y%Y8%YT%Yp%YŒ%Y¨%YÄ%Yà%Yü%Z%Z4%ZP%Zl%Zˆ%Z¤%ZÀ%ZÜ%Zø%[%[0%[L%[h%[„%[ %[¼%[Ø%[ô%\ %\&%\B%\^%\z%\–%\²%\Î%\ê%]%]"%]>%]Z%]v%]’%]®%]Ê%]æ%^%^%^:%^V%^r%^Ž%^ª%^Æ%^â%^þ%_%_0%_L%_h%_„%_ %_¼%_Ø%_ô%`%`,%`H%`d%`€%`œ%`¸%`Ô%`ð%a %a(%aD%a`%a|%a˜%a´%aÐ%aì%b%b%b:%bV%br%bŽ%bª%bÆ%bâ%bþ%c%c6%cR%cn%cŠ%c¦%cÂ%cÞ%cú%d%d2%dN%dj%d†%d¢%d¾%dÚ%dö%e%e(%eD%e`%e|%e˜%e´%eÐ%eì%f%f$%f@%f\%fx%f”%f°%fÌ%fè%g%g %g<%gX%gt%g%g¬%gÈ%gä%h%h%h2%hN%hj%h†%h¢%h¾%hÚ%hö%i%i.%iJ%if%i‚%iž%iº%iÖ%iò%j%j*%jF%jb%j~%jš%j¶%jÒ%jî%k %k&%k<%kX%kt%k%k¬%kÈ%kä%l%l%l8%lT%lp%lŒ%l¨%lÄ%là%lü%m%m4%mP%ml%mˆ%m¤%mÀ%mÜ%mø%n%n0%nF%nb%n~%nš%n¶%nÒ%nî%o %o&%oB%o^%oz%o–%o²%oÎ%oê%p%p"%p>%pZ%pv%p’%p®%pÊ%pæ%q%q%q:%qP%ql%qˆ%q¤%qÀ%qÜ%qø%r%r0%rL%rh%r„%r %r¼%rØ%rô%s%s,%sH%sd%s€%sœ%s¸%sÔ%sð%t %t(%tD%tZ%tv%t’%t®%tÊ%tæ%u%u%u:%uV%ur%uŽ%uª%uÆ%uâ%uþ%v%v6%vR%vn%vŠ%v¦%vÂ%vÞ%vú%w%w2%wN%wd%w€%wœ%w¸%wÔ%wð%x %x(%xD%x`%x|%x˜%x´%xÐ%xì%y%y$%y@%y\%yx%y”%y°%yÌ%yè%z%z %z<%zX%zn%zŠ%z¦%zÂ%zÞ%zú%{%{2%{N%{j%{†%{¢%{¾%{Ú%{ö%|%|.%|J%|f%|‚%|ž%|º%|Ö%|ò%}%}*%}F%}b%}x%}”%}°%}Ì%}è%~%~ %~<%~X%~t%~%~¬%~È%~ä%%%8%T%p%Œ%¨%Ä%à%ü%€%€4%€P%€l%€‚%€ž%€º%€Ö%€ò%%*%F%b%~%š%¶%Ò%î%‚ %‚&%‚B%‚^%‚z%‚–%‚²%‚Î%‚ê%ƒ%ƒ"%ƒ>%ƒZ%ƒv%ƒŒ%ƒ¨%ƒÄ%ƒà%ƒü%„%„4%„P%„l%„ˆ%„¤%„À%„Ü%„ø%…%…0%…L%…h%…„%… %…¼%…Ø%…ô%†%†,%†H%†d%†€%†–%†²%†Î%†ê%‡%‡"%‡>%‡Z%‡v%‡’%‡®%‡Ê%‡æ%ˆ%ˆ%ˆ:%ˆV%ˆr%ˆŽ%ˆª%ˆÆ%ˆâ%ˆþ%‰%‰6%‰R%‰n%‰Š%‰ %‰¼%‰Ø%‰ô%Š%Š,%ŠH%Šd%Š€%Šœ%Џ%ŠÔ%Šð%‹ %‹(%‹D%‹`%‹|%‹˜%‹´%‹Ð%‹ì%Œ%Œ$%Œ@%Œ\%Œx%Œ”%Œª%ŒÆ%Œâ%Œþ%%6%R%n%Š%¦%Â%Þ%ú%Ž%Ž2%ŽN%Žj%ކ%Ž¢%޾%ŽÚ%Žö%%.%J%f%‚%ž%´%Ð%ì%%$%@%\%x%”%°%Ì%è%‘%‘ %‘<%‘X%‘t%‘%‘¬%‘È%‘ä%’%’%’8%’T%’p%’Œ%’¨%’¾%’Ú%’ö%“%“.%“J%“f%“‚%“ž%“º%“Ö%“ò%”%”*%”F%”b%”~%”š%”¶%”Ò%”î%• %•&%•B%•^%•z%•–%•²%•È%•ä%–%–%–8%–T%–p%–Œ%–¨%–Ä%–à%–ü%—%—4%—P%—l%—ˆ%—¤%—À%—Ü%—ø%˜%˜0%˜L%˜h%˜„%˜ %˜¼%˜Ò%˜î%™ %™&%™B%™^%™z%™–%™²%™Î%™ê%š%š"%š>%šZ%šv%š’%š®%šÊ%šæ%›%›%›:%›V%›r%›Ž%›ª%›Æ%›Ü%›ø%œ%œ0%œL%œh%œ„%œ %œ¼%œØ%œô%%,%H%d%€%œ%¸%Ô%ð%ž %ž(%žD%ž`%ž|%ž˜%ž´%žÐ%žæ%Ÿ%Ÿ%Ÿ:%ŸV%Ÿr%ŸŽ%Ÿª%ŸÆ%Ÿâ%Ÿþ% % 6% R% n% Š% ¦% Â% Þ% ú%¡%¡2%¡N%¡j%¡†%¡¢%¡¾%¡Ú%¡ð%¢ %¢(%¢D%¢`%¢|%¢˜%¢´%¢Ð%¢ì%£%£$%£@%£\%£x%£”%£°%£Ì%£è%¤%¤ %¤<%¤X%¤t%¤%¤¬%¤È%¤ä%¤ú%¥%¥2%¥N%¥j%¥†%¥¢%¥¾%¥Ú%¥ö%¦%¦.%¦J%¦f%¦‚%¦ž%¦º%¦Ö%¦ò%§%§*%§F%§b%§~%§š%§¶%§Ò%§î%¨%¨ %¨<%¨X%¨t%¨%¨¬%¨È%¨ä%©%©%©8%©T%©p%©Œ%©¨%©Ä%©à%©ü%ª%ª4%ªP%ªl%ªˆ%ª¤%ªÀ%ªÜ%ªø%«%«*%«F%«b%«~%«š%«¶%«Ò%«î%¬ %¬&%¬B%¬^%¬z%¬–%¬²%¬Î%¬ê%­%­"%­>%­Z%­v%­’%­®%­Ê%­æ%®%®%®4%®P%®l%®ˆ%®¤%®À%®Ü%®ø%¯%¯0%¯L%¯h%¯„%¯ %¯¼%¯Ø%¯ô%°%°,%°H%°d%°€%°œ%°¸%°Ô%°ð%± %±"%±>%±Z%±v%±’%±®%±Ê%±æ%²%²%²:%²V%²r%²Ž%²ª%²Æ%²â%²þ%³%³6%³R%³n%³Š%³¦%³Â%³Þ%³ú%´%´,%´H%´d%´€%´œ%´¸%´Ô%´ð%µ %µ(%µD%µ`%µ|%µ˜%µ´%µÐ%µì%¶%¶$%¶@%¶\%¶x%¶”%¶°%¶Ì%¶è%·%· %·6%·R%·n%·Š%·¦%·Â%·Þ%·ú%¸%¸2%¸N%¸j%¸†%¸¢%¸¾%¸Ú%¸ö%¹%¹.%¹J%¹f%¹‚%¹ž%¹º%¹Ö%¹ò%º%º*%º@%º\%ºx%º”%º°%ºÌ%ºè%»%» %»<%»X%»t%»%»¬%»È%»ä%¼%¼%¼8%¼T%¼p%¼Œ%¼¨%¼Ä%¼à%¼ü%½%½4%½J%½f%½‚%½ž%½º%½Ö%½ò%¾%¾*%¾F%¾b%¾~%¾š%¾¶%¾Ò%¾î%¿ %¿&%¿B%¿^%¿z%¿–%¿²%¿Î%¿ê%À%À"%À>%ÀT%Àp%ÀŒ%À¨%ÀÄ%Àà%Àü%Á%Á4%ÁP%Ál%Áˆ%Á¤%ÁÀ%ÁÜ%Áø%Â%Â0%ÂL%Âh%„% %¼%ÂØ%Âô%Ã%Ã,%ÃH%Ã^%Ãz%Ö%ò%ÃÎ%Ãê%Ä%Ä"%Ä>%ÄZ%Äv%Ä’%Ä®%ÄÊ%Äæ%Å%Å%Å:%ÅV%År%ÅŽ%Ū%ÅÆ%Åâ%Åþ%Æ%Æ6%ÆR%Æh%Æ„%Æ %Ƽ%ÆØ%Æô%Ç%Ç,%ÇH%Çd%Ç€%Çœ%Ǹ%ÇÔ%Çð%È %È(%ÈD%È`%È|%Ș%È´%ÈÐ%Èì%É%É$%É@%É\%Ér%ÉŽ%ɪ%ÉÆ%Éâ%Éþ%Ê%Ê6%ÊR%Ên%ÊŠ%ʦ%ÊÂ%ÊÞ%Êú%Ë%Ë2%ËN%Ëj%ˆ%Ë¢%˾%ËÚ%Ëö%Ì%Ì.%ÌJ%Ìf%Ì|%̘%Ì´%ÌÐ%Ìì%Í%Í$%Í@%Í\%Íx%Í”%Ͱ%ÍÌ%Íè%Î%Î %Î<%ÎX%Ît%Î%ά%ÎÈ%Îä%Ï%Ï%Ï8%ÏT%Ïp%φ%Ï¢%Ͼ%ÏÚ%Ïö%Ð%Ð.%ÐJ%Ðf%Ђ%О%к%ÐÖ%Ðò%Ñ%Ñ*%ÑF%Ñb%Ñ~%Ñš%Ѷ%ÑÒ%Ñî%Ò %Ò&%ÒB%Ò^%Òz%Ò%Ò¬%ÒÈ%Òä%Ó%Ó%Ó8%ÓT%Óp%ÓŒ%Ó¨%ÓÄ%Óà%Óü%Ô%Ô4%ÔP%Ôl%Ôˆ%Ô¤%ÔÀ%ÔÜ%Ôø%Õ%Õ0%ÕL%Õh%Õ„%Õš%Õ¶%ÕÒ%Õî%Ö %Ö&%ÖB%Ö^%Öz%Ö–%Ö²%ÖÎ%Öê%×%×"%×>%×Z%×v%×’%×®%×Ê%׿%Ø%Ø%Ø:%ØV%Ør%ØŽ%ؤ%ØÀ%ØÜ%Øø%Ù%Ù0%ÙL%Ùh%Ù„%Ù %Ù¼%ÙØ%Ùô%Ú%Ú,%ÚH%Úd%Ú€%Úœ%Ú¸%ÚÔ%Úð%Û %Û(%ÛD%Û`%Û|%Û˜%Û®%ÛÊ%Ûæ%Ü%Ü%Ü:%ÜV%Ür%ÜŽ%ܪ%ÜÆ%Üâ%Üþ%Ý%Ý6%ÝR%Ýn%ÝŠ%ݦ%ÝÂ%ÝÞ%Ýú%Þ%Þ2%ÞN%Þj%Þ†%Þ¢%Þ¸%ÞÔ%Þð%ß %ß(%ßD%ß`%ß|%ߘ%ß´%ßÐ%ßì%à%à$%à@%à\%àx%à”%à°%àÌ%àè%á%á %á<%áX%át%á%á¬%áÂ%áÞ%áú%â%â2%âN%âj%â†%â¢%â¾%âÚ%âö%ã%ã.%ãJ%ãf%ã‚%ãž%ãº%ãÖ%ãò%ä%ä*%äF%äb%ä~%äš%ä¶%äÌ%äè%å%å %å<%åX%åt%å%å¬%åÈ%åä%æ%æ%æ8%æT%æp%æŒ%æ¨%æÄ%æà%æü%ç%ç4%çP%çl%çˆ%ç¤%çÀ%çÖ%çò%è%è*%èF%èb%è~%èš%è¶%èÒ%èî%é %é&%éB%é^%éz%é–%é²%éÎ%éê%ê%ê"%ê>%êZ%êv%ê’%ê®%êÊ%êà%êü%ë%ë4%ëP%ël%ëˆ%ë¤%ëÀ%ëÜ%ëø%ì%ì0%ìL%ìh%ì„%ì %ì¼%ìØ%ìô%í%í,%íH%íd%í€%íœ%í¸%íÔ%íê%î%î"%î>%îZ%îv%î’%î®%îÊ%îæ%ï%ï%ï:%ïV%ïr%ïŽ%ïª%ïÆ%ïâ%ïþ%ð%ð6%ðR%ðn%ðŠ%ð¦%ðÂ%ðÞ%ðô%ñ%ñ,%ñH%ñd%ñ€%ñœ%ñ¸%ñÔ%ñð%ò %ò(%òD%ò`%ò|%ò˜%ò´%òÐ%òì%ó%ó$%ó@%ó\%óx%ó”%ó°%óÌ%óè%óþ%ô%ô6%ôR%ôn%ôŠ%ô¦%ôÂ%ôÞ%ôú%õ%õ2%õN%õj%õ†%õ¢%õ¾%õÚ%õö%ö%ö.%öJ%öf%ö‚%öž%öº%öÖ%öò%÷%÷$%÷@%÷\%÷x%÷”%÷°%÷Ì%÷è%ø%ø %ø<%øX%øt%ø%ø¬%øÈ%øä%ù%ù%ù8%ùT%ùp%ùŒ%ù¨%ùÄ%ùà%ùü%ú%ú.%úJ%úf%ú‚%úž%úº%úÖ%úò%û%û*%ûF%ûb%û~%ûš%û¶%ûÒ%ûî%ü %ü&%üB%ü^%üz%ü–%ü²%üÎ%üê%ý%ý%ý8%ýT%ýp%ýŒ%ý¨%ýÄ%ýà%ýü%þ%þ4%þP%þl%þˆ%þ¤%þÀ%þÜ%þø%ÿ%ÿ0%ÿL%ÿh%ÿ„%ÿ %ÿ¼%ÿØ%ÿô&&&&B&^&z&–&²&Î&ê&&"&>&Z&v&’&®&Ê&æ&&&:&V&r&Ž&ª&Æ&â&þ&&0&L&h&„& &¼&Ø&ô&&,&H&d&€&œ&¸&Ô&ð& &(&D&`&|&˜&´&Ð&ì&&$&:&V&r&Ž&ª&Æ&â&þ&&6&R&n&Š&¦&Â&Þ&ú&&2&N&j&†&¢&¾&Ú&ö& & .& D& `& |& ˜& ´& Ð& ì& & $& @& \& x& ”& °& Ì& è& & & <& X& t& & ¬& È& ä& & & 8& N& j& †& ¢& ¾& Ú& ö& & .& J& f& ‚& ž& º& Ö& ò&&*&F&b&~&š&¶&Ò&î& &&&B&X&t&&¬&È&ä&&&8&T&p&Œ&¨&Ä&à&ü&&4&P&l&ˆ&¤&À&Ü&ø&&0&L&b&~&š&¶&Ò&î& &&&B&^&z&–&²&Î&ê&&"&>&Z&v&’&®&Ê&æ&&&:&V&l&ˆ&¤&À&Ü&ø&&0&L&h&„& &¼&Ø&ô&&,&H&d&€&œ&¸&Ô&ð& &(&D&`&v&’&®&Ê&æ&&&:&V&r&Ž&ª&Æ&â&þ&&6&R&n&Š&¦&Â&Þ&ú&&2&N&j&€&œ&¸&Ô&ð& &(&D&`&|&˜&´&Ð&ì&&$&@&\&x&”&°&Ì&è&& &<&X&t&Š&¦&Â&Þ&ú&&2&N&j&†&¢&¾&Ú&ö& & .& J& f& ‚& ž& º& Ö& ò&!&!*&!F&!b&!~&!”&!°&!Ì&!è&"&" &"<&"X&"t&"&"¬&"È&"ä&#&#&#T&#p&#Œ&#¨&#Ä&#à&#ü&$&$4&$P&$l&$ˆ&$ž&$º&$Ö&$ò&%&%*&%F&%b&%~&%š&%¶&%Ò&%î&& &&&&&B&&^&&z&&–&&²&&Î&&ê&'&'"&'>&'Z&'v&'’&'¨&'Ä&'à&'ü&(&(4&(P&(l&(ˆ&(¤&(À&(Ü&(ø&)&)0&)L&)h&)„&) &)¼&)Ø&)ô&*&*,&*H&*d&*€&*œ&*²&*Î&*ê&+&+"&+>&+Z&+v&+’&+®&+Ê&+æ&,&,&,:&,V&,r&,Ž&,ª&,Æ&,â&,þ&-&-6&-R&-n&-Š&-¦&-¼&-Ø&-ô&.&.,&.H&.d&.€&.œ&.¸&.Ô&.ð&/ &/(&/D&/`&/|&/˜&/´&/Ð&/ì&0&0$&0@&0\&0x&0”&0°&0Æ&0â&0þ&1&16&1R&1n&1Š&1¦&1Â&1Þ&1ú&2&22&2N&2j&2†&2¢&2¾&2Ú&2ö&3&3.&3J&3f&3‚&3ž&3º&3Ð&3ì&4&4$&4@&4\&4x&4”&4°&4Ì&4è&5&5 &5<&5X&5t&5&5¬&5È&5ä&6&6&68&6T&6p&6Œ&6¨&6Ä&6Ú&6ö&7&7.&7J&7f&7‚&7ž&7º&7Ö&7ò&8&8*&8F&8b&8~&8š&8¶&8Ò&8î&9 &9&&9B&9^&9z&9–&9²&9Î&9ä&:&:&:8&:T&:p&:Œ&:¨&:Ä&:à&:ü&;&;4&;P&;l&;ˆ&;¤&;À&;Ü&;ø&<&<0&&>"&>>&>Z&>v&>’&>®&>Ê&>æ&?&?&?:&?V&?r&?Ž&?ª&?Æ&?â&?ø&@&@0&@L&@h&@„&@ &@¼&@Ø&@ô&A&A,&AH&Ad&A€&Aœ&A¸&AÔ&Að&B &B(&BD&B`&B|&B˜&B´&BÐ&Bì&C&C&C:&CV&Cr&CŽ&Cª&CÆ&Câ&Cþ&D&D6&DR&Dn&DŠ&D¦&DÂ&DÞ&Dú&E&E2&EN&Ej&E†&E¢&E¾&EÚ&Eö&F &F(&FD&F`&F|&F˜&F´&FÐ&Fì&G&G$&G@&G\&Gx&G”&G°&GÌ&Gè&H&H &H<&HX&Ht&H&H¬&HÈ&Hä&I&I&I2&IN&Ij&I†&I¢&I¾&IÚ&Iö&J&J.&JJ&Jf&J‚&Jž&Jº&JÖ&Jò&K&K*&KF&Kb&K~&Kš&K¶&KÒ&Kî&L &L &L<&LX&Lt&L&L¬&LÈ&Lä&M&M&M8&MT&Mp&MŒ&M¨&MÄ&Mà&Mü&N&N4&NP&Nl&Nˆ&N¤&NÀ&NÜ&Nø&O&O*&OF&Ob&O~&Oš&O¶&OÒ&Oî&P &P&&PB&P^&Pz&P–&P²&PÎ&Pê&Q&Q"&Q>&QZ&Qv&Q’&Q®&QÊ&Qæ&R&R&R4&RP&Rl&Rˆ&R¤&RÀ&RÜ&Rø&S&S0&SL&Sh&S„&S &S¼&SØ&Sô&T&T,&TH&Td&T€&Tœ&T¸&TÔ&Tð&U &U(&U>&UZ&Uv&U’&U®&UÊ&Uæ&V&V&V:&VV&Vr&VŽ&Vª&VÆ&Vâ&Vþ&W&W6&WR&Wn&WŠ&W¦&WÂ&WÞ&Wú&X&X2&XH&Xd&X€&Xœ&X¸&XÔ&Xð&Y &Y(&YD&Y`&Y|&Y˜&Y´&YÐ&Yì&Z&Z$&Z@&Z\&Zx&Z”&Z°&ZÌ&Zè&[&[ &[<&[R&[n&[Š&[¦&[Â&[Þ&[ú&\&\2&\N&\j&\†&\¢&\¾&\Ú&\ö&]&].&]J&]f&]‚&]ž&]º&]Ö&]ò&^&^*&^F&^\&^x&^”&^°&^Ì&^è&_&_ &_<&_X&_t&_&_¬&_È&_ä&`&`&`8&`T&`p&`Œ&`¨&`Ä&`à&`ü&a&a4&aP&af&a‚&až&aº&aÖ&aò&b&b*&bF&bb&b~&bš&b¶&bÒ&bî&c &c&&cB&c^&cz&c–&c²&cÎ&cê&d&d"&d>&dZ&dp&dŒ&d¨&dÄ&dà&dü&e&e4&eP&el&eˆ&e¤&eÀ&eÜ&eø&f&f0&fL&fh&f„&f &f¼&fØ&fô&g&g,&gH&gd&gz&g–&g²&gÎ&gê&h&h"&h>&hZ&hv&h’&h®&hÊ&hæ&i&i&i:&iV&ir&iŽ&iª&iÆ&iâ&iþ&j&j6&jR&jn&j„&j &j¼&jØ&jô&k&k,&kH&kd&k€&kœ&k¸&kÔ&kð&l &l(&lD&l`&l|&l˜&l´&lÐ&lì&m&m$&m@&m\&mx&mŽ&mª&mÆ&mâ&mþ&n&n6&nR&nn&nŠ&n¦&nÂ&nÞ&nú&o&o2&oN&oj&o†&o¢&o¾&oÚ&oö&p&p.&pJ&pf&p‚&p˜&p´&pÐ&pì&q&q$&q@&q\&qx&q”&q°&qÌ&qè&r&r &r<&rX&rt&r&r¬&rÈ&rä&s&s&s8&sT&sp&sŒ&s¢&s¾&sÚ&sö&t&t.&tJ&tf&t‚&tž&tº&tÖ&tò&u&u*&uF&ub&u~&uš&u¶&uÒ&uî&v &v&&vB&v^&vz&v–&v¬&vÈ&vä&w&w&w8&wT&wp&wŒ&w¨&wÄ&wà&wü&x&x4&xP&xl&xˆ&x¤&xÀ&xÜ&xø&y&y0&yL&yh&y„&y &y¶&yÒ&yî&z &z&&zB&z^&zz&z–&z²&zÎ&zê&{&{"&{>&{Z&{v&{’&{®&{Ê&{æ&|&|&|:&|V&|r&|Ž&|ª&|À&|Ü&|ø&}&}0&}L&}h&}„&} &}¼&}Ø&}ô&~&~,&~H&~d&~€&~œ&~¸&~Ô&~ð& &(&D&`&|&˜&´&Ê&æ&€&€&€:&€V&€r&€Ž&€ª&€Æ&€â&€þ&&6&R&n&Š&¦&Â&Þ&ú&‚&‚2&‚N&‚j&‚†&‚¢&‚¾&‚Ô&‚ð&ƒ &ƒ(&ƒD&ƒ`&ƒ|&ƒ˜&ƒ´&ƒÐ&ƒì&„&„$&„@&„\&„x&„”&„°&„Ì&„è&…&… &…<&…X&…t&…&…¬&…È&…Þ&…ú&†&†2&†N&†j&††&†¢&†¾&†Ú&†ö&‡&‡.&‡J&‡f&‡‚&‡ž&‡º&‡Ö&‡ò&ˆ&ˆ*&ˆF&ˆb&ˆ~&ˆš&ˆ¶&ˆÒ&ˆè&‰&‰ &‰<&‰X&‰t&‰&‰¬&‰È&‰ä&Š&Š&Š8&ŠT&Šp&ŠŒ&Ѝ&ŠÄ&Šà&Šü&‹&‹4&‹P&‹l&‹ˆ&‹¤&‹À&‹Ü&‹ò&Œ&Œ*&ŒF&Œb&Œ~&Œš&Œ¶&ŒÒ&Œî& &&&B&^&z&–&²&Î&ê&Ž&Ž"&Ž>&ŽZ&Žv&Ž’&Ž®&ŽÊ&Žæ&Žü&&4&P&l&ˆ&¤&À&Ü&ø&&0&L&h&„& &¼&Ø&ô&‘&‘,&‘H&‘d&‘€&‘œ&‘¸&‘Ô&‘ð&’&’"&’>&’Z&’v&’’&’®&’Ê&’æ&“&“&“:&“V&“r&“Ž&“ª&“Æ&“â&“þ&”&”6&”R&”n&”Š&”¦&”Â&”Þ&”ú&•&•,&•H&•d&•€&•œ&•¸&•Ô&•ð&– &–(&–D&–`&–|&–˜&–´&–Ð&–ì&—&—$&—@&—\&—x&—”&—°&—Ì&—è&˜&˜&˜6&˜R&˜n&˜Š&˜¦&˜Â&˜Þ&˜ú&™&™2&™N&™j&™†&™¢&™¾&™Ú&™ö&š&š.&šJ&šf&š‚&šž&šº&šÖ&šò&›&›$&›@&›\&›x&›”&›°&›Ì&›è&œ&œ &œ<&œX&œt&œ&œ¬&œÈ&œä&&&8&T&p&Œ&¨&Ä&à&ü&ž&ž.&žJ&žf&ž‚&žž&žº&žÖ&žò&Ÿ&Ÿ*&ŸF&Ÿb&Ÿ~&Ÿš&Ÿ¶&ŸÒ&Ÿî&  & && B& ^& z& –& ²& Î& ê&¡&¡"&¡8&¡T&¡p&¡Œ&¡¨&¡Ä&¡à&¡ü&¢&¢4&¢P&¢l&¢ˆ&¢¤&¢À&¢Ü&¢ø&£&£0&£L&£h&£„&£ &£¼&£Ø&£ô&¤&¤,&¤B&¤^&¤z&¤–&¤²&¤Î&¤ê&¥&¥"&¥>&¥Z&¥v&¥’&¥®&¥Ê&¥æ&¦&¦&¦:&¦V&¦r&¦Ž&¦ª&¦Æ&¦â&¦þ&§&§6&§L&§h&§„&§ &§¼&§Ø&§ô&¨&¨,&¨H&¨d&¨€&¨œ&¨¸&¨Ô&¨ð&© &©(&©D&©`&©|&©˜&©´&©Ð&©ì&ª&ª$&ª@&ªV&ªr&ªŽ&ªª&ªÆ&ªâ&ªþ&«&«6&«R&«n&«Š&«¦&«Â&«Þ&«ú&¬&¬2&¬N&¬j&¬†&¬¢&¬¾&¬Ú&¬ö&­&­.&­J&­`&­|&­˜&­´&­Ð&­ì&®&®$&®@&®\&®x&®”&®°&®Ì&®è&¯&¯ &¯<&¯X&¯t&¯&¯¬&¯È&¯ä&°&°&°8&°T&°j&°†&°¢&°¾&°Ú&°ö&±&±.&±J&±f&±‚&±ž&±º&±Ö&±ò&²&²*&²F&²b&²~&²š&²¶&²Ò&²î&³ &³&&³B&³^&³t&³&³¬&³È&³ä&´&´&´8&´T&´p&´Œ&´¨&´Ä&´à&´ü&µ&µ4&µP&µl&µˆ&µ¤&µÀ&µÜ&µø&¶&¶0&¶L&¶h&¶~&¶š&¶¶&¶Ò&¶î&· &·&&·B&·^&·z&·–&·²&·Î&·ê&¸&¸"&¸>&¸Z&¸v&¸’&¸®&¸Ê&¸æ&¹&¹&¹:&¹V&¹r&¹ˆ&¹¤&¹À&¹Ü&¹ø&º&º0&ºL&ºh&º„&º &º¼&ºØ&ºô&»&»,&»H&»d&»€&»œ&»¸&»Ô&»ð&¼ &¼(&¼D&¼`&¼|&¼’&¼®&¼Ê&¼æ&½&½&½:&½V&½r&½Ž&½ª&½Æ&½â&½þ&¾&¾6&¾R&¾n&¾Š&¾¦&¾Â&¾Þ&¾ú&¿&¿2&¿N&¿j&¿†&¿œ&¿¸&¿Ô&¿ð&À &À(&ÀD&À`&À|&À˜&À´&ÀÐ&Àì&Á&Á$&Á@&Á\&Áx&Á”&Á°&ÁÌ&Áè&Â& &Â<&ÂX&Ât&Â&¦&ÂÂ&ÂÞ&Âú&Ã&Ã2&ÃN&Ãj&Æ&â&þ&ÃÚ&Ãö&Ä&Ä.&ÄJ&Äf&Ä‚&Äž&ĺ&ÄÖ&Äò&Å&Å*&ÅF&Åb&Å~&Åš&Ű&ÅÌ&Åè&Æ&Æ &Æ<&ÆX&Æt&Æ&Ƭ&ÆÈ&Æä&Ç&Ç&Ç8&ÇT&Çp&ÇŒ&Ǩ&ÇÄ&Çà&Çü&È&È4&ÈP&Èl&Ȉ&Ȥ&Ⱥ&ÈÖ&Èò&É&É*&ÉF&Éb&É~&Éš&ɶ&ÉÒ&Éî&Ê &Ê&&ÊB&Ê^&Êz&Ê–&ʲ&ÊÎ&Êê&Ë&Ë"&Ë>&ËZ&Ëv&Ë’&Ë®&ËÄ&Ëà&Ëü&Ì&Ì4&ÌP&Ìl&̈&̤&ÌÀ&ÌÜ&Ìø&Í&Í0&ÍL&Íh&Í„&Í &ͼ&ÍØ&Íô&Î&Î,&ÎH&Îd&΀&Μ&θ&ÎÎ&Îê&Ï&Ï"&Ï>&ÏZ&Ïv&Ï’&Ï®&ÏÊ&Ïæ&Ð&Ð&Ð:&ÐV&Ðr&ÐŽ&Ъ&ÐÆ&Ðâ&Ðþ&Ñ&Ñ6&ÑR&Ñn&ÑŠ&Ѧ&ÑÂ&ÑØ&Ñô&Ò&Ò,&ÒH&Òd&Ò€&Òœ&Ò¸&ÒÔ&Òð&Ó &Ó(&ÓD&Ó`&Ó|&Ó˜&Ó´&ÓÐ&Óì&Ô&Ô$&Ô@&Ô\&Ôx&Ô”&Ô°&ÔÌ&Ôâ&Ôþ&Õ&Õ6&ÕR&Õn&ÕŠ&Õ¦&ÕÂ&ÕÞ&Õú&Ö&Ö2&ÖN&Öj&Ö†&Ö¢&Ö¾&ÖÚ&Öö&×&×.&×J&×f&ׂ&מ&׺&×Ö&×ì&Ø&Ø$&Ø@&Ø\&Øx&Ø”&ذ&ØÌ&Øè&Ù&Ù &Ù<&ÙX&Ùt&Ù&Ù¬&ÙÈ&Ùä&Ú&Ú&Ú8&ÚT&Úp&ÚŒ&Ú¨&ÚÄ&Úà&Úö&Û&Û.&ÛJ&Ûf&Û‚&Ûž&Ûº&ÛÖ&Ûò&Ü&Ü*&ÜF&Üb&Ü~&Üš&ܶ&ÜÒ&Üî&Ý &Ý&&ÝB&Ý^&Ýz&Ý–&ݲ&ÝÎ&Ýê&Þ&Þ&Þ8&ÞT&Þp&ÞŒ&Þ¨&ÞÄ&Þà&Þü&ß&ß4&ßP&ßl&߈&ߤ&ßÀ&ßÜ&ßø&à&à0&àL&àh&à„&à &à¼&àØ&àô&á &á&&áB&á^&áz&á–&á²&áÎ&áê&â&â"&â>&âZ&âv&â’&â®&âÊ&âæ&ã&ã&ã:&ãV&ãr&ãŽ&ãª&ãÆ&ãâ&ãþ&ä&ä0&äL&äh&ä„&ä &ä¼&äØ&äô&å&å,&åH&åd&å€&åœ&å¸&åÔ&åð&æ &æ(&æD&æ`&æ|&æ˜&æ´&æÐ&æì&ç&ç&ç:&çV&çr&çŽ&çª&çÆ&çâ&çþ&è&è6&èR&èn&èŠ&è¦&èÂ&èÞ&èú&é&é2&éN&éj&é†&é¢&é¾&éÚ&éö&ê&ê(&êD&ê`&ê|&ê˜&ê´&êÐ&êì&ë&ë$&ë@&ë\&ëx&ë”&ë°&ëÌ&ëè&ì&ì &ì<&ìX&ìt&ì&ì¬&ìÈ&ìä&í&í&í2&íN&íj&í†&í¢&í¾&íÚ&íö&î&î.&îJ&îf&î‚&îž&îº&îÖ&îò&ï&ï*&ïF&ïb&ï~&ïš&ï¶&ïÒ&ïî&ð &ð&&ð<&ðX&ðt&ð&ð¬&ðÈ&ðä&ñ&ñ&ñ8&ñT&ñp&ñŒ&ñ¨&ñÄ&ñà&ñü&ò&ò4&òP&òl&òˆ&ò¤&òÀ&òÜ&òø&ó&ó0&óF&ób&ó~&óš&ó¶&óÒ&óî&ô &ô&&ôB&ô^&ôz&ô–&ô²&ôÎ&ôê&õ&õ"&õ>&õZ&õv&õ’&õ®&õÊ&õæ&ö&ö&ö:&öP&öl&öˆ&ö¤&öÀ&öÜ&öø&÷&÷0&÷L&÷h&÷„&÷ &÷¼&÷Ø&÷ô&ø&ø,&øH&ød&ø€&øœ&ø¸&øÔ&øð&ù &ù(&ùD&ùZ&ùv&ù’&ù®&ùÊ&ùæ&ú&ú&ú:&úV&úr&úŽ&úª&úÆ&úâ&úþ&û&û6&ûR&ûn&ûŠ&û¦&ûÂ&ûÞ&ûú&ü&ü2&üN&üd&ü€&üœ&ü¸&üÔ&üð&ý &ý(&ýD&ý`&ý|&ý˜&ý´&ýÐ&ýì&þ&þ$&þ@&þ\&þx&þ”&þ°&þÌ&þè&ÿ&ÿ &ÿ<&ÿX&ÿn&ÿŠ&ÿ¦&ÿÂ&ÿÞ&ÿú''2'N'j'†'¢'¾'Ú'ö''.'J'f'‚'ž'º'Ö'ò''*'F'b'x'”'°'Ì'è'' '<'X't''¬'È'ä'''8'T'p'Œ'¨'Ä'à'ü''4'P'l'‚'ž'º'Ö'ò''*'F'b'~'š'¶'Ò'î' '&'B'^'z'–'²'Î'ê''"'>'Z'v'Œ'¨'Ä'à'ü' ' 4' P' l' ˆ' ¤' À' Ü' ø' ' 0' L' h' „'  ' ¼' Ø' ô' ' ,' H' d' €' –' ²' Î' ê' ' "' >' Z' v' ’' ®' Ê' æ' ' ' :' V' r' Ž' ª' Æ' â' þ''6'R'n'Š' '¼'Ø'ô'','H'd'€'œ'¸'Ô'ð' '('D'`'|'˜'´'Ð'ì''$'@'\'x'”'ª'Æ'â'þ''6'R'n'Š'¦'Â'Þ'ú''2'N'j'†'¢'¾'Ú'ö''.'J'f'‚'ž'´'Ð'ì''$'@'\'x'”'°'Ì'è'' '<'X't''¬'È'ä'''8'T'p'Œ'¨'¾'Ú'ö''.'J'f'‚'ž'º'Ö'ò''*'F'b'~'š'¶'Ò'î' '&'B'^'z'–'²'È'ä'''8'T'p'Œ'¨'Ä'à'ü''4'P'l'ˆ'¤'À'Ü'ø''0'L'h'„' '¼'Ò'î' '&'B'^'z'–'²'Î'ê''"'>'Z'v'’'®'Ê'æ' ' ' :' V' r' Ž' ª' Æ' Ü' ø'!'!0'!L'!h'!„'! '!¼'!Ø'!ô'"'",'"H'"d'"€'"œ'"¸'"Ô'"ð'# '#('#D'#`'#|'#˜'#´'#Ð'#æ'$'$'$:'$V'$r'$Ž'$ª'$Æ'$â'$þ'%'%6'%R'%n'%Š'%¦'%Â'%Þ'%ú'&'&2'&N'&j'&†'&¢'&¾'&Ú'&ð'' ''(''D''`''|''˜''´''Ð''ì'('($'(@'(\'(x'(”'(°'(Ì'(è')') ')<')X')t')')¬')È')ä')ú'*'*2'*N'*j'*†'*¢'*¾'*Ú'*ö'+'+.'+J'+f'+‚'+ž'+º'+Ö'+ò',',*',F',b',~',š',¶',Ò',î'-'- '-<'-X'-t'-'-¬'-È'-ä'.'.'.8'.T'.p'.Œ'.¨'.Ä'.à'.ü'/'/4'/P'/l'/ˆ'/¤'/À'/Ü'/ø'0'0*'0F'0b'0~'0š'0¶'0Ò'0î'1 '1&'1B'1^'1z'1–'1²'1Î'1ê'2'2"'2>'2Z'2v'2’'2®'2Ê'2æ'3'3'34'3P'3l'3ˆ'3¤'3À'3Ü'3ø'4'40'4L'4h'4„'4 '4¼'4Ø'4ô'5'5,'5H'5d'5€'5œ'5¸'5Ô'5ð'6 '6"'6>'6Z'6v'6’'6®'6Ê'6æ'7'7'7:'7V'7r'7Ž'7ª'7Æ'7â'7þ'8'86'8R'8n'8Š'8¦'8Â'8Þ'8ú'9'9,'9H'9d'9€'9œ'9¸'9Ô'9ð': ':(':D':`':|':˜':´':Ð':ì';';$';@';\';x';”';°';Ì';è'<'< '<6''>.'>J'>f'>‚'>ž'>º'>Ö'>ò'?'?*'?@'?\'?x'?”'?°'?Ì'?è'@'@ '@<'@X'@t'@'@¬'@È'@ä'A'A'A8'AT'Ap'AŒ'A¨'AÄ'Aà'Aü'B'B4'BJ'Bf'B‚'Bž'Bº'BÖ'Bò'C'C*'CF'Cb'C~'Cš'C¶'CÒ'Cî'D 'D&'DB'D^'Dz'D–'D²'DÎ'Dê'E'E"'E>'ET'Ep'EŒ'E¨'EÄ'Eà'Eü'F'F4'FP'Fl'Fˆ'F¤'FÀ'FÜ'Fø'G'G0'GL'Gh'G„'G 'G¼'GØ'Gô'H'H,'HH'H^'Hz'H–'H²'HÎ'Hê'I'I"'I>'IZ'Iv'I’'I®'IÊ'Iæ'J'J'J:'JV'Jr'JŽ'Jª'JÆ'Jâ'Jþ'K'K6'KR'Kh'K„'K 'K¼'KØ'Kô'L'L,'LH'Ld'L€'Lœ'L¸'LÔ'Lð'M 'M('MD'M`'M|'M˜'M´'MÐ'Mì'N'N$'N@'N\'Nr'NŽ'Nª'NÆ'Nâ'Nþ'O'O6'OR'On'OŠ'O¦'OÂ'OÞ'Oú'P'P2'PN'Pj'P†'P¢'P¾'PÚ'Pö'Q'Q.'QJ'Qf'Q|'Q˜'Q´'QÐ'Qì'R'R$'R@'R\'Rx'R”'R°'RÌ'Rè'S'S 'S<'SX'St'S'S¬'SÈ'Sä'T'T'T8'TT'Tp'T†'T¢'T¾'TÚ'Tö'U'U.'UJ'Uf'U‚'Už'Uº'UÖ'Uò'V'V*'VF'Vb'V~'Vš'V¶'VÒ'Vî'W 'W&'WB'W^'Wz'W'W¬'WÈ'Wä'X'X'X8'XT'Xp'XŒ'X¨'XÄ'Xà'Xü'Y'Y4'YP'Yl'Yˆ'Y¤'YÀ'YÜ'Yø'Z'Z0'ZL'Zh'Z„'Zš'Z¶'ZÒ'Zî'[ '[&'[B'[^'[z'[–'[²'[Î'[ê'\'\"'\>'\Z'\v'\’'\®'\Ê'\æ']']']:']V']r']Ž']¤']À']Ü']ø'^'^0'^L'^h'^„'^ '^¼'^Ø'^ô'_'_,'_H'_d'_€'_œ'_¸'_Ô'_ð'` '`('`D'``'`|'`˜'`®'`Ê'`æ'a'a'a:'aV'ar'aŽ'aª'aÆ'aâ'aþ'b'b6'bR'bn'bŠ'b¦'bÂ'bÞ'bú'c'c2'cN'cj'c†'c¢'c¸'cÔ'cð'd 'd('dD'd`'d|'d˜'d´'dÐ'dì'e'e$'e@'e\'ex'e”'e°'eÌ'eè'f'f 'f<'fX'ft'f'f¬'fÂ'fÞ'fú'g'g2'gN'gj'g†'g¢'g¾'gÚ'gö'h'h.'hJ'hf'h‚'hž'hº'hÖ'hò'i'i*'iF'ib'i~'iš'i¶'iÌ'iè'j'j 'j<'jX'jt'j'j¬'jÈ'jä'k'k'k8'kT'kp'kŒ'k¨'kÄ'kà'kü'l'l4'lP'll'lˆ'l¤'lÀ'lÖ'lò'm'm*'mF'mb'm~'mš'm¶'mÒ'mî'n 'n&'nB'n^'nz'n–'n²'nÎ'nê'o'o"'o>'oZ'ov'o’'o®'oÊ'oà'oü'p'p4'pP'pl'pˆ'p¤'pÀ'pÜ'pø'q'q0'qL'qh'q„'q 'q¼'qØ'qô'r'r,'rH'rd'r€'rœ'r¸'rÔ'rê's's"'s>'sZ'sv's’'s®'sÊ'sæ't't't:'tV'tr'tŽ'tª'tÆ'tâ'tþ'u'u6'uR'un'uŠ'u¦'uÂ'uÞ'uô'v'v,'vH'vd'v€'vœ'v¸'vÔ'vð'w 'w('wD'w`'w|'w˜'w´'wÐ'wì'x'x$'x@'x\'xx'x”'x°'xÌ'xè'xþ'y'y6'yR'yn'yŠ'y¦'yÂ'yÞ'yú'z'z2'zN'zj'z†'z¢'z¾'zÚ'zö'{'{.'{J'{f'{‚'{ž'{º'{Ö'{ò'|'|$'|@'|\'|x'|”'|°'|Ì'|è'}'} '}<'}X'}t'}'}¬'}È'}ä'~'~'~8'~T'~p'~Œ'~¨'~Ä'~à'~ü''.'J'f'‚'ž'º'Ö'ò'€'€*'€F'€b'€~'€š'€¶'€Ò'€î' '&'B'^'z'–'²'Î'ê'‚'‚'‚8'‚T'‚p'‚Œ'‚¨'‚Ä'‚à'‚ü'ƒ'ƒ4'ƒP'ƒl'ƒˆ'ƒ¤'ƒÀ'ƒÜ'ƒø'„'„0'„L'„h'„„'„ '„¼'„Ø'„ô'…'…&'…B'…^'…z'…–'…²'…Î'…ê'†'†"'†>'†Z'†v'†’'†®'†Ê'†æ'‡'‡'‡:'‡V'‡r'‡Ž'‡ª'‡Æ'‡â'‡þ'ˆ'ˆ0'ˆL'ˆh'ˆ„'ˆ 'ˆ¼'ˆØ'ˆô'‰'‰,'‰H'‰d'‰€'‰œ'‰¸'‰Ô'‰ð'Š 'Š('ŠD'Š`'Š|'Š˜'Š´'ŠÐ'Šì'‹'‹$'‹:'‹V'‹r'‹Ž'‹ª'‹Æ'‹â'‹þ'Œ'Œ6'ŒR'Œn'ŒŠ'Œ¦'ŒÂ'ŒÞ'Œú''2'N'j'†'¢'¾'Ú'ö'Ž'Ž.'ŽD'Ž`'Ž|'Ž˜'Ž´'ŽÐ'Žì''$'@'\'x'”'°'Ì'è'' '<'X't''¬'È'ä'‘'‘'‘8'‘N'‘j'‘†'‘¢'‘¾'‘Ú'‘ö'’'’.'’J'’f'’‚'’ž'’º'’Ö'’ò'“'“*'“F'“b'“~'“š'“¶'“Ò'“î'” '”&'”B'”X'”t'”'”¬'”È'”ä'•'•'•8'•T'•p'•Œ'•¨'•Ä'•à'•ü'–'–4'–P'–l'–ˆ'–¤'–À'–Ü'–ø'—'—0'—L'—b'—~'—š'—¶'—Ò'—î'˜ '˜&'˜B'˜^'˜z'˜–'˜²'˜Î'˜ê'™'™"'™>'™Z'™v'™’'™®'™Ê'™æ'š'š'š:'šV'šl'šˆ'š¤'šÀ'šÜ'šø'›'›0'›L'›h'›„'› '›¼'›Ø'›ô'œ'œ,'œH'œd'œ€'œœ'œ¸'œÔ'œð' '('D'`'v'’'®'Ê'æ'ž'ž'ž:'žV'žr'žŽ'žª'žÆ'žâ'žþ'Ÿ'Ÿ6'ŸR'Ÿn'ŸŠ'Ÿ¦'ŸÂ'ŸÞ'Ÿú' ' 2' N' j' €' œ' ¸' Ô' ð'¡ '¡('¡D'¡`'¡|'¡˜'¡´'¡Ð'¡ì'¢'¢$'¢@'¢\'¢x'¢”'¢°'¢Ì'¢è'£'£ '£<'£X'£t'£Š'£¦'£Â'£Þ'£ú'¤'¤2'¤N'¤j'¤†'¤¢'¤¾'¤Ú'¤ö'¥'¥.'¥J'¥f'¥‚'¥ž'¥º'¥Ö'¥ò'¦'¦*'¦F'¦b'¦~'¦”'¦°'¦Ì'¦è'§'§ '§<'§X'§t'§'§¬'§È'§ä'¨'¨'¨8'¨T'¨p'¨Œ'¨¨'¨Ä'¨à'¨ü'©'©4'©P'©l'©ˆ'©ž'©º'©Ö'©ò'ª'ª*'ªF'ªb'ª~'ªš'ª¶'ªÒ'ªî'« '«&'«B'«^'«z'«–'«²'«Î'«ê'¬'¬"'¬>'¬Z'¬v'¬’'¬¨'¬Ä'¬à'¬ü'­'­4'­P'­l'­ˆ'­¤'­À'­Ü'­ø'®'®0'®L'®h'®„'® '®¼'®Ø'®ô'¯'¯,'¯H'¯d'¯€'¯œ'¯²'¯Î'¯ê'°'°"'°>'°Z'°v'°’'°®'°Ê'°æ'±'±'±:'±V'±r'±Ž'±ª'±Æ'±â'±þ'²'²6'²R'²n'²Š'²¦'²¼'²Ø'²ô'³'³,'³H'³d'³€'³œ'³¸'³Ô'³ð'´ '´('´D'´`'´|'´˜'´´'´Ð'´ì'µ'µ$'µ@'µ\'µx'µ”'µ°'µÆ'µâ'µþ'¶'¶6'¶R'¶n'¶Š'¶¦'¶Â'¶Þ'¶ú'·'·2'·N'·j'·†'·¢'·¾'·Ú'·ö'¸'¸.'¸J'¸f'¸‚'¸ž'¸º'¸Ð'¸ì'¹'¹$'¹@'¹\'¹x'¹”'¹°'¹Ì'¹è'º'º 'º<'ºX'ºt'º'º¬'ºÈ'ºä'»'»'»8'»T'»p'»Œ'»¨'»Ä'»Ú'»ö'¼'¼.'¼J'¼f'¼‚'¼ž'¼º'¼Ö'¼ò'½'½*'½F'½b'½~'½š'½¶'½Ò'½î'¾ '¾&'¾B'¾^'¾z'¾–'¾²'¾Î'¾ä'¿'¿'¿8'¿T'¿p'¿Œ'¿¨'¿Ä'¿à'¿ü'À'À4'ÀP'Àl'Àˆ'À¤'ÀÀ'ÀÜ'Àø'Á'Á0'ÁL'Áh'Á„'Á 'Á¼'ÁØ'Áî' 'Â&'ÂB'Â^'Âz'–'²'ÂÎ'Âê'Ã'Ã"'Ã>'ÃZ'Ãv'Ã’'î'ÃÊ'Ãæ'Ä'Ä'Ä:'ÄV'Är'ÄŽ'Ī'ÄÆ'Äâ'Äø'Å'Å0'ÅL'Åh'Å„'Å 'ż'ÅØ'Åô'Æ'Æ,'ÆH'Æd'Æ€'Æœ'Ƹ'ÆÔ'Æð'Ç 'Ç('ÇD'Ç`'Ç|'ǘ'Ç´'ÇÐ'Çì'È'È'È:'ÈV'Èr'ÈŽ'Ȫ'ÈÆ'Èâ'Èþ'É'É6'ÉR'Én'ÉŠ'ɦ'ÉÂ'ÉÞ'Éú'Ê'Ê2'ÊN'Êj'ʆ'Ê¢'ʾ'ÊÚ'Êö'Ë 'Ë('ËD'Ë`'Ë|'˘'Ë´'ËÐ'Ëì'Ì'Ì$'Ì@'Ì\'Ìx'Ì”'̰'ÌÌ'Ìè'Í'Í 'Í<'ÍX'Ít'Í'ͬ'ÍÈ'Íä'Î'Î'Î2'ÎN'Îj'Ά'΢'ξ'ÎÚ'Îö'Ï'Ï.'ÏJ'Ïf'Ï‚'Ïž'Ϻ'ÏÖ'Ïò'Ð'Ð*'ÐF'Ðb'Ð~'К'ж'ÐÒ'Ðî'Ñ 'Ñ 'Ñ<'ÑX'Ñt'Ñ'Ѭ'ÑÈ'Ñä'Ò'Ò'Ò8'ÒT'Òp'ÒŒ'Ò¨'ÒÄ'Òà'Òü'Ó'Ó4'ÓP'Ól'Óˆ'Ó¤'ÓÀ'ÓÜ'Óø'Ô'Ô*'ÔF'Ôb'Ô~'Ôš'Ô¶'ÔÒ'Ôî'Õ 'Õ&'ÕB'Õ^'Õz'Õ–'Õ²'ÕÎ'Õê'Ö'Ö"'Ö>'ÖZ'Öv'Ö’'Ö®'ÖÊ'Öæ'×'×'×4'×P'×l'׈'פ'×À'×Ü'×ø'Ø'Ø0'ØL'Øh'Ø„'Ø 'ؼ'ØØ'Øô'Ù'Ù,'ÙH'Ùd'Ù€'Ùœ'Ù¸'ÙÔ'Ùð'Ú 'Ú('Ú>'ÚZ'Úv'Ú’'Ú®'ÚÊ'Úæ'Û'Û'Û:'ÛV'Ûr'ÛŽ'Ûª'ÛÆ'Ûâ'Ûþ'Ü'Ü6'ÜR'Ün'ÜŠ'ܦ'ÜÂ'ÜÞ'Üú'Ý'Ý2'ÝH'Ýd'Ý€'Ýœ'ݸ'ÝÔ'Ýð'Þ 'Þ('ÞD'Þ`'Þ|'Þ˜'Þ´'ÞÐ'Þì'ß'ß$'ß@'ß\'ßx'ß”'ß°'ßÌ'ßè'à'à 'à<'àR'àn'àŠ'à¦'àÂ'àÞ'àú'á'á2'áN'áj'á†'á¢'á¾'áÚ'áö'â'â.'âJ'âf'â‚'âž'âº'âÖ'âò'ã'ã*'ãF'ã\'ãx'ã”'ã°'ãÌ'ãè'ä'ä 'ä<'äX'ät'ä'ä¬'äÈ'ää'å'å'å8'åT'åp'åŒ'å¨'åÄ'åà'åü'æ'æ4'æP'æf'æ‚'æž'æº'æÖ'æò'ç'ç*'çF'çb'ç~'çš'ç¶'çÒ'çî'è 'è&'èB'è^'èz'è–'è²'èÎ'èê'é'é"'é>'éZ'ép'éŒ'é¨'éÄ'éà'éü'ê'ê4'êP'êl'êˆ'ê¤'êÀ'êÜ'êø'ë'ë0'ëL'ëh'ë„'ë 'ë¼'ëØ'ëô'ì'ì,'ìH'ìd'ìz'ì–'ì²'ìÎ'ìê'í'í"'í>'íZ'ív'í’'í®'íÊ'íæ'î'î'î:'îV'îr'îŽ'îª'îÆ'îâ'îþ'ï'ï6'ïR'ïn'ï„'ï 'ï¼'ïØ'ïô'ð'ð,'ðH'ðd'ð€'ðœ'ð¸'ðÔ'ðð'ñ 'ñ('ñD'ñ`'ñ|'ñ˜'ñ´'ñÐ'ñì'ò'ò$'ò@'ò\'òx'òŽ'òª'òÆ'òâ'òþ'ó'ó6'óR'ón'óŠ'ó¦'óÂ'óÞ'óú'ô'ô2'ôN'ôj'ô†'ô¢'ô¾'ôÚ'ôö'õ'õ.'õJ'õf'õ‚'õ˜'õ´'õÐ'õì'ö'ö$'ö@'ö\'öx'ö”'ö°'öÌ'öè'÷'÷ '÷<'÷X'÷t'÷'÷¬'÷È'÷ä'ø'ø'ø8'øT'øp'øŒ'ø¢'ø¾'øÚ'øö'ù'ù.'ùJ'ùf'ù‚'ùž'ùº'ùÖ'ùò'ú'ú*'úF'úb'ú~'úš'ú¶'úÒ'úî'û 'û&'ûB'û^'ûz'û–'û¬'ûÈ'ûä'ü'ü'ü8'üT'üp'üŒ'ü¨'üÄ'üà'üü'ý'ý4'ýP'ýl'ýˆ'ý¤'ýÀ'ýÜ'ýø'þ'þ0'þL'þh'þ„'þ 'þ¶'þÒ'þî'ÿ 'ÿ&'ÿB'ÿ^'ÿz'ÿ–'ÿ²'ÿÎ'ÿê(("(>(Z(v(’(®(Ê(æ(((:(V(r(Ž(ª(À(Ü(ø((0(L(h(„( (¼(Ø(ô((,(H(d(€(œ(¸(Ô(ð( (((D(`(|(˜(´(Ê(æ(((:(V(r(Ž(ª(Æ(â(þ((6(R(n(Š(¦(Â(Þ(ú((2(N(j(†(¢(¾(Ô(ð( (((D(`(|(˜(´(Ð(ì( ( $( @( \( x( ”( °( Ì( è( ( ( <( X( t( ( ¬( È( Þ( ú( ( 2( N( j( †( ¢( ¾( Ú( ö( ( .( J( f( ‚( ž( º( Ö( ò( ( *( F( b( ~( š( ¶( Ò( è(( (<(X(t((¬(È(ä(((8(T(p(Œ(¨(Ä(à(ü((4(P(l(ˆ(¤(À(Ü(ò((*(F(b(~(š(¶(Ò(î( (&(B(^(z(–(²(Î(ê(("(>(Z(v(’(®(Ê(æ(ü((4(P(l(ˆ(¤(À(Ü(ø((0(L(h(„( (¼(Ø(ô((,(H(d(€(œ(¸(Ô(ð(("(>(Z(v(’(®(Ê(æ(((:(V(r(Ž(ª(Æ(â(þ((6(R(n(Š(¦(Â(Þ(ú((,(H(d(€(œ(¸(Ô(ð( (((D(`(|(˜(´(Ð(ì(($(@(\(x(”(°(Ì(è(((6(R(n(Š(¦(Â(Þ(ú((2(N(j(†(¢(¾(Ú(ö((.(J(f(‚(ž(º(Ö(ò( ( $( @( \( x( ”( °( Ì( è(!(! (!<(!X(!t(!(!¬(!È(!ä("("("8("T("p("Œ("¨("Ä("à("ü(#(#.(#J(#f(#‚(#ž(#º(#Ö(#ò($($*($F($b($~($š($¶($Ò($î(% (%&(%B(%^(%z(%–(%²(%Î(%ê(&(&"(&8(&T(&p(&Œ(&¨(&Ä(&à(&ü('('4('P('l('ˆ('¤('À('Ü('ø((((0((L((h((„(( ((¼((Ø((ô()(),()B()^()z()–()²()Î()ê(*(*"(*>(*Z(*v(*’(*®(*Ê(*æ(+(+(+:(+V(+r(+Ž(+ª(+Æ(+â(+þ(,(,6(,L(,h(,„(, (,¼(,Ø(,ô(-(-,(-H(-d(-€(-œ(-¸(-Ô(-ð(. (.((.D(.`(.|(.˜(.´(.Ð(.ì(/(/$(/@(/V(/r(/Ž(/ª(/Æ(/â(/þ(0(06(0R(0n(0Š(0¦(0Â(0Þ(0ú(1(12(1N(1j(1†(1¢(1¾(1Ú(1ö(2(2.(2J(2`(2|(2˜(2´(2Ð(2ì(3(3$(3@(3\(3x(3”(3°(3Ì(3è(4(4 (4<(4X(4t(4(4¬(4È(4ä(5(5(58(5T(5j(5†(5¢(5¾(5Ú(5ö(6(6.(6J(6f(6‚(6ž(6º(6Ö(6ò(7(7*(7F(7b(7~(7š(7¶(7Ò(7î(8 (8&(8B(8^(8t(8(8¬(8È(8ä(9(9(98(9T(9p(9Œ(9¨(9Ä(9à(9ü(:(:4(:P(:l(:ˆ(:¤(:À(:Ü(:ø(;(;0(;L(;h(;~(;š(;¶(;Ò(;î(< (<&((=Z(=v(=’(=®(=Ê(=æ(>(>(>:(>V(>r(>ˆ(>¤(>À(>Ü(>ø(?(?0(?L(?h(?„(? (?¼(?Ø(?ô(@(@,(@H(@d(@€(@œ(@¸(@Ô(@ð(A (A((AD(A`(A|(A’(A®(AÊ(Aæ(B(B(B:(BV(Br(BŽ(Bª(BÆ(Bâ(Bþ(C(C6(CR(Cn(CŠ(C¦(CÂ(CÞ(Cú(D(D2(DN(Dj(D†(Dœ(D¸(DÔ(Dð(E (E((ED(E`(E|(E˜(E´(EÐ(Eì(F(F$(F@(F\(Fx(F”(F°(FÌ(Fè(G(G (G<(GX(Gt(G(G¦(GÂ(GÞ(Gú(H(H2(HN(Hj(H†(H¢(H¾(HÚ(Hö(I(I.(IJ(If(I‚(Iž(Iº(IÖ(Iò(J(J*(JF(Jb(J~(Jš(J°(JÌ(Jè(K(K (K<(KX(Kt(K(K¬(KÈ(Kä(L(L(L8(LT(Lp(LŒ(L¨(LÄ(Là(Lü(M(M4(MP(Ml(Mˆ(M¤(Mº(MÖ(Mò(N(N*(NF(Nb(N~(Nš(N¶(NÒ(Nî(O (O&(OB(O^(Oz(O–(O²(OÎ(Oê(P(P"(P>(PZ(Pv(P’(P®(PÄ(Pà(Pü(Q(Q4(QP(Ql(Qˆ(Q¤(QÀ(QÜ(Qø(R(R0(RL(Rh(R„(R (R¼(RØ(Rô(S(S,(SH(Sd(S€(Sœ(S¸(SÎ(Sê(T(T"(T>(TZ(Tv(T’(T®(TÊ(Tæ(U(U(U:(UV(Ur(UŽ(Uª(UÆ(Uâ(Uþ(V(V6(VR(Vn(VŠ(V¦(VÂ(VØ(Vô(W(W,(WH(Wd(W€(Wœ(W¸(WÔ(Wð(X (X((XD(X`(X|(X˜(X´(XÐ(Xì(Y(Y$(Y@(Y\(Yx(Y”(Y°(YÌ(Yâ(Yþ(Z(Z6(ZR(Zn(ZŠ(Z¦(ZÂ(ZÞ(Zú([([2([N([j([†([¢([¾([Ú([ö(\(\.(\J(\f(\‚(\ž(\º(\Ö(\ì(](]$(]@(]\(]x(]”(]°(]Ì(]è(^(^ (^<(^X(^t(^(^¬(^È(^ä(_(_(_8(_T(_p(_Œ(_¨(_Ä(_à(_ö(`(`.(`J(`f(`‚(`ž(`º(`Ö(`ò(a(a*(aF(ab(a~(aš(a¶(aÒ(aî(b (b&(bB(b^(bz(b–(b²(bÎ(bê(c(c(c8(cT(cp(cŒ(c¨(cÄ(cà(cü(d(d4(dP(dl(dˆ(d¤(dÀ(dÜ(dø(e(e0(eL(eh(e„(e (e¼(eØ(eô(f (f&(fB(f^(fz(f–(f²(fÎ(fê(g(g"(g>(gZ(gv(g’(g®(gÊ(gæ(h(h(h:(hV(hr(hŽ(hª(hÆ(hâ(hþ(i(i0(iL(ih(i„(i (i¼(iØ(iô(j(j,(jH(jd(j€(jœ(j¸(jÔ(jð(k (k((kD(k`(k|(k˜(k´(kÐ(kì(l(l(l:(lV(lr(lŽ(lª(lÆ(lâ(lþ(m(m6(mR(mn(mŠ(m¦(mÂ(mÞ(mú(n(n2(nN(nj(n†(n¢(n¾(nÚ(nö(o(o((oD(o`(o|(o˜(o´(oÐ(oì(p(p$(p@(p\(px(p”(p°(pÌ(pè(q(q (q<(qX(qt(q(q¬(qÈ(qä(r(r(r2(rN(rj(r†(r¢(r¾(rÚ(rö(s(s.(sJ(sf(s‚(sž(sº(sÖ(sò(t(t*(tF(tb(t~(tš(t¶(tÒ(tî(u (u&(u<(uX(ut(u(u¬(uÈ(uä(v(v(v8(vT(vp(vŒ(v¨(vÄ(và(vü(w(w4(wP(wl(wˆ(w¤(wÀ(wÜ(wø(x(x0(xF(xb(x~(xš(x¶(xÒ(xî(y (y&(yB(y^(yz(y–(y²(yÎ(yê(z(z"(z>(zZ(zv(z’(z®(zÊ(zæ({({({:({P({l({ˆ({¤({À({Ü({ø(|(|0(|L(|h(|„(| (|¼(|Ø(|ô(}(},(}H(}d(}€(}œ(}¸(}Ô(}ð(~ (~((~D(~Z(~v(~’(~®(~Ê(~æ(((:(V(r(Ž(ª(Æ(â(þ(€(€6(€R(€n(€Š(€¦(€Â(€Þ(€ú((2(N(d(€(œ(¸(Ô(ð(‚ (‚((‚D(‚`(‚|(‚˜(‚´(‚Ð(‚ì(ƒ(ƒ$(ƒ@(ƒ\(ƒx(ƒ”(ƒ°(ƒÌ(ƒè(„(„ („<(„X(„n(„Š(„¦(„Â(„Þ(„ú(…(…2(…N(…j(…†(…¢(…¾(…Ú(…ö(†(†.(†J(†f(†‚(†ž(†º(†Ö(†ò(‡(‡*(‡F(‡b(‡x(‡”(‡°(‡Ì(‡è(ˆ(ˆ (ˆ<(ˆX(ˆt(ˆ(ˆ¬(ˆÈ(ˆä(‰(‰(‰8(‰T(‰p(‰Œ(‰¨(‰Ä(‰à(‰ü(Š(Š4(ŠP(Šl(Š‚(Šž(Šº(ŠÖ(Šò(‹(‹*(‹F(‹b(‹~(‹š(‹¶(‹Ò(‹î(Œ (Œ&(ŒB(Œ^(Œz(Œ–(Œ²(ŒÎ(Œê(("(>(Z(v(Œ(¨(Ä(à(ü(Ž(Ž4(ŽP(Žl(Žˆ(ޤ(ŽÀ(ŽÜ(Žø((0(L(h(„( (¼(Ø(ô((,(H(d(€(–(²(Î(ê(‘(‘"(‘>(‘Z(‘v(‘’(‘®(‘Ê(‘æ(’(’(’:(’V(’r(’Ž(’ª(’Æ(’â(’þ(“(“6(“R(“n(“Š(“ (“¼(“Ø(“ô(”(”,(”H(”d(”€(”œ(”¸(”Ô(”ð(• (•((•D(•`(•|(•˜(•´(•Ð(•ì(–(–$(–@(–\(–x(–”(–ª(–Æ(–â(–þ(—(—6(—R(—n(—Š(—¦(—Â(—Þ(—ú(˜(˜2(˜N(˜j(˜†(˜¢(˜¾(˜Ú(˜ö(™(™.(™J(™f(™‚(™ž(™´(™Ð(™ì(š(š$(š@(š\(šx(š”(š°(šÌ(šè(›(› (›<(›X(›t(›(›¬(›È(›ä(œ(œ(œ8(œT(œp(œŒ(œ¨(œ¾(œÚ(œö((.(J(f(‚(ž(º(Ö(ò(ž(ž*(žF(žb(ž~(žš(ž¶(žÒ(žî(Ÿ (Ÿ&(ŸB(Ÿ^(Ÿz(Ÿ–(Ÿ²(ŸÈ(Ÿä( ( ( 8( T( p( Œ( ¨( Ä( à( ü(¡(¡4(¡P(¡l(¡ˆ(¡¤(¡À(¡Ü(¡ø(¢(¢0(¢L(¢h(¢„(¢ (¢¼(¢Ò(¢î(£ (£&(£B(£^(£z(£–(£²(£Î(£ê(¤(¤"(¤>(¤Z(¤v(¤’(¤®(¤Ê(¤æ(¥(¥(¥:(¥V(¥r(¥Ž(¥ª(¥Æ(¥Ü(¥ø(¦(¦0(¦L(¦h(¦„(¦ (¦¼(¦Ø(¦ô(§(§,(§H(§d(§€(§œ(§¸(§Ô(§ð(¨ (¨((¨D(¨`(¨|(¨˜(¨´(¨Ð(¨æ(©(©(©:(©V(©r(©Ž(©ª(©Æ(©â(©þ(ª(ª6(ªR(ªn(ªŠ(ª¦(ªÂ(ªÞ(ªú(«(«2(«N(«j(«†(«¢(«¾(«Ú(«ð(¬ (¬((¬D(¬`(¬|(¬˜(¬´(¬Ð(¬ì(­(­$(­@(­\(­x(­”(­°(­Ì(­è(®(® (®<(®X(®t(®(®¬(®È(®ä(®ú(¯(¯2(¯N(¯j(¯†(¯¢(¯¾(¯Ú(¯ö(°(°.(°J(°f(°‚(°ž(°º(°Ö(°ò(±(±*(±F(±b(±~(±š(±¶(±Ò(±î(²(² (²<(²X(²t(²(²¬(²È(²ä(³(³(³8(³T(³p(³Œ(³¨(³Ä(³à(³ü(´(´4(´P(´l(´ˆ(´¤(´À(´Ü(´ø(µ(µ*(µF(µb(µ~(µš(µ¶(µÒ(µî(¶ (¶&(¶B(¶^(¶z(¶–(¶²(¶Î(¶ê(·(·"(·>(·Z(·v(·’(·®(·Ê(·æ(¸(¸(¸4(¸P(¸l(¸ˆ(¸¤(¸À(¸Ü(¸ø(¹(¹0(¹L(¹h(¹„(¹ (¹¼(¹Ø(¹ô(º(º,(ºH(ºd(º€(ºœ(º¸(ºÔ(ºð(» (»"(»>(»Z(»v(»’(»®(»Ê(»æ(¼(¼(¼:(¼V(¼r(¼Ž(¼ª(¼Æ(¼â(¼þ(½(½6(½R(½n(½Š(½¦(½Â(½Þ(½ú(¾(¾,(¾H(¾d(¾€(¾œ(¾¸(¾Ô(¾ð(¿ (¿((¿D(¿`(¿|(¿˜(¿´(¿Ð(¿ì(À(À$(À@(À\(Àx(À”(À°(ÀÌ(Àè(Á(Á (Á6(ÁR(Án(ÁŠ(Á¦(ÁÂ(ÁÞ(Áú(Â(Â2(ÂN(Âj(†(¢(¾(ÂÚ(Âö(Ã(Ã.(ÃJ(Ãf(Â(Þ(ú(ÃÖ(Ãò(Ä(Ä*(Ä@(Ä\(Äx(Ä”(İ(ÄÌ(Äè(Å(Å (Å<(ÅX(Åt(Å(Ŭ(ÅÈ(Åä(Æ(Æ(Æ8(ÆT(Æp(ÆŒ(ƨ(ÆÄ(Æà(Æü(Ç(Ç4(ÇJ(Çf(Ç‚(Çž(Ǻ(ÇÖ(Çò(È(È*(ÈF(Èb(È~(Èš(ȶ(ÈÒ(Èî(É (É&(ÉB(É^(Éz(É–(ɲ(ÉÎ(Éê(Ê(Ê"(Ê>(ÊT(Êp(ÊŒ(ʨ(ÊÄ(Êà(Êü(Ë(Ë4(ËP(Ël(ˈ(ˤ(ËÀ(ËÜ(Ëø(Ì(Ì0(ÌL(Ìh(Ì„(Ì (̼(ÌØ(Ìô(Í(Í,(ÍH(Í^(Íz(Í–(Ͳ(ÍÎ(Íê(Î(Î"(Î>(ÎZ(Îv(Î’(ή(ÎÊ(Îæ(Ï(Ï(Ï:(ÏV(Ïr(ÏŽ(Ϫ(ÏÆ(Ïâ(Ïþ(Ð(Ð6(ÐR(Ðh(Є(Р(м(ÐØ(Ðô(Ñ(Ñ,(ÑH(Ñd(Ñ€(Ñœ(Ѹ(ÑÔ(Ñð(Ò (Ò((ÒD(Ò`(Ò|(Ò˜(Ò´(ÒÐ(Òì(Ó(Ó$(Ó@(Ó\(Ór(ÓŽ(Óª(ÓÆ(Óâ(Óþ(Ô(Ô6(ÔR(Ôn(ÔŠ(Ô¦(ÔÂ(ÔÞ(Ôú(Õ(Õ2(ÕN(Õj(Õ†(Õ¢(Õ¾(ÕÚ(Õö(Ö(Ö.(ÖJ(Öf(Ö|(Ö˜(Ö´(ÖÐ(Öì(×(×$(×@(×\(×x(×”(×°(×Ì(×è(Ø(Ø (Ø<(ØX(Øt(Ø(ج(ØÈ(Øä(Ù(Ù(Ù8(ÙT(Ùp(Ù†(Ù¢(Ù¾(ÙÚ(Ùö(Ú(Ú.(ÚJ(Úf(Ú‚(Úž(Úº(ÚÖ(Úò(Û(Û*(ÛF(Ûb(Û~(Ûš(Û¶(ÛÒ(Ûî(Ü (Ü&(ÜB(Ü^(Üz(Ü(ܬ(ÜÈ(Üä(Ý(Ý(Ý8(ÝT(Ýp(ÝŒ(ݨ(ÝÄ(Ýà(Ýü(Þ(Þ4(ÞP(Þl(Þˆ(Þ¤(ÞÀ(ÞÜ(Þø(ß(ß0(ßL(ßh(ß„(ßš(ß¶(ßÒ(ßî(à (à&(àB(à^(àz(à–(à²(àÎ(àê(á(á"(á>(áZ(áv(á’(á®(áÊ(áæ(â(â(â:(âV(âr(âŽ(â¤(âÀ(âÜ(âø(ã(ã0(ãL(ãh(ã„(ã (ã¼(ãØ(ãô(ä(ä,(äH(äd(ä€(äœ(ä¸(äÔ(äð(å (å((åD(å`(å|(å˜(å®(åÊ(åæ(æ(æ(æ:(æV(ær(æŽ(æª(æÆ(æâ(æþ(ç(ç6(çR(çn(çŠ(ç¦(çÂ(çÞ(çú(è(è2(èN(èj(è†(è¢(è¸(èÔ(èð(é (é((éD(é`(é|(é˜(é´(éÐ(éì(ê(ê$(ê@(ê\(êx(ê”(ê°(êÌ(êè(ë(ë (ë<(ëX(ët(ë(ë¬(ëÂ(ëÞ(ëú(ì(ì2(ìN(ìj(ì†(ì¢(ì¾(ìÚ(ìö(í(í.(íJ(íf(í‚(íž(íº(íÖ(íò(î(î*(îF(îb(î~(îš(î¶(îÌ(îè(ï(ï (ï<(ïX(ït(ï(ï¬(ïÈ(ïä(ð(ð(ð8(ðT(ðp(ðŒ(ð¨(ðÄ(ðà(ðü(ñ(ñ4(ñP(ñl(ñˆ(ñ¤(ñÀ(ñÖ(ñò(ò(ò*(òF(òb(ò~(òš(ò¶(òÒ(òî(ó (ó&(óB(ó^(óz(ó–(ó²(óÎ(óê(ô(ô"(ô>(ôZ(ôv(ô’(ô®(ôÊ(ôà(ôü(õ(õ4(õP(õl(õˆ(õ¤(õÀ(õÜ(õø(ö(ö0(öL(öh(ö„(ö (ö¼(öØ(öô(÷(÷,(÷H(÷d(÷€(÷œ(÷¸(÷Ô(÷ê(ø(ø"(ø>(øZ(øv(ø’(ø®(øÊ(øæ(ù(ù(ù:(ùV(ùr(ùŽ(ùª(ùÆ(ùâ(ùþ(ú(ú6(úR(ún(úŠ(ú¦(úÂ(úÞ(úô(û(û,(ûH(ûd(û€(ûœ(û¸(ûÔ(ûð(ü (ü((üD(ü`(ü|(ü˜(ü´(üÐ(üì(ý(ý$(ý@(ý\(ýx(ý”(ý°(ýÌ(ýè(ýþ(þ(þ6(þR(þn(þŠ(þ¦(þÂ(þÞ(þú(ÿ(ÿ2(ÿN(ÿj(ÿ†(ÿ¢(ÿ¾(ÿÚ(ÿö)).)J)f)‚)ž)º)Ö)ò))$)@)\)x)”)°)Ì)è)) )<)X)t))¬)È)ä)))8)T)p)Œ)¨)Ä)à)ü)).)J)f)‚)ž)º)Ö)ò))*)F)b)~)š)¶)Ò)î) )&)B)^)z)–)²)Î)ê)))8)T)p)Œ)¨)Ä)à)ü))4)P)l)ˆ)¤)À)Ü)ø) ) 0) L) h) „)  ) ¼) Ø) ô) ) &) B) ^) z) –) ²) Î) ê) ) ") >) Z) v) ’) ®) Ê) æ) ) ) :) V) r) Ž) ª) Æ) â) þ) ) 0) F) \) r) Ž) ¤) À) Ö) ò)))4)J)`)|)’)¨)¾)Ô)ê))),)B)^)t)Š) )¶)Ì)â)ø))$):)P)f)|)’)¨)¾)Ô)ê))),)B)X)n)„)š)°)Æ)â)ø))$):)P)f)|)’)¨)¾)Ô)ê))),)B)X)t)Š) )¶)Ì)â)ø))$):)P)f)|)’)¨)¾)Ô)ð)))2)H)^)t)Š) )¶)Ì)â)ø))$)@)V)l)‚)˜)®)Ä)Ú)ð) )")8)N)d)z)–)¬)Â)Ø)î)))0)F)b)x)Ž)¤)º)Ð)æ)ü))()>)T)p)†)œ)²)Î)ä)ú))&)<)R)h)~)”)ª)À)Ö)ì))).)D)`)v)’)¨)¾)Ú)ð)))2)H)^)t)Š) )¶)Ì)â)ø))*)@)V)l)‚)˜)®)Ä)Ú)ð)))2)H)^)t)Š) )¶)Ì)â)))0)F)\)r)ˆ)ž)´)Ê)à)ö) ) ") 8) N) d) z) ) ¦Kµ·73#735#Kjj OO·· ÿü2·7#'3#"&54632*4ƒ© uV·7#'3#')E·BBBBŸ·73##7##7#537#5373373337#{#&  %  !$"%  $  !c%%p)6666)6666))ÿñ{Â!&7#5"'535&&546753&''5654N>'  64 #V.#. ÿþƹ '374632#"&74&#"3267#74632#"&74&#"326 9 `ef9 €K··€ÿþ°º$,7&54632673#'#"&5467654&#"'323&, # ( <1e. % ]3u)·7#')·BB ÿØE· 73#&540##&·2?>0+CDÿØC· #654'3##&(0>@1.CB OƒÃ77''7'7'S10/1Ã2) -- )2 !€” 7#53533##=0000Q000ÿß/7#67-"# :HO753 >:ÿü2 7#"&546322 ]·7#7]DD··· ÿþº 74632#"&74&#"326 ^\////////* +, Y·3#547'73Y" 0r& ~¹3#576654&#"'6323~r,  #V/ % ÿþ~¹"7#"'532654&##532654&#"'632Q-"!  `&   $ˆ¸ 7##5#5733#547#ˆTS14))){z, Lÿþ·7532654&#"'73#632#"  VB  "  V4 ÿþ¹!7&#"3632#"&54632"32654&t 8 !(( !·J )'65X  ·37#53#G_vF¢¥ ÿþ€º)7#"&547&54632654&#"32654&'Y'$3a       ÿþ¹!35327##"&54632#"72654&#" 7 "((!J )'65Xÿü2 7#"&54632#"&546322{  v ÿß2 7#"&54632#672{  f"# €œ7'57€ss\\5 <.( 7€}75353 sssk4 €œ77'5 \\ss2(.< 5ÿüe¹#754>54&#"'632#"&54632# 4    & ÿéз.97#"&5463232654&#"327#"&54632#"'&#"327‹  ' (/($,2;.(1  24 "(2+&)  2-1>2*"V'œ¸3'##73''&'„DCD399¸¸M5 5‘· 732##732654&##32654&#2$%*=!·"$iMBÿþ“¹7#"&54632&#"32Œ%*-& !//,1  '#$% ·3532#'32654&#3'-/*"!·/+-0£$$$#x· 3#53#3#3x__HCCH·8Ax· 3#53#3#0_HCC·@ÿþž¹73#"&54632&#"3275#b<!%,/* " %aZ 0.,1  &$$%6›· 3#5##53353›SSUU·MM M· 3#575'53MCC “ “ÿéÿÏ.· 5326553#"  .·´”· 3#'#5373”8HAWI·\\Px·3533H·¢Æ·3'##53373#547#d7"43#7 #m·••·o  ¢·3#'##533&553¢ZY—$c·—!dÿþ®º 74632#"&74&#"326*%$++$%*†\.01-.0//$%%$%%%†· 7#532#'32654&##0- "!GG·ÿÌ®º7&'#"&54632'4&#"326  %**%$+//.01-EE$%%$%%%”· 7#532#''32654&##0,! $2,LL·$ RL ÿþy¹!7532654'&'&&54632&#"#"   5        ‚·3#5#53#N44¢ÿþœ·7#"&55332655œ$#·v ## vww‘· 73#'367y==%···tà·736773#'&'#'367e .0·k#n·u u·oŒ· 3#'#7'373Œ--95)*5OO`WFFW‡·773#5'3C+88Z]pGFq €· 3#57#533€vYVpY\ÿØG·#53#3G22(ߺ]·7#'DD···ÿØ9·35#53#33ºßEƒ¸773#'5 <.(Ess\\ÿØjÿé#53jjj(1›bÄ7#&'53b › ÿþtŒ"3'##"&547754&#"'632'3265c:  *  ^C ÿþˆÃ7##533632#"72654&#"- Ã/ $##$ÿþnŒ7&#"327#"&54632n  !„##$$ÿþ€Ã7##"&546323'53#'54&#"326k##$$7Ã?ÿþ|Œ7#327#"&54632'34&#"|V" V>@  $""&!^Ä7##5#5754632&#"3Q   xxx    ÿÀŒ%1>7#"'332#"&547&547&546324&#"326#"32654&€ ""     ‰   +M  ‚Ã354&#"#533632l XGÃ:Z/½ 7#"&54632#53/®¶‰ÿøÿÃ/½ 7#"&546325326553#"/7 ®ð ž~à 773#'#53+525*GB;N? 5ÃZ"-Ã3#53-ÃÑŒ!354&#"#54&#"#5336323632º     XLXG‰Z‚Œ354&#"#533632l XG‰Zÿþ†Œ 74632#"&74&#"326!"!!`E"%&!#$%"ÿÈŒ7##533632#"'32654&#"-  :Æ$##$LÿÀŒ7373#57##"&5463254&#"326jwÆ:##$$MaŒ7&#"#533632a ‹J‰ ÿþhŒ7532654.54632&#"#"  -  .        ÿþR©7#"&55#57733#32R  ##  O  O ÿþ‰3'##"&553326553o  YXG‰{‰ 3'336773// /‰LL‰¼‰3'&'##'33677336773~##M$t‰IMMI‰{‰ 7'373#'#3,,.""FC33CF77ÿÃ|‰7336773#"'53277  6  ‰LL› g‰ 3#57#533g]C?VADhfÿØT·3"&554�"?   *  ) )=ÿÃPÃ73#=ÃÿÿØS·7475&5543"#5265  ') )  *  I€k75632327#"&#"  #   $ I  ÿÑ2Œ 74632#"&3# z  „$~‘'7'76327'#"''7&544&#"326           N  u           ÿÿlÄ*57&54632&#"#"'532654&'&&54654&'%   9 …        4   &¢m» 7#"&54632#"&54632?.® bH¹7'#"&547354&#"'632'32655=  #    d  8' ÿÿ :HO ÿþɹ &/7#"&546324&#"326'#'##532'32654&##É8&'77'&8/!"//"!/@  2 [&77&'77'"//"!///,,o k^¹ 7#"&546324&#"326^  ’   €” 7#53533##53=00000sQ000!IN¹7#576654&#"'6323NH  2I   GM¹"7#"'532654&##532654&#"'6327   ƒ    1›bÄ7673#1  ŸÿàÃ#5##5#"&54633 G ÏÏf !I2l 7#"&546322Z  ÿÃ3532654'73#"  <   I7· 73#547'& ·nA bQ¹ 74632#"&74&#"3269 ޱ·7#7#3#547'##5#5733#547–ef] ©//!···nA ‡HF 0´·%7#7#3#547'#576654&#"'6323”fe\ ¯G  1···nA Ÿ   º¹"&187#"'532654&##532654&#"'6327#7##5#5733#5477   Xee,./"ƒ    -··ŸHF  ÿÏiŒ #74632#"&327#"&54>550 z       Ë·3#5##73#3#3'35#Ë_<RyHCCH’399·8A8U · 73532##5#73#32654&#3'-/*.***"!eR/+-0PS><$$$#&| 7'77''9' ') (' )' Z( '' )( '' ÿ÷®À#7#"''7&5463277&#"732654£ +$  *% ]H cI ¶..0 1.0 ™w%$"Uv%% †· 7#5332#'32654&##0 "!((· ÿþÄ+7532654.54654&#"#54632#";  ! #$    ––  ÿÿ ÿþtÄ&DCóÿÿ ÿþtÄ&Dm ÿþÉŒ#)4754&#"'632632#327#"'#"&547734&#"3265] ! T" :/; S  !  *6 ÿÿÿþ|Ä&HCóÿÿÿþ|Ä&Hm ÿþ¥Ä &7#&'#57673#327#"&54632'34&#"¥  )V" V>› _  $""&!ÿÿÿý.Ä&•CÌÿÿIÄ&•mçÿþ†Ä&73&''7&'77#"&5463232654&#"l    &!!;k  $:$&! >ÿÿÿþ†Ä&RCüÿÿÿþ†Ä&Rm  €– 7#"&5463253#"&54632UHs+†="ÿ÷†’#7'7&546327#"'7&#"732654.  !  !2 D2  !"%  #$&Q6PÿÿÿþÄ&XCõÿÿÿþÄ&Xm ÿÿÿþ»&XeÿÈà 7632#"'##332654&#"-  w$##$::-ÿÿ ÿþt®&D§þÿþ”Ã&7##"&546323'5#53533##'54&#"326k00"""#›=ÿÿÿþ|®&H§ÿÿÿþ|Ä&H¦´·7533533##5##5#55#SSƒS˜†UU†.‚Ã354&#"#5#53533#3632l// SB›UÿÿÿþF®&•§Û-‰3#53-‰ÿÿ ÿÏ…·&,-WÿÿÿÃq½&LMB~‰ 3'#5373d*725= 3‰#F=Lÿÿx·&/©<®ÿÿUÃ&O©&¨x· 75373#5' &H_ UbT9?ÿÿDà 7537#5'  _dUXIÿÿ”·&Q#ýÿÏ¢·53265'##533&553#"^ _Y .—$c·’d´ÿÂŒ5326574&#"#533632#"M  : mG‰nÿÿÿþ†®&R§ÿþÕº3#"&546323#3#3'5&#"32Õ_%**% _HCCH_  //.08A‹%$%%ÿþÜŒ&,7#"&54632632#327#"'4&#"32674&#"z !!V!V%""%!  F)&‚·75#53#3##5#5744%%%f<<TTÿþR©7#"&55#535#57733#3#32R  ##!!     ÿÿÿþ®&X§ ›sÄ 7#&''53673s  Á  #›k®73##HH®$›o¾ 7#"'3327o## ¾##  /½ 7#"&54632/®.›fÑ 74632#"&732654&#".   ¶   ÿÈ,#"&547332,  (  ›xÄ7673#7673#  -   Ÿÿÿœ¸$ÿÿ‘·%x·7##5xH·¢·· 7#5733'&ˆ8  V ¦_^ÿÿx·(ÿÿ €·=ÿÿ›·+ÿþ®º 74632#"&74&#"326'3#*%$++$%*†XBB\.01-.0//$%%$%%%0ÿÿ M·,ÿÿ”·.‘· 3#'&'#73‘%%=st·ÿÿÆ·0ÿÿ¢·1 ~· 73#3##5jj TTdt·8Aÿÿÿþ®º2˜·3#5##53˜Q¢¢·ÿÿ†·3 ‚· 357'53#3 43pU14_MDBKÿÿ‚·7ÿÿ‡·< ÿþ·¹'7332###5#"&5463332654&+"33W #$%$ ¹&&&&vÿÿŒ·; ··7###5#"&5533353326553·$ ${$88$=<kk= µº7#53&546323#5654&#"TJ,&*%%*%,J+5',,'588ÿþ’Œ(73673327#"'##"&5463254&#"326k w "4##$$IÿÃÄ'7#"'#5463232654&##532654&#"b-Y h-BÆ%T ÿÃ|‰7#47'336773L  4  '‡HIÿþ†Ä$7&54632&#"#"&54732654C   ! D,u   !. ( ÿþlŒ#7#"327#"&5475&54632&#"3TQ     ÿÎmÃ753#654.5467#WG ,  '*¯A6   5)ÿÂŒ54&#"#533632l =•G‰—ÿþƒÅ 74632#"&73&#"#326G!!EGb1221221?DW%&&ÿþO‰ 7327#"&55+  ‰` `ÿÿ~‰˜ÿþÿþƒÄ#7'&&#"5632327#"''&'7  )  † y5 Hÿ‰7326553#'##"'#53-   1G‰ (Æz‰ 536653# ‰J5-.?ÿÎmÃ*7#"#654.54675&547##53#"3d -%$ Po     ÿÿÿþ†ŒRÿþ™‰7#"&55##5#573#32• 2…Xvv VÿÆŒ7#54632#"'32654&#"+  "$‚"%%"#$ ÿþ‘‰ 7##"&5463#"32654‘"! ##‰##!#$!ÿým‰7#327#"&55#57m/ %‰L N ÿþˆ‰7332654'3#"&5‰I  '& ÿÃ¥Œ5&547546325654&#"M?($*  =;D%! /L$!!';M2ÿþÿÃ…Š773327#"&''#7'&#"5632F$2 )8   @Ia< -Og8ÿîÂ7654'3#5&5535k,C@*±1##E;;EDE0²ÿþ³‰#7332655332654'3#"'##"&54  ‰"$&&$""$"##"$ÿÿxå&(e*ÿÿœ¸$†· 353#32#'32654&##bK"! ·8ÿÿ‘·%ÿÿx·¯ÿС· #5##536733#5#¡s(M/!#000EMU¢GFÿÿx·(з7'35373#'#5#ECAABDBB^YYYYYY^]]]] ÿþ~¹"7#"'532654&##532654&#"'632O/#" !`%   $¢·73373#547##YZ·d *—·c—¢í 7#"&'33273373#547##‹. \YZí( 6d *—·c—”· 3#'#5373”IGG]]·YYXÿý’·3#5##"'532673’/  Z¢y,)~ÿÿÆ·0ÿÿ›·+ÿÿÿþ®º2ÿÿ˜·¼ÿÿ†·3ÿÿÿþ“¹&ÿÿ‚·7ÿþ–·7#"'53267'3677–6 B4'·" ˆq cÿÿ ÿþ·¹ÁÿÿŒ·;ÿЮ· 73#5#53353˜QE0·¢¢·3#5#"&55332753K IF Yæ· 3#53353353æÍDD·¢¢¢¢ÿÐü·73#5#53353353æÍDDE0·¢¢¢¢›· 35#5332#'32654&##-*A"" !¢Mº· 35332#'32654&##53"! s·MU··†· 35332#'32654&##"! ·Mÿþ‰¹7'632#"'5327#53&&#" %-,'<ON› /+01Dÿþôº7##533632#"&74&#"326Z*+E#**#")UU·MP1-.0+3$%%$%%%~· 7#7&54633#55#"33H)0" .LLR '·LWÿÿ ÿþtŒDÿþ„Ä!73632#"&54767632654&#"9   Ä  !#**0f!!ƒ‰ 7##532'32654&#32654&#b!98R ! I‰(% 8+ a‰7##53a4Kvv‰ÿЇ‰ #5##536533#5#‡V !C*000C1Eve=(ÿÿÿþ|ŒH¸‰75373#'#5#7'3R45:8895GBBBBGFFFFGB ÿþjŒ#72654&#"'632#"'532654&##5.Q    ‡‰ 773#57#5+@@‰S s‰Q"s‰‡Ã 7#"&5332773#57#5~. >@@Ã( :S s‰Q"s‰}‰ 73#'#53_497‰BGFF‰Bÿþv‰3#5##"'53273v  JvH0z¢‰3#5#'#5373¢!*++p Vpp‰ss‡‰ 7353#5##5-DD‰99‰==‰ÿÿÿþ†ŒR‚‰3#53#5#-l?‰‰vÿÿÿÈŒSÿÿÿþnŒFl‰7##5#53l((gvvvÿÿÿÃ|‰\ÿäÃ7#5&&54675357654d""#")>)‹&%;;&%8²g00cg0/ÿÿ{‰[ÿЖ‰ #5#533533–j?00‰vvv€‰732753#5#"&55* ‰3 :‰=4ɉ 7353#53353{7³7v‰‰vvÿÐ݉#5#533533533ݰ7700‰vvvvv ‰ 732##5#5332654&#I#9-D!QvK+ ª‰ 732##5332654&##53-4cQ‰K+ >‰ƒ‰ 732##5332654&#-"9 Q‰K+ ÿþhŒ75327#53&#"'632#"'<;"  #,($$"$ÿþÁŒ7##533632#"&74&#"326O""3 Z==‰9<&!#$ 'r‰ 3#7&54633#5#75#"3%7 :‰6- ÿÿÿþ|»&Heü :vO753 l::O55!: :öO753 ì:x*·7'673 x"%x*·7#67( ·"&xZ· 7'673#'6735 I x"%"%xZ· 7#673#67( I ·"&"&mà 7'#75'37m)'')|€€55pÃ77'#75'75'37'F********>//$#//#ÿü» #7#"&54632#"&54632#"&546322ED    ÿþ¹ '3?K74632#"&74&#"3267#74632#"&74&#"32674632#"&74&#"326 9 `ef9 9 €K··€ t4¹7'74 ±=@ ta¹7'7'74 D ±=@=@ÿþ‰¹!73#3#327#"'#535#536632&#"3681. %8 $ $u-A""  +ÿÿÕ¸%17&#"327#"&54632#74632#"&74&#"326m   Yfe9 ´··Pÿþ°¹#73#"&555675463232'654&#"¤ "  + &*,>-%Q$ ì·'+3#'##533&5534632#"&74&#"32653ON7 2>—$c·—"di@-]Ó·7#5#53#'#5373#55VBH]LLDDZEEZ5Dÿÿ µºÄÿþ±·",77#7#3#547'#"&547&54632654&#"32654'eeZ ™   ···nA e        ÿþ¹¹"&:DO7#"'532654&##532654&#"'6327#7#"&547&54632654&#"32654'8   Rfe   ƒ    -··}        ÿþ··1;F7#7532654&#'73#632#"#"&547&54632654&#"32654'›fe 7(   ···i 5        ÿþ±· (37#77#53#"&547&54632654&#"32654'‹efg(4G(x   ···n^ a        Bÿþ¾¹#7554&#"5632#"&54632&#"326§ &  l ""7$#,)$#:ÿÃÆ·5##53¯^Œ=ßßôô6ÿÃÊ· 57'53#36NL‰hGJt=rf_l6ÿþÊÔ#'#5373€"%@bRµ42Ì‚'7#"&54632632#"'&#"32732654&#"€    N(  ÿÃoÃ7&#"#"'5326554632o    À¥¥F/º…75632327#"&#"5632327#"&#"F  #   #  $   # c  C   €¡7#537#5373#3#',(7? (7@7!$!"Fºœ 7'5753ºtt\\tt< </.+Fºœ 77'553F\\ttt+./< <pÿü·7#'3#"&54632ˆ4ƒ© ]u£·7#'3#'vF·BBBB4Ì·73##7##7#537#5373373337#¨#&  %  # #&  %  b$$p)6666)6666))Jÿñ¶Â!&7#5"'535&&546753&''5654‰>'  64 #V.#.ÿþâ¹ '374632#"&74&#"3267#74632#"&74&#"3269 ffe8 €K··€7ÿþÙº#+7&54632673#'#"&547654&#"'32\&, #8 <1e. %  ]3tuŒ·7#'Œ·BBbÿؼ· 73#&&546¤BB%%·(IG' =$%=DÿØž· #654'3\BB%%('GI(=%$=:JÆÃ77''7'7'<9&&9;Ã2. 22 .2F!º” 7#53533##w1111Q000lÿß”7#67’ "#a:ŸO753a>:pÿü 7#"&54632 B¾·7#7¾cc···Fÿþºº 74632#"&74&#"326F]\////////* ++ S–·3#547'73–" 0r&G¹¹3#576654&#"'6323¹r, #V/ %Fÿþº¹"7#"'532654&##532654&#"'632-"!  `&   $<Á¸ 7##5#5733#547#ÁUS04))){z, LIÿþ··7532654&#"'73#632#"I  VC  "  V4 Fÿþº¹!7&#"3632#"&54632"32654&¬ 7 "(( ·J )'65X E»·37#53]F^vF¢¥Gÿþ¹º)7#"&547&54632654&#"32654&'“&#4  a      Fÿþº¹!35327##"&54632#"72654&#"T 7 "(( !J )'65Xpÿü 7#"&54632#"&54632{  v hÿß’ 7#"&54632#67’ {  f"'Fºœ7'57ºtt\\< </.F7º}75353Ftttk4Fºœ77'5F\\tt+./< <Gÿü·¹#754>54&#"'632#"&54632n   $4    & ÿéá·.97#"&5463232654&#"327#"&54632#"'&#"327œ  ' (/($-2;.(1  24 "(2+&)  2-1>2*"V'-Ó¸3'##73''&'ºIHH699¸¸M9 9DÄ· 732##732654&##32654&#D:#%* D&$)·"$iMB9ÿþǹ7#"&54632&#"32À)-1) $ !0.+2  '#$%=η3532#'32654&#=='-/*!"!·/+-0£$$$#Fº· 3#53#3#3ºtt\WW\·8AFº· 3#53#3#^t\WW·@4ÿþ̹73#"&54632&#"3275#‹A#).2.  %#"*aZ 1-+2  &$$%6:Æ· 3#5##53353Æ^^UU·MME»· 3#575'53»v//v//““@ÿþ©· 75326553#"@" DÏ· 3#'#53773ÏEFNVH·]JSP¿·3533PW·¢*×·3'##5373#547#u7"44#8 #m·••·o  4Ì·3#'##533&553Ìlk—$c·—!d,ÿþÔº 74632#"&74&#"326,,('--'(,\.01--10.$%%$%%%IÆ· 7#532#'32654&##a= "!"#GG·,ÿÌÔº7&'#"&54632'4&#"326  #" (,,('-"0..01-FF$%%$%%%BÍ· 7#532#''32654&##ZD  ÿøåÁ "*57#"&546324&#"326'##5#5733#547##547'73å<))<;**; 6%%66%%6 32   \);;)*;;*%66%%55 JI-%D  ÿøåÁ ">7#"&546324&#"326#547'73532654&#"'73#632#"å<))<;**; 6%%66%%6x     4( \);;)*;;*%66%%55D  i  3 ÿøåÁ -9D7#"&546324&#"326'&#"3632#"&54632"32654&#547'73å<))<;**; 6%%66%%6*! ?   \);;)*;;*%66%%55[ -  5   :D  ÿøåÁ ")7#"&546324&#"326#547'737#53å<))<;**; 6%%66%%6x   +9F)\);;)*;;*%66%%55D  ma bÿøåÁ +5@H7#"&546324&#"326'#"&547&54632654&#"32654'#55'73å<))<;**; 6%%66%%69   5  \);;)*;;*%66%%55(         3D ÿøåÁ .:E7#"&546324&#"32653265##"&54632#"72654&#"#547'73å<))<;**; 6%%66%%6_  (   \);;)*;;*%66%%55   5   3D  ÿøåÁ #/G7#"&546324&#"326'4632#"&74&#"326#576654&#"'6323å<))<;**; 6%%66%%6[8 >?   .\);;)*;;*%66%%55%   ÿøîÀ 73#&54#654'3'#547'738 $$ &· #$ %e  À,97,'<= ,79,(=<D  ÿøîÀ +73#&54#654'3'#576654&#"'63238 $$ &· #$ %LD  3À,97,'<= ,79,(=<   ÿøîÀ 673#&54#654'3'#"'532654&##532654&#"'6328 $$ &· #$ %g    À,97,'<= ,79,(=D  ÿøîÀ &173#&54#654'3'##5#5733#547##547'738 $$ &· #$ %1 32   À,97,'<= ,79,(=< JI-%D  ÿøîÀ :73#&54#654'3'#547'73532654&#"'73#632#"8 $$ &· #$ %‹     4( À,97,'<= ,79,(=<D  i  3 ÿøîÀ )5@73#&54#654'3'&#"3632#"&54632"32654&#547'738 $$ &· #$ %=! ?   À,97,'<= ,79,(=?   .À,97,'<= ,79,(=<=   ÿÿ8ÿüÁ·&PåM1ÿÿ2ÿü×¹&QëMGÿÿ1ÿü×¹&RëMGÿÿ'ÿü׸&SëMGÿÿ4ÿü×·&TëMGÿÿ1ÿü×¹&UëMGÿÿ2ÿü÷&VíM3ÿÿ2ÿü׺&WëMGÿÿ1ÿü×¹&XëMGÿüïº ".74632#"&74&#"326#547'73#"&54632^Sg '¥\////////++,0r© ÿÿ ÿüå·&P¸&MUPÿüï¹".3#576654&#"'6323#547'73#"&54632Ãi(    My '¥/ %r© ÿüí¹"-97#"'532654&##532654&#"'632#547'73#"&54632œ*   v '¢`&   &fr© ÿüï¸ )7##5#5733#547##547'73#"&54632ÍJI,*$ (¦)))|z,  G>r© ÿüï· %13#547'73532654&#"'73#632#"7#"&54632K '  Q=  ~r° V4 ÿüï¹"-97&#"3632#"&54632"32654&#547'73#"&54632º   %%  Z (¦·%% ((65Xar© ÿüì· 3#547'737#537#"&54632R  0+ATlAWr &·¢¥ ÿüïº)4@7#"&547&54632654&#"32654&'#547'73#"&54632¡&#1   H (¦a      Ur© ÿüï¹!,835327##"&54632#"72654&#"#547'73#"&54632j 3 &%  : (¦J ((65XVr© ÿüôº /;74632#"&74&#"326#576654&#"'6323#"&54632pN  Qf&   K‡\////////++,0/ % ÿøîÀ +673#&54#654'3''##"&547354&#"'632'#32658 $$ &· #$ %W )   À,97,'<= ,79,(=<   8( ÿøîÀ %173#&54#654'3'##533632#"72654&#"8 $$ &· #$ %€   À,97,'<= ,79,(=< t  ÿøîÀ )73#&54#654'3'&#"327#"&546328 $$ &· #$ %L    À,97,'<= ,79,(=:ÿüw 7#"&54632#"&546322E  I2l 7#"&546322Z  ÿýWœm7#53œŸŸWÿýNœy7#53œŸŸN+BÿÈXÿ#3X877ÿÈcÿ#3c,,87ÿýYœn 7#53#53#53œ'';((<((YÿýNœy 7#53#53#53œ'';((<((N+++++BÿÈXÿ 7#53#53#53X¥ZÈYÈZ7ÿÈcÿ 7#53#53#53c,,,,,,¥ZÈYÈZÿýYœn 7#53#53#53#53œ,--YÿýNœy 7#53#53#53#53œ,--N+++++++BÿÈXÿ 7#53#53#53#53XÁ>‘>‘>‘>7ÿÈcÿ 7#53#53#53#53c,,,,,,,,Á>‘>‘>‘>BÿÈœn7##53œDZY‘¦BÿÈœy7##53œDZN†±7ÿÈœn7##53œ9,eY‘¦7ÿÈœy7##53œ9,eN†±ÿýÿÈXn#5#53XE[8‘ÿýÿÈXy#5#53XE[8†+ÿýÿÈcn#5#53c,:f8‘ÿýÿÈcy#5#53c,:f8†+BYœÿ7#533œZDY¦‘BNœÿ7#533œZDN±†7Yœÿ7#533œe,9Y¦‘7Nœÿ7#533œe,9N±†ÿýYXÿ7#5353X[EY‘ÿýNXÿ7#5353X[EN+†ÿýYcÿ7#5353cf:,Y‘ÿýNcÿ7#5353cf:,N+†BÿÈœÿ7##33œDDY‘7‘BÿÈœÿ7##33œDDN†7†7ÿÈœÿ 7##5#533œD ,9Y‘‘¦‘7ÿÈœÿ 7##53533œ9, DY‘¦‘‘7ÿÈœÿ7##33œ9,,9Y‘7‘7ÿÈœÿ 7##5#533œD ,9N††±†7ÿÈœÿ 7##53533œ9, DN†±††7ÿÈœÿ7##33œ9,,9N†7†ÿýÿÈXÿ#5#5353XEE8‘‘ÿýÿÈXÿ#5#5353XEE8†+†ÿýÿÈcÿ 7##5#5353c E:,Y‘‘‘ÿýÿÈcÿ #5#53533c,:E 8‘‘‘ÿýÿÈcÿ#5#5353c,::,8‘‘ÿýÿÈcÿ 7##5#5353c E:,N††+†ÿýÿÈcÿ #5#53533c,:E 8†+††ÿýÿÈcÿ#5#5353c,::,8†+†ÿýÿÈœn7##5#53œDEŸY‘‘ÿýÿÈœy 7##5#533œDE[DY‘†+ ÿýÿÈœy 7##5#5353œDEEZN†‘ ÿýÿÈœy7##5#53œDEŸN††+ÿýÿÈœn7##5#53œ9,:ŸY‘‘ÿýÿÈœy 7##5#533œ9,:f9Y‘†+ ÿýÿÈœy 7##5#5353œ9,::eN†‘ ÿýÿÈœy7##5#53œ9,:ŸN††+ÿýYœÿ7#53533œŸEDY‘‘ÿýNœÿ 7##53533œD[EDY +†‘ÿýNœÿ 7#5#53533œZEEDN ‘†ÿýNœÿ7#53533œŸEDN+††ÿýYœÿ7#53533œŸ:,9Y‘‘ÿýNœÿ 7##53533œ9f:,9Y +†‘ÿýNœÿ 7#5#53533œe::,9N ‘†ÿýNœÿ7#53533œŸ:,9N+††ÿýÿÈœÿ 7##5#53533œDEEDY‘‘‘‘ÿýÿÈœÿ 7##5#53533œDEEDY‘†+†‘ÿýÿÈœÿ 7##5#53533œDEEDN†‘‘†ÿýÿÈœÿ 7##5#53533œDEEDN††+††ÿýÿÈœÿ 7##5#53533œDE:,9Y‘‘‘‘ÿýÿÈœÿ 7##5#53533œ9,:EDY‘‘‘‘ÿýÿÈœÿ 7##5#53533œ9,::,9Y‘‘‘‘ÿýÿÈœÿ 7###5#53533œ9 E:,9Y ††+†‘ÿýÿÈœÿ 7##5#5#53533œD ::,9N†† ‘†ÿýÿÈœÿ 7##5#535333œ9,:E 9Y‘†+†† ÿýÿÈœÿ 7##5#5353533œ9,:: DN†‘ ††ÿýÿÈœÿ 7##5#53533œDE:,9N††+††ÿýÿÈœÿ 7##5#53533œ9,:EDN††+††ÿýÿÈœÿ 7##5#53533œ9,::,9Y‘†+†‘ÿýÿÈœÿ 7##5#53533œ9,::,9N†‘‘†ÿýÿÈœÿ 7##5#53533œ9,::,9N††+††ÿýCœ„7#53#53œŸŸŸŸnA,ÿÈnÿ#3#3n,87þÉ7BÿÈœ„ 7##53#3œDZDDC{¼,ÿÈœn 7##5##53œ.pY‘‘‘¦,ÿÈœ„ 7##53##53œZp.Dn¦¼A{‘ÿýÿÈX„ #5#535#53XEEE[8{ÿýÿÈnn #5##5#53n/q8‘‘‘ÿýÿÈn„ #5#53#5#53n[q,/E8¦¼{BCœÿ 7#533#3œZDDDC¼{,Yœÿ 7#533533œp.Y¦‘‘‘,Cœÿ 7#533#533œD.pZn‘{A¼¦ÿýCXÿ 7#535#5353X[EEEC{ÿýYnÿ 7#5353353nq/Y‘‘‘ÿýCnÿ 7#5353#5353BE/,q[n{¼¦BÿÈœÿ 7##33#3œDDDDC{7{,ÿÈœÿ 7##33#3œ..ZY‘7‘¦7,ÿÈœÿ 7#533#3##53œD.ZZ.Dn‘{¼7¼{‘ÿýÿÈXÿ #5#535#5353XEEEE8{{ÿýÿÈnÿ #3#5#5353n,//87þÉ‘‘ÿýÿÈnÿ 7#5353#3#5#53BE/,,/En{þÉ7þÉ{ÿýÿÈœ„ 7#53##5#53œŸŸDEŸnA{{ÿýÿÈœn 7##5##5#53œ./ŸY‘‘‘‘ÿýÿÈœ„ 7#53##53#5#53œŸŸ.DZ/EnA{‘‘{ÿýCœÿ 7#53533#53œŸEDŸŸn{{AÿýYœÿ 7#53533533œŸ/.Y‘‘‘‘ÿýCœÿ 7#533#5353#53œD.ZE/ZŸŸn‘{{¼ÿýÿÈœÿ7##5#535#53533#3œDEEEEDDDC{{{{ÿýÿÈœÿ7##5##5#53533533œ.//.Y‘‘‘‘‘‘‘‘ÿýÿÈœÿ 7#533#5353##53#5#53œD.ZE/Z.DZ/En‘{{¼{‘‘{Bn7"#463(5&Y)%5ÿýXn7#44X(&5)5ÿýYX³7#5265X6%(³%5)BY³7"&533&5(Y5%)š°7'7šŠŠ¡ŠŠš°7'7šŠ&Šš° 7''7'77š==>>==>&===>==>ÿýYBn7#53BEEYÿýÿÈœÿï53Ÿ8''ÿýÿÈœ53Ÿ8NNÿýÿÈœ=53Ÿ8uuÿýÿÈœc53Ÿ8››ÿýÿÈœŠ53Ÿ8ÂÂÿýÿÈœ±53Ÿ8ééÿýÿÈœØ3Ÿ8þðÿýÿÈœÿ3Ÿ87þÉÿýÿȆÿ3‰87þÉÿýÿÈsÿ3v87þÉÿýÿÈ`ÿ3c87þÉÿýÿÈMÿ3P87þÉÿýÿÈ:ÿ3=87þÉÿýÿÈ&ÿ3)87þÉÿýÿÈÿ387þÉ'ÿ¼š  #'+/37;?CGKOSW[_cgkosw{ƒ‡‹“—›3#73#73##3#73#73#'3#73#73##3#73#73##3#73#73#'3#73#73#'3#73#73##3#73#73##3#73#73#'3#73#73##3#73#73##3#73#73#'3#73#73#33€34M33€34M33€34M33€34M33€34M33€34M33  ÿ½š #'+/37;?CGKO#5##535#535#535#535#535#535#53355#5#5#5#5#5#5#5#5#5#5#šM443LLLLL þ²4ÿýØœÿ'53ŸØ''†ÿÈœÿ3†87þÉ)„—7#5„n—nn)„—7#5#3„nd[[—nn \)„— 7#5#3'#5„nd[[.—nn \E--)„— 7#535#5#5#5#„nn [[[[[[[)n)„— 7#5#37#37#37#3„n—nn \\\\\\\)„— #'+/37;?C7#535##5##5##5#5##5##5##5#5##5##5##5#5##5##5##5#„nn    [   [   [   )n)„— 7#535#5'#5'#'#'#'„nn 0>NU?1 )n1U?\U?1)„— 7#53#7#7#75375335„nnW1U?[T>0 )n 1?8U1)„— !%*.258<AFKPSVY\_7#53#'#'#'#'#5#'5''''''''75#''75''''3''375#''#'3'„nn    PT[   A  ?T9 - < A  >TU@*)n           6ƒœ7#7ƒl66f6ƒœ7#7'ƒl6&&'6f\HH#*‰–75‰f`6l#*‰–75'‰fRI`6l6&L$ƒŠ7'ƒ66Šff$ƒŠ7'#ƒ66\M'Šff I*w–7'7wgg*66*w–7'75wgg H*66\L&%ˆ›7'7ˆ;;;`;;;%ˆ›7'7'ˆ;;;--..`;;;;...%ˆ› 7'7'7'7ˆ;;;--..`;;;;....)„— 72#"&5462654&#"M  —   e)„— #/7"&54632'"32654&"&54632'"32654&M       )   eI  -   )„— 74632#"&   `  )„— 74632#"&2654&#   7`  )„— 7"&54632'5"M  )   \)„—7#„n—n)„—7#nn—n)„—75„n—nn)„—7'„n—nn•¨ 7"&54632'"32654&M****$$%%****†$$$$ÿ÷êÀ 77'373€D@PP?&/N/LL/Nÿ÷êÀ 77'373'7'7#'€D@PP?,00-7&/N/LL/Ns!7""7!77ð·#'+/37;?CGKOS7"546332##'&&##3#5735#"73537#3#3#'#3'#37#3#33'#37#3#33'#37#3#3 ,> ?+ ' $ž$3->F2!O9%Z€  yy   ,ð·37=AEIMQUY]aeim7'&&##3#5735#"#"546332#'763323254&##"373535'3#3#'3733#'3#3#'33#'3#3#'33#'3#3#'3¾ $ž$' ,> ?+ ªT '< <'U2 Œ EC'L-V3b€  {{     s s #á”48>HR]7/###"''57#"&5433632?3'732654&#"7'337'#"'32'#"'32'##"'32É  Q  ~ q ³  #     #  6   q?!HI )    #ã”48>HR[75363232###"'#"'767254''&&#"33654'75'265#3277#"3277#"3277  Q  $  # Ž J (    #q   6  ;"H      J¶º!7#535&&546323##74&#"326w!!, + . ƒJÿþ¶·73'#"&5475'4&#"326|+ - Q·* */* Y0н7#"'#575#"&5466€ :  D  9½7  $$  7ÿøâ»#.54632632>54&#"&#"€A?<>A""A =! ?0й7#"'#575#"&547&54632§) D)€$ $$ $  ,ÕÀ17#"'#575#"&54665'532654&&'327€ 9 N  :+ 8 8 À0 2¥, 4 4 ,ÿøâ».54632632€A?A""A,Õ¾=7#"'#575#"&547&546325'532654'654&#"327¬) N (*+ƒ$$ƒ ,"  ", ÿþêº:W763654&547654&547#"&547654&547#67&##67"#6732654`     80::0@ W    2+22+­ -   ,  ,  -  ,    - €      aÿþŸ· 753#"&54“  <{“ "Eÿþ··753'654&'#"&54x 0 <{ ) u "%ÿþ¹·7#"&5475##"&5475335#¹ 3K 2bVKK$ "@X "{)Wÿü°Ã 7632536654&#"c 0)  V,Ǽ" Jÿÿ¶·7575575375377#5#775e $  $ $$#  * #$ ) +&(A*2ÿìI7#67H 6ÿþJ7#"5432J  1ÿìJU7#"5432#67J  J C6ÿþJU7#"5432#"5432J J M #ÿþ\o754>54&#"'632#"54325       6ÿþJn 7#'3#"5432D  Of .ÿèRn 73#&54E  n&%().ÿèRn #654'3;  %')()ÿèWn3"&554�"J    )ÿèWn7475&55443"#52656      +ÿèUn'57U**WJ+ÿèUn75'5+** JWnn73##7##7#537#5373373337#X    ;C  !!!! ÿÿvo#+7&54632673#'#"&547654&#"'32+    !$ =       8  /du77''7'7'G u  cY 7#53533##:  1  1c<753F1 c^7'57cFF88 % c^77'577FF % !cK75353FFF@  %[n7#'2) )nnn ÿ÷`u#7#5"'535&547532&''5654E      %  !  3  ÿÿxo '374632#"&74&#"3267#74632#"&74&#"326 ":= = "M -nnM ÿðzk,77#"&5463232654&#"327#"&54632#"'&#"327Q  #  $ %4 t/¹7' ¹@=IR¸ 7##5#5733#547R./"aIG  ÿÿ ÿþtÄ&D¦üÿÿÿøKÄ&•¦Øÿÿÿþ†Ä&R¦ÿÿÿþÄ&X¦ÿÿÿþÝ&X&e§/ÿÿÿþî&X&em*ÿÿÿþî&X&e¦*ÿÿÿþî&X&eCò* 7‰7'#77--‰##‰#ÿÿ#›k®§ÿÿ1›bÄmÿÿ1›bÄCÿÿ#ÿÙkÿì§ÿ> ¦° #/;7''7'77'"&54632"&54632#"&54632"&54632¦FGFFGFF&]&MMNMNNM+  ,dQ¹754&#"#53632A    d4 +S 6/ÿÃÑÃ/7&#"#"'5326554632&#"#"'5326554632Ž    I    À¥¥¥¥ÿÃpÃ%*/754632&#"#"'532655&&54665455    &(s#!(&6.6=ÿüà #7#"&54632#"&54632#"&546324gq  l  =ÿüà #7#"&54632#"&54632#"&54632\g3q   l pÿüƒ 7#"&54632#"&54632q  l =ÿüà #/7#"&54632#"&54632#"&54632#"&54632\gggq   l  ÿÿFI¹ka9ó· 3#575'5373#'367XBB‚==% “ “ª··tÿÿÿÊ78qÿÿÿÊN:kÿÿÿÈM:lÿÉR8 ##5#5733#547R./"IG  ÿÿÿþï¹&i&\ÿÿâ¹&i)j]ë· 7#3#3#53#5#53#3#53¢'!!(87_L€(8© ZZL? Zÿÿ2Îá&$2ª6ÿþ²·17#7#3#547'#"'532654&##532654&#"'632‘efX ”   ···nA e    ÿþ¸¹=7#576654&#"'63237#7#"'532654&##532654&#"'632LG  1Qfe   I   ^··}    M²· 3#575'53²e((e&& “ “,Õ· 3#575'53'5#Õ©##©##:5 “ “““ ÷· 3#575'53'5##5#÷î!!î!!;13 “ “““““ÿÿ8É·98 ë· 775'53#'6773#'3©BB^%=> “ “ Dt··ô·3'373#575'75#70%}-w ·j› “ “ª““ü·3'373#575'75#735.+ ¢ )c/·›› “ “ª“““““ñ· 3#575'53#'#7'373XBB™,.95*)5 “ “ OO`WFFWÿÿ:Æ·;:ë· 775'53#''373#'#¨CC`5*)59., “ “ `WFFW`OO ó·7#'#7'3775'5#ó! -)#u · “ JJ`WAAª“JN““I·Â 7#"&54632'53#57!8,n+´Dw é '7#"&54632#"&54632'53#575'533¿[B"9,É+!8D´Dwewð #97#"&54632#"&54632#"&54632575'5335'5335'53A‚¼!.*.*."´»ewewew8lj 3'36773q9#  #9‰V V‰:Ɖ 7'373#'#s6)*69,,FC44CF88ï !7#"&54632'53#57'336773K)Og9#  #9´Dw‰V V‰ñ !7#"&54632'53#57'334773Ö)Ot9#  #9´Dw‰V V‰ú #37#"&54632#"&54632'3367733575'5335'53«:³- --&#'´»‰V V‰ewewû #C7#"&54632#"&54632#"&54632'33677335'5335'53#575'ò12b(0 ! ! ‘ $´»‰Q Qweweweyè !7#"&54632'53#577'373#'#O)Pi, ,/"!´Dw4C33CF77Pÿþ°¹7##5&54753&#"32® // 2?@B¾¹7&#"3#3#5655#5354632¸//]|¯ $ (F!ºd7#5#5ºadC0wÿÉÃ73#3#wÃb=a2η7733#3##5#535#53'3€39&//////%8Z]`!!`#ÃÝÔ7#53ݺºÃ* Öx73##"''&5477632R„„++H "'' ÿÃwÃ7#5#"5477632#"'F "''š××++* Öx7#53'&5432#"547®„„++; "'' ÿÃwÃ537632#"''&5432: #''ØØ++ áx)7##"''&54776323'&5432#"547¹r++r++;"''""'' ÿÃwÃ)5#"5477632#"''7632#"''&5432:"''##''¯++¯++:ÿûƈ7'#"'&54632^hi # lih$ &:ÿûƈ7'7'&547632#"'«ih$ #chi $ :ÿûƈ7'77632#"'&547¢hi $ ih$ &:ÿûƈ77#"&57632Uih% $ hi 1 * Öx7'#53'&5432#"5477#53µ„} ++ }„B '' * Öx)/7#"''&54776323'&5432#"5477#77'#c++ O ++ OV\'''' -ÿÿÓ·7#'337677ÓHHIW·¸¸99M9  9Fº· 735#535#53#F]XX]ttA8·<Ä· 73#'#67<ˆ88nT·©©_C¼·7#7¼ef···B2¿‚$7#"'#"&54632632&#"33'&#"32¾ 4  4 1Ϧ7#"3#33#"&5463ÏD?ŠŠ =DB-/0,¦/0)""*1Ϧ75327#53&##532#1D= ŠŠ>EC+0/-0/*"").Ò·3533.’·¤-Ò·3'733.kg¨¤ ÿÃaÃ73#3#N.Ãÿÿ7ÿÃIÃ73#7ÃÿA#¿—773#'A5 <-)#tt\\A#¿—773#'U)-< 5—\\tt4 Ì«7#54&#"#54632Ì+!"* D$$$$DE*0/,4 Ì«73326553#"&54*"!+«E$##$EE+//+42Ì‚%7"32776632#'2654&#"#"&546Z     ‚     4̸%)-7"32776632#'2654&#"#"&5465353Z     ttt¸     {)Fºµ 7#"&546325353#"&54632f ttt£  A4&  Fº— 7535353Fttttt„33FºÉ 7'575353ºtt\\ttttD< </./)FºÉ 77'55353F\\tttttX./< <)"Þœ 7'57'57•ss\\Iss\\< </.< </."ßœ 77'5'7'5k\\ttI\\ss+./< <./< <Fºª77'#7'5777¨ (:@&@% ª,!07 !)[Fºª7#7577'577¨(C %8> "ª6 #( /!/F1Ϧ7#"33#"&5463ÏD$$$$DD+//+¦+!")1Ϧ7532654&##532#1D$$$$DD+//*)"!+1϶7#"33#"&546353ÏD$$$$DD,.--Zž¶' &¶1϶7532654&##532#531D$$$$DD--.+Ež+& '+ã·353533ZZ¤¤-Ò·7#'735Ò¤“{z··¦¤ŠÿøåÁ 7#"&54632&&''3667##5å<))<;**;()H(HZ(\);;)*;;")II*Y''FÿøåÁ #7#"&546324&#"326'#"&54632å<))<;**;1!!11!!1B\);;)*;;*"00"!00!  'åŒ 74&#"#4632Ò1!!1;**;'"00"*;;*ø·#'+/49753'#53'33733733#3##'##'73&37#37#3'#7##7##+,"&,Q##_#2#A gE<<<<<<EEEEW!7J%(, ÿÿÃjÔBëÿâI&&'7I $  ÿãK' 74632#"&732654&#"     M(µ‘7'7'7µ#"Œdedd"Þ±7&''6766327&#"Þ?  /- ?O   6  (,19E ,€ÿíÄÌ'7Ä552 opi<ÿí€Ì7'7'7€522\ohi€ÿíäÌ '7'7ä662552 opigopiÿí€Ì 7'7'7'7'7€522633\ogipogi€\ÄÌ7##53Ä-D¹]p<ÿí€\#5353€D-]€\ÕÌ 7##535#35Õ#2U5™=p#P=+ÿí€\ #53535##€U"3"3<_O<€ÿíÐÌ#53ÐPP22ß +<:-0ÿí€Ì#5654'53€P22P-:<+ (Ø· 7#53##5#53ذ°MM°¢Jmm3̨7#53#53Ì™™™™u3—3€ÿì¾Ì'57¾ 55 '¨–Bÿì€Ì7'75'7€5 '' 5–€ÿíÕÌ#53'&&5467#ÕUU!!  /ß +;:+98Â+ÿí€Ì#5654'535#€U!!U/   +:;+ ÑÂ89¥šýÙ 7#&'73#&'73ý'š#%#šZÙ 7#673#673Z / Ö#%#%ÿßZ 7#'67##'67Z "#'#;ÿýĹ"7#"&547&5476732654&Ä &%%"/ ' 2,²("#  %U/ÿíÑš-3=&'654'#"&54747#5334767#63267'6&''32ƒ@ *0( 7; /") ! )''   (X  ÿðåÇ,2<&'654'#"&54747#532747763267'"6&5532†O+6?6  ^a =*.#*   -" 744 3#p!& ! 1ÿõΊ7#"&54732754'7u  l'2',)"#/ =5:Bÿøæ»7#"&547326754&'7k  ‘  >F555$(+()= )Z_)?ÿíÁ™7&'7'6654&#"'632°#10". 0-!(Š © !&ÿåáÉ7&'7'6654&#"'632±&FK7 L14EF8!#=· Ý %!&2+ÿîÕ.7&'7#"&574#"'67''277632327ž6$d #*1$ ? %  ‘© ,4/!ÿñçÇ/7&'7#"&&554&#"'67''277632327¥B8l '3A ([4  ¹Î   1>D4  +ÿïÕ™087&'632'6654&#"#"&5475##53275367#7325Õ  !<  5 "h! b'  *"! <  ÿóçÉ087&'632'654&#"#"&5475##5327'367'7325ç"! '+''? #B$ )~,‚""#9*#(' E  ÿî÷É"(4'327654&#'67'676732#"7&'7Y  ) ˆ    7 ]5 6P-I0T @/ 0ÿîÿÖ(.47&'74'327654&#'67'676732#"7&'7&'7ÿ  œ  ) {    ±  Ñ  7 ]5 6P-I0²  s @/ 0ÿñáË07&#"327#"&546327&'#527'#527'777á= "'5&**%'M-4:3# *F=Hp   ÿñøÛ <7&'7&'7&#"327#"&546327&'#527'#527'777ø     = "'5&**%'M-4:3# *F=H·    Q   <ÿè¿Ï&'&546767¿N "7I GH  0>A<ÿèÿÖ7&'7&'&5467677&'7ÿ  5N "7I GC  ±  ÎH  0>A‹  ÿëëÆ 7&547"'65'#'5327'767>Ä"71'Ã2D<>L4E8< 1621ÿëÿÖ ,7&'7&'7'&547"'65'#'5327'767ÿ    ¥Ä"71'´  "   2D<>L4E8< 1621&ÿüÚ­7"'5327#"&547327ÌW$!:+!2>* 25–« &ÿüøÜ $7&'7&'7"'5327#"&547327ø    T$!:(!2>* 25¹  #  (« ÿ÷ãÌ'7&#"327#"&546327&'##'327'77ãD.#.+ **(%$1@ M‘2  % ,ÿ÷ñÛ 47&'7&'7&#"327#"&546327&'##'327'77ñ    D.#.+ **(%  $1@ M¹    62 % ,?ÿöèÇ7#"&54733267è /("#' U5*z“%,?ÿöèÌ7&'7#"&54733267'&'7â   /("#'  ª  i5*z“%,@  ÿëðÌ ,7'67'#"&546325574'3732654&#"ðR ", ;wvSš  –& &-( T  ÿëôÛ ,87&'7&'7'67'#"&546325574'3732654&#"ô    $R ", ;wvSš  »    5& &-( T  ÿöñÆ)7#"'72675327#"&57577375537ñ2Q *)523Q2z( "@ %@43 ÿöÿÛ 67&'7&'7#"'732675327#"&57577375537ÿ    2Q *)523Q2»  "  B( "@ %@43 ÿõîÃ'7#"37#"&5467''677''77677î. 7* 1#+O^rO("8b >9ÿõýÜ 37&'7&'7#"37#"&5467''677''77677ý    . 7* 1#+O^rO("8»  $  ^ >9ÿòéÉ,7'674'276767&#"'632#"&54732((S;1. $% a87Y$=o  ÿòñÏ(87&'7'674'276767&'7&#"'632#"&54732ñ  T((G  ;1. $% ®  2a87Y$  Mo  ÿõãÍ'7632#"''32654&#"'67#527767ãY %!$-,"" !)$ 9 J&•  #5*ÿõþÜ57&'7632#"''32654&#"'67#527767&'727þ  Y %!$-,"" !)$ 9 6*  »  :  #5* -ÿùÓ…'654&#"'632XjIH!6Jÿÿæ®'6654&#"'632OQ4"+CM$2)@%$$&.3ÿÿþÚ 7&'7&'7'6654&#"'632þ    ‡Q4"+CM$2)@¾  "  Á%$$&.3ÿóéµ7"3&5467''é6 )*7ssµ4K2 ÿóîµ7"3&5467''&'7&'7é6 )*7ss×    µ4K2 4  #  *ÿöàÈ7#"&547&576732à::+9Kh5 /)6!&)#*ÿöîÓ#7&'7#"&547&5767327&'7î  ::+9Kh5 /3  °  ³)6!&)#–  ÿïðÉ,77'67#527767&'7&'#"&54632&'7&#"326Ž# _ * !) 3  ‘M. )F' ’ *N  &ÿðéÀ 7&547"563#"&54732D±H53J !2& &¾8B&,'(M40Ž  ÿóøÆ,2;E7'#"&54632654&###"&547&'767672'6&'327&#"32ø  0"( s  }      ##KG/ '*p :'7 ÿòøÄ/97'#"&54632654&#"#7'677'3737632&#"32ø 1)*  /$)   #;cF%((* /&2  ÿõìµ&&'654&##"&54632'3267654#"ŽP,"$@0-;Á % F(?.+>4%TD :'"ÿóöÇ(37&'#"&54632''27'367&#"32'&547ö 2U!)1 !m N,+ L   ¹0[.1M<"ÿóþÛ .9D7&'7&'7&'#"&546324'#"'27'367&#"326'&547þ     ,3  l½  #  « 9,+ V  °0[.1M<"ÿóþÚ :EP74632#"&732654&#"&'#"&546324'#"'27'367&#"326'&547É   ,3  lÀ   ´ 9,+ V  °0[.1M<ÿïõ¾'7'&'#"&5467''7732654'7õ/%!'?$ I,3(#9 C!0023ÿïþÛ 37&'7&'7'&'#"&5467''7732654'7þ    /%!'?$ ¶  %  s,3(#9 C!0023ÿïüÖ ?74632#"&732654&#"'&'#"&5467''7732654'7Ç   /%!'?$ ¼   x,3(#9 C!0023 ÿóôÁ &-7&'7732654.5467#"7&'7''67¸9<J@     ˆ¢ ¯¿  "   G! F (: ÿóûÚ ,297&'7&'7&'7732654.5467#"7&'7''67û    #9<J@     ˆ¢ ·  &   ¿  "   G! F (: ÿóô× 8>E74632#"&732654&#"&'7732654.5467#"7&'7''67½  9<J@     ˆ¢ ½   ¿  "   G! F (:ò¢7&'&#"'>32ò(C 9 8  d P E Clò¾ 7&'7&'7&'&#"'>32Û    <(C 9 8  d  "  Š P E ClòÆ (74632#"&732654&#"&'&#"'>32—  M(C 9 8  d¬   ™ P E Cl ÿðïÄ.87#'47&'#"&54632'#'275##53277#'&#"32? Æ  +)*(,# +C&0  Â-K*0UH7½ 8$$C   ÿðþÛ0:C7&'7&'#"&54632'#'275##5327'7'7#'&#"32'#'47þ    +)*(,# 7  '0  e ¸  Å 8$   #C  º-K*0UG8 ÿðüÙ1=GP77#&'#"&54632'#'275##5327&54632#"'32654&#"&#"32'#'47Ò'  +)*(,# 2  +  e ©#C  8$  ª º-K*0UG8ÿòãÅ%07&'#"&546325#53275#535377#&#"326ã) 6 H1T5NNNN0G  +# *  ÿéø¶"+7&''667&'#"&54637''773'326ø %*$ %[„ C # ! W&2(! 9A  ÿôíÈ-9?7&&54677#5357327654'7#"&54'32654&#"7&'79 /-.+ /1  ½'     %+ ,  +#!ÿòçÊ%/'654&'#"&547&'76767'76'&'32 X 3&%*k   ;"CE#1 +"K†%*J -ÿòèÇ+7"5747#?676732654'7#"&54R&=>?6=%5B )((O *'!#    %ÿîÛœ(7732654&#"'''67'767'7632#"ƒ   $     ( jj &&ÿìðÆ(77232654&#"'''7'767'7632#"„$  -0    $!3"ˆˆ  23&*!0ÿèÐ'0'67&'67654'&547367'7#76654&ˆ  '(#  %2 %,"$- !!c: ÿêäÇ)27'67&'7654'&54733367'7#7654&” (  5#(+#3 6%*3-<? ( (|8 -1ÿòÏ—"7&'#"&54632&537&#"326Ï  <;&;    >+#7 ÿôãÂ$7&'#"&54632&577&#"326ã $( M31H  q G  +ÿõÕÃ!7&'7'32654&#"'67632#"«2.8=''1 %$!&04«Å E6  2ÿïÎÂ'67654&#"'632'&547k 5U ? %&@$¿+&$&/'$ÿôܾ)373654&#"&'7''767632#"&54632&#"327 #3 q1(gP)1-#  `@ "&  ÿñùË.7#"&574&#"#47'677"'757632327ù   !/  ,/!  .X 6:02 (%.( ,Z'&ÿöÚ¼$'32654&#"'67''77632#">$$#1-578"m J&/- !(2= #(ÿðØš#'6654&#"#7'677'7737632…&' !" &#29 $"  DÿóìÆ$'6654&#"#67'677'7733632ˆ 1&#/ )* .%% # 1b0 '-* (&"Tÿòå¼&.97654&###"&5467677''732#"&54632'326&#"327Æ "" ,&;Y ,.(![8 [   H/!19(! ( H2 ,)ÿíï¿DN&#"#&#"'67&546326654&#"'675577632##63236632'4&#"6ï "$*! 69Xo 9 *)  !_   -#'   "(  ÿóåÉ27#53327#"&547&&#"'67#57767366327åB9 -33#M "D >"C?W,& $ !"+    ÿóæÆ!7#"&574&#"'67632327æ!  (# #Z<*) C€K  2* WÿåöÓ #7&'7&'7&'7'6654&#"'632ö  9&FKW  ƒ L14EF8!#=µ     Ï %!&2³õÚ 7&'7&'7õ    ³  !  Á¦öÛ 74632#"&732654&#"Á  Á   DÚ 7&'7&'7D  ³  !  ¦9Û 74632#"&732654&#"  Á   D ¼¨ 7#"'677&'7¼] &,1@ QWD б7&'7#"'677&'77&'7Ð  ] &,1>  ’  e QW/  0ÿîד7'67'577'6655Ñ"! FA“P& z#(#$ &ÿðë¼ 7'67''77'6655å, ­ºd!. '¡5%*0+- &$.'ÿñÁž 7#5'67Á U3p_*7ÿòÖÈ 7#5'67Ö((. m=¸Ž}6A7ÿíÉœ7'667##53533É,: 4$c<>q?6 (32I%ÿîÛÉ7'6675##53533Û5I >0„NP”PE 57@X%%,ÿýÔ‚ #535#53#3Ô¨H?”>IXXìª 7#535#53#3ìØ`O¶O`ww+ÿïÕš7#"''3255'67#57533Õ. #28#U^.dY B(+ ÿòéÇ7##"''325''67'7'37é9 )HL,pz9‡u]1,+8))ÿôÚÉ7#"''32677''667#5653Ú  F&&"#AC›Y, !B5B9/ÿôï× )7&'7&'7#"''32677''667#5653ï      F&&"#AC·     Y, !B5B9/ÿïçÈ7''7''7'777çW  ^]RPRPYISS-)(-ÿïþÚ 7&'7&'7''7''7'777þ     S  ^]RPMLU¶    ySS-)(-ÿíÖË7'667''6777Ò8608Z*T’EGA7# (G ÿíþ×"7&'7'667''67777&'7þ  "9608Z*T  ¶  7DH@8# (G   ÿñëË7#'6677'677ëA-4 .%A* ‚.9.&+C ÿñôÕ 7&'7&'7#'6677'677ô    A-4 .%A* ±    9.9.&+C (ÿöØ© #5#535#53ؘ˜•­ s$ÿöÿÜ 7&'7&'7#5#535#53ÿ    ——”­º  %  ÆsÿòíÇ7#'6655##5#53533'33í-d4(O..O-zO +'EE2255ÿòÛ $%&'7&'7#'6655##5#53533'33    -d4(O..O-¹  %  BO +'EE2255ÿðåÁ 7&'7'667&'7€) +ƒRD BKf.& /,'!" XT:7ÿñãÀ 7'667&'7ãFH e¸¦!UT` 8! (!ÿñþÜ 7&'7&'7&'77&'667þ    y‡ JG H= ¼    ` 9 +PS ERÿîâÌ7&'67&'767'#'6737ÞB: 8! + R1;N˜CN ' --76 ÿîÿÜ )7&'7&'7&'67&'767'#'6737ÿ     A; 9  , S2<Nº    %CN ' $-76 ÿñéÂ7#&'6655#535'673é[#1 ( __!)j4 *[[*- %#( +ÿñÿÜ&7&'7&'3#&'6655#535'677ÿ    )\\"2 )__!)g4 ¸  $  +*- &"( ,ÿïÔ”7&'77'>7&'7 M.0 ',[ Y  #?/" &>H  ÿîçº7&'77&'6767&'7’g  -ªµš(=D*.(#ÿðÜÁ 7&'7&'7&'7ÕQR^>;ULX?rm¨ X l  ÿïìÅ'&'76767&'7ì 9y8;:ÿîîÂ7#"'77367î/3O7_) ¹~5K+ÿöÕ± #5##535#Õzªz »–8ÿîÈ 7'>7##5È'. '#`@3 %-8O%ÿñÚ¹ 7'665##5Ú18 E-¹LE( >OKbÿðìÇ7##5#535#53533#3#5#ì5‹5*€--5M>&66L&&LLLê´ 7'67'#537'53533Þ"š Ô\_–0 $”hi$ÿðÜ·7&'667#537'#5Ü:G 40 “6g·bS +$&ÿóå¼ 7&'7'667t"( +’QSKKŒJD =E&ÿîÿÛ 7&'7&'7'6677##53533ÿ    6H ?/‚KP½    1PE 47@X%%3ÿïÍ›7#"''32675#'667#57653Í  1 45wH$3(3)#%*ÿïÖž7#'6655#'673Ö4#+ %0#qa"- ##4hE˜t 74632#"&h  \  #NÜk7#53ܹ¹NF&¶›7&'7¶(5066.&F&Ñ· 7&'7&'7&'7Ñ    (50˜  %  b6.& ÿõàÁ7#"'53267#'67à   ¢ ‹a L #ÿõÝÇ7''67&'767#'673Ý6,>8%(% -(Š  † !." % +'&Ú´7#54##"#546332Ú s Œ  ž "Þ®7#"&554633#"33Þ© ¨˜ š   m ÿõâÂ7#"'53265#'67#'67â F@ 7HŒg0 SY'%I  ÿûå¾7&''67#53673#7&'7å” )LV  Zd*y   ,9 /4 %(ÿùØÁ7#"''3267#'7#53Ø  A fu Z.  B1-ÿ÷áÃ7#"'53267#'67#'67367á  9F =O  A Šg, K]M+ÿ÷ÕÁ 7&'677&'67ur 0//< 1.1Š*1&- ./24ÿûã·7#3#"'532677#'67#53ãpr j=Ç¡ 9(ÿõå¹ 7#'6653å§¢EG!JN7ÿöÉÁ#5#"&55332753Éc  V Lk hDÿó¼Ä 7&'67¼%@6%"-4,4;6/2+ÿ÷äº7##5#53äYXÈ£¬¬ä¾3#535#"&553335332553##3äÉZ; .*  7X4 OD __ DO 4ÿõâÃ7'67#5'67©:5 93H"*%/eP²/*1"_O%Rÿøâ¿7##'6732554##532â u%"~ ‹˜ t D$#I "  )ÿþ×»!7##"&554633254##"332'&'7× ‰ Š  o o ! # ˜ Š  8  ÿöà¼7#"''3265##5#5à   [7¼c9±±ÿôãÆ7#3'67#'7#53673ãuj: .w8C l†(D 5/#ä¼7''6767'7äLN 7"3c  RT CR )ÿöâ¾ 7#5&'767â*1,&&*',¬()ee4 "-#*ÿûå¸7#'"327#"&54635#53åT5A(+''_Ê¢9> H!!0ÿõæÆ7#"3267#"&5475#53533æT @'*K``T‰' A!4!((ÿùäÀ7##5#33#"&55#53533533ä.A r ))A.p::X  f;;;;ÿ÷ä¿7#3'67#'67#'67#53#36ä@ 00B ;= "ÈV9 ;ª 87+4O?%$ÿüåÁ7&''7å:Yp HaqÿüâÃ7&''67'6767677'7âTC 11: ( $,4Gf   5)-" G? #ÿþâº7&''67&'767#53â',=9%#/ *,‰’&-  #1<ÿóä¼7'67#'67#533'#36ä97Œ 0œ $%GE ZI3$ 0??ÿôá¾ 7'67#'673á œ ‘eG* $> %,)ÿ÷äÀ7#33#"&55'67#53673äN šll!ìž 7'6753&'3#5#· % .* !žXDc,AAdl2Ñ™733#2‹Ÿ™i"åš7#&''675#5327Û&0 $ $ ,(X#-š :*&8 hë¢ *7#53277#553#"&546"32654&ʸ...šC'MdQ"Ûš 73#67535#53#5##535##O< $,/<;¤///š@*P'~~'?--$ìž 7'6753&'3#67535#· % .* !šS@ (+@?c,AAd?+Q#Þš 73#67535##3#53#$R?"&.1?>µ>CWR>šB(N%}"àš7#5#3#67535##53'3373Û\\O<!)-<;½ešA)OVPPPP"ê¢#/7#53#27535##553#"&546"32654&È7nM: *,98Çw2"  ¢A)O  1Ì› 7#5##535#Ìsss›}}dQ3Ì™ 73353#5##735#3qqqq™&&{)&Ü™ 73353#5##735#73353#5##735#&1111J0000™&&},9&&},&îž 7'6753&'3353#5##735#¸ " *+ !š1111W%:!!;h&&},"Ùž7'66753&†E )/%$ 8h2 6"!4 íž 7'6753&''6753&° ) 13 'j # +! ^(; </)=07Ê«753#"&546"32654&w!&#$&!)›"##"#Þ›7#&''67#5ÙNO >A PO›D2/Cë›$7#&''675#5##&''6675#5ä) $ # +" '  " $›* *(; $ #( * #Þª7#5#&''667#5«SMN ?B ',Oª&2&$&-Í› 73#5'75#- ŠŒŒ›}=1К 7#3#3#5Ή……‹Ÿš&}(×›7#5#53'3373Р§¯0  ) ›kOOOO) Ù© 7#5#553#"&54"32654& D}°N5! ?©#& && jÿñºÈ733##j<<ÈYk[ÿñ¬È 73353#5##[))Ä\`×dWiÿñ¹È 733#3##i<<<<È=)JZÿñ¬È 73353#5##735#Z****Ä59×K>Q-Gÿñ§È73#5#53“LLÈ×q7ÿñ¹È 73#'53#5#5¥3;È×{XÇ\Fÿñ§È 73#5#535#53“MMMMÈ×E+2ÿñ¹È73#'3#5#535#53¥3@@@@È×ÓÇ:*&ë—7#5353ëÕ`9^^ÿñêÈ733##5'7537£33Ž;BÈac> dbÿñ×È73753353#5##5'7B;|0“Ny]b×bU9 ÿñËÈ 73#5'7537·œ@KÈ×D^[(íš 7#53'3373íÚ>4  ;WW__ÿñë’7##5#5ëbb’ÿñÎÈ73#5#53''7#º55f:Ž=È×^nÿñ×È 73#'3#5#53''7#Ã-**M/p*È×ÓÆS eÿñÌÈ 73#5#5'7¸BL¥È×ba ÿïë‘ 7##5##5#5ë;9:‘ŒŒ<íO7#5íÙOÿñÇÈ73#5'7³ È×TvÿñŠÈ73#vÈ×%æ™ 733#'327#†L`a""(3™i|i !àš7#3#5327#ÜDH[d!'0šW}i ìž 7'6753&'327#¸ ' 1) !¤"!(2b,AAei æ¥ 7#73'327#­9t;;® &0¥…[Jhi çž$7'6753&&5'3#67535#73#5#¤  =)%'))A8$6&'5 #  u?+Qlçš7#3#5#3#67535#ãCGZpS>"&.1>?šW}A)Oïž*.7'6753&&5'3#27535#53#5##535#­  ˜9%$%n6&'6 "  v@*P'~~'?--î¥7#73'3#67535#µ9t;:´T? #,/?@¥…[JiC'Míš  ,73#67535#7#553#"&546"32654&T?"%-1?@Ðs1  šC'M$   #Ûš 753#5##535#'#5##535#Ç///...s'~~'?--f||bOêž 7'6753&&'#5##535#® " (3 >000U#9#$8 T||bO#ê¥ 7#73'#5##535#³7o87U...¥…[Ji||bOBÿöÀ¿ &7#5##535#53#"&546"32654&ÀVVV   !¿UU=*V  Þš73#5#53#5##535#‰UA$777šl&~~&>,,çš7#3#553#5##535#âEJ]$777šW}'&~~&>,,êœ &7'6753&&5'53#5##535#73#5#l  ,{C/9 9 &  M'~~'?--flíœ (7'6753&&5'53#5##535#7#3#5l  ,º")=9 9 &  M'~~'?--fW}îš 7#&''675#553#5##535#ã'2 % & ,'"777š7'"6 '&~~&>,,æš 7#3#53#'53#5##535#á?DWR?:777h%} &~~&>,,CÿöÀà *753#5##535#53#"&546"32654&¬UUU  "­[[-*  'ÿöÛà .:753#5##535#'53#5##535#53#"&546"32654&Ç(((<(((;  "­ZZ,,ZZ,+  àž 7'6753&73#5#[ ' /4 (_K_(==dlæš 7'6753&733#J !*/ #3L`V#77hiæš 7'6753&7#3#5J !*/ #ŽFK_V#77iW}Ûš 7'6753&753#5##535#J !*- "t///V#78A'~~'?-- õš 7'6753&7#&''675#5D ! '. $Ÿ'1 & % .'U"7 7h 9(%7 *Ѥ7#73P§W6f¤‡dQêª)5753#"&546"32654&753#"&546"32654&C  X  ›# $$ #$ $$ $B¾¢753#"&546"32654&v"!"Ž æ¢'753#"&546"32654&'6753&?  ] ' /* •  !!!*AAç¥ 7#73'53#"&546"32654&®9s:;Œ  ¥…[Jd  !!!,ÿôÒ¿*7#5#53'337353#"&546"32654&Ê–ž¦*,  3  "¿B''''(  ò£ *9E7#53#5#53#553#"&546"32654&753#"&546"32654&_5ª6!lámH  _  £!    í¢7#553#"&546"32654&íÙc¢6ÿñíÈ733#3##5'7537537¬,,--–($&ÈG(BA _^ZYÿóÍÉ73753753353#5##5'7735#5{#p–SQOz7=ÖOD8 #ÿñÊÈ73#5'7537537¶š'%(È×A _^[YÿñÌÈ 73#5#535#53''7#5#¸""""w)”$È×C qplÿñÔÈ73#'3#5#535#53''7#5#À(a!wÈ×ÓÆ5gfdÿñÌÈ73#5#5#5'7¸+$*¤È׃cb]\ gC™v 7"&54632€  C  IÿñÊÈ73#'"&54632¶S  È×T  ÿíþÌ #654'3'#&5473#5#áÐ |g0>@1-DC´1@>0+CD-6{hÿíþÌ #654'3'#&54733#áÐ)n‚0>@1-DC´1@>0+CD-3eÿíþÌ #654'3'#&547#3#5áСbh|0>@1-DC´1@>0+CD-1TzÿíþÌ #654'3'#&5473#3#535#áÐ'r\dx\^0>@1-DC´1@>0+CD-2C(NÿíþÌ #654'3'#&547#5##535#áЗBBB0>@1-DC´1@>0+CD-1~~fSÿíþÌ ##654'3'#&54753#5##535#áЈKKK0>@1-DC´1@>0+CD-W${{$>++ÿíþÌ "#654'3'#&547'66753&áÐd/ !  00>@1-DC´1@>0+CD-c1 2!2 ÿíþÌ ".#654'3'#&54753#"&546"32654&áÐX!" 0>@1-DC´1@>0+CD-/$$$#ÿíþÌ "#654'3'#&547#&''67#5áТ8> 0 . 3 70>@1-DC´1@>0+CD-2A1-AÿíþÌ '#654'3'#&547#5#&&''67#5áЄIi:= " - 1 60>@1-DC´1@>0+CD-'6 &(6ÿíþÌ #654'3'#&5473#5'75#áÐ&}nqi0>@1-DC´1@>0+CD-6o5ÿíþÌ #654'3'#&547#3#3#5áПd^^n‚0>@1-DC´1@>0+CD-2&~ÿíþÌ ##654'3'#&547#5#53'3373áРˆ  &0>@1-DC´1@>0+CD-2kOOOOÿíþÌ (4#654'3'#&547#5#553#"&54"32654&áЀCp•@1;0>@1-DC´1@>0+CD-& $ $$ ÿíþÌ ##654'3'#&54733##''67#53áЇh =?T0>@1-DC´1@>0+CD-SRD[ÿíþÌ ##654'3'#&54733##'327#áЇu,-2>0>@1-DC´1@>0+CD-SR›]  ÿíþÌ %#654'3'#&54733##'3#27#áЇtZF3!390>@1-DC´1@>0+CD-SR¢PÿíþÌ )#654'3'#&54733##'3#27535#áЇrR@&+26@>0>@1-DC´1@>0+CD-SR¥D,RÿíþÌ ##654'3'#&54733##'3#75#áЇtUUB.0>@1-DC´1@>0+CD-SR¡tNNÿíþÌ #'#654'3'#&54733##'353#535#áЇ`/W//0>@1-DC´1@>0+CD-SR|%vvc++ÿíþÌ *#654'3'#&54733##''66753&áЇC #  0>@1-DC´1@>0+CD-SRb* 0"!!. ÿíþÌ *6#654'3'#&54733##'53#"&546"32654&áЇQ  0>@1-DC´1@>0+CD-SR¬ %"'&#&ÿíþÌ ,#654'3'#&54733##'#&''675#5áЇ$/ $ % /'0>@1-DC´1@>0+CD-SR›6$"7ÿíþÌ /#654'3'#&54733##'#5#&''67#5áЇEV'(  $ +*0>@1-DC´1@>0+CD-SR­'.-ÿíþÌ (#654'3'#&54733##'67#53'67'áЇ0BXH &?0>@1-DC´1@>0+CD-SRu a,( ÿíþÌ )#654'3'#&54733##'3#3#27#áЇsYE@@-*70>@1-DC´1@>0+CD-SR&ÿíþÌ +#654'3'#&54733##'#537737'7áЇdl0>@1-DC´1@>0+CD-SR™"?=<ÿíþÌ #0<#654'3'#&54733##'#5#553#"&54"32654&áЇ&;Tl-$. 0>@1-DC´1@>0+CD-SR­#! #$ ÿíþÌ "*#654'3'#&547#&''67#5##5#5áÐ¥:I :7 > 8™MM0>@1-DC´1@>0+CD-  ^RRÿÝÿÛ 74632#"&732654&#"73#5#J54KK45J D//CC/0C2€l\5JJ55JK4/DD/0CCkXÿÝÿÛ 74632#"&732654&#"733#J54KK45J D//CC/0C7n‚\5JJ55JK4/DD/0CCYÿÝÿÛ 74632#"&732654&#"7#3#5J54KK45J D//CC/0C±em\5JJ55JK4/DD/0CC HnÿÝÿÛ #74632#"&732654&#"73#3#535#J54KK45J D//CC/0C8{gn‚gg\5JJ55JK4/DD/0CC ?!GÿÝÿÛ #74632#"&732654&#"7#5##535#J54KK45J D//CC/0C±TTT\5JJ55JK4/DD/0CC rrZGÿÝÿÛ #'74632#"&732654&#"53#5##535#J54KK45J D//CC/0CSSS\5JJ55JK4/DD/0CCooA..ÿÝÿÛ &74632#"&732654&#"'66753&J54KK45J D//CC/0Cv/ !  0\5JJ55JK4/DD/0CC0$ )) ÿÝÿÛ &274632#"&732654&#"753#"&546"32654&J54KK45J D//CC/0Cl"!!\5JJ55JK4/DD/0CC !"! ÿÝÿÛ (74632#"&732654&#"7#&''675#5J54KK45J D//CC/0C¶8@ 1 - 87\5JJ55JK4/DD/0CC 4#!2ÿÝÿÛ *74632#"&732654&#"7#5#&''67#5J54KK45J D//CC/0C”Bd8? 1 - 3 8\5JJ55JK4/DD/0CC+ +ÿÝÿÛ !74632#"&732654&#"73#5'75#J54KK45J D//CC/0C9|nqh\5JJ55JK4/DD/0CC o5ÿÝÿÛ #74632#"&732654&#"7#3#3#5J54KK45J D//CC/0C²f``j~\5JJ55JK4/DD/0CC nÿÝÿÛ '74632#"&732654&#"7#5#53'3373J54KK45J D//CC/0C¶ƒ‹“#  "  \5JJ55JK4/DD/0CC Z;;;;ÿÝÿÛ -974632#"&732654&#"7#5#553#"&54"32654&J54KK45J D//CC/0C“@gŽ?6\5JJ55JK4/DD/0CC# " ÿÝÿÛ '74632#"&732654&#"733##''67#53J54KK45J D//CC/0C”\ 55K\5JJ55JK4/DD/0CCCB>VÿÝÿÛ '74632#"&732654&#"733##'327#J54KK45J D//CC/0C”c$#*4\5JJ55JK4/DD/0CC@EˆNÿÝÿÛ )74632#"&732654&#"733##'3#27#J54KK45J D//CC/0C”eP<).0\5JJ55JK4/DD/0CC@E‹E  ÿÝÿÛ -74632#"&732654&#"733##'3#67535#J54KK45J D//CC/0C”eP="&/1=<\5JJ55JK4/DD/0CC@EŒ< FÿÝÿÛ #'74632#"&732654&#"733##'3#75#J54KK45J D//CC/0C”eMM9%\5JJ55JK4/DD/0CC>GŠc==ÿÝÿÛ '+74632#"&732654&#"733##'353#535#J54KK45J D//CC/0C”Q"J""\5JJ55JK4/DD/0CC>GniiV%%ÿÝÿÛ -74632#"&732654&#"733##''6753&J54KK45J D//CC/0C”: " + \5JJ55JK4/DD/0CC@EP"6$ÿÝÿÛ &2:74632#"&732654&#"753#"&546"32654&733##J54KK45J D//CC/0CM 5\5JJ55JK4/DD/0CC @EÿÝÿÛ 074632#"&732654&#"733##'#&''675#5J54KK45J D//CC/0C”'  % ,!\5JJ55JK4/DD/0CC@EŽ3 3ÿÝÿÛ #474632#"&732654&#"733##'#5#&''675#5J54KK45J D//CC/0C”4D!&  ! '!\5JJ55JK4/DD/0CC@E‘# $ÿÝÿÛ ,74632#"&732654&#"733##'65#53'67'J54KK45J D//CC/0C”*7M@ $ 7\5JJ55JK4/DD/0CC@EkV'&ÿÝÿÛ -74632#"&732654&#"733##'3#3#27#J54KK45J D//CC/0C”cN:33%1+\5JJ55JK4/DD/0CC@EŽÿÝÿÛ #/74632#"&732654&#"733##'#537737'7J54KK45J D//CC/0C” Y d\5JJ55JK4/DD/0CC@EŒ:97ÿÝÿÛ #'4@74632#"&732654&#"733##'#5#553#"&54"32654&J54KK45J D//CC/0C” 6I^%' \5JJ55JK4/DD/0CC@E“  ÿòëÈ)7#4632#&&#"3773#'#53#"'33267#I5;/J.'1#' $! JE<+M)!02U6=G .%#!2&T#4>F-%ÿáôÑ,77'67'577'6655#53#"'75367''6554'3t  %3a 4Àeeu L Á    "Š! b=    ÿâôÕ $/377#"''32657#'67#553#5##535#&'66765#53#53t "' #"#ª<X<=6,Êee½0)#2 +SaL>>*>*   @IF> ÿëíÖ7''7''7'777#5##535#w-10+**).w<X<‘++µaL>>ÿãôÚ!%6H7&'7'67'#'67377&'7'5&'667'#57''276767&'7Š  0  ) rTT "%#PU z> !  É #& 4 &   .  »O U ÿäøÔ &.C7'67'327#"&&55'7577&'7'667#'65#535'673t  #; E M+,''r/&22&8/¬ -    ($%£   ÿãøÔ &.87'67'327#"&&55'7577&'7'667&'#53t  #; E M+,''q#¬ -    ($%¡ =r&.ÿáýÕ %07&'#537&'7&'7#"'75367''6554'3y#› L  =r&  ¬! b=  .ÿçøÕ 7&'#53&'7'667y#] M+,'' =r&p  (#  % ÿã÷Û #-LRZ74632#"&73254#"&'7''65#53&'#53''67'327#"&55'75377&'7'667d . Òee ‘    # / 5  Îe 'E=* 4IF ÿâøÕ %39?HNR7'6655&'7#53&'7&'7&'7#"'75367'&'7&'77'6=3'65#53å h).2bA.-+"<9™   “ } › ŒFFÕ>4 CG2 7 9 :#^U  ` (C>, "D' #?8ÿáýÕ!1<7&''67&'767#53&'#53#"'75367''6554'3x ) &ee{# L ‡      † =r&! b=  ÿáýÖ #-=H7&'66765#53&'77&'667&'7&'#53#"'75367''6554'3f6,ž  +" .  )# L Ö?*   AJG1(!  $! ’ =r&! b=  ÿãëÏ  *7'665##5&'77&'667&'7&'#53p+#A¸  +" .  )#Ï5,  )'5-(!  $! ’ =r& ÿÃõ¸ +3#'##73'##533632#"'32654&#"õ13 ‚   99¸kO3;:Æ$#$#L ô¸ !3#'##73'&'#54&#"#5336632ô234  99¸k8OMYG‰ ÿÃþ¸ -3#'##73'#"'##"&'#73326773327þ23 ,        99¸kO36FÆX Tb ü¸ .3#'##73'#54&#"#54&#"#5336323632ü13 3  99¸kO 3MY YY Y‰ öà 3#'#5373#'##73'&'n( 10»14 ? 5ÃZ!A;N99¸k3 8 ÿþôÃ&<3#53#'##"&5467754&#"'6325326'&#"327#"&54632ô&  S   Ãà   '  a$""&ÿþýÃ)3I3#53#'#533773#'#"&547754&#"'6325326'&#"327#"&54632ý¤! (² )  7   ÃÃ>6ÃW *9P(   '   `###%ÿÃë· (7#3##53##533632#"'32654&#"ëHCC_¿  ¢@M·¥:Æ#$$#Lë· 7#3##53#54&#"#533632ëGBB_t  ¢@M··YG‰ ÿÃô· *7#3##53#"'##"&'#73326773327ôGBB_j       ¢@M· FÆX Tb  ÿÃöŒ%1>`7#"'332#"&547&547&54632332654&#"#"32654&'#"'##"&'#73326773327ö !   +T #  L       {   ,j  /ÆX  Tb  ÿÃõŒ%1>`7#"'332#"&547&547&54632332654&#"#"32654&#54&#"#54&#"#5336323632õ  !  +U #  V  {   ,j  Y YY Y‰ÿÃïà 2>K3#'#53737#"'332#"&547&547&54632332654&#"#"32654&u' 2/¬   !  ,U #  ? 5ÃZ!A;-   ,j  ñ· 3#5##53353#57#533‚EEo\B>VBDVV·MM·hfûà #3#'#53373#5##53353#57#533[!'(ƒ&&H@(&<(*>7ÃW;:OVV·MM·hfü· '3#5##53353#77##'##53373#57#533¸&&Y@)&<()VV·MM·8-ee-8··hfÿþüº%/7&#"3275#53#"&54632#5##53353#57#533Z &h&&G@)&<'(¯ "'%%6Y .0.0ºVV·MM·hfü· 3#5##53353##5#53#57#533´&&Z  V¢@(%;')VV·MM¢¢·hfÿÃøº"C7327#"'567547632'6654&#"#"'##"&'#73326773327±   %$ *         #9.!%=0 +JFÆX Tb ÿýúº!57327#"'56754632'6654&#"#547##'##53373³  ( &# 1!!  # ,Y%= 1 *bc,’’*c·ŠŠ ÿýðÃ8B3#'##"&546323&55354&#"326327#"'567547632'6654&#"w  J   &# $#"%7ƒ  #:. %= 1 *ÿýëà %/3#'#5373327#"'567547632'6654&#"y' 20^    &# ? 5ÃZ!A;/  #:-!%= 1 *ñÄ77&#"3##5#5754632#54&#"#54&#"#5336323632j  •  À xx  Ä[ ZZV‰ñŒ!53#54&#"#54&#"#5336323632#54&#"#533632ñ  €  Y YY Y‰ZYG‰ÿÃúŒ!B3#54&#"#54&#"#5336323632#"'##"&'#73326773327ú  v       Y YY Y‰CFÆX Tb  ÷Œ!C3#54&#"#54&#"#5336323632#54&#"#54&#"#5336323632÷  |  Y YY Y‰ZY YY Y‰ ÿþôŒ!73#54&#"#54&#"#5336323632'&#"327#"&54632ô     [ ZZV‰)$""&ðà /3#'#53373#54&#"#54&#"#5336323632t( 10¯  ? 5ÃZ!A;NY YY Y‰ úç5W7#57654#"'6323#54&#"#54&#"#5336323632#54&#"#54&#"#5336323632ú3   "  |  ˜   ¤Y YY Y‰ZY YY Y‰ ÿþúç5K7#57654#"'6323#54&#"#54&#"#5336323632'&#"327#"&54632ú3   "     ˜   ¤[ ZZV‰)$""&"úç57#57654#"'6323#54&#"#54&#"#5336323632ú3   "     ˜   ¤YLYG‰úç!C7#57654#"'6323#'#53373#54&#"#54&#"#5336323632ú3   "†( 10¯  ˜   ¤? 5ÃZ!A;NY YY Y‰ úç!Ce7532654&##532654#"'632#"#54&#"#54&#"#5336323632#54&#"#54&#"#5336323632Æ       '  |  œ      —Y YY Y‰ZY YY Y‰ ÿþúç!CY7532654&##532654#"'632#"#54&#"#54&#"#5336323632'&#"327#"&54632Æ       $     œ      —[ ZZV‰)$""&"úç!C7532654&##532654#"'632#"#54&#"#54&#"#5336323632Æ            œ      —YLYG‰úç!/Q7532654&##532654#"'632#"#'#53373#54&#"#54&#"#5336323632Æ       \( 10¯  œ      —? 5ÃZ!A;NY YY Y‰ÿýéÄ%G7#7#54&#"#54&#"#5336323632532654.54632&#"#"În mQ  .    ÄÆÆzG GG Gn     ÿþþÔ8Y7#57654#"'6323'#7532654.54632&#"#"'#54&#"#54&#"#533632632ö,  97 7 #  A  Ž    +ÆÆ¿      Y YY Y‰ÿþå· ,67#532#'32654&##'##"&5467754&#"'63253262+! ¢  GG·\H£   '  ÿþüà !9B3#'#53373#532#'32654&##'#"&5467754&#"'6325326[!'(D& |    >7ÃW;:G·\H£  4 ÿþý· %>G7#532#'32654&##57#'##53373#'##"&5467754&#"'6325326z" %Ÿ    GG·\H£8-ee# 8··  4 ÿþüº!(3<7&#"3275#53#"&54632#'##73'&'#532#'32654&#Y  '± ! &K" ¯ "'%%6Y .0.0º99¸k,  ,G·\HÿþùÃ8AQ3#'##"&546323'5354&#"326#'##"&5467754&#"'6325326'&#"#533632ù   H   $ 9  #$"%4‡&   '  gJ‰ÿþýÄ"@Ybq7#7#'##"&546323'5354&#"326532654.54632&#"#"'#'##"&5467754&#"'6325326'&#"#53632Õ+ +,   :    %o     !  ÄÆÆÄ#$%"1‡!     '  gO‰ÿþýÔ)6Tmv…7#57654#"'6323'#7#'##"&546323'5354&#"326532654.54632&#"#"'#'##"&5467754&#"'6325326'&#"#53632ý*  (+ +,   :    %o     !  Ž   +ÆÆÄ#$%"1‡!     '  gO‰ÿÃåŒ2?7532654.54632&#"#"'##533632#"'32654&#"‘ $  ' m          :Æ#$$#LÿþåŒ47532654.54632&#"#"'#54&#"#5336632’ $  ' "         YG‰ ÿÃîŒ@7532654.54632&#"#"'#"'##"&'#73326773327› &  '             FÆX Tb ÿþíŒA7532654.54632&#"#"'#54&#"#54&#"#5336323632š &  ' #        Y YY Y‰ÿÃñ· *7#'3677##533632#"'32654&#"ñ33  ²  ··· ¥:Æ#$#$Lñ· 7#'3677#54&#"#5336632ñ33  d  ··· ·YG‰ ÿÃø· -7#'3677#"'##"&'#73326773327ø33! Z       ···   /ÆX Tb  ö· +7#'3677#54&#"#54&#"#536323632ö33  a  ··· ·Y YY Y‰îà 3#'#53737#'3677v' 2/«33  ? 5ÃZ!A;i··  þ· 7#'3677#547##'##53373þ33!!h!"··· ·c,’’,c·ŠŠÿÃò·(57#'#'36773677##533632#"'32654&#"ò    ¶    ··‚(Z·NJJN¥:Æ$##$Lò·'7#'&'#'367737#54&#"#5336632ò  l  ··Z ‚·}JJ}·YG‰ ÿÃû·97#'&'#'36773677#"'##"&'#73326773327û    b       ··Z Z·NJJN FÆX Tb ù·97#'&'#'36773677#54&#"#54&#"#5336323632ù    k  ··Z (Z·NJJ N·Y YY Y‰ñà &3#'#533737#'&'#'36773677s( 10±    ? 5ÃZ!A;i·Z Z·NJJNÿ·*7#'&'#'36773677#547##'##53373ÿ   k!!··Z Z·}JJN·c,’’*c·ŠŠ ôà (3#'#5373#5654&#"#53&546323p' 2/¶76$#? 5ÃZ!A;N9 94)--)4þº/3#5654&#"#53&546323#547##'##53373þ66#$€!"9 94)--)4c,’’*c·ŠŠÿüþŒ!:CO[3#54&#"#54&#"#5336323632#'##"&5467754&#"'63253264632#"&'4632#"&à  Œ  $ ¥ŒY [[ [‰Z   '  ÿÃï· 1>3532#'32654&#32654&##57##"&5463237354&#"326- %­   ·#$£:MB“:#$#$IÿþéŒ+7&#"327#"&54632&#"327#"&54632é   c  !…##$$##$$ÿþìÃ43#'##"&546323'5354&#"326'&#"327#"&54632ì  a  !$##$7ƒ]##$$ÿÃûÄ&LXe7#7#'#5373'&#"327#"&54632&547&546323#"'332#"&546732654&#"#"32654&ƒ* *GS  …         ÄÆÆÄ91ÃW3:_ #&%%//0.±    Yk ÿüúº!-97&#"327#"&546324632#"&732654&#"4632#"&|!'*!N¯ &#%%.0-1u#$$#"%%"S ÿþôÃ,5>3#'##"&546323'5354&#"326532#'32654&#32654&#x  &.!&$##$7ƒ(·"$£:MB ÿÃõº/7#"&54632&#"3275#537#"'53277'33677|$'   4y1   .  //.0  $%%%6(›†D DÿþéÃ-73#54&#"#533632#'##"&5467754&#"'6325326z  o   YGÃ:Z   '  ÿüý· $03#53773#'#5373#'4632#"&'4632#"&™ !.0&+./%È·P8JmXQ·OOJmXEû·3#547##'##53373#5373#'û!!ßC>@5c,’’*c·ŠŠ··ZZPgW#ÿþÝà #3#'#53373#"&55#57733#327‡( 10‰ "" ? 5ÃZ!A;LO  O ìÃ$3#53#54&#"#54&#"#533632632+Á    ÃÃYLYG‰+ÕÃ3#53#54&#"#533632B“  ÃÃYG‰ÿÃþÃ)5BNZ3#53#"'332#"&547&547&54632332654&#"#"32654&'4632#"&732654&#"à  !  +T "  µÃH   ,j  C#$$#"%%"*ÖÃ3#53#'#7'373A•!"/, -ÃÃ77GB33BåÃ043#534632#"&#54&#"#54&#"#533632632#53åE  -çY YY Y‰Z‰ÿþúÃ=3#534632#"&732654&#"#54&#"#54&#"#5336323632ú}   Ã~$##$#$%"_Y YY Y‰ÿÃþŒ!3@LX3#54&#"#54&#"#5336323632##533632#"'32654&#"4632#"&'4632#"&à  Æ  ÉŒY [[ [‰H:Æ"%$#L V%ÿþÛŒ.7&#"#53632532654.54632&#"#"Û  ¯ &  ' ‹J‰†      ÿþìº!-7532654'&'&&54632&#"#"7#'33477 ,É**      ‹‰‰L)LÿþøÃ37##533632#"'32654&#"'#'#'36773677¨       Ã/#$$#GT·‚(Z·NJJNpÿü 74632#"&4632#"&p|  e wÿÜŠÜ#3Š$ÿÜÜ#3$-ÿÜSÜ%#4&54654&54654&54653S  $      !ð\ 7&#"5632ð1??1-CD,"#$%%\ð˜ 7#"'5327ð,DC-1??1‚&&$#ð\7#4&##"'###"#66332653332ð )) *  *  \ð©7##"#4&##"&'33323633265ð*  * )) ©  ð\7'#'73ð–¨' (( 5\ðš7#'737𨖑55 '' ð\7#&#"#53ð ,;;, à 11O\ð¬7#533273ðà ,;;, \P22ÿøð\ 7''7''7ðhhpphhp'225U225\ðÁ 7'77'77ðpphhpphh²6622/6633ð\7''7ðhhp'225\ð 7'77ðpphh‘5522ð\7#5#53ðÍà.\ð¡7#533ðàÍ\E.€ð\ 7#5#535#3ð43232>323                ¢   ¡Ð)%".#"#".#"#52>3232>323              ¡ ÿæíÿ÷ #53#53#53í((Y((Z''ÿåíÿù 432#"7#53#53v wCC—CC )%%"#"&#"#"&#"#"432632326323263         ÿäA&'7A  ÿãL' 74632#"&732654&#"     1?vÌ7##53v.E¹z ÿíOz353# .E{ÿâK&&'7K"  E?t 74632#"&  \  ÿïq¶ 7'67#5365#5q"# - EHM¶`RMÿâr7'67'#577'6655o  $P2 y+  ('# "&ÿãs— 7#5'67s  <‹ze50ÿájš7'655##53533j /+ !kA8P6I ÿñpz #535#53#3pa'R&ddÿãp—7##"''325''6753533p    !14be @#"5#" ÿâs˜7'67'''7'777o  % - e* % vx() ÿöp~ '57#53p`;2E duÿæiˆ #5#535#535#53i??<<>Q 4+ ÿâs7&'77&'667&'7M  -!! !0  R " IB @BC  ! Psi7#53sffPÿòzº7'67''77&'655w /)^8&"£ 9 (/D$ <-ÿô{Ç 7#5'67{ Gºu=9ÿðqÈ7'6675##53533q ' 3$'”R@ 1:AV&&y© 7#535#53#3ys.$`$-vvÿóyÆ7##"''325''6757533y (9<ˆv K)!)=(( ÿ÷wÇ7#"''32657''67#553w (& šY+#Ca-*U--ÿñxÇ7''7''7'777x,--&&(',JTR.*(/ ÿïwÉ'67''6777&7#  ! )e&2>  $7ÿò|È7#'677#'677|;2  GƒP'G*Aÿ÷r¨ #5#535#53rMMKb uÿñ{Á7#'655##5#53533533{:3$${LIBB,,00ÿñx½ 7&'7'667&'7E D/# !+,  œ-=@:>,  ÿí}¶&''67537}!;;E  **4f &!ÿõzÇ7'67'327#"&55'77377t*2€.% 8YT;8ÿð{¾ 7'667&'7{*&&$- ·TZLV^ 7! *ÿï|Ê7'67&'767'#'6737w@!   -  +˜w2,  *!,B ÿïyÁ7#&'655#55'673y, )00!: ,\*0 A( .ÿð{·7&'77&'667&'7P  3"'" 7 r ( $]F?YO % *ÿðx·7#53#&'665#53iUU*-p¢R5. !2&ÿò~Æ 7&'#53~ #_ uÔH ÿózÅ7#&'6654'#53'33z.//.{3* #0 55 w§7#53#53m[[ nn’§ ÿðwº7&'&'67&'767'577w   %I & +(5%ÿò~Ç7#5'67'#535377&'7i7%!!  …cJ (---Xÿñp¿7'67p B? º‰@7…ÿð|¼ 7&'7''65|,A‡wvJBwÿøpÁ7#"&5536732p& -  —H7  ÿñv²7&'6767'577q)& $-N™NI "E~¦7&'&#"'7632~'    ['  Iÿò|Å 7##"''3255#5533&'7''67y-  //- J ‡wr((‹ UVOI$ !Hÿïy¶7&'767'#537t!  5 Z›.7B% 4ÿñsÀ 7&'7&'7&'7n'0.%/,-#:5¬Ym  ÿð{Ä'&'36767&'7{!: !   š ¥4 ÿð{Á7''67&'767{&&  ) )4!8  /9" ÿøu¶7#327#"'&55#737#53#3u6   ^/6Z;  =22ÿñ|Ç7'67'''7'777w  ,5Œ2%( ‹Œ.0 y© 7'537#53yrD9Pzÿòp² #5#535#535#53pIIFFH_>2 ÿïuº7'5'67''57iUU#'> LQ¢L15!EÿñkÁ 7'66553#53k?T)+ ),[†ÿï~¿7#"'773367''6754'3~   H L0¸q.+ 73G; ÿïu 7#"'753367u? #X09¹{59ÿ÷q° #5##535#q5b5 ¹– ÿòs¸ 7'6657#5s #5¸T9, 88J`ÿò{º 7&'7'667<P/* ') ŒGC-ν765#53­ ¡ 2ar4(˜½765#53x dy (-Uf/5‘À7'67#53 Y[s5 Gc 5‰À7'67#53 W\s5 Gc 5uÀ7'67#53 FH_ 5 Gc-hÎÉ765#53® ¡ m1C-jÎÉ765#53® ¡ o0Ae–Å765#53zeyj/Bp–É765#53zeyu,=fzÅ765#53^ Ob j/Au{Å765#53_ Nau(7-]ÎÊ765#53¯ ¡ ];K" a–Å765#53x bv e2EJ’Å7'67#53 Y\tJ<X K‹Å7'67#53 W^vK<W KuÅ7'67#53 FI` K<W-xÎÉ765#53° ¡ |'8-rÎÉ765#53° ¡ w*<w–É765#53{ey {'9{–É765#53|ey$6s~É765#53a Pc x);{Ê765#53b Pd {(7-pÎÉ765#53¯ ¡ p/= k–É765#53v bv k2AQ’Å7'67#53 Y[tQ7S RŠÅ7'67#53 W\tR7R RuÅ7'67#53 FH_ R7R-{ÎÉ765#53° ¡ €$5-sÎÉ765#53­ ¡x*;{–É765#53|ey€$6}–Ê765#53zey }&5v~Æ765#53a Pc z%7{~Æ765#53b Pc{$4-qÎÊ765#53¯ ¡ q/= k–É765#53w bv k2A¡¹7'67#53'67#53 3,A 5(<' OfB&_u ™¹7'67#53'67#53 2-B 4';' OfB&_v €¹7'67#53'67#53 &3 +2& PfB'^t&>ÑÀ765#53765#53?2F^CVF#DW'$FY)&aÒÉ765#53365#53P;PM 8M a9G!9G!I¡À765#53765#536 (< 9 +? N!>Q&!>Q&`¡Å765#53765#53< +@ 1 )= `6E 2AH‡À765#53765#53& 1 0 %9 M!?R&!>Q&k‡É765#53765#53- #7 )2k2A1@&ѽ765#53'65#53¬7Kr;P2bs42ar4%¡½765#53#65#53z%9_.B%-Xi/-Xi/2¢Â7'67#53'67#53^ / %= ~ 0 +C 2"Kg@[ :›Â7'67#53'67#53V / $= | - +C : Fa;V9ƒÁ7'67#53'67#53 %!8 $3G<W1Fa&kÒÉ765#53765#53G2FUCWp/A/A&fÒÉ765#53765#53I7KS=Qk2D1Bg¤Å765#53765#536 (< ; .B l.@.@m£É765#53765#535(< ; -A m1?/<j‹Å765#53765#53& 16 (< o,>,>uˆÉ765#53765#53- #7 + 4u,:*8&^ÒÉ765#53765#53V>RI 8L c7I"7I"Y¡Å765#53765#53< .B4 %9 ^7J"6I"L¡Æ7'67#53'67#53 - +B + &< Y2N,;V L™Æ7'67#53'67#53 - *A , %;Y2N,;V IÆ7'67#53'67#53 "3 #2Q8T)>X&}ÑÉ765#53765#53I2FV BV ‚$4#3&vÑÉ765#53765#53N8KP =P {(9(9v£É765#53765#538 )< : .A z(9%6x£É765#53765#53< .A6 )< }&7 $5v‡É765#53765#53& / 3': {(9'8x‡É765#53765#530 #6 * 3}&7 $5&kÒÉ765#53765#53V>RI 8L p/A/Ae¡É765#53765#53:.B2 %9 i3E 0BS¡Æ7'67#53'67#53 . ,B + &< `-I*6Q S™Æ7'67#53'67#53 . ,B , %;`-I*6Q QÆ7'67#53'67#53 #4 "1Z2M(8S&|ÒÉ765#53765#53J2FV BU $5$5&vÑÉ765#53765#53O8KQ >Q z(9(9u£É765#53765#539 )< : .A z(9 %6z£É765#53765#53; ,@8 )< %6 "2v‡Æ765#53765#53& / 3': {%7$6{‡Æ765#53765#530 #6 ) !3 €"4!3&pÒÉ765#53765#53U>RL 8L t,=+<f¡É765#53765#53;.B4 "6 k2D 0A&¯½7367>=@Q½… &˜½7367226D½…  &€½7367**/;½…  1\ÒÅ733#1¡ÅV1€ÒÏ733#1¡Ï=&l¢Å733#&h|ÅF&užÉ733#&dxÉAj…Á733#SgÁDvƒÉ733#QeÉ@J¯É7367>=@QÉmJ—É7367216CÉm  J€Å7327**/;Åi  1ÒÏ733#1¡Ï=1ƒÒÏ733#1¡Ï9&z¢É733#&h|É<%|¢Ì733#%i}Ì=s‚É733#PdÉC‚É733#PdÉ5_¯Ì7327>=@QÌ[Z˜Ì7327226DÌ`  Z€É7327**/;É\ 1ˆÒÏ733#1¡Ï41ŒÒÏ733#1¡Ï0&ƒ Ì733#&fzÌ6&Š›Ì733#&auÌ/€Ì733#NbÌ8‰€Á733#NbÁ%\¯Ì7327>=@QÌ] \˜Ì7327226DÌ]  \€É7327**/;ÉZ 1ˆÒÏ733#1¡Ï41ˆÒÏ733#1¡Ï4&Š¢Í733#&h|Í1&ŠžÍ733#&dxÍ1‚‚É733#PdÉ5‰‚É733#PdÉ-&¯¸ 73#267#s_JDM¸l & ¸ 73#267#t`EDF¸l %†¸ 73#267#[G8 4<¸m 1Yѽ7#3#5ΉŒ ½>d1rÒÉ7#3#5Ή¡É1W"\¡½7#3#5žhk½;a#lžÅ7#3#5›dg{Å3Y^½7#3#5~LOc½9_sÅ7#3#5~LOcÅ,RN°Á 73#267#s_NFLÁM F‘Á 73#267#t`A 9BÁU HÁ 73#27#[G/%29ÁS  1wÑÉ7#3#5ΉŒ É-R1|ÑÉ7#3#5ΉŒ É(M#r Æ7#3#5fi}Æ,T#|žÊ7#3#5›dg{Ê(NrÆ7#3#5}KOcÆ.TzÆ7#3#5~LOcÆ&L]°Å 73#27#s_D7IIÅC  U•Å 73#27#t`=+@?ÅK  YÅ 73#27#[G-&38ÅG1€ÑÉ7#3#5ΉŒ É$I1ƒÑÉ7#3#5ΉŒ É!F"| É7#3#5gj~É(M#…žÉ7#3#5›dg{ÉDzÅ7#3#5~LOcÅ%K„É7#3#5~LOcÉ!Ec°Å 73#267#s_KGKÅ=\•Å 73#27#t`;,:EÅD  ZÅ 73#27#[G-'0;ÅF1ƒÑÉ7#3#5ΉŒ É"F1ƒÑÉ7#3#5ΉŒ É"F" É7#3#5žhj~É$H#†žÉ7#3#5›dg{ÉC|Å7#3#5~LOcÅ$I„Å7#3#5~LOcÅA$·¸ 73#27#73#267#9&#CC/''/¸p”n $¨¸ 73#27#73#27#:&$DB. $*¸p”n  $“¸ 73#27#73#27#087# %¸p”n  *WÙ½ 73#27#7#3#5*G3!**«<@T½@  f?e*qÙÊ 73#267#7#3#5*G3&(,«<@TÊ3Y2XZ¬½ 73#27#7#3#59&$ˆ-3G½=c<br¬Å 73#27#7#3#59&#ˆ-3GÅ-S-S\…½ 73#27#7#3#52 o"#7½<a;`rˆÅ 73#27#7#3#52 o"&:Å-S+QN·Á 73#27#73#267#:& DB.' '.ÁNsL I©Á 73#27#73#27#:%#EB.(&ÁSxQ N“Á 73#27#73#267#/:4  #ÁNsL *uÙÊ 73#27#7#3#5*G3#'-«<@TÊ0U.T*zÙÊ 73#27#7#3#5*G3!&.«<@TÊ*P)Oq«Å 73#27#7#3#59&"ˆ-2FÅ.T,Sy«Å 73#27#7#3#59&#ˆ-2FÅ&L%Kr…Å 73#267#7#3#5/n"$7Å.S,RxˆÅ 73#27#7#3#50 n"':Å(M&L[·Å 73#27#73#27#:&#DB.$*+ÅFjD  W©Å 73#27#73#27#:%! EB.#+ÅJnGX“Å 73#27#73#27#/95!!#ÅImF*~ÙÊ 73#27#7#3#5*G3#)+«<@TÊ&L%J*ÙÊ 73#27#7#3#5*G3#(,«<@TÊ$I"Hz«Ê 73#27#7#3#59&$ˆ-2FÊ*P(N«É 73#27#7#3#59&! ˆ-2FÉ#H!Ex‹Å 73#27#7#3#50m!$7Å'M%J~ˆÉ 73#27#7#3#5/ m!&9É%K#H`·Å 73#27#73#267#:& DB.' *+Å@e> ]©Å 73#27#73#27#:%"EB.&(ÅChA]Å 73#27#73#27#/ 94 !ÅChA*ÙÉ 73#27#7#3#5*G3#**«<@TÉ#H"F*ÙÉ 73#27#7#3#5*G3#**«<@TÉ#H"F«É 73#27#7#3#59& !ˆ-2FÉ&H$Gƒ«É 73#27#7#3#59&$ˆ-2FÉ#F!D{‹Å 73#27#7#3#51n #7Å&J$H‚‰Å 73#27#7#3#5. m!';ÅCA°½ 73#67535#r_:@FL`_½S;  b- ½ 73#67535#jW7<BHWV½S;  b-½ 73#67535#ZG(,47GF½S;  b-1OÑ¿ 73#3#535#2œ‰Œ ‰ˆ¿@C1jÑÉ 73#3#535#2œ‰Œ ‰ˆÉ6<%O¦¿ 73#3#535#&{hmhg¿?D"f¡Å 73#3#535##zgkgfÅ99R†¿ 73#3#535#cQUhPO¿>Bd†Å 73#3#535#cPThPOÅ::F®À 73#67535#r_9@EK_^ÀB%  KEÀ 73#67535#ZF'+47GFÀC$K1jÑÉ 73#3#535#2œ‰Œ ‰ˆÉ6<1jÑÌ 73#3#535#2œ‰Œ ‰ˆÌ8=%e¦Å 73#3#535#&|imihÅ9:"k¡É 73#3#535##zgkgfÉ7:c†Å 73#3#535#cQUhPOÅ9<o†Å 73#3#535#cQUhPOÅ36 S°Å 73#67535#r_:@FL_^Å>!  GT¡Å 73#27535#kX7<CHXWÅ> FS€Å 73#67535#ZG',37HGÅ? F1tÑÉ 73#3#535#2œ‰Œ ‰ˆÉ26 1tÑÌ 73#3#535#2œ‰Œ ‰ˆÌ47%p¦É 73#3#535#&|imihÉ66"w¡É 73#3#535##zgkgfÉ22 p†Å 73#3#535#cQUhPOÅ44|†É 73#3#535#bPUhONÉ/ 1 W¯Å 73#67535#r_:@FK_^Å;   FWÅ 73#67535#jV.3;?WVÅ; FW€Å 73#67535#ZF'+37GFÅ; F1xÑÌ 73#3#535#2œ‰Œ ‰ˆÌ25 1xÑÌ 73#3#535#2œ‰Œ ‰ˆÌ25 %u¦É 73#3#535#&|imihÉ23"x¡É 73#3#535##zgkgfÉ20u†Å 73#3#535#cPThPOÅ/2 |†Å 73#3#535#cPThPOÅ- -  ‰¸ 7#5##535#‰CCC¸” ˜zg ‚¸ 7#5##535#‚DDD¸” ˜zg q¸ 7#5##535#q444¸” ˜zg2Yν73#75#2œœˆt½d>>2rÎÉ73#75#2œœˆtÉW11"\ž½73#75#"||hT½a;;#lœÅ73#75##yyeQÅY33]‚½73#75#ddP<½`::p‚Å73#75#ddP<ÅU//OŠÁ73#75#llXDÁrLLLqÁ73#75#[[H4ÁuOO2wÎÉ73#75#2œœˆtÉR--2|ÎÉ73#75#2œœˆtÉM(("ržÆ73#75#"||hTÆT--#zžÆ73#75##{{gSÆL%%p‚Æ73#75#ddP<ÆV//z‚Æ73#75#ddP<ÆL%%]ŠÆ73#75#llWCÆiBB]Æ73#75#kkWCÆiBB]qÆ73#75#[[H3ÆiBB2€ÎÉ73#75#2œœˆtÉI$$2ƒÎÉ73#75#2œœˆtÉF!!"|žÉ73#75#"||hTÉM((#…œÉ73#75##yyfRÉD|‚Æ73#75#ddP<ÆJ##„‚É73#75#ddP<ÉE ]ŠÆ73#75#llWCÆiBB]Æ73#75#llXCÆiBBZqÆ73#75#[[H3ÆlEE2ƒÎÉ73#75#2œœˆtÉF!!2ƒÎÉ73#75#2œœˆtÉF!!"žÉ73#75#"||hTÉH###†œÊ73#75##yyfRÊD|‚Å73#75#ddP<ÅI##„‚Å73#75#ddP<ÅA!Џ 73353#5##735#DDDD¸--“ :!‚¸ 73353#5##735#DDDD¸--“ :!r¸ 73353#5##735#4444¸--“ :1Xν 7353#535#EuuuŸeeR!!1mÎÉ 7353#535#Euuu®\\I"Zž½ 7353#535#6T|TT¡ccP!!#lÅ 7353#535#7RzRR¬YYG\‚½ 7353#535#2<d<<¢aaMl‚Å 7353#535#2<d<<¬YYFO‰À 7353#535#2CkCCš&qq^%%LrÀ 7353#535#*4\44š&tta((1tÎÉ 7353#535#Euuu²UUB1zÎÉ 7353#535#Euuu¶OO<"lžÅ 7353#535#6T|TT¬YYF#zÉ 7353#535#7RzRR¶OO<l‚Å 7353#535#2<d<<¬YYFv‚Å 7353#535#2<d<<°OO<Z‰Å 7353#535#2CkCC¢#kkX""Z‚Å 7353#535#*DlDD¢#kkX""ZrÅ 7353#535#*4\44£"kkX##1|ÎÉ 7353#535#EuuuµMM91|ÎÉ 7353#535#Euuu¶MM9"vžÉ 7353#535#6T|TT±SS@#€œÉ 7353#535#7RyRR¶II6v‚Å 7353#535#2<d<<°OO<€‚È 7353#535#2<d<<´HH6\‰Ä 7353#535#2CkCC¤ hhT!!\‚Ä 7353#535#*DlDD¤ hhT!!ZrÄ 7353#535#*4\44¦jjW%%1ÎÉ 7353#535#Euuu¸HH51ƒÎÉ 7353#535#EuuuºFF3"žÈ 7353#535#6T|TT¶II6#€œÈ 7353#535#7RyRR¶HH5{‚Ä 7353#535#2<d<<°II8€‚Ä 7353#535#2<d<<³DD2!£¸ 73353#5##735#73353#5##735#5¸11• 6E22• 6!œ¸ 73353#5##735#73353#5##735#6¸11• 6E22• 6!¸ 73353#5##735#73353#5##735#,¸11• 6E22• 6-XÓ¼ 7353#535#'353#535#ž!I!!]!I!!¡ddQ##6ddQ##-mÓÈ 7353#535#7353#535#A!I!!]!I!!®[[H.[[HY¤¼ 7353#535#7353#535#0>J> ccP!!4ccP!!i£Ä 7353#535#7353#535#0>J=¬[[H0[[H\‹¼ 7353#535#7353#535#(6@7£``L 3``L mŽÄ 7353#535#7353#535#+7@7«WWD+WWDO¤¿ 7353#535#7353#535#0>J>"pp]));"pp]))Ož¿ 7353#535#7353#535#*>J>"pp]));"pp]))IŽ¿ 7353#535#7353#535#*7A7›$vvc,,?$vvc,,-sÓÈ 7353#535#7353#535#A!I!!]!I!!³UUB-UUB-zÓÈ 7353#535#7353#535#A!I!!]!I!!´NN;'NN;m£Ä 7353#535#7353#535#0>J=¬WWD,WWDt£È 7353#535#7353#535#0>J=°TTA)TTAo‹Ä 7353#535#7353#535#&7A7¬UUB*UUBsÄ 7353#535#7353#535#+6@6­QQ>'QQ>Y¤Ä 7353#535#7353#535#0>J>£!kkX$$7!kkX$$ZžÈ 7353#535#7353#535#+>I>¥#nn[%%8#nn[%%VŒÄ 7353#535#7353#535#*6@6¢"nn[&&9"nn[&&-}ÓÈ 7353#535#7353#535#A!I!!]!I!!·KK7&KK7-|ÓÈ 7353#535#7353#535#A!I!!]!I!!¸LL9)LL9y£È 7353#535#7353#535#0>J=²OO<&OO<~£È 7353#535#7353#535#0>J=µJJ7$JJ7vŒÄ 7353#535#7353#535#*5@6®NN<&NN<}È 7353#535#7353#535#*5A5´KK7#KK7\£Ä 7353#535#7353#535#0>J=£!hhU!!4!hhU!!\Ä 7353#535#7353#535#+>I=£!hhU!!4!hhU!!XÄ 7353#535#7353#535#*8@7¤ llY&&9 llY&&-ÓÈ 7353#535#7353#535#A!I!!]!I!!·GG4#GG4-ƒÓÈ 7353#535#7353#535#A!I!!]!I!!ºEE2$EE2~£È 7353#535#7353#535#0>J=µJJ7$JJ7€£È 7353#535#7353#535#0>J=µHH6#HH6y‹Ä 7353#535#7353#535#*5@5¯KK8#KK8€ŒÄ 7353#535#7353#535#*5@6³DD2!DD2«½ 7'6753&&]3 >A $q4""M#$J -˜½7'66753&&R0#:  q5":&#$J - ƒ½ 7'6753&G % .0 &p4 !M#$LSâà 73&''6z> <> Pà 3-*!#"lÝÎ 73&''6z: 8; LÎ )$#Q¬Ä 7'6753&c4 ?< 0‘';7h¬È 7'6753&d4 @= / "30 SŠÄ 7'6753&O * 3/"’%94gÄ 7'6753&S ) 3. $ž"0+ C­Ä 7'66753&^4 %B 5Œ,1=C–Ä 7'6753&S1>6 +’0DBC„Ä 7'6753&&I )4/ ‰*=; %"pÝÎ 73&''6z9 9: LÎ &!""yÝÎ 73&''6z: 8< LÎ !h¬È 7'6753&d4 @= / "30p«È 7'6753&c3 @< 0Ÿ* (k‹Ä 7'6753&S ) 3, $›($n‹Ä 7'6753&S ) 3, $œ'"   P­È 7'66753&^3 %B 6•* .:P–È7'66753&&R 2 #7 –* /> &R…È 7'6753&J )40 %–)<:"~ÝÎ 7'673&9 K = ;®("~ÝÎ 7'673&9 K = ;®(s­Ë 7'6753&c4 >? 0¦+ &}­Ë 7'6753&c4 >? 0©$ !  pÈ 7'6753&S ) 3. % (#|Ë 7'6753&S * 3. $¤"   S­È 7'66753&^4!$B 6% )3S™È 7'6753&S1<: .“&73 V‚È 7'6753&J ( 2- #–':7#}ÝÎ 7'673&9 J = ;®)"ÝÎ 73&''6z9 8: LÎ  {­Ë 7'6753&c4 ?? 0©% !  }­Ë 7'6753&c4 =@ 0¦"   €È 7'6753&Q ( 3. %¨!  {È 7'6753&S ) 3. $¤!   ´¹ 7'6753&7'6753&F !* < (# f(;01+ &=787¥º 107'6753&'6753&&5| "( n )  Z'A568>,-, º!107'6753&'''6753&&5 & "  (723*   F,-? % Tå¾ 7'6753&7'6753&W % ,# P !- #‹"4) .-iäË 7'6753&7'6753&Z ) 0 M (+ !›1 $ 0+ V³¾ 7'6753&''6753&† ! I " * ….,1)  ^²Å 7'6753&7'6753&F # , = ' –,!  0) ]’¿ 7'6753&7'6753&; # 1  ‰*"  &$  d•Ä 7'6753&7'6753&> # - " —-  (#  9±Ä 7'6753&7'6753&F # + < ( }!7 !* '9((49§Ä 7'6753&7'6753&= ( 9 '" y2&&' "9()3:’Ä 7'6753&7'6753&4  1 # { 4#$% ":'(2måË 7'6753&7'6753&Z ( 0 N ", "ž0 ) . 1såË 7'6753&7'6753&Z ' 0 N "- "¡* % .-l²Ä 7'6753&7'6753&G " + > ! ›+ % ($ k²È 7'6753&7'6753&G " ( < &! ž, "  ,%  m•Ä 7'6753&7'6753&; ! 0  š+   %$   r”Ä 7'6753&7'6753&@  ' /  # ž&    (  Q±Ä 7'6753&7'6753&G " ) = ! ' +"  2+ P¥Ä 7'6753&7'6753&? " ) 9 ! ' Š,  2* J’Ä 7'6753&''6753&h # :  |5- - {äÎ 7'6753&7'6753&X % . O %, !£'  ( % {äË 7'6753&7'6753&X % . O %, !£'  ( % w²Ë 7'6753&7'6753&G # + >   &   &! x²Ë 7'6753&7'6753&I % , ; % £$    &   x“È 7'6753&7'6753&? $ /  ¡ '    $" u”É 7'6753&7'6753&?  # /  " £ (   '!  R±Ä 7'6753&''6753&ˆ ! ' I # , ˆ 3/#0' Q¥Ä 7'6753&''6753&z ' @ ! ) … 1-& 4) L‘Ä 7'6753&''6753&h # 9  {/&'( #0" äË 7'6753&7'6753&Y & 0 O %, ¦$   "  |äË 7'6753&7'6753&Y & 0 O %, !¦&  # "  y±É 7'6753&7'6753&I % + ;  £'    % $  y±É 7'6753&7'6753&I % + ;  £'    % $  x•Ä 7'6753&7'6753&@ $ .  ¡ '  "   s•Ä 7'6753&7'6753&>  ' 0 " £ '  * ¿ 7"&54632'"32654&S#"##+%&++&%+Ž   ‰¿ 7"&54632'"32654&L#"##+%&++&%+Ž  !y¿ 7"&54632'"32654&D *&'*+&&*Ž  -SÒÁ 7"&54632'"32654&'+*((++(  S  !\-mÒÏ 7"&54632'"32654&(**()*+(  mO  S¡Á 7"&54632'"32654&`####S \g¡É 7"&54632'"32654&` "" "#gP  U†Á 7"&54632'"32654&OUYl†É 7"&54632'"32654&OlJ  J‘Ä 7"&54632'"32654&S!!""J""""hHyÄ 7"&54632'"32654&CH"!"#j-rÒÏ 7"&54632'"32654&(**()**)  rJ  m¡É 7"&54632'"32654&` "" "#mJ  v¡É 7"&54632'"32654&` "" ""vA  l†É 7"&54632'"32654&OlJ  w†É 7"&54632'"32654&Ow?  Y‘É 7"&54632'"32654&T!!""Y ^Y‰É 7"&54632'"32654&L"!!!Y ^XyÉ 7"&54632'"32654&CX _-{ÑÏ 7"&54632'"32654&))))))))  {B  -ÑÏ 7"&54632'"32654&))))))))! >v¡É 7"&54632'"32654&` "" ""vA  €¡Ì 7"&54632'"32654&`!!!!""€:   v†É 7"&54632'"32654&Ov@  €†Ì 7"&54632'"32654&O€9   Y‘É 7"&54632'"32654&T!!""Y ^Y‰É 7"&54632'"32654&L"!!!Y ^XyÉ 7"&54632'"32654&CX _-|ÑÏ 7"&54632'"32654&))))))))  |A  -|ÑÏ 7"&54632'"32654&))))))))  |A  z¡Ì 7"&54632'"32654&` "" ""z@  ¡È 7"&54632'"32654&`!!!! !"7   {†Å 7"&54632'"32654&O{7   ~†È 7"&54632'"32654&O~8   §¹7#&&''675#5 7> #/ :5¹G +2  K  ¹7#&''675#5˜7?1 /;5¹I31 H…¹7#&''675#5}(0 ' ( 2,¹D-0 G$UÛ½7#&''67#5ÑG; :8 EJ½'$$+$jÚÉ7#&''67#5ÑG: 88 BHÉ# &Q­½7#&''67#5Ÿ3A 4 1 : 5½/#&3b­Å7#&''675#5Ÿ2@ 2 1<6Å'+Xн7#&''675#5€&0 % ) 2+½(+l‡Å7#&''67#5€&+ " '+ )Å$  'C«Á7#&''675#5 7B 5 2 ;5Á=))> >£Á7#&''6675#5˜8C 4 0 !4Á<** / C…Á7#&''675#5|(1 ' & 0,Á7%';$tÚÉ7#&''67#5ÑH; 97 BHÉ $wÚÉ7#&''67#5ÑH; 98 BHÉd­Å7#&''67#5Ÿ5B 3 / 6 4Å$",o­É7#&''67#5Ÿ4@ 4 . 6 5É" (d‡Å7#&''67#5€'- " ( .*Å( ,n‡Å7#&''67#5€', " * , *Å!  %Q­Å7#&''67#5 5@ 4 1 9 8Å4#'9 Q¥Å7#&''67#5—5@ 3 1 8 7Å3%&8 T„Å7#&''675#5|(0 & ' 1,Å1!"2$|ÚÉ7#&''67#5ÑI; 98 AHÉ$ÚÉ7#&''67#5ÑI; 98 @HÉx¯É7#&''67#5¡6B 3 5 < 9É  !¯É7#&''67#5¡6@ 2 5 : 8É   r‡É7#&''67#5€(, " ' - +É# &}‡É7#&''67#5€(. " ' ,+É   Q­Å7#&''67#5 6B 2 2 ; 8Å3#'8 Q£Å7#&''67#5—6A 2 08 7Å3#&8 R„Å7#&&''675#5}*1  ' 1-Å3 #6$ÚÉ7#&''67#5ÑH: 89 @HÉ$|ÚÉ7#&''67#5ÑH; 98 AHÉz¯É7#&''67#5¡6A 3 4 : 8É   ¯É7#&''67#5¡6? 2 5 88É   }ŠÅ7#&''67#5‚'+ # ' * *Å   }†Å7#&''67#5'* ! ) * +Å    ±¸!7#&''675#53#&''675#5b  # ,Š!  (¸5+F<$+D ¥¸!7#&''675#53#&''675#5Z  '†   '¸5+E>&*C¸!7#&''675#53#&''675#5J t   $¸2"= 8!'@Qå½!7#&''675#53#&''675#5{  # +'µ%/ "  $½% "2-+#hÜÉ7#&''67#53#&''67#5z  !'%§#* % ,É  '(, S²½!7#&''675#53#&''675#5b  " ,‹"  #½!  .** ]²Æ!7#&''675#53#&''675#5b  " ,‹"  (Æ!  ,( - X޽!7#&''675#53#&''675#5P  !v   ½  ( ( & aÅ!7#&''675#53#&''675#5P  !v  ( Å $% . :±Á!7#&''675#53#&''675#5b  " ,‹!  )Á1%; 8#'> :¥Á!7#&''675#53#&''675#5Z  !,…  )Á1%< 8#'> :Á!7#&''675#53#&''675#5J  !s  #Á/ "94#:#iÝÉ!7#&''675#53#&''675#5z  ! *&¨#, É  (& %#sÝÉ7#&''67#53#&''67#5z ! '&¨$+  É  ## $ k²Æ!7#&''675#53#&''675#5b  " ,‹"  !Æ &$  #k±Æ7#&''67#53#&''67#5b  ! )‹!  ! )Æ ##  ' nÆ!7#&''675#53#&''675#5P  !v   Æ    $ $ oÆ7#&''67#53#&''675#5P  !v   ( Æ    !R²Æ!7#&''675#53#&''675#5b  *‹"   (Æ' /1 7R§Æ!7#&''675#53#&''675#5Y  *ˆ"  )Æ% .4 7LÁ7#&''67#53#&''675#5J  s   $Á& 30  7#yÝÉ7#&''67#53#&''67#5z  !% %§")  É      #}ÝÉ7#&''67#53#&''67#5z  $ %§")  É       s±É7#&''675#53#&''67#5b  " +‹  É #% % y±É7#&''67#53#&''67#5b  " )‹  $É    ! vÉ7#&''67#53#&''675#5P  v   É $       xÉ7#&''67#53#&''67#5O  q   É    !R±Å!7#&''675#53#&''675#5b  ! * ‹!  )Å% .17R¦Å!7#&''675#53#&''675#5Y  + ‰!  )Å% .1 7LÆ"7#&''6675#53#&''675#5J  s   $Æ'  ' 0  7#yÝÉ7#&''67#53#&''67#5z  !% %§")  É      #yÝÉ7#&''67#53#&''67#5z  !% %§")  É       s±É7#&''675#53#&''67#5b  " +‹  É ##   ! y±É7#&''67#53#&''67#5b  " )‹  $É    ! vÆ7#&''67#53#&''675#5O  u   Æ      xÆ7#&''67#53#&''67#5O  p   Æ       ¦Å7#5#&''675#5~>]6? 0 1<8Å);'(= šÅ7#5#&''675#5x=V/8 + 0<7Å)=++? Á7#5#&''675#5k:J'- # ' 1+Á):&'<#GÜÉ7#5#&''67#5£GuGO ?> NHÉ')  (#dÜÏ7#5#&''67#5£GuG I ?@ H GÏ    G¬Å7#5#&''67#5‚=\7A 1 09 4Å!&)S¬É7#5#&''67#5<[5? 2 2 7 4É!!  #HˆÅ7#5#&''67#5g1H&. " ( -(Å " )U‰Å7#5#&''67#5k9N*2 % ' .*Å   8£É7#5#&''675#5|=]8? 1 /:6É$-!"1 2šÉ7#5#&''6675#5q6V1: - . 7É$1%& ' 2Å7#5#&''675#5i8I%, " ' 2-Å -!#1 #hÜÏ7#5#&''67#5£GuF F ?@ E GÏ   #hÜÏ7#5#&''67#5£GuF F ?@ E GÏ   `¬É7#5#&''67#5=\4A 2 2 9 8É   f­É7#5#&''67#5=]4< 2 2 8 7É    bŽÉ7#5#&''67#5l8N*5 ( * 1+É   jŒÉ7#5#&''67#5k9N)1 ( * 1*É J¦Ì7#5#&''675#5|=]8B 2 1 <6Ì!&) EšÌ7#5#&''67#5x=V2; - 0 :6Ì!- !/ B€É7#5#&''67#5i8I', ! ( /,É."3#vÜÏ7#5#&''67#5£GuF H ?@ H GÏ  #vÜÏ7#5#&''67#5£GuGN A? MHÏ  fªÌ7#5#&''67#5>^5> 2 1 9 9Ì   s­Ì7#5#&''67#5=]2 4 05 8 7Ì  kÉ7#5#&''6675#5k8O* ( , +É    tŒÌ7#5#&''67#5k8M(- ( + .)Ì J¥Ì7#5#&''67#5|=]9? 0 1 7 6Ì!(, OšÌ7#5#&''67#5x=V1: , / 8 6Ì ') J€Ì7#5#&''67#5i7H'+ ! ( / ,Ì* .%wÛÏ7#5#&''67#5£GuF F >> D GÏ  %wÛÏ7#5#&''67#5£GuF F >> D GÏ  nªÌ7#5#&''67#5>]5< 2 4 ?8Ì   u¬Ì7#5#&''67#5<[37 05 : 6Ì  oŽÉ7#5#&''67#5l9O)0 ' , 3,É  uŒÉ7#5#&''67#5k8M', ( - - *É  ¹ 7'67'767#53 AT^^s3  s й 7'67'767#53 @R\^s3  s t¹ 7'67'767#53 4AIH]3s.8ν 767'765#53­ˆ‹ˆœ=$ [*.SÍÉ 767'75#53­ˆ‹‡› X  Q%E˜½ 767'765#53ycgey I"  S%W˜Å 767'765#53|dgey \  L"Fz½ 767'75#53\KOL` K  R%YÅ 767'75#53bLQNb ]  K!.ν 767'765#53ª ˆ‹ˆœ!6 u62˜½ 767'765#53t cgdx7' `+1‘À 7'67'767#53 ;Q\[s1)  f 1ŠÀ 7'67'767#53 :P\[s1)  f 5wÀ 7'67'767#53 ->JH` 5%  c.bÍÉ 767'75#53°ˆ‹‡› g G .bÍÉ 767'75#53°ˆ‹‡› g G `˜Å 767'765#53|cgey e  E `˜Å 767'765#53|cgey e  E `|Å 767'75#53`MQNbe  E mÅ 767'75#53fMQNbq   =U˜Å 767'765#53|addx Z  M#A‘Å 767#53'67'pZrd 9Jš ^&$  AŠÅ 767#53'67'h[sd 9Jš ^&$  @wÆ 7'67'767#53 .>HH` @%  _.pÍÉ 767'75#53±ˆ‹‡›u   =.hÍÉ 767'75#53¯ˆ‹‡› m  Bo˜É 767'765#53|addx t   =r˜É 767'765#53{addx v   <q~É 767'765#53aPSPd u   =tÉ 767'75#53gNRNby  :.^ÍÉ 767'75#53±ˆ‹‡›c I"d˜É 767'765#53{addx h  E >’Å 767#53'67'p\se :L˜ `'%  >‹Å 767#53'67'i\te :M˜ `'%  AvÅ 767#53'67'WI_ Q -=˜ ^&$ .rÍÉ 767'75#53²ˆ‹‡›w   <.gÍÉ 767'75#53±ˆ‹‡›l  C r˜É 767'765#53{`c_s v    <q˜É 767'765#53|addx u   =r~Å 767'765#53aPSPd w   9uÅ 767'75#53gORNby  7.eÍÉ 767'75#53°ˆ‹‡› i  Eh˜É 767'765#53|addx l C°½73#3#267#s_ZZIEM½,< ¡½73#3#267#kWRRFCH½,< †½73#3#267#[G==6 5;½,< 1NÒ¿ 7#3#3#5Ή‰‰¡¿q1jÒÉ 7#3#3#5Ή‰‰¡É_#N¦¿ 7#3#3#5¡jjjoƒ¿q"f¡Æ 7#3#3#5œfffkÆ`R¿ 7#3#3#5|JJJOc¿md†Æ 7#3#3#5OOOThÆbF°Á 73#3#27#s_ZZC8EMÁ$F Á73#3#267#kWRRFDFÁ$ F‡Á73#3#267#[G==; 6;Á$ 1jÒÉ 7#3#3#5Ή‰‰¡É_1jÒÌ 7#3#3#5Ή‰‰¡Ìb%e¦Æ 7#3#3#5¡hhhmÆa"k¡É 7#3#3#5œfffkÉ^c†Æ 7#3#3#5OOOThÆcn†Æ 7#3#3#5OOOThÆ XS°Æ 73#3#27#s_ZZG4GKÆ  S Æ 73#3#27#kWRRC0GCÆ  S‡Æ 73#3#27#[G==5%6;Æ 1sÒÉ 7#3#3#5Ή‰‰¡ÉV1tÒÌ 7#3#3#5Ή‰‰¡ÌX%o¦É 7#3#3#5 gggmÉZ"v¡Ê 7#3#3#5œfffkÊ Tp†Æ 7#3#3#5OOOThÆVz†Ê 7#3#3#5OOOThÊ  PW°Æ 73#3#27#s_ZZC8DNÆ  W”Æ 73#3#27#kWRR8.@>Æ  Z€Æ 73#3#27#[G==-%/;Æ1xÒÌ 7#3#3#5Ή‰‰¡Ì T1xÒÌ 7#3#3#5Ή‰‰¡Ì T%s¦É 7#3#3#5 gggmÉV"w¤É 7#3#3#5žhhhn‚É Rs†Å 7#3#3#5OOOThÅ Rz†Å 7#3#3#5OOOThÅ  K¯¹7#537737'7£„&  )œ)¹#b_^  ž¹7#537737'7˜  &’(¹#c`_  ‡¹7#537737'7|e   #{¹!eca .VѾ7#5#53'3373Ñ£ œ#/¾T8888.qÑË7#5#53'3373Ñ£ œ"1ËF++++Q¨½7#537737'7¥…!%Œ"½=;;h¨Æ7#537737'7¥…!$Œ"Æ-,+Q‡½7#537737'7„d l½<;:d‡Æ7#537737'7„e lÆ432F®Á7#537737'7¥†%(š)ÁHFD  CžÁ7#537737'7—€ %’(ÁJHG  H‡Á7#537737'7|e   #{ ÁECB .uÑË7#5#53'3373Ñ£ œ"0ËB''''.{ÑË7#5#53'3373Ñ£ œ"1Ë<!!!!k¨Æ7#537737'7¥…!$Œ"Æ,++s¨Ê7#537737'7¥…!#Œ#Ê)''h‡Æ7#537737'7„e lÆ0/.q‡Æ7#537737'7„e lÆ'&%Y®Æ7#537737'7£„('™&Æ:87  SÆ7#537737'7˜‚ $’(Æ@><  S‡Æ7#537737'7|f "|Æ?=< .~ÑË7#5#53'3373Ñ£ œ"1Ë9.‚ÑË7#5#53'3373Ñ£ œ"1Ë5s¡Ê7#537737'7œ|"…"Ê)'&€¨Ê7#537737'7¥…##Œ"Ês‡Æ7#537737'7„e lÆ%$#€‡Ê7#537737'7„e lÊX®Æ7#537737'7£„&(š(Æ;98  SœÆ7#537737'7—€!#(Æ@><  S‡Æ7#537737'7|e "{Æ?>< .‚ÑË7#5#53'3373Ñ£ œ"1Ë5.‚ÑË7#5#53'3373Ñ£ œ"1Ë5|¡Ê7#537737'7œz"‚Ê" ¨Ê7#537737'7¥‚"$‰Êx‡Æ7#537737'7„e lÆ! |‡Æ7#537737'7„e lƦÁ7#5#5"&54632'"32654&€Dj‘IÁ$‚P  ¡Á7#5#5"&54632'"32654&zDk‘HÁ$‚P  ƒÁ7#5#5"&54632'"32654&f9Vs9  Á$‚P*:ÖÅ7#5#5"&54632'"32654&¥K|¬V "!! "#Ål>   *YÖÏ7#5#5"&54632'"32654&¥K|¬V!!!! "" Ï\4   :¦Å7#5#5"&54632'"32654&€@fŒFÅm@ P¦Í7#5#5"&54632'"32654&€@fŒFÍb9   >‹Å7#5#5"&54632'"32654&k7Ww;  Åi> Q‹Ê7#5#5"&54632'"32654&k7Ww;  Ê_6   ?¦Ê7#5#5"&54632'"32654&€Dj‘IÊl@ ?‰Ê7#5#5"&54632'"32654&i9Yy<  Ê!j> *[ÖÏ7#5#5"&54632'"32654&¥K|¬V!! "!!" ÏZ  2   *_ÖÏ7#5#5"&54632'"32654&¥K|¬V" " "!!ÏV  ,T¦Ê7#5#5"&54632'"32654&€@fŒFÊX  0   ^¦Ì7#5#5"&54632'"32654&€@fŒFÌT  -Z‹É7#5#5"&54632'"32654&k7Ww;  ÉV  . e‹É7#5#5"&54632'"32654&k7Ww;  ÉL  'M¦Í7#5#5"&54632'"32654&€Dj‘IÍc9   M¡Í7#5#5"&54632'"32654&zCj‘HÍc9   N‰Ê7#5#5"&54632'"32654&i9Yy<  Ê_6   *eÖÏ7#5#5"&54632'"32654&¥K|¬V" " "!!ÏQ  +*nÖÏ7#5#5"&54632'"32654&¥K|¬V" #" !!ÏH  $b¦Ì7#5#5"&54632'"32654&€@fŒFÌP  )l¦Ì7#5#5"&54632'"32654&€@fŒFÌH  $a‹É7#5#5"&54632'"32654&k7Ww;  ÉQ  +l‹Ì7#5#5"&54632'"32654&k7Ww;  ÌH  $M¦Ì7#5#5"&54632'"32654&€Dj‘IÌb9   M¡Ì7#5#5"&54632'"32654&zDk‘HÌb9   K‰É7#5#5"&54632'"32654&i9Yy<  Éa9   *gÖÏ7#5#5"&54632'"32654&¥K|¬V!! "!!" ÏO  )*gÖÏ7#5#5"&54632'"32654&¥K|¬V!! "!!" ÏO  )d¦Ë7#5#5"&54632'"32654&€@fŒFËN  )k¦Ë7#5#5"&54632'"32654&€@fŒFËI  %e‹È7#5#5"&54632'"32654&k7Wx<  ÈK  'i‹É7#5#5"&54632'"32654&k7Wx<  ÉH  $¼ÿëöÎ733##¼&&Î_q¼ÿëöÎ733##¼&&Î_q¼ÿëöÎ733##¼&&Î_q¼&öÎ733##¼&&ÎRC¼&öÎ733##¼&&ÎRC¼+öÎ733##¼&&ÎR>¼OõÎ733##¼%%ÎD(¼OõÎ733##¼%%ÎD(¼OöÎ733##¼&&ÎD(¼@öÎ733##¼&&ÎD7¼@õÎ733##¼%%ÎK0¼@õÎ733##¼%%ÎK0¼TõÎ733##¼%%Î?(¼TõÎ733##¼%%Î?(¼TõÎ733##¼%%Î?(ŒÿëÐÎ 73353#5##ŒÉafãj]”ÿëÑÎ 73353#5##”É`eãl_šÿëÑÎ 73353#5##šÉ`eãl_Œ&ÐÎ 73353#5##ŒËLO¨F=”&ÐÎ 73353#5##”ËLO¨F=š!ÑÎ 73353#5##šËOR­H@ŒKÐÎ 73353#5##ŒËADƒ,)”KÐÎ 73353#5##”ËADƒ,)šKÑÎ 73353#5##šËAŽ:/ŒSÐÎ 73353#5##ŒË8;{--”SÑÎ 73353#5##”Ë>Î~9„LÐÎ753#5#5¼8›3‚<”LÐÎ73#5#53¼((΂(LÐÎ753#5#5¼,”:‚5‡PÐÎ73#5#53¼55Î~1ŒMÐÎ73#5#53¼00Î-€TÐÎ73#5#53¼<<Îz,•RÐÎ73#5#53¼''Î|0‘TÐÎ73#5#53¼++Îz8wTÐÎ73#5#53¼EEÎz@‡TÐÎ73#5#53¼55Îz0„TÐÎ73#5#53¼88Îz4“TÐÎ73#5#53¼))Îz TÐÎ73#5#53¼,,Îz,‡TÐÎ73#5#53¼55Îz.ŒTÐÎ73#5#53¼00Îz$…BÐÎ753#5#5¼7‘=Œ<”BÐÎ753#5#5¼(•9Œ@‘BÐÎ73#5#53¼++ÎŒJnBÐÎ73#5#53¼NNÎŒR~BÐÎ73#5#53¼>>ÎŒH„BÐÎ73#5#53¼88ÎŒF’BÐÎ73#5#53¼**ÎŒ2‘BÑÎ73#5#53½,,ÎŒ?‰BÐÎ73#5#53¼33ÎŒ?ŒBÐÎ73#5#53¼00ÎŒ8gÿëÐÎ 73#'3#5#53¼+**ÎãÞÑj{ÿëÐÎ 73#'3#5#53¼%ÎãÞÑn^ÿëÐÎ 73#'3#5#53¼-11ÎãÞÑukÿëÐÎ 73#'3#5#53¼+&&ÎãÞÑmpÿëÐÎ 73#'3#5#53¼+!!ÎãÞÑvpÿëÐÎ 73#'3#5#53¼($$ÎãÞÑU~ÿëÐÎ 73#'3#5#53½"ÎãÞÑnlÿëÐÎ 73#'3#5#53¼+%%ÎãÞÑaj&ÐÎ 73#'3#5#53¼+''Ψ£›Hu&ÐÎ 73#'3#5#53¼%""Ψ£›K{$ÐÎ 73#'3#5#53¼%Ϊ¥˜O^&ÐÎ 73#'3#5#53¼.00Ψ£›Xl&ÐÎ 73#'3#5#53¼+%%Ψ£›Ql"ÐÎ 73#'3#5#53¼+%%ά§Wo&ÐÎ 73#'3#5#53¼(%%Ψ£›/€&ÑÎ 73#'3#5#53½"Ψ£›Et"ÐÎ 73#'3#5#53¼+ά§Fo)ÐÎ 73#'3#5#53¼(%%Î¥ =lLÐÎ 73#'3#5#53¼+%%΂}z3LÐÎ 73#'3#5#53¼%΂}z4yLÐÎ 73#'3#5#53¼%΂}z8]LÐÎ 73#'3#5#53¼*55΂}zBmLÐÎ 73#'3#5#53¼*%%΂}z;mLÐÎ 73#'53#5#5¼*%΂Q,z;oIÐÎ 73#'3#5#53¼(%%Î…€|€MÑÎ 73#'53#5#5½"ÎL0y6uLÐÎ 73#'3#5#53¼*΂}z-oIÐÎ 73#'3#5#53¼(%%Î…€|)lUÐÎ 73#'3#5#53¼+%%Îytt'zUÐÎ 73#'3#5#53¼%Îytt)zUÐÎ 73#'3#5#53¼%Îytt2bUÐÎ 73#'3#5#53¼*00Îytt<mUÐÎ 73#'3#5#53¼*%%Îytt5nUÐÎ 73#'3#5#53¼*$$Îytt4pQÐÎ 73#'3#5#53¼($$Î}xx€UÑÎ 73#'53#5#5½"ÎyD0t1sUÐÎ 73#'3#5#53¼+Îytt'oSÐÎ 73#'3#5#53¼(%%Î{vv#hAÐÎ 73#'3#5#53¼+))Έu-~AÐÎ 73#'3#5#53¼%Έu-zBÐÎ 73#'3#5#53¼%ÎŒ‡|:\AÐÎ 73#'3#5#53¼+55Έu<mAÐÎ 73#'3#5#53¼+$$Έu5oAÐÎ 73#'3#5#53¼+""Έ|>qAÐÎ 73#'3#5#53¼)""Έ|€BÑÎ 73#'3#5#53½"ÎŒ‡|5tAÐÎ 73#'3#5#53¼+Έt'qAÐÎ 73#'3#5#53¼)""Έ|)ÿëÐÎ 753#5#535#5¼==2ŠDãO*‰ÿëÐÎ 753#5#535#5¼33-“;ãU-ÿëÐÎ 753#5#535#5¼,,,—7ãf vÿëÐÎ 753#5#535#5¼FFF1ão‡ÿëÐÎ 753#5#535#5¼555’<ã^$ŠÿëÐÎ 753#5#535#5¼222š4ãe$”ÿëÐÎ 753#5#535#5¼(((yUãG ÿëÐÎ 753#5#535#5¼---’<ãW+‡ÿëÐÎ 753#5#535#5¼555’<ã^$ŽÿëÐÎ 73#5#535#53¼....Îã[&ÐÎ 73#5#535#53¼==22Ψ-&‹&ÐÎ 73#5#535#53¼11,,Ψ3%•"ÐÎ 73#5#535#53¼''''άH†&ÐÎ 73#5#535#53¼6666ΨD"ÐÎ 73#5#535#53¼----ά: †%ÐÎ 73#5#535#53¼6666ΩE&ÐÎ 73#5#535#53¼,,,,Ψ1€PÐÎ 73#5#535#53¼<<22Î~#‹PÐÎ 73#5#535#53¼1111Î~ •OÐÎ 73#5#535#53¼''''Î)vOÐÎ 73#5#535#53¼FFFFÎ1ŒOÐÎ 73#5#535#53¼0000Î!OÐÎ 73#5#535#53¼----Î&”IÐÎ 73#5#535#53¼((((Î…OÐÎ 73#5#535#53¼,,,,ΉOÐÎ 73#5#535#53¼3333Î%’IÐÎ 73#5#535#53¼****Î…€TÐÎ 73#5#535#53¼<<22ÎzŒTÐÎ 73#5#535#53¼0000Îz—UÐÎ 73#5#535#53¼%%%%Îy&vTÐÎ 73#5#535#53¼FFFFÎz.‹SÐÎ 73#5#535#53¼1111Î{‘SÐÎ 73#5#535#53¼++++Î{&”IÐÎ 73#5#535#53¼((((Î…TÐÎ 73#5#535#53¼,,,,Îz‰PÐÎ 73#5#535#53¼3333Î~%”QÐÎ 73#5#535#53¼((((Î} €BÐÎ 73#5#535#53¼<<22ÎŒ"ŒBÐÎ 73#5#535#53¼0000ÎŒ%—BÐÎ 73#5#535#53¼%%%%ÎŒ7vBÐÎ 73#5#535#53¼FFFFÎŒ@‹BÐÎ 73#5#535#53¼1111ÎŒ.ˆBÐÎ 73#5#535#53¼4444ÎŒ5”<ÐÎ 73#5#535#53¼((((Î’BÐÎ 73#5#535#53¼----ÎŒ-ˆBÐÎ 73#5#535#53¼4444ÎŒ5”FÐÎ 73#5#535#53¼((((ΈfÿëÐÎ73#'3#5#535#53¼+++%%ÎãÞÑJ'tÿëÐÎ73#'53#5#535#5¼%## Îã¤:ÑJ'wÿëÐÎ73#'53#5#535#5¼% Îã¤:ÑQ \ÿëÐÎ73#'3#5#535#53¼.2222ÎãÞÑckÿëÐÎ73#'53#5#535#5¼+&&&Îã«3ÑQ'pÿëÐÎ73#'53#5#535#5¼+!!!Îã­1Ñ]zÿëÐÎ73#'53#5#535#5¼(Îã‹SÑ;€ÿëÐÎ73#'53#5#535#5¼!Îã¤:ÑA0kÿëÐÎ73#'3#5#535#53¼+&&&&ÎãÞÑQ'wÿëÐÎ73#'53#5#535#5¼(Îã‘MÑKf&ÐÎ73#'3#5#535#53¼+++!!Ψ£›+!u$ÐÎ73#'3#5#535#53¼%"" Ϊ¥˜+!}$ÐÎ73#'3#5#535#53¼%Ϊ¥˜?^&ÐÎ73#'3#5#535#53¼.0000Ψ£›Fk&ÐÎ73#'3#5#535#53¼+&&&&Ψ£š5r&ÐÎ73#'3#5#535#53¼+Ψ£—;v&ÐÎ73#'53#5#535#5¼(Ψ`C›€&ÑÎ73#'3#5#535#53½"Ψ£›. k"ÐÎ73#'3#5#535#53¼+&&&&ά§;v)ÐÎ73#'3#5#535#53¼(Î¥ + fLÐÎ73#'3#5#535#53¼+++ ΂}ztLÐÎ73#'3#5#535#53¼%## ΂}zyLÐÎ73#'3#5#535#53¼%΂}z, ]LÐÎ73#'3#5#535#53¼.1111΂}z/mLÐÎ73#'3#5#535#53¼*%%%%΂}z!rIÐÎ73#'53#5#535#5¼+Î…c|,tIÐÎ73#'3#5#535#53¼( Î…€| €MÐÎ73#'53#5#535#5¾#ÎY#ykLÐÎ73#'3#5#535#53¼*''''΂}z#vIÐÎ73#'3#5#535#53¼(Î…€| bUÐÎ73#'3#5#535#53¼+//ÎyttwUÐÎ73#'3#5#535#53¼% ÎyttyUÐÎ73#'3#5#535#53¼%Îytt& cUÐÎ73#'3#5#535#53¼.++++Îytt)mUÐÎ73#'3#5#535#53¼+$$$$ÎyttrUÐÎ73#'3#5#535#53¼+Îytt$tMÐÎ73#'3#5#535#53¼( Î|| €UÑÎ73#'53#5#535#5½"ÎyQ#tnUÐÎ73#'3#5#535#53¼+####Îytt!vNÐÎ73#'3#5#535#53¼(΀{{ bBÐÎ73#'3#5#535#53¼+//!!ÎŒ‡yvBÐÎ73#'3#5#535#53¼%!!!!ÎŒ‡yyBÐÎ73#'3#5#535#53¼%ÎŒ‡|-bBÐÎ73#'3#5#535#53¼.,,,,ÎŒ‡t)nBÐÎ73#'3#5#535#53¼,""""ÎŒ‡t!oBÐÎ73#'3#5#535#53¼+""""ÎŒ‡}+oBÐÎ73#'3#5#535#53¼(%%%%ÎŒ‡| €BÑÎ73#'53#5#535#5½"ÎŒ_(|lBÐÎ73#'3#5#535#53¼+%%%%ÎŒ‡tvBÐÎ73#'3#5#535#53¼(ÎŒ‡|  ên7#5353êÕVQQ êp7#5353êÕfSS êW7#5353êÕa:: êe7#5353êÕaHH ê]7#5353êÕa@@ ê>7#5353êÕa!! êN7#5353êÕa11 êQ7#5353êÕa44Gê7#5353êÕVZ55Lê7#5353êÕl_..Dêp7#5353êÕaWDê{7#5353êÕaW$$Bê}7#5353êÕaU((9êc7#5353êÕaLAêo7#5353êÕaTGê7#5353êÕVZ%%@êo7#5353êÕaS\ê˜7#5353êÕVo))\ê˜733#53UÕl˜)Uê|7#5353êÕahXê7#5353êÕak$$Uê‡7#5353êÕahXê…7#5353êÕakFêo7#5353êÕaYPêy7#5353êÕacZêˆ7#5353êÕWmQêy7#5353êÕadcê7#5353êÕVv''cê7#5353êÕlv''[êƒ7#5353êÕan[êŽ7#5353êÕan [ê‰7#5353êÕanYê…7#5353êÕalIêo7#5353êÕa[Zê~7#5353êÕal[êŠ7#5353êÕWnYê€7#5353êÕakWê˜733#53UÕl˜.Qê733#53~XÕiSêŽ7#5353êÕaf((Sê‡7#5353êÕaf!!Sê‡7#5353êÕaf!!Eêo7#5353êÕaXNêz7#5353êÕaaSê…7#5353êÕWfLê{7#5353êÕa_ÿëöÎ733##'37'7¼&&tP™8ÎhhIÿëöÎ733##'37'7¼&&^;™NÎhhGÿëöÎ733##'37'7¼&&fB™FÎhhl+ÿëöÎ733##'37'7¼&&gB™EÎhh„CÿëöÎ733##'37'7¼&&gB™EÎhhx7ÿëöÎ733##'37'7¼&&fB™FÎhhu4ÿëöÎ733##'37'7¼&&fB™FÎhh[ ÿëöÎ733##'37'7¼&&fB™FÎhhl,ÿëöÎ733##'37'7¼&&tP™8Îaoy1ÿëöÎ733##'37'7¼&&fB™FÎhhl,$öÎ733##'37'7¼&&tP™8ÎSDj7 $öÎ733##'37'7¼&&_;šMÎSDj6 $öÎ733##'37'7¼&&fBšFÎSDI $öÎ733##'37'7¼&&fBšFÎSD_+ $öÎ733##'37'7¼&&fBšFÎSDT$ $öÎ733##'37'7¼&&fBšFÎSDY+ $öÎ733##'37'7¼&&fBšFÎY>> $öÎ733##'37'7¼&&fBšFÎRDF $öÎ733##'37'7¼&&uQš7ÎQFV' $öÎ733##'37'7¼&&fBšFÎSDH LöÎ733##'37'7¼&&tPš8ÎE*M0 LöÎ733##'37'7¼&&^;šNÎE*N/ LöÎ733##'37'7¼&&fBšFÎE*+ LöÎ733##'37'7¼&&fBšFÎE*?& KöÎ733##'37'7¼&&fBšFÎE+8 KöÎ733##'37'7¼&&fBšFÎE+<%>öÎ733##'37'7¼&&fBšFÎN** DõÎ733##'37'7¼%%fFFÎN)3 MöÎ733##'37'7¼&&uQš7ÎE)8  CöÎ733##'37'7¼&&fBšFÎE32 SöÎ733##'37'7¼&&tPš8ÎA'F+ SöÎ733##'37'7¼&&^:šNÎA'C& QöÎ733##'37'7¼&&fBšFÎA)* QöÎ733##'37'7¼&&fBšFÎA)A$ QöÎ733##'37'7¼&&fBšFÎA)5RöÎ733##'37'7¼&&fBšFÎA(6DöÎ733##'37'7¼&&fBšFÎN', PöÎ733##'37'7¾%%iBšFÎA*+PöÎ733##'37'7¼&&tPš9ÎA*6IöÎ733##'37'7¼&&fBšGÎA11<öÎ733##'37'7¼&&uQš7ÎE:]5 <öÎ733##'37'7¼&&^;šNÎE:Z1 <öÎ733##'37'7¼&&fBšFÎE:> <öÎ733##'37'7¼&&fBšFÎE:O& <öÎ733##'37'7¼&&fBšFÎE:G#<öÎ733##'37'7¼&&fBšFÎE:L'6öÎ733##'37'7¼&&fBšFÎN77 7öÎ7##5337'7ö%{BšF€6—N  <öÎ733##'37'7¼&&uQš7ÎE:I# 6öÎ733##'37'7¼&&fBšFÎDA= ÿëÐÎ 73353#5##'37'7’`?t$É`eãl_zI ÿëÐÎ 73353#5##'37'7–M0|;É`eãl_}J ÿëÐÎ 73353#5##'37'7–L/|<É`eãl_b/ ÿëÐÎ 73353#5##'37'7‘K+t8É`eãl_zG ÿëÐÎ 73353#5##'37'7‘K+t8É`eãl_l9 ÿëÐÎ 73353#5##'37'7’L+t8É`eãl_j7 ÿëÐÎ 73353#5##'37'7‘K+t8É`eãl_R ÿëÐÎ 73353#5##'37'7›U68É`eãl_\) ÿëÐÎ 73353#5##'37'7’X7t,É`eãl_l2 ÿëÐÎ 73353#5##'37'7“M+t8É`eãl_b' &ÐÎ 73353#5##'37'7’`@u$ËEH¨MDb9 &ÐÎ 73#5##533'37'7¼s2}:ΨMDœE1&ÐÎ 73#5##53337'7¼v5}7ΨMDœE&ÐÎ 73353#5##'37'7’L,u8ËEH¨MDM#&ÐÎ 73353#5##'37'7’L1y7ËKN¨G>J$&ÐÎ 73353#5##'37'7’L1y7ËKN¨G>J$&ÐÎ 73353#5##'37'7’L1y7ËX[¨;2:+ÐÎ 73353#5##'37'7—Q5}7ËEH£G;3 +ÐÎ 73353#5##'37'7’X7s+ËEH£G;F( $ÐÎ 73353#5##'37'7’L1y7ËWZª=6BHÐÎ 73353#5##'37'7‘_?s#Ì:<†74K.HÐÎ 73353#5##'37'7–M.y:Ì:<†74I/HÐÎ 73353#5##'37'7–P3{7Ì:<22+IÐÎ 73353#5##'37'7‘K1y7Ì@B…0,9IÐÎ 73353#5##'37'7‘K1y7ÌEG…+'6!HÐÎ 73353#5##'37'7‘K1y7Ì:<†749#?ÐÎ 73353#5##'37'7‘K1y7ÌLNŽ--+HÐÎ 73353#5##'37'7šT8€7ÌEG…+'& IÐÎ 73353#5##'37'7‘W9v,Ë9<…628  BÐÎ 73353#5##'37'7‘K1z8ËKNŒ+(1 SÐÎ 73353#5##'37'7‘_Au#Ì:<{,,C*SÐÎ 73353#5##'37'7–M0{:Ì:<{,,A&RÐÎ 73353#5##'37'7–P4|7Ì:<|---RÐÎ 73353#5##'37'7‘K1y7Ì?A|((@%RÐÎ 73353#5##'37'7‘K1y7Ì?A|((2RÐÎ 73353#5##'37'7‘K1y7Ì?A|((5CÐÎ 73353#5##'37'7‘K1y7ÌLNˆ'', OÐÎ 73353#5##'37'7šT77ÌEG%%2RÐÎ 73353#5##'37'7‘W9v,Ë9<|--1 IÐÎ 73353#5##'37'7‘K0y8ËBE…../ <ÐÎ 73353#5##'37'7‘_Bv#Ì:<’C9L-<ÐÎ 73353#5##'37'7–M1|:Ì@B’=3K/<ÐÎ 73353#5##'37'7–P4|7Ì@B’=21 =ÐÎ 73353#5##'37'7‘K1y7Ì?A‘=3@&=ÐÎ 73353#5##'37'7‘K1y7ÌKM‘1'9$<ÐÎ 73353#5##'37'7‘K1y7Ì@B’=3:$ 6ÐÎ 73353#5##'37'7‘K1y7ÌLN˜704 =ÐÎ 73353#5##'37'7šT8€7ÌFH‘5++ =ÐÎ 73353#5##'37'7‘W9v,Ë9<‘B8>  6ÐÎ 73353#5##'37'7‘K1z8ËLO˜6,1 ÿëÐÎ 73#'37'7¼tP™8ÎãIÿëÐÎ 73#''753¼™NÎãLIGÿëÐÎ 73#'37'7¼^:™NÎãl*ÿëÐÎ 73#''753¼™EÎãHGEÿëÐÎ 73#''753¼™EÎãH86ÿëÐÎ 73#''753¼™EÎãC!ÿëÑÎ 73#''753½šEÎãF-+ÿëÐÎ 73#''753¼™8ÎãP42ÿëÐÎ 73#''753¼™EÎãH,*$ÐÎ 73#'37'7¼tPš8Ϊj7 $ÐÎ 73#'37'7¼_;šMΪj6 $ÐÎ 73#'37'7¼fC›FΪI $ÐÎ 73#'37'7¼fBšFΪ_+ $ÐÎ 73#'37'7¼fBšFΪT$ $ÐÎ 73#'37'7¼fC›FΪY+ $ÐÎ 73#'37'7¼fBšFΪ> $ÑÎ 73#'37'7½gEFΪF $ÐÎ 73#'37'7¼uQš7ΪV' $ÐÎ 73#'37'7¼fC›FΪH LÐÎ 73#'37'7¼tPš8΂M0 LÐÎ 73#'37'7¼^<›N΂N/ LÐÎ 73#'37'7¼fC›F΂+ LÐÎ 73#'37'7¼fC›F΂?& KÐÎ 73#'37'7¼fC›F΃8 KÐÎ 73#'37'7¼fC›F΃<%>ÐÎ 73#'37'7¼fC›F΋* KÐÎ 73#'37'7¼fEF΃+ MÐÎ 73#'37'7¼uQš7Î8  CÐÎ 73#'37'7¼fC›F΋2 SÐÎ 73#'37'7¼tQ›8Î{F+ SÐÎ 73#'37'7¼^;›NÎ{C% QÐÎ 73#'37'7¼fC›FÎ}* QÐÎ 73#'37'7¼fC›FÎ}A$ QÐÎ 73#'37'7¼fC›FÎ}5RÐÎ 73#'37'7¼fC›FÎ|6 DÐÎ 73#'37'7¼fC›FΈ, PÑÎ 73#'37'7¾iEFÎ~+ PÐÎ 73#'37'7¼tRœ9Î~6IÐÎ 73#'37'7¼fDœGÎ…1<ÐÎ 73#'37'7¼uQš7Î’]5 <ÐÎ 73#'37'7¼^<›NÎ’Z1 <ÐÎ 73#'37'7¼fC›FÎ’> <ÐÎ 73#'37'7¼fBšFÎ’O& <ÐÎ 73#'37'7¼fBšFÎ’G#<ÐÎ 73#'37'7¼fC›FÎ’L'6ÐÎ 73#'37'7¼fC›FΘ7 :ÑÎ 73#'37'7¾hEFΔ= <ÐÎ 73#'37'7¼uR›7Î’I# 6ÐÎ 73#'37'7¼fC›FΘ=  ëu 733533#53J YÖ5uXXX ëm 733533#53jEÖUmPPP ëU 733533#53O::Ö:U888 ëU 733533#53O::Ö:U888 ëR 733533#53O::Ö:R555 ëV 733533#53O::Ö:V999 ë= 733533#53N<9Ö9=  ëM 733533#53O::Ö:M000 ëg 733533#53J YÖ5gJJJ ëK 7#5353353ëÖ::....Gë 733533#53N!TÖ9555Gë 733533#53nBÖY333Aës 733533#53M=9Ö8sHëƒ 733533#53M=9Ö8ƒ(((Dë{ 733533#53M=9Ö8{$$$Dëy 733533#53M=9Ö8y""":ëa 733533#53M=9Ö8aAë| 733533#53M=9Ö8|(((Gë} 733533#53N!TÖ9}###Aën 733533#53M=9Ö8n\ë˜ 733533#53N!TÖ9˜)))\ë˜ 7#5353353ëÖYo))))Uë… 733533#53M=9Ö8…ZëŒ 733533#53M=9Ö8ŒUë… 733533#53M=9Ö8…Uë… 733533#53M=9Ö8…Gëm 733533#53M=9Ö8mSë… 733533#53M=9Ö8…Zë† 733533#53N!TÖ9†Sëx 733533#53M=9Ö8xcëœ 733533#53N!TÖ9œ&&&cëœ 733533#53nBÖYœ&&&Zë… 733533#53M=9Ö8…ZëŽ 733533#53M=9Ö8Ž!!!Zë‰ 733533#53M=9Ö8‰Xë… 733533#53M=9Ö8…Iëm 733533#53M=9Ö8mZë„ 733533#53M=9Ö8„Zë‡ 733533#53N!TÖ9‡Xë} 733533#53M=9Ö8}Wë˜ 733533#53N!TÖ9˜...Wë— 733533#53nBÖY—---Që… 733533#53M=9Ö8…!!!XëŒ 733533#53M=9Ö8Œ!!!Rë„ 733533#53M=9Ö8„Rë„ 733533#53M=9Ö8„Gëm 733533#53M=9Ö8mSë… 733533#53M=9Ö8…Rë… 733533#53N!TÖ9… Lëx 733533#53M=9Ö8xÿëëf7##5#5ëbafhhÿëëY7##5#5ëbaY[[ÿëë\7##5#5ëba\^^ÿëëY7##5#5ëbaY[[ÿëëY7##5#5ëbaY[[ÿëëO7##5#5ëbaOQQ ëv7##5#5ë_dvCC ëf7##5#5ë_df33 ëk7##5#5ë_dk88 ë_7##5#5ë_d_,,ëV7#53##ydÖ_C(Kë}7##5#5ëba}Fër7#53##vaÖb^?ëu7##5#5ëbau##>ëm7##5#5ëbam4ëb7##5#5ëbab<ëm7##5#5ëbam:ëi7##5#5ëbaiIë}7##5#5ëba}!!Eëp7#53##vaÖb\Eëu7##5#5ëbauEëo7##5#5ëbao:ëe7##5#5ëbaeDëm7##5#5ëaamBëh7##5#5ë``hIë}7##5#5ëba}!!Iëp7#53##vaÖb\Iëp7##5#5ëbapIëp7##5#5ëbap<ë`7##5#5ëba`Gëm7##5#5ëbam3ëf7##5#5ëbaf Ië7##5#5ëba##Bër7#53##vaÖb_Bëv7#53##vaÖbc!Bëo7#53##vaÖb]7ë_7#53##vaÖbMBëo7#53##vaÖb]Fëo7#53##vaÖb]ÿëÐÎ753#5#5''7#¼72AšBBŒãD \ÿëÐÎ753#5#5''7#¼70C¡F7—ã9 KÿëÐÎ753#5#5''7#¼70Cš?;“ã= QÿëÐÎ753#5#5''7#¼70Cš?4šã6 KÿëÐÎ753#5#5''7#¼61Cš?-¡ã/ :ÿëÐÎ753#5#5''7#¼70C¢H7—ã9 KÿëÐÎ73#5#53''7#¼66fDš?Îã0  A#ÐÎ753#5#5''7#¼72AšBWw«! ?#ÐÎ753#5#5''7#¼51Dš?O«  /#ÐÎ753#5#5''7#¼51Dš?O«  /#ÐÎ753#5#5''7#¼51Dš?O«  /ÐÎ753#5#5''7#¼52Cš@BŒ³)#ÐÎ753#5#5''7#¼52CœBO«  /ÐÎ753#5#5''7#¼52C›AG‡³ 2KÐÎ753#5#5''7#¼55@šCkcƒ &BÐÎ753#5#5''7#¼51D E_oŒ  !DÐÎ753#5#5''7#¼51Dš?djŠ "DÐÎ753#5#5''7#¼51Dš?`nŠ   =ÐÎ753#5#5''7#¼51Dš?Uy‘ AÐÎ753#5#5''7#¼52C¢H]q  =ÐÎ753#5#5''7#¼51Dš?Ww‘  DÐÎ753#5#5''7#¼54AšBlbŠ0AÐÎ753#5#5''7#¼51D¡F`n   @ÐÎ753#5#5''7#¼51D›@eiŽ %@ÐÎ753#5#5''7#¼51D›@eiŽ #=ÐÎ753#5#5'7#¼51Dš?Xv‘  AÑÎ753#5#5''7#½62C£I_o BÐÎ753#5#5''7#¼51D›?\rŒ  =ÐÎ753#5#5''7#¼54A›Chf‘ 3<ÐÎ753#5#5''7#¼51D Eam‘,<ÐÎ753#5#5''7#¼51Dš?ck‘-<ÐÎ753#5#5''7#¼51Dš?\r‘  *7ÐÎ753#5#5''7#¼51Dš?Q}— !=ÐÎ753#5#5''7#¼52C¢H^p‘(7ÐÎ753#5#5''7#¼51Dš?Yu—%LÐÎ753#5#5''7#¼54AšBlb  *EÐÎ753#5#5''7#¼51D E`n‰  !CÐÎ753#5#5''7#¼51D›@ei‹ #EÐÎ753#5#5''7#¼51D E`n‰  !<ÐÎ753#5#5#'7#¼51D›@Xv‘ BÐÎ753#5#5''7#¼52C¢H_oŒ  AÐÎ753#5#5''7#¼51D›@[s ÿëÐÎ 73#'3#5#53''7#¼'&&P3|2ÎãÞÑBXÿëÐÎ 73#'3#5#53''7#¼'&&P3|2ÎãÞÑ/ AÿëÐÎ 73#'3#5#53''7#¼'&&P3|2ÎãÞÑ6  GÿëÐÎ 73#'3#5#53''7#¼'&&P3|2ÎãÞÑ6  GÿëÐÎ 73#'3#5#53''7#¼'&&P3|2ÎãÞÖ+:ÿëÐÎ 73#'3#5#53''7#¼ ''V46ÎãÞÖ4 @ÿëÐÎ 73#'3#5#53''7#¼&''Q3|2ÎãÞÖ/ C#ÐÎ 73#'3#5#53''7#¼'&&P3{1Ϋ¦ž!  4#ÐÎ 73#'3#5#53''7#¼'&&P3{1Ϋ¦ž ##ÐÎ 73#'3#5#53''7#¼'&&P3{1Ϋ¦ž  -ÐÎ 73#'3#5#53''7#¼'&&P3{1β­¤(ÐÎ 73#'3#5#53''7#¼'&&M6{.β­¤&#ÐÎ 73#'3#5#53''7#¼!&&T55Ϋ¦ž%ÐÎ 73#'3#5#53''7#¼'&&O4{0β­¤'IÐÎ 73#'3#5#53''7#¼'&&O4{0Î…€|)BÐÎ 73#'3#5#53''7#¼'&&O4{0ÎŒ‡ƒ!BÐÎ 73#'3#5#53''7#¼'&&O4{0ÎŒ‡ƒ (BÐÎ 73#'3#5#53''7#¼'&&O4{0ÎŒ‡ƒ !=ÐÎ 73#'3#5#53''7#¼'&&O4{0ΑŒŒBÐÎ 73#'3#5#53''7#½"&&U4€5ÎŒ‡„!=ÐÎ 73#'3#5#53''7#¼&''P4{0ΑŒ‰ #DÐÎ 73#'3#5#53''7#¼&''P4{0Ί…‚(BÐÎ 73#'3#5#53''7#¼&''P4z/ÎŒ‡„"HÐÎ 73#'3#5#53''7#¼&&&P4{0Ά $HÐÎ 73#'3#5#53''7#¼&&&P4{0Ά <ÐÎ 73#'3#5#53''7#¼&''Q4{1Î’ŠBÐÎ 73#'3#5#53''7#¼!&&U46ÎŒ‡„ !BÐÎ 73#'3#5#53''7#¼&''P4{0ÎŒ‡„  <ÐÎ 73#'3#5#53''7#¼'&&P3{1ΑŒ‚ 4<ÐÎ 73#'3#5#53''7#¼'&&P3{1ΑŒ‚ +<ÐÎ 73#'3#5#53''7#¼'&&P3{1ΑŒ‚  2<ÐÎ 73#'3#5#53''7#¼'&&P3{1ΑŒ‚ *6ÐÎ 73#'3#5#53''7#¼'&&P3{1Θ“Œ <ÐÎ 73#'3#5#53''7#¼!&&T56ΑŒ„ *6ÐÎ 73#'3#5#53''7#¼'&&P3{1Θ“Œ *LÐÎ 73#'3#5#53''7#¼&&&P4{0΂}} (EÐÎ 73#'3#5#53''7#¼'&&P3{1Ή„„ !EÐÎ 73#'3#5#53''7#¼'&&P3{1Ή„‚  'EÐÎ 73#'3#5#53''7#¼'&&P3{1Ή„„ $=ÐÎ 73#'3#5#53''7#¼'&&P4{1ΑŒŒ  DÐÎ 73#'3#5#53''7#¼!&&T66Ί…  BÐÎ 73#'3#5#53''7#¼'&&P3{1ÎŒ‡„ ÿëÐÎ 73#''7#¼fD EÎãk [ÿëÐÎ 73#''7#¼fD EÎãZ KÿëÐÎ 73#''7#¼fD EÎã_ OÿëÐÎ 73#''7#¼fD EÎãY IÿëÐÎ 73#''7#¼fDš?ÎãI @ÿëÑÎ 73#''7#½gD£HÎãZ JÿëÑÎ 73#''7#½gDš?ÎãO ?#ÐÎ 73#''7#¼fDŸDΫ? 7#ÐÎ 73#'#5'¼ EDΫF('#ÐÎ 73#'#5'¼ EDΫH*(#ÐÎ 73#'#5'¼ EDΫH*(ÐÎ 73#'#5'¼ EDα> #ÑÎ 73#'#5'½EDΫF('ÐÎ 73#'#5'¼ EDαA$#NÐÎ 73#''7#¼gC E΀!"LÐÎ 73#''7#¼gC E΂ GÐÎ 73#''7#¼gC E· GÐÎ 73#''7#¼gC E· ?ÐÎ 73#''7#¼gC EÎ GÐÎ 73#''7#¼gC E· ?ÐÎ 73#''7#¼fD EÎGÐÎ 73#''7#¼gC E·*+GÐÎ 73#''7#¼gC E· GÐÎ 73#''7#¼gC E· GÐÎ 73#''7#¼gC E·?ÐÎ 73#''7#¼fD EÎGÐÎ 73#''7#¼gC E·?ÐÎ 73#''7#¼fD EÎ=ÐÎ 73#''7#¼gC EΑ42=ÐÎ 73#''7#¼gC EΑ$ "=ÐÎ 73#''7#¼gC EΑ('=ÐÎ 73#''7#¼gC EΑ% #8ÐÎ 73#''7#¼fD EΖ>ÐÎ 73#''7#¼gC EÎ$%9ÐÎ 73#''7#¼fD EΕ!PÐÎ 73#''7#¼gC EÎ~  LÐÎ 73#''7#¼gC E΂KÐÎ 73#''7#¼gC E΃KÐÎ 73#''7#¼gC E΃AÐÎ 73#''7#¼fD EÎ IÐÎ 73#''7#¼fD EÎ…CÐÎ 73#''7#¼fD E΋ÿíëf 7##5##5#5ë2K1fff__ÿíëY 7#53##5##F1Ö2KFYYRÿíë\ 7##5##5#5ë2K1\\\UUÿíëY 7#53##5##F1Ö2KFYYRÿíëO 7#53##5##F1Ö2K<OOHÿíëY 7#53##5##F1Ö2KFYYRÿíëO 7#53##5##F1Ö2K<OOH!ëv 7#53##5##U@Ö2;cBB>!ëf 7#53##5##U@Ö2;S22.!ëk 7#53##5##U@Ö2;X773!ë_ 7#53##5##U@Ö2;L++'ëS 7#53##5##U@Ö2;@$$ë_ 7#53##5##U@Ö2;L00+ëV 7#53##5##U@Ö:3C++&Jë} 7#53##5##F1Ö2Kj Gër 7#53##5##F1Ö2K^Jëx 7#53##5##F1Ö2Ke@ëm 7#53##5##F1Ö2KZ8ëb 7#53##5##F1Ö2KO=ëp 7#53##5##F1Ö2K\=ëi 7#53##5##F1Ö2KVLë} 7#53##5##F1Ö2KjBëp 7#53##5##F1Ö2K\Hëu 7#53##5##F1Ö2KbCëo 7#53##5##F1Ö2K]:ëc 7#53##5##F1Ö2KR>ëo 7#53##5##F1Ö2K]Bëi 7#53##5##F1Ö2KW=ë} 7#53##5##F1Ö2Kj---=ëp 7#53##5##F1Ö2K\=ëp 7#53##5##F1Ö2K\=ëp 7#53##5##F1Ö2K\/ë` 7#53##5##F1Ö2KM=ëp 7#53##5##F1Ö2K\4ëf 7#53##5##F1Ö2KSHë 7#53##5##F1Ö2Kl$$$Bër 7#53##5##F1Ö2K`Bër 7#53##5##F1Ö2K`Bëo 7#53##5##F1Ö2K]8ë_ 7#53##5##F1Ö2KLBëo 7#53##5##F1Ö2K]Fëo 7#53##5##F1Ö2K] ë7#5ëÖ ë7#5ëÖ ë7#5ëÖ ë7#5ëÖ ë7#5ëÖ ë7#5ëÖ ë7#5ëÖUëh7#5ëÖhIë\7#5ëÖ\Gë[7#5ëÖ[<ëO7#5ëÖODëW7#5ëÖW@ëS7#5ëÖSfëy7#5ëÖyXëk7#5ëÖkUëh7#5ëÖhUëh7#5ëÖhLë_7#5ëÖ_Uëh7#5ëÖhSëf7#5ëÖfgëz7#5ëÖzUëh7#5ëÖhZëm7#5ëÖmYël7#5ëÖlOëa7#5ëÖaVëh7#5ëÖhXëj7#5ëÖjcëv7#5ëÖvVëh7#5ëÖhYël7#5ëÖlVëh7#5ëÖhJë\7#5ëÖ\Uëh7#5ëÖhQëd7#5ëÖdfëy7#5ëÖy^ër7#5ëÖraës7#5ëÖs_ëq7#5ëÖqLë^7#5ëÖ^]ëo7#5ëÖoZël7#5ëÖlÿëÐÎ73#''¼ ÎãF ÿëÐÎ73#''¼ ÎãF ÿëÐÎ73#''¼ ÎãF ÿëÐÎ73#''¼ ÎãF ÿëÐÎ73#''¼ ÎãN ÿëÐÎ73#''¼ ÎãG #ÐÎ73#''¼œΫJ #ÐÎ73#''¼œΫ: #ÐÎ73#''¼œΫ> #ÐÎ73#''¼œΫ7 #ÐÎ73#''¼œΫ) #ÐÎ73#''¼œΫ@ #ÐÎ73#''¼œΫ7 NÐÎ73#''¼ ΀+NÐÎ73#''¼ ΀NÐÎ73#''¼ ΀ NÐÎ73#''¼ ΀  AÐÎ73#''¼œΊ MÐÎ73#''¼œÎ  DÐÎ73#''¼œΊMÐÎ73#''¼œÎ. MÐÎ73#''¼œÎ& MÐÎ73#''¼œÎ& MÐÎ73#''¼œÎ$ =ÐÎ73#''¼œΑ% MÐÎ73#''¼ žÎ( EÐÎ73#''¼œΉ"=ÐÎ73#''¼œΑ7 =ÐÎ73#''¼œΑ0 =ÐÎ73#''¼œΑ2 =ÐÎ73#''¼œΑ/ 6ÐÎ73#''¼œΘ& =ÐÎ73#''¼œΑ. 6ÐÎ73#''¼œΘ- RÐÎ73#''¼œÎ|( RÐÎ73#''¼œÎ|  SÐÎ73#''¼œÎ{' SÐÎ73#''¼œÎ{ EÐÎ73#''¼œΉRÐÎ73#''¼œÎ| MÐÎ73#''¼œÎ¼ÿëÐÎ73#¼Îã¼ÿëÐÎ73#¼Îã½ÿëÑÎ73#½Îã¼%ÐÎ73#¼Ω¼%ÐÎ73#¼Ω½%ÑÎ73#½Ω¼PÐÎ73#¼Î~¼PÐÎ73#¼Î~¼PÐÎ73#¼Î~¼BÐÎ73#¼ÎŒ¼BÐÎ73#¼ÎŒ¼BÐÎ73#¼ÎŒ¼UÐÎ73#¼Îy¼UÐÎ73#¼Îy½UÑÎ73#½Îy.ÿëÐ@73#5#.¢Ž@UB.ÿëÐ@73#5#.¢Ž@UB.ÿëÐ@73#5#.¢Ž@UB.ÿëÎ=73#5#. Œ=R?.ÿëÐ<73#5#.¢Ž '7#5327#7#5"&54632'"32654&Ä=b#,ºr9  >9<C  )ÿçßQ '7#5327#7#5"&54632'"32654&Ä;`",¶p8  QMIQ  *%ÿçßQ '7#5327#7#5"&54632'"32654&Ä>a#,ºs9  QMIQ  *%ÿçßQ '7#5327#7#5"&54632'"32654&Ä>a#,ºs9  QMIQ  *.ÿçßQ '7#5327#7#5"&54632'"32654&Å:]!)±n7 QN JQ  *)ÿçßQ '7#5327#7#5"&54632'"32654&Ä=^")¶r9  Q FIQ  *%ÿçßQ '7#5327#7#5"&54632'"32654&Ä?`"*ºu:  Q FIQ  *%ÿçßQ '7#5327#7#5"&54632'"32654&Ä?`"*ºu:Q FIQ  *5ÿïÕF7#3#5І‹ F1W2ÿïÕF7#3#5Њ£F1W1ÿïÕF7#3#5Ћ¤F1W1ÿïÑ?7#3#5͈Œ ?*P5ÿïÕ?7#3#5І‹ ?*P5ÿïÕ?7#3#5ЇŒ ?*P2ÿïÕ<7#3#5Њ£<'M1ÿïÑ67#3#5͈Œ 6!G5ÿïÕ67#3#5І‹ 6!G5ÿïÕ67#3#5І‹ 6!G2ÿïÕ67#3#5Њ£6!G5ÿíÕ67#3#5І‹ 6#I5ÿìÕ67#3#5ЇŒ 6$J2ÿìÕ67#3#5Њ£6$J5ÿìÕF7#3#5І‹ F4Z2ÿìÕF7#3#5Њ£F4Z2ÿìÕF7#3#5Њ£F4Z1ÿíÑB7#3#5͈Œ B/U5ÿìÕ@7#3#5І‹ @.T5ÿìÕ@7#3#5І‹ @.T2ÿìÕ@7#3#5Њ£@.T5ÿíÕL 73#3#535#6š‡Œ ‡†L7;5ÿíÕL 73#3#535#6š‡Œ ‡†L7;1ÿíÕL 73#3#535#2ž‹¤‹ŠL7;1ÿíÑL 73#3#535#2œ‰Œ ‰ˆL7;5ÿíÕG 73#3#535#6š‡Œ ‡†G595ÿíÕD 73#3#535#6š‡Œ ‡†D461ÿíÕB 73#3#535#2ž‹¤‹ŠB35 1ÿíÑ< 73#3#535#2œ‰Œ ‰ˆLaN5=)ÿëÐH73#5#'3#67535#†J6]S@%(03??H]J49%ÿëÐE73#5#'3#67535#…K7_TA%*15A@EZH48)ÿëÐ@73#5#'3#27535#†J6]S@$)03??@UC/7 ,ÿëÔ;73#5#'3#67535#ŠJ6]R?$'03?>;P>-3 )ÿëÐ;73#5#'3#67535#†J6]S@%(03??;P>-3 %ÿëÐ;73#5#'3#67535#…K7_TA%(14A@;P>-3 %ÿëÐ;73#5#'3#67535#…K7_TA%(14A@;P=.2 )ÿëÐB73#5#'3#27535#†J6]S@$)03??BWD17 %ÿëÐ?73#5#'3#67535#†J6`VC%(14CB?TB15 %ÿëÐ;73#5#'3#67535#†J6`TA%)14A@;P>.2 )ÿëÐN73#5#'3#27535#†J6]S@%(03??NcP8<%ÿëÐN73#5#'3#27535#†J6`UB%)14BANcP8<#ÿëÐN73#5#'3#27535#…K7`UC&*25CANcP8<,ÿìÔO73#5#'3#67535#ŠJ6]R?$)04?>OcP8=)ÿëÐJ73#5#'3#67535#†J6]S@%(03??J_M5:%ÿëÐI73#5#'3#67535#…K7_TA%*15A@I^L79%ÿëÐH73#5#'3#67535#…K7_TA%(14A@H]J49)ÿíÐL 73#67535#7#5##535#)M:"*-99§%%%L7;]]F3%ÿíÐL 73#67535#7#5##535#&M:!+-:9ª&&&L7;]]F3%ÿíÐL 73#67535#7#5##535#&M:!+-:9ª&&&L7;]]F3+ÿíÔL 73#67535#7#5##535#,L9!+-98¨&&&L7;]]F3)ÿíÐH 7#5##535#'3#67535#Ð%%%nM:#+-99HYYC039%ÿíÐG 7#5##535#'3#67535#Ð'''oN;#,.;:GXXB048%ÿíÐ? 7#5##535#'3#27535#Ð'''oN;#,.;:?PP:).5 ,ÿîÔ; 73#27535#7#5##535#,N:"*-::¨&&&;.0 LL6$)ÿíÐ; 7#5##535#'3#27535#Ð%%%nM:#+-99;LL6$.1 &ÿíÐ; 7#5##535#'3#27535#Ð'''nM:"+.:9;LL6$.1 &ÿíÐ; 7#5##535#'3#27535#Ð'''nM:"+.:9;LL6$.1 )ÿíÐA 7#5##535#'3#27535#Ð'''lM:!*,99ARR<*/6 %ÿíÐA 7#5##535#'3#27535#Ð'''oN;"+.;:ARR<*/6 %ÿíÐ> 7#5##535#'3#27535#Ð'''oN;"+.;:>OO9(,6 )ÿíÐN 73#67535#7#5##535#)M:"*-99§%%%N8<__H5#ÿíÐN 73#27535#7#5##535#%O=!$,0=;«'''N8<__H5#ÿíÐN 73#27535#7#5##535#%O= $,/=;«'''N8<__H5+ÿíÔO 73#67535#7#5##535#+N:"+-::©&&&O8=``I6)ÿîÐI 73#27535#7#5##535#)M:!+,99§%%%I39ZZD3%ÿîÐK 73#67535#7#5##535#%O;#,.;;«&&&K4:\\F4%ÿîÐH 73#27535#7#5##535#%O;$,.;;«&&&H29YYC2)ÿíÐL 73#67535#53#5##535#)M:"*-99“&&&L7; \\(%ÿíÐL 753#5##535#'3#67535#¼'''oM:!+-:9.]](F7;%ÿíÐL 73#67535#53#5##535#&M:!+-:9–'''L7; ]](+ÿðÔL 73#67535#53#5##535#,L9!+-98”&&&L5:ZZ*)ÿíÐH 753#5##535#'3#67535#¼&&&mM:"*-99,YY'C58%ÿíÐG 753#5##535#'3#67535#¼'''oN;#,.;:,XX'B48%ÿíÐ? 753#5##535#'3#27535#¼'''oN;#,.;:+PP&:.5 +ÿîÔ< 73#27535#53#5##535#,L9"+-98”&&&<.1 KK"&ÿíÐ: 753#5##535#'3#67535#¼(((mM:"*.:9&KK!5,3&ÿíÐ9 753#5##535#'3#67535#¼(((mM:"+-:9%JJ 4,1 &ÿíÐ9 753#5##535#'3#67535#¼(((mM:"+-:9%JJ 4,1 &ÿìÐA 753#5##535#'3#67535#¼(((mM:"+-:9*RR%<06 %ÿìÐ@ 753#5##535#'3#67535#¼(((mM;",-;9)QQ$;05 %ÿìÐ= 753#5##535#'3#67535#¼(((mM;",-;9)NN$8/4 )ÿñÐN 73#67535#53#5##535#)M:"*,99“&&&N5;\\+%ÿìÐN 73#27535#53#5##535#&N;#+.;:–&&&N5@^^+%ÿìÐN 73#27535#53#5##535#&N;#+.;:–&&&N5@^^++ÿíÔO 73#67535#53#5##535#,N;"*-;:”&&&O7> ``,)ÿîÐJ 753#5##5335#'3#27535#¼&&&mM:!+,990[[++2:%ÿîÐJ 753#5##5335#'3#27535#¼'''oN;#+.;:0[[++2:%ÿîÐH 753#5##5335#'3#27535#¼'''oN;#+.;:.YY)+29)ÿììM 7'6753&'3#67535#· " )* !–R?!*,>>*)O6<&ÿìéM 7'6753&'3#67535#³ ! )* !”Q>!*,>=))O6<&ÿìéM 7'6753&'3#67535#³ " (, !”Q>!),>=*(O6<&ÿìãM 7'6753&'3#67535#® ! (+ Q>'*>=))O6<)ÿìéI 7'6753&'3#67535#³ '+ !’R? *+>>))K5:%ÿëèG 73#67535#'6753&%S?!*,??Œ  (, !G49*(%ÿëéE 7'6753&'3#67535#± ! )- !–T@!),@@*( J47&ÿìé@ 7'6753&'3#67535#± ), "“R? )+?>#" B0 2 )ÿìé@ 7'6753&'3#27535#´ !** !‘Q? )+>=%$ A/0 %ÿëé> 7'6753&'3#67535#´ # ,* !•S@!),@?%$ A/0 %ÿìé= 7'6753&'3#27535#´ # -* !•R? )+?>$$ ?. 0 )ÿìéB 7'6753&'3#27535#´ # ,* !‘P>'*=<%$ F/5 %ÿìéB 7'6753&'3#27535#´ % -* !•R? (+?>%$ E/4 %ÿìé@ 7'6753&'3#27535#´ # ,* !•R? ),?>%$ C/3 )ÿììP 7'6753&'3#67535#· " )* !–Q> ),==*)S9=%ÿìéP 7'6753&'3#67535#³ # ,* !–S? )+??))S9=%ÿìéP 7'6753&'3#67535#³ $ +* !–S? )+??))S9=&ÿìãN 73#67535#'6753&'Q> (+>=‡  '* N7=!)))ÿììL 73#67535#'6753&)Q>(+==Ž $ ,* !L5=*)%ÿìéL 73#67535#'6753&%S? ),??Ž " +* !L5=))%ÿìéI 73#67535#'6753&%S? ),??Ž # ,* !I5:)))ÿíÔL 73#67535##3#53#)M:"*-99§6:NJ6L5=_%ÿíÔL 73#67535##3#53#%P<"*-;;«8RM9L5=_)ÿîÔG 73#27535##3#53#)M:"*,99§9=PL9G19Y%ÿîÔG 73#27535##3#53#%P<"*-;;«8RN:@03 R+ÿîÙ; 73#67535##3#53#,J7"+-76¨9>RM9;.1 M )ÿîÔ; 73#27535##3#53#)M:"*,99§9=PL9;,2 M %ÿîÔ> 73#27535##3#53#%P<"*-;;«:>RN:>.3 P%ÿîÔ: 73#27535##3#53#&N;"+-;:ª:>QM::,2  L )ÿîÔA 73#27535##3#53#)M:"*-99§9=PL9A05 S%ÿîÔA 73#27535##3#53#&N; "+/;:ª:>RN:A04 S%ÿîÔ= 73#27535##3#53#&N; "+/;:ª:>RN:=-3  O)ÿíÔN 73#67535##3#53#)M:"*-99§6:NJ6N5?a$ÿíÔN 73#67535##3#53#&N< #,/<:ª6:NJ6N5?a$ÿíÔN 73#67535##3#53#&N< #,/<:ª6:NJ6N5?a+ÿìÙO 73#27535##3#53#+K7!+-77©9>RM9O6@b)ÿíÔL 73#67535##3#53#)L9#+-88§6:NJ6L5=_%ÿíÔL 73#67535##3#53#&N; #,/;:ª8 #53#=#J›r OO%%5ÿïÐ> #53#=#J›r OO%%5ÿïÐ> #53#=#J›r OO%%2ÿïÎ; 7#5##535#Îttt;LL4!5ÿïÐ6 7#5##535#Ðrrr6GG/2ÿïÎ7 7#5##535#Îttt7HH2 5ÿïÐ7 7#5##535#Ðsss7HH2 5ÿïÐ7 7#5##535#Ðsss7HH2 5ÿïÐ7 7#5##535#Ðsss7HH2 5ÿïÐ7 7#5##535#Ðsss7HH2 5ÿïÐF 7#5##535#ÐsssFWW?+2ÿïÐF 7#5##535#ÐvvvFWW?+5ÿïÐF 7#5##535#ÐsssFWW?+2ÿïÎF 7#5##535#ÎtttFWW?,5ÿïÐ? 7#5##535#Ðsss?PP8%5ÿïÐ? 7#5##535#Ðsss?PP8%5ÿïÐ? 7#5##535#Ðsss?PP8%5ÿîÐH 73353#5##735#5rrrrHZ5ÿîÐH 73353#5##735#5rrrrHZ5ÿîÐG 73353#5##735#5rrrrGY1ÿîÎH 73353#5##735#1uuuuHZ5ÿîÐC 73353#5##735#5rrrrCU5ÿîÐB 73353#5##735#5rrrrBT5ÿîÐ@ 73353#5##735#5rrrr@R1ÿîÎB 73353#5##735#1uuuuBT5ÿîÐ9 73353#5##735#5rrrr9K5ÿîÐ9 73353#5##735#5rrrr9K5ÿîÐ8 73353#5##735#5rrrr8J5ÿîÐ9 73353#5##735#5rrrr9K5ÿîÐ9 73353#5##735#5rrrr9K5ÿîÐ8 73353#5##735#5rrrr8J5ÿîÐG 73353#5##735#5rrrrGY5ÿîÐG 73353#5##735#5rrrrGY5ÿîÐG 73353#5##735#5rrrrGY1ÿîÎH 73353#5##735#1uuuuHZ5ÿîÐD 73353#5##735#5rrrrDV5ÿîÐD 73353#5##735#5rrrrDV5ÿîÐD 73353#5##735#5rrrrDV)ÿèìH 73353#5##735#'6753&),,,,z " )* !HZ++%ÿèìH 73353#5##735#'6753&%////~ $ +* !HZ++%ÿèìH 73353#5##735#'6753&%////~ $ +* !HZ++-ÿèìL 73353#5##735#'6753&-,,,,v  '* !L^++)ÿèéH 73353#5##735#'6753&),,,,v  &+ !HZ++.ÿêéH 73353#5##735#'6753&.****q $+ !HZ*+%ÿêéB 73353#5##735#7'6753&%////z (+ !BT* +-ÿêé> 7'6753&'3353#5##735#³ $+ "++++' 'BN)ÿêé> 7'6753&'3353#5##735#³  &+ "‘----' 'BN%ÿêé> 7'6753&'3353#5##735#²  &, "•////' ' CN%ÿêé< 73353#5##735#'6753&%////x &, "<N%$ )ÿêé< 73353#5##735#'6753&)----t %, "<N%%%ÿêé< 73353#5##735#'6753&%////x  &, "<N%%%ÿêé< 73353#5##735#'6753&%////x &, "<N%$ )ÿêìN 73353#5##735#'6753&)----x" )+ !N`*+%ÿêìN 73353#5##735#'6753&%////| " ++ !N`*+%ÿêìN 73353#5##735#'6753&%////| " ++ !N`*+-ÿêìN 73353#5##735#'6753&-,,,,t &+ !N`*+)ÿêìH 73353#5##735#'6753&)----x" )+ !HZ*+%ÿêìH 73353#5##735#'6753&%////| " *, !HZ*+%ÿêìH 73353#5##735#'6753&%////| " *, !HZ*+.ÿèãL7'66753&’D *,$% 6$'( & .ÿèãL7'66753&’D *,$% 6$'( & +ÿèàL7'66753&ŽE )-#& 7$'( % #ÿèÜG7'66753&€? '*', ?!$'% .ÿèãF7'66753&E *,$% 8 #&$ .ÿèãF7'66753&E *,$% 8 #&$ .ÿèãF7'66753&E *,$% 8 #&$ #ÿèÜ:7'66753&€@ (*&- @ .ÿèã>7'66753&D *,$% 8"#!.ÿèã>7'66753&D *,$% 8"#!.ÿèã87'66753&D ++#& 9.ÿêã>7'66753&C ++"' 8  .ÿêã>7'66753&C ++"' 8  .ÿêä<7'66753&D ++"( 9  .ÿèäL7'66753&‘D *,$% 7() (' .ÿèäL7'66753&‘D *,$% 7() (' )ÿèåL7'66753&D *-&( ;'()& #ÿèÜG7'66753&€@ &+&, <"%% " -ÿçåE7'66753&D *-#' 8!$& " -ÿçåE7'66753&D *-#' 8!$& " -ÿçåE7'66753&D *-#' 8!$& " #ÿééE 7'6753&''6753&³ # ), !X ( 0 (&( "ÿééE 7'6753&''6753&³ & -, !Z ' 0 (&(  "ÿééE 7'6753&''6753&³ & -, !Z ' 0 (&(  ÿéãE 7'6753&''6753&® & -+ !X ' 0 (&)  "ÿééE 7'6753&''6753&³ # ++ "V ) 3 +)' !ÿçé@ 7'6753&''6753&³ # +, "X * 1 *&*   !ÿçé@ 7'6753&''6753&³ # +, "X * 1 *&*   ÿéã< 7'6753&''66753&® & -+ "Y &  %#  "ÿéé< 7'6753&''6753&³ $ ++ "T * 3 %# '  !ÿéé< 7'6753&''6753&³ $ ++ "W ) 1 %# (  !ÿéé< 7'6753&''6753&³ $ ++ "W ) 1 %# (  !ÿìé< 7'6753&''6753&³ # ++ "V + 3 & $ ' !ÿìé< 7'6753&''6753&³ # ++ "V + 3 & $ ' !ÿìé< 7'6753&''6753&³ # ++ "V + 3 & $ ' ÿééN 7'6753&''6753&³ # ), "X - 5 0. ,  ÿééN 7'6753&''6753&³ # ), "X - 5 0. ,  ÿééN 7'6753&''6753&³ # ), "X - 5 0. ,  ÿéãJ 7'6753&''6753&® % ,+ !Z ( 1 /-!.!  !ÿééI 7'6753&''6753&´ $ ++ W + 4 0 . +  ÿééI 7'6753&''6753&´ $ ++ [ + 4 0 . +  ÿééI 7'6753&''6753&´ $ ++ [ + 4 0 . +  1ÿçÔD "&54632'"32654&ƒ*((*)(()J  1ÿçÔD "&54632'"32654&ƒ*((*)(()J  1ÿçÔD "&54632'"32654&ƒ*((*)(()J  .ÿçÑA "&54632'"32654&€+''+*''*H    1ÿçÔ? "&54632'"32654&‚*''**((*F 1ÿçÔ? "&54632'"32654&‚*''**((*F 1ÿçÔ? "&54632'"32654&ƒ+''+*''*E .ÿçÑ9 "&54632'"32654&€+''+*''*? 1ÿçÔ7 "&54632'"32654&ƒ+''+*''*= 1ÿçÔ7 "&54632'"32654&ƒ+''+*''*> 1ÿçÔ7 "&54632'"32654&ƒ+''+*''*> 1ÿêÔ7 "&54632'"32654&ƒ,&&,+&&+; 1ÿêÔ7 "&54632'"32654&ƒ,&'+*'&+: 1ÿêÔ7 "&54632'"32654&ƒ,&'+*'&+: 1ÿçÔD "&54632'"32654&ƒ*((*)(()J  1ÿçÔC "&54632'"32654&‚*''*+'(*J1ÿçÔD "&54632'"32654&ƒ*((*)(()J  .ÿçÑE "&54632'"32654&€*('+)(()L1ÿçÔ? "&54632'"32654&ƒ+''+*''*E 1ÿçÔ@ "&54632'"32654&ƒ+''+)('*F 1ÿçÔ@ "&54632'"32654&ƒ+''+*''*F )ÿçáB7#&''67#5ÖGK ?@ I GB(!(%ÿçÞB7#&''67#5ÓGJ ?@ I GB) !(%ÿçÞB7#&''67#5ÓGJ ?@ I GB) !((ÿçØ?7#&''67#5ÎCE << C C?& !  &*ÿçâ<7#&''67#5×F F @? D G<$   $%ÿçÞ<7#&''67#5ÔG F ?A E F<$   $%ÿçÞ<7#&''67#5ÔG F ?A E F<$   $)ÿç×67#&''67#5ÎD A ;: ? D6  *ÿçâ37#&''67#5ÖG H A@ D F3  &ÿçÞ67#&''67#5ÓF E ?? CF6  &ÿçÞ27#&''67#5ÓG G ?@ E F2   *ÿëâ37#&''67#5ÖGK A? H H3    &ÿêÞ67#&''67#5ÓHN ?@ KG6    &ÿêÞ97#&''67#5ÓHL ?? JG9   )ÿçáB7#&''67#5×HK ?@ I GB(!(&ÿçÞB7#&''67#5ÔHK ?@ IFB)  (&ÿçÞB7#&''67#5ÔHK ?@ IFB)  ($ÿçÜB7#&''67#5ÒHK @@ H GB)   )*ÿçâ?7#&''67#5ÖF I ?? D F?&   &&ÿçÞB7#&''67#5ÓGK ?@ IGB)  (&ÿçÞB7#&''67#5ÓGK ?@ IGB)  ()ÿçáR7#5#&''67#5©GtF F ?? E GR   %ÿçÞR7#5#&''67#5¥FuH H ?A G FR   %ÿçÞR7#5#&''67#5¥FuH H ?A G FR   %ÿçÚK7#5#&''67#5£GuF F => D FK   *ÿçâM7#5#&''67#5©GtF F @@ D GM  &ÿçÞM7#5#&''67#5¥FtG G ?? CFM  &ÿíÞI7#5#&''67#5¥FtH J ?> G FI  #ÿçÛE7#5#&''67#5£GuG D ?? CEE  *ÿçáD7#5#&''67#5©GtGJ @@ G GD   &ÿçÞD7#5#&''67#5¥FtHK @? H FD   &ÿçÞA7#5#&''67#5¥FtF D @? AEA  *ÿëáD7#5#&''67#5©GtF F @? C FD  &ÿëÞE7#5#&''67#5¥FtG F ?? C EE  &ÿëÞB7#5#&''67#5¥FtG G @@ E FB  *ÿçâY7#5#&''67#5©GtG I @> E FY#  &ÿçÞY7#5#&''67#5¥FtG I ?? F FY#  &ÿçÞZ7#5#&''67#5«S{G I ?? F FZ$  $ÿçÛW7#5#&''67#5£GuG G ?? E FW!  )ÿçâR7#5#&''67#5©GtGL ?@ I GR!   %ÿçßR7#5#&''67#5¥FuHL @A J GR!   %ÿçßR7#5#&''67#5¥FuHL @A J GR!   -ÿëÐF 73#5'75#.¢ŒŽF[$ -ÿëÐF 73#5'75#.¢ŒŽF[$ -ÿëÐF 73#5'75#.¢ŒŽF[$ -ÿëÎF 73#5'75#. ŠŒF[$ -ÿëÐC 73#5'75#.¢ŒŽCX! -ÿëÐA 73#5'75#.¢ŒŽAV! -ÿëÐ? 73#5'75#.¢ŒŽ?T! -ÿëÎ< 73#5'75#. ŠŒ 7#3#3#5Ї‡‡Œ > Q5ÿíÕ> 7#3#3#5Ї‡‡Œ > Q5ÿíÕ> 7#3#3#5Ї‡‡Œ > Q5ÿìÕM 7#3#3#5Ї‡‡Œ Ma5ÿìÕM 7#3#3#5Ї‡‡Œ Ma1ÿìÕM 7#3#3#5Ћ‹‹¤Ma1ÿìÑO 7#3#3#5͈ˆˆŒ Oc5ÿìÕK 7#3#3#5Ї‡‡Œ K_5ÿìÕK 7#3#3#5Ї‡‡Œ K_5ÿìÕD 7#3#3#5Ї‡‡Œ DX.ÿíØG7#5#53'3373ÒŸ¥ª)/GG----.ÿíØG7#5#53'3373ÒŸ¥ª)/GG----.ÿíØG7#5#53'3373ÒŸ¥ª)/GG----+ÿíÕ@7#5#53'3373Ïž¤ª)1@@((((.ÿíØ<7#5#53'3373ÒŸ¥ª)1<<####.ÿíØ<7#5#53'3373ÒŸ¥ª)1<=$$$$.ÿíØ<7#5#53'3373ÒŸ¥ª)1<=$$$$+ÿíÕ87#5#53'3373Ïž¤ª)189!!!!.ÿíØ67#5#53'3373ÒŸ¥ª)167 .ÿíØ67#5#53'3373ÒŸ¥ª)167 .ÿíØ67#5#53'3373ÒŸ¥ª)167 .ÿðØ:7#5#53'3373ÒŸ¥ª)1:8!!!!.ÿðØ:7#5#53'3373ÒŸ¥ª)1:8!!!!.ÿðØ67#5#53'3373ÒŸ¥ª)164.ÿíØG7#5#53'3373ÒŸ¥ª)/GG----.ÿíØG7#5#53'3373ÒŸ¥ª)/GG----.ÿíØG7#5#53'3373ÒŸ¥ª)/GG----+ÿíÕF7#5#53'3373Ïž¤ª)/FF----.ÿíØ@7#5#53'3373ÒŸ¥ª)0@@&&&&.ÿíØ@7#5#53'3373ÒŸ¥ª)0@@&&&&.ÿíØ@7#5#53'3373ÒŸ¥ª)0@@&&&&0ÿçÜT7#5#5"&54632'"32654&«K|¬V##""TS  *+ÿçÖT7#5#5"&54632'"32654&¦K{«U"## "TS  *0ÿçÜT7#5#5"&54632'"32654&«K|¬V##""TS  *+ÿçÖP7#5#5"&54632'"32654&¦K{«U" !!!#PO  '0ÿçÜM7#5#5"&54632'"32654&«K|¬V#!!#"MM  &+ÿçÖM7#5#5"&54632'"32654&¦K{«U" !!!#MM  &0ÿçÜK7#5#5"&54632'"32654&«K|¬V##""KK  $*ÿçÖD7#5#5"&54632'"32654&¥K|¬V#!!! "DF  0ÿçÜ@7#5#5"&54632'"32654&«K|¬V#!!! "@C +ÿçÖ@7#5#5"&54632'"32654&¦K{«V$!! !"@C 0ÿçÜ?7#5#5"&54632'"32654&«K|¬V#!!! "?C 0ÿçÜD7#5#5"&54632'"32654&«K|¬V#!!! "DF  +ÿç×G7#5#5"&54632'"32654&¦K|¬V!!$"#GH  "0ÿçÜD7#5#5"&54632'"32654&«K|¬V#!!#"DE   0ÿçÜY7#5#5"&54632'"32654&«K|¬V##" !YY  .+ÿçÖY7#5#5"&54632'"32654&¦K{«U""# "YX  .0ÿçÜY7#5#5"&54632'"32654&«K|¬V##" !YX  .*ÿçÖW7#5#5"&54632'"32654&¥K|¬V" !##WT  +0ÿçÜP7#5#5"&54632'"32654&«K|¬V##""PO  '*ÿç×P7#5#5"&54632'"32654&¦K|­V"###PO  '0ÿçÜP7#5#5"&54632'"32654&«K|¬V##""PO  ' ÿéõÏ 733327267##"&55#'667#530)+  3&#Ï-–  ‰o6A?ÿékÐ735'673#&'#5'67# '-% "$$  $Œ! 'rd$/FÿéõÐ %+16<73#'633#3##"''327#67#536365#7&'7#7&'nnx  x  mSQ! 8T) Ð :#  S)%   ÿéLÍ 7&'&''6$ % Í  0  1 /,*bÿéëÉ 7#5##535#3533#''67#ëccc ""& ! Éàྫ*"" :2#!3?ÿéõÐ!+7&'367&'#"''3255#3'67#q+' ))W  "  B C!# +/Ð 1 =R ˆC!2 ÿêmÏ7367&''65''64   *  Ï3 ) .B;,! gÿéîÑ"73'67#'63#7#5##535#35#”B3€11111Ñ 1ŽŽŽŽ6$[%SÿéõÏ73#3#5##535#535'635#Ý 8GG8\8GG1C.\\Ï*&dd&&¶1]ÿéôÑ 7&''63##5##535#¡& $$ / NNaJJJÑ ''*(,bb>,DÿéøÏEK73&'33#67327#"''67&'#7#"''3255'675#535'67&'’ '75     )    ))%b Æ% )* '# ((& 5  (/   ÿéò|$7#533&''67&''667#'7#@œ 2 * -"!2 -%.a$ Tj    6  $KÿéîÐ*.273733#537#35#3#3#3##5#'7#535#735#35[(B£,"0;47‰277??E MB__ 4¾")3C\ïË#7#53#3#5##5##533#73#3#73#vZÈZeQQeG==e==f==g==º1 <<0 aïË#73#3#5##5##535#3#73#3#73#ÈZeQQeZ==e==f==e==Ë1 990, fïË#73#3#5##5##535#3#73#3#73#ÈZeQQeZ==d??e==e>>Ë2!55 1) €ïÌ#73#3#5##5##535#3#'3#3#'3#È[fRRfZx<>f==h??Ì+##+  kïÌ#73#3#5##5##535#3#73#3#'3#ÈZeQQeZ==d??>>e==Ì .//- ' ÿéîO 73#&'#5#Þg.) ''cO  4TKÿóóÏ7&'3#3#3#535#535#—  4E<60/365: ((<*Ñ$# ?!$$?BDÿìõÐ=CI73673#3#&'#3#"''3267#3267#"&55'67#537#7&'7'6V7DJ[ 3 U   6!# 0/ "/ 1  d¦  *8D 8   FÿéóÏ73#3#3##5#'6ttXHHKK Ï''=°& ÿéŽÏ#'+73533#3#3##5#535#535#35#33535#335577007777//5.J.¼^((^:< ÿé{Ï#'+73533#3#3##5#535#535#35#33535#335,--(())..)),(=(¼_((_:; ÿépÏ#'+73533#3#3##5#535#535#35#33535#335'(($$&&(($$'$5$»]((]:<mÿèóÐ(,0573#3#3&''67&''67#5'635#35#67S[\>G      <<<<  Ð L   F1 *?  ÿéjÏ#)/7676767&'7&''67'67&'''674'$  !$4  /…9"  /+p   ÿéoÏ#)/7676767&'7&''67'67&'''674'$  %)9  /…9"  /+r  zÿéôÏ$73#327#"&'#67'56&'Ú&%  # 9Ï%/5>[  ÃO"7cÿèõÌ5:@7'23673#3#3&''67&''67#537#53&'67'&'å 2I<# )  FOSH     # ' !  Ì     %* m z  ÿéfÏ#'+73533#3#3##5#535#535#35#33535#335"$$!!""## " / »]((]:<KÿèõÆ+BX73&''67&'767#73&''67&'767#3&''67&'7567#73&''67&'767#XG     2QB     -K=    'FH      2Æ             X!       ,!    oÿéöÇ,CY73&''67&'767#73&''67&'767#3&''67&'7665#73&''67&'767#u;    'A9     $@7    "==    'Ç"     #       X%      /   [ÿéöÇ+@V73''67&'767#73&''67'767#3&''67&'767#73&''67&'767#hA    ,H=     (C8   "?B      ,Ç"    $     X"       0   `ÿéöÇ*@V73&''67&'767#73&''67'767#3&''67&'767#73&''67&'767#l?     *F<   'A7    !>@     *Ç      #     X       /   ÿè©Æ(>S73''67&'767#73&''67&'767#67#53&''67&''3&''67&'767#C    .K@    + .D    B:   $Æ     "     p %    "        ÿèŽÆ'>T73''67'767#73''67&'767#4367#53''67&''3&''67&'767#;    &C5      #9    84    Æ!     !    p  %   "#        ÿèÆ)@V73''67'767#73&''677&'767#4367#53''67&''3&''67&'767#;    &C5     #9    84    Æ!     $    p  %   "#        ÿéƒÇ)<Q73&''67&'767#73''67&'767#67#53''67''3''67&'767#5     !=/     2    3/     Ç#     #   q $   "&    KÿèõÆ+BX73&''67&'767#73&''67&'767#3&''67&'7567#73&''67&'767#XG     2QB     -K=    'FH      2Æ           X!       ,!    _ÿéòÏAE733533##3#"''32655''67'75##5''67&'75##535#5#53#3~0"=     +   +>"B00Ï"s   :s)  :yŠ"ÿóZ¾ 7#5##535#35#35#Z!!!!!!!¾ÅË7%\%\%ÿóW¾ 7#5##535#35#35#W¾À Ë7%\%\%]ÿèóÇ #)7#5##53#735#35#3#53&''67&'íb ppJJJJ);> ' DÇ  'S11) )   oÿèóÇ #)7#5##53#735#35#3#53&''67&'ïY ggAAAA&6‚7  >Ç  'S11) )   ÿókÏ!74''675#53533#67&'75##5#^ % !! / 5`--`1 )<<<<uÿîóÌ73#3#535635#Ý0&W~1++Ì .k¼ÀkÿóuÏ 7''675#53533#67&'75##5#e $*$$## / 5`--`1 )<<<<ÿópÏ 73533#67&'7''675#75##5#$## "'$H¢--`/  4<<<< lòÑ#73#&'#'673#&'#'67?&  tH+    Ñ  '0  ( xòÑ$73#&'#'673#&'#'67>%   sG+    Ñ   #)    # “òÑ 73#&'#'673#&'#'67:   tE(  Ñ      “òÑ73#&'#'673#&'#'67:   tE(  Ñ      ÿé[Ï 7#5'6G  +ϧ‡2 ÿéPÏ 7#5'6<  "Ï©ƒ 2 ÿéGÏ 7#5'64  Ï©€2 ÿéSÏ 7#5'6?  %ϲŒ2 ÿéˆÏ#'+/73533533##3#3##5#535#535#5#5#35#335 +..3344..S+/»$<((<$OyÿéîÏ73533#"''3267#'67#‹6  "0*£,,…wy.*n„ÿéïÏ73533#"''3267#'67#’0  +&£,,†!px/+mŒÿéïÏ73533#"''3267#'67#™,   '"£,,* qy.*nŸÿéïÏ73533#"''3267#'655#¤'  ¢--…u&O2 /E&ÿéæ773#"''3267#'67#536qc WN@MW7 / ' ÿéæ?73#"''3267#'67#53qd  WMBMV?2 *   ÿîóH 73#53535#35#35#Ûæ##6""5##HGGG55555 ÿîóD 73#53535#35#35#Ûæ##6""5##DCCC11111 ÿîó9 73#53535#35#35#Ûæ##6""5##9888&&&&& ÿîó- 73#53535#35#35#Ûæ##6""5##-,,, ÿîó' 73#53535#35#35#Ûæ##6""5##'&&& ÿîóM 73533#75##5##5# ¶æº#"#LL999999ÿêYÆ75#53#3#"''3267#7F3F.1   3&K(L3Lÿê‰Æ75#53#3#"''3267#7pUiNZ ] Ž%K(L1NÿêmÆ75#53#3#"''3267#7YDX<? B Ž%K(L2NÿêaÆ75#53#3#"''3267#7M:N47   9 Ž%K(L3NÿêMÅ75#53#3#"''3267#76%8"(   )&J(I 4L)ÿèád73#3#"''3267#735#,¨’  ¤”d2%2)ÿèág73#3#"''3267#735#,¨’  ¤”g3&3)ÿéáV73#3##'3267#735#,¨’ ,¤”V.  - )ÿèáP73#3#"''3267#735#+©’  ¤•P+  , kÿéî¾73#"''32767#'665#'6ƒk   ##$¾¥/,reEA`!$  ÿéuÏ#'+/73533533##3#3##5#535#535#5#5#35#335 !''****&&D!(»$;((;$O ÿé}Ï#'+/73533533##3#3##5#535#535#5#5#35#335 %**....))J%*»$<((<$OmÿéöÄ '73&'#"''3267&''67&'765#65#…`   )& * Ä^6 /  1)$: !T6<3 ÿélÏ#'+/73533533##3#3##5#535#535#5#5#35#335 $$&&&&##= %»$;((;$O ÿé^Ï#'+/73533533##3#3##5#535#535#5#5#35#335    4  »$;));$N ÿèóa#'+/73533533##3#3##5#535#535#5#5#35#335,\,,8LLjjhhLL6,›\::N9[ !  ! *  ÿèó\#'+/73533533##3#3##5#535#535#5#5#35#335,\,,8LLjjhhLL6,›\::N9U   ' [óÉ (-73#3#735##"''3255#3##5#53&'##57# ææªª„„©  " 99!z <É  '   )5  ÿèók#'+/73533533##3#3##5#535#535#5#5#35#335,],,8LLjjhhLL6,›]::N9c #  #  - ÿî>È 7&''6$   È f 1-+DÿéõÏ48<B73533#33##3#&''67&'7#537#535#535#535#353567O?IIAMg  $< ++4(6EE66?R...J. ¿     B   ÿî7È 7&''6   È f 1-+ ÿébÏ73533#67#"''3255'75#!    &!¥**2F  8  ; ÿé\Ï73533#7#"''32655'75#    !¥**1 F 9  9 ÿé¢Ð  $,07&''6'66553&'73'#335#5##535#X"  & 5  0(JJJJ888Ðu." !@ J:-D D'vÿèôÏ73#&''67&''667#™N   1ÏC*# 4+#6 ÿézÆ 73#735#35#35#'67&'ZZ222222B Æ£sMM6 mÿèõÏ73#&''67&''667#‘U!" 5ÏC)" 1)$6ÿîgÁ73#67'535#U< ) <@ÁbY  z< ÿéÏ,73533#3#3#3#"''3267#'67#535#535#,++''+<9   ( !.'',» B )1 $C¢ÿèõÐ73#&''67&''667#»/     Ð&;($ 2C& ÿémÑ!'-73#"''255#'655#5353635#&'4'># . ..  Ñ ° N79 L\:H ÿétÑ!'-73#"''255#'655#5353635#&'4'C' 444 Ñ ° N79 L\:H~ÿì÷Í "733#67'73673267#"&5~  8    ÍJk  ×Q_ #  ÿémÑ!%+17#"''255'655'7536735#7&'4'k  &   &lY S5!9 O G8<5 HiÿéôÏ973&''67&''667#3533#3#3##5#535#535#”C  "  * 8 (0..**77::**0Ï      > ÿéaÑ!'-73#"''255#'655#5353635#&'4'6  &   &&  Ñ ± O5!9 L[;HrÿéõÇ #73#3#537#35#35#35#&'''6yy2/h$2BBBBBB9 ! Ljˆ<=>,    ÿðsÍ7335#53533#353#7'5#**))$ $ŠCYYCU. 9 ÿê‚Î8767#"''32654''67&''67&''67&'767&''6d    * /"% &    % *Î  =#      zÿêñÏ73533##"''32655'67#†=   ' /6ž11† e6'07 ÿêzÎ677#"''32654''674''67&''67&'77&''6^    ' + " $     'Î >#      ÿêiÎ5767#"''32655'67''67&''7&'767&''6O     %    !Î  !> !     [ÿé÷Ï 7#5'673533#&'#5'67#‡ '&"    "Ï¯Š ,11D1zu,-< ÿêoÎ7767#"''32654''67&''67''67&'767&''6T    ! (     #Î  !=!     nÿéóÎ $).73#3533##5#5367#536365#335367#335¦99 $$M %$1M/!Î c 33 c 5 A  yÿëõÄ &73#33267##"&547#67'7#&'ypG=   +8Ä#  t} ¹O€ÿëõÄ &73#3327##"&547#67'47#&'€jC9   &6Ä#  t} ±OÿêõE$73#33267#"&55#67'7#&'ãœo a %3p E %  ?   IëÑ &*.2N73&'73#3&'73#3#3#3#5'65#5#5#'6767767'67'67'67ZdÖm '/****1s .!!!!!P  E%  Å   5    7%   ÿêõQ%73#33267#"&55#67'7#&'ãœo ` %3p Q-   "% K%  SêÉ %+1773#735#35#35#73#735#35#35#'67&'''6'&'[[777777Z__;;;;;;e Ÿ  = ÉU= ! ! BFLR733#5367#'635#35#35#'3533#3#&'#5'67#535#35#335'67&'·$I  %%%%%%j    , 3  Ð  ||  I88~EML"$EK'''q   ÿéNÏ 7#53&''69 ,Ž¥æ)  '!"@ÿéöÐ%)-26Jd733#"''255##5#'655367#'635#33535#73573#"''3267#'67#3533#3##5#535#'6h %  , N      Д %!!#?A UJ o7 !- "F  22  ÿé`Ï 7#53&''6A 7•¬æ#' " ÿéhÏ 73&'#''64   Ï1´' !LÿéöÏ 73655#535333#&''67#75#W:((7D1015 6r#])))I2 54!$.6)>ÿîõÆ#'73#735#'67&3533#75##5##5#Z€€XX)    g•·“Æb@%  †OO======VÿìöÎ&733#7'753773673267#"&5‚%- 0    ÎId ¢ŸÅO  e GÿêöÐ *D7&''67&''6''6#5'6733#33#"&''673¢   6  Y    W&&   Ð   %2   %0 ' x["/ $EÿéõK73&''67&''667#I€&- :/-; 2#  LaK    eìÐ7'63673#5##53'7&'ÛWli@ Y $¯( O  Ð   (+ ‚Ý» 73#735#35#‚[[3333»X2w2+kÕÇ 73#735#35#+ªª‚‚‚‚Ç\77+_ÕÆ 73#735#35#+ªª‚‚‚‚Æg<A ÿéòU736733#&''67#al_G KN DXC $36 &ÿéðY73#3##5#535# ÃXeeeeVY00 ÿé÷Ñ$/7&'3673&'&'#"''3255#3'67#C E @>=$ 20   Ñ  ( 3,-E &#7“æ» 73#735#35#“SS++++»X2w2 ÿé|Ð #)/5;733#5'667#35#33535#335&'''67&''4'/(T   0  GDÐ cX *C/# qÿé÷Ò%+17767'7&''6373#&'#'67#'67'67'6¥   (,)\ÿçõÉ 273#735#35#3#3#"''32765#'67#'67#'67#qooIIII$•[\  / 4* # %ÉP0..F (/ +" DîÏ (.7#5##53&'73673#&''67&'67#367æ¥_|Kx0 #& -&)< 1! 9S- ¼   (      -ñÒ!%73#3#53&'#53&'367#3#735#35#ƒS! >á; W ;R3©©Ò   6 *K,*KÿèóÐ#(-73#3##5#5367#53635#335367#3355#‘E%77^)+''9&_%9+$ Ð l44 l 9I  L eÿèôÐ#(-73#3##5#53665#5335#335367#3355#ž<,,O$&2 R1&!  Ð l44 l.J  L VÿéöÐ>BFL7&'3533#676767327#"''67&''67''67'#3#735#'6Õ  gI:9       J33&&)Ð  ''  +  3T2K  ÿçð¥6<73#&'#5'67#535'23673#&''67&'67#367Õ &.dK. 6% < 4IdLXjI|) " 1)C 3" :R 8 ¥ a    ‹ÿéêÀ7##53#"''325Ö7_  ­Ä×  lÿéìÉ 7#5##535#3533#''67#ìYYY!  Éàྫ*"" :1"!3ÿéÈ 7#5##535#3533#''67#HHH  Èßß½¬+"" 8+ $3ZÿéëÉ 7#5##535#3533#''67#ëiii"$$ ! $"Éàྫ*"" 3#"2sÿéìÉ 7#5##535#3533#&''65#ìSSS Éàྫ*"" "2ÿéâ 7#5##535#3533#&''67#â››› 968!  . 6¦ ¦‰w 'FØÆ73#735#36533#&''67#'±±‹‹ 0/2  $ *,Æ€^     ÿìô' %7&''&'''6733276767#"&5Ù  CF& :)'      @èy"7&''332667#"&57&'''6{ %4~  … y        ÿéiÏ 73&'#''64   Ï& ©´' !¦ñÏ73533533##5##5#;A<<A;à  ŸñÏ73533533##5##5#;A<<A;Á ¡ñÏ73533533##5##5#;A<<A;Á •ñÏ73533533##5##5#;A<<A;º¦ñÏ73533533##5##5#;A<<A;à  ™ñÏ73533533##5##5#;A<<A;¿ ÿèô£5DL7&'3&'733#537#5'6'#"''32654'7##53#&''67#&'7#6¢% ""' }K N 0' $J$ /5&e, £   1 1¡³u   OÿéìÇ"&73#"''3255##53535#335#3#735#Ö  uIN55!!JJ%%ÇUo  Yx‰UUB,B> BáÈ/733#'3267#7#3&''67&'767#'67#!¦ #  ( [J   =$ , !È.0 %.     4H ÿèîÇ 7#'655î½ÇSC6 5?` ÿèõ 7'67&'7&''&'*~  K  _       ÿëôÉ7&'333#"&''675#2 %>F P,(É  D`   PI íÏ*.73533#3#535#3#67&'#5'67#735#[9::EŸF9‚9  #' '1\\Á/2  &% bÿóôÂ73#3#3#535#535#i†:66?’@559ÂKKKK ÿéuÏ73533#67#5'675#'6!Ä 11: RI  C +mÿóõÏ73533#3#535#y/009ˆ;/†IImm ÿéaÏ73533#67#5'675#'6    Ä118 TI  C ([ÿìðÏ!73#"''32767#'67#'67#'6‡`   M F< 5 Ï‘0.Xm83bO)%D!KÿèõÏ$73&''67&'#'6655667Ý 1Aq# #   L  Ï $=*"2@66D:N  %UÿéòÁ73##"''3255###535#U   uX9&&Á«  ¦'XfF5gÿïóÏ73533#3#535#3533#3#535#t...8ƒ7..//<Œ<.­""""a##$$]ÿïóÏ73533#3#535#3533#3#535#k222=<2333A–B3­""""a##$$JÿïóÏ73533#3#535#3533#3#535#Y:::FžD::::J©K:­""""a##$$EÿïõÏ73533#3#535#3533#3#535#U===I¥H==<íÏ73533#3#535#3533#3#535#$QQQbØaQUVVbÚdU¼< ÿëõ6 #7&'7&''3326767#"&5''6zay "4%6    * . ":ÿéóÆ"733&''67&''667#67#'7#co, " "." $3Æ2?'#B-Ag43!)3WÿéóÏ37;?C73533533##5##5#3#3#3#3##5#535#535#535#5##5#35#335[$($$($‹=DDCC;e,½ ) ÿénÇ 73#3##"''3255'67#'735#[   & "4Ç=d  K,",5.=|ÿéíÅ73#"''3255#3###535#|q  ]MMH/ÅÁ ©M Z<+UÿéêÅ73#"''3255#3###535#\Ž  zgg]@--ÅÁ ©M Z<+ ÿéõÏ"',0A73#32767#"&55#'67#5337#335367#33567&'7''6<0 "@ N0(%$#)A'   ÏdN  SB* %:d* E 7  ŒóÏ 7#5'753'&'&'ñ:==  f;7  pm`  #  ZÿéôÑ$(-1A73#3265#"&55#'67#536365#35#365#35#67'7''6•@!    : / *//,!#  Ñ gO   UE$;g 7 E 3    f½73#3#67&'7&''67#FFQ !½(9  & 8 ÿéôÏ$(,0@73#32767#"&55#'67#536365#33537#33567'7''68.$@ O2$!" &<%  ÏdN  SB* $;d 5 E2  €ñÏ&,73673#3&''67&'7767#'67#7&'ƒ?B8     * O  ¥     "!<   ]Î 73##5365#35#0"8%%%Î ™­Q11D2UÿèõÏ"7'6655673&''67&'367†C* *9d tB55D:  $>* ),*%\Î 73#5##53635#5#3 & &&&&Î ¤ ­Q1u22bÎ 7#53673#5'35#5#%&*****­ ¤ V1u22ÿðƒÎ73'67#&''6A8/ K* "Î R:q  2YÿéóÐ(76767'67'67#53&'73#&''6} #L /*@ ÿé”§  $73#735#35##"''3255##55#35@QQ0000D   2D22§B( $ (X  %n —ÿéõ§73533#&''67#7&'›#   D  w0D(2-#&F>    TóÐ!7@DH73533#3#535#733#"&55#'6653&''67'767#'6553'35335122*e)1Å $  V     A` dRÇ     ,    ) ÿé÷j!&*.73#'#5##5'67#535'235#3&'#35#35#ÌI`:* ~ +<`EO1,/, K~~~~j <9  5  + $ ZÿéõÇC7#67&'7''5353573#3#33267#"&55'67#'67367#˜*   J    (!Çy7   Ã!!3""E* C  '$'>*UÿéõÇ@7#67'7''535#373#3#33267#"&55'67#'67367#•,   !L    * "Çy8   Ã!!3"g*C )%'>*JÿêõÏ 7#'6553&'7''6767&'óy>,- & °:?: 0D;' )9 07Ï UEEH    4   %  KÿéõË 3773#735#3353353#3#67&'#7'5'67#735#c††&w‘‘ €3  6 #  ZZË:6 3    .     bÿì÷Å )/573#735#33535#335&'33267#"&57&'''6pvv1N1!    T  [  ÅrBK6 : 9 ! ÿéõÏ-7353333267##"&547#&''67&'767#EJ   5 9 6 Dª%%[?   6S*0#",  ÿéóÄ!'73#333277##"&547#67'7#&'Ñp   ]''6)-^  Ä$a&  $Q{ ¸N ÿéåÁ 7#5##535#3#735#å¡¡¡!^^66ÁØس b< ÿéôÑ &7&''63##53#67&'7&''6€26 44,= PiiGÒr25  EMÑ-4.*#/' #  ÿéõÐEK73&533#673267#"''67&'#67#"''3255'675#535'67&'v ?GF   $ A 66%4}  É$&'  %! $'#/(3  ).!  ÿðåÅ 7353#5##535##5#l*O¡¡'R(ÅWWÕÕ²ŸWW ÿèïÐ#(,28>D7367333#"''32765#'67#53&'37#7#&'&'''674';  M     5!J"=C;Pjs   K: Ï//K * )D E=   ÿéóÑ!*7&'367&'#"''3255#3'67#G;5 88i #* 3  UX: 6CÑ &  #1!?W  @$"1ÿçïÏ!73533533#3##5#'67#535#5#3E2288F6 -893ŒE¡....?SS4!'???? ÿéõÏ(7'67#53&'73#67&'2767'< ;Ne ^q#$ Q+ '$ J %1 ,!*1i Z  ÿæïÐ*73#6767'67'67#53&'&''66ƒ ^{) A8 A"&KhY$$0J EMÐ'/! d 0ÿéõÑ"&*/47#67327#"''67&'##53'33'#3353&'#335ÛO    &<> L- DLM;9NB’@=Q>¸r  ,%  €0L  !ÿéóÏ73&''667'367'7&'´7 .! “! #, >ÏP("%$-6C>žœ!$ $! ÿéÇ"&,27#3##"''3255#537#'65535#35#'67&'‚"   &-))))  F  Ç\?  ;\RF3 5@_R:. †ÿéòÇ #73#3#537#35#35#35#&'''6Œd('Z'5555552  Ljˆ==>,   LÿèõÏ"73533#3&''67&'#535#67#UBCC4( (!* ) :BLH ©&&'%    %'l#…ÝÑ7&''67'76Æ 'F'!<,&"Ñ     ÿéð*73673#3533#"''3255##5##5'67#G Œ 9L 87 "8x  6  KK>?ÿéoÏ73533#&'#5'67#%##  ! #¡.. €q")8PÿêõÂ73267#"&55#'655Ï .)µ  §G-9$RQ ÿéeÏ73533#&'#5'67#    ¡.. ~m!+6YÿèöÎ%+73533533#3#535#35#35#35#'67&'h9—&999999 (!H °nnCD/  MÿéõÑ8So736533&533&'73#67327#"''67&'#&''67#767677'7''67'6767677'7&''67'67S!=     '  t  h  H (ag"       *g $ "?ÿèôÐbh73673#3#3#535#535#53&'3&'33#67327#"''67&'#67#"''3255'75#535'67&'u ' $D<         SÿéîÏ$*0673#"''3267#'63533##5'67#7'6'&'&' d  Z !--- %W  ;  L  Ïš/#€ "O::UCB   8 ÿèõÑ73&''67#'6`S $5 7#*N xH 3Ñ389;"v),lÿñóÆ 73#53#3'35€s‡ƒoffR2.Õ.SA..ÿébÏ7#"''3255'675#53533#6_   !! tN  ?3**+Rÿéñ¿73#3#5##5'67#35#f‹L [@  ,++@@¿#!d2C¤M ÿåôÒ $*06<733#5'6367#35#33535#335&'''67&''&'WW/¯ 4X P ;;N:ˆ;;N:  —~$  Ò qe ! 9K7  DÿèïÍ#73533533#3#535#35#&'''6O"+''+¥'"6++75Ÿ....AAAA\! )@ÿéóÏ#'9=A73#&'#5'67#5367'23&'#35##"''32655##53#735#Ó !V* b  "2)<=" >>g   i"JJ))Ï   >(+Q ;Uf.€ÿéÞÏ 736753#5'€$ Ä—“æ@   TòÑ0G73673#"''3267#'67#3733#"''3267#'67#73733#"''3267#'67#!NV  JC4>..  !$  #s..  !" #à  *      )ÿè×R7#"''3255##55#35×  ‰›‰‰RT  i ÿéóË%)-15;A73#3#35335#535#535#533#535635#3#3#735#'67&'@$\#-æ2::..(( " / (i& !&Ë   ““  “†‹  J)`  ÿèYÍ76767677'67'67'67   7 &   6!T,!)1.ÿçõp#'+87&'#7'5'63&'73&'#353567&'‚0< ˆ0> G38&! vvv1  02p  2  O    oôÐ3IMQ73#&''677&''667#'3533533##5##5#3#"''3265#'63#735#¢@    &”S I  77Ð    ,    ! ÿéíi!%+17=7#3#3#3#"''3277#55#5#5#'67&'7&''&'âSKKKK^   ´VCCCCC  8a    i (S        ÿéóÏ39?E73533533#3#3#3#&'#5'67#535#535#53&'#33677'6'&' O O4 <`VVgR", 6"#5,$QgWWa: 4L 0 +  ˜Ÿ0000  12   B  GÿïóÏ/37;73533533##3#3#3#3#535#535#535#535#5#5#35#335P"1""%@@EE>>M¬K<›ñÏ73533533##5##5#<A<<A<½ÿéâ” !'7#5##535#3##5'67#535'6&'✜œ0:: /;,;$  ”« «}7, 9 ^ÿèöÑ 7'67&'&'3'67#¥-!& !  -y %d­)%1 &.:* òÑ#73#&'#'673#&'#'67=#  uG*    Ñ  %    òÑ!73#&'#'673#&'#'67=#  uG*  Ñ  %   ÿòîÇ7#3#5&''67&'76æ¸ÀÔ›/ "! ǯÕ! #% [ðÍ 73533##5#3533533##5##5#%RRRR,_,,_,¸# ÿèôH73533#&'#5'67#edT#7 ;$$9 5"R8 ":;! ÿèôh73533#&'#5'67#edX%9 9&"; 8"UP&.MN*% ÿéóÌ73533#&'#5'67#bc\&= 9%"8?!Z™33J#&I‡‡E*.D#iÞÑ7&''67&'76Ç" ',4-%!%-&"Ñ   ÿéÅ73#3##5#'655#535#5#y"$ M"ÅLjj?(#6LLLLMÿèòÐ!%)-E73&'73#3#3#3##5'67565#5#5#33#"''3267#7#'67#w"25////6s 0)))))y%  )+5."Ð     <  )   *6* ÿééÍ06<767&'7&'#"''3255'67'67'67676'67&'©7   !Ï@(# . )!/ ÿèóO73533#&'#5'67#fdT"6 :$#95"S;'=?' ÿèóÐ7'673'673&''>T% QOH\ *.—+%F.  H"8> %+ ÿéóÑ48<@DH73673#33##&'#5##5'67#535#535#535#53'5#3533535335R ' BL;0* *#& '/9KK77FAK##)_#)Ñ  %%!$73#3#3&'73#3#3#3##5'67#537#'65#5#35#yc?T[#-2,,,,5q #+  :)))))Ð     W  ) s""‡dóÈ73&''67&'#367‹\   È    ÿéíÏ'73&'73#676767&'7&''67'67#a  `t#*;BF8 K[,)$(%O¬ ,M) "' (,QÿéëÅ 7#5##535#3533#3#535#35#ëttt ((( R (..ÅÜ Ü½«&EEP$ÿçëa 73#735#35#35#'67&'*¬¬„„„„„„ 8 2X))('aX> " "    ÿêcÃ7#"''3255'67567#53[  >Sr S H*Yÿè÷Ï#7&&'67&'7''5'6556Ô    8ÏIR%$ZP¨ $²+_; 7\8 ÿèfÎ 73&'7367&'#5'67#   #1¯   ao 6`ÿéõÐ/73673#&'#'67#3#3#3##'32667#7#d1D)$&'<<&Ž\S S µ  #$$$ &IÿèôÐ 37&''6'&''633#33#"&''673Á  (D  "+66*/Ð(0  *7 , #D  ÿéKÏ7'6#5'67   Ï (# {e  ÿéMÏ7'6#5'67    "Ï ( }b $ÿé‹Ï $(733#"''3255##537'6'&'3#735#D2  M/6 M  #33ÏI„  n‹<  [E'aÿéìÐ $(733#"''3255##537'6'&'3#735#œ:  a;>Y  "??ÐJ…  n‹<  XG%JÿéöÏ#)73533#3#&'#5'67#535#'6'&'`8;;D:% (' ):C8p  R  ²>..VU-+>   ­ÿèðÀ7#"''3255##5ð   À  ‹ÆØ@ÿõ¤Î$73#3#3#67'675375#535#'6d3 +6 ##  Î%#* QOa%  ÿélÏ 73&'73#3#3##5##535# %%` MMMMN&&&² V V6$qÿéóÆ!73#33#537#537#35##5##535#vt;7‚%)/(BDDDÆ5#O#HWW7% ÿéñÏ#)733#3267#"&55#'67#537'6'&'uaI  "! F@ B`U„Ï]X _U!HK  VÿòõÅ 73#3#735#5#3#`ŽŽ uuMMMM*ŸŸÅuC Q.NÿèöÏ#+:>73533533##5##5#3#3#5#53&'3'66733267#"&5'3#V#.%%.#S;obuA'R )º ,Y(# "=  BW ÿçñÇ#'+/73#3#&''67&'767#535#35#33535#335ÖbQR -JM3:3 OP`$<7#"''3255##535#35#Ö  ……………>C V "  HòÑ !73#53&'3#735##5##53#735#gØ]A©©²¼#  vvÑ " " ÿéœÇ&,7#"''3255#353#5335##536735#&'œ  ) J)4 b  ÇÆ  pKr  Ÿ ++ 8   ÿñïÏ73673#3#3#535#'67#?„ ‘J[Ï`=1:ª!GG5;AÿèõÐ#'-373533#3#3#535#535#3#735#35#35#'67&'MCFF>>M¯M;;Ceeeeee . &K"! Ä     DbE ' '     +~ÕÈ 73#735#35#+ªªƒƒƒƒÈJ- )  ÿéóp373#7#5'75#35#35#75#767#53&''67&' æy (/(222222a BX   pJT14    ÿèóf767&''66''6y"2 M 5* 73; f    2( 4 JÿéöÏ(-1BHN73'67#&'&''673&'67#3#3##"''3255#'67&'n# *   S2   8#>DD#‹<   ; b Ï !+      K) 86  3 ÿé[Æ7#"''32654'7##5[  "Æ: <ËÝ’ÿéðÃ7#"''32654'7##5ï   $ 2Ã;"" ! >ÇÚ ÿézÏ7#53533#&'#5'69(+'' %Ž..xt% .aÿéòÏ73533##"''3255'67#> $- 3*=¢--Š  b<#'LrÿéóÏ#'73533533#3#535#35##5##535#35#y * E@@@@@±  Crr'= ÿõóº 73#53535#35#35#Þæ$$8$$8$$º²²²ŸŸŸŸŸ ÿïôÐ +7&''63#3#3673#53&'735#535#/8 44-< Ox4UU  6Ö4  WW/Ð%+*#""< <" ÿébÏ73533#&'#5'67#   ¡.. |l!*7cÿéôÒ87&'7767327#"''67&''7&''7''753  1;55;:   6 2;:+,*,Ò      &7#  &$ ÿçô‡!+/37'#67&'7#7'5'63'73&'3535ƒ 39 <  12 E0! F5=+$(www‡  =    [    LÿôôÏ73533#3#535#LJJJCšCJ…JJkkMÿèóÏ73533#&''67&'7655#UV220 -( ) VŸ00&!$%€ÿêóÏ73533##"''3255#&'€F F  ›44‚  } WÿéòÐ73533##"''32655#&'Wb$$  b ›55… €# "LÿéëÁ73#"''32767#'667#'6[   , / (: Á˜"XM D^/! ' bõÐ 7&''6{0< 75,; NÐ/52+GÿîòÍ-7#"''3267#5327667##"&55'753753ã  )$'  0"$žW/ ^Y a " d:5 D?>ÿìçt7#3267#"&553#"''326§UG P-}  aZ q9BÿìØp736732767#"&5B;$ -?2 ;*p#  2  PÿéôÆ733##"''3255#53567#b€GG  KKhÆ\ Y! ÿéôÏ#733#&''67&'767#5335#35#vUV0OQ76.VVBBBW@@Ï['  "[H555 ÿèoÏ73&''67&'67#5367#7)     Ï)P* !%i 6# ÿèóÏ!73673#&''67&'67#367 L ƒ. )$2*= <"!'D\ žB!$  ##$  8 ÿèwÏ73&''67&'67#53667#;+   $ ÏN+  "$€!6# sÿéóÄ73#3##5#535#wv177662ÄIllI ÿéÄ73#3##5#535#r08866.ÄIllI ÿèhÏ73&''67&'67#53667#/&    ÏG* !! !%y4#Vÿè÷Ï,0673533#3#3##'32767#&''67#735#535#35655#b7DD99E 35 4*3 3///7K'< ½6 '.(( )8$9  ÿè^Ï73&''67&'67#53667#,#   Ï)N-  "$~!4# ]ÿèïÇ7=C73#3#"''3267'677#735#73#3#"''3267'677#735#&'7&'aA%+    / #.KA%+    / #.B V Ç:h!  .<:h!  .<_   NÿêïÆ#)/573#"''3255#'3#"''3255#&''&''6''6«D  0TE  1d F n E ÆÅ ¯Æ °   , )% $' )& $ ÿéiÏ73533#7#"''3255'675# %# !%¥**4 E  8 ;aÿéôÏ#)767327#"&''677&''7&537&'ìB &  /1š (!5  ($?8  ÿéñÆ733##"''3255#53567#(³$,ff gg)!˜ÆX T ÿê…Æ7367#"''3255'67567#k   0TÆU M '¡ÿíóÏ733267#"&5¡  ÏÈ  ÿíòÏ733267#"&5  . ÏÆ   —ÿíòÏ733267#"&5—   ) ÏÆ    ÿéó[7357#533##"''3255# m-s–!ee  m-    ÿéód7357#533##"''3255# l.s–!ee  l,  PïÇ73567#533##"''3255#i{›"bb   iŽ  bÿéôÐ(76767'67'67#53&'73#&''6… H *&: 8K A - Vm J "% ÿèëÉ 7'66553'#36 É¡¡+F6 1%`:),ÿèò|-373#6732767#"&55#3'67&''67#67#,Ä;!  0+   1@  |&  + k $  $J  ÿèëÉ 7'66553'#36 É¡¡ˆ$F6 1%`A03ÿéöƒ!7'63533#&'#5'67#7&'Ï‚HOC4., /<  ƒ $55!FE%"F :ÿéñ‰#(73673#3##5#'67#53655#53&'5#l ,&(//1 0 $ (,(% S.‰ !<ÿêé… 73#735#35#35#&'''6KjjjjjjQ.# …oN..$    ÿèëÉ 7'66553'#36 É¡¡’.F6 1%`7&%ÿéóÊ"73#327#"&'#67'56&5Ð$(QN $ 0 M&#/ dGÊ$+0/;8V  ½M 5ÿñ^¿73#3#5##5'67#35# Q# +  $¿#r b$;’D^ÿèóÐ+E73673#53&'4''67'677767&'7''67'677767'ˆ # Ž  +   Z   Ъ %.+)F$ %/+)B(ÿéòÅ"73#3#"''3255##5##5##5367#äjh   (('Gcʼn  q‚‚‚‚£ZÿéöÏ7=AEK73&'73#3&'33#673267#"''67#5367&'#53&'#367#35#35#7&'`)(    =F a  j  ²  #.Q/" &$\T ,! Y=‹íÑ 73#5##53&'‚`²dÑ .. ÿïò%73#67&'7&'3#3#535#535'67#3š\.13TThägTT"$%    ÿè÷™ )/73'67'677367&'3267#"&5'&'YQ C%*"2#'   +b™`1 #  N0   1    ÿíõ  "(.>DTZ`f7&'7&''332767#"&5''6&'7&'33265#"&57&'733265#"&57&'''67'6z e  v ,"'  …  „  D  @  E  À  x      ( - ' 9   ?9  ?  ÿìñ¤0733#3#5353333#3#53533'33#7'7537xXXeÞ',=$$*zp##"/9¤((*DDT B? ÿé‡Ð %+17&''63#3##"''3255#535#'67&'G * F++  -- V  Ð&J  G:"  ƒÿéøÏ 7#5'753'&'&'ö<?>  OLH Іs. ÿèóÐ$(,73533#3673#3#5##5'67#535#35#35##G44*! =Z0mq 7-c]G.qqqqµs arC ÿêóÐ$73#3##"''32655#535#535'2Ø &/UUff ll[[*0`Ð )$5 0$&Lÿí°Ï(73533#3#535#3#735#7677'7&'U  H GG##  +6 ·::0 ÿèêV!73#3#"''32655##5##5##537#Ôhe   &&%IXV7 "5555:J#ÿéÝe $(733673#"''3255##53&'7335#35#u   ’ >’’’’d  M b  ' kÿèëÏ&753753753#5&'#5&''655'6}        ’=8h4qçc#™\$4E* (:!!& ÿê‹Ð,27&'3533#67&'#"''3255'675#&'o  O433     #4  Ð   ))&  -  0<   EéÐ"&*73&'73#3#3#3##5'65#5#5#A4RREEEEU§ $O>>>>>Ð  N RÿçóÏ 73533##5#RGFFGNN‡‡óÑ 48<\73#53&'733327#"&547#&''67&'767#533#735#367#"''3255'67567#J-n,m%     ‡^^::f   GÑ ! 1 " &   * (    FÿèôÑ3:7''6767&'&'''63&''67&''667#À6=$' 9 !H $ *!"/ + ' >Æ " 3      ÿéóÑ.48<73673#3#3#&'#5##5'67#5367#5367#3&'35#35#RimkrŒ2! g  1?:BN@k^gggg¾   ] Z   E  9=AÿèóÍ$(,07373#3#5##5367#'6655635#35#35#ç 8K=496G#8  W#GGGGGGÍ I;8F<u98HÿêóÑ -73&'73#3#735#33##"''3255#53567#NCH¢……__Ž!JJ   MMl½ 43   NîÅ 7&'67&'67&'6rABÅ.!&* 0)(/-!&) /((/-"&* 0)( ÿéjÏ 73'6573#'3# A ÏpG/ )@pæÙ¿rÿèõÈ #73#3#537#35#35#35#'67&'u~2.l)7FFFFFF  Aȇ‡?>>.     ÿéõÏ 7333#"''67&''667#119;$l     "ÏO7*%1++4 gôÃ73267#"&55#'655Í   à  7#,??ÿéòÐ#'+37;735333##3#3#535#535#535#535#33535#5##535#35#$OQQXXkäeUUPPeeOc>>>Ä        ]S S+DÿéóÑ;73#5'67335#35#3#3#"''3265#'67#'67#'67#ow~  tyZZZZ*«qp  ) "- # &² C: ( & ': $* #  fÿéêÐ"(733#"''3255##5335#35#7'6'&' 7  U3 UUUUW Z  Ð=’  ;ª0Ly  wîÐ733673#5##53&'733#735#u  *²-  A™™qqÐ +, ' #?éo73673267#"'&5#IH?Y :GIF l   +ÿéÕ3 7#5##535#35#Õ‚‚‚‚‚3JJ '  ÿéíÎ 73#7&'''6'66tLršB{ GSΙ€% ':( ) P-ÿéí‚ 73#"''325''67&'x    8•‚  Z2$ #+%, .% ÿêöÇ+8C733#3#3##"''3255#535#535#53567#&'76'3'6767#)®#+"",, '' %޼/ Ã?  +Ç ( %">/k >B.dÿéêÄ73#"''3267#'67##5##535#h‚  // )*}QQQÄL1>/_iiG4ÿéôÔ@FKP733#67&'#"''32655'67&''67&''67#5'66367#367#335OV ?`  - .  /> C1): :*1 *3  K I 3AWDÔ 7  ',    (! / ÿèëe 73#735#35#35#'67&')¬¬„„„„„„( 'c%% %&eZ? $ $     ÿé_Æ7#"''32654'7##5_ %Æ< ?ËÝ\ÿéôÑ)-173#3#53&'#53&'367#3#3##5#535#735#35#©9&—"8*9$v1BBAA1OOOOÑ   7 +P/2ÿôîË 733#3#53kbbnÚWËFi ÿèõ 7'67&''&''&'*¸  )  %       ó™ )-7367&'#"''325567#3'67#3#4‘  6  sR8 /:““™   # '  7MÿòòÎ#73533#33#53535#35#35#35#35#Z>??3¥/>#NNNNNNNN·‹‹;665[ÿéõÏ.73&533#3265#"'&'#7&'3#67'675#cF65   Gs  cA$,£H,#/]>   YB G ÿîóÐ$(,733#32767#"&55'6367#35#35#T U <Ÿ5J  WC 2Q J< MT iÊ7\ (QJ/>YyÿéõÏ73'67#'6'665&D  4 ' 'Ï! % [.B9:  ÿé[Ï7#"''3255'675#53533#W    eB  4>**7nÿòôÇ7#3#5&''67&'76ðos†] DZÕ&  ‚<÷Ï(73533327#"&55#&''67&'767#‹&    ´@ #.      ÿèiÏ73&''67&'67#5367#3'     Ï)L.  "$i!5# eÿðóÏ73533#3#3#535#535#'6ƒ22//7„;11$ Á888888 &QÿòôÂ73#3#3#535335#b:22?£$?ÂLK}}ª ÿéóÏ<7&'#673267#"''67&'#3#"''3267#'66553'3  5D      ZD   / lÏ  8&*5$!*$ .G*G% < 9- )P& >óÑ;7#673267#"''67&'#3#"''3267#'6553&'33&'7ìN     VE   2g »0  %0 # %/  ÿéñÇ&.7#5##535#53#'#335#"'&55#'655#33275ãž>LâK##až#- %*uŠ¡¡****{'*+%-ÿéöÂ73&''67&'#367šU     Â`4!-T@''@ ÿéíÄ73#3#5##5'67#35#ÚuŠv1&O;aNÿèôË'+?CIO73267#"&553'#33267#"&553'#33533533#3#535#35#'67&'º  <g  <- -!!)¦* 3-- M   Q<,  Q<,O+     VÿòöÑ 7'67&3#3#3#535#535#¥& 2 ' #JR!33C˜B22±)&- '+**+ ÿèô\73533#&'#5'67#deW%8 <$": 7#UI"*HH'!OWÐ 7&'&''6.  6Ð   NTñÐ7333267#"&55#'67#53‚0   7 -$&ÐC :8+yëÑ 7#5##53&'7&'''6ë­c & & (»,*       ÿéër"73#3##"''3255#'67#'735#Æ.66  %O FGf„r!.  *0  !ÿê÷Ð#,5;AGM73#35#535#53#5633267#"'&'367'7367''&'7&'&'7&'l!(@@“==@T».p  " P" * ] E \ Ð[Vd9*3Cc  pc  o        UÿêìÑ#+/373673#53&'35#&'735'6#5##535#35# !  "—'//  (*Ï#""""#]####3"""pâÎ 7'2'6'&''&'Ø Ps_QA  8  Î "    ÿçó{!73673#&''67&'67#367 K…2 %! /)> <! BY  d  '    !BéÏ767&'7''63#735#c48 #NX+  xxÏ  -? ÿîõ< %7&'''673327667##"&57&'yC+ 4  Š <  $)  1 _òÑ(7&'3267#"&''7&'7'#5'6° AJ  , 2.K  'Ñ   % F3 YÿéøÐ@73673#67&'#"''32655'67''67&''67#53&'…   $?      + /"" # 7! Ð   :#;""$)  ÿéöÎ73533#&''67#]b^N G!W a\”::_"!WI/7M ÿéòÓ16<@D7#3#3#3#3#5'67#67#5'6553&'7'#5#3535ò?4500008ˆ  EZ!),,,Å   #  1"E4 4?^  &ÿèòo#)/5;733#3#3#"''3267#5363535'67&'7&''&'‚PŠ˜   —:*vvv2  Y   o1  T;      AÿéðÈ048<@D73#3#"''3267#3#7&'7&''75#535#'67#735#33533535#35#U”hyD.. 1;=//   +m/È>l&S/ / Hÿõ÷Ä 73#735#35#3#`€€XXXX,¯¯ÄœW2v1duÿéïÇ#173#3#5##5##535#3#'3#3#73#3#5#535#535#ux35$#44M%%E$$%%F%%BhUUWWUÇEE4 a Qÿê÷Ð6:>B73533533##3#3#3#&'#'67#5367#535#535#5#5#35#335W:(;;<=K9, 37 +6?7988%i:$$7'Å  2  #&  2 ?XÿëòÎ4973533673#673267#"&55'675367#535#67#i ! 3B.& ,2   )# ;/ < ®      .     \óÇ!7#53'67#3#33#"&''67w^Ð F??<512 µ   * ÿçêb73533#7'7&''75#75##5#&PPP; Rd_P <‚XÿéëÏ7#5##5##535335#335ë,+??++?,¡tVVt..O<<<jÿéëÏ 7#5##535335#33535#335ë[68$$8#[$$8#¢¹¹--J777888 ÿèôÏ)/7367&'3267#"&5'3'655'67'&'&*  (7P G$)"8ÏB E  Ë|A)$4L ÿécÏ 73&'73#3#3##5##535# "VEEEEG  ² V V6$aÿéëÇ$(,7#"''3255#'6553533#3#535#3#735#ë  WG>>ÇÄ  ¬SE4 4A_16= ÿéóÒ#)/5;73#3#3#"''3267#53635#35#&''&'''67&'[e—¼¼µ ³/!ƒƒƒƒ{    M >  ÒP= & *.e  bÿéóÎ!733#3##5#53533'66''6ª++5<?6>3 /9N Î <<;;$*4 -& >ÿéôÏ(7#5#'67667##5365333267#"&5ê1- -B   ¥7$F!&5(&9HU  WÿèöÐ  7&''6'6'6'66¥' &( 2#0 .0 = ;681 .5Ð!"$ $ , "&$EÿéöÐ'+/735333##3#3##5#535#535#535#535#33535X8>>GGSSKK;;99GG8K+++¼'(((% IÿçôÏ#'-373533#3#535#735#3353#735#35#35#'67&'\999K«L9'';'v‰‰cccccc$ !C"" !à +   E_C ' '     ÿêôÑ *7#5##53&'73#3#33#"&''675#ë­c`¢EDD 1*C/ *H»,+  3-0.;!l ÿéíÐ73#'66553&'ŠY¶ [Ð N@2 /!Y ÿéíÐ7#'6553&'7í¼`»N@2 2;Y  ÿçæÉ "073#735#35#35#'33#5#'65#535#73#3#5##53DvvPPPPPP=D# RE·CE3CÉiK++7bk8 srG67l>ÿçñÇ %7'66553'#33673267#"&5o ˆ``I'" '/   ( €E5 3"`G4! *  * $  HÿéóÊ #BFJN73#5'675#73#5'675#&'7&'3&'73#3#3#3##5'65#5#35#XC1ND18^8$982222<} =.....ÊW  W      4R   ÿèïÈ&*48<73#67&'#67'5#'6553#3#7#335#5355#35#¹5U   D½&''•••/''B///H    98 B, ,7m<V1 + ÿëõË#:>BFJ73#3#5##5##535#3#73#3#73#3#327267##"&55#735#33535#335ÈZdQReZ;;d==e;;e==rµP  B Q>>R=>>R=Ë /99 0 (  M   -/TÿéóÏ!%)-73533673#3#5##5'67#535#67#35#35#i+-/BVI  36+? IIIIµ  ue oA_ÿéò¿73#3#5##5'67#35#p‚FR:  &()::¿#"~ c1D¤M8ÿè÷Ñ!%)-73533#3#&'#5'67#535#35#33535#335MGGG=/( )#, . 0>G**=*g**=*¾]"+KJ,']99FÿéôÑ'/37;73#33##3#5##535#535#'6553&'5#35#5353535#ª==//0F(''2A 22':DFFÑ #$J J B1 2>Q>>>Q>½`!,IF)!`:<1ÿó‰q 73#3#735#76767'7&'5NNFF"" &.q ,"     sóÏ73533#3#3#535#535#W^^VVjæhOOWÁÿéóe$(-733#3##"''327#67#5363&'#33657##&'#0§  ›=.A 2>0e!  ; ÿéåÆ ##53533#'##35#Ñ¡1g11@0¡1‹RR‹ÉQSS ÿêNÍ 7&'&''6$1Í  0  / 0-+LÿìòÏ&73#5#3267#"&55#5335#53533#3Å&   * 6"??KK&„V 0  6K7O O`ÿòóÃ7333267##"&5477#d~[ & )NcÃ| &$iNÿþó²73#3#]‰‰¥¥²ŽNÿèëÏ73533#"''3267#'65#Y1M  9?<1¢--‡/sfA ?[KÿéõÃ73##5'67#&'^“@' 9>ià ±‡*"5F5(&%GÿíòÌ'73673267#"&5'37533#7'67¨  T'0ÌTY   —”¼>g ?ÿòóÏ73673#3#3#535#'67#M5Y] j9D¤J' 00«!II-5EÿéóÍ73673#3#5##5'67#35#M9X] dN  ,46NN¡tY)0‚>vÿèôÏ767&'7''6¶"")  -- )ω:/1 SˆÿéõÏ73'67#'6'65&¨:  +  )  Ï! g-2[+ …ÿéõÏ73'67#'6'65&¤>  - ! )  Ï!  "_-2[+  ÿïhÏ !'-7&''6'675#535#53#3#7'6'&'4  <$+##:!!/Ï – C?6ÿæò‡#'5;73#3#5##5##535#3#73#3#73#3#3#''67#&'#6ÇYdQReZ::e;;g::h<"  !&:    e Z Ð N= 49  .4,.(*4B  ™  ÿçìX6:>1073533533#3#3#67&'#7'5'67#535#535#5#35#2677//Eb O"  / H:((2y666I    &      cìÑ#7#5##535#535#53533#3#535#35#ì³aLL^^^^LL;;O<<‡#$ " "  2RÌr 73#735#73#735#2DD%%EFF''r uÿéîÏ!7#"''3255#&''67##5373î    !4¨§  "B­¿''‚ŠÐ7&''6767&'i +1¿ &#  ÿézz7#"''3255##535#35#z  44444zx  3‘(<añÉ73673267#"&5! !(  $É"    ÿëõW73673267#"&5# #* %W#    hÿìõÄ73#3267#"&57#;5#hk!#  -06""""ÄpI !+  ­JJÿéîÈ!%+17=753#3#3#3#"''3267'#33535&'''67&''&'ÇZRRRRc aDDDDDD5  z f  @ˆE%-v'/ " Pÿé÷È#'+/T73#3#3#&'#'67#535#535#735#35#5#35#367&'#"''3255'67&'767iu$$,% * +.$$PPPP:%%%  !   ÈC ) ' **      ÿê_Ï7367&''65''6,  ! Ï9    2 *@=) zÿçøÏ'767&''67&'&''67&'76  V  È    O ( # "xÿèøÈ7'6553#&'7#3 ^ " & 88d2/ &/dL \Q> DÿéøÑ048<@DLPTX733#3'67#7326567#"&55'75#'65533#735#33535#3353#53535#35#35#AAS@-/ ! 1kk-J- ”"!Ñ    J=0 07UH<$ ! !$$$gÿêòÏ(048<@73673#&'#5'67#53&'735'2#5##535#33535#35#â  2 . ;BR!!2 R!!2 Ï     $   sg g%:ÿébÏ7#"''3255##5##5353b !©t  \­­yŒ&& ÿè÷ÎJN733&'76767&'#3#3267#"&55#'655#535#'67&'767#5#"Y RAA   ) "J AAA   Dl"È"#        *+ !  1."*  n** ÿêsÐ73653367'5#'667##   Ÿ1†  ƒn5 B= ÿéjÄ73#3##5#535#Q%%$$ÄIllITÿéóÐ#)/5;73#3#3#"''3267#53635#35&'''67&''4'›;\jjh j III  P  K Ð JA-… (_  lÿéòÏ $*06<73#3#3#"''32767#5363535&'''67&''4'•=Xhhk k EEED @ÏM> &‰ `   NÿéîÏ#)/5;73#3#3#"''3267#5363535&'''67&''4'ŒCbuut tPPP P  K  ÏM> -‰ ` ÿé`Ð 73&'# Ð?oÿéòÏ#)/5;73#3#3#"''3267#5363535&'''67&''4'œ8Q__` `>>>? =ÏM? ,‰ _ HÿèóÏ73533#3##5#535#7'6'&'SABBKKLLA}  ]  ‚MM*JJ*U   ÿéKÐ73533#7#"''3255'675#     ¥++' V H2>ÿè™Ï%+73'62655#'67#535335#4'4'i" ### Ï ¯ IG( AOO> ViòÉ733#"&55#'655à   É@  5  "œÿçõe73&''67&'#367žJ    e/     "cÿïùÃ732767#"&553#"''3267x 3 :)~  ¯  ,  »_#D ÿéZÎ 7&'&''6*-Î .  3 /,+ ÿékÏ733533#3#5#'65  90Ê=BB)iW6 $4lÿèóÏ73533#3##5#535#7'6'&'u12299::1c  Q ‚MM*JJ*U  Yÿè–Ï 73'65''6ƒ-*  ÏK`< :U 4*)›ÿóôÂ73#3#3#535#535#ŸR #Y$ ÂKKKK _Â73#3#67'675#535# M#+Â:; B: VóÐ !(:?CHM73#'673#&''67&''667#'33#3##5#7#5;&'#3377##&'#+S] ‚B   )}W K   Ð          . z<õÃ$)733#"&55#'655#53&''67&67#Ù $ e     0 à   N      ÿîó7 73#53535#35#35#Ûæ##6""5##7666$$$$$ZïÐ7353#5#535#535#733#3#3##EII>>E}FF==IIÀv " !ÿéóÌ "733#67'73673267#"&5!>>! * g# $*  )ÌGn  ÙKb ! ÿéðT 733##5#53vffffT==!TïÐ "733#67'73673267#"&5!>>"!* h# $* (Ð$0  s.   ]ÿë÷Ï#)/7&'36732767#"&55'67''67&'œ )   t  Ï .T6Mk5$  X6% + ")*! ÿéqÍ7#5'67#535'673#&I  '(+% (( Qh`#0& *eÿòõÆ 73#53535#35#35#âAAAAAAÆÁÁA/o/o.jÿéóÅ73#3##5#535#'6'&'sz6<<::1f N  ÅcVVc * ! "#%! ÿélÍ73#&'#5'67#535'6^ %%   #%*Í* o_#0& ÿéóÊR7367&'3267#"'&55#353367&'3267#"&55##5#'655#535'6 ‘   7 %2    %)('' )È   &  %  (CC$   *0jj :% "0 ! tÿéøÉQ7367&'327#"&55#&'327#"&55##5#'655#535'6735336{Y   Gb      É    g  %&jj?' %6,6JJ&  ÿétÎ.26:>73673#&'3#5##535'67#53&'735'235#33535#35#k ( " $7$  !,#7#Î!    'g g*  Ÿ=dÿéõÏ#)73&''67&''667#&'&'–<  !$ " !  /$ ""?+ *=Ï "      ]   ÿèðÑ &,273#3#'66553&'#53&'367#'6'6'6„^# 1µ 5 &X7 V ^ 2L P98U \A5 ˆÿêõÍ 7'6'6'6Ô0 01 ,"!? =Í *# ' 2#$ ÿè÷Ê 7'6'6'6ß- +*'/,Ê ) $( /  ÿè–Ç$(,7#"''3255#'6553533#3#535#3#735#–  VG>>ÇÄ  ¬SG3 4A_16=]ÿéõÐ!273&533#3265#"'&'#7&''3#33#7'7537iM)(  Mv  _::&0‘"#??8$WD 7$, _[ÿèër 73#735#35#35#'67&')¬¬„„„„„„) &d%% %&rbE (( "     ÿêÐ %*04:73#'636733#3##"''327#67#765#7&'7#7&'.Ua `   Q^8)9$Ð ^$(#  X))#  ˜ÿêôÎ73#&''67&''667#´4       Î#(" 2&-|ÿèõÏ 73#&''67&''67#675«C   )  ¥F$ 5@$$( ÿéõÃ73##5'67#&'ÙU &0C2m*(#/à ª0".N+"/++UÿéöÏ73533#3#&''67#53655#l022<;0*3 8 8:0¤++#:43 %3# ÿêùÉ59=7327#"'&5#'66553#7&'7&''75#535'235#335Ò  ˆ † // 2;9//6.Édd$#-ˆSF4 1$_J  !J^&&& ÿémÉ7#"''3255#'665535#35#m  ' &&&&Éà 94( 2#`:(a(aÿêõÑ3733#'65537#'6#3267#"&553#"''326•A#nF8 M,  (P  Ñ=3' (/G [U  l8  ÿé]É7#"''3255#'65535#35#]    Éà 95' 5@`:(a(€ÿéôÉ&7#"''32767#3&''67&'767##5æ  >Z    DÉ4J5$     qßhÿéíÇ #73#3#735##5##535#33535#35#h…… ssMMi]&&8%]&&8%%Ç9:o o*?YÿéôÏ7''6767&'À ;; 3,6[06  P{A8*  " ÿéòÉ73#3#535635#'67&'ÆO=•0Aã'R     #d0 0  4 Ï         0(C /HHIYbÿçíÐ*.267'6553&'73'35#'27655##5##5##535#35#35#€  31hV      w79 :o  >-Af #$$&&;z.Sâ½73#"''32765#'667#]…<#½' SA2h  Š''N-*C>.-PM  ÿë|Ï"(73533#3#&''67#535#'6'&'%)).0  #*-%M  9  ²;  ' ,D  ÿéöÄ73267#"&55#'655&'¹   U*1Ä·   ªI.:%RS@$ # 0ÿéŠ73533#&'#5'67#<    }   Y_ !,}ÿèõ73533#&'#5'67#‘)  } 51ll.2ÿèïÂ7#53&''67&67#2± 5"8 6()=C"5D+ t ¯S;&&!?0/\ 4XS^ #^  ÿêVœ 7#5'6C  &œ{X / zõÏ!767&'7&'&''67&''6\  !$  *- =+67 7# &Ï        ÿéŠt73#67#5'675#35#35#75#s%* %++++++tJU03‘ÿéët7#"''32654'7##5ë  0t"&y‹`ÿèîÏ#)73'67#'63#"''3257&'''6ˆ^ O  '  8  IÏ   *ƒ  _)*-'/( )kÿéìÎ73#"''32765#'6&'—N   C   ΄k!3  ÿéÏ!'-776767&'7''67'67&'''674'( ! #)0  C  3 …<   /)t  ®ÿéïÀ7##53#"''325ÜA   ®Å×™  ÿèïÐ"'7373#3&''67&'#'67#67H…n, +#%2 0  - :D`  ­#1 '8);K5!"†ÿèôÐ73533#&''67#7&'Œ$*& # &#O  ŠFFP.%9?'ZP ÿéØÏ7&''673'67i  3 e$-; ˆ œ   @$4%"z }È767&'7&''67'6767b ' $+–E*  +"95mÿéõË73#&''67#53655'6ä 84, ( (-12,AË7J=9!I(qÿéìÈ7#"''3255##53#3#735#ì  UAA77ÈÅ  ­Ìß,W5|ÿèíÎ73#"''3255##5363#735#ª9   M" 33Ω  ‘±Ä:lNkÿé÷ÏBH73&'33#673267#"''67&'#7#"''3255'675#535'67&'§ )(        Q  Í. )I) &  #.#  6  *+(qÿêõÏ $*07&''63#3##"''3255#535#'67&'¬ $9//   22PÏ $%#C  ?7 pÿèõÑ5;7''6767&'&'''63&''67&''667#Õ *. 1 6     *Ä " 1  %      rÿçöÒ'-O7&'67327#"''67&''7&'3&'67327#"''67&''7&'7À >I  !  CA !  ($Ò     L        ÿê`Ò"&*7&'3'73#67'7''5'635352 .     Ò X-   ‹ 1# ÿéSÏ73533#'#5'67#   //|v'. ÿôsÏ 73&'73#67'676'&''(eH *4% ¨ 92 77.03,uÿéóÏ 73533##5#u4664NN…… ÿônÏ 73&'73#7'676'&'' $`D (1#¨ =- >0.03, ÿôiÏ 73&'73#7'676'&'$ "[? %, ¨ =- :4.03,bÿèôÏ73673#'67#''6767&'t!EH&& ` " ¨&hD HWX#)  -RI*nÿíõÍ&7773267#"&55'75'75'6Ú 9 9#@ ' +ÿèòÐ!%73#67&'#67'53&'3535~ DM "% Y .%"- J){{{Ð f   KM Á ))sÿêõÉ 7#67&&'#67'53535á1  " " FFFÉr  /)V  Ö0ÿêõÇ7#67&'#67'53535é+  .  444Çp  !JV Ô/ ÿé„Ï/37;A73533533##3#3#3#'67#5365#535#535#5#5#35#335&' ---.58 , " +0+,++K + » 0 '  0 9_   ÿïkÃ73&''67&'767#S   =ÃC1,2" .vÿíôÐ"&*733#3267#"&55'6367#3535#™4 O  % '$ ÐT1 }$3333H õÒ17;?EK73673#67&'##"''3255#5'67&'767#33&'35#35#'67&'W/H&  +  1  %= > 1JJJJ f½  0'  $.    : ' #   CÿéøÏ )-157&''63##"''32655##5##5##535#335335˜&+ *( . ;KKr *Ï#(# i 1111=‚3!!!!!kÿéõÏ73533#&'#5'67#%+' -$#¡..69$(st2(D ÿétÐ $*06<733#5'667#35#33535#335&'''67&''4'+%O   +   B@Ð cW *C/" MÿçõÏ !7&''6&'67#53&'›#) &%'2 %`x&-Ï,/,%   X PíÑ73'73##5##5#&'''6c bJ$D°  | ¸ UUUU ! ÿðöÌ#7&'332667#"&57&'''6f$!  '"…  š Ì!+†# ‚-6 8,C. 7 ÿísÃ73#3#7'75375#735#R ,6%++ÃP1 XTg,pÿéõÐ%)73&''67&''667##5##535#–A $    2H@@@Ð        a\\<+ ÿíiÃ73#3#7'675375#735#K(0 %%ÃP1 XTg, ÿí^Ã73#3#7'75375#735#H"*  ""ÃP/ XSf,`ÿéóÏ16<736533#3#3#3##"''3255#'67#5367#537#5#&'l*DEBET   9  %!)Y+  ¸ 4  1 "* ^  dëÍ7&'73#5##536'&'x  _ +­‘ƒ  Í ,* ÿéÓq73#"''3267#'67#536e\   KD = 58q L5I4ÿèñÐ26:>BFJP735#5#53535333##3#3#&''67&'67#5367#735#33535#3#335#33567#]QQQQWm†+ #'/(+G4$% -?C ==Q=Ž==Ž==›JJ^DD Sr 0     f # >R  ÿìòÏ873533#3673#6732667#"&55'67567#535# ?@@' >W)?7 % ##* +>IFQ3 `  % 6 0 (\3Îy    !  ÿòîÇ 73#33#537#'67#&'&'Ï…o:Ý\  6Rljv4.AQE  ÿéóÏ,B73#&'#5'675#535'2353#5'675#73673267#"&5Õ %.dd+= 9%*6 @+ff$(Xe8!8‡    ÏG.)IG)-GJ G      ªÿëõÍ733267#"&5ª   ÍÇ   ÿîóÃ4873#"''325567###535#73&''67&'7667#3#$¯"*  ";4!!sI    3‘ææÃi o#Pf>,)       y£òÐ 73#53&'ƒcähÐ  ÿêñ|73267#"&55#'667´    D|q  c;2-C •òÐ 73#53&' cålЬòÐ 73#53&'„bäjÐ ÿíîJ7732767#"&55'75'6¾$(_a) 8+ORPJ  <òÐ 73#53&'3#735##5##5„bäjC¡¡{{­·Ð +/,%'NÿéóÊ73##5#535'6Ü  HHII6 BÊ?rr;lÿéóÊ73##5#535'6Þ 99::( 4Ê?rr;QÿéòÏ73533#3#5##535#35#QFGG8X4F&XX222pp2~9MÿêëÎ73#"''3267#'6##535#‚b   X#J9&&Ί(q$'XgG5WÿîðÏ %7#5##53&'736732667#"&5ínD @- &5  /&¬.. /0 0   RÿêòÐ 7#5##53&'73##"''3255#ïsA Y A   K®11 ?Y  VIÿé÷Ì"(.73&'3267#"&5'3'67'677'6'&'§!   (.* aw  ÌcL  È}>( "3R & SÿéóÂ73#3#5##5367#35#35#S JE`.A````¦¦`-l,FÿéòÏ!%)73673#3#"''3255##5'67#35#35#Q0Zb `  O  '/OOOO° € 5|  #CB @ÿîôÏ#)/5;CGKO735333##3#535#535#535#33535'67&''&'7&'3#53535#35#35#W:>>O«I::HH:M***t  I  >  A°()      =       333#####KÿéòÇ!%73#3267#"&55#'67#735#35#35#a{"    1 *SSSSSSÇ‘/   57+fAA ÿíqÌ 7&''6&''67 %  'Ì ",*$-CÿéóÐ%+05733#3267#"&55#'67#5'667#367#335{G 0/   ?91 %3 :  #(;,Ð  K;  ?6")B 8%KÿñóÄ#73#3#3#535#535#735#33535#335Z‰:::J¨J<<;'';&a'';&ÄsCMBÿéñÆ!%7#'66553#3#3#5##537#33535# 5 3==2I+3hhh5IIY?/ /$^>UUu} IÿéöÏ-73#35#535#53#3267#"&55#'667#56‡**d**+?% #Ï sI  L., $%kMÿðóÐ %73#5##53&'&'''63#3#535#› DuB0  $ '‡:I¥F7Ð .1 : -22MÿéïÏ #/73&'73#&''67&''63533##5#[9 >Ž  Z  hGEEG´    -   ;>>Uÿééà 73#735#35##5##535#35#_€€XXXXvlllllÃ[668m m'<OÿéóÏ(,073533#3#3#535#535##"''3255##535#35#X=CC;;J¤F33=ˆ WWWWWÀR\  $t 0JÿéòÏ733#3#3##5#535#5335#35#ŒKK?6IIJJ80[[[[Ï^++^&:RÿéöÄ /7#3#3##535#73#535#3&''67&'767#š53333""@FF11K     5ÄO0Û=+M)L/$      ÿéöÓ!%+37;7&'#5'63&'3#735#&'735'6#5##535#35#}36 e OCK··@@  @@".|||||Ó     &B!  !!  2T T*LÿêöÏ!%)-BH73533&'73#3#5##5##535#35#33535#3353533##"''3255#&'QC G<))F ‡‡cc4%«'ycccà   */$  (= =! ÿéIÏ 7#5'65  ϳ‰2[ÿèáG 7#5##535#35#á^^^^^G_ _!1LNžÈ73#3#'67#'737#37'SE +  È &  7  MôÈ&7'67#'737#53#3#33267#"&5Ç I  t     GÿîõÉ #'+/373#3#735#33535#3353#3#735#33535#3353#U••‹‹**=*g**=*†¥¥ ŽŽ++>+i++>+Ž®®É @& $ $ @& $ %Cÿé÷Ñ  -:7&''63#3#735#73#735#&''67&''6–%/ /%+ :JJ @@=@@I `  Ñ!!;;/   "   GÿéóÏ$=EIO73533#3#535#3'67#3#3#535#3#3##"''3255#535##5##535#&'QCCC<Š;C¤ Žr+K¢D4¬ 44‚FI Å   $    #   D D*  IÿéòÆ #'+37;?C73#735#33535#335#5##535#33535#35#'#5##535#33535#35#]……'':'a'':'"--;--ÆT262xx-L  **>M.‘íÆ7#5##5í²Æ5$$5 ÿèõ°$*/4:733#3267#"&55#'67#5'6367#367#35#&'YS 4<  * KE8 0G G -4B>74  ° G& -0#7   <##( :ÿéöÏ$7367&'#"''325'3'67#  *+   D9 * %Ï- 4!'@h  Ž/%2@ ÿîCÈ 7&''6#  ! È f 1-+IÿéôÑ 48<7'6'6'&''&'35#533###"''3255#535#75#35#Ô8V W2 /%  E;Ž@   ;;E„,,,Ñ     E**"  )ÿéå;7#53#"''3267#'6\EÎ _F >)9 3   ÿé‘Ð 8<@DH7&'67&'6'&'63#3#&'#5'67#535#735#33535#335'   Z      .r199  ,6//N/Ð     .K  -0,- ÿêæÎ4;73#"''32765#&''6677''67&'767#'667#Aš    + . (   " %> "Î Š!v1#  ,  %# %- *›ÿéëÀ7##53#"''25×(P ­Äן  ÿé”Ë  $7'67&'&''6#5##535#9A+L999Ë $" 1^^<*.ÿêð­.4:73533&'73#673267#"&''675#'67#'6'6<"0  2W/-," +  ."€ $& ’  m %  u@B!c     ÿçõÓ#5BHNT767&'7&''667&'7&''6'67&'7&''6&''6'67'67'6e$& ;CT   $]  &+P0< 7;+7 O' 2 69 .S XN :n qÓ               %  + aÿêóÄ73##"''3255#a’1   MÄ­  ªrÿêóÄ73##"''3255#r*   CÄ­  ªQÿéèÃ73#"''32665#'655#qw  5<9ÃmV PR?T42H?UÿèöÄ7'6553#5#&'7#3…x 2 8 0OOj C5 4?]f F*0RG4aÿéóÏ '73&'73#67&'7&''67'67676b>=‘f/*%* 87, ²  X "( "%-(XÿðóÄ%73#67&'7&''67#3533#3#535#d†@!# /50577D›C5Ä+# )u ''^ÿéóÇ$*73#3#5##535#35#35#"&55#'655#5#3^•.(a)/A'a aÇ"©©"""§* 7* "772fÿéóÁ73#3##"''3255#pyy %  SÁ.j  fUÿé›Î7'6'67#~  #Î-_ !( xœÿéóÁ73#3##"''3255#¥EE W   'Á.k  gyÿêòÐ%)-157&'3533#3#"''3255##5##535#35#33535#335Ö  N422- -4.H.Ð !!ˆ  225Ÿ@GTÿèôÏ (.473&''667'6''63&''657'6''6¡% +(8  \ ,) *3 G: ] Ï$' A(&#!* V=õÑ 7&''6&'3'67#£' '% 4 *w ^Ñ    Oÿìõ@!733267#"&57&'''67&'€) 5 €  @;  8  $ EÿçõÏ/73#'66553&'#3&'36533#&''67#§ 2m#9@[[A!6+ ,)/ *Ï ?@1 / X #  ),,*@ÿéöÐ-1597&'#673267#"''67&'#'66553'33#3#735#Û  %*      H YQ7755Ð 4!3"*3*,BH<- +S##%E#`ÿèìÉ $(,73#735#33535#335#"''3255##535#35#`ŒŒ++=*g++=*  YYYYYÉT231g  )#4OÿëžÎ73#&'#5'67#535'6“    #Î( b^ .#WÿèóÏ -73353353#3#3#"''3255##5##5##5367#`&'‰ œHG 0@À&55&7S ?JJKKVg ZÿéîÑ 473&'73##5##53&'7367533##'2655##5##5_8 =‹n% "  ,5  ""¹  #((   2; 'XX?PPÿéõÑ #37;7&''63#&'67&'6'#"''3255##55#35  ( %$* 8HH=    +    3 1Ñ$$! !$ (# #("p  .‡%AÿíóÐ573673#3#3#3#3#535#'67#5367#5367#53&'   "D@CV\Z.:‰;$ ,!($(4'Ð   ""+   PÿçóÐ#)/7373#33#53537#5#35#3#3&'''6c=8<6—/9mRRRRRR *# ¾ww/  >ÿé’Ï73#3#"''3267#'667#53&'r!#     Ïd*S27>L}óÏ 73#'6¬=D Ï "•ÿéõ!73#3#&'''67#53655#'6´+     #& ' # Pÿé¤Ð#73533#3#3##5#535#535#35#35#P! !&&&&¹[%%[<: CÿéöÐ!%)-17=CI73#3#3#535#535'65##5##5#35#35#35#&'''67&''&'lr  i""!  o d    Ð ... 9......@.....I  Iÿé÷K73533#&'#5'67#WBC6% &* *7>   86QÿèôÏ!%6:>73533533##5##5#3#53&'3#735##"''3255##53#735#Q$5$$5$UA›D+ssOOt r$RR00Á '* 'K  7Ra+ ÿéñÏ'/37;73533#3#535#&''67&''6#5##535#3#735#[``jâf[*   ~   5’’’llIIÀ::      ?l lQA ) aÿéóà 73#&'#5#a’H*6Ã*„ÇqÌ73533#67'675#" ,3"”88JQOÿéñÍ73##5#'66556Þ *9j&.(>Í +……D:1W!;ÞÉ"&*733#5##5##53&'767#35#35#35#35#!½") ???W  ??S??S??S??É  __ =- ÿè‘Ï(,26<BHNT73#3#3#67'75#535#535#535'235#&'735'6&''&'''67&'ƒ 661111B283322::7! +       8  -Ï =   =  d   Y  ŽÐ&*.2673#3#3#7'675#535#535#535'635#33535#335 05500//,2@000055,5 /M/Ð  ?    ?  K ! îÏ73533#"''32767#'67#™,    ©&&h  ?.6"HMÿé÷Ê -73#735#3#735#73#735#3533#&'#5'67#lkkCC'AA>AAfCF;& %( '8Ê4177:  !98ÿégÏ7#"''3255##5##5353g "©t  \­­yŒ&&ÄÿéØÏ73#ÄÏæMôÐ &-BFJ7'6'&'73#&''67&''667#'33#"''3255##533#735#z K  >     #b/ L255Ð         0)C  /IY% mîÐ73##5##5#53&''67&'€`G#C`2 Ð 7788 *   \ôÑ #)BHN7&'7'673#&''67&''667#'33#"''3255##5##53'67&''  a 7=     $e0 0  4 Ñ        '#:  &@@@P Kÿé÷É+;J[k73#3&'7'#"''3255##5##5'6735#''67&'7'''67'76''67&'76'''67'76Y’@,    ))  *@m    4   =    7    É    „™™ž£   6        7        SÿéõÑ "(.7#5##53&'73#3##"''3255#'67&'ïf<6TT“A   >c´10 +J  G PÿéóÆ $*73#735#35#3#3##"''3255#535#&'gyySSSS"–!!  nnf  ÆQ003,  ), SÿéôÏ&*.736533#&''67#3##"''3255#3#735#a8>A$ "& & 3¡  vMM))¹     9X  U>ÿéRÆ7#"''32654'7##5R Æ;  <ËÝ8ÿè¨Ï!%)-73533#3#&'#5'67#535#35#33535#3#3W    ) ) ¹V @@"$V95 ÿèô]73#&''67&'#53&'67†_. "&:B.24 7$'k' ]   ! oÿïô•73533#3#3#535#535#'6‹,,++2…?..! $$$$$$ ‘ÿìõÏ&7773267#"&55'75'75'6Ý ()/2    %Ï(  '  4  3&'#UÛÐ 73533##5#735#335#RRRR>>R>¸K''' HóÐ73#&'#5'67#535'2Î #+gR!3 ;$"9 2 Qg!'SÐ)43% `óÏ73#&'##5#'67#535'6Î MgM / :$"8 ,!LgFZÏ "&&  6ôË4735#533#67&'#"''32655'675#&'#535#2ƒ‰œ#`   $?   *38-4 ¡ƒ­ ;       .êÐ'-P7&'67327#"''67''7&'7&'673267#"''67''7&'7  kf   %4- 2$NB   kf  %&; 2$NB Ð       2       w|íÏ 73353353#wvÃ5AA5Gdÿêèv7&''673'67  %B # LP  +@dÿçõÑ7>7&''6767&'&'''63&''67&''6667#Ð .4!4 !:  # !   1Ä "  3  %      `ÿéóà 73##5'67#&'g‹8(?`ô†, .P5)'%bÿéóÎ73533533##5##5#35#35#b<<+<<<<¤))**§¨88ƒ8HÿèôÏ*.7533'67#3&''67&'767#'665535#< &4!  Q"!!¯  10$    ;/ ,TD1UÿéôÏ1767&'7&''63#3#&''67#5367#'6• " 17U/B;- . : 6 6< Ï" ! )! '   MË73533#67'675#  ! ”77N VRÿðôÉ +73#3#535#5#35#3353353533#3#535#\“-(‰(-T&&t8::F¢H8ÉOO=+++++X!!pÿìõÍ "733#67'73673267#"&5p""  ?   ÍJl  ×Q` # hÿèôÂ$)/736733#3##"''327#67#77#7&'7#7&'hn   blG 6J" q'**'=&&*>>5  z=!5 bÿéôÅ73#3##5#'67#535#5#qz!!"'$ !O!ÅLjj@* &7LLLLuÿééÉ 73#735##"''3255##535#35#yjjBB\ LLLLLÉ>=x  1‘(;TÿîõÆ $(73#735#'67&3533#75##5##5#kttKK"   Z† ¡€Æb@&   …OO====== aÿéòÈ #'+/73#735#73#735#3#3##5#535#735#33535#335f??6??S|4==AA5""5!V""5!È11/W((44FíÑ%8K73#3#35#535#535#533#5##53567&''67&'76&''67&'76S&&&&•%%$$&8µT         Ñ  ]''T     (      ÿéóN733##"''3255#53567#4• dd   nnqN   Fÿìòz$736732767#"&5'67'533› & #@$ 2z-  2 D@  ‚!lÿéôÑ 48<7'6'6'&''&'35#533###"''3255#535#75#35#Ù 'I F%  &  5.t 3   ..5gÑ    D)*"  )dÿîöË$(,0@76767&'#3'67&'767#3#3#735#3673#53&'¼    2 B<  )(11bb<<   "Š Ë      H 6  39-   VÿéõÈ 37'66553'#33#67'7'3#3#535#535'67# }XXPc7   ))1y5** ‘.F4 0$`7&!   jçÏ 73533#735#33535#335j55}##6#Y##6#¦))‰N)))e***c òÆ  &73#3#535#35#35#"&55#'655#5#3c-&‚&,>&\ \Æwwƒ ,% ,,'l!ëÆ 73#735#3#735#lWW88Æ¥S2V òÏ'+/735333##3#3##5#535#535#535#535#33535l,7799GGBB66--??,?$$$½""#ZÿéêÁ 7#5##535#3#735#êhhhDDÁØس¡ a=gÿêöÉ 7#67&&'#67'53535ß6 !&#% PPPÉr   0(V  Ö0PÿîòÄ !-73#&'67&'67&'63#3#535#[““   :   =   o”AG¢G?Ä   S** ÿêUÐ7'6'67#>$ " ' Ð )[#( ‚MÿìõÑ %73#53635#35#3#3#3#535#535#–A„.\\\\™B::H¨L99CÑ \\ 09:nÿêòÏ73533##"''32655#&'nR R  ›44ƒ ~$ &ZÿîóÄ 733#537#537#37#37#g ™"%''32/52ÄÃNOOO°NFàÐ-3767#'673#"''3267#&''67''67'367#>  %Ž     T !— #U!=  Vÿé÷Ï &,733#3267#"&55#'667#53'&'7'6Ÿ?.  %@+  t Ï]X  [02,)M ! RDóÏ73'67#&''667#'6vc  &0 - 5 & Ï  *#! #  DSÉ 7&''6%6# &É>bÿéîÈ7#"''3255##53#3#735#î  dPPDDÈÅ  ­Ìß,W3YÿéôÈ 73#735#35#3#3##5#535#mvvPPPP†;DDDD8ÈZ59733RÿéùÏ!%73533#3#&'#5'67#535#35#335`>AA5)("' +(5>""5!·G"MM(#GN###\ÿéóÏ #/73&'73#&''67&''63533##5#i49„  T   `B@@B´    -   :>>UÿèõÊ'7#3#3#3#67&'#67'5#535èbYYXXm?   :! Ê   EM  ZlSÿêôÊ '73#735#73#735#3#3#3#"''3265#7#d;;6<<W}}¡bZ   b)ÊB B ?3 %Pÿéö" 7&'''67&''&'ß f ^  "  EÿéõÏOSY73533#3&533#67327#"''67&'#3#3#3#67'75#535#535#535#535#75#7&'Q$%%/))     " .8!,$& e  º!<,0)'= ˜pC  ÿéKÏ7#53''68  /–æ75'!"ÿêóÐ)/R7&'673267#"''67&''7&'7&'673267#"''67&''7&'7 _b    !.? A& SJ  kj   #2? I [Q Ð         J     (   `ÿéñÆ%733'67##"''32655#53&'767#lv0  %   AE ^Æ  _ Z PÿéôÑ *7#5##53&'73#3#33#"&''675#ìe;Aj+11+,  +»**  4+0.;gHÿéõÏ"(,273533#3#&'#5#'67#535#35#&'735'6YBBB9+%"+ $$9B%%3%  ¹T$KT/%TW.  .. \ÿèòÏ<7'67#&'&''6733#3#353#5##5335#535#'67|]3   #K:T4@@'^$AA  c0     .  11  NÿèôÎ0K73533#3#535#3533#3#535#'3533#7'75#3#3267#"&55#'67#c666A‘=6EQ P&1   3 +*¾5 2! $2  #Tÿèñg 73#735#35#35#'67&'b€€ZZZZZZ  P gY? # #     Rÿèòx#'+73533#3#3##5#535#535#35#33535#335]=AA99FFHH99=((:(b((:(n  =  = ! # UkóÐ<73533#3#&''67#5365#'67#5365#53533#3#&^   n    Á   '  FÿèóÐ#'C_73#3#&'#5'67#535#53635#35#''67'6776767&'7''67'6776767&'›G:$ &) +;H     |    Ð h #=A**R  ;;;;;Æ?""??.0e  '}#4YÿéöÏ '/37#5##53&'7'67&'&''66#5##535#ðb:( A ' )0 "IGGG¹&&     "# 6P P1 MÿéóÏ#CGKO733533##5##5#533#735#73#735#3&'73#3#3#3##5'65#5#35#€&''&'' @@<@@H$794444;w <*****Ï  #.." O  MÿíôÐ "(048<73#'63#53#3#'#335357&'3#53535#35#35#À',$RP&&H '§&'Ð G3I#  5<<<***** WÿéôÒ $*08<@DU7#5##53'7&''3326567#"&57&'''63#53535#35#35#3##"''3255#ïm@    T ]  ##`Œ:   ?½       (((4 @ÿè÷È &BR7#'6553#&'#5'67#535'6#535'673#&'#5'63#53533533ð„L   7     9/ÈKE> 6A] +# .   -&K22> ÿé’Ï#BFJN733533##5##5#533#735#73#735#3&'73#3#3#3##5'6353535177/66<..****/` Ï  #.." M {ÿèõÇ#(733#"&55#'6653&''67&'#367Ù  c     Ç<  0%  *d/    $dÿèõÇ#(733#"&55#'6673&''67&'#367Õ % l# ' %  Ç<  0$  *d/    #ÿçyÃ73#3'67#&''67#g/0G?   $Ã[I @D   *; ÿçõÆ!',17736733#3##"''327#'67#67#767##67#7##67# #¨'  E=!º69|8 8z$(($1$(  9L9%&ÿêóÆ!'-3736733#3##"''327#67#767#7&'67#7&' ¨#  ˜·‚+_‚4s(++(!$',!"9~!#8 ÿíôÐ*7'67773276767##"&55'75'7- %% $&2J+!¬ *  (  1  3  &  `ëÔ '-373&''667'6''63&''667'6''6¡! &#4  P+ +(*  JÔ %  8  &  ÿéõÒ 73#'63#3327#"&'#:£¬   ± žÒ   c""1+\ÿèõÑ 73#'63#3327#"&'#:£­ ± žÑ   h&!0/brÿèïÏ 73533#3#"''3255##5##535#r5552  25¯ !\  E‚‚ew!UÿçòÏ 733#3#"''3255##5##535#53šDD=  ()>>>JJo‚888FÿçöÏ"73#&''67#5353533655#335áI. /49E88"$8'¨N142! $/N''N ** ;GÿéóÌ73##5#'66556ß 0A{)>KÌ ,ƒƒ:37D9\ÿéóÏ733#3#5##5335#ŽQQA_2__Ï,/xxTA\ÿéõÆ$7#3#327#"&'#67'535&'#ç3<: 5 ) c00ÆK!&)-.C Ò%%\$RÿéóÆ73#3##5#535#'6'&'_Œ?GGGG:x ZÆaVVa( ""$  ÿéDÏ 7#5'60  ϰ‚2BÿèôÐ J7'2'6'&''&'&'3#&'#'67#5367'67'6776767&'Ø 9RDC 1 ( p)P=$ .: .9D!%&**"Ð    3   !%      "5ÿéôÆ$(=C7#'66553#3#67&'#67''3#3533##"''3255#&'v ŸC   9  oo V%%  V zC6 2"_+   +%_d$ !  HÿéðÑ K73&'73#&''67&'763353#3#"''3255#67'7&''67##5367#IHG§n     [j?P  C !$ $?;½      11BI  3  Qb @ÿéóÉ +/373#3#535#5#35#3353353#3##5#535#735#35#F¨2.Ÿ.3d,,‚>PPPP<hhhhÉ 33 $1D) ( @ÿèöÑ *0D73#5##536'6'&'3533##5'67#&'3673#&''67#‡Sl):  ;  '((   I bBRC1 9? 29Ñ~no "   $$-    2  %' 6öÅ73267#"&553'#;5#Ÿ ($ ^8q"  yTC22 ÿéõÑ7&&'#5'6556y 1L N86ÑmC  MrÉÆP>5 24aYÿêòÏ%736733#'67#7&'33267#"&5a2FH/ * /`    –h1-[F  Kj   ÿéhÐ$7#"''32654''67&''67&'76W      Ð "7.-## '    ÿé^Ð$7#"''32654''67&''67&'76M      Ð $6.-## '    ÿéSÐ$7#"''32654''67&''67&'76B       Ð %6.- &   Oÿé†Ï 7#5'6s ϰ€ 2€ÿé÷Ç (733#537#3#3#&''67#535#'6‘Np?9 @%.* %# # *. Ç2     ;ñÒ0FL73'67#&'&''6'3353#5#'655#535#3533##"''32655#&'§1U L,  /y ?2LW""   W%   Ò )!)Ž/       ÿéôG7#'67#53673&'73#&€P DU^KZCL ,       ÿêUÐ '73#53&'&'73#3#'67#537#5363H) &Ð /, %«ÿéóÐ %73#53&'&'#53673#3##5#53ÑH$Ð /=IIEÿéÁÐ"7&&'567&'7''5'6556Ÿ     %Ð %n4 LD!²  ·-]; 6[8 ÿéóÂ%73#33267#"&55#67'7#&' sE@ 2  5,."8  Â$|  lz ·N€òË73##5#535'6ß //// .Ë 7OO0 ÿéëÒ '+/377'6'&'733#5##533#735##5##535#33535#35#à Hb­`7‚‚\\‰Œ==P<Œ==P<<Ò    #7&&7 20d d&9`¼ 7##55#'#33535#`<<  ¼¢¸I88887777TÿéôÏ37=736533#3#3#3##"''3255#'67#5367#5367#5#&'l.@A>AR   ;#!'!$-[+  º  4 1! (2  b  ÿèóÒ73#'67'6753&'&'’X±Xc  Ò OA2 .'  [&Gÿæ÷¦#)73&''67&''667#&'&'~J "# ,"/ ' $. =# !!B- ,A¦      4 a¼ 7#5##535#35#35#35#a+  ¼­ ¹H666777ÿéòÒ753&'73#'67'65&'+U^´  a\ O@3 *+  R:ÿèú¦ %)873533##5#73533##5#3'6673'6'3#733267#"&5ER$$O R S  Œ““““2$ "+J$ !BONK   ÿèðÑ753&'73#'67'6'&'7VM¥!  aX  M?3 -,  P pöÏ#76767&'3'67&'767#• PjbH   IÏ       ?4  oÿçè…'733#"&55#'66767#53&''67'Å   D[  $… ! ]    ÿém‚73#3#"''327#735#*@2;  = /,‚83)6wÿéõÏ#',73'67#3&''67&'#'65535335#67Æ, %  ++ ¯ /0%  ( >1QQ¿"" I K K`eÿèõW7373#&''67&'67#67#g&Q1 !, " G+E    eÿèõÑ4;73#&'#5'67#535'2373#&''67&'67#67#ß 6(   (77B&Q1 !, " G+Ñ !+*€     ÿëiÏ 73#3#&''67#537#'6'. !$' Ï %$:1 ÿërÏ 73#3#&''67#5367#'6.5"$ ',. Ï'#;cÿé÷Ä/5733#67&'#"''32655'675#535#535#&'wb=  " #@cMMO  ÄM   "+ .W gÿêòÆ $*73#735#35#3#3##"''3255#535#&'uqqLLLL ]]WÆR103+  () UÿèöËFe73267#"&5536733'67#3#33#"&''6735#53&'767#3#3#&''67#537#'6Ž     L     !%   69#   Ç    5 *5 #Df  7     zÿìõº753#3267#"&735#zkW #  .$CC¹oC   iIÿéôy%+173'67'676573&'3267#"&57'6'&'])/ < !*+#!  #!K ¡ y)/0 '  (7&  p   ‹êÑ 7#5##53&'7'67&'ê¯a) ' (L$ $Â#!  ^ÿéðÈ%)-373#3#"''32765#&''67#'67#735#35#33#umF^  )   HHHHJ]ÈU X! 7  31a"ÿîñ€7#32767#"&55#;5#ݧ;J TFT@@@@€O( |** ÿîô‹ 7'67&3#3#3#535#535#|"E O 29 4gj,CCdßeCC(s$ ÿènÏ"73533#&'#5'67#7&'7'6$##   "M ~QQY[!-QiÿéöÏ9733533##5##5#53#5'673673267#"&55'67&&  7     Ï. uZ&. .    aÿéõÑ A7#5##53&'73#67&'#"''32655'674''67''67#îY4Bp9    & .   º!!  *   ''(,        ÿégÏ"73533#&'#5'67#7&'7'6!     G  ~QQWX",Qÿéïo */73#3#735###53#"''3255#3##5#53&37#ÝÝ¡¡||*Ñ   +63+o " .5D0  wëÏ$9?EK73533##5'67#'3#3##'327#735#5#53#3#"''327#7'&'7'6&'Z  D<*/ 0'+Á+=*. 0K=   ± , )$  # $ $   )   ÿéƒÏ#)/7676767&'7&''67'67&'''674''  & &-/  A4„;!  /*s  ŒÿìðÏ733267#"&5Œ  ÏÇ   iÿé÷Í #06<C73#5'675#73#5'675#&'7&'&''6'6'67'66i= +F= +1W ' ' ( & '+ !/ 35 'K ,0ÍU  U      5       +  ÿémÏ"(.7676767'7&''67'67&'''674'$  "%  5  /…9" /+q  kÿêøÇ $(,0487#3#25267##"&55#535#55#7355##373535335í*** (  &&'F H1\1Ç8h g8Ë»° º1* ÿémÏ"(.7676767'7&''67'67&'''674'$  %  5  /…:!  /+p  aÿçóÑ "&*.4:@7#5##53&'73#673#5'675#5#5#35#5'6'67&'ïf74V"1Fo %!SJJJJJ    B¾##  \RG   i |   ÿéô^0EIMQU[agm7676767&'7&'#"''3255'67'67'6'3##"''3255#5355#355#5#&'''67&'7'6ä    * 6@ - 1 I99999¦ ¨ K 9  ^       C   C       bÿèõÏ-1573533533##5##5#3#3#&'#'67#5367#735#35#i %!!% x4@1 )- / ' -40QQQQ½P "*   00 ÿð„Ð 73#3#753#55375#535#'6'I*22O11 Ð.U@_ ZFV.  ÿèlÏ &7&'7'63#3#3#'67#5365#535#'  A @\%'*  ##Ï .$ iÿçõÏ !7&''6&'67#53&'© !)    Of %Ï -.)& Y —ðÓ73#3#5#53'€g°’¦eÓ    ÿåöÓ,@DJP73#3#5#53'3#735##'6553265#"&5'#"''3255#'65535#35#74'€g°’¦e@¤¤~~Ž<   žÓ   B* 6$) ))Y _Y  )( ( Wÿé™["73673#3#3##5#535#535#53&'j  [     bëÃ+1775#53#"''3255'675#53#"''3255'6'&'7&'&9   \&9   N  W  v:–*:–*<    ÿéòÏ$73533#33"&''677&'767#535# !""AVUG     ?!!­""#6&  $#}ÿéö¾73#3#67&'7&''67#Š`` r6%  ,,'¾3@ (0 (7 ÿèwÏ&735#53533#3#3#&'#5'67#535#%''((&&**  '*%Ž  HM (aðË7#5'75#53#'35#35#5#î'ž' Í zffffff~ E@4 & &  ÿé}Z7#5'75#53#'35#35#5#{K g >,,,,,, F;/ % % €ÿéðZ7#5'75#53#'35#35#5#îK g >,,,,,, F;/ % %  gÿç÷Ò !%6?HU[agm7&'6'&'6'&'63#735#&''7&'7367'7367'733265#"&'&'7&'&'7&'Ø   "   !   ~~ZZF   C 3 1 B ? ( ? Ò         .F ,    2MZMY$$ %/*        uÿéóÐ 37'2'6'4''&'33##"''3255#53567#è 0F92    h22  :: OÐ  ++ ' iÿéóÐ 37'2'6'4''&'3567#533##"''3255#à /D83  &  ?Uo99  ?Ð  c + 'fÿíóÏ-159=73&'73#3#53&'#67#3#3#3#535#535#735#33535#335o46 ‰ Q3+w255;?6622P2¼    M.-ÿíï• !-73#&'67&'67&'63#3#535#ÍÍ(  P  O —¹SfÞdR•   > ÿéiÅ73#735#3#3#"''3267#7#KK''\34  9 ÅC!E@ )%ÿêëÏ 7#5##535335#33535#35#ëH,..H.¡··..K999„999sÿæïÐ73#3#3##5#'6•P;..11 Ð$$A­ +uÿèòÏ73533533##5##5#35#35#u//'////¤++++©©99ƒ8±òÒ 73#53&'„fägÒ  ÿéñ<767&'7'5'6}    *Q+(  K<  4    ÿéòÒ #'+/5Q73#53&'3#3##5#'67#535#735#33535#335&''67&'7'5'6„fägF­Mbb&3 #&EcM99L9…99L9#" ##    *Q+(  KÒ &@    & # <   4    ÿèmÎ 73&'7367&'#5'67#!      (7¯     em5_ÿéíÇ$(,73#3#"''3265#'67#'67#'67#735#35#wkBW / ), %  CCCCÇ^ N18"+* 7:XîÑ%6G73#35#535#535#533#5##53567377&''67&'&''7'765##•$$$$&8´ #     -    ¡    K&&C  *       ÿéóf!%73#3267#"&55#'67#735#35#35#3š, &#> 2"ttttttfW   != " # "ŽÜÉ 73#735#335335"ºº&&8%&É; ÿéó— 73&'73#3#3##5##535# i gæ ¦¦¥¥¥€€€€     >>% ÿé^Ï 73&'73#3#3##5##535# QBBBBD² V V6$ZÿéóÒ*/37?C733#&'#'67#3&'73#'655'667#3#3##5##535#ŽA"  /-r $>8 ]]]]]999Ò      !  ,* !(O M  7 7 bÿçôÏ#'+/5;73533#3#535#3#735#3353353#735#35#35#'67&'b???76?‡‡'nyyTTTTTT  EÅ   "/ ,Q: !     wÿé÷Ë #7'67&'&''6#5##535#£8  )D222Ë $  2Y Z:( ÿé÷Ð"&*.26<B73'33&'73#3267#"'&'#3#3#3#735#35#35#&'''6– 5   –hhŽŽ }}YYYYYYB!»  X/ !#/l   Z@ $ #     ÿéfÆ 73#735#35#35#'67&'LL$$$$$$ 8  Æ£sMM6 ‡ïÀ75#53#3267#"'"&55ÍFYE  '}2U=  T ÿçôÏ(73533#3#3#33#"&''675#535#!!!("V60L7  /(!° #- $A V  ÿçôÏ(73533#3#3#33#"&''675#535#$##*& Q60L7  1,$°  1 $AY t ôÑ 7&''6'6'6'6¯ &! # $' 1 1. %D GÑ " !-  ÿõ[Ã7'753675#53#3#'35#Q' F " QJ]PP%h,LÿêìÏ"&73533#"''3267#'6655#7#5##535#e "     ‡¤++Œ)0_JIA?)Éʦ”ZÿèõË15973533533#'3255#'655#'3255#'655#75#35#[:: 6_o\\\\Y  T?#!@ Y  T?##> KKKKgÿèôÐ!'-73673#3&''67&''67#67#7&'p"JLF    # 53  ¢8#  )<@!p ÿífÄ73#3#7'675375#735#N&/"''ÄQ0 WSf+LÿèöÐ $*06<73#3533533##5#'6553&'#3&'''67&''4'¯4n D!8(   M I Ð &;;-8#PP Z* # ÿõSÃ7'75375#53#3#6'35#J$  > PJ^PP(h-IÿèõÊ '-;J7#'6553#353#'67#53365#536'&'73'7#'63&''667òƒG   ! N!     ÊTF6 6@a7 /@) @/3    %#+  %"TÿçøÒ (:IN73&'73#67#5&'67&'7''3##'3267#'67#3353#5#'6735#_;@’:    4   a0   PT QP¾   ,2  ! &# =." 9g&1  ÿéxÐ#'73#"''3255'67#5353635#35#35#;1  0 2G  777777Ð º  *'p 189„ÿêêÆ73#3#"''3267#735#ˆ]CM  P AIÆK(F#,N%gÿéôÈ 5;73#735#3353353533#3#3#3##5#535#53&'#535#367#o~~$h233;2====/;2+!8È8;   8 ÿéhÎ"(73#&'#5'67#535'6'6'&'[ !! #$ 5 6  Î<_T.7  mÿèöÊ 7&'''6Ì ! ' #+ &Ê’<Bœ“JEXÿéóÐ,AG73'67#&'&''6'3#5#'67#535#5333533##"''3255#&'¿)$-+   .  #!4  4  Ð F3   !æc?" 9I9:=  9 ÿí_Ð !'-7&''63#3#7'75#535#&'7'64   0 '" AÐ    E I3ÿèjÇ7#"''32654'7##5j  ,Ç8 ;Ëß[ÿéöÃ73#3#3267#"&55#'667#upp ‰(   ! !Ã2e i;3,3TÿðóÊ733533#3#53u448Ÿ!™–ÇMgVÿéõÏ"-73533#&''655#&'7''67'7''6h899/ ,6 J8   `   °" E =7$4M"$ % #*   ÿéóÉ59=73267#"&55#'65535'673#7&'7&''675#735#335+ 7T# &  És4&  />`m;$ ?xGV444”"õÐ767&'7''63#735#· "% LL))Ð0   7D#fÿéøÉ37;7325#"&547#'6553#7'7''75#535'635#335ä  LM     ÉH8&&#=0>n>"!?yT "Tk666 ÿéqÉ 06<73#3#535#5#35#3353353##53##"''325''67&' c_6    EQQ *d'  EÉ;;,<")    vÿéíÎ)73'67#'63#35#535#53#5##56 9  +  I 3IÎ& !* !!} xÿéwÇ!%+17=7#3#3#3#"''3267#55#5#35&'&'''67&'s"&  Q+ &"ÇN:‚&&/ÿòóÇ 7#3#53#735#3#735#73#735#òabt$CC!!&& !%% ǯÕ!98K,K,uÿéôÇ-159=CI73#676767'7&'#"''3255'67'67#735#33535#335&'''6}n5  !   #.J.  9 ÇP  " + %  00x   ÿéoÇ!%+17=7#3#3#3#"''3267#55#5#35&'&'''67&'j" J(  $ÇO8‚&%/mÿéôÑ PTX73#53'3#735#73#735#3533533#3#3#67&'67'5'67#535#535#5#35#±6}2'55.55N 5  +   (IÑ#+ ++    ,      NðÏ")/57'6'#3#3#3#&'#'67#535&'#67'6'6Þ 5.6ULLLLZ -/ "I %Ž 1 2 !6 9Ï        G` J     ÿèöZ"373533#&'#5'67#7&'''667'7&''6)%%  '¹ ) $  %(B  //   "  ÿé„Ð $*06<733#5'667#35#33535#335&'''67&''4'5+[  ! $7$N H  Ð cZ *C/  " ÿéìÈ$(,04767#533#"''3255##5##53&'35#33535#335š  G]   , .I.«   //8¥ =J nÿéõÒ!%+37;7'67&'#7&'3#735#&'735'6#5##535#35#— + 5.  "nn )   =====¢    B"  ""  2S S+ "ñÒ"(.4:73#3#3#"''3267#5363535'67&''&'7&'aa³³« «, |||– ‰  B  ? Ò< . k  K         ÿçô-73267#"&55#'665®  E! -)  ÿé}ÌEK73'33#673265#"''67&'#67#"''32655'675#535'6&'>            AÊ )BB!) + ,(%? 3,"|ÿèòÐ#)/5;73#3#3#"''3267#5363535&'''67&''4'¤4GRRU  U4449  5Ð L? 0ˆ b  ÿè‡Ï$1IP73533#&'#5'675#&''6'&''63&''67&''667#2..  !2Z   A  .  "    $¼,   ,    3     ‚ÿìóÑ'+73#"''3267#'63267#"&553'#3¢?   7 &$ 9Ñ o,` w9  …H7& ÿêÈ#)/5;A73#3#67'75#535#735#&'735'6&''&''&'''6l.**3>3++, )  $    ÈX 7  77 v ÿé‰Ì"7N73#35#535#53#563327#"&'37&'7'7'737&'7&'67': G-i8  Q   )      ÌXVb8"/M  % s  % ‹ÿéíÏ #53533#=#'#3355#ž)('¸..¸[<<<<=====ÿéŽÏ&04L733#3#53533'7''677&'3353#57#7''7''6767&J,,2     STffTT    Ï))6      -,Ž Q>      ÿëñÏ73673267#"&55'7§ ÏW\  U ÿéUÐ735'673#'#5'67# !    Œ!' mj"#1RÿêøÅA73#67&'##'32654''67&'&''67'767&''67#^3   ", 3!     )FÅ A"#B  13       ÿéhÈ &+/73#3#5##535#5#35#"&55#'7335655#35# [111  *111ȵµp 7#K29=†dÿèõÌ&Ne76767&'33#"&55#'6653&'#33#3#"''3267#735#5'67&'767#67#53&''67&'À      ' @<!   %    )E ,@    Ì    # +"94 8         JÿéóÏ/G733#3'67#73267#"&55'75#'65533353353#3#535#533”CCH9+-  6+‰-Ï     F:, /4PYML*%65$ÿêîp!73533##"''32655#'67&'ebb   e6 ~!]E @ %ZÿéöÏ '+7'67&'3#3267#"&55#'667#735#‘ ; 9f    >>Ï 3HA  G&) !&NÿéôÐ &*7&'''63#3267#"&55#'667#735#½ %& $ k   CCÐ # !'HA  G%* !&zÿëõÇ73267#"&553'#37#3Ž$  %+m@,NG  ÄyfSSSÿëõÇ73267#"&553'#37#3’# +) i>*NG $ ÄygTTT ÿôbÏ7&'7''675#53533#75##5#L"     2_--_,<>>>> ÿó_Ï 7''675#53533#67&'75##5#V!  / 6_--_1 (>>>>¡ÿéóÁ73#3#"''3255##5##535#¡R   !Á"p [““v‡"6ÿéšn 73#735#35#35#'67&'@UU222222 ;  n[? % %      ÿêô¥/7#673267#"''67&'#'66553&533&'7ì6     n € ,%(2"   ,;<2& $F  ÿçï &,;73#53635#35#'67'5673#535#3'6733267#"&5u%S////"   11SF @7& . YY 07?7 P];U. !"   ÿèò¦"&*.735#53533#373#53&'#53#=#73#735#J SSVV# 2ä6±‰YY88„   ‹fg ==2' >ÿø™l 7#3#3#535#35#5#—![66l/t#32ÿææ‘'73'67'56767567#"''3255##5] " 0  )& ##‰  /l=   _  C>a  I‹ž ÿèYÉ7#"''3255#'65535#35#Y     ÉÄ  :6& 6A`9'a' ÿõó^73#3#+¯¯ææ^C ÿñój 73#3#535#ÃWhçjWjSSÿïñc 73#3#535#-¦HfãgHcNN‚ÿñòÁ 73#3#535#†e(/p-)ÁªªÿéâŒ#73#"''32765#'6&''6<˜  Ž % #c6F JŒ a C    ÿçö‚7&'#5'6556Ö + 1 4#c‚K%(\~2,%)2$ÿèîŽ$7#3#327#"&'#67'535&'#ÚITM ( P*!&3 ŽEDŽ< + #(  ›B  ÿîò˜%)-1573#3#3#3#535#535#535#535'25##5#35#335× '/g0%%0g\Ë[j3%%3jNZ2$$$$8$˜E$yÿéïÇ #73#3#735##5##535#33535#35#{rrff??ZN0N0Ç::o o*? ÿé`Ð#73673#3533#7#5'675#'67# $  '' ¯! 73!  ÿé[Ð%73673#3533#7#5'675#'67# "  $ ¯ ! 83! WÿéöÏ 159=7&'#5'63&'3#"''325'#"''3255##535#35#73#ž!(  Q 2D  =  -  >Ï "/s  mt  1‹%8-\ ÿèmÐ #)73#53&'3#3#'67#5365#536'&'=!X"%% "#'4Ð 2 )    dÿèöÏ!%73533#3#&'#5'67#535#35#335q666/(%! '$/6.·F"HK&$FM"""v[ñÈ)73&'767#533'67##"''3255'67#z/ Ie1   )›     rÿéöT73533#&'#5'67#y34' %K #II($EéÒ"&*73#3#3#3##5'673&'5#5#35#‡ PQHHHHUª !5 AAAAAÒ K  # 0 ÿèð<7#53&''67&767#0¼&!.<+*6 -"; t+    ^ÿêïÐ.7'6553533#3'67#73265#"&55'75277; -!   •E;+ -5P)      „ÿðòI7#3#3#5#535ìFLLG[I#$ ÿéoÈ%*.73#3#5##535#5#35"&55#'735655#35# b646  .6 66ȵµp 4#K07?†L éÏ"73533##5'67#7'6'&'&'PBBB!"3^  hPP_Q-*U  [”ÿéöÏ73'67#'6'665&­7&  Ï!!  "a,B4&CÿéŸÈHLPTX7#3533533##5##5#'6553#3#"''3255#27&'7&''675##535#735#33535#335Ÿv_)1      -'%<%È7C7 5@`<@A -DS& &  ÿèí] 7#'655í½])! 04ÿèÜC73673#"''3265#'67#:8W H7- 32 5 .   ÿéóc!'73##"''3255#535'2'6'&'Û )2jj hh).aF  v  c(  '   ÿéôa%+173'67'676573&'3267#"&57'6'&']'1 9 *+""  #!M ¡ a#%)  ".   [     ÿèïh#(73'73#&'#5&''67'67&'#367_`3 "6  8 ,!3")D Y  *./   Qÿéô\73533#&'#5'67#[=@7+#$(2JBBÿçV^ 7&'&''6.  9  ^     ÿæð~37;A73533#33##3#&''663'7#537#535#535#535#353567!VZZMg…5 " 1,@".07C3OffMMVi;;;h6 v       +ÔÿéèÐ73#ÔÐç q€Í(733'67##"''3255#'67#53'767#b !    * KÍ       }qòÐ73#&''67&''667˜J    Ð     gðÐ"7=73533#3#3#67'675#535#535#73533##"''3255#&'***01++4@++12*q>  >  Æ       )  $  oÿíõÎ'+73#"''3265#'6#3267#"&5535#•J  @  ;.!-( Î p(U$J18%uÿèðÑ#73#3#"''3255##5##535#'6”Q1-  - Ñ (^  Fex( {ÿéóÏ73#3#5##535#535'635#ã22)?*22'6??Ï+&dd&&¶1wÿê¿Æ75#53#3#"''3267#7«3G/1   3&K(L5LÿéïA 73#3##"''3255#'67&'*¬¬Þe   e> -&x A       JÿéòÏ'+/3873533533#3#"''3267##5#'67#735#3353355##55#R*--7  $ . & . &*=+µF!2 RR1!%G T!!!ÿè·ƒ'+/3773533533#3#"''3267##5#'67#735#3353355##5#/''2    &%*(/?(i-  11 11GÿêõÉ9=A73265#"&547#'65535#'273#67&'7&''275#735#335Þ Y "!  &  ÉH8$$ +$;/?V>9 /%  /  TÿëöÏ?HL^73#3#3325267##"&55##535#535#5335##535#535#5335#536535#3735''67&'76N055  ' +##+++.&-a+& Ï 0a    <  #0 Éž–jCC     NÿéìÏ%-159=77'7&''5633#"''3267#'67##5##535#33535#35#ˆ   "+Q  Lg))>)g))>))Ï / OG/6 -Wq q*Cÿé…Ñ%)-7&'3&'73#67&'7&''5'63535E# C #(///Ñ Y.    ’4# ÿëöÏ=GK^73#3#;267##"&55##535#535#5335##535#535#5335#536535#3735&''67&'76i nDJJ  :=+88*<=+88*<A7'B“? 8      Ï1a    <  #0 Éž•jCC      +ÿéÕ9 7#5##535#35#Õ‚‚‚‚‚9P P &  ÿñòÒ #'7'6733#736735#33535#3353#) 4W/¯' Y d::N:ˆ::N:¶ää… "% s‹ IMK DóÑ"&73#5'673'3735#33535#3353#«-¯  +\d R c;;M;ˆ;;M;·ææ¥E2  ( ' ( ÿñxÏ #)733#5'667#35#33535#335'62*V    !2!+58Ï j`   -I7   ÿñqÏ!%+733#5'667#35#33535#335'6.'S  /(24Ï j_  -I7  wÿêïÅ!73#3#"''3255##5##5##5367#wx49 #/Å wwwww¡rÿé¯Ï 7#5'6œ  Ï©‚ 2ZÿêõÄ7&'333#"&'&'75#x  (% . ÄGf   W`ÿêûÄ7&'333#"&'&'75#~  !(% . ÄGf   W”óÐ!73#3533#3##5#535#'67#53¶05 ##**& Ð ##'' ÿñkÏ #)733#5'667#35#33535#335'6+% N  + &.0Ïi^  ,I7  mÿèõÑ!)73&'73#&''67&'#67#3#'3'65u1 7  @ : %=!¹    Egg- % OõÐ%+73673673#3#&'#'67#5367#7&'R " ,pƒ:$ /@* 0DG+¬  4  ÿíóx #'733#5'6367#35#5#3535#3#k @*­ 4@:&:9†9N:99~ææx  F+ (ƒÿéòÏ#73#3#3##5#535#535#536'&'Î ,''..--&&+7 (  Ï##::##  ÿñ€Ï $*733#5'667#35#33535#335'66,\  " $7$.:<Ï kb -G7  \ÿèôÐ *73#53&''67&'67&&5'67&'ª9†9  S +    #+ + Ð 6 " '   rÿèõÐ +73#53&''67&'&''667&'76µ0s/ J    #   Ð 6 " &    wÿèõÅ#'+/73#3#&''67&'767#535#35#35#35#35#wz3+, )+   +,5+++Å`   `=<~ÿêòÆ &735#53#535#33##"''3255#53&'‰NTggTN@   KK1  ža06  3 mÿéòÄ/573##"''3255&'#575#7#"''3255&'#575#m……<   j     Ä  &!{²+R  !s²*#$^pÿðõÏ-73#'3#7#53&''67&67#3533#3#535#”?A    M,,,7‚9,Ï}uo]/    j  nÿèõÏ3:73533#3#535#&'''63&''67&''667#€***5{3*M2 1  $ !  '¹-       vÿñóÄ#73#3#3#535#535#735#33535#335k,))5}5++,,D,ÄsBMÿèôÏ7333"&&#"'663367#53&'w U=I,./FA# Q,¤X ÏA3    9.šÿêóÏ#'+1FL73533#3#&''275#535#35#33535#335&'#63533##"''3255#&'›#%%  ' #. ;8   8  à  I I *,) #    IÿéõÏ(733#3#5353333#33#"&''673›66?–77+/  Ï  ==) !@  ÿîõD %7&'7&''3327267##"&5''6ƒ  e  { 4  D !0   4 &[ÿéõÐ%)73&''67&''667##5##535#J! %+$   =YNNNÐ       \\ \>+NÿéóÐ7353#5#535#535#33#3##533U'..&&'n%%00*¨(ç1*++*1ç(JÿéóÐ7353#5#535#535#33#3##533Q(//''(q&&11+¨(ç1*++*1ç(HÿèôÒ)/S7&'67327#"'#'67&''7&'7&'67327#"''67&''7&'7¤ KK     &$ /( YR   !( 5.Ò         G       RÿçõÄ73#3#67&'7''67#d‚‚ M-6 >= %<Ä:G  (/ *:qÿéöÏ 73&'73#3267#"&55#'655x1 2x_ '§s  f-554QÿéòÏ "73#53&'3267#"&55#'6655 >‘> @   1ÏOr  e-% #4 Xóœ 73#53&'~ eæj œÿññÏ73&'73#3#5#o  ^«¡µ#¡ ŠÿéòÐ!'-73##"''3255#'>5#53&'&'''6} dF   (!  Ni c€Ð  ‰@, !*AQ%, +',# ! ÿçõÐ )73&'73#'67&'&''67&'76b bÛ?) #y! /2 @&0= >&®  #   OÿóóÐ 73&'73#3#536'&'W@  ?•r8¤VA¤ G4>?5692 ÿòóÐ 73&'73#3#536'&'_ \Ñ Læƒd  ¢F8@?1;<1™òÑ 73#&'#'673#&'#'67  ÿèéŸ 37;A7#5##535#3&533&'73#67327#"''67&'#3#735#'6骪ªS7      S ==.%'Ÿ··Œ  # - 'ÿèé– 26:@7#5##535#3&533'73#67327#"''67&'#3#735#'6骪ªS7     T ==.%'–®®•„    + %bÿéîÇ 26:@7#5##535#&'3'33#67325#"''67&'#3#735#'6îhhhTG5     5++ ÇÞ ÞÀ¯ !'  &(2 -  ÿéYÏ733#"'#5##533255#,    Ï&t 7¯{Œx ^XÿéîÇ 159?7#5##535#&'3533#67325#"''67&'#3#735#'6îpppZ L8    9--ÇÞ ÞÀ®  & !,2,  ÿéä£-39?73#5##5353335#&''67&''67&'&'7&'&'€bžMd³žžD  2  x & † ‘‘) „g       ÿéâÏ.4:@733#3#5##5335#&'7&''675&'76&''&'&'lbb`›L:››? E*   a D ϵ µšˆ       #  ÿéwÏ +17=733#3##5335#&'7&''67&'76&'7&'&'5//-T%CC    3 Ϥµ“ƒ      % yÿéõÐ!&,17&'#3#&''67#535#5'63&'3655#335³ *' " " $*', *Ð! A"$"A c pÿê÷Ð159=7&'3265#"''67'&'#'66553'33#6'3#3#735#ä      0 AE''%% Ð  E9 .& (.H;. ) S#K!C%DÿéòÊ /37'6553'#33673#3##5#'67#535#53&'5#rjjG !"  ?!Ž+F4 6@a<) >>& E9äÏ#73533#3##5#535#735#33535#335$QPPYYZZQ==S<˜FF\E 7 8 8 X @ÿìõÏ#)/?E73533#3##5#535#735#33535#335&'7&''33267#"&5''6W;::@@BB;'':&h//B-:  L Z   Á577X8    *  +  ÿçƒÈ 06<73#3#535#5#35#3353353#3##"''3255#'67&'s#!o!#AVaa v1 2 O È == -; 2 /   ÿéí– 06<73#3#535#5#35#3353353#3##"''3255#'67&'ÖG7¸8F}%7%%7%% ««Úa   e:# y" – .. )       ÿéœÇ "(.7'6553'#33#3##"''3255#&'''6-tNNBSS^&  %R ;  ‰'E4 5?_>+$A  >  •ÿéóÏ73533##"''3255#&'•9   9 ›44„  # #BÿéõÒDJP7&'#67327#"''67&'#3533#3##"''3255#'655353'67&'Û   $*      L#   _U =Ò 6#3.' % :9=5I  D>- /:Uk 4ñÐDJP7#673267#"''67&'#3533#3##"''3255#'6553'33&'7'67&'ï9     t(&&31  + „  C ¸ .  &+&     #4  Q     ÿêœÑEKQ7&'#67327#"''67&'#3533#3##"''3255#'655353&'''6…   $    @   O$  Ñ 1##-5&& 9:>8O  K7 6kl›ÿéöÇ #73#3#537#35#35#35#'67&'žR K))))))  ) Ljˆ=@?.     ÿé‹Î 0C73533#3#535#3533#7'75#73533#3#535##53#67'5#'6'((.n-' A<$y#  ' ¾5 C#  11  ÿéÉ &*0673#3#53&'#735#35#3##"''3255#735#'67&'c,/u1"====b&   *>> N  ÉE+ % E2) &*  wÿéóÇ #73#3#537#35#35#35#&'''6~s0-e#.>>>>>>7  Ljˆ<=>,   qÿéóÐ73&'73#3#"''3267#'665#y6 .L@   -©&c#N,7=L _ÿéóÉ 06<73#3#535#5#35#3353353#3##"''3255#'67&'gŒ+%€%+N##dqq;   = g  É<<+;( %  ÿóU¾ 7#5##535#35#35#U¾À Ë7%\%\%ÿéÇ!%+17=7#3#3#3#"''3267#55#5#35&'&'''67&'z$ )  W/  ("ÇN8‚&&/ ÿë–Æ#'73#3#3#5##535#535#735#35#3#735#d(<<2S1;;(?? SS 99Æ8u u®I /ŸÿèñÃ7#"''32654'7##5ñ  +ÃB FÈÛ ÿé˜Ð(,073#3#53&'#53&'367#3#3##5#535#735#35#R5 $Š#2-"l-<<<<,HHHHÐ  6 ,P/1 ÿévÑ(,073#3#53'#53&'367#3#3##5#535#735#35#@& j& W"++,,"2222Ñ  8 -O/1 qÿçõÑ&*.26<B73&''67''6673#3#535#3#735#35#35#'67&'œD "    GS#7}5llJJJJJJ  1Ñ     . T< ! !   ÿéñÐ)-173#3#53&'#53&'367#3#3##5#535#735#35#Y&=Þ<$Z 9O1¦HggggJ~~~~Ð  6 ,P/0K ðÐ)-173&'73#3#53&'#67#3#3##5#535#735#35#W<</¥-W1,8EEEE5[[[[¼    D  ) ( ÿéèÇ 7#5##535#說ªÇÞ Þñ2 ή ,73353353#3#3#"''3255##5##5##537#?&&‚ œKD   /?§ ) 5 "11337GÿéëÐ &,26:73&'73#3#"''3255##53&'#367#'67&'3#735#`a. 3   ’1 .U* L  F 7TT..º †  oŒž (   ?WÿéóÏ &,26:73#3#"''3255##53&'#53&'367#'67&'3#735#£E!(  j&!A/  / &BBÏ †  pžB(     !<gÿéòÏ &,26:73#3#"''3255##53&'#53&'367#'67&'3#735#­=$  ]!9'  , #==Ï †  qžB(    !<ÿéë¦ &,26:73&'73#3#"''3255##53&'#367#'67&'3#735#_a/ 2  ’0 .U,J  E 7TT..•  k  Tqƒ     6 ÿéðÒ5=AEIMQU7'66553&'73#33##3#"''3255##5##535#535'35#35#3353535#35#35#35#7 ]VREEH  52EBBBBPPBV111w22F55F22F55yC3 0#\   R """h  * (  E* ÿê‰ÐCI73#3#67&'#"''32654''67&5'67&''67#53&'#53&'367#F,  (      &  . *  *Ð             MŠÿèöÇ%*733#"&55#'6653&''67&'#367à    X    Ç<  0$  (d2   "ÿôŒÄ 7#3#53#735#3#735#73#735#‡ccv%HH%%++ %** ĬÐ!87E%E%ÿôÄ 7#3#53#735#3#735#73#735#€]]p"BB (( ((ĬÐ!87E%E% ÿçñÒ>73&'73#3#'66553&'#367#3533#3#3#535#535#'6Za( =¼ 2'M2 T *GG@@O»Y==3¹  :/& "C)   ÿèñ¡=73&'73#3#'66553&'#367#3533#3#3#535#535#'6V d(8½ 0'L7 S )FF??N»Y==4  -% 5     `ÿéôÒ=73#3#'6553&'#53&'367#3533#3#3#535#535#'6± 2!m  7/&&!!+t5   Ò :0$ '+C D-ÿùcË736753#5'5372˲ˆ¥ ¤˜ÿù^Ë73753#5'537/   ˲ˆ¥  ¤—ÿùË73753#5'5367@"+  ˲‡¥ ¤—=ÿéõÒ >73#3#'66553&'#53&'367#'673533#3#3#535#535 D *‰ ) C# B 22--9E++Ò :.& #C EQ  KÿéõÒ >73#3#'66553&'#53&'367#'673533#3#3#535#535¨? &~ & =; ..))4…>&&Ò :/% "C EQ  ]ÿçôÒ5=AEIMQU7#33##3#"''3255##5##535#535#'66553&'75#35#5353535#35#35#35#ó1) )+  )%%0 9 00%7?)))À  S  """h  B5 .$]  (   E* ÿïhÏ "(.7&''6'675#535#53#3#67'6'&'4  8")##:!! /Ï – C>2ÿðîÏ+/73533673#5##53&'3#3#3#535#535#735#B   5±1 Ž=TTeÜcUU=ffÌ(( 3!!3 B@^ÿðóÏ+/7#5##53&'7353367#53#3#3#535#53'35#ði    6#Y#22B•@3311§3""3 (( g@@'oÿðóÏ+/7#5##53&'7353367#53#3#3#535#53'35#ñ[    2M,,9„8,, &&§3""3 (( g@@' ÿëmÎ &,7&''6'75#535#53#3#7'6'&'7 ;&.'%%=##3 Î   FC;9ÿë¾Î73'67#'6367'dO > " Î #&t  _ÿêõÂ73265#"&55#'655Ô )$µ §G.9%QQ ÿëmÐ73'67#'6367'.2  #    Ð #*t  uÿìõÐ#733#353#3267#"&55#5335#53§33.  .22ÐYCU-  3UCYeÿç÷Ð "73#'63#3327#"&547#‡T[ UUh TÐ  %'!0 kÿññÉ73#3#535#535'2â 995~4889ÉIOOGdÿçóÐ %7'67333#"''32765#'67#536 [X@  +< 0"#š $- _ 9M!@CÿéõÑ73'67#'6&''66|_  N % $!2;+#Ñ (%. 54!<ÿðSà 7&''6$+ ÃU 30-eÿéõÑ73'67#'6&''66Q  B !#& - Ñ '" F52";sÿéöÏ73'67#'6&''66œH ; # (Ï  !" H!22!; ÿézÍ73##5#'66556n )I!  1Í .ƒƒ<3 8E: ÿîtÌ73#"''3265#733'66D  G:&$ '—/W#;w"X  nÿéõÑ7'673'67&''66› I 0 $ )—(8 ! I53!;zÂ7#3#567&''67&'yTQd'    œÁ$  ÿê€Î73#"''3267#'6##535#.I  =;)Ε-€ %(WfF6 ÿéŠÐ(76767'67'67#53&'73#&''6*> ( !31C 4  ) JnJ    ! ÿéˆÏ$*073533#3#535#3#3##"''3255#&'''6233+i*2 bb x0   4d  @  ½6;  7  dÿèõÏ+17767327#"''67&''7&''7&537&'á:CB  " & 34&(  £  " $    4   `ÿèõÎ">7673265#"''67&''7'73#3265#"&55#'667#ß<    #"?Ž+    (      f6 <"&   ÿë^Ð7'673'67367'0   )   œ#(;  v  iÿèíÒ7#"''3255##53673#735#í  `" ;;¬¨  ±Ä )mMmÿèîÑ#73#3#"''3255##5##535#'6T22  1 Ñ (^  Fex( `ÿíôÐ'+73#"''32765#'6#3267#"&5535#€X K F+"-*Ð n( S J1 8%iÿéóÇ73#67#5'75#35#35#675#j‰*1)88888ÇvB< Ž R WsÿéôÐ7353#5#535#535#33#3##533x""Y##§)ç2,--,2ç) ÿéqÉ#'+73#&'#5'67#535'2#5##535#35#e &$  "*!)111111É %&oh h%9 -õÑ(@7373#3#3#'#5'67#5367#5367#35#535#53&'#673[\dalŠ2 )¤ (<3@Q%88;1S  !8Ä  78  k     MëÐ73#3#3#535#535#53&'736­ 5ZRRaÖ`RR[7  . Ï  @ëÐ"(.4733##"''3255#'67#536553635#7&'&'mV   w -!sq.   Ð 8   $ B&  / VNóÐ73'67#&''667#'6x` $/ ,2 $ Ð  '"   ?åÏ '3=73#567373367&'#"''325735#53#535#'3'67#0#5/    8#65"j,  }%y  "R4  *  5'…&-& ÿêöÏ/37;?CKOSW733#3#67#732767#"&55'75#'65533#735#33535#3353#53535#35#35#jbbreXZ+$ 15+-2K ŽŽ--=-j--=-Ì 1 1 Ï        I95 +7XF>& ! #&&& 6ÿéøÑ.26:>BJNRV733#3'7#73267#"&55'75#'665533#735#33535#3353#53535#35#35#…GGZ G35  %$ 5rr 0 P 0  %$Ñ   J?. ,UH<# ! !$$$ ÿêYÏ7367&''65''6,  ! Ï7 !  2 *@=) ’òÑ7'673#&'73#&'#'68   ?!KN( °     UÿéóÑ.26:>BJNRV733#3'67#73267#"&55'75#'65533#735#33535#3353#53535#35#35#”88I7') +aa(?( ƒ Ñ    J>/ 07UH<$ ! !$$$ _ÿéóÑ048<@DLPTX733#3'67#7326567#"&55'75#'65533#735#33535#3353#53535#35#35#™44D2$&  ([[%:% {    Ñ     J?. /8UH<$ ! !$$$ IìÉ %+1773#735#35#35#'3#735#35#35#&'7&'''6''6‰YY888888|ZZ8888882    ) e ÉY? # # ?Y? # #      HòÐ "(73#'6'#3#3#535#35#5#7&'¬'"ÿéíd 73#"''325''67&'y    9•da  B' "# $XÿéìÂ'667#533#"''32767#7#jg $  ' 'DZJ[ EJ_J ÿéõÏ"7365333267#"&55#'6767#<R   ?( #;‘ " „B%#7kÿéøÎ735333265#"&55#'67#€/ -(11—  ‰t-)jBÿéøÏ 7333267#"&55#'665#53z<  '  ,-Ï2—  ‰=IC;ÿòîÇ7#3#5ä¶ÀÔǯÕ6Ù®!73#"''32765#'67#'67#'6c l   P K. ( ®[?R!D3( 7 â½'-733#3#535#5335#35##5##5'66&'ƒ77L«L77%%%8%%6Z9$)'!½'  ' @0!!0  † ô®735333267#"&55#'67#•#  ! Œ""f  ZQ H5 ­#'+73533#3#3##5#535#535#35#33535#3356"$$""##" .    E  E ( & IТ 73##5#735#33535#335I‡9:'';'b'';'¢g++<C?æ73#3#3#535#535#&'F™C;;J§H::Ar !''!7  @ä73#3#3#535#535#G—B99H¤G99@%%%% DõÏ7333267#"&55#'667#536YQ  ?&% # 69Ï M  @!- $ ÿéâi767&'7''6j 7< !JS.iE  ") "ÿéõ“ 7333267#"&55#'667#536\O  =&$ "!79“f " Y)7-#ÿìí“7732765#"&55'75'6Å &+np * 3$X[:U“'  0% 5  'ÿéí„73#3##"''32655#535#2›Ccc  ddD„$6 1$BÿéõÐ737333267#"&55#'67#T"' , ¢.‘  €EG 1hšêÐ73533#"''3265#'67#¢$«%%lZ]& "T WõÏ7333267#"&55#'667#536ZQ  ?%' #!7:Ï ? 1&   +ÿéÕT 7#5##535#35#Õ‚‚‚‚‚Tk k'; ÿèõb7365333267#"&55#'667#=Q ?%' #!:P H  : (  ÿêî^!73533##"''32655#'67&'gbb   g7 ~!N6 1 !ƒðÏ73533533##5##5#<A<<A<° ÿèõ{7365333267#"&55#'667#=Q  ?%' #!;b Y$ L'0(@ÿéóÏ/73533#3#3267#"&55#'667#535#'6i;;G0  -H& È***O # R)1)#* # ÿéVÐ 73&'73#3#3##5##535# I<<<<>² V V6$† íÎ"73533#&'#5'67#7'6'&'Ž#%%  J  <  MM=C&L  TÿëòÄ7&'333#"&'&'75#p " )'1 ÄGf   W}ÿéë‰73733#"''32765#'67#ƒ5  "#e$$[  2G#=upðÍ 7'673›  M™ /cÿäöÇ!&73#735#3#7#5'75#35#35#675#zdd>>'ˆ /5&>>>>!>Ç:7W#!_7: ÿékÏ$73673#3533#7#5'675#'67# (.  .. ¯ ! 73" NîÏ!733#3##5#535#'67#53673#3}GG]]llK /= x„ 2Ÿ   nÿéóÏ73533#3#5##535#35#n899.E+8!EE222pp2~9Hÿÿ›Í733#3#5##535#535#h " "Í-.W a.{))ÿéîÏ73533#3#5##535#35#dddJ~Gd1~~222pp2~9 ÿó]Ï7#535#53533#3#=#% o----j33ÿéîz73533#3#5##535#35#dddJ~Gd1~~eS SL#"„ÝÈ 73#735#335335"»»%%7%%ÈD""""""~ÝÈ 73#735#335335"»»$$7%$ÈJ'''''"—ÜÊ 73#735#335335"ºº&&8%&Ê37É©73533#&''67#9<AC%" "$ 2 9„%%"*?íÏ !'=C73#5'677'6#&''6'&''&'3533##"''32655#&'E™ 2NPŽ  À  '   ^  ^  ÏŒ-  J          ÿéòI73673#&''67#ejZA JU F[6   *,   ÿéò $:@73'67#&''6'3#5'67'&'3533##"''32655#&'†Q-V J(B ;  Lc""   c)   1  "  ±9  OA) $   iïÒ!'<B7'2'3#5'67'&''6'&''&'3533##"''3255#&'Þ3I=[  ¹$`  `+  Ò e  ,          ÿéóY"(,7#53#3#5##5;5#35#"&55#'67#5#335#^QæUBš><š. ('š.qššJ XX 5  *  ÿéóc"(,7#53#3#5##5;5#35#"&55#'67#5#335#^QæUBš><š. )(š.qššT _ _ <   . €\îÌ(733#"&55#'66767#53&''67&'× $  AW    Ì    C   ^óÕ ,AG73'67''667#7&''3353#5#'67#535#3533##"''3255#&'A[  / -  u  =3Ob  b" Õ"    #o&      ÿé‚È (-173#3#5##535#5#35#"&55#'73335655#35# u&B$? B  6B BBȵ µp 1"J-5=„ŠÿéðÏ"&736732667#"&5#5##535#35#Š" #)  . _66666Ï    $zz-H€ÿêîÏ#733#5##5'67#&''635#­4(?0?&    00Ï :c UC  š2ÿéõÐ0673533#3&533#673267#"''67&'#535#7&'677H64       œ?6Á  ¿*$&  #+; ÿè•}%)-73#3#5##535#5#35#"&55#'733567#35#‡,#T%,I $T  C TTT}uvA  L  ÿéór"(,7#53#3#5##5;5#35#"&55#'67#5#335#]PæTA™><™- )&™-r™™aj jC   4 |hôÐ7&''67'6767767&'Ú )1 '  "„ÿèçc7#"''3255##55#35#ç   <O<<…ƒÿéõÌ ,27'2'6'&'&'3533##"''3255#&'æ *=2'      F   F  Ì  =H  E OÿéóÏ/?733#3'67#'665533267#"&55'753#3#3#5#535’AAH d .<*" ?LZZObÏ    F:, *P#  6$# ÿöZÏ7&'37'5#2  4 !Ï ?n  p ÿöeÏ7&'37'5#3  6 #Ï ?t  poÿéñÑ 473&'73##5##53&'7367533##'6655##5##5t/4x}])-  ¹  #((   2; 'XX?PÿéìÑ673#3#5##53&'#53&'#36#"''3255##5##5353~b' <°; &\BW 4 4  87KÑ (( #D<  $UUCVNÿéðÑ 473&'73##5##53&'7367533##'3255##5##5R> D™ž{(  &  /; ''º  #((   2; 'XX?Pÿê€Ð 673#53&'3673#5#3#"''3255##5##535##53&'H-m,  )  ("Ð  ))8  "YY?P) ÿéì¦673#3#5##53&'#53&'367##"''3255##5##5353ƒV8°8 Y=Xz  66I¦  %% 7 8.  DD5Fÿé‹É$,047#3#327#"&'#67'535&5##5##535#35#…'+' '  H%!\GGGGGÉ0  n0=c d$7ŒÿéóÐ733#3&''67&'#5367²))'   "Ð$ 7(  . mÿèôÏ733#3&''67&'#5367Ÿ==8"% " & Ï"9( 1'"˜ÿèõÐ733#3&''67&'#53767º$$$       Ð% 9(  3' MšÏ%9I73#35#535#535#533#5##5356737&''67&'76''7&'76)V" j  #    œ  U&&N  /    #     ÿé™S737#"''3255'757#*V5 B=S    TÿéóÉ#+/373#3#327#"&'#67'735#&'##5##535#35#TŽ5;1 # <% ff51zfffffÉ0  M.=d e%6pÿéóÉ#+/373#3#327#"&'#67'735#'##5##535#35#pw,/( , PP'#dMMMMMÉ0 N.=d e%6lÿéòÉ$,0473#3#327#"&'#67'735#&'##5##535#35#l{/2+ . SS(%gOOOOOÉ0 N.=d e%6 ÿþgÏ767'67'6767'6U "* $,/§5$  0*`   ÿþVÏ767'67'67676'6D"   !#§8" 0.n  Mÿê¡Ï73533#&'#5'67#Z    ¡..ho (8&ÿéê %7#3#327#"&'#67'535&'#ÛENE ) T,#'6 AG8 #  9  ÿðóm73#3#3#535335#Ï]LLhæ**\m"";;W&ÿçÜ‹!73#735##"''32655##535#35#.¦¦›  ŽŽŽŽŽ‹/+Q  i ( ¥ÿéíÄ 7#5##535#35#35#í"""""""ÄÛÛ=+f*e*OÿîóÈ&+37;?733#'3267#''67&'767#'67#37#3#53535#35#35#_u      %%38`¤%&È&/" (     ( *> j@@@..... ÿñ•Ç',6:>B733'3267#&''67&'767#'67#337537'27#775#'#7l      %.Tr;I'<Ç"(       " $4 ¯C. 3/ !$$*‘ÿéõÐ!'767325#"''67&''7&537&'ò4       ™ " / "7&@: ÿïîÉ!%)73#3#3#3#535#535#'6735#735#35#)¯KXXPPaÜfNNB  8O‡‡‡‡É\ 68LÿïóÉ!%)735#53#3#3#3#535#535#'6735#35#h(7€4::44A›E440 YYYYg \\ Y8[ÿïóÉ!%)735#53#3#3#3#535#535#'6735#35#t!0r-44//:>..( MMMMi[[ X9yÿïóÉ#'+73#3#3#3#535#535#'6735#735#35#Œ_$''##,o/##'8888É[  59 ÿð“É#'+7'75#535#'6735#53#3#3#6'35#35#9E:''! +e&++''G????   XX–6 ÿé¢Í #06<B73#5'675#73#5'675#&'7&''67&''6'67'6= ,C= +.T  (" ) # ' '+ 1 35 'K LÍS  S      P     +‚ÿêóÐ"(73267#"''67&''7'3767&'Ü   /1   j%' *0D$  "vÿéôÐ,273533#3'33#67327#"''67&'#535#7&'444@@?      ’=4º  ¿445(: 'D  ÿ혇#'+73&'73#3#3#3##5'65#5#35#1(-((((,b 5$$$$$…  ]"!KÿèóÎ/3733533533##5#3#3#&'#5'67#535#5#535#gAl;A5$ $'%1?2ZÅ++: !99L+GÿèõÎ/3733533533##5#3#3#&'#5'67#535#5#535#eCo=C7% &)(2A3^Å++: !:: L+ ÿèeÏ%+73#"''255#'67#535365#7&'4'9  $$  Ï ° N>- /2L[::3H ÿèëÉ 7'66553'#36 É¡¡–2F6 1%`3"6ÿév“7'6#5'6`   “  [H iÿéó‘/373533533533##5#3#3#&'#5'67#535#5#5#p >]39- +5* [€' ,(  7 ÿèëÊ 7'6553'#3.Щ©8G6 6@a- 1ÿêo—7'6#5'6Y   —"XD gÿçñ˜.26:>BFK735333##3#3#''27'67#537#535#5#5;5#33535#33535#33567#u00 04CM '+,%(#40 /M/R##4"$ , !     !  6 < _ÿñóÐ "27#5##53&'73#67&'7''67#3533#3#535#í`9 Hy;  +1'533@”@5µ##  )   ILÿéêÉ!%)B733#5##5##53&'767#5#'#35#'3533#"''3267#'67#53`…))(<   hw)((=)<(E 3 < 25:Ébb  ;2+ -`ÿéíÉ!%)A733#5##5##53&'767#5#'#35#'3533#"''3267#'67#53rw$""5  [h"""6"6">* 6 , -2É bb  ;3+ -HÿéóÏ4873533533#3#3#"''3255#353#5335##535#535#35#P"0"")LE  1W0DL*"600»j  T<->>-!99M m  (+3>R!&:!#D, I$ dk a .(,+¼2!5./321)   1H   ÿïeÏ 73#'6#53#3#67'5#53-.6 <   Ï 5%7 E ÿï_Ï 73#'6#53#3#67'5#53**2 8  Ï 1&7 F ÿïgÏ 73#'6#53#3#67'5#53/.7 =   ""Ï  4&7  FUÿéóÏ4:@73533533##5##5#&''63533##"''3255#'67&']..C& #!% 4!211  2_» ! /:  5 $  ÿéòÏ5;A73533533##5##5#&''63533##"''32655#'67&'3L33L3n12 5108 P6ONN   O!‡» ##09 4 #IÿéóÏ$(,173533533##5##5#3#7#5'75#35#35#675#N$3$$3$Ÿ8@)MMMM*#MºdpBDÿéñÐ$(,173533533##5##5#3#7#5'75#35#35#675#:F::F:Ö!$KW% 5llll;1lºa nBC^ÿéöÐ$(,173533533##5##5#3#7#5'75#35#35#675#` -- 29$CCCC%CºcoBCyÿéóÏ#'+73533533##5##5#3#3##5#535#735#35#z d'3333)>>>>½[,,69 ÿéóÐ#'+73533533##5##5#3#3##5#535#735#35#8H88H8¬LiihhK„„„„¾[,,67 ÿéðÐ8<7#'6553&'733533##3#"''3255##5##535#5#53#3ïºc8<'''E  11E(''P<<»MA2 1W#%' ! Ï  /$”âÏ 73353#533uDÄCÏ(00ÿéòŽ$*<73533#3#535#73533##"''3255#&'3533#67'75#)))0u1)t= = y.**6C5.|W  S   FòÐ%+>73533#3#535#73533##"''32655#&'3533#67'675#)))0u1)t= = y.**5@.ÂC >    ÿéãm"&*73#3#"''3255##5##535#53635#35#tQIX   DDXJC3‚‚‚‚m:   &&!/ :   ÿéóÑ#'+17&'3673#3##5#535#735#33535#335'&'x  ?{  MhhiiO;;P9‰;;P9‰  Ñ ,]..7;g`ÿéóÑ#'+17&'73#3##5#535#53635#33535#335'&'¢  C 6AA??6PO##6#Y##6#^  Ñ^//^?<g yÿéóÐ#'+17&'73#3##5#535#53635#33535#335'&'±  7 -4433,B>,F,L  Ð]//]A<gyÿéóÏ .47#5##53&'7&'''636733#&''67#7&'ëG+   *2) " ! &%&S·(*   8-5,'0  ?ÿéòÏ 47#5##53&'7&'''6&'36533#&''67#ërB2 O  `AJB4 3C B >·),    ,/,*ÿéˆÍJR73#35#535#53#563325#"'&'7&'67'5&'67'53753745&'8 A,c8          2 Í [Wa-(#B   + * - u    !WÿéóÐ(-28>7367#'6733#3267#"&55#'67#7367#335&'&'d@+ 1+*   1 &*#6(J$$##9265™  8  %   R    \ÿéóÐ(-28>7367#'6733#3267#"&55#'67#7367#335&'&'i=) /*)    0 %(!4&F##"!6144™   8  %  R   /ÿéê "&*73533#&'#5'67#7#5##535#35#35#<    ®2222222~""[Z#+-°°0LM?ÿéëÏ"&*73533#&'#5'67#7#5##535#35#35#D    §.......›44nl (6;ÛÛ=+h,h+ ÿéæ‘"&*73533#&'#5'67#7#5##535#35#35#'   #ÒHHHHHHHr RT",* ¡,DE[ÿéìÎ!%)733#'#5'67#537#5##535#35#35#x  t"""""""Î3lt$(6)ÛÛ=+h,h+ƒ4õÊ#(733#"&55#'6673&''67&'#367Ú   Y   Ê!  % C    1õÏ!);@P73533#3#535#733#"&55#'667#5##53&''67&'#3677'5#'667333&a(3Ë  PzY   `    Ä   !  % =!"    &   #  ÿé†Ï+73533#3#535##5##53#7'5#'665,,,$[#,lH>>?   À05  6!  ' ÿéò]!73533673#&'#5'67#53&'I  /Q$3 9%!; ;N6 [    #;;$  RóÏ4733#3'67#&''67373&''67&'767#F,,(UK=     F\  ! DÏ 1 %         ÿézÏ373673267#"&53#&'#5'67#535'6! )&S ((  $/0Ï    :@ nÿéóÇ7#5##537#53#3'>&'ç<"/u3   ¡‚pqƒ'A$!  ! ÿéÊ $*73#3##5'67#535#735#33535#335&'a',, (0(&:&  ÊeX> ;CZ wÿéóÇ 7#5##537#53#3'>&'è7 +m.   ¡‚pqƒ '@&  " vòÊ7#5##537#53#3'>&'ç7!+m.? ¦tbcu!)@ …ÿéóÇ!7#5##5367#53#3'>&'é4)h+  ¡‚pqƒ  '@'  !ÿé„Ï8<BIN73533533##5##5#3#3#"''3255&''7&''#535#3355#765#655#n    . " »l    /ƒ; -  6 iÿéòÏ>BHM73533533##5##5#3#3#"''3255&''67#''#535#3355#655#i!!!!!!%#      $%5 I»l    *  0ƒ; 0 1"ZÿéôÏ?CIN73533533##5##5#3#3#"''3255&''67#&''#535#3355#655#Z&&''&&‘+(        )+; Q»l    *  0ƒ; 2 2#IÿéóÏCGL73533533##5##5#3#3#"''3255&''67#&''655##535#3355#I++,,++¢0,      -0A »k    *   %rƒ: 2F5ìÏGK73533533##5##5#3#3#"''3255#&''67#&''67##535#335K)())()¦2,     -7G¾ 6  "    9H 3IÏ 7&'&''6$  +Ï  $    @ÿí”Î:736733267##"&53#3#&''67#53655#'6K    - " Î       †ÿéóÅ1733'67#3#33#"&''6735#53&'767#–Q     $/  :Å +4 !C! f  ÿéuÐ873673267#"&53#3#&''67#53655#'6 %  :$(  (-Ð         sÿéóÏ'+/735333##3#3##5#535#535#535#535#33535{)--118811++((//)<»''''& ÿèöÒ6:>CZ`7#367#533#7#5'675#'6553&'73&'736735#35#675#73#&''67&''667#ôÆ72G "'   .   €(((((\9     ±-JV >. /9T   a33 {9  ( ) ÿèôš4;VZ^b73&'73673#'6553&'3#&''67&''667#'367#533#7#5'635#35#35#75#9 ,  "À„9      ;>R $% ,,,,,,™    6-" "*= #      4 ; ! #âÏ 73353#533vDÄEÏ **¤âÏ 73353353#DDÄÇ# ÿéõ $(,27Sls„73#33267#"'"&55'67##5365#'#33655#35#'3#&'#5'67#535'23673&''67'67#367767'74''6¨+,    %!)&K *&  #*)/ /   + m    T+  !, ^+" D     _       ÿébÌ #7&'''6&''6#5##535#J      /Ì   -__@03ÿýÈ­)37;?C73673#'#326547#"&55##5'67#3533&'#35#33535#335@->' )   "$   )A)—   A   M "*,:ÿùʰ'+/57&'3&533#67327#"''67&'#3#735#'6³gJ*)     J::-#'°   )$+30ÿèæÒ7&'3#"''3255#3#@ <{   gQÒ Âª¹7ÿîȪ#'+73673#3##5#535#53&'35#33535#335e  3????4!!!4!U!!4!ª   W''W 96^ÿèôÏ &,77'5673#3267#"'&''3&'&'r Q$53   32  ih É  4!)"FE2•Lÿêðž$*767'5673#3267#"&''3&'&'`  U':7  ":7  C?  ’ $1,-7%bEÿèõÏ73533#&'3##5#535'67#QAE8) *$$##()4£,,K#)Q]00]L.-E?ÿéôÐ#'+#5'673&'73#3#3#3'353535s # -  870000955555 -3!"!™!!2""4!! ÿé¢Ï48<733#3#&'#5'67#535#535335#535'273#335#335y- 18876 ;;A*‡B># / ÿé§Ï%*.26<B733#3#5##533##5##5'67'3&35#35#35#''67&'H66=a7RR`D3$$K @1DDDDDD  Y Ï "";] \ )  ' ' & n    Gÿé”Ï#'+73533#3#3##5#535#535#35#33535#335G  (  ½b..b;B8 Ç®'+/73533#3#3#535#535###53#"''32=#35?67700>=//6fJn  JJ¦  pXD ' .ÿêó«-159=AIMQU733#3'7#732567#"&55'75#'65533#735#33535#3353#53535#35#35#wWWeQFG$ '$ '7uu!!1!R!!1!¨ ()«      ?4( )/F:6!  dÿðóÏ73&'73#3#5#dD  5hau¡ŒžN%íÐ"&*7'673&'73#3#3#3##75#5#35#m $./))))1m>+++++ (5   e%%UÿéôÐ#'+#5'673&'73#3#3#3'353535  +  .3----5s+++++‘ (-!"!™!!2""4!!NÿèõÐ  $,07&''63#'66553&'#335#5##535#¢"# "#&2 ,d 59QQQQ@@@Ð K." #A #  .D D*XvóÐ<73533#3#&''67#5365#'67#5365#53533#3#&^  n    Ä     #      ÿéaÍ73&'73#''67&'767#  "   6£,$#"(  XÿéíÊ  $CGMQW7##535#35#7#"''3255#535#5#3533#3#&'#5'67#535#35#&'735'6›1ƒ   1 K+++%%   %+  #  ÊEœá ' )Ì „E '  6  #' 6 4   AÿéõÏ73533#3#&'#5'67#535#^6<BJNRV733#3'7#73267#"&55'75#'665533#735#33535#3353#53535#35#35#pNNh[GH %  01')2 K(ŽŽ--=-j--=-Å00Ÿ         9/$ !@;0 ÿçës*067676767&'7'#"''3255#'67'67&'''6N!39M)  !  ++,  G! !R -'X #  $     G   ÿèï[+177676767&'7&'#"''3255#'67#'6&'''6Y . 9CS( ""   .-. ^#!!H & #Z      :   \ïÐ&*/3873533#3#3#535#535#3733##7#7#73'3373'#337YYYOOeßfKKY ™"%†360~3+=0È    <   ÿèðÑ/37;?CTX\733#3'67#673267#"&55'75#'65533#735#33535#335#"''3255##535#35#ibbs _'G & 0",/5G)££77H6~77H6 uuuuuÑ       L?1 0:W@5 >  O ÿéõÐ-F7373#3#3#&'#5##5'67#5367#5367#673#35#535#53&'Wahgo7  v 3@7?PC  //v//6:¿ ^ Y A     hÿèõÎ/3733533533##5#3#3#&'#5'67#535#5#535#}:Z16.  )3)IÅ++: 65L+bÿèõÎ/3733533533##5#3#3#&'#5'67#535#5#535#x;^490" # !+6+LÅ++:76L+fÿí›Ï73#3#5##53635#5#{$$Ï I^È E'Ž++ ÿé}È (-173#3#5##535#5#35#"&55#'73335655#35# p$@#= @  5@ @@È´´l / ,M*2C lÿê÷Ï7'2333#"''67#53&'à 1F: (/ 9EX1Ï;  /@}ÿðóÏ73&'73#3#5#}9  )NEY¡Šžÿé|Ï#+/373673#53&'35#4'735'6#5##535#35#*   l  &  ;;;;;Ï RR Z4 44;ff#7 ÿìô^%*/7&'#3#3#53&'#535#5'6''35#367#‰ -9 /Y 4Þ5Y0 GT $3%^      ; vÿéöÏ/3733533533##5#3#3#&'#5'67#535#5#535#‡4R,1*  %.'DÆ ++9 43K+ÿçðF#73533533#3#535#35#'67&',G,,8Ü7,?GG$*+e(' '(< "  „òÎ 73#'6«JVÿéôÏ!+37;7333#"''67&''667##53&#5##535#35#|% 28   P SSSSSÏ $    ,\G` `$2 ÿécÏ"73533#&'#5'67#7&'7'6     G  ~QQ TZ",Q]ÿéóÏ!+37;7333#"''67&''667##53&#5##535#35#€# 03    K MMMMMÏ $     +\H_ _#2aÿéñÏ *.B7&'6'&'67&'63#5##53635#67&''67&'«   $   h   8J\%\\    Ï   9} } lQ      cÂ73#3#67'75#535# Q%-Â:;  B:YÿéïÏ +/C7&'6'&'67&'63#5##53635#67&''67&'§  &   n  ;Nc(cc    Ï   :} } lQ     jÿéñÏ +/C7&'6'&'67&'63#5##53635#67&''67&'®   "  b   4FW$WW    Ï   : } } kQ    ÿñl¿73#3#5##5'67#35#\) 2   (¿#r g %:’DÿèNÉ7#"''3255#'65535#35#N     ÉÊ ?1( +5v;)d) ÿèÓÉ7#"''3255#'665535#35#Ó | xxyxÉÄ-,$ 4"`?,k, ›ÿèíÉ7#"''3255#'65535#35#í ÉÉ ?1( *6v;(c)GÿèšÉ7#"''3255#'65535#35#š ÉÉ ?2' +5v;(c)EÿèîÉ/377#"''3255#'65535#35#7#"''3255#'65535#35#˜   ˆ  ÉÉ ?/* ,4v;(c)MÉ ?/* +5v;(c)RÿéíÉ/377#"''3255#'65535#35#'#"''3255#'65535#35#í   !   ÉÉ ?6"!>y;(c)MÉ ?6""=y;(c)ÿêUÆ75#53#3#"''3267#7A0D-/   1&K(M5L ÿçêÉ15:7#"''3255#'65535#35#'#"''3255#'665535#35#ê  10000,  / ....ÉÁ22' 6A`;'b(gÁ21( 1&`;'b(ÿøY¿73#3##5'67#35# L *$  #¿#hY $;‘CZÿæóÆ)73#3#3#535#535#3533533##5#'67#h„822>Ž<228- -* !ÆtDD+_ÿæðÆ)73#3#3#535#535#3533533##5#'67#l~5//:†8//5**( ÆtDD,ÿéð‘%)73#3#3#3##5#'67#535#535#535#5#!ÀVLL]088E: , :<4]LLUƒC‘//& UdÿéóÅ.73#7#5'75#35#35#75#733267#"&5e‡?  =  ň0,’##W#\$Zž! kÿéóÅ-73#7#5'75#35#35#75#733267#"&5l€;  9  ň0,’##W$]$ZŸ ! nÿéôÅ073#27#5'635#35#35#75#733267#"&5n€8"4  Ň0,“##W$]$ZŸ ! UÿèóÆ 67'66553'#3773267#"&55'75'75'6€ {TT/179  " /ˆ'D5 2#_>,   =ÿèóÆ 67'66553'#3773267#"&55'75'75'6l ‹dd79@B  $ &) #7‡&E4 1#_?,    nÿèóÆ 57'6553'#3773267#"&55'75'75'6‘kFF&(-/  'ˆ'D5 7=_>,   MÿéóÇ 73#735##53#3#&''67#536dzzRR6ƒ8IA, /5 .5;ÇF"Y $*-$ fÿéôÇ 73#735#365#53#3#&''67#yff?? 4/t2=6% & 0/1ÇE#v  #&  aÿéóÇ 73#735#367#53#3#&''67#skkEE!73z5A9& ' 204ÇE#v  $' !IÿíõÆ 73#735#35#3533#3#535#^……]]]]<==J¬L<Æk?EN&&Rÿîõ‹ 73#735#35#3533#3#535#a„„]]]];<>   AA gÐ%'&"A  =8 % 'ÿèÔE 7#5##535#33535#35#Ô…99L9…99L99E]]$5 @÷Ñ%+17&'#5'6&'3##"''3255#&'''6‚26 "Z$ OI6±P M~("!'J+.Ñ          fíÐ3733#3'67#&''673767#53&''67&'H)) D ;4     J@U    Ð  + !      YÿñóÄ#73#3#3#535#535#735#33535#335f666DšB555""6"X""6"ÄsBM ÿîô873533#3#535# VVViçiV%4ˆÈ"&73#3#67'675#535#735#33535#335f*,,3>++**B*ÈM   ./‡3ðÉ%733'67##"''3255#53&'767#Œ^(  '+  BÉ   3  0  cÿñóÄ#73#3#3#535#535#735#33535#335nx111>=1123Q3ÄsBMZÿñóÄ#73#3#3#535#535#735#33535#335h~555B™C555""6"X""6"ÄsBM ÿíôÊ"&*73#'65563267#"&553'#3#5#Û Keµµj0 .9 C<–--@.Ê C959W—! jF4"""KÿìóË!%)73#'6556#3267#"&5535335Þ 1BxxG;Q " ,Ë '@5 26^PE&  n####5ÿþï#'+/3733#3267#"&55#5367#'6#;5##;5#c6#.  -3.  "¯  T  T  0! ÿé÷Ñ$*.26:7##5'66733#5#3267#"&5567##;5##;5#u9 M H; '  3& > C99;;99;;$o   x  Ž  ,ÿèîÐ %73#53&'3#735#3#"''325567#‚aÞfB¥¥||$¾!(   šÐ  3:8 $ cÿéóÏ %73#53&'3#735#3#"''325567#ª?;$ooGG}  _Ï  2;7 & îÑ $73#53&'3#735#3#"''32557#ƒbÝdC¦¦||%Ã"*2•Ñ *0-   jÿéóÏ %73#53&'3#735#3#"''325567#¯;‰8"jjDDy  [Ï  3:8 &  ÿébÉ7#"''3255#'65535#35#b   ! Éà 91+ 6?`:(a( ÿçóF736533533##5#'67# C<??>8-@3 772 ©ÿéóÏ73#&''67&''667#¾'      Ï=,  .!,HÿéóÏ<BIOU1073#&''67&''667##"''3255&'#5'#535375#7675#7'6'&'¾'      !   % & E ?  Ï=,  .!,‹ $nf"0 DD'=F L    ÿèFÏ7'6#5'61   Ï)c #<ôÏ $*CIO7&'7'673#&''67&''667#'33#"''3255##5##53'67&''  a 7>     $f0 0  4 Ï     !      0/N :SSTdÿçñT.73#673265#"&55#3'67##&''67#âP% , '8 7SH1   -T    E/ "   oôÑ #)BHN7&'7'673#&''67&''667#'33#"''3255##5##53'67&'&  a 7<     $e0 0  4 Ñ       "0 444B   ÿéøi"&*.26:7#3#;267##"&55#535#55#7355#355#355#ÚEOO  < LLFi 2g3h=r>.=k>>.=T0  1JQ. §æË 73#735#73#735#[[55\\\88Ë$ $ ÿæñQ7&'3673#&''67#´ —_h]A I!3) AVQ   %  ÿèô— #*EKQ7&'7'673#&''67&''667#'#"''3255##5'#5353675#&')  \  5<    $"  00 @— ,!   & "g  RfL &‚++X °òÑ73533533##5##5# =C==C=Ç \ñ² #)BHN7&'7'6&''673#&''67#6'33#"''3255##5##53&'''6* Q A   ;  0& ‡/ /  %  ²   4      #) **+:    ÿéöZ"&*.26:325267##"&55#535#53#3#'#'5#335#5#335#35#5#;!MMF¿JPP4c88/=l>>>>/=   4 1OQN 2  NÿéôÏ;AHNT1073#&''67&''667##"''3255&'#5'#535375#7675#7'6'&'¿%         % % ? ;  ÏB#! - "(‰  "ha"1¡DD)IQ  I    ÿèNÐ 73&'7367&'#5'67#    &® "   ce 7ÿèòK 73673#&''67'67#37667K‚2 # /%G 1!5 ?U 5  =       † òÎ 73533##5#†-++-ŠDDmm`zÏ73#&'#5'67#535'6r&&  (.1Ï  !%u^ðÑ7367&''66''6®  (!  Ñ   ( ÿêõ[%73#33267#"&55#67'7#&'ãœp  ` %3p [3  (+  T)  ^ðÑ067367&''66'3#&'#5'67#535'6'6®  (!<&&  (.1F  Ñ   (*  !% |êÏ%+17367&''657367&''65''67'6D    )l    )‰  o  Ï             )ÿçñY$73#33267#"&55#67'7#&')­}g  X )N Y4 (- S%  Qðx7#5##5ð»x''rðÏ#73533533##5##5#3#735#335335>>>>>>ÀÀ&&9&&Ä  1>îg7#5##5î¸g()*ÿçñK%73#33267#"&55#67'67#&'*«|g  X (M K +  #E!   ÿéóÏ73533533##5##5#35#35# *h,,h*>hhhh¥****©©88ƒ8ÿòóÏ73533#3#3#535#535#'6? 9WWMMcájMMC  Ç667777 'eíÐ733673#5##53&'733#735#u  .²/ B™™qqÏ  -- -mÿéöË73533533##5##5#35#35#m55+5555¤''''¨¨99…:qÿòóÏ73533#3#3#535#535#'6‹ --''3~7''Ä&777777 ' ÿù}Î73533#3#7'75#535#'6$""(-7.&&Á ,,-4   8- (ÿéòÆ #73#3#735#33535#33573#5##533ãã2||""5!V""5!'¤¤Æ|G$$$Z%%%;©ª‡&cÝÆ 73#735#33535#335&··==Q>==Q>Æc9> ÿê—Ï37;?CGMSbh733#3'67#'65533267#"'"&55'675363#735#33535#335&'7&''33267#"&5''6C44@ [ .0  :cc&=&   .  6    Ï  I=/ 07T  0A' #        ÿêâ[733#"''3267#'67#536oa  ROIOU[ ?&=-ÿëîÍ #'+/37;CKOSW73#735#33535#3353#735#33535#33573#735#33535#335#5##53#53535#35#35#-¤¤88I888I8©aa(A(aa(A(¹·$×ppppppÍ5 4  4  ##AA   [æÍ #'+/37;73#735#33535#3353#735#33535#33573#735#33535#335-¤¤88I888I8©aa(A(aa(A(Í5 5  5  /îS7#5##5î¸S$$ÿîòO 733#537#'77#O tAã piO+  ÿèîÏ %973#"''3265'3#73#3#3#535#535#73#3#3#535#535#Ü ÊO "S![O "S!ÏÏ Êçã ÿèîÏ%973#73#"''3265'3#3#3#535#535#73#3#3#535#535#É   ¯PQ ZPQ! ÏççÍ Å4ÿíÊt"73#3#"''3255##5##535#53&'?@6   $%6CAt * AA/@4ÿõËq#73533533#3#535#35#'67&'>$ )—&.$$  L^-     0ÿñÊp*73#35#535#53#3267#"&55#'67#56n ((\&&+>'   0 +#p   H  $ DÿèîÏ%973#73#"''3265'3#3#3#535#535#73#3#3#535#535#É ±Q !R\Q  R ÏççÍ Å,ÿîÏr &873533##"''3255#'3#3#735#&'63677'7&'…(   (VQQEE$$P  A%/]G  C" ,   TÿéïÁ4873#3#"''3255#''655#&''655##535#5#T›*&     ,/` Á%Š  t (;   & !2 ¡%%%%ñÄ,07<73#3#"''3255&''655#&''#535#5#5#655#r"     $B 8 Äs    !1  !‰87,! z ôÏ &*.473'33#673267#"''67&'#7&'3#735#'6z?('    @c  O--«$$?, !53  :D&:  ÿéóÐ!%).4E73#32767#"&55#'67#53635#335365#33567&'7''69*(8  J6)%!#6#    Ð iI  NF!ãEzz&4J   +,/ 2  ? YÿîïÏ)-373533#3#535##5##53#3#3#53&'#735#67#[?@@75?“qaa x*–*TT6* +&& 2 ? ÿëuÏ*.473533#3#535##5##53#3#7'7&'#735#767)))$Z")gD;; W *5 33 Á,#' 1   #  dÿîïÏ(,173533#3#535##5##53#3#3#53&'#735#7#f:992v0:‰hZZ p %Š'LL2% +&& 2?tÿïðÏ)-373533#3#535##5##53#3#3#53&'#735#67#v222+g)2zYNN d !{"AA*  +&& 2 ?ÿèñÊ#'=73#3#5##5##535#3#'3#3#'3#3#3#67&'7&''67#ÂWdPPdVu;;f>>g;;g>> ´´â‡49IRBÊ.>>..     XÿèñÊ#';73#3#5##5##535#3#'3#3#'3#3#3#67'7''67#h~7B//A4N!!A @""A uu˜W  -3 +Ê.??..      KÿèñÊ#'=73#3#5##5##535#3#'3#3#'3#3#3#67&'7&''67#XŽ?J77J=X%%I$$I%%K&&ƒƒ¥\ ! 280Ê.??..     iÿèòÊ#';73#3#5##5##535#3#'3#3#'3#3#3#67'7''67#vq0;((;/F99:hh‰Q  *. "Ê.??..     ÿæò¡#'5<73#3#5##5##535#3#'3#3#'3#3#3#''67#&'#6ÂVdPPdVv;;e;;f;;g<< ¹¹ä/  IQ7© G5¡ '11' $     ÿè~É#'<73#3#5##5##535#3#'3#3#'3#3#3#67&'7''67#Y&/.$8...RRk; " É-??--     ÿèîÂ73##53##"''3265'´´QgÝb  ÂAl  ÿéõÑ-157'67333##5##"''3255#535#535#53673535N 0] 2=   NNhh?Y ===¬!  .9 #   +.=ÿëò­"73#3#353#5##5335#535#'6gvCNN.p/TT) ­ *=.M M.=* 3ÿêí 73#3##"''3255'67#5335#E¡*11   (B =&GFe 0H  >3*6$09ÿæó® $*07373#33#53537#5#3535#5#'67&'FIDG?º:Gƒccccccc ! Y   dd '  # #       ÿèîÊ 7#'655î¿ÊTG5 6Aa3ÿæõ $(47&'#67'5'63&'73&'35#35#67&'‹-/ u 8#'aaaa5 -/ 3T !    ;gìÁ736533&'73#'67#&'?C!W >2 ;i$ "!¦      Aÿéæe!%7#53#3#5##53635#335335#3#3ƒB¥PW~;+'/(////V \\O8 88 <jí¯7373&'73#&'#'67#CB%C,8<.7¢   -ÿê÷|048=A7#3267#"&55'67#53673#7&'7&''6'35#335365#335° " ,>B 37H   N++?1o')=4"!   C  C  5 # =ÿéê‘73##"''3255#=­G Q‘y  t=ÿèë­ %73&'73#3673#3##5#535#53&'ECG.&  /NEEEEL/ —   ..:ÿñò­&*.2673#3#3#3#535#535#535#535#'25##5#35#335Ø $JKA™DMI!H0  4 ­J+<ÿèó¬#'733#3#535#53533#3#53#=#5#¨((7·0(((((A}YYY¬wff5$9ÿêó«7353#5#535#535#733#3#3##?288--2b;;77>>‘Á.  , /7`ï¯7373&'73#&'#'67#>E(F0;?1<ž  $# KÿèÛ] 7#53#5##55#335#355#_,++?,>+?, ac H2ÿéæ«"&*73533#&'#5'67#7#5##535#35#35#>    ¨2222222†%% [c!-/¹¹2 R R -ÿé÷¯973#&'#5'67#535'6'3#&'#5'67#535'6Ü )$   *9    % %¯6)WX)!4  _`$+<ÿçõ£,>BF7#'7367#53#3#33325267##"&55'6'3#67&'7&''735#35#µ(Z&(   "+qK8 &&&&J( 7  '$!`4  z>.ÿêñ­4:@73533533#3#535#35#35#35#73##5#'66556'67&':! c!!!!!!‹ !=  )z 4  —TT33e ss4. ,9/   2ÿék³ 7#5'6Z  ³”u(_ÿêó³#)/5;73#3#3#"''3267#53635#35&'''67&''4'›:asson$OOO  I  A  ³?  9 %s "  S   ÿé÷Æ73265#"'&5#'6655Ô  ‹ Æcb#,ˆRE4 1$^Gÿê·©7#"''3255##5##5353·  /ˆ\  FŒŒas!!5ÿñÁ¦73533#&'#5'67#C//*!  %*}))6*Z[-"36ÿý¡733#3#53533~%%0Œ¡2Ltt=¼’767#53&''67&'YMc' &p0# ÿéçÐ73#"''32765#'6D• ‰$Ð ™7"u)% ÿéíÍ7'673#"''32765D "    ª#.—" ÿéçÏ73#"''32765#'69¢  — Ï —7 tÿể73#3##5#535#'6'&'4‰=LLOO9w  d  ‰B99B  ÿëåÏ73#"''32765#'6&'O% (!!Ï ‘4n$& # Æ7333267#"&55#'67#536P8   ' +Q  D$+ 3 +'Ãv73#3#=uu˜˜v()³’7''6767&'‰17!$' i$*  "CA-²… 7&''6[_6F J….; ¹}73267#"&5536ª /8 "  .&1}  X! ÿøÂ“!73533#&'#5'67#7'6'&'MED% /4AŽ]  \77@D&$F    Æ›73#3#353#5335#535#'6K_:JJ&Š)JJ  ›!!*)!! ÿëïÄ73##"''32655#ß_ lĬ §ÿêóÄ73##"''3255#V   (Ä­  ªYÿê©Ï73533#7#"''3255'675#[   ¥**2  I  <:`ÿèõŽ #73#3#537#35#35#35#'67&'j…?&'g/!   Áš‰Š›'O0&  #+1  ÿêzÏ7'655367&''6E 0 ;2+ .BhC …,!  oÂ73#3#67'675#535# \$""*4""%Â:< A:w¼ 7#5##535#35#35#35#w@)))¼­ ¹H666777q¼ 7#5##535#35#35#35#q<'''¼­ ¹H666777ÿèóÂ73##"''3255#r,  2¯  ¬ÿéíQ73##"''32655#Ú]   iQ; 6Wÿêïƒ73##"''3255#W˜;   Iƒm  jÿói¾ 7#5##535#35#35#i0000000¾ÅË7%\%\%ÿêð{73##"''3255#ße   f{d  aŠñÐ73533533##5##5#=@==@=· ÿïuÏ 73#'6#53#3#67'5#5376@ G&&))Ï  2&8  FaÿèõÈ #73#3#537#35#35#35#'67&'jƒ44x/:RRRRRR Gȇ‡?>>.      ÿêcÄ73##"''3255# V  "Ä®  « ÿê{Ç '73#735#73#735#3#3#3#'7667#7#11*00F__n>5 9ÇD"D"@  !QñÑ*06<733#3#67'675#5353373#3#5##537#3'6''6&'D), !D1:r40?!-.9 1‚  ° Ñ  ( ' " 2"#3 '6)   fÿéöÇ"7#5##5367#53#3'>&'éD%38 !!  ¡‚pqƒ  ': &   ÿélÅ$733'67##"''3255#53&'767#U     '  ?Å  ^  Z   ÿé„Ï#CGKO733533##5##5#533#735#73#735#3&'73#3#3#3##5'6353535,22(118($!!!!%S Ï  #.." I  ÿè|È#=E73#3#5##5##535#3#73#3#73#3#3#"''#5##5##537##3255Y$/0$ 045Cf**   #*IÈ&88,)  ; 011BQ 0 ( ÿìƒÑ !%+73#53&'3#735#3#735#3#735#35#'6I2v1$hhEE 22'``<<<T   %7   E&8    A5// *W ¸   6       - A4   ÿç{Ï#)/7373#33#53537#5#35#3#3&'''6,&)) n"(L444444   ¾ww/   ÿç‡Ç0D73#7#5'75#35#35#75#3&''67&'767#'3''67&'767#m P!......3    >6   #ÇDJ,, 2            ÿêˆÏ $)157#5##53&'73&''67&''667##5##535#J-"3     )?111¸#%        GM M0  ÿèˆÏ%+173#3#'6553&'#53&'367#'6'6'6L* Y- +) '" .'% !1 3Ï 8.# #,A G'   ! ÿè£Ï .73353353#3#3#"''3255##5##5##5367#$$„ –DE ->À&55&7 S ?JJKKVg PÿèóÏ .73353353#3#3#"''3255##5##5##5367#Z))Ž £KK 2DÀ&55&7 S ?JJKKVg dÿèóÏ -73353353#3#3#"''3255##5##5##537#k!"€AA +:À&55&7 S ?JJKKVg ÿé‹Ï '.73353353#3#3#"''#5##5##5367#3255r~87   &2XÀ&55&7 R  JKKVg %C> ÿôcÏ 73&'73#67'676'&'  U< #+§ 83 96.03,mÿèóÏ '.73353353#3#3#"''#5##5##5367#3255tx†<<  (6^À&55&7 S  JKKVg %D?rÿéóÏ %+73353353#3#3#"''#5##5##537#3255xt99 '4ZÀ&55&7Q  JKKVg%C=Q òÏ -73353353#3#3#"''3255##5##5##5367#`%$¡MG  /AÄ**0E 1====EV ÿè…Ï '-73353353#3#3#"''#5##5##5367#3255nx55    $/TÀ&55&7 S  JKKVg %E? ÿèzÏ '-73353353#3#3#"''#5##5##5367#3255em//    *JÀ&55&7 S  JKKVg %E? ÿö‚Ò "&7&''6&'3'67##53#=#@!  %N  8W2Ò    l ON !! ÿôxÐ 7&''63##53#=#@ %OOO)Ð -eb`** ÿøzÅ7'67#53&3#7'75#G 6=R CX"&c*"}1 04[ÿéóÇ!7#5##537#53#3'6656&'æL(7…: #"' ¡‚pqƒ': &  )"2ÿèãÂ73#"''325567#È&/  +!«Âx ~[ÿì݆73#"''325567#[‚  i†O V\à¿73#"''325567#\„  l¿U [ƒÿêïÂ73#"''325567#ƒl  V€ † ÿîˆÑ !'-7&''63#3#7'675#535#&'7'6G ) N ))+2=--  UÑ  !C F6JbõÐ 7&''6š#+ ''( 7Ð*..,DvÊ7#"''32654'7##5v  -Ê %t† ÿðòC733#3#535#53vVVgåiVVCpGóÏ 73&''>£.% * Ï4.#% UÿéöÏ %-157&''63&'73#3#53&'#367##5##535#35#Ÿ ) (!' 4++ -š, &0SPPPPPÏ&     9VV!.ÿéñŒ$7367&'#"''325'3'67#w   6%  \O9 5;Œ   7H  U9!-OÿèöÌ 73&''65'3&''65´   -<  $ )ÌY T$79"7RHE @+9R7ÿëó– 73&''65…A<> N–(H$77$.CVÿéñÍ 73#535333&'#˜Y›.K_/" #—#Y#=A ÿèõF 7&''6x"M P! D OF #'' ÿþbÏ767'67'67676'6P &   &)¦8!  /,p  =¾“ 7&''6x"3“"#2 ÿéuÏ#73533#3#3##5#535#535#35#35# +++''++++##+8888¹[&&[=9 ÿélÏ#73533#3#3##5#535#535#35#35# &&&!!&&''!!&0000º\%%\;9l~òÏ 73#'6”V^  Ï  lÿéò˜#'+73'73#3#3#3##5'65#5#35#—  )$$$$*[ -˜   c('m€õÑ 7&''6®! ! $Ñ tÿçò˜(76767'67'67#53&'73#&''6—= $ #5 /A 9 ) EL :   TÿçõÏ7'6653&¦ :'+P;.ShB''xÿèöÌ73&''>® , ÌW S%5;-8m“èÏ 73#'6ŒPZ Ï  ÿôxÅ 7#3#3#535#35#5#x !`==Å.Q.Ñ@.m-m.. ÿêóÂ73267#"&55#'6655³    M¹ $ «H,:7-Q1!ßÒ!'73#"''3267#3#"''3267#536&'iU   pš  š/Ò 1 >3 b '  †{Ï 73353#533<jÏ6*=<)ÿïsr73#67'535#`E%". EKrC*  J€ÿéúÂ73265#"&55#'655Þ  » #­HS+$RRrÿêõÃ73265#"&55#'655Ò  ù ¬a60 '3s“€Ï 73353353#kÄ**1 ÿ 73#3#735#7677'67&' zziiBB 2< „7,     ÿéób73267#"&55#'667±  HbX  K/(%6sáÆ 73#735#73#735#VV..[VV--ÆS-S-sÿé÷|7#'665533267#"&5Ä# J h%*%0v  olôÐ 7&''6ª! &Ð $$'# ÿòl¿73#3##5'67#35#\* 2* (¿ hf+6‘C ÿçïÒ#'>K7#3#'6553&'75##5#35#3353353267#"&5536'33#67'ïC:·X,---?,( $  # ˆ88 ' Ã*C< 3@] %   . .ÿèó,73267#"&55#'665à   Q  ,'  …ÿîõ{7333267##"&5477#•O=  24{P A……óÐ 73#'6 HP Ð |ÿêõÏ73533#3#&''67#535#$''0, % & ) ')$£,,# 6 11 %3,ŒÿêñÁ73#3#"''3267#5335#365#Œe,*   N'9Á+w$&bQoo \òÏ73533#3#3#535#535#\[[RRhåiTT\»ÿéóg733&''67&''667Y r(. :*-< 6& ,g       ÿêqÃ73#"''32765#'655#[  # ÃwN ƒCQ20ECoÿêñÀ7#53#3#"''32765#Œ‚N RW­7c) E t¹73#67'675#Y#-6"¹~ ƒxÿéìÃ73#"''32765#'667#ƒi  (è0,w[L GYlÿçëÃ73#"''32765#'665#|o  .æ*x`KAf ÿê]Ð #)73&'73#3#3#'67#5365#536'&'N4!-²  0$  ÿéðÐ %73&'73##53673#3##5#53'&'¡N, ² BIIVGÿë™Ã73#"''3265#'655#_:   "Ã¥2•@S3 2H@Vÿé˜Ï 73'65''6…2/ ÏkL/ ,B9-%#_ÿö¡Ï7&'367'5#z + Ï ?n  p[ŸÐ767'67'6776'6   "&¡.! 0+ m ÿèá}73#"''32765#'667#ÆN)/.#O}P1 J1;1,ÿéåÃ73#"''32765#'667#'¾   `&'% 7ÃxO „OX MLÿêçÃ73#"''32765#'6Î  »‚1@ DÃwL"  > =*%)bL-1)'WÿéôÏ !7&'''63#"''3267#'667#¿$&!d   (Ï=!= ?($)a H,2)'JÿéôÏ !7&'''63#"''3267#'667#¸!&+%l   ,Ï=#<>)$)`!E,2*&„îÆ73#3#5##5367#35#35#„j.,:'::::Æ ‚ ‚ GP AóÏ 7'67&'3#"''3267#'67#\!/ +j$- +(X‡  < : 1 "Ï %#"&-54  $AëÇ 73#735#3#735#73#735#0žžvv.__99b``88Ç;9;;ÿôë„ 73#735#3#735#73#735#0žžvv.__99b``88„>@>> GóÓ %+17&''63#3##"''3255#535#&'''6‚0: ;7(6 Qe)]]  UU)]*#"(O& )Ó       "      2óÒ $*07&''63#3##"''3255#535#&'''6€37 89)4 I e)]] UU)]*#"(O%(Ò    (  [ÿêêÏ 73#5#533533Ö{)*š°¢ÄÄ&ÿéÛ{ 73#5#533533Ç¡<RÏ 7&'&''6- 0Ï    VAóÆ73#3##"''3255#535#a‡4?? JJ?Æ""  "AñÏ$*7373#'67#3&''6657'6''65‡Œ*&/u: 9@ -!F ^ ¸ 6*'+     ÿèvÎ7&'#5'67#53&'736e  -=%   x  ho 5  }ÿéí 7#5##535#35#íHHHHHÂÙÙ[H¢GsÿêõÍ 7'6'6'6Ñ ::! ; 9()L JÍ *" ' 3"# ÿè€Î 7&'#5'67#53&'736o  1 D%  x  ip 5 9ÿê¹Ï 7367&'#5'67#53&'p %    3$I% Ï   ir 6 ZÿíôÐ'+73#"''3265#'6#3267#"&5535#Z  N G0% 0,Ð m'R J1 8%eÿêÐÏ 73&'#e3$#&ÏL! #‚™ÿêëÏ 73&'#™$ÏO  }uÿíóÐ&*73#"''3265#'63267#"&553'#3‘M  @ &' <Ð m'T s3  I8' ÿê|Ï,73673#&''67#3#3#3#"''3265#7#*,. ! #::j;8  ; ¹   +2 %Kÿô³Ï 73533#3#535#3533#7'75#X  &a'  %-7,±W# & ÿéqÏ73533#67#"''3255'75#)""#   /)¥**3E  9: ÿéƒÏ7#5'67#53533#&V&-1** g~{)*:.. ™ÿéõÍ 7&'67&'6À2Í>.17 =45<>,/3 915ÿíUË73#'3#B,ËÞÉ¥ÿéZÏ 73'65'3#F,(+ÏrG- *=]ÿéKÏ 73'65'3#7'#%ÏrG- *=]VÿéñÈ *73#535#535##5#3##'3255##5##535##5f||iaai‹1:  '&91ÈQO/  FF7HÿêZ 73'665'3#G +A((!5]iÿéï73#3#"''3255##5##535#i†93  29?  (^^GY—ÿéóÏ73533##"''3255#&'—2  2 ž11ˆ  ƒ SñÊ73##5#535'6Ú DDFF2 ?Ê5XX2WðÄ73#3##"''3255#535#a…8BB DD:Ä3@  =3jÿéõÏ,73'33#3265#"'&'#7&'3#67'675#mB0/  Cm  Z; !( £,,F0#+d>   YB GmÿêòÏ#)733##"''3255#'67673'67&'©// * 7&%- Y  ž3Y  T ,)"! #$! [ÿéõÏ#)733##"''3255#'67673'67&'£44  , ;()0! b ž3Z  U ,)"! %" !%"!GÿèöÏ#)733##"''3255#'67673'67&'›;;  7 F/1:,)mž3Z  V ,)"! %"!&"! ÿêdÏ73367'5#'67#536$ Ï0€ {o4 /g[ÿèôÏ.E733#3'67#73267#"&55'75#'65533265#"&55#'665 ::>/!"  " /5    Ï     C8+ ,3N`> 6   &p!òÐ 73&'73#3#3#3#735#p58‚ggggggAA¹   ;1ÿò°ž 73&'73#3#3##53#=#165vvvvyQŠ    C ?? fÿéõÏ7373267#"&55'65557. -)Ï<• ƒZ6 5N ÿëtÎ "(.7&''63#3#67'75#535#'6'&'< A&&+5+((= 8  Î $C F2pÿêöÏ73533#&'#5'67#7&'~,0. $&V  š55A.(7{t/&1>?    ÿñ|Ï !'-7&''63#3#7'675#535#'6'&'A $F''&/**>7  Ï !; ?1 ÿèyÎ73767'5'67'7)%  Î3 ‡}e< Â>3 .3# zóÒ7&'327#"&''7&'3˜ [V )  5 e] Ò    ÿç⎠&*73#"''3267#3#"''3267#536&'3#`S  gœ  ›( J˜˜Ž)/9 #R $  DÿéâÑ%)73##'3267#3#"''3267#536&'3#jP  nœ  ›.   O¢¢Ñ A&WJ1}& j•ÿéðÏ"(,7#3#"''32765#5373#"''3276'&'3#Ó(E   G* ==¤XH%| F   qÿéÄ#)/73##"''3255##53#"''3255##5&'#&'~~<  |  ! 5 ÄŸ ‹¥´ Ф³*"$&!""%  ÿéçy733#"''3267#7#'667#« 0  3 M$ !0y/C)/38.- zðÌ7#533#"''3267#7#'6J8È   !h 51¼%'ÿèæ  !/73#735#35#35#'33#5#'65#535#73#3#5##53NeeCCCCCC>? %P?«?E3> S; .X+# ><;,*Y„êÐ73533##"''3255#'67#ˆ;;  -W L'kÅ   ÿèëˆ !/73#735#35#35#'33#5#'67#535#73#3#5##53E}}[[[[[[9E"+ !!TE¼DD1DˆK5 )IL#  WW 0!#Lÿèæ© !/73#735#35#35#'33#5#'65#535#73#3#5##53JmmLLLLLL9? %P?«?E3>©Y? $ % 'LZ,$ [[<-+Z˜íÈ7#5##5í²È00 ÿí{¿73#3#"''32765#7# n; >B¿7b&@IgÿêîÀ73#3#"''32765#7#g‡PV [!À8d'AKsÿêêu7#53#3#"''32665#‹wI L Sd@ ÿùvm 73#67'75#\!-8)&mE I-ÿòäÌ736732667#"&5-K? ER&0 ;4ÌW Q#) •óÏ736732765#"&5• % #ÏK?  =ÿñç†736732667#"&5=J&2L(- 44†8 -  íÑ 73#5##53&' [°h Ñ// `ÿîðŽ73673267#"&5`7- 3;* ,*Ž9  6  Gÿêìz73##"''3255#G¥F  Kzc  _<ÿîò‰7''6767&'À HG /#4?Q)1 2NX  :ÿñí”73533#3#535#I?DDQ³N?b22KKz|Ì73673267#"&5" ) #Ì    ÿêwt7367&''66''6;  "  t  !/+ Xÿèå7#53#"''32765##'   ?nY;†Kÿöðƒ 73#3#535#X?H¥I<ƒggHÿïï£ #73#'6333267##"&5477#xjw  sL  !';P£  $8   ,[Ç 767'533.+{`  º:UÿéóÇ"7#5##5367#53#3'>&'æR,9‹> &* !  ¡‚pqƒ  '-$/   ÿê†p#735367&'#"''32655'67#-      W   / / ;ÿëì+73673267#"&5;L/F8,9B9)    ÿøå¹ 73#5##533Ñ££¹À Á¤ ÿêö$73733#3&''67&''67#67:‘ƒ"( 0((<1!,6I! "   &6)ÿéôY#73733#3&''67&''67#67#:’‚ !! .'+:.'3…^O     1 QÿêòÏ$)734733#3&'''67&''667#67gZ[S      #2  ­"#2     :+ AE5" ÿégÏ 736753#5' Ä––æ=  ÿéwÏ!73533533#3##5#'67#535#5#? ////BSS2! )BBBBEÿéòÏ!73533533#3##5#'67#535#5#\,!!%%,5 ,"#],¡....?SS3 (????fÿéõÏ!73533533#3##5#'67#535#5#v !. #M ¢----?QQ1!&????j¼ 7##55#'#33535#jDD¼£¸H66666666n¼ 7#5##535#35#35#35#n4"""¼­ ¹H666777\ÿéóÐ$:@F73&533#3265#"'&'#7&'&'33325265##"'"&57&'''6mD''   EkH    &  /  ¢.F0.c:  ? J I‹ÿóóÂ73#3#3#535#535#’Z# *h* #ÂKKKKCÿéŽÐ#7#"''32655'67&''67&'76~      Ð :;!'   RÿêœÏ#7#"''32655'67&''67&'76Œ       Ï %6,-"# (    ÿöYÏ7&'367'5#1 / Ï ?r  p”ìÂ73#3#3#535#535#–T "X#!Â:99:J‘Ï$7#"''32654''67&''67&'76       Ï  2     xóÑ$87#"''32654''67&''67&'7633#3#3#535#535#Z  $  €722=Ž>116Ñ        ÿèñ~#)/5;73#3#3#"''3267#5363535'67&''&'7&'Ze³³« «+|||– „  B ?~5 &]?      OÿéðÐ  &733#5##53'&'7'63'665&'›3Q2% q 5R )!#ÐFm[\n:  F)> #(eÿçôÏ "(733#5##537'6'&'3'>&'¥/H-3 L  2  ÏEm[\n8  O5   EÿéóÏ 7M73#53635#35#73#3#3267#"&55'67#'7367#3673267#"&5_!G""""=X   #. +M   Ï ZZ 3:A%W  ,#!&>8/&_    'ÿìèK73673267#"'&5'LL B_:<FE K ÿílÁ7#67&'7&''53535i>  ***ÁsF    Ê0]ÿéóÇ +7367#533#3#3#&''67#535#'6eSK` ˆW2=9) )6 88< › #"!  ÿé_Ñ 7#5'673#:  Ñ­„ 4ž ZÂ73#3#67'675#535#K  (Â:= C:†ÿèóÇ ,7367#533#3#3#&''67#535#'6Š<5Jh>",% $ '),œ   $ ÿèSÆ7#"''32654'7##5SÆ: =ÍÞXÿéôÈ73#735##5##53'>&'tkkFF`T2L  %ÈBA\JK] "5PbíÏ 73#7&'''6'6’;  R c (O QÏ>3   #  ^RÏ 7&'&''6,  5 Ï      ÿéðf#73#3##"''3255#535#535'2× '.SSdd  iiUU(/]f     wÿêöÏ 73#7&'''6'66´- 4 J0( &-ωj"*+"0 &. (-*SÿíŠÂ 7&'&''6n       -  ) .*) _yÏ767'5'753w5 #»(  3|`ëÄ73#"''3267#'67#l   #% !!ÄA#0:-{ òÏ 73#7&'''6'6°-  6MN GÏ~j , "DK„Í 7&'&''6e  ! Í  (  + %" !‚ÿéòÍ (7'6'&'3#3#33#"&''6535#× .  `'##    &Í  907 $I nWÿéÎ7'6#5'6w    Î & ‚h ÿìdÏ"(.7''67'67676767&'&'4'''6M      k !/(8! 3   6ÿèôÈ15;AGM73'657#3#3#535#35##37#3267#"&5535'67&'7&''&'K^Bc(  Ž h C  L ÈK2 *J<š/M!/‰M/ ‚--“   ]ÿêòÓ/5767'67&''667&'3533##"''3255#&'· -D   1  >b b(  Ó   +   HE  A  EðÐ.CI73'67#&'&''6'3353#5#'67#535#3533##"''3255#&'¤>]R3 !m :/K^  ^ Ð$    &‡2&     ÿéâÐ 1#53673#=#767&''67''67&'763, €›R    #   È Èˆ    5¿® 73#"''3267#'67#'67#'6^X   0*$  ® Z@@* %8, " 4Ï¢ 73#3#3267#"&55#'667#Gmm ˆ%   "¢0 3  5Ç©73533#&'#5'67#<9::$!-‰  @T/+5Ë«!73533533#3##5#'67#535#5#:!$!!$$&$&!Y$#66" ####ÿéêÏ%73533#3#3#"''3267##5#535#535#YXXPP`  K[[KKY²: #WW ÿézÎ&73533#3#3#"''3255##5#535#535#%(($$3    ((!!%±: %WWyÿèíÏ%735#53533#3#3#"''3267##5#535#€%%%..**4 !,,%€<)VV~ îÏ%735#53533#3#3#"''3267##5#535#‚$((,,))5   !(($.FF ÿçöÊ (73#735#35#3#3#33#"&''675#TT.... k"U60M6  5Ê\6:7 ) < ÿçöÊ (73#735#35#3#3#33#"&''675#TT.... p'U60M6  5Ê\6:7 ) < ÿçöÊ (73#735#35#3#3#33#"&''6735#^^8888"x+""N60N7  :Ê\6:7"(?;À¬%73533#3#3#"''3267##5#535#535#=3;;33<   (55--3œ&336Ȭ73#&'#5'67#535'6² 44" # &.:.;¬ 4C 6Ê«73533#3#535#35#6@@@/p-@&IIŽFFP!2̯"(73&''67&''667#&'&'a@  !( $   3  / -¯     <    8wÆ­ 7&'''6ž +­  5 ËŠ73&'73#3#"''3267#'67#8C 9VO  ? " '*q  + & 55ʬ 73&'73#3#3#3#735#5A?• ||||}}WWš    3=HÉ®373#67&'#"''32655'67''67''67#?„;       # %  2®           4àÈ73#735# ÀÀ››È”vÿêò/ !7&'7&''33265#"&5''6‚  a  z ( 2&/   &  +  ÿéõÀ73#32767#"&55#'655# \/@K<À¨  ­/[: 8Q/$;×Ð $*73673#735#'673&''67'67$?^³‹‹&  =    ½ ‚^3      ÿêïÃ673#67&'#"''32654''667&''67&''67#Úe  % 0/   ,> >'4 4)!$ 6%[à  :!%="! 1 , %' ! ÿêôÃC73#67&'#"''32654''67&'''67&'767&''67#×` % ))  0F J4  . 7([à ;%@"" 14        g òÃ373#67&'#"''32654''67''67&''67#€j0     # )"  !$à  !!  jÿéöÃ473#67&'#"''32654''674''67&''67#wt5     %  *à  $   !'  ÿêrÃ573#67&'#"''32655'67&''67&''67#^"      !  &à    '!& ÿêcÂ573#67&'#"''32655'67&''67&''67#M            '%   ÿéÝ '.73#5##53635#3&''67&''667#k m•8 /••4A  "  /6 Œ Œ |^      xóÑ 73#5##53&''67&'„a³c2 /i*$#)Ñ ('!   ,UÑÐ 73#53635#35#_ j¥$ ~~~~Ð bb 5>,IÑÐ 73#53635#35#_ j¥$ ~~~~Ð kk:E ÿêñT7'66733327667##"&5X",*8  $  T'/'#I   '  ÿëx£7767#"''3265'67&''67&''67&'767&''6`    % *" "   )£  (         jÿç÷¢ $(73#3267#"&55#'67#53635#35#¡6   ) #BBBB¢W2 59.W -5eÿè÷Ð"&*73#3267#"&55#'667#53635#35#ž;   HHHHÐ jE  I-' !$j :HA “Ð37'667#"''3265'67&5'67''67&'77&'| !     Ð    -       ‰÷Ï#'73#3267#"&55#'67#5335#35#²)   ))))Ï ]8 ;=1]';)ÿéØE 7#5##535#35#ØŠŠŠŠŠE\ \!2ÿíŠÏ&,27#"''3255&'75##5#67'#53537'6'&'‰     0   M  ‹†  ) >ŠŠF--žDD<  Eÿì§Î&,27#"''3255&'75##5#67'#53537'6'&'§    * 8  Ї  *!=‹‹U! / ,žDD:   e¼ 7#5##535#35#e,,,,,¼±¹H67[`êË73673267#"&55'7€/$(.  &#%Ë%  R_Î 7&'&''65  L$'Î      gÿéóÏ73533533##5##5#35#35#gAA%AAAA¥****©©99ƒ8W‡ðÐ 73#5##53&'Ÿ Bq>Ð 22 Rÿéó… 7'667&'‚D ) 0 …?@99a(+j ÿíòn $(73#5'673'36735#33535#3353#ª,¬  +[c Qd<DHL767#533'67##"''3255'67#53'#"''3255##5'67&'3#735#š  Mk.   )/^  S*  & 99³     Ee Piy   -vôÔ $*CIO7&'7'673#&''67&''667#'33#"''3255##5##53&'''6(  ^ 8<     #e0 0  %  Ô        , ../>     ÿèïv#)/5;73#3#3#"''3267#5363535'67&''&'7&'[c±±©  ª,{{{– „  A> v4 $ \=        ÿé”Ï*0767&''67&'3533#&'#5'67#7&'%  722  -\ È   [!!EN)-3   ÿûœÐ  &7&''63#'767'&'&'Y0 OO`{O $    Ð %Y ,*,!O!! ÿê¡Ï#'73533533#3#535#35##5##535#35#&&–$1&&LNNNNN±!!!!Drr)A ÿé™Ç$(,73#3#"''3265#'67#'67#'67#735#35##kAW / ), &  CCCCÇ^ N18"+* 7:ÿí”Ç&*7#"''3255#&''67##5365#53#'35#”    $:0l)0FFlg  P  #m GG %%ÿéqÐ*0767&''67&'#5'67#53533#&7&'   ;  '##  È     ‘?E$!! c  XÿèôÍ8<@E73#&''67&''667#'367#533#7#5'35#35#35#675#¿(      m((>   Í#>&! 4 &   w}IP ÿññÆ 73#3#735#3#536'&'Íͨ¨€€l GâƒP  ÆT.G  ÿë|Á 73#3#735#7'676'&'nn__992 .8! '  ÁJ&@ ÿîïƒ 73#3#735#3673#53&'ÐЪª‚‚ < 9Þ:ƒ>0    ÿëdÁ 73#3#735#7'676'&' WWLL((##- ÁI'A  kSâÏ 73#53635#35#– ?w"QQQQÏcc 5?`ÿëñM73673267#"&55'7Œ+"%+ #!(,M  VÿéõÐ"',7333#&''67#535367#'65##67#Š5 . ;, 1 3- 6 = ) V"#Ð C%4)"C j11@ÿèòÏ.E733#3'7#73267#"&55'75#'665533265#"&55#'665Ž>>K  ;)+ ) 6?   '  Ï     C8* (M`>  6!  &/ÿçðÏ.I733#3'67#'665533267#"&55'75332767#"'&55#'655n))6 H #(    #.Ï  D9, (O!    9-  !ªñË 7'6'6'6Ü   & %Ë ! % 'KÿèòÏ0G733#3'67#732765#"&55'75#'665533265#"&55#'667”::G 6&(& 3;   $  Ï     C7+ )M`> 6   ' ÿêóÎ1J733#3'67#'66553326565#"&55'7533267#"&55#'667B--0 B #)    *2  5'   Î  C7+ )M%  :< .!  &ŽíÉ73533533##5#5#5#Ž # G A###¢''''tt(((9((ÿéðœ.G733#3'67#'65533267#"&55'7533267#"&55#'6655jffq  IQD 1 9''*? 8 œ    3)! !':    3!   ÿéõÏ2L733#3'67#7327267##"&55'75#'665533267#"&55#'6675q\\h R@B  2 47= OA  0 Ï   C7+ 'Ni2 *`ÿèõÏ/I733#3'67#73267#"&55'75#'66553#'665533267#"&5 === +!    ) <  Ï   B6+ 'Mu;   ÿétÎ ,27'2'6'&'&'3533##"''3255#&'f %6+*   9   9 Î    8E  B  oÿéóÏ/F733#3'67#'665533267#"&55'753#'66533265#"&5¢..8 G !+     7 Ï D8, (O"    K%';  ÿê~Î.>733#3'67#'65533267#"&55'753#'66537'9..1 ? 2       6  Î  D8, ,4O"   I')< uÿèöÏ.E733#3'67#'65533267#"&55'753#'66533265#"&5§,,5 C 2    6 Ï E9+ ,5O"    H'*> ÿéöÑ+1S7&'67327#"''67&''7&'3&'67327#"''67&''7&'7Ë3<      99   !Ñ      J         –ÿêðÆ73##53#3#"''32765#ŸKK Z1 6   9Æ=*I)ÿé–ÏQUY]733#3'67#732767#"'"&55'75#673'73#3#3#3##5''65535#5#35#C77@ 1#% ! ##"N +Ï       H    E -7QqÿéîÅ!7#53#3#"''3267##5#7;5#35#uVÁVd  M`QAAZE?²I 5 aaE#V  ÿé‚Ð !73#53&'#5##535#33535#35#L.u3A;&;&ÐCžž>+++h+++ÿêõÐ7'67#'673&Á& : /  8,"8d' #@0: ÿéÐ !73#53&'#5##535#33535#35#P6ƒ8GD+D+ÐCžž>+++h+++‰ÿéóÍ7''6767&'× ") c4=  H€{A%gÿéöÎ73533#3#&''67#535#}'0095 /(, 0 ,/'£++#6!10 $3+lÿèíÐ 73#'3'6573#ÙT*Ðçç„>& #4wÇjÞÐ 7&'67&'6'&'6C –/Ð   JÿèôÈ'7#3#3#3#67&'#67'5#535èpffff{K   > ( È    GI  VlMÿóõÍ  &7&''63#3673#7&'&'›$* ''' 6ffX -œE    Í"'%#+c,+/!g !cÿéôÐ$*073&''67&''667#"'6'6'6ŠK  $' - =" 1 41 *> D7 .U YÐ   & .  ( :ÿé€Ð 7#5'673#e  Ð ¢{ 5–„aöÐ73&''67&''667#£;       ,Ð      ’ÿéç\7#"''3255##535#35#ç   00000\[  's -SÿéóÏ(73533#3#3#33#"&''675#535#m222=@77#,!  ;>2³$!0*5a$E[óÐ73&''67&''667#{Q+ ."+ ) !CÐ    Bÿêì_ 73533##"''3255#&'''6T=??  =oHM7  2  W„Î(,<733#3'67#73267#"&55'65535#'665367'5?((0 !   $ 3  Î     " ,   |WóÎ*.D733#3'67#73267#"&55'65535##'66533265#"&5¬**1 #     !1 3 Î     ! # .     ÿçîV 73#735#35#35#'67&',««„„„„„„"!''^''&&VP9   ÿéë›!73673#'67#67&'7&''6Gy ,*=n*2 A@,x@  1 6  % $ÿìò˜&7732667#"&55'75'75'67×bsu &8(PSGJ>[M ).h        ÿëð–!'-7&'3673267#"&5'67''67&'w  +$+7 %  1$ $$­  – L @ N"   M'! "#$ ÿéî73#3#5##5'67#35#Û† Œ{ 2?8{{cN #f1YÿéîË %17&'7'6'&'&''67&'763#5##533ž  O g  a    $ddË #  ;   x {]jÿéíË %17&'7'6'&'&''67&'763#5##533¨  C Y  T     UUË# <   x {^PÿçòÏ873&'73673#3#3#3267#"&55#'67#5367#537#`!  B8:J5  2,+/)+6¯    A  E9(#. ÿçòÐ973673#3#3#3267#"&55#'67#5367#5347#53&'P *  >`WXiN $ V FW[LNY7 Ð   ?  C@!4   ZÿèóÐ973&'73673#3#3#3267#"&55#'67#5367#5365#l  1.08"   4/ *.-/6®    A E8($,   \ïÎ*73533#&'#5'67#73##5#'66556)++  "Ì #/X, 7¸  15&22" ÿçîY"73533#&''275#735#335&'7#6'PPPj30P<>R>>{(( &   &  +Ñe7'67#53#3#735#G ""¢kq‡cc?   $  ÿéõ273533#&'#5'67#b_J7 ;&%: .'L   $# jîÐ#73533#3#3#5##535#535#35#335ceeQQe·dRRc$??S>È  ""   ÿéó&73533#&'#5'67#cfL2 :$$9 ('I    ÿçî8"73533#&''275#735#335&'7#6*NN Pj2/N>>P=82*   # <âs7335#53353353#353#FC0/CHÆT    HßÇ73#"''3267#'667#'6 ¿  D00 ++P$ ÇZ!D02  +& SIæÆ73#"''3267#'67#'6_‡  % C <9ÆY AL? EÿíòR"7&'332765#"&57&'''6¡  !a  nR ? A !& NÿéõÎ=73533#3673#33##"''3255#53567#'67#5367#535#[*++*<;??   MM4  + N7*¶     @ÿéô–7&'36533#&''67#º `BJC5 2G E?–  !=<7<CÿèôÏ!%73533#3#&'#5'67#535#35#335TACC81-$*/,9A%%9$·H !KP)#HM"""EÿéôÄ %*.733##3#5##5'67#5367#537#3353535#a}RdL ,.%8248DLLÄ,+ Y ?(  - ~)mÿéôÏ/5;7'6&'#"''3255'67'67676767''67&'Ë #* &8      (@ [Ï O A  ;! %3! aÿíóÅ/5;73#"''3267#'67#'6&'33267#"&57&'''6nt   9 31;    V  [ ÅZ CM??@ D  & sÿëè¼ #53#=#'#35#'35‡u0/ÑÑgCCCCUDDDDD 8`Î 7#5'673#:  !!ÎhH (_d>òÏ73#&''67&''667#‰U% %# 4Ï #      ÿéóP767&''676''6}  LN 96 P  #%    MiÎ 7#5'673#<  !)Î\? $RqRõÏ73#&''67'767#'6•I %  / Ï       hÿèô‡ 73#&''67&''667#ŽO  !  3‡    # ' ÿédŠ 7#5'673#@  *Š rV pÿêõÏ,273533#3'33#67327#"''67&'#535#7&'433E:9      —=4¼  ¹==#$"-!!  %9$Mÿê¦Ï7&'3#&''67&'767#‚S   %  4Ï%3 )  ˆÿîõÐ #73#'6333265##"&5477#©?E E6  -+Ð$P  Aÿðô|#'733#5'6367#35#33535#3353#XP5° 'IE<EÿéëÏ(73#5##535335#767&''67&'y`–Jr&–" ¤¢¢D˜llg   XæÏ 733#3#5335#3#535#ˆJJC‡0__JJ66Ï ……r_6ÿñòR73533#3#535#\\\häh\5WÿïóR73533#3#535#f555DœD53WÿïóÏ #3767'53373673267#"&53533#3#535#y #  C555DœD5“,  t(<,     5ÿñòÏ!173267#"&5536'33#7'3533#3#535#Þ %+ ($ŸEE;(# []]iäg[à f/'. &fÿïóÏ !1767'53373673267#"&53533#3#535#…     ;.//=<.“+  t(<,    5€ÿî÷Æ73#5#3267#"&5535#€g= " -QSÆp W $-  q=rÿî÷Æ73#5#3267#"&5535#rsD *  1"X_Æp W -  q= ÿèõÏ!%73533#3#&'#5'67#535#35#335dddQD%9 ;%#::"BQd'==Q=¸M'-OP,%MR'''hÿîöÏ-7#"''3265#532667#"'&&55'753753ê   -# ¤T%/ _Xe " bC;E=fÿêòÎ #73#'6333267##"&5477#‹Zc ^B $6?Î &Q  CpÿêóÏ7327#"&''7&'37&'îG   ( ##  “ ;8#!=K )F@  PõÏ73533#&'#5'67#dcO"4 :%#; 7O´(5ML2'ÿñîG 73#3#535#$¹TeÜcQG00"IêÅ73#3267#"&5535#"¬’ 6E L@’˜ÅB 5rKíÄ73#3267#"&5535#rlU ' $4UXÄA 5_ÿìõ@!733267#"&57&'7&'''6‹  (  ;  ]  @;  <  $ `ÿìóÏ!173533#3#535#&'&'''6733267#"&5k5551w25= >  R     ©&&''@ ! ) !6  2Ü‘73#"''3267#'67#'6¿  =^ V Z‘C)> 0 ÿêóÏ/73533#3#535##5##53267#"&55#'665^^^R¶P^Ð¥  % /((¼94!#6)=  /  &+ïÏ173533#3#535##5##5#'665533267#"&5]__Q´O]ËŸ€;) &b   Á  ,)*-  "   KÿèõÑ #'7&''63#3#3#5##535#535#35#˜#, (' & 5K<<1Q3<<QQÑ"&%!WWu$ ÿèõÑ #'7&''63#3#3#5##535#535#35#|4: :6+8 Ng'UUCtEUU,ttÑ !&$!WWu$ ÿèõÑ #'7&''63533#3#535##5##535#|4: :6+8 N***X¾S*ƒtttÑ !&$!?VV5# ÿè‚Ð #'7&''63#3#3#5##535#535#35#G  * A))$6%))66Ð  !WWu$ÿéïÆ'733'67##"''3255#53&'767#„` % .< HÆ]  X  ÿèoÐ #'7&''63#3#3#5##535#535#35#;  !7!!+!!++Ð  !WWu%yÿêóÐ%)-157&'3533#3#"''3255##5##535#35#33535#335Ö  O333. .3/J/Ð !!ˆ  225Ÿ@GSîÑ%)-157'3533#3#"''3255##5##535#35#33535#335à fCDD;  ()(Ð  !!ˆ  336Ÿ@G ÿé‚Ï+17=CI733533#3#"''3255##5#67'#535#537'6'&'&'7'6&'0.-  .2#C  S    Q Ï222%g  SggA$&%*   3   3 ÿéòÏ/5;AG733533#3#"''3255#&'#5'67##535#537'6'&'&'7'6^QhV B! 'AViQh ‡    ‡  Ï111&f  PAG$n&+    2  ÿéßB 73353353#5#BB¬6+77,Nÿçèe7#5##53'665&'Ñ{B+; 8&+'&!-eVEHY   TÿêóÏ'736733#'667#7&'33267#"&5g&IJ$X     –:E@5G  Kh !) ÿè÷Ì$736533#'67#7&'33265#"&5£**( 9   “ m,(`<  Dk & Jÿíð–&736533#'67#7&'33267#"&5T2UW< 40l   nK! =; @E [ÿêõ‹%7&'36733#'67#33267#"&5Ñ[-GJ / ) *E  ‹  K"? F  ÿép#7#"''32655'67&''67&'76`        ' !      uÿéõÏ $73533#'67#7&'33267#"&5":;2 *!R    •::k.(_C   Of  ÿéòÏ'736533#'67#7&'33267#"&5Vnp00 TU•   ' ”!!9G(]K  Rd %   ÿê€Ï $*73#53&'3##"''3255#735#'67&'H-o,^&  %88  P  Ï  =H?  :$B   mLóÐ$7&'36533#'67#332767#"&5Ò  W.BD0 $-E   Ð #4) * qÿèìI 73353#5#533¥ h!IE2N C2Fÿé¤Ï $*73#53&'3##"''3255#735#&'''6}HA ) /  Ï  ;GG  C#;   JÿèôÏ&73733#'667#7&'33267#"&5S6LN4i  –9;E@6F  Oc  †lñÏ%736533#3267#"&55#'67#7&'†#5! "  J °    !" . iŠÓ#)73#53'3##"''3255#735#&'''6O4u+`) '??; ;  Ó"    aŠÓ $*73#53&'3##"''3255#735#&'''6O3u-`) '??; ;  Ó #"    ÿéâo!'+73#"''3267#3#"''3267#536&'3#`R  gœ   œ) Oo" %.E"  5HÿìõÏ #7'67&3673267#"&5ž+ 9%( %S%%- !  ,#­,+0 -0$  \ÿìôÏ "7'67&3673267#"&5¦& . $ !P% %-   *!­)&2 +,$   ÿèóÌ733533533##5##5#'655#53021##12)%##ÊRNNTT||tt E,(; )ÿéÑ›7'67'67'676767676¼ GM _4>%! "+0,%`/8  %  3 ÿéöŒ"7333"'&''#&#"'663267#53&'€R0JJ.=$ F+¢]Œ +  " ÿéòÅ!735#533##'67#53655#75#35#W@­`9 /8>W°EGE‹'::4!' '':' ÿëó¿735#533##'67#5367#75#35#€"V0 "M…(::3)((:(GÿéôÁ!735#533##'67#53655#75#35#G=0P. & $*=†575†(;;/! ((<( Eÿê„Ï 7#5'6r  Ï©„ 0ÿèò‹!733##'67#5367#5365#33535)© aA 01;X[CW?AF‹**"  * ÿèò‚!733##'67#5367#5365#33535)© a? -0;X[CW?AF‚''   ( ‹ÿêô¿733##'67#535#535#33535™P *$ &¿::0&))));))]ÿê–Ï 7#5'6„  Ϫƒ 0ÿéšÌ"(767327#"''67&''7&537&'‘H     #%%!  “ %).& !&%=  ÿéõÏ#)767327#"&''67&''7&537&'ãj" +,: >'MM'  !! ();'$  #"<   ÿèúÐ"(73&533#67327#"&''67&'#7&' RQ    !€¿ ª7&+ 7 %&80?8 ÿéöÐ"(73&'33#67327#"''67&'#7&'…IG     †½  ¨(=* 8! " ) N:  ÿꔆ73533533##5#'67#) !Y----BBA6¤ÿé÷Ð"(767327#"''67&''7&537&'ò&       ›!. ""&2$" 5 tÿèóÏ"(73767327#"&''67&''7&7&'™?@    # &'-Ï# !  *$!5(*  ÿýxÏ733#3#5##5335#311*8"88Ï&'ssR? ÿô„Ï )7&''6#3267#"&553#"''326M  ,1+ $ R   Ï   !$9\ q5ÿéŽÈ7#"''3255##53#3#735#Ž  UAA77ÈÅ  ­Ìß,W5ÿètÆ 73#735#35#35#'67&'UU------ = Æ£sMM6   ÿõ’Ï!%+173533533#3#3#5#535#35#35#35#&'''65eOc $555555<   ¼V;MV44)   ÿéÍ;76767&''33#3#&''67#535#'67&'767#^    :5=01# +,-  $Æ  3+ + "!!"    ÿé•Ð #+/7&''6'66553&'73'#335#5##535#P   0 ,%BBBB111Ð u." !@ J:-D D' ÿéòÏ/37;?CI73#67327#"''67&'#7#5'75#53&'35#35#75#'3#735#7&'«B@      #,+a555555^^99œ  Ï, "+  ;V _"*q6;ž9  ÿé“É%)15973#67'7&''6767&'7''63##5##535#35#~~  N  S‡‡{KKKKKÉ!   ) aa$5 ÿê‹Ç #'+73#3#535#35#&'7'6#5##535#35#t"'~% 0  h =====ÇEEEE   Fff$6ÿë‘Ï !%)/573#5##53&'3#3#535#35#33535#335'67&'R6Z6L.m.,H,;  8 Ï +,1\\6:+   ÿé˜Ï.=CI733#3'67#73265#"&55'75#'6553375367'677'6'&'B@@?,!   +  0:< IÏ     D8- ,5NUDA= A  ÿé–È #'+/73#735#'3#735#3#3##5#535#735#33535#335Z;;Z;; u088<<22O2È11/V((34ÿé˜Ï/3GK733#3'7#7326567#"&55'75#'65533#3#7'7&'7767#735#B@@?  +   +hh_ +5 B;;Ï   I:0 /7SL +    ÿémÏ!%)7373#3#"''3255##5'67#35#35# .39   '  $''''°   5q %CBsÿèöÏ &*.473'33#673267#"''67&'#7&'3#735#'6tB,+   Ci  V77+%(©&&A#5!):+477 EC#;   ÿé‘Ê #BFJN73#5'675#'3#5'675#&''&'3'73#3#3#3##5'65#5#35#U7&?8'Q   2   $$($$##&Z 9"""""ÊR  R      6 ^ÿèòÂ$73##"''3255#'67#53535#&'Ë''  n!!%'mm8  ÂgF B8( -(ggT ÿéÄ!'73##"''3255#'6655#53535#&'ˆ @ @@ Ä`Q M <" 1 ``M  RÿèðÅ$73##"''3255#'67#5355#7&'Ý  EXDÅdJ  E;+ /,ddQQB ÿéÄ%73533##"''3255#'65#75#7&' Z  3]3 accN J;# =PPB¶ÿé÷Ê 7'6'6'6à  ! Ê * (% / Qÿç»Å &73##"''3255#'655#53535#&'° (((  ÅaS O =#!>aaN nÿéóÅ$73##"''3255#'67#53535#&'à 666 ÅbN J:. 0-bbO   ÿéià &73##"''3255#'655#53535#&']     Ã_S O <"!<__N I|Ð#'73&'73#3#3#3#5'65#5#35- \ )Ð H yIêÐ#'73&'73#3#3#3#5'65#5#35› \ *Ð H ÿóyÆ73#53#3265#"&55#7#65&K]e   %!Ór  x<9#˜†+ ÿésÁ73##5'67#&'b%)I Á ´|"-I4('%7ÿéðG 7'667&; '$> ;% #! !+qÕÇ 73#735#35#+ªª€€€€ÇV43ÿèxv7373&''67&'67#367& /   3Z )     yÿéón733##"''3255#53567#ƒa44  22Gn . + gïÏ7##5#53&'73##''67&'ŽIb_JV›¥77  7/ WÿêñÏ17=7'6&'#"''3255'67'67676767&'&'''6Ñ 1; 5;       )0)!V Ï P ?  : ( 3    ÿïó_73#3#3#535335#Ï]LLhæ**\_33JcòÄ 73##5'67#&'×a"5 A^. -ÄN8 !tò 73##5'67#&'Ö]!?>W–' &Â<2 ÿèÚo$(7#'6553#"''3255##5#;5##;5#t:±   >99>>99>> %7k+o"  våÑ 73#"''3267#'67#'67#'6I‘   3,">5")Ñ6 "  “ìÑ 73#5##53&'a³aÑ --'ÿêÕe $7#"''3255##5##535#35#35#35#Õ  :;;;N::N;;N::ec  """{$8mé¦ %7&'&''332767#"'"&5''6~  W p ' ¦        !ÿïÞ¼ 7#5##535#33535#35#Þ•@@U@•@@U@@¼ÍÍTAAA”@@@ ÿèàÏ 7#5##535335#33535#35#à–UV@@V@–@@V@@¢ºº--J777€777 ÿéãà &*7#"''3255##5#'665535#33535#735ã  AC @@TA–A@TAü+CC*% 1"]<)))e) )) ÿêòÇ'+/487'66553#"''3255#327267##"&=#335#355#9 µ  =  * <;O;Î ¬  )BB&# 0?KD###Y### ÿéáÊ$(,04733#"''3255##5##53&'767#35#35#35#35#*¤A  CDV ƒDDYCCYDDYCCÊŠ  88;¥  UCÿéïÒ&*.267&'3533#3#"''3255##5##535#35#35#35#35#¯ ”eddT  @@Te%@@U@@U@@U@@Ò  !!†  ,,6Ÿ@E"ÿçÜÆ 7#5##5##535#33535#35#Ü????S?’??S??Æ£LL£@---m--- ÿëó" 73#53535#35#35#Úæ##5$$6##"%%%(è©!%)-7&'3533#3#5##5##535#5#'#35#'35Ÿ |]^^N::N]«:::N:N:©   M M $  ÿè•É 73#735##5##53'6656&'%__99SF,  !ÉA@^LM_ 2 !5 É©73#735##5##53'665&'Pbb>>WL-H &!©3,>-->#   VÿæöÈ73#735##5##53'66&'zff@@[M/)0, "ÈAB[JL] 82'  ÿåkÃ73#3'67#&''67#Y*/"7  Ã1M( @F -: ÿè€È73#735##5##53'66&'[[77PB*  ÈA!B^LM_=0&  ÿêŒÑ $*73#53&'3##"''3255#735#'67&'R0x1c)   '>>S  Ñ  >I?  :#B   ÿéæÁ#'7#"''3255##53267#"&553'#3æ  ¤C#  .*kCCÁ½  ¥ÅØu% qI6# ÿéôÐ73533#&''67#&'bab,? @(R Y_dš6(a'+WO3:Rc  =ÿéõÏ73533#&''67#&'NDKG4.D K CQ ˜77[-/LJ18Rd lÿéôÏ736533#&''67#&'t-72 /%.0,;  • U2*FA/-\i ÿçõÏ736533#&''67#&'‡&-* ) % )%:‘""S1&<8,/XfwÿéòÃ7#53#3#3#"''3267#533ª3{3,,.   ^±#$N 7N<lÿéëÃ$7#"''3255##5&''67&'76ë WR   ÿ  ¨ÈÚ&  jÿéôÃ73##5'67#&'v}. 0:VÃ¥|$4E5)'%pÿéîÏ7#5##5##535335#335î!!55!!5!¡tVVt..P===oÿìõÏ&73#5#3267#"&55#5335#53533#3Î  *22;;ˆ_3 9P?S S~ÿòôÆ 73#53#3'35’bvq]NN:2-Ô.SA..qÿèö½73&''67&'#367&'xp"  !     ½U:  "!1LC&18 vÿóòÏ73533#3#535#}-,,4|4-†IImmwÿèðÒ7&'3#"''3255#3#Š 0G  42Ò Å  ­¹JÿéõÏ736533#&''67#&'a5@93 /C D4D  $$\! QJ&(Wb jÿèíÏ#7#"''3255#&''67##53653í  $ $9©¨  ‘  "C¯ÁÿéùÊ!'+7367'273#&'#5##5'67#3&'#35#W#'YY '/vB1 {7I5„'{{] Y .Z2ÿéðÏ73533##5#'655#535'6ˆ J22J? 7;;>Ë<``ssC*&67 WÿéñÌ73533##5#'67#535'6§ * *+' %Ë=]]ooF-):5 ÿêïp73533##5#'67#535'6‚*J11L .& 9;+8p..AA*+tÕÇ 73#735#35#+ªª‚‚‚‚ÇS21\ÿéñÌ73533##5#'67#535'6© (()% %Ë=]]ooG,(;6 ]>ïÍ73533##5#'67#5365'6­"*+ !" )Í "<<<<+  ÿéóÏ73#3##5#535#'6B‘Qddnn5!ÏBbbB# (aÿéòÏ7'673#3##5#535‹  Y088BBŸ"2 AbbA ÿékÏ73#3##5#535#'6(4(( ÏCccC $[ÿéóÎ73#3##5#535#'6€a399FF" Î @bb@ #€ÿéóÏ73#3##5#535#'6žD&,,11 Ï CbbC GÿöÊ7&'37'5#c  * Ê :n  qUÿèòÆ &735#53#535#33##"''3255#53&'eej~~jeP((   ``5  ža07  3OÿéóÊ)7#5##53#3533#3##5#535#'67#536ït: U_ .;;EELLB!,Ê-,..8ÿë§Ð7&'3#&''67&'767#y^     ' =Ð&*  +/’ÿéòÐ73#3##5#535#'6«7""$$  Ð BaaB "Eÿé“Ð 73#53&'3#3##5##535#lN @@@@@Ð >U V8&2ÿçðÑ/PV733#3'67#73267#"&55'75#'6655335'673673##"''3255#7&'‹LLO ;)+ % ") <(=,?5 <   =%Ñ      F;, +Q„  )  kÿéòÏ7'673#3##5#535’  S-44<<  !7 BbbBfÿçóÎ73#&'#5&'75#'6556Þ &2]$  &7Î *7 :I ))4,'+xeÿèöÈ7'6553#&'7#3j $ ) BBdP,%UUdJ [Q>lÿëòË$733#353#3267#"&55#5335#53¢==0   -66Ë[AR/  5RA[T ðÏ73#3##5#535#'6{b4>>JJ" Ï 6JJ6 NðÍ73##5#'6556Ú 0?y*:EÍ %cc3*-1< ÿéïÏ %73&'''67&'#'655667Ð DZ—.-  ()"`2%&Ï):+    3<2.2fO, 'aÿêòÎ"7'655673&''67&'3672*(0W   uQ7 5X6  %9+() ! ÿétÏ%73533#3#'67#53655#7&'7'6%##&(  '*%  R  NN, #P QÿêóÎ 7'655673&''67&'367ƒ8/,6` uR6 5X6  %7,(*#$?ÿêóÎ"7'655673&''67'&&'367r  @64>n ' $  uP8 7V6  %:("#eÿêòÎ 7'655673&''67&'3673*)0W  uN5 4U5  %;)(*!"oÿéóÐ!73&''67&&'#'655667Ý)1W   3 Ð '=* 2V6 9Y7O##’ÿç÷Î$)'655673&''675'&''&5767¡" 8      7\8 )<(  s$"UÿéœÐ733533#3#5#'65c ( È;CC)M<5$ #4 ÿéfÅ 73#735#35#35#'67&'QQ------ 3  Å¡qNN3    ÿègÁ7#5##53'>&'g.!  ÁЉœ'O0&  "+0   ÿìxÀ7#5##53'>&'u5%  À™†‡š&N-'  ").\hÏ73533#67#"''3255'75#&     *&·  __õÏ(733327#"&'5#&''67&'767#53‘+      Ï1       ÿèòo#735#535'673#3##"''3255#hSS(#k6.PPhh  h$   ]ƒÈ 7#3#3#535#35#5#‚&$"%jCC È-k-.ÿéôZ"73#3##"''3255#535#535'2Ö &.WWii ggXXX^Z      †]ñÆ7#53&''67&67#” _  !1µ (    \˜Ñ.73533#3#3#"''3255##5##535#535#'6+00::2  0==  Ñ     ,   ¦`äÏ 73#"''3265'3#Ñ   +ÏX FGJÿî¶Î#73&'7'#"''32765#'667#'6l *    Ê&!7 A! `! K670/+ bóÏ#73#3##"''3255#535#535#'2Ò $+TTgg  llYY&,XÏ      ÿé}a"73#3##"''3255#535#535'2t((..  00**'2a      ‚ÿéóa"73#3##"''3255#535#535'2ê((..  00**'2a      ÿè¡b 73#'3'6673#Ž]-bzz8/)-kÿæ¦U733#"''3267#7#'667#v !  # '$U#3 #$*!ÿéöÑ 73#'63#3327#"&'#>ž¦  ŒÑ $98+0CÿçöÐ 73#'63#3327#"&'#;¡« œœ°œÐ;;"33GGð "7&''6733267#"&57&'v :%   *$   #+  0gÿìñ~73267#"&553#"''3267{ - 7&u  le  }A (ÿèV‰ 7&'&''6.5‰     #  ÿ鈓#'+73533#3#3##5#535#535#35#33535#335211++4444++2*A*‡  C  C ( ' ÿìóŠ7#3267#"&553#"''326Ò/  " U   xq   ‰Hmÿïõ‰7#"''3267#3267#"&55ß   I ,  6.‰B#,k   ‚uÿïñÃ7#"''3267#3267#"&55ß   B $ )#Ã_#I¥ %! ¾ MðË'+7367&'##'325567#3'67#3#- *8 {T: 1>››Ë  +& , (=.ÿëíA7#"''3267#3267#"&55Ì   u2D N>A! * ?Dÿëä87#3267#"&553#"''325ŸG +4  ?8o   ($7 ÿçë  #733#3#5335#35#35#'67&'oOOV±H4‰‰‰‰‰‰% 5+b#( )%   jj+,"    ÿêê¢#'+73&'73#3#3#3##5'65#5#35#<6RPFFFFTªVAAAAA¢   h #** ÿê¡Î"8P73533##5'67#7'6'&'&'3'67#&''635#53533#3##5#'::: *q L  U H% 0  B"" %£++.&  <  ;   ,16  ((Iÿéð‰7#533#"''3267#7#'66vw +  . .w3I!03A72ÿéR‘ 7#5'6?  !‘z\ &hÿèóÃ733#"''32767#7#'667#z` %  & #ÃDdJD`KG[3ë«,7#"''3267#5336767#"&55'753753×   +' $" F0'™?! B= ; <(# '"H Ü«7#"''3255##5##5353Ü   ,,@ŒO  8mmVh\ÿíóÊ 73673265267##"&55'67€&$/  *   ÊU% / N 0 I ÿìôÍ %73#5'675#53736732667#"&5T"& CC;" #* Íá7D:Ka  9 ç¯ !73&'73#3267#"&55#'667;DB›x /•  D  7$  *3 ë±  ,87&''63#3#735#73#735#&''67&''6Œ%. 0'"* > PPBB=BBM  ^  ±   + +     ÿöñ¸ 7#53#3#.⯤¸¥œ 4äÂ#'-373533#3#535#735#3353#735#35#35#'67&'C>>>O°M>,,@,}iiiiii P±# 2O7    ÿðîÊ7#3#5ãµÀÕʸÚ/ ÙÂ+/377&'73#'65535#53#"''3255##5##575##5##5#† ?ˆu\  J§  3- `f(^H !!!!7ê«(,73533533##5##5#3673#3#5'67#35#:(5((5(<bl^u 04QQš  ;% :ÿéñÏ 73533##5#fhhfNN……bÿòîÇ7#3#5çqxŒÇ¯Õÿêí 73#5#533ÙÆ²Ž¤—„.ÐÄ7367&'##'325'3'67#{  G: '&ÄD #(9  j25;ÿéát 73#5#533ͯ›sŠ o<ÿé£Ð73#&'#5'67#535'6˜ !!!  &&*Ð * lf!$0%ÿêèÏ7''6767&'®# QQ 6 ),@Mh6? Q{Š9'!ÿçòÈ!%73#67&'7&''67#53535#35#35#É)†A3  FUE*iiiiiiÈ„    „-FE ÿèíÐ7#'66553&'7í¶ _ ²J?. -V 9ÿêïž73533#&''67#@GPH: 7A DEl22CF9$'78ÿèñ¢ 7&''6&'3'67#‘', *+"- > 0Œr¢ %"  # ;ÿîê›$733#353#3267#"&55#5335#53ƒLL,@  (@,HH›>*<  $=+>&òÈ#7#53533#67'7''6735#35#35#RD)“(†=1  FTkkkkkkX^^    c.. ÿñóÉ732767#"'&55'753ñ… ()93ILŽ]&_LIÿéïÁ7#53#3#"''3267#'66QAߊq  ^"&®i(S.;B ÿêóÉ73533#&''67&'7655#xHI0= ?2$= ; !wž++ 2#"!)$0ÿéïÁ 7#53#&'#n\Ým1"!$®8vÿêîÁ7#'>5#53##ž8#  AÝ<®L#2'1NÄÿëêÏ73#"''32767#5333#H—! —¢Öšš—/Y$ ;z%cÿêìÇ73#3#"''3267#5335#365#Øf[  ¢5^rFHÇ&y*aNeeÿëìÇ73#"''3267#5335#53#3†b" ®8^ØfRy(I1VCc(ÿîïÄ 733#537#537#37#37#,ª(Þ5 ') 0:UQYUÄÃNOOO°NXÿêôÏ/733#3#5##535#533567#533##"''3255#š99@k?99BH HaBB   HÏ$$„ & " ÿéô¤'-26733#32767#"&55#'67#5'6367#367#3356/ $ D O) / ( $ $ "+¤ =*  /7 (5  6 sã˜73533#"''32765#'67#ˆ*  8 2W8K @[ÿêøÑ$*/4733#3267#"&55#'67#5'6367#367#335? .+  / )' #- 02'Ñ K; # A:,E  @'jÿéðÄ73#3#"''3255##5##535#j†94     49Ä%i  Qo‚%rÿééÐ733#"''3255##5##53£2   1Ð%|  d¯¯”ÿéâÑ7#"''3255##5##5353â  CCW«‹  s¯¯£&& ÿéòÎ 733#3#"''3255##5##535#53yeeW  CCWllÎd  L‚‚i|YÿèöÁ73267#"&55#'655&'Ñ   0 "-  Áº ! ¬H-:$SR=#$&"RìÐ &767'5673#23267#"&''3&'0) ]T ''UN "-RK#Œ%   f   &%  ÿéðÑ)73673#3533#"''3255##5##5'67#I  ~‡ 4H  43 (?®&&R  :rr]W *4ÿèçÈ7#"''3255##5##535'27Û  <<P)/bc *2‡j  RŒŒk~#$ÿéñÑ#7#53&'73#3#"''32655##5##53vgf fgN  ::N›"\ D}}cvrÿéêÎ&735#53533#3#3#"''32767##5#535#y'..44--6",,'< VV"ÿéßZ7#"''3255##5##5353ß  @@TH8  LL>QrÿèõÍ733#&'#67'5#537'6…V4* 2  FÍZ? M]  jU) ^ÿèóÏ)-7533'67#3&''67&'767#'665535#¦4 -   D ¯ 10$    ;/ ,TD1TÿèóÏ)-7533'67#3&''67&'767#'665535#¡8 #1   J ¯  11#    <. -TD1Cÿé¡Ð(,7'6553533'67#3''67&'767'5#c    \B1 6D@"" 3 %    33ÿéOÏ73533#&'#5'67#   ¢-- }s ".fÿéïÑ 473&'73##5##53&'7367533##'2655##5##5k27„c" *0  ¹  #((   2: &XX?PXÿîñÂ1573##'325567###535#73''67&'767#3#a}  b0F6     "`˜˜Âr y "d nR@,! y ÿèóo73#3#&'##5#'67#535#735#,¥HeJ!. ;#$7 . HcIo5  33   ÿé…7&''67&'76n ()…1 šÿê⇠73#"''3265'3#Î 4‡‚ i[{íÁ7&''6767&'76Ô Á2%!"!)&! XÿìõÍ!7353333267##"&547#'665#_%<     &2 %00U:  1Mo)?;>ÿëôÎ!73333267#"&547##'665#53z>    (B $%Î1W<  4Oq)A:[ÿéôÍ7333265#"&55#'665#53ˆ1   Í0 ! ‚G"&A< `vÏ7365333265#"&55#'67## ²  1  %," ÿéwe 73533##"''3255#&'''6)))  )S  3  SC @  tÿéóÐ"&*73&'73#3#3#3##5'65#5#35#”  $!!!!&X 1 Ð'"""‡ /*""3""3"qÿêôÐ#bfjnr73533#3#3#5##535#535#35#3353#35#53#3#3#3#67&'67'5'67#535#535#535#735#35#5#35#s666--9c7--6/Q*  '!!$-      ,!  /È !&&! 0          1 ÿépÐ  $(773673#735#35#35#3#735#33535#335#53##5#'6)S//////ZZ$6$8a  Q9   ;$  1,, ÿé{Ð !%)873673#735#35#35#3#735#33535#335#53##5#'6.[666666bb(>(>m ÂQ9   ;$  1,, uÿçôÏ #<I73533533#735#33533535#335335#3#3#7'5#'655&'76„jJ^UU_C  _  # ÁI++*  - 8" %6K  ( iÿèôÐ.6:>B733#3'67#'65533267#"&55'7533#53535#35#35#§((9U/,    2 l,,,,,,Ð   G9/ .6Q!   4QQ))zÿíôÐ !%8<@7&'67&'67&'63#735#3267#"&553'#37#3•   .  0   LWW55" -% a8'Ð        2-e U:+vÿèðÆ%)-373#3#"''3265#&''67#'67#735#35#33#…`8 M     ::::>PÆSVB      21X(xÿé÷Ï37;A735333##67&'#"''3255'675#535#535#33535&'‚%,,     &&--%7J »%$   $(   1%2  wÿéìÐ73#"''3267#'6##535#˜K  @ 8&Ѓ #)SeC3 ÿé‘Ð !%)873673#735#35#35#3#735#33535#335#53##5#'6!6lFFFFFFvv1O1L„$!ÂQ9   <%  1,, ÿêòÃ73#3##5#535#”X!''((#ÃIllI ÿéóÐ !%)973673#735#35#35#3#735#33535#3353##5#'667#.9W¤ ¿¿BBUB—BBUBÁè9FCÃS;  ?& ! !&& =ÿéòÐ !%)773673#735#35#35#3#735#33535#3353##5#'67#X1<[[[[[[šš00C1t00C1—µ0+2(4ÂQ9 ?& ! !''# VÿéôÐ !%)873673#735#35#35#3#735#33535#3353##5#'67#i+8vPPPPPP††&&9'`&&9'~ž(+#%ÂP9  =% "(( `ÿéòÐ !%)873673#735#35#35#3#735#33535#3353##5#'67#q(5pJJJJJJ€€$$7#Z$$7#v’"( "ÂP9  =% ! !(( ÿçžÐ !%)77#53675#5#35#5#335#3535#3##5#'67#‹m 'GGGG~7$$4$4$$$O‘ ''"ÃRR == !((#FÿèéÇ733#'3267#737#3#[{" $ j  7 ewwÇe229XCR„mÿèïÆ733##'276767#737#3#tj %d /U\\ÆiS" +XCV„ÿéé733##'2667#737#3#&—4(¤ Z€››?<2.R„ÿèîŠ733#"''3267#737#3#ˆW L #BEEŠF@(9&4YÿëêÉ733#"''3267#737#3#+ž ,  “T‡ššÉhS#5ZEU‰ ÿêvÈ733##'26767#737#'6ZJ #F8!ÈiQ$ (ZDV|  ÿênÇ733##'276767#737#'6PA =1ÇiQ# *ZEX}  ÿêiÇ733##'276767#737#'6L=9-ÇiR" )ZEX}  ÿééc733#"''3267#737#3#&–4  ¤ [€››c/3+>ÿéél733#"''3267#737#3#&–4  ¤ \€››l28. Bp…Ñ736533#"''3267#'67#&4  #,%#¾ 3 &ÿêdÇ733##'276767#737#'6H:4+ÇiR" (ZEX}  @ÿøºž7337#533##'32665#3#Y%EY VVV|'7IB" ÿ耒#'+/73533533##3#3##5#535#535#5#5#35#335"))++55))J"*‡  .  . ;sÿèöÏ73533#&''67#z,63 /# ) 2,’==T1(?>)5PxÿóòÆ7#3#5&''67&'76îcgz\   Æ®Ó%%  % [ÿéò^7&'36533#&''67#ÌV9;>% "-7 5^     !dYõÏ73&''67&''667#E  %'"   ;Ï      ÿèÖU7373#"''3267#'67##C[ ME :<@ >#5 &+ÿèÓN 7#5##535#33535#35#Ó‚77J8‚77J88Nff';RïÑ7'673&''67&'67A p9 @%-= 5&” %     !ÿûëÇ73&''67&''667#Vf $75')8 6% & "WÇ=!  1%/ÿèñf73&''67&''667#] q !5A*,9 4% 1;]f    - VíÑ )7&''67&''63533#3#535#> ~   ŒQSSc×`QÑ      'AA ïÒ;@PTX`fl73#3#53&'#53'367#35#5'67&''673&'3#3#73673#3##5#535#735#35##5##53'67&'G% ^# 92    7  @!5w# «O!))((////¶=&F ? Ò   ,  /    J /:  $ '), ÿêì !7&''&'''6733265#"&5Í  6M + " ,#        JÿæóÑ3=GMSY_733673#5##53&'733#735#3#3#3#535#535#73&'735#336735'67&''&''&'•  ‚% 1ssQQ ’@@@K¦I??@  0Bv ˆ    Ð   # !4    V        +òÏ $(Y]aek73&'73#3#3#3#5'6353535'3533533##3#3#3#'67#53655#535#535#5#5#35#335&'Ÿ ##c  ¬(!))--7; &  (1,,))N(*  Ï  V  $%o$    $+ E \óÑ73&''67&''675667Xk(/ ;*,< 6&  Ñ       {~óÔ73&''67&''667£=   Ô       |ÿéóJ73&''67&''667# ;     % . J       _gñÍ7'673&''67&767{ I ($  —     aÿêãb)/573#"''3255'675#'3#"''3255'675#&''&'¨;  *C;   *P 7 bd  #d  #    ÿê[Ð 7#5'673#:  Ð#¢| /ŒRÿõòË 733#3#53‹NNR 9ËFj ZóÏ 733#3#53k``sæ^Ï#- ÿïòW !7&'7&'''6733267#"&5  ] • /  -#W  ( 7 \ÿõòË 733#3#53ŽKKO–2ËFj\ëÅ 73#&'#5#Ój/! !"UÅ-VÿéîW 73#&'#5#Þh/) ('dW  :\ `{Ï73533#&'#5'67#,&&  #³  +/v`õÏ73533#&'#5'67#*.%  ³ 00ÿéî} 73#&'#5#Þg.( '&c}R7ÿôÁ] 73#&'#5#7ŠB! 4]  :XÿéìÊ "7##535#35#7'3255#535#5#uN::::Å'"O<<<<Ê\…á&:7Ä b\&:€îË 73#&'#5#Þh.)('dË  #: ÿçúŠ-15<7327#"&'#'6553#&''675#535'235#35##67&'Ö Ž 1  2<111:#0$$ ŠHH-.d;0& &.D/ / < RÿèöÊ 7&'''6à ) / +2-Ê<Aœ“JClÿéòÏ 73533##5#l;77;NN……Iÿè÷Ï7&''67&'š)%/ 0( Ï&j7 dT11["gÿéðÀ73#3##"''3255#535#qt.99 <<2ÀAV  QA]ÿîõÐ $73#'6333267##"&5477#Xa "]K   &=@Ð "!P  AgÿéîÊ7&''67'67676767&'Ë-5%"!" +3& 9 '  %8%C:$[1cÿéôÆ733##"''3255#53567#ss>>  AA[Æ\ Y!UÿôöÏ73533#3#535#e8<3 AC   14¤  <P  T ÿîßÅ73#735##53#=#/  xx¿—ÅR,­mn11]ÿêñÍ 7#56'&'ß "(VÍ/‰’#+ ÿéäÐ73#"''3255##5363#735#f w  ž9 cc>>Ð ©  ‘°ÃCV2ÿëòÎ#',73533#3#&''67&'767#535#35#335cccTV1LP74, QTc#@@T@¹K   KN% % ÿéíÍ73#'66556#5##535#Õ E^±± kJdddÍ B85D9lmnI6 ÿéãÏ#733#5##5'67#&''635#er%U|y‰2h :yyÏ:h]A  !Ÿ3ÿççÇ7#"''3255##53#3#735#ç  ¦&ƒƒ iiAAÇÅ  ­Íà/N(ÿìõ¿7367&'327#"'&'#   ‡¿ W$5!-r8í73533##"''32655'67#?O!!   0 0?Œ!!M E4 !%ÿéíÏ73533##"''32655'67#’33 :G N<Ž¢--Œ lC%(K<ÿì¢Ñ$7#"''32654''67&''67&'76Ž (3"  Ñ'>'( #  jÿéòÏ73533##"''3255'67#yF #% /&F¢--Š  ^?!)O4ÿñÈg73533##"''3255'67#=P(( 2 .>U9  /$:ÿøÅ¦73533##"''32655'67#@I(( "+#H€&&\ 9(0MÿèôÁ73265#"&55#'655&'Ë 72  Á¸  ªG/9$SR="$&! \¹ 73#7'675#I")¹~  „QÿèöÁ73267#"&55#'655&'Ï  5 $.  Áº  ¬H.:$SS=#$&"AÿèôÁ73265#"&55#'655&'Ë >$6  Á¸  ªG.9%RR="$&!lÿéöÁ73265#"&55#'655&'Ô  + + Áº ! ¬GS+$RR=#$&"KÿèóÆ'733&''67&''667'367#67#'7#co,  !# $3Æ2D##A,;3 63 *3 ÿèôÆ!733&''67&'767#'7#'67#˜?'*' !2 1 4A> 7,Æ2@%" #'2’82‡cÿéóÆ#733&''67&''667#767#'7#va &   +Æ3E$ @*G^53#-4ÿèõ"7#533&''67&&'767#'7#'6E/ª 0+.7#!1 - !" P 2.n.    O2,LÿéóÆ"733&''67&''667#67#'7#cn-  !#%5Æ2E"!B,F]74 (3]ÿéóÅ!737#53#33#537#35##5##535#j /J=–!(5.NSSS˜4"""FW W8& ÿèïÏ7Q736533#"''3267#'667#36533#"''32765#'67#73733#"''32767#'67#Hg  T, * D (.   '" %u 5   # '" ¾ 4    W L .=0Q ,>0 ÿíÄ73#"''32765#'67###535#p  #.)$hL88ÄJ $;!,_VeC/ÿéïÆ7#"''3255'7567#536íd dh)!˜³$,5oR L  "ÿéîÆ7567#53&'#"''3255&'" 4)!˜³$,!B 3& =&€/+  < >ÿéïÏ 737#5'7'&'&' 9;…ˆY"  $#χLJw*ÿéðf 7#5'753'&'&'î;‡Š]  $$"  IGE   nÿéõÏ 7#5'753'&'&'ó#JMH  OLIІs,«ÿèôÎ7#5'67536'&'&'ñ0    EE?”Žw;¦ñÍ 7#5'753'&'&'ï'*.  g40  miW   %   nÿéôÏ 7#5'753'&'&'òLOJ OMI‰†s,  ¡ÿéôÏ 7#5'753'&'&'ò*.5  CC>  ”w  2  Tÿé«Ð73#&'#5'67#535'6¡     #Ð, gc$.&BÿéóÎ $(.4F73#32767#"&55#'67#53635#3353655#3354''6767&'u &' * &  )  7  Î fJ NC :f9F  M  €ÿéñ{7&'#5'753'&'˜ cADL {  >2/  PM'  ÿéy"73533#&'#5'67#7'6'&'(''  %P  >  L3395 ;    zîÑ 7#5##53&'7'67&'î¶c+#1 -].& (,½%&      |ÿéó“ 7#5'753'&'&'ñDGB  ;;8  `\[     ÿéu–73#&'#5'67#535'6m$$  &."0– MO & ÿíóË733533533##5##5#5335#35#+6666K66½;II==‚ ‚ubbb_ÿèôË15973533533#'3255#'655#'3255#'655#75#35#b 8 9       0Yk````V  Q?##> V  Q>$"? OOOOKÿèòË15973533533#'3255#'655#'3255#'655#75#35#O >?  8hm^^^^W R?#$= W R>$!@ MMMM NÂ73#3#67'675#535#? " Â:B H:WÿéõË!%,73##"''#5##5##5#53535#35#335#325ê   && Ë]Z  eeess]]KKKKK]\ _ÿéöË!%,73##"''#5##5##5#53535#35#335#325ê  ##Ë[] fffuu[[IIIII[a ÿé¯Ì"&*73###'2655##5##5##5#53535#35#35#   &&Ì`W R____pp``NNNNNÿè¬Ë15973533533#'3255#'655#'3255#'655#75#35#9 9       8ZsXXXX]  X@""?]  X>$!@GGGGÿèóÌ37;73533##"''3255#'655#'3255#'655#53535#35#tQ   (&&&e((Ì___UO=$#> S M>#">__KKK ÿéöÌ"&*73###'2655##5##5##5#53535#35#35#ß &%%%%8%%8&&Ì`V Qaa``pp``MMMMM RÿéóÐ#+37;?73533533##5##5#3#735#335335#5##5#5##535#35#35#Y%%%%%% ~~##}…FFFFFFFÁ / -$%bb $ % fÿéóÄ73#3##5#535#n~5<<==5ÄImmIiÿêîl73#3##"''3255#535#pt(22  ??8l(  % uÖÉ 7#5##53#3#ÖŒ#qqqqÉTBBT ÿøbg 7#5##535#b$$$gloL;XÿéðÀ73#3##"''3255#535#d€4@@ DD8ÀAV  QAiîÒ 73#5##53&'&'''6„_³d1&! %. ", 2Ò ++ , ÿêîl73#3##"''3255#535#-¦Faa  ffLl(  #[ÿéòq73#3##"''32655#535#f‚3== FF;q * ' ÿéWx 7&'&''67   0x     ÿénÑ73&'73&'#5'67#!   )=° !hc @UÿéòÎ &7#5'673533##"''32655#&'‡ "4   4   Î!£ ,77 { ÿèìw73#3##"''32655#535#)²J[[ jjTw!. *!zÿéðÀ73#3##"''3255#535#ƒc%// 33*ÀAV  QAÿêŒÃ73#3##"''32655#535#v.22 664Ã>[ V>ÿèðÊ73##5#535'6Ï?ffee!, xÊ>rr; SñÐ73#&'#5'67#535'2Î $+`N"4 8%!8 3#M]"&SÐ #1/ÿéð[73##5#535'6À!#ffff@ f[ ++ÿéïƒ7'673##5#53v$% y0$+eeeef )CC—òË73##5#535'6à &&"" $Ë6[[1ÿñàÌ 7'6'66'66­ .U Y2 0^ 8<3Ax HOÌ( "0  )9 ÿöòÎ73533#3#535#[]]iäg[ˆFFllzÌ73533#7'675#('')-7(”88N SmÿéêÏ 73#5#533533Öi !š±¢ÄÄWÿêóÐ73#'66553&'° 2i!5ÐI<0 , U FÿèñÅ #7#'66553533#"''32767#'67#ñr&!3  1+ÅQC4 0#^G$$o# K]&!SYÿõöÄ 73#735#35#3#nuuMMMM)ÄœW2v1ddÿîóÏ %7#5##53&'736732667#"&5îb> 9' !/   *"¬22 ./ . ' KÿêðÇ %7'66553'#33673267#"&5~"zUUC! !'  $ D5 3!_F5$'  -   K¥¹73#67'675#QN&0¹z €¢ÿñôÁ 73#3#535#¤K RÁªªEÿù§Ñ 74''675#53533#7&'75##5#– #)  4 4^,,^/ )::::@‰¹ 73#7'675#EB& ¹y  €fÿñóÁ 73#3#535#p~6;>4ÁªªUÿñôÁ 73#3#535#[”@EŸF@ÁªªmÿñóÁ 73#3#535#vw28†90Áªªÿõ|u73#67'675#c(/9'uJ O‹ÿçêz7##53#"''325Ö7_ g€“f  …óÈ 73#3#535#'²NhæjPÈÿæôÅ7#5##53'6656&'ÒuB187,&,+&2Å™††™-5*92': ÿæéU7#5##5'66&'ÏxI16 3*/) ,,UD35F"&  ÿçìÏ"(7#5##5367#'6733'6656&'ÕyQ D!1O 'i 8*'''"-Šr__r$$'> $*ÿççÏ 73#5##535333'6656&'‚S‚Cctd6(+&%!+§kXXkBA'> $€¹73#67'675#d*-: &¹~ ‚iÿèíÍ7&'73#"''3255#3#~ .Q   ?3Í Á  «·~Ô¢7&'#53#&''67&'76ª-R     ¢  . bÿéíÐ7&'3#"''3255#3#  5J  7AÐ Á  «·TÿèìÎ7&'33#"''3255#3#k  3^  L:Î Á  «·oÏ’7#53#3#3#535#53–Q &`'#""}ÃŽ 73#735#35#}FF$$$$ŽtB"T"y ÙŸ!7&'33267#"&57&''6§   *  2 Ÿ#S U"ÿææŸ7&'73'3255#3#:  9‚ #oHŸ   ™ ‚ –3ÿôÀ#'+73&'73#3#3#3##5'65#5#35#]+-$$$$,a1#####   T @ÿëô¸7&'333#"&''75#_ ( -1 :!  ¸ 7c  UzîË#'+73533#3#3##5#535#535#35#33535#335z100))2211))1(?(»YY57CÿíõÃ7&'333#"&'&'75#b  $,. 7 ÃA`  Qÿèó‹7&'333#"&'&'75#5 7 %9@ J)&#$#‹ -C   3ÿèó‹7&'333#"&'&'75#5  0 %;D N*(‹ /B   3ÿçö‘7&'333#"''75#(  1 #%¢--€rx.*l ÿæ|Ï73533#"''32765#'67#$5  "/)$¢--eA m{.+ojÿéíÏ73533#"''32765#'67#;  (93£,,Ž('Wy.+mIÿèöÊ 7&'''6¿ , 2 ,1ÊŽ>@Uc%DzîÑ 7'67&'T/ -q #Ñ - "%1 0 ÿèõÄ 7&&'#'6©= .A%#AÄŠ:rIOb$@iÿéò… 7'67&'@ " ( …@?,``(,jp‡ëÐ 73#5##53&'«4U2Ð 22 cÿèöÊ 7&'''6Ê$ ) (,'Ê?@’KC”ÿêòÇ7''6767&'× "H'/ G~uC$êÐ767&'7&''6k49 KV*Ð    ÿéÐ73#&'#5'67#535'6u *++  $02.:Ð *oi#$0&$™ÝÒ767&'7&''6j-0HP)Ò    Kÿèói7373#&''67'67#367K5^  % 3 -4 +A Z #   RqñÑ7#53&'73#3#`GBw‰¥  !ÿêæZ73#"''3267#'67#536qdVNEPVZ B (; ' gÿèôÏ 73673#&''67&'67#67#w!G+ * =% ¡D( "  $(_"=& rÿìóÌ7'6773267#"&55'7Ÿ6. 9;  *-£  <P  S ÿèöÏ+733327267##"&55#&''67&'767#532+* 7&   Ï.˜  Œ$ ,& $0  kÿéøÏ)733327#"&547#&''67&'77#53,   "#  Ï-5&$#&"$7 )  28  'ÿéäÏ!'736533#"''32665#'67#7&'&'"Hd  RU J G  e  ‹''Y5 96b-&VN` ÿéäÏ#'73533#3#5##5##535#735#33535#335'OOOYEEYO;;P;•EEZEºEV//Z |!!!ÿèíÉ  $7##535#35#7#"''3255#535#5#uN::::Æ P====ÉL”à,-É  xL,ŒÿñÓs73533##"''3255#&'Œ)   )aG  B Qÿåë†#7#'67#533#"''32767#'67#'6}4#Ty$(^  > 9  '"<L )9*  O@ëÈ!7#'67#533#"''3265#'67#'62"T{#'Z    ( # )%…? - %ÿåõ?7'66767&''6~N 4-  # 6{ % !  @ dÿéî‰"7#'67#533#"''32765#'67#'6‹,6W"R    * & $CR*;,'jòÏ 73#'6Š]e Ï  6ÿè›Î 73#5'67'&'‡ ' /":Îæ_UfÿôôÏ73533#3#535#f===7‚7=…JJkk ÿèZÎ 73#5'67'&'F "#  ÎæYN  ÿéóT73673#&''67#]l]H M 4( @T;   -" !eÿéóÐ73#&''67&'67#5367#6£P( $ #)) #¢D*  '+=*!) ÿèL¢ 73#5'67'&'9   ¢ºE = ÿéNÏ 73#5'67'&':   Ïæ[ T ScÏ 73#5'67'&'P"$  Ï|% = ÿêX 73#5'67'&'D!  ¥>  :dÿóî73533#3#535#d;;;5}4;\44CCPÿéŠÏ 73#5'67'&'v ÏæO  PhWáÍ7'673'67#&ƒ DJ @7  ‘# =.  ÿéñX#7367&'#"''3265'3'67#x$!"( 9#   cT3 -?T   $' =*bÿéöÏ736533#&''67#7&'j3@7 0* 7 42j  Š('L/,IN'&VKJÿé•Ï 73&'#''6j   Ï. ¡¹, Bÿé¹Ï 73&'#''6uÏ1œ·* ^ÿé÷Î736533#&''667#k485 5* : 3""R0(B=-<0gÿêòÏ73533##"''32655#&'gY Y  ›44ƒ ~$ &cÿéìÐ 7&'3##5#&'š  '‰E0]Ð (¢¢ aÿèõÏ"73533#3&''67&'#535#67#h9::/" #% # 29D > ©&&'&    %'kkÿèôÊ %7673#3267#"&'#67'7&'kD0.-  0! A+» &1"5@Z  {#;aIöÏ7365333267#"&55#'67#f$4  !- ##²  I  ;<0Xÿéñ_ 73533##5#XADDA;$$??kÿéëÏ7#5##5##535335#335ë"!65!!5"¡tUUt..O<<<`ÿèôÏ&7#5#'667##5365333267#"&5î(#+   ¥7$CIE=$7HV " VÿëôÏ$7#5#'667##537333267#"&5ë&!$ !"8   ¥7$CHC>&9*HU bÿìøÏ$7335#53533#353#3267#"&55#k;;AA!4  $ 2ŠAR RAS/ 5 ÿìó)73533#3#535# WWWhçkWQÿîöË$(,0@76767&'#3'67&'767#3#3#735#3673#53&'²     9JC  0-77kkEE " (›&Ë    I    39-  eòÐ 73&'73#e<<° eÿéìË767&''677&'3#5#533     ]s`Ë"#&5'$&$ .(¿ ¶£ÿéåÈ767&''67&'3#5#533H#$(!%˜·£¾"#"-5''$(# À ·¤SÿéêË767&''67&'3#5#533    k„qË#$ '4'%&& %$.(¿ ·¤nÿêé”767&''67&'3#5#533”     SgTŽ.) Š nÿéìË767''67&'3#5#533      JXEË!#&:*!") #3,¿ µ£gÿìõÍ "733#67'73673267#"&5g&& D  ÍJl  ×R` " ZÿéôÌ "048733#67'73673267#"&53#5##53635#35#Z)) G   ! G`*````Ì#  \    q q 3@ÿéŽÌ "048733#67'736732765#"&53#5##53635#35#  8    9EEEEEÌ"  ]    qq 3AZÿîõÎ"7&'332765#"&57&''6   K YÎ.Š }'00'8.+Gÿîð–#736732765#"&5'33#67'› &  T11$ –4  F  “1K  ÿé÷a &,7&'367326767#"&''67''67&'{  <0,P1E ! °a-( +#  <! "\óÎ &733#67'73673325267##"&5"DD# , d" #)  . Î *  i'   $ *ÿëï\ !733#7'73673267#"&5*;;9&# _" #) '\.  e)   #tîÐ &733#67'7367327667##"&5#AA" + b% %,  , Ð#  R    ÿçñn27373#673267#"&55#3'67#&''67#;¦P% ,  &89RJ3  /m(    \ <0  ÿê÷i%7773267#"&55'75'75'6Ä ).bdvx'( 33SVHK? Si      "hòÏ#7367326767#"&5'33#7'„$ ,  * b??=($ Ï    J'  _ÿìõÍ $733#67'732767#"&5536_'' ˆ#  ÍJo  ¦[ ËV&ÿìòR "77'53373673267#"&5:9'" >$ $+  &+*  ['  ! ! Vÿñòš#736732767#"&5'33#67'¢ !   L-- š3  I –2N  "ÿéò #733#67'736732767#"&5"==' `$ $+ )!*E  ‰/6! pÿéòÐ !.26767'53373673265#"&53#5##53635#35#„ "     ;IIIII¤&  ^,!    qq 3A[ÿèóÏ!733#3##5#'67#535#5353335¾!!'%! &&&Ï.@SS1 '@..@@]ÿéóÏ 73#"''3257&'''6Ÿ  3  E ÏÍ  ™9D F8K4 6ÿéóÏ 73#"''325''67&'y :“ÏÍ  ™K5 6D9C F8^ìÏ 73#''67&'u5‘Ïqb 5")"' &# ÿñòf733#3#535#53wVVgåjWWf(((ŠáÏ 73#7&'''6wA\ÏD8   ÿèÚO 73#"''3257&'''6v   F  o ON  /    )ö†73673#&'#'67#Po;) 1*!; ,?s   &$‹ÿëôÏ 73#"''325''67&'·   K  ÏÍ ™L5 8E9DF8Uÿë ¿7#"''3255'67567#536‹    .Dg N B6&iÿèð‚ 73#"''325''67&'¤   &  f  ‚  \3$ $,%- .%ÿêr7#"''3255'67567#53h  D[M3 * ‰ òÏ 73#"''325''67&'µ   M  Ϫ  ~@, /:19;/F“Æ7367#"''3255'67567#MF     /Æ A 4"[ à733#"''32765#'67#53ˆE   4#)+ 6" '%-rÿèôÐ 73#"''3257&'''6«  /  < ÐÎ  –9C F7K4 7‚ÿéêÐ 73#5##53635#35#§4AAAAAÐ ÄÅ^:‡:|ÿéòÏ733#3#5##5335#¡==4E%EEÏ,0wwRA„ÿéóÏ733#3#5##5335#¨771C$CCÏ-0wwR@\ÿçòÐ &,73673#3&''677&''67#677&'rNPG   # #  £"6#    /O4 o jÿ÷óÊ73533533533##5#3#5#5#j=bvbŒ44>>>>JJo‚888sÿéïÐ7#5##5##535335#33535#35#ï  44 4 T 4 ©‰ BB ‹''6###X"""mÿêòÏ 7#5##53&'73##"''3255#îU3M…4   =­00 <[  XpÿéòÏ!73533#3#67&'7&''67#535#y-,,8B # ,0+6-¤+++6 %* 4+ÿîñÏ#'+/37;735333##3#3#535#535#535#535#335353#735#35#3#&LOO]]jÞaUUNNccL_;;;–««………….ááÅ        U@' # $îÏ73533#3#535#dddRºTdÀQïƒ7#5##5ﺃ0 2 ÿêóÏ &D73#53&'67&''67'#'66553533#3#3#535#535#'6Š[Î\0$$ ! @(´¿ 6*CC==P·S;;5Ï    &1) :  ÿïïÏ'+/37;73533#3#535###53#5#3#3#535#537#335#35#35#35#dddRºTdL9Û800MÝL111O111ÀC!31;;)A ÿíòÈ#'->DJ73#3#3#535#535#5#35#33533535#&''332767#"&57&'''6ÏD55JÛI66Cx"6##6""W""" +)Š  — È;;)?,  ) /   ÿéòÏ#+/73673#53'35#33535#3353##53#=#Z % ,°. <¡ß " %à  €> " 3ÿê͉#'-373533#3#535#735#3353#735#35#35#'67&'@777CšD7%%8%m}}XXXXXX  9 ƒ   -A/    Wÿçò¢#'-373533#3#535#735#3353#735#35#35#'67&'e777D›E7&&8&n~~ZZZZZZ  C ›% 5Q:     ÿé]Ÿ7#"''32654'7##5] "Ÿ04¥¶ ÿéòÏ $0>K7&''63533##5#7&''67&''6&''6'&''613 43-< OOihhi:  x     c   Ï#!ww((             ÿì‡Ð048<@7673&'73#3#3#3##5'66553&'73'#35#5#35#* A  /'HH…'    X'! +"X 6&J"" ÿêòÏ#'+17=C73#3#3#3##5'673&'5#5#5#&''&'''67&'ƒ LPHHHHT¬ # 9 BDDDDš  &  `G  ÏX (, ;&%    ÿêòÇ*.28>DJ73#"''325567#67#53&''67&''3#735#&''&'''67&'/“!  wr - ÿétÁ7#5##53'>&'m4$   Áš‰Š›'R,(  "+0 ÿénÁ7#5##53'>&'i/!   Áš‰Š›'O0&  "+0  cóÑ735#53533#3#3#535#*KUUVVNNhæhKšÿæé\7#5##5'66&'Ñ{K25 3,-) ,*\L;76767&&'3'67&'767#3#3#&''67#5355#—  (6hZC E;QRT60 .4> J RV Ð   F* @%  6"$ÿèèÏ#17#"''3255#&''67##5367&''66è  O, (*1 C\ % #+ "¯¬  ”$´Ç H !!ÿèÞ—#07#"''3255#&''67##5367&''6Þ  D' % # + <V!  " 3}}  f  ‚•  9    ~ôÑ7&&'''67&'e!F( %+F=' Ñ 0  #ÿèÝy#/7'67##536533#"''3255#&&''6|& 9UR  B% %  '=  hy  `  J     nôÏ)733#67'7537736732767#"&5K""5AB#+  &Ï <:G    !ÿèÛZ .73#"''3255#&''67##536&''6€O  E# #!2T )Z H  3   Qa,   QðÓ %?CGKOU[agms73&'73#''67'6776767'7''67'677767''3#3#3#735#'&'7&'''67&'7'67&'V#R    ¢     |CCCC??!£Ã$$»            '   !ÿèÛR.73#"''&''673255#&''67##536‚M  ' E# $7YRD       /    M]UÿçõÐ$PTX\`fl7'673533#3#7'5#'67#53535#'673533#3#3267#"&55#'67#3#735#35#35#'67&'i      ",      A{{WWWWWW J °      *ZA $ %      ÿéñÇ73#3##5#535#735#35#(¯NhhffM‡‡‡‡Çn@@@HÿéåÆ 73#3#"''3255##5##535#735#0 EZ  FFZGxxÆPE  -__K^*Cÿèë 73#3#"''3255##5##535#735#M;J  78KAjj9/  <<4FqÿéîÅ 73#3#"''3255##5##535#735#|f(4    !5*>>ÅOE  .__K]+ ‹ÿïõÒ !%)73&'73#3#735#3#735#3#735#35#3#‹++j^^::** &VV2222ggÁ  S7 # 8@' # #8ÿûÏ73533#67&'7''75#735#335?  $"  ¥**^2  5>>>\ÿéöÏ"7#67&'7''275##535335#335è6 6E"!"65""5"¦c:$  <u))P===FÿèïŸ733#67'7''275#5335#35#==  +++Mÿìï“&73#3#"''3255#&''67##5365#M¢HC  0   (>H“ c  M $j{ Lÿéç“ &*7#"''3255##5#'665535#33535#735ç   &*  '':&a(':&“ 22" $G.JHÿèôÏ"7#67&'7''675##535335#335à8 CF'%%89%%9$¥a: #  <z**O===ÿéZÍ73#''665&'767#53&'1   0 Í*#)#. ]ÿçíÑ2=HL7&'3#"''3255#3533#3#&'#5'67#535#35&'75#367'35'3#p /^   L'((%     $' % eÑ Ä  ¬J 35JJ   ,6» ÿèyÏ"73533#&'#5'67#7&'7'6)((  ' W  ~QQ[^",Q \ÿéíÊ  $CGMQW7##535#35#7#"''3255#535#5#3533#3#&'#5'67#535#35#&'735'6ž0   0I)**%%    $)  ! ÊEœá ' )Ì „E '  6  $& 6 3    „õÑ73#&''67&'#53&'67ƒi. #1?-'E 3#)h!Ñ     …ÿéßÏ 736753#5'…" Ä–“æ@   ÿé¡Ñ.733#3'67#73267#"&55'75#'6553F==H7$&   -Ñ      H<- .7S ÿñÏ7''675#53533#7&'75##5#x/8++++5 7_--_4#====‹ÿéáÏ 736753#5'‹ Ä–•æ> zÿóôÏ7&'3#3#3#535#535#¯  #v0))3z3**2Ï &::::wÿéîÄ73#"''3267#'67##5##535#{s   ') #$pEEEÄL3>0_iiG4zÿéïÏ#7#"''3255#&''67##53653ï    2¨§  #A­¿hÿìõÏ!73533#67&'7&''675#75##5#o2334=2e¢--_4"" 7====oÿçöÈ7'6553#&'7#3“h ! '@@dR+&UUdJ [Q>`îÇ7'67#53#3#"''3265]1 : E܃t   ‘- (ÿåë€ 73533#7&'7&''275#75##5#+JII1Lc0.J”56a=   tÿéóÏ735#535333#&''67#75#u-$$-6#! " *Z]6))I311"06)wÿìôÍ&7773267#"&55'75'75'6Ú  1368  &)"%!<Í '  )  2 4( ' ÿñ‚Ï73533#7&'7''675#75##5#&'')1&M¢--_4  7====ÿèóÃ73#3#&''667#5365#!¼UdbNIU 1.^`SÃ4G#;?2$ - ^õÇ73#3#&'#'67#5367#%¶S x1 %&>/ .F IÇ    aÿçòÇ 73#735##53#3#&''67#536tllFF/w5>9 1+ 0/25ÇF"Z  "!"  ÿèôÉ 73#735##53#3#&''67#536.¦¦~~5O±OeWELVNW^ÉG#Z (  ;,  ÿçô_73#3#&''67#5367#$½ZjZD K/ M S[N_  *    BõÃ7367#53#3#&'#'67#M PºV p;-3+8.;‘&"\ÿè÷»73#3#&''67#5365#oz5=:0 , 7 =671»1D58D - WöÇ73#3#&'#'67#5367# ½V t5# +)2&* %5I NÇ  !" Wó¿73#3#&''67#5365#bˆ;DF&$$ 4 7=@8¿ & $/DöÐ?PTX73&'73#3#53'#367#733#3#3#3#3#3267#"&5535##"''3255##535#35#)+r($QTTMOKKKKGG% .% MM ;;;;;Á        J< N  }ÿéêÇ7#"''3255#'65535#35#ê  .,,,,ÇÁ0.% *3t=*f* ÿèŠÏ%+73533533#3#535#35#35#35#'67&'*|(******>  ±mmCC0  :ÿìòÏ2733#3#5353333#3#53533'33#67'75367’//B,!cV .$ Ï99 /LL_"KG ÿì¤Ï#'+/37;?E735333##3#3#535#535#535#535#335353#735#33535#335'6411::C—A6655AA4Gdww2Q2!FJLÆ        S@' "  YÿðòÏ#'+/37;?C735333##3#3#535#535#535#535#335353#735#33535#3353#k12288C“>6611==1Cauu 1 Q 1 v˜˜Æ        SB( % # HÿïòÏ#'+/37;?C735333##3#3#535#535#535#535#335353#735#33535#3353#X:::EEL§H==::II:M'''s††''9'`''9'„©©Æ        SB( $ $ ÿðïÐ#'+/37;?C735333##3#3#535#535#535#535#335353#735#33535#3353#'OPPUUcÙcUUOOeeOb<<<œ¯¯;;N;‰;;N;´ÞÞÇ        TB( " # aÿðòÐ#'+/37;?C735333##3#3#535#535#535#535#335353#735#33535#3353#r/..66><22//::/B]rr0M0pÆ        SA( # # ÿêhÏ#)/7&''67'67676767&'&'#&'''6X!     r  /)8! 7# ÿîôœ-159=73&'73#3#53&'#367#3#3#3#535#535#735#33535#335W U'?Ü<%F6J5©KVVkçjVVL::L9…::L9ˆ 8  "  PÿîóÐ"&*/5GMS73533#3#''275#535#35#33535#335&'#&''3326767#"&57&'''6Z>??6 9B"55>""5#X""5#   #^  j  ÀI I- ) '  (   ,   ÿï]Ï &,7&''63#3#7'75#535#'6'&'2    7'1 )Ï   "C G9ZÿêóÐ.48<N73533#3&533#673265#"''67&'#535#7&'3#735#7677'67&'a#*)     X#w  gFF$$  "* ¸">#"$=    B J:2   ÿèðÐC73533673#5##53&'3#735#3#3##"''3255#535#535#'2J  2³2››ss‹ $,VVff  ggVV#'UÍ !! () 0+ &     MÿéòÏ'+/37GKOSW73533533##5##5#73##5#'65563#735#'3#735#3#3##5#535#735#33535#335Nš/  !S&& <(( P $$'' .   *ŒŒ?5 o9 *  * 'I  +, ÿêMÏ$7#"''32654''67&''67&'76=      Ï *?'( (   ÿéòÏ(,048HLPTX73533533##5##5#3##5#'66556'3#735#73#735#3#3##5#535#735#33535#335:F::F:Ó &H/±66155Lm-3399--G-   nn0( (7.+ +'I  ,, ÿéóÏ/3973533#3#3#3#3##5#535#53&'#53&'#535#35#67#gggOSX(Ci[[[[i@)_LRg(eKÁ2 !! 2/T ÿéñÈ =73#3#535#5#35#3353353533673#&'#5'67#53&'×D9Á:E'9&&9'%Œ   2R"1 7$!6-"Q1 È@@.6""  #;:! OÿéðÎ <@DHZ_73#735#35#35#73#735#35#35#3#3#3#5'673&'7335#5#5##53&''67&67#^AA!!!!!!:@@ 4444;‡ :s******ƒ& + '= ÎH3 3H3 2 )    !    ÿæóÎ >CGK]b73#735#35#35#73#735#35#35#3#3#3#3##5'673&'5#5#5##53&''67&67#XX444444Y[[777777ZXLLLL\¬ 0;>>>>¬(6+1C 4&8YÎG23G2 ,   %  ]ÿéóÍ =AEI\a73#735#35#35#73#735#35#35#3#3#3#5'673&'7335#5#5##53&'''67&67#j<<3<<////5z5i&&&&&&y&% 8 ÍF1   2F1   1 -    !    VÿéöÎ =AEI[`73#735#35#35#73#735#35#35#3#3#3#5'673&'7335#5#5##53&''67&67#d@@7??22229ƒ  9p((((((€. )&; ÎH3 3H3 2 .    !   ÿéóÏ,767&'7'32767#"&55'667'6f:?# & +'+Ï7  (c& i6-0ÿçó¢'7'6767&'7'3267#"&55'6U%.3    $! A:L/*$ K NJÿçî‹+767&'7'32765#"&55'6767'6q1)   % . & !#‹   >! C$ OÿèôÏ(7''6767&'3'66733267#"&5É 66"%* >1  °& !24  G7/)2\ ! ZÿèõÏ)7&''6767&'3'66733267#"&5Ì32 "' 8-   °& !25  G7/)2\ ! LÿèõÏ)7&''6767&'3'66733267#"&5Ç88$%, >4  °& !23  G8.)2\ ! hÿèõÏ(7''6767&'3'66733267#"&5Ð -.#4)  ° %  37  G8.(3\ ! uÿêõÏ)7'6767&'7'3267#"&55'66“"   j!23 & o   n>/. ÿéòÏ'767&''67&'&''67&'76/1*"% #+%A 1'#(†+5 :.+= 9'ÉK#$ÿüsÌ'767&''67&'67&''67&'#              V      ÿéò˜'767&''67&'&''67&'76/.'! $ $.#> *#!†*3 :/+= 7%‘   5     cÿéìÏ&73#"''3267#'6&''6767&'Y  M 3 $ Ï1x &C 63 NÿéëÐ%73#"''3267#'6''6767&'zk  `  ;&) ÐŒ2!v )F ! 75 ÿéæ(73#"''32665#'6&''6767&'G   †$Y27!!# K9 -5"  /- kÿéíÐ%73#"''3267#'6''6767&'V  I 3"ÐŽ0z (E 76 uÿéïÐ%73#"''3267#'6''6767&'šN   A - ÐŽ0 w )F 76 NÿéðÏ 73#3#"''3267#'667#53&'¡ :bS   ?$I Ï^%E+4;I[ÿèô &,2736733#3##"''327#67#765#7&'67#7&'[v  jwP  ;R# q'**'=&&* !5  z!5 hÿèïÏ 73533#3#"''3255##5##535#h9::6   ""69¯ !\  E‚‚ew!ÿéð– 7#"''3255##5##535#53533#Ù   <<PeeggT@  )YYFXÿðóÆ 73#53535#35#35#Ì'å)mmmmmmÆÃÃA-n.o. ÿïó¯)-159AEIM73#3#35335#535#535#533#5##535635#3#3#735#3#53535#35#35#E #X#1 ¶ 144((&& S'å(rrrrrr¯  MM  M""GL?  3EE NÿïòÆ 73#53535#35#35#ܤLLLLLLÆÃÃB/o.o/ ÿðõ’ 73#53535#35#35#Ê+è*kkkkkk’0MM ÿó›Å 767'7535#35#675#ƒ ?M<<< 9WWÃgU  [R!DC;ÿé÷Ã73#3267#"&55#'667#735#[„!  * &ZZÃgU! [3.'*Aÿçõg73#3267#"&55#'67#735#. + ' E < +zzgB %2 #gÿéõÃ73#3267#"&55#'67#735#yh  * %BBÃgU [R!DCgÿéõÃ73#3267#"&55#'67#735#d  -)>>ÃgU [R!DC ÿèpÁ7#5##53'>&'p4%   ÁЉœ'P.(  "+, ÿé‹Ð733#3#5##5335#=::-?'??Ð3/ssR?&ÿéåÏ733#3#5##5335#kffYŠE1ŠŠÏ,/xxTACÿææŸ73#5#'6553&'#3¢:e>CddŸ Z ,% '1; &) ÿèåÎ7'655673'35:dI G^ªª–D1+16c  N;"(ÿççÄ73#'66553'#3ÊÊ "µÄb6* (LL9& ÿéâÐ7'66553&'73'#3?TMp>2 /!Y  I6# ÿéáÐ7'66553&'73'#3?  SLz ?2 ."X  >-Aÿçòr 7#5'753'&'&'ð-mpM  .0/  IGD   ;ÿçót73673#&''>77#7&'F?RD7 =(  :{  K,9*  <    ÿèâÏ73#'6553&'#3ˆM«[Z——Ï >Q("NO #-ÿéóu 73#3#"''3265#'6767#53&'“Tqc S ,  A\u  9 #Kÿêò‚"73#735##32767#"&5535335P……]]|‚+:F9--‚.*4  I ÿéáÐ7'66553&'73'#3?  TNŒŒ2?3 ."X  + 6ÿéêÏ7'6553&'73'#3fD =ppo=/ 08T A/jÿèõÏ"73533#3&''67&'#535#67#q555, " ! /5? 9 ©&&'&    &'jÿìwb73533#7&'7''275#735#335)(( #.)*P4 žÿèôÏ73533#7'7''675#735#335¢ #  ¡..d69BBB9ÿé÷È %AQ7#'6553#&'#5'67#535'6#535'673#&'#5'63#53533533ï‹P    9    =™2ÈKD> 5A] ,$ .   .( L22>]ïŒ7#5##5ï·Œ//ÿçès733#7&'7''275#5335#35#tGG2Md1/GG333F33s> >-ÿåôÏ#733#67&'7&''275##5335#35#vRR! Rk30>R>>>R>>Ï)a= & ?wP??? ÿéõÀ73#32767#"&55#'655#e-<H:À¨  ­/\9 9P/oïÍ73533#67'7''275#75##5#z,++  ,:,W©$$Q( )////ÿåîq 73533#7&'7&''275#75##5#&PPP8Md/-P <<^>   MöÐ73#&''67&'#53&'67€`%&9B/-< 4'a#"Ð     &0ÿéÐJ 7#5##535#ÐxxxJaa@-RÿéõÍ73#&''67&'#53&'667#  @ ) )+, ? GÍ?+%EŽ''lÿéóÏ733#3#5##5335#™EE;U-UUÏ/,xxS@€ÿéöÏ733#3&''67&'#5367¤995   "Ï#8)  2&$wÿéöÏ733#3&''67&'#5367Ÿ==9  # %Ï#8) 2&$ ÿíôÐ)7773276767##"&55'75'75'6b %!(*/H(%(#& ,Ð''4 7(%vÿéóÏ733#3#5##5335# >>6K*KKÏ/,xxS@mÿéõÏ73#5##5353335#­9Q,HtQQ0wwo,ƒ@Vÿé£Â73#3#5##5367#35#35#VM"&&&&&¦¦a-l-gÿéóÂ73#3#5##5367#35#35#gŒ@>Q&7QQQQ¦¦`-l,ÿéõÂ%73#33267#"&55#67'7#&'f;> 6  @,-"<  Â#|  ly ¶MÿéëÂ73#3#5##5367#35#35#ÖbUƒ?])ƒƒƒƒÂ¥¥b.n-ÿé|Á73#3#5##537#35#35#l)(6.6666Á!¥¥!`-m.„ÿéïÁ73#3#5##5367#35#35#„k)(6-6666Á¥¥`-m.vÿéñÂ73#3#5##5367#35#35#v{75F$/FFFF ¦¦`-l,9ÿéî¯"73#3533#3##5#535#'67#536€U_,< KÿçôÐ$(,047##53&533#673267#"''67&75#'#33'35#š-4@3    *0 <-,!##)$(B‚o   )!  [oÿçõÐ#(,073'33#67327#"''67&'#73'#3353'#335w-3*  + )7.L 0±l )% ? Jˆÿç÷Ð#'+/7#53533#67327#"''67&75#'#33'35#¹.#,"     &Cnn  " ' Qÿéò‹ #/767'53373673267#"&53533##5#5 * =% $, $ !ucggcb  O(     &**ÿéò” $0767'533736732767#"&53533##5#5!) =% $, + "ucggci!  T*    '--qÿéòÏ(47367325667##"'"&5'67'53333##5#53±   )  6644Ï+  !  .1 x&E>>QÿíòÌ'73673267#"&5'37533#67'7¬   O %- ÌSY ! —”¼>g T_õÏ'737533#7'773673267#"&5b %-O   ¹BV# \'  Oÿéõ`73533#&'#5'67#XCF8# %* )3J%+FF+%€ôÌ'73673267#"&5'33#7'27537’) - ( G**'8: Ì   2 ('WÿíöÌ'73673267#"&5'37533#67'7±    N $, ÌQ[   —”¼>f +ÿéÒe 7#5##535#35#35#Ò‚‚‚‚‚‚‚e| |!.. ÿèî]73#3#5##5'67#35#Úƒ ‡z +<8zz] M ; Fÿèïi 73#3##"''3255#'67&'*¬¬Þe   e<+ %y!i5 2 _ÿíòÌ(73673267#"&5'367533#67'7±   H !) ÌRY ! —”¼>f  hôÏ(733#67'7536773673267#"&5J''9< C"* )Ï<:M    ÿì„Ð 733#67''37533#67'7W  D 'Ð4ƒ ¦“º>c  ÿèôI&733#7'753773673267#"&5K""$5AB$ #+  &I <:G   €åÉ 73#735#'3#735#ŒYY22†ZZ33ÉI#I#ÿéîÈ)7#'6655333#"&53533#&'#5'67#ž@g&+ …^_M!0 5$"6 3Jµ6  4+4UW3)fñÇ)733#"&55#'6653533#&'#5'67#× $  277  ! %'Ç1  '   '_8?#!lÿéõÈ*733#"&55#'66553533#&'#5'67#Ò   14'  "È8  ,    o(+OM*(mÿêóÇ 73#&'#5'67#3533##5#s€2  ,:2442Ç 69$y?? ÿçõÏ "(7373#'67#3&''>7'6''63’ 80 0y&+5? ! D] ²pC;e;>-1 %0* ' WÿéóÏ"(73733#'67#3&''657'6''6\]_K( %; P.  ?­"E' &:97**#3   CÿèöÏ#)73673#'67#3&''657'6''6Z"]_ 3 - R  "2 A.  E  ³Z81P7 .,'8   5ÿèòÏ$*734733#'667#3&''667'6''6Pop['" -$.  H  ±HHBD'6'%:1%# `ÿèôÎ$*73733#'667#3&''667'6''6s\\F  ) # 9  °?> :: *6&#<0!! .ÿêì§7&'36533#&''67#º  h?OJ %!4 I O?§ ) &"&- :=HmÿèñÂ73#3#5##5367#35#35#m„;8F!4 FFFF§¦_,k,ÿéòÏ-73&533#327#"'&'#7&'3#67'675#}KJ   ~± œj-5B)¤B//'#5P>  Z@ C ÿèqÎ(.47&''67&'763533##"''3255#&'''6[   >&##  &L  3  Î    \P  L    ÿèóÏ$*73533#3#535#3533##"''3255#&'XXXiæhX”33 ”5  ±P8  4 ;ÿèí¢%+73533#3#535#3533##"''32655#&'JABBM±PAz## z)  =* &\ÿéóÐ$*73533#3#535#3533##"''3255#&'i666?–C6 e  e&  ²N<  8  gÿéóÐ$*73533#3#535#3533##"''3255#&'s122:‹=1 ]  ]%  ²N<  8  mÿéóÐ$*73533#3#535#3533##"''3255#&'x///7…:/ Y  Y  ²N<  8  [¼ 7#5##55#35 ¼±¸I8888’ÿéóÐ$*73533#3#535#3533##"''3255#&'š %`( >   >  ²O<  8 sÿéóÐ$*73533#3#535#3533##"''3255#&'~,--47, U   U!  ²N<  8   ÿéóÐ373673##5'675367#33##"''3255#53567#GŠ  =ZmAA  KKU¶ #i   6 3JÿéôÏ.73##5'67#533567#533##"''3255#Œ[a  $"), =U ((  ,Ïj1.n  7 3YÿéôÏ/73##5'67#5363567#533##"''3255#“SX  %' 8O ##   'Ïg .1|  7 3FÿéôÏ/73##5'67#533567#533##"''3255#‰^d "%,. @X))  .Ï  #Ši,3n  7 3gÿéôÏ/73##5'67#5363567#533##"''3255#—NS   & 5L !!  &Ï  Œd.)|  7 3ÿêðÐ(73673##5'675367#3533#3#535#G‚‹  >G<>>G£H<° &v] =11FFJÿéòÏ$73673##5'67#3533#3#535#](Y^  %"6!""*i+!° †i '->..HH ÿêï™(73673##5'675367#3533#3#535#Ou  BI:==E F:ƒ  WE  * 11OÿëòÎ773533#3673#673267#"&55'675367#535#a#"" 6F1) .5   -# ?2#®  "     /    YÿëòÎ373533#3673#673267#"&55'67#535#v-<)! (,     "1)®  "     5 " jÿëòÏ0573533673#673267#"&55'67#535#67# (7 &$)   # 0*1 ®!!       5    YñÏ/73533#3673#673267#"&55'67#535#(:;;!) 5W$<2 7A4.83 4,^T:Á        ÿêóY&773267#"&55'75'75'67Ô]qr "2<0MOCE !^O*0<        HñÏ.373533673#673267#"&55'67#535#67#,66 9W# :2 6@.:2 4*]S6e 5À     ÿë–Ï=LR733#3#53533#673267#"''67&'#'6553&533&'73#67'675#'6K$$0}A  8H Z1$    Ï###"# &  ./676  ! < ; ˆÿêìÆ775&'75#53#"''3255'6'5&'75#53#"''3255'6Ú  ,   %  .    N 5Å )    5Å -  `ñÏ/73533#3673#673267#"&55'67#535#(:;;"( 2W :1 7A4/92 3*[T:à           ÿìò673533#3673#6732767#"&55'6757#535#%>==& 7V0@7 ;G,5 >9-  %bU>‡  $ *ÿé× 7#5##535#35#׌ŒŒŒŒ55kKôÏ173533#3673#673267#"&55'67#535#|!!!  1 # )   & 62!½     }ÿèëC 7#5##535#35#ëJJJJJC[ Z!1 ÿéóÌ73533#3#535##5##535# iiiXÆZiÉ………¬   Mcc@- ÿé}Ï73533#3#535##5##535# ...)h+.h888­""""Ncc?,ƒÿéóÏ73533#3#535##5##535#ƒ...)h+.h888­""""Ncc?,ÿñg¿73#3#5##5'67#35#W$ 4  (¿#s g "<Ž@[ÿú¡Ï733#3#535#53#5##535#uA'Ï!!!\W X;)šÿç÷Å %73#3#5367#35#35#35#'67&'žT!F$$$$$$  2  Å >BB,     ÿé^Ï"(.767&'7&''67'6776&''67&'H   .'®9!   0+f# YÿéóÏ73533#3#535##5##535#YCCC8…9C‹QQQ­""""Ncc?,Yÿð©Ð!'-767'7''67'67676&'''67&'    -'¥8/, b$ ¦ÿéóÏ73533#3#535##5##535#¦FFª%%%%Nb bD4 ÿéó]73533#3#535##5##535# hhhYÌ]hÎR   &5 5 ÿê…È"(.4:@73#3#7'75#535#735#&'735'6&'#&''&'''6h+'')0<1))+)     ÈX 7 77 w 5ñœ.73#673265#"&55#3'67#&''67#âP% ,'75RH2  ,œ     ;-    ÿçñB/73#673267#"&55#3'67#&''67#0 /" )(42RG-  B       8'  2î¯ 73&'73#3#735##5##5ecÛ©©®µŸ& !'&uࢠ73#735#335335ÁÁ)):((¢-Aïj7#5##5ï·j))ÿçñP073#673267#"&55#3'67##&''67#-¦2% , '43SH0 P   A- !   CÿèèÏ #753#5&''3'65753#5&'#'6Ê M ( /  •mçc(";uC, (:?k×](". %~ÿéíÉ 7#5##535#3533#''65#íIII  Éàྫ*""+ "2DÿêóÐ#).73533#3#&''67&'767#535#3655#335QFHH?A 9 6%* $ =@F+,@+¹J    JN$[=ñÑ"&*73#3#"''3255##5'67#53635#35#”PYV  E  'EEEEÑN I  E )<^Ç7#"''32654'7##5^  !Ç#'z‹cÿéòÏ!%)73673#3#"''3255##5'67#35#35#m%JQ P   = (====° € 5x $CB ÿéìš"&*73673#3#"''3255##5'67#35#35#:ˆ’Œ  s"/@ssss„   _  &d30ÿéòÍ"&*73673#3#"''3255##5'67#5#5#›(/7  " >"""¯  €  7‚ F)Zÿé—¿7#"''32654'7##5— ¿B FÆÖÿé‘Ï!%)73673#3#"''3255##5'67#5#5##FM I 7_777° †  5z &A,iÿéòÏ"&*73673#3#"''3255##5'67#5#5#v!ENP  =_===°  †  5ƒ  A,oÿèö¿7&'333#"&'&'75#  #!)¿ Cd   U ÿéôÄ $(,073#33##"''3255##5#53535#35#33535#35#ÖaP P`$<>^IKÿïðÅ73#3#5##5##535#5#5#àG=)Q)=H…)))Å(›ˆMMˆ›((((M::ÿé‰}#'+/73533533##3#3##5#535#535#5#5#35#335(**++44++P( +v )  )  3 €ÿéæy7#"''3255#'65535#35#æ /----yz 55';ÿéz~#'+/73533533##3#3##5#535#535#5#5#35#335&&((--''B't  '  '  0 rÿéð{ $*06<7#3#3#3#"''267#55#5#5#&''&'''67&'î+$$$$-  [/8  * %{ 2 W       ÿéôÏ+7#"''3255#&'#5'675##535#53533#Þ ?+> :&'7 A(>RddbbŽ8  </Z]5 <=P öÏ"73533#3#5#&'#5'67##535#`bbN5+> =%7 =(6O`º:'2/--- 3':XÿéõÏ,73533#3#"''3255#&'#5'675##535#f;775  !% "$ -!5;·6  --!GQ,4 >P ÿéó,73533#3#"''3255#&'#5'675##535#dffM 9+> ;$(6 A(9MdŠ,  *$;;%*1C ÿ釛,73533#3#"''3255#&'#5'675##535#/22,   ,/‹( ) 33 #->‚ÿéôœ73#&''67&''667#¢@   'œ ,$"  WÿóòÆ 73#33#537#'67#&'&'`SK'›`9  (=  Ɖx5.CQH  ‡ÿóóÆ73#33#537#'67#&'&'c:7l@ % +  Æ(‰x5.CRJ   ;ÿêç°73#3#3##5#'6evZNNUU° 2–! &Kÿèò©%+73#3267#"&'#67'56&'&'Ï ;8 #<$ G6 ©$(/1;  Ž8 T   ÿëôÏ"(73'33#327#"&'#7&'3#3#'6 …KI! .‡¸  •^^eep6BH‹D(:<*9GFR V   ÿèõÒ(.7#67327#"&''67&'#'66553'37&'ìK    ( +T f# /#.+'6$:C6+ (M20   ÿèôÏ*07#67327#"&''67&'#'6553&'37&'íT   !, 2K]ž&  %/#3D1- %,X1  ÿèíÑ27&''37767327#"&''67&''7&''7&¦  6``kh   "-; :, YXABÑ    0  ÿçòÑ07&'#67327#"&''67&'#67'53&53¯ CW    & )H # \Ñ  3#$ . 1,<} žÿçöÑ$*873&533#67327#"&''67&'#7&'3533#'67#wNM   # & w® œ.))9 0.¦<%1- %!F>   r005")ÿèðS17'6553'33&'73#67327#"''67&'#&7dK    " " T  $       jÿéõÒ/57#673265#"''67&'#&''6553&537&'ï(      ' : Ÿ,"5 ! %C'8* ,2M30  ÿé÷Æ27327#"&'5#'6553#3'67#&''67#Õ‹y?@3!S5   &Æ_34);,RLJT,$TT+  $ H  39ÿéøÅ27327#"&55#'6553#3'67#&''67#Ú `! R&*#9    Å^56-&.PLIU,%TS+ :! H  5Aÿè®Å73#3##5#'655#535#5#M^=ÅKjjA( %7KKKKÿè•Å73#3##5#'655#535#5#{$# O$ÅLjj@) %7LLLLB”Æ73#3##5#'67#535#5#v #  K Æ$99$$$$$¡=âË 73#"''3265'3#Ï   .Ës `\½ÿèïÏ 73#"''325'3#Ý    ÏÏ ³’Wÿè¶Ä73#3##5#'655#535#5#cR  3ÄMkk@) %8MMMM ÿ锌73#3##5#'67#535#5#x"" "M!Œ,SS9.,,, žÿéã” 73#"''325'3#Ï 1”‘  |sbÿè´Ä73#3##5#'655#535#5#hL  .ÄDtt @) &7 DDDDAÿè©Â73#3'67#&''67#OZ//D 7   Âz1$b  .:Rÿè¯Â73#3'67#&''67#]R)*= 1    Â{0$b  .:ÿé“Ã73#3'67#&''67#€@; Z L-  "-Ãt."\   ,:K‹È73#3'67#&''67#t9;L@1  'È 0% žRâÍ 73#"''3265'3#Ï   1Íb OI ÿä‹€73#3'67#&''67#t9;+B/  !(€ .$ 6  'žÿë≠73#"''3265'3#Ï  1‰† reEÿç§Ã73#3'67#&''67#NY)-D;   ÃZJ @D  +:Rÿè¯Â73#3'67#&''67#]R)+= 1    Âv."]  .:.‹Æ73#3'67#&''67#t9< B0  !(Æ $1  #ž4âÍ 73#"''3265'3#Ï   1Í€ jX ÿéóÈ59=73267#"&55#'65535'673#67'7&''675#735#3353 $?J      Èr3(  0=`l<$!>xG U  555[‹Ç7#53#3'67#&''6:#t=;ME4  ·2 %žhâÍ 73#"''3265'3#Ï 1ÍM 9:ÿèóÌ73#3#535635#'6ÄGE–0Bå)R>RR -*Ì8v|8S ÿéóÌ73#3#535635#&'ÄGE–0Bå)R>RRQ$"Ì8v|8TaÿêêÏ!%733#5##5'67#&''6635#šE2OC R 8  CCÏ :c WC   ¬2PÿêèÏ#733#5##5'67#&''635# M5TN W#B  * NNÏ:c UC  š2 ÿéÝš $733#5##5'67#&''6635#e_ 8eu |,S   uuš+R B2  …&sÿêíÏ!%733#5##5'67#&''6635#¨9,F8 G,  88Ï :c VC   ®2[ÿêóÓ73#3#3##5#53535#'65#€^/,,77N8$ 7%Ó*0==B*!k00ÿêðÓ!73#3#3##5#53535#'65#@™LGGXXrUB  UAÓ )/==B) "l//ÿèãR73#"''3255##5363#735#w_   R*llHHR F  1K[#+ ÿèãq73#"''3255##5363#735#U€   /hh@@qb  Mgw *9ÿèî{ (/73#5##53&'3673#&''67&'67#67#…Y¤^aG~/ #& +%)C 9 ! :y B{#%4        LÿïôÏ 733#5353635#35#35#˜ L ¨) "''Ϧ¦»“““““ ÿõ•Ð737'6353675#75#75#B< =K ÐŽ Ÿ²ˆ†„‚RÿïôÏ 733#5353635#35#35#š H ¢& &%Ï¥¥»“““““_ÿïôÏ 733#5353635#35#35#  C •# #"Ï¥¥¸“““““?ÿïôÏ 733#5353635#35#35#‘ Oµ- %)*Ï ¦¦»“““““ ÿðóe 733#5353635#35#35#jfæ8 -""5##6""e HHV55555 ÿõ†Ð737'6353675#75#675#=5 6B    Ð Ž Ÿ²ˆ†„‚ÿéõÁ73##5'67#&'…l,-NÁ ´$/G5('%}ÿîóà 733#537#537#37#37#^ v##" ##ÃÃPOOO±P|ÿèðÏ73533#3##5#535#7&'7'6‚***00,,*  `  ‚MM*JJ*N   rîÑ 733#535365##5##5#ggÜ5b"##Ñ 66 B%%%%%%ÿéðn"7'6767&'#''6'6y*-ePK # < / 3# $3 9O     'A]    ÿõoÐ7327'753675#635#75#3++6Ð Œ  µЇ†‚€eÿéõÏ#T73533533##5##5#3#735#335335#67327#"''67&'#&''6553&533'7n""{{"5      &$ 4À 9>    "#$  ÿêóÐ'+/=AESW[imqu735333##3#3##5#535#535#535#535#335353#3#5367#35#35#73#3#5367#35#35#33#5353635#35#35##STT^^iigg^^SSiiSfAAA¶\#%Y"'8888k\#%Y"'7777+VåK>%%7$$6%%É   ;;    A --. --%% .$ÿéÛÐ 73#5##53635#35#35#lc=1Ð ÉÉD#Y#Y#*E×Ò 73#5335#35#35#j `­6"………………Òxx$21+`ÖÒ 7#53675#3535#Ö«6K……………À``   $ ÿéÐ 73#5##53635#35#35#@3???????Ð ÈÈD$Z$Z$ÿéáÈ73#35#535#53#5##56m#*GGœEEBVœ/È:CAAÍÇrÿéìÈ73#35#535#53#5##56Ÿ$$P##!6PÈ=CC?ÍÆ C½r73#35#535#53#5##56r%%T%%#6Tr f ` ÿçöÐ(7#5#67&'67'5'67##537æH ,J$   F A] °7$& "4W S  O K&9 FÿçöÏ)7#5#67&'67'5'67##537ï0   3   6/I¯6$ " !/Q P  J  K&8 UÿçôÏ+7#5#67&'67'5'67##5367ï+   .   0(A¯6$ " "0O P  H  K&8 bÿçôÏ+7#5#67&'67'5'67##5367ð'  )   +#;¯6$# !/O P  G  K&8 ÿìíÑ -73#5##53&'732765#"&55'75'6‚_²cX &+np * 3$X[:UÑ -- 7(  1% 6  '\ÿëòÐ -73#5##53&'73267#"&55'75'6«6^:3CE  9=.Ð5! 4 <&1! 3%mÿëòÐ -73#5##53&'73267#"&55'75'6­2U43 68  /2 *Ð5! 4 <'0 2  &ZÿëòÐ ,73#5##53&'73267#"&55'75'6¥<k@9@B  $47#4Ð5! 4 <& / ! 2  &BÿéôÑ 7&''63##5##535#–#. ,#!) :\\p[[[Ñ&(,(+bb>, ÿê£ 7&''63##5##535#V& "$1 TT^CCCK K.bÿé÷Ñ 7&''63##5##535#¥& #" .HHZEEEÑ(),(,bb>,ÿèõ‘ 7&''63##5##535#ƒ18 85.;G kk‹€€€‘  L M1 iÿéôÑ 7&''63##5##535#¦# ! + GGYBBBÑ((*(,bb>, ÿéXÎ735'673#3#'67#535# $  Š$ +)4 ))¦ÿêòÎ$7'673#3##"''32655#535#53 %    ® ))< 8) löÑ7&'#5'63&'3#735#~/; b QP:››vvÑ  !)  ÿêŒÑ 7'67&3##5##535#M +=DDR666«$'*aa>,‚ÿéõÑ 7&''63##5##535#³  "99G111Ñ''-),bb?.«ÿêæ 73#"''325'3#Ô  )Œ  |nrÿé÷Ñ 7&''63##5##535#ª"  'CCS<<<Ñ)),(-bb>, ÿèuÏ&735#53533#3#3#&'#5'67#535#"$$%%$$'' &("Ž  JJ (mÿéöÑ 7&''63##5##535#«# ) FF\DDDÑ ##&$)cc?,/ÿõÐu 7&''63#3#735#~"% '$# 7RR ffCCu  4 ÿô}Ð 7&''63##53#=#C 'QQP+Ð ,eb`** ~÷Ô7&'#5'63'3#735#~48 'T! P; @££Ô   % \óÑ7&'#5'63&'3#735#€,< ` OK0™™uuÑ   . ÿò÷Ñ 7&''633#3#53533~28 74.= Q MM`Þ'/Ñ -10+:<ddYîÏ7##5#53&'73##''67&'ŽHb`KU•£DD  D7 " \ïÏ7##5#53&'73##7&'''6ŽIb_J5{£==  =1 JîÏ$*7#53&'73##"''3255#'667&'''6ZEb`F  & h{ £  4  /'$   RíÏ$*73##"''3255#'667#53&''67&'ƒ^E  % Da9 œÏ 0  +%"   +  F]óÐ73&'73##5##5#'67&'U= B1&   w  ³  CCCC  dÿéõÑ$*73##"''3255#'665#53&''67&'® 5%   )9  s  Ñš  •RF@O E7& -*.03-oïÏ7##5#53&'73##''67&'ŽIa_JV›©11 1(   ÿîôy!&+07'67&'#3#3#53&'#535#73&67##35#C H/ 37 3J=Þ2L27O!0(A #   $ Q  ;ÿçñY73533#&'#5'67#NCE<' '1 37J $DBÿêòe7'673&''67&67#B +m #4?+(>3"3`2     ÿèzÏ&735#53533#3#3#&'#5'67#535#'))))''++  ),'Ž  IN ) ÿégÐ&73533#3#3#&'#5'675#535#535#!!!!  !!¸S= ( jXõÏ!73533#&'#5'67#7&'7'6n78, +  `  22$">  [ÿéôÆ#'<B7#'6553#3#67&'#67''3#3533##"''3255#&' €nn3  /  YY D   D zE4 6>_+  +%_d$ !  TÿèôÐ9Up734733&'33&'73#67327#"''67&'#&''67#767767&'7''67'6767677'7''67'67_ :      %        L   L (\=.   "/    "+e%% bÿçõÌ#'-TY_73#33#&'75##53537#35#35#35#&''33265#"'3&''67&''67&567''6j„>7 l '2NNNNNN&     D  )"  O ÌC   C!          (  4  PÿèôÏ%;NR73#'6553'3533#&'#5'67#73533#&'#5'67#3#3#5##5'67#35#°6w?"   9    9tE>+  )++Ï M>1 0;X8 $"   $ A < $ 0ZÿéôÏ%73533#3#3#&'#5'67#535#535#e;<<22>9% !# (7=22;¸(%QP&+oÿèôÏ%73533#3#3#&'#5'67#535#535#y222--50  *5..2¸/(OY**FÿèìÏ*73'67#&''63'67#&''6œCo eA  3" ?"|s>   0Ï = / E G9   WÿèíÏ+73'67#&''63'67#&''6¢=dY9  ,9n g6   *Ï = /  E G9  ÿèßÑ073'67#&''677363'67#&''6 S'Œ#U   .M,›’&N   ;Ñ = 0   Z H:   €ÿèïÏ.73'67#&''63'67#&''6²-*@%   (-I"  Ï(0   C / :   ÿèzÏ073'67#&''63'67#&''6=.)@%   ).I!   Ï (0   C / :  kÿêìÎ73#"''3267#'6##535#”P  E  @.Î #&WfF6`ÿèîÏ*73'67#&''63'67#&''6¥:^T4   (6h `2  &Ï = /  D G:  rÿèíž*73'67#&''63'67#&''6­/PF*   $ )[Q'   %ž/ !  3 7 *   ÿètÏ,73'67#&''63'67#''69+&<#   &+D   Ï(0  E . :   ÿæé¤*7'673'67#&'673'67#&> 4*M.z g/K! K:<7Ž €4? o  1 $ @! >2 PíÑ*73'67#&''6&''673'67„E \ P<%2   :2#c X Ñ 9 ) T "G5uòÏ*73'67#&''63'67#&''6±2RI,   &!*[R( 'Ï3 &   8 =0ÿæä†,7'673'67#&'673'67#&< 4)B,p a*C   M= 47‰ w6<X  )  6 2 &  wõÏ 7'67&'&''67&'76\)&k $ %"+. >,,? 5" Ï         lÿèóÌ73#'66556#5##535#ä '3__  >/***Ì D8 7F:ki jI6 ÿéÊ73#'66556#5##535#‚ '5\\  >,***Ê"B9 6F:jooI7KòË73#'665563#735#ç 7J}}  T6hh@@Ë3* +6/WS-JÿéóÊ73#'66556#5##535#é 3Exx O5AAAÊ!C75E9ippI6eÿéóÊ73#'66556#5##535#é ,:ff  D/555Ê"C7 7E:jooI7:ÿéóÊ73#'66556#5##535#é 8M……W7IIIÊ"B7 7D:jooI7\ÿéóÊ73#'66556#5##535#é .=kk  G0888Ê"C7 7E:jooI7 ?íÏ73#'665563#735#Ü Jdµµ  qQ——rrÏ&! ")#C>  Ï73#&''673#&'#'6*$ M' Ï  &   EƒôÐ73#&'#'6#'673#&h. f  1 Ð  K“òÐ!73#&'#'6#'673#&j,a /Ð     Jÿéó›'+/735333##3#3##5#535#535#535#535#33535Y<;;@@IIKKAA<˜~‰ #  BÿéóÑ-157'67333##5##"''3255#535#535#53673535u !I&)   88II-@ )))¬ !  .9 #   +.\ÿéóÑ-157'67333##5##"''3255#535#535#53673535ˆ =#"  ..>>'5 """¬   .9 #   +.iÿéóÑ.267'67333##5##"''3255#535#535#53673535’ 8    ))77#/¬   .9 #   */ÿéñÑ-157'67333##5##"''3255#535#535#53673535¯  (    $$¬  -: #   *.eÿéóÑ-157'67333##5##"''3255#535#535#53673535Ž  :!   ++::$1  ¬   .9 #   +.tÿéóÑ.267'67333##5##"''3255#535#535#53673535›   3    $$11)¬  .9 #   */|FðÉ)733#"&55#'66567#53&''67&'Ô   @X  É   Q  XÿèñÐ#)/733##"''255#'67#53536#3'&'&'˜; E6EE&    Ð QO L:, .-Q#=6 I EÿçõÐ#)/733##"''255#'67#5353635#&'&'C S#!RR"    Ð SR OA(:S `@ J ÿæòÓ $*0733##"''3255#'67#5353635#&'&'qQ"" u $%5'uu9    Ó SR O<. .0Sa@ PyÿèõÏ7&'67&''67'&&'¯     Ï!93'IR0#,uÿéóÈ 7&'''667&'7''6Ô/ '+ÈBL>-+U! (0  *rÿèôÆ"7#5##53'>33267#"&5á<!    Æ‹yy‹(R.*  #,9 rÿìõÑ (7&''6#3267#"&553#"''326°  */1%  1 WÑ '&$&HY  o6 wÿéóÁ73##"''3255###535#w|  ZH-Á«  §'WfF5zÿèéÆ 7#5##5##535#33535#335é.I.ÆœTTœ<***f***yÿéðÇ$*73#3#5##535#35#35#"&55#'655#5#3yw$!J #5 J  JÇ"©©"""§* 7+ "772gÿìõÑ %73#53635#35#3#3#3#535#535#¡8s&KKKK6//;Ž?//7Ñ \\,97hÿíòÐ273673#3#3#3#3#535#'67#537#5367#53&'› ;79IO M(2y3   $ "- Ð "" !  mÿèóÏ#'+/7;?73533533#3#535#5#35#33533535#335335#5##535#35#m*))#y#*K""S" DDDDDÁOO -/[ [.gÿéïÇ#173#3#5##5##535#3#'3#3#73#3#5#535#535#g†;=+(::U**L((**M**Hr__bb_ÇEE4 a `ÿéõÑ (:IO73#53&'67#5&'67&'7''3##'3267#'67#3353#5#'6535#¬=‰8  /    \0  JN KJÑ   ,1 ! &" =/! 7i% " bÿéóÑ.26:>BJNRV733#3'67#73265#"&55'75#'65533#735#33535#3353#53535#35#35#™44E2$% ([[%:% w   Ñ     J>/ 17UH<# ! !$$$ ZÿèòÑ #8\afkq733#5'667#35#7'53373267#"&553633#3267#"&55#'67#5'67#367#335&'€F z A9VV# #=   KE,  , ") A <#4'  Ñ $   /  $     # '        oÿéòÏ $*0733##"''3255#'67#5353635#&'&'¯(  8"88    Ï MV S>/ /3M Z; I HÿéõÏ $(7&'7&'#"''3255##5'6735#35#É,   I & IIII# 1  9“6,ERÿññÈ73#3#535#535'2â $FFA–AEEEÈHOOGÿçðG73267#"&55#'665´  EG>  0!  (†ÿòòÉ735'273#3#535#†-./ ,,(`%-dHKLLM\ôÌ735'273#3#535#MJDD #JJ@’?Jž  STÐ 7#5'6A  $ÐT> ŠÿñôÉ735#'273#3#535#Š+,+ ++%^%+hF HRR]ÿéŽÐ 7'67#p  g 28°[ÿéõÏ #*.4:@7#5'673&''67&''75667#'3#7'6'6'6wG*     7F   ( *" 4 6Ϻ‰ 04     & ˜Z     ) ÿçëk 73#735#35#35#'67&'*¬¬„„„„„„ 8 *`))('k`D & %     ÿççQ7#5##5'66&'Ñ{K17 4+-' *)Q?.2C!%  ÿççc7#5##5'66&'Ñ{J26 3+!+( *)cTCFW'- $   ÿè]Î 73&'7367&'#5'67#   .¯ #    fd >•ÿñôÆ735'673#3#535#•& , &&!T &cG JLLPÿêóÏ"(767327#"''67&''7&537&'ìL   ", 5 78š  '+$!4$$##;  R<óÑ)7&'673265#"''67&''7&'7¾  ?R  "" 42Ñ     #     @YÐ 7#5'6G  (ÐfI %Sÿéó“)7&'673265#"''67&''7&'7¾  =Q   (' 22“  %SÿèðP(767327#"''67&''7&'77&'7Ó<  ( * 0+B        ÿç[R 7#5'6J  %RI7 pà¡ 73#735#335335ÁÁ)):((¡1PÿéôÏ 7#5'673533#&'#5'67#~ ))#   $Ï ª‚ 1 11D2{w-,;ÿéñ$ 7&'''67&''&'Ò  x  $   ÿèôÏ73533#&''67#7&'•!%$"  #!J  ‹DDP,#87%3KJ vÿéòÐ73533#&''67#7&'})3- )! %+(W ŠFFO-&?B#'XP DÿéöÏ73533#&''67#7&'S;MIA7; > 9p  ŠEEM-+GC-2GOHÿé‡Ñ 7#5'6u  Ñ¥z 8jÿéôÐ %17#5'673673267#"&55'673533##5#Œ /  !  @5555ÐT4'  !  c>>^ÿéôÐ $07#5'673673267#"&55'673533##5#… 2   $ F:;;:ÐS5'  ! d>>RÿéõÐ #/7#5'673673267#"&55'73533##5#  6 (NAAAAÐO5(     c>>ÿéîÐ +77'67#7376733276767##"&55'673533##5#8 + K '5  rceec‰") Sƒ1       ]::ÿê¦Z7&''67&'76  . * Z    ÿéò¡!73533#&'#5'67#7&'7'6bdV+0 /.%8 5$Q(  • ]DD.5UW1 )L   MÿéôÏ!73533#&'#5'67#7'6'&'`7@1# '& %'t Y  xWW9!#"8^"  ÿè¹f "7&'7'63533#&'#5'67#? m vF<<$ $ $9f    )),6D€òÑ#7#53533#&'##5#'67'6'&'t#EE- - $ m S  Ÿ!!  ;  WÿéôÏ!73533#&'#5'67#7'6'&'f6<- #" "&o S xWW:=pp=#"8^"  ÿéïÏ!73533#&'#5'67#7'6'&'dfS 3 7#!75O³ƒxWW7!@uu>$"4]   ÿéòˆ!73533#&'#5'67#7'6'&']_O"7 9%!9 4"L™  [  Q77%.NL)%<   PêÑ!73533##5'67#7&'7'6'___!6 . I%  $@¡0031$@   8(ƒÿéëÏ 73#5#533533ØUš±¡ÄÄ}ÿéôÅ733##"''3255#53567#Š`11  44JÅ\ Y"mÿéôÏ73533#&''67&'765#|="" !" "  <Ÿ00D+" 0}ÿéòÌ73##5#535'6Ú 2200 :Ì ?rr; gõÒ73&''67#'6e[1$ (92A f8T 7Ò   *  ÿéòu!73533673#&'#5'67#53&'E   1R"6 :$!; ;O3 g.. !'BB(  nÿìðÏ"73#"''32767#'67#'67##'6”S   D =1 +  Ï‘/*cn73cM'#C dÿîòÄ 733#537#537#33535#wfŽ!0(//)ÄÃOOOO°OnÿéöÏ)7365333265#"&55#'67#3533##5#x.  - #4::4²  K  =</e%%??uÿóóÎ 73&'73#3#536'&'{.1sV *~A2¤ G5>?66:2dÿéõÏ73533#3#&'#5'67#535#s1550%" %",1©&&&*%&-eb2$/&YÿèóÅ%7#3#3#"''3267#'667#'6655óji94   "  ÅX!B&07A"D5 1$^Pÿè®Ï"73533#&'#5'67#7&'7'6U"     K ~QQYY#+QÿèRÇ73#3#"''3267#735#<%.  / #)ÇK#L%4E)®ÿèòÇ73#3#"''267#735#²<%.  / #)ÇK#L%3E)YòÒ!73533#&'#5'67#7'6'&'\\H!3 8$"80#F¢ r  ¨** $-/%;    ÿçðj#73533533#3#535#5#'67&'&&://CÞ:&t:) *^%! $#V    gÿèôÆ!%73#3267#"&55#'67#735#35#35#zi  ) $CCCCCCÆ0   68+fBClÿïóÎ!%+173533533#3#3#5#535#35#35#35#'67&'q0jh{ (000000   2 µY6IY56(    cÿèóÐ*F73673#53&'''67'6776767'7''67'6776767&'Œ " ‰ )   X   Ъ %.,C' %.,C&\ÿëöÇ !%)-7#'6553#3#3#535#535#735#33535#335ór^'**2u3))'%:%ÇSD4 5>_!h<FkÿêöÏ!%)-BH73533&'73#3#5##5##535#35#33535#3353533##"''3255#&'o5 81151O1j]   ] » \\.-?     fÿèðÇ8>D73#3#"''3267'6765#535#5#53#3#"''3267'677#5&'7&'k=,+    ,,*p,?.0    09 O Ç:i   <:j  .DJP767'7&''667'7&''6'67&'7&''67''6'6'67'6š   ).8   A   & &'' 9) )+!: 91&T PÑ          2 ( wòÒ "7&'7'63533#&'#5#'67#=  Ž œaaK49!$5,AÒ     ÿçïŠ#'+1773#3#3#535#535#735#33535#3355#35#'67&',¦ ++=Þ;** 77K7‚77K7 @@@+ 'g#' )%ŠC    ( % (  "    fÿèóÏ#'+/7;?73533533#3#535#5#35#33533535#335335#5##535#35#f,++$~$,P##X# IIIIIÁOO ./[ [.SÿçöÑCGKQ7#35#535333##67&'#"''32655'675#535#'66553'73535&'ów/$$+ %     $$/ ?M ¾4 ##   %*    B3 0"\  2$*  _ÿê•Å75#53#3#"''3267#7‚2 "   #'I*K 9L_ÿèõÈ!%)?735#53#3#27&'7&''675#735#35#335'5#53#3#"''3267#7œ E  !' !! Z2 "   #tCCN! #p!€,,,*'I*K 9L ÿéòS!73533673#&'#5'67#53&'B ,P#3 9%!; <O. Q     64\ÿçôÇ)-159=73#3#3673#3#5##5'67#535#535#735#33533535#35#j„M(( 4 CH *>-&&%%OHHHHÇ5 [ J –0 eÿéïÇ'<BFJNRW7#5##535#3#3#&''275#535#535#3533##"''3255#&'735#33535#335'#2ïgg+$$#  *##$$,=  = #5# ÇÞÞÆµ  <  <  }  b " jÿéóÊ #AEIM73#5'675#73#5'675#&'7&'3&'73#3#3#3##5'65#5#35#t9'B9'0R1 ,*&&&&,d 6&&&&&ÊW  W     4 T   ÿèpj#73533#&'#5'67#7&'7'6&    O >,,  )16    ÿèYÏ"73533#&'#5'67#7&'7'6   <}RRWU"-QiÿéôÏ!73533#&'#5'67#7&'7'6q17'    j  xWW9!Bwv?'!9[   xïÏ#73533673#&'##5#'67#53&'D    ,A( 3" 9 .?- Ï      ÿêòœ"&2J7#3#'6553&'75##5#35#3353357'5337367326767#"&5ì>7°_))))<)#~3% 2  %  )… 0*! %/:   A ?      ÿçïÒ#'=J7#3#'6553&'75##5#35#3353353267#"&5536'33#67'ïC:·X+,,,?+( % % „33$ Ã3C< 3@]$#.   9 0ÿèñ 7&''&''&'''6Ú     &      ÿçïÒ#'=J7#3#'6553&'75##5#35#3353353267#"&5536'33#67'ïC9¶[---->-) %  #  ˆ99 ' $C< 3@\      .ÿèôP!73533#&'#5'67#7'6'&'6RVH- ."/ -D‘ d  /!! -- 0    ÿçõƒ"&<H7#3#'6553&'75##5#35#3353353267#"&5536'33#7'íE:±Y))));)( ( !&Š664# t -% ':  !   '   ÿçðÊ!7&'3673#7&''67&'vS!;à 8!#)e*!#'Ê#,,$g/22(j q ,"$'9ÿé’Ï 733#3#53533367'67''6iT ;   Ï775N J$”ÿéóÇ!7#5##5367#53#3'>&'ì(T!   ¡‚pqƒ  '@'  ""/ÿêÊ $(.473#3#53'#735#35#3##"''3255#735#&'''6EL Z&****I  ((3  4 ÊF* ( F2&  !(     Dÿæžž#)/73533#33#53535#35#35#35#35#&'''6LZ &&&&&&&&"    “  __ $ ! ! "    &ô73#3#5##537#'67&'×^LƒEca e["?+ )=*/ $  "™ÞË 73#735#'3#735#ŠTT//zTT..Ë22 ÿéß' #53#=##53#=#›V1gW0 >>  >> ÿèîÇ 7#53#3#5##533'6656&'u]Ñ^ Q}> j 8,%.& (-´|hh|&,E ) - ÿéoÏ 73'6573#'3# E#ÏpF0 *?pæÙ¿ ÿèvÂ73##53#67'5#'66RR f   Â>Z kA40 ÿê|Í 7'67&'3#"''3267#'67#1 0*O  Í5" ** &%R` IM"B@ÿéÏ73533#&'#5'67#F  22 ni'2ÿåïc 7'67&'67&'7''6]#*/a%)#+'-1'BK&c ' '%  iðÏ 7&'''6767'7&''6ª &#$H. /4& 2;Ï" "!  •ÿéõÈ 7&'''667&'7''6á %  È@F;*(V" )0 *hÿéó’ 7'67&'&''6767&'‹ N  ).’-(,1R (   ?>  ÿüyÇ 7'67&'67&'7&''6,<  %%Ç?"%2%, .$<O #* .ÿøsÆ 73#53#3#'35#35#735#[X_(## Î,PP,¨,2 ÿé|Ð)76767'67'67#53&'73#&''6(7  +,: 0    BnJ     !OÿèíÏ73#5##535333'>&'£<U/JXM  %¨kZZkBB'> fÿåðÏ 73#5##535333'6656&'°3E&=J  !$§jZZjD@8  "$\ÿåðÏ 73#5##535333'665&'«7L)BO ! $%§jZZjD@2   ##ÿèŸÎ(.47&''67&'763533##"''3255#&'''6‚ + Y855   8i  C Î   [N  J  ! hÿéóÎ(.47&''67&'763533##"''3255#'67&'×  \:66   : ]  Î    ZM  H & #! !dÿèôÑ!)73&'73#&''67&'#67#3#'3'65m5 : !! C ? (A$!¹    Dgg. $ ÿèkÎ(.47&''67&'763533##"''3255#&'''6V    ;###  #I  /  Î    ]P  L   UÿêòÏ 57&'67&'67&'63'67#&''6~   =   :   AMh _E )Ï   = M?  QÿéêÈ7#"''3255##53#3#735#ê  q ZZ HH""ÈÅ  ­Ìß,W3ÿèä‹7#"''3255##53#3#735#ä 'wwggBB‹‹  t‘£#9Kÿé´È7#"''3255##53#3#735#´ E1100ÈÅ  ­Ìß,V6ÿèâÏ#'7#5##535335335#33533535#35#35#â;'v'';'''';'';''¥½½****N;;;;;ˆ:::::PÿéíÏ#'7#5##535335335#33533535#35#35#íw/].w./¥¼¼****N<<<<<Š<<<<<rÿéïÏ#'7#5##535335335#33533535#35#35#ïV$F#V##¤»»++++M;;;;;ˆ<<<<<ÿéàV#'7#5##535335335#33533535#35#35#à:)t((:))((:)):))Jaa $8\ÿéôÏ 733#3#533#&'#5#”@@K”58˜K* 9Ï# FdnÿéñÏ 733#3#533#&'#5#77@€-/ƒ@$ 0Ï # EdÿéóÏ 733#3#533#&'#5#§//7q&(t8  )Ï # DdYÿæöÏ$*73533#3#&''67#53655#&'7'6n188?<' '2 2271  d  ¯ ;/1,(;   -öŽ73673#&'#'67#Po<' 1*= -@{   '%iîÈ 73#3#535#5#35#335335ÙE7À8C‚-6$$6-$È<<* ‡òË 73#3#535#5#35#335335 åG8Ç9HŒ28&&82%Ë ++  ŠòË 73#3#535#5#35#335335 åI:Ç;JŠ.:((:.'Ë ((   pòÉ 73#3#535#5#35#335335 åI:È;I‰.:((:.'É99( ÿèõ‘'+/4:D73#3#3&''67&''67#5'635#35#67''6#5'6uiqnLN ! +!,"  PPPP †   ‘ 9   2 %  -  m P@ ÿé€Ç 6<73#3#535#5#35#3353353673#&''67&'67#367o#h <    ]&: %  1 ÇBB1 F    ~ÿéòÏ!73#"''32767#'67#'67#'6›K   = 7%  Ï–. %mq;6fG$ < "c]óÇ 73#3#535#5#35#335335c-&ƒ&,R%%ÇFF5$$$$$WÿêïÇ##535#53#3#'#3#;5#35#Ög(-˜/))Q¨##¨Ë#tttt]ÿèåÄ73#735##53#=#eyySSˆbÄY5·mm66§ÿðìº 7#5##535#ì  ºÉʦ”?ÿéôÏ'7'67#53&'73#67&&'#67'h  -5D  HC%"  ! K #0$ "# HBa   föÐ73#&''67&'#53&'67€`$'8C0-< 1&`##Ð     #ÿéâd 73#3#"''3255##5##5##537##¸Vc  %%%HNd>  '<<< %4Å wwwww¡ÿê}Å"73#3#"''3255##5##5##5367#o04     !+Å wwwww¡r!òÆ "'73#3#535#35#35#"&55#'75#3'#65r€'!s"): M  M5Æzzƒ,&,(,3 gçÑ 73#7&'''6'6uMnŠ =s vÑ=5  #  mãÐ73533#"''3267#'67#73#735#$5   !& #~QQ++¿7 /$F$ÿíò„&7773267#"&55'75'75'6Ð -2`btv 4>$SVIL#&f„       ÿìòu&7773267#"&55'75'75'6Ð-3bdtv. 9)PSDG^u       KÿéôÇ$*73#3#5##535#35#35#"&55#'655#5#3K©5,p-6H,p pÇ"©©"""§* 7* !772dÿéòÇ$*73#3#5##535#35#35#"&55#'655#5#3dŽ+%[&,>$[ [Ç"©©"""§* 7* "772rÿéñÇ$*73#3#5##535#35#35#"&55#'655#5#3r&!Q"%8"Q  QÇ"©©"""§* 7* #772[ÿòõÅ 73#3#735#5#3#e‰‰ qqJJJJ)ššÅuC Q.ÿòìÅ 73#3#735#35#3#ÊÊžžvvvv2ØØÅuDPMÿòî— 73#3#735#35#3#.¢¢ŸŸwwww2ÜÜ—a9?9HÿòòÅ 73#3#735#35#3#S˜˜ ~~VVVV,ªªÅuDOMŽÿòôÅ 73#3#735#35#3#bb RR----ffÅuC!S!O^ÿïóÎ!%+173533533#3#3#5#535#35#35#35#'67&'c7wuˆ +777777 5 µY6IY56'     E€È)733'67##"''3255#'67#53&'767#b,    -   KÈ   )  %'  vÿòõÄ 73#3#735#5#3#~qq``;;;;#ÄuC Q/iÿòõÅ 73#3#735#5#3#q}} iiBBBB&ŒŒÅuC Q. ÿñòÄ 73#3#535#5#7'6'&'ÐDPæNDx \ ˆÄ­­­­­Š6+ *2,.1*YñÆ 73#3#535#35#'6'&'ÎDNãMBU""] ˆ  ÆHHHH PÿññÄ 73#3#535#5#'&'7'6_‹*1¡4%M+    Ä­­­­­ˆ-/2+4* )]ÿññÄ 73#3#535#5#7'6'&'f„'.”,#I?  a  Ä­­­­­‰8%.--/2+\ÿèöÏ#'7367'673#&'#'67#3'6673#h-$;0G$  $ ,$&!  1“,%+3( &*kUñÆ 73#3#535#35#'6'&'ÎDNãMBU""] ˆ  ÆLLLL Kÿïï‹ 7#53#3#537#37'6'&'~*’,5¤3(3 q  xvvva+ "# %Kÿêï$*73533#3#535#3533##"''3255#&'Y;<W$ ¤     < [ÿëóÆ#7#53#3#'655#5373#3##5#535#‚</ '.@´DA)$5VDrrDQðÈ!7#53#3#'67#5373#3##5#535#F*^!"") !/0Bc+00''%¶"-66ëÊ7#53#3##5#537#53#3##5#53?'`'((**q&_&((**» ÿçõ"&<H7#3#'6553&'75##5#35#3353353267#"&5536'33#7'íE:±Z*))):*( ) ! „664# z /& "(=  %  ,    ÿçïÒ#'3I7#3#'6553&'75##5#35#33533533#67'73267#"&5536ïC9¶[---->-)™99 E£ %  $   $C< 3@\     '   +ÿçïP!73#735#367#53#3#&'#'67#JŠŠhh'LE¦O]K7@D 5@P! 1  FÿéÎ7'6'67#p  %Î-a "' xÿéóÁ73#3##"''3255#šOO c"   -Á.k  hÿïïÏ73533#3#535#3533#3#535#$QQQaÖ`QSSSeÞdS­""""b$$##"‰ÝÉ 73#735#335335"»»%%7%%É@ ÿè~¤#'+/5;733533#3#3#535#535#5335#35#33535#335'67&'%/)c)1(?(13¤ HH !K,"    Hÿõ§Ï!73533#3#535#3533#67'75#T V")2&±W# &Tÿô¶Ï 73533#3#535#3533#7'75#_$\$"*4(±W$ 'bÿéóÊ (73#735#35#5#53#3#33#"&''6~ee@@@@ 4|4))&' Ê\6:OA"mÿïôÏ73533#3#535#3533#3#535#~...1~9.0//6‡=0­""""a$$$$<ÿùÄu73533#3#535#3533#3#535#F0007€60222;ˆ:2g2=Á¤73533#3#535#3533#3#535#K,++5ƒ:,---7ƒ8-DfõÐ'77&'3'33#673267#"''67&'#36533#'67#Ù  `B33      C!Ð  +/&-$YÿéöÏ!'573'33#67327#"&''67&'#7&'3533#'67#dA43     Ap  d$ £,,<'##2   K<   k%%;0gÿéöÏ#)773533#67327#"&''67&'#7&'3533#'67#hA33    Bo  ^ £,=%3! #2 #H<   k%%;0iÿéöÏ &473'33#67327#"''67&'#7&'3533#'67#r:--     ;g  [ £,4$6 #2% #H<   k%%;/sÿêóÏ!'773'33#67327#"''67&'#7&'36533#'67#v7..      7b  T£,2!$5"/$   K;  i6 *ÿæõÏ%+73533#3#&'#'67#536565#'6'&'#TUUhUJPM DQYT y  ¯ 1,!7<+   ÿëÏ"(73533#3#&''67#535#'6'&',1179 $ ( 25,\  A  ²;  (-D  ˜ÿéñÃ7#"''32654'7##5ï  .Ã@ DÇÚƒÿèôÇ%*733#"&55#'6653&''67&'#367Ü    ]     Ç<  0$  +d1   $bÿæöÏ$*73533#3#&''67#53655#&'7'6v.33;8# $- 0 04.  ^  ¯ ;01,(;  eÿéóÐ:7&'77673267#"''677&''7''7''7&'3 0<34;:   % ;<--,,Ð       "'    &pÿéóÐ:7&'77673267#"''67&''7&''7''7&'3Ç ,7//65    $76))()Ð      "&   &ÿèðÑ$A7673267#"''67&''7&'73#32767#"&55#'667#×b  ) 7# IAYÜM$".(EÇ         h5 <#" MÿëôÏ#@7673265#"''67&''7&'73#3267#"&55#'667#æI   ,*=•7          e8 >!%  ]ÿæôÏ#?7673265#"''67&''7&'73#3267#"&55#'667#ã<    "!7,   Á        e8 >#(   ÿè÷Ï">7673265#"''67&''7&'73#32767#"&55#'65#n/   ! 1m,<G: ¿   &    a9   >&& 4éÃ)/573#"''3255'675#'3#"''3255'675#&''&'¸1  81    C  +  Ö *>– *>  BÿåôÑ#>7673267#"''67&''7&'73#3267#"&55#'667#àH    1/G 5    (Á    c8 >#)  ÿèíš$>7673267#"&'''67&''7&'73#3267#"&55#'67#Ø\   +8 8# JA [×M$ I > B“      T ". ]ÿéôÏ'+/735333##3#3##5#535#535#535#535#33535f177<   ™ " ]J_ÿè÷Ï%+173#3#'6553&'#53&'367#'6'6'6® 4r 9 9 8 2,' ; 4, (> ?Ï 7-$ #,@ G'   iÿçòÇ 5;73#3#535#5#35#3353353673#&''67&'67#367oƒ)"w"'H!!p.G-+ ! $:ÇCC1E   jÿêõÊ '73#735#73#735#3#3#3#"''3265#7#w55,77Mmm‹TO  V !ÊB B ?4 %iÿïóÎ!%+173533533#3#3#5#535#35#35#35#'67&'n2mk~ (222222   3 µY6IY56'     ÿéôÏ'+/735333##3#3##5#535#535#535#535#33535%NRRZZllffQQOOffNb>>>½(((('ÿéñ—'+/735333##3#3##5#535#535#535#535#33535%ORR]]iiddYYQQffOa???‹     Qÿé«É #7'67&'&''6#5##535#k -  5  É$ %  0^^<+gÿéóÏ'+/735333##3#3##5#535#535#535#535#33535v+//33>>::,,**11+>»''''& ÿósÇ"7#3#3#3#67&'7''67#535k?<<< °# 2 9 #ˆˆq7& $5=6 :9|;. +RL=!L9&,(bÿç÷Ç 7'66553#&'7#3&'&'‹ q ! KK< " !|=, ) RK=M9'.* ÿèò7'6553#&'7#3&'&'<¯" / 7 !ˆˆo4$ "2:588T *" "(=<(6*"    hÿç÷Ç 7'66553#&'7#3&'&'’ k EE9 |;- +RK>!K9'.+BÿëñÏ1J736533#"''3267#'67#3533#"''3265#'65#73533#"''32765#'65#Z3D17 ,/%   ' W&   ' º 4 'QO57"*P.7"* ÿèQÎ 73533##5# –88›› ÿçóP 73673#&''67&'67#367 E‹9D("'J:!$ 7N >     DÿëñÏ1J736533#"''3267#'67#3533#"''3265#'65#'3533#"''32765#'65#e/B /4 (+B"   + #U"   + #º 3 %QO56#*O 16#*RaóÑ/G73#"''3267#'67#5363533#"''327#'67#73533#"''3267#'67# <   / 0# ,5E%   O%   Ñ   <       Vÿèó] 73#735#35#35#'67&'fYYYYYY  K]U= ! !    VÿéñÈ/37;?C73#3#"''3267#3#7&'7''75#535#'67#735#33533535#35#g„[j  9((*25))  &^*È>g+X// žÿéôÆ%*733#"&55#'6553&''67&'#367ã    G    Æ9  . +d -      Rÿð Î"73#35#535#53#56#53#7'7p (!K I!'Î jdŒ(  ÿêUÏ7367&''65''6+  Ï9  ( 0I2+$eÿéôÌ1J73673#"''3267#'67#3533#"''32765#'67#'3533#"''32765#'67#u,8  & 0 & (="    G"    ¸ 40 !TN/A6N/B7 YðÌ(,7367&'#"''325567#3'67#3#- '9  yT: 1=››Ì    (! & %6)ÿéÖM7#53#"''32=#335;­  ‡‡‡‡ #dI  0  wÿéðÏ#'7367326767#"&5#5##535#35#w,% +3 )<nFFFFFÏ   $zz-HÿéîÎ#73533533#3#535#35#'67&'-F..8Ý7-AFF "(m! $Ÿ////AAAA] &XÿèïÍ#73533533#3#535#35#'67&'b#!!%’"1##QŸ....AAAAZ +!eÿèïÍ#73533533#3#535#35#'67&'n!….LŸ....AAAAZ +!ÿéîm#73533533#3#535#35#'67&'.G//9Ü7.@GG!")k" %X4   dóÑ767&''6''6{ % L! A k:Ñ "' >  Kÿéñ‹#73533533#3#535#35#'67&'Y)!!)¡'2)) Uq&&&&?  ÿëS 7&'&''62 ,    # #  DóÐ#73533533#3#&'#'67#535#35#/>22A=  %%84 ,>=/B>>· $GÿýµÐ '73&'73#676767&'7&''67'6N'"`!  # ((² ) @%    "sÿèñÍ#73533533#3#535#35#'67&'{z*H Ÿ....AAAAZ +! ÿéxË #7'67&'&''6#5##535#,5!?***Ë $#  /^^<* ÿöMÏ7&'367'5#- ) Ï ?o  qGÿê÷Ï _ci7&''67&''63'33#673265#"''67&'#3#3#3#67'675#535#535#535#75#7&'f   2   Lu%$    $)3$4f Ï     )FF'+! "!3  jhGTUòÏ#73533533#3#535#35#'67&'a+%™#.++  Qº)    ÿìôe!&*/7'67&'#3#3#53&'#535#73&7##35#C J0 43 3J;Þ2L27F!0'4    E6ÿðÉr#73533533#3#535#35#&'''6@"&“'/""*#]2  ÿçð\#73533533#3#535#35#'67&'+F,,8Ü6+?FF$*+e(' '(M*   WóÏ.736533&'73#673267#"&''675#'67#BA -Y    $# 4 .<¶       4(ÿèíY-73#673267#"&''675#'67#53733&'« 2U   ' !6 .( "2R & 8ÿèô› (.73'67'677367&'3267#"&5'&'s> 1 * !  "K  ›a2 $  P*    0  ˆgÿçó+173'67'6767367&'3267#"&5'&'• ! #     8  K,& &  <%   , z_ÿé÷Ì"(.73&'3267#"&5'3'67'677'6'&'²   $(" S d  ÌeJ  ÈvC* "3 R & fÿçõÏ "7&''6&'67#53&'¤# ! (   Sk  'Ï..+'   X   ÿé‰Ì !'753'67'6767'53&'&'7'62'#B X n dh}>( #5B Æaj   ÿëðÆ!%73#3267#"&55#'67#735#35#35#W ! 111111Æ0  65*fBC{ÿëðÆ!%73#3267#"&55#'67#735#35#35#ŠY " 333333Æ0  66)fBCrÿéòÆ!%73#3267#"&55#'67#735#35#35#}d " >>>>>>Æ0  67+fBCÿìvÆ 73'32655#3#3#735#f#SII==ƾ  ¥O*]ÿëñÆ!%73#3267#"&55#'67#735#35#35#rm  - %GGGGGGÆ0  65*fBCÿérÏ733#3#5##5335#1--$0 00Ï-3ssR?ÿé{Î733#3#5##5335#255.;! ;;Î,0wwR@ÿé‹Å $7#3#3265#"&'#67'535'#€%*( " D$ÅI"% ),/B  Ò%%\%% ÿéÌ !7'67&'3#"''3267#'667#8!7+Q     Ì=)$4* &%SY'F-1*( ÿé€Ï73#3#"''3267#'67#53&'H+>6  $"!3Ïf&ND5 A`ÿéòÄ#7#5##53'>33267#"&5Ìs>/3 ''   *Ę…„—":-> $+I  tÿé÷Ì"(.73&'3267#"&5'3'67'677'6'&'º   # I  Z  Ìe I ÈxA* . T $  wÿðóÄ$73#67&'7''67#3533#3#535#}q5 (,%'++6|2'Ä( #  (u ''ÿèôu,159M73533#3#535#733#3&''67&'#535#5367'3#735#676767'27&'...)c(.ž++%    %((  ³``<<  36 i   !  1 )    ÿéñÏ#37;L73533#3&''67&'#535#67'3533#3#535#3#735#7677'7&'ƒ-..)  *-  È.//+g).cc<< 5@  ¬###6(  .#5 !T8=5  VòÑ159I73533#3#535#73533#3&''67&'767#535#3#735#7677'27'100+k-1y***%   G'*rff@@2? É      "   ÿèó_#)73&'&'7'67&''667#&'`\!0 :& 1! "2&1# .9Q1X< ;V_     2   ÿêô059=N73533#3#535#73533#3&''6677&'#535#67'3#735#67677'67' .//,g(.w...'  !   +. Ádd== 1< u   ! !*     †õÐ 73533##5#3533533##5##5#[[[[2`22`2Å     eóÒ-2BFK73533#3#535#73533#3&''67&'#535#67'3#7'27&'#735#277# 333-k,3|,,,&  +,  Ád 3>  @@ 'Ì        #  ! ÿìðk+/73533673#5##53&'3#3#3#535#535#735#F  0µ0”@WWfÞeWWAllg   ""!%   [ôÑ.3AEJ73533#3#535#73533#3&''67&'#535#67'3#7'7&'#735#77#333-i+3{,--&  (, ¿b 3>BB+È      "    $ GÿëúÅ,37327#"&55#'6553#3#"'#5##535#32655Ü [M  0ÅV66# .REN@; 1>_'R $zZj&F>OÿëúÅ,37327#"&55#'6553#3#"'#5##535#32655Þ VJ  .ÅV66#!/QEN?< 1>_'R $zZj&F>>ÿëúÆ27327#"&'5#'6553#3#"''3255##5##535#Û bU     "ÆW55! /QDM@; 2<`(R >zzZjJÿéõÐ&*73&''67&''667##5##535#ƒQ% *"0'  %EbYYYÐ        ^\ \>+XÿêöÃ"(73#3332677#"&547#67'7#&'XŽ]O    <#A  Ã!d(   %T}·NÿéË73#3#5##535#535'635#„ 555*@*55@!@@Ë%)hh)"µ1ÿéšË73#3#5##535#535'635#9;;-G.::E&GGË&)hh)$¶2 ÿïÇ7'67#53&3#7'75#Y& IRh  Xr/6‚9/} 5 6  8 ÿî›Ñ'+73#"''3255#3#3267#"&55'6#34R   C=.* 5 /Ñ}  f I1  t#((kÿéóÏ73#3#5##535#535'635#â ::.J0::>#JJÏ+&dd&'¶1=Î735'273#3#535#35#.22..$[$.77Ÿ <<@€=îÎ735'273#3#535#35#€-11 ..&["-77Ÿ <<@ 5~Ï!'-7&'3#3#7'75#535#5'6'6'&'C  A%%,/9+## '2  9 Ï  $&K    †ÿéóÏ73#3#5##535#535'635#ã --%8&--"088Ï+&dd&&¶19ÿéŠÎ 73&'#''6`  Î ¬¬& ÿéðÉ73#3#5##535#535'235#Ù (1ffO…Jff(-_:……É&&f f&$²3 ÿésË73#3#5##535#535'635#i ))"/!))!1//Ë&)gh)#·2 ÿéyÍ )73&'73#&'''667&''67&' *,kQ  %   $ «   !    cÿê÷È&,287367#53#3#&'#'67#3#"''3257&''&'''6n,+o1B% '#,  B   1 ™!"g  K#)+"!') ) !Nÿéòž73#3#5##535#535'635#Û9HH;d;HHF3ddž N OŽ" ÿçNŸ 7&'&''6+-Ÿ  #  $ &$"gÿéò73#3#5##535#535'635#Ý <<3P1<<*:'PPM NŒ!ÿêgœ 73533#67#"''32655'75#"     '"| !/ %%ÿõ` 7#5##535#35#`!!!!!›š<*f+fÿéóž73#3#3##5#'6…bTGGLL ž 0ˆ eÿéñ73#3#3##5#'6ŽXKDDEE  1‰ aÿéóÏ73#3#5##535#535'635#á ??2P2??C'PPÏ+%ee%'¶1€ðÉ73#3#535#535'635#ß//#Z$..%355É#NN *TíÌ73#3#535#535'635#Ö BB1|6BB ?"RRÌ!KK˜'– óÇ73#3#535#535'635#æ&&L%%+))ÇGG&LÿéøÊ37;7325#"&547#'6553#7'7''75#535'635#335á WW   ! !  ÊI8&%%;/?n<$">zV!Vk555 ÿéõÉ48<73267#"&55#'65535'673#7&'7&''75#735#335Š. :P! $  És4& 0=`m<# ?xGV 444ŒöÐ'+73#"''3265#3#3265#"&55'6#3¨9  -*   !Ð Y @6/   ] $ ÿéò\73#3#5##535#535'235#Ø'0iiR‘QiiS]C‘‘\  66  T ÿèó£%)73&''67&''667##5##535#a [%0 :(/B :( 0;Sbttt£    "  Wh}}}y    .??'&|ÝÈ 73#735#33535#335&··==Q>==Q>ÈL. ( wÿéôÐ$(73&''67&''667##5##535#œB     5G:::Ð       a\\<+ÿéxÐ#'73&''67''667##5##535#82 #  "'9%%%Ð    " Lbd?-oõÒ159=73&''67&''667#'3#3#7'75375#735#3#735#™>  $  ) 2 W!!!%+4 %55\^^<<Ò  $  # ,  dôÒ159=73&''67&''667#'3#3#7'75375#735#3#735#™>  #  + 4 ŽT%,7"11Ybb@@Ò   (  ' .$  ÿéÐ-26:@F73673#7'##"''3255#5'67&'767#&'35#35#'67&')5%       #V ,,,,   R  ·    @0 -6   &!1(    ÿéŠÍ #06<B73#5'675#73#5'675#&'7&''67&''6'67'6 7  %?7  %+P &  ! #& + ./ "C DÍU  U      K      + ÿéŽÑ"73#"''3265#'6##55#35*X  I H11Ñ ˜5)} "!m~-NÿêõÑ4733#'665537#'6#3267#"&553#"''326‹I(} QA "V3%.Z   Ñ=1( $G \T  l7 ÿçóÑ6733#'655'6367##3267#"&553#"''326T ] J¯! 1 X S€U +.  :9~ Ñ 9/.#,D   EN   d5 QÿêõÑ3733#'65537#'6#3267#"&553#"''326ŽF'xM= !P0 +U   Ñ=4& '0G \U  l7  ÿçô˜7733#'655'6367##"''3267#3267#"&55U] G°! 1KT  T *1  ;8˜ ($" 0 )'0E?ÿéñÐ4733#'665537#'6#3267#"&553#"''326€K+„ TA W6& 1]   Ð>4& %G [T  l6 oÿêõÑ2733#'65537#'6#3267#"&553#"''326Ÿ;`>0 D% # H Ñ=4& (0F [U  l7 ÿèpÐ"(,048733#"''3255##5#'655'6367#35#33535#3352'     !1!Ð – )%%+.N 6H ÿëƒÏ1733#'655367#'653#"''3255#67'533"Q* (  <    Ï =2' ).G  O0 U  kKÿéöÏ$73533#3#&'#5'67#535#'6t88@3&"),2@# à ''')#$+cc.##-'  ÿéõÏ$73533#3#&'#5'67#535#'6<1SSi]%: :&$9=$_i; Ë**+03]Z/-+ OÿéöÏ$73533#3#&'#5'67#535#'6v66>1&!',2>" à ''')#$*b_+"#-' bÿéöÏ#73533#3#&'#5'67#535#'6‚//6)!$'6 Ã''')##)`a-"#-' !YÿéöÏ$73533#3#&'#5'67#535#'6u66?5(!!%1?" à '''($"']_+"#-' hÿéöÏ$73533#3#&'#5'67#535#'6€007* )8à ''')#$)a^)!#+'  ÿéÏ%7#5'67#535#'673533#3#&[#.4  ..55@WW!!(' $ '''gÿèôÍ$73533#3#&'#5'67#535#'6†33<5! !/; Ä &&'60W^/%(2' CÿéöÏ$73533#3#&'#5'67#535#'6j ==F8*'+,5G( à ''')#&,fh/%#+' ÿé{Ï&7&'#5'67#535#'673533#3#O '-&&--VUR!(' " '''VÿêíÑ"73#"''3267#'6##55#35xj  ] P77$$Ñ™/… %$m~-aÿêíÑ $73#"''3267#'6##55#35ƒ_  S K44!!Ñ ’! $#m~-IÿêíÑ $73#"''3267#'6##55#35ot  i U<<))Ñ “! $#m~-AÿêìÑ $73#"''3267#'6##55#35jx n Y@@,,Ñ ’… #"m~-*8ÜÑ 73#3#53635#35#nZ– ²8.„„ŽŽÑ 79ƒ 1a&ÿèÚ. 73353#5#533w=¡=.'= 1~ÿéëÐ733#"''3255##5##53ª-  ,Ð%|  d¯¯”ÿéiÐ73#3#5##53635#352%?B. --.Ð MaÍ H)c++ÿìpÐ73#3#5##53635#35>"CG3//3Ð M`Ê H)d**ÿéhÐ73#3##53635#35#2%?AA --..Ð MNÎ I++ ÿèôA!73533673#&'#5'67#53&'B !# 'J4 7($80$L+@   ++ _ÿéóÊ*7#5##53#3533#3##5#535#'67#536ðg5LU '55>>CC: 'Ê-, ...‡ÔÉ 73#735#35#.¦¦ÉB( # ÿéí~)7#5##533#3##5#535#'67#53673#3í²gII]]``G +]k +~&):   eÿéóÊ*7#5##53#3533#3##5#535#'67#536ða2IQ $22::AA8 $Ê-, ..ÿéwÊ(7#5##5#5'75#'67#5373#3533#wB] '*& 39 ##Ê-,›.,dÿéôÏ$(-7533'67#3&''67#&'#'65535#67©1 , ¯  10!  #<. /8TD1Bÿéí’)7#5##533#3##5#535#'67#53673#3í²gII]]``G )`l -’*-A""   uÿéóÊ)7#5##53#3533#3##5#535#'67#536ñU,@G ++33770  Ê-,..ÿéÊ+7#5##5#5'75#'67#53673#3533#6Y}17;2 "BI --Ê-,Ÿ)'  :òÒ$0@DH73673#'67#'#"''3254'7##53#3#535##"''325##535#35#jYd   !pV&4{5]   IJJJJÆ + *€‘6 G ÿêôM #)7&''63#"''3257&'''67&'|2@ 65'B F    )  DŠ M(     tÿèöÐ $7&''6#5'753'&'&'µ " +RBE;  Ð !v64  ]ZO    ŽÿèöÐ #7&''6#5'753'&'&'  #@142  Ð !w74  ZWO     cÿéðÏ#73#3#3##5#535#535#536'&'Æ )922<<==449H 3  Ï##::## 8ÿéï¤#7&'73#3#3##5#535#535#536i ] 1LDDSSPPBBIb ¤   ++\ÿéðÏ#73#3#3##5#535#535#536'&'Å ,=66@@@@66$+( +Î: > ;(!&]$E*2*#kðÏ73673#3#3#535#535#53&'R 3 7`UUgàfUU_6Ï      ÿçîf'+/4973533533#3#"''3267##5#'67#735#335335365#35#>*99G  40 : ,7 2>R*%œ&#5,+[ - # ++" , ' gÿè÷Ï-1773533#3#3##'32765#&''67#735#535#35655#q1<<33? ,/ -&- /+**1E 5½6 &/'' )8$9 uÿëòÎ 7#5##53&'73##"''3255#òV3H|0   8­00 =[  W[ìÑ73#3#3#535#535#53&'736¬4^NNbÜfNN^5 7 Ð  [ÿéöÐ,0487&'#673265#"''67&'#'6553'33#3#735#â"    ;LF..//Ð /3!+3)$IH<- /6S##%E#bÿéöÏ!26:>7&'#5'63&'3#"''325'#"''3255##535#35#73#£% L  ->9  ( 8Ï " .s  mt  1‹%8-\?ÿéôÄ $(.47#3##"''3255#5367#'65535#35#'67&'ë6/&  '0!59999  X Ä _:  6_ [;4 ,6lQ=4"   ÿêêÈ#'-37#3##"''3255#537#'665535#35#'67&'êRG;  B4N 9llll  i ÈF  FSF4 1$_; & "    2ÿè÷Ê#'-37#3##"''32655#537#'65535#35#'67&'ñ< :-   1" = 8KKKKY Ê^> 9^\<7 -9nQ:3$  Pÿè÷Ê $(.47#3##"''3255#5367#'65535#35#'67&'ò21&  )03<<<<P  Ê ^>  9^ \<7 -9nQ:3$  Xÿè÷Ê $(.47#3##"''3255#5367#'65535#35#'67&'ò,,"  %,34444  M  Ê ^>  9^ \<6 ,9nQ:3#  cÿè÷Ê"&,27#3##"''3255#537#'65535#35#'67&'ó*)   $)20000  I Ê^>  9^\=6 ,:nQ:3#  [ÿè÷Ê $(.47#3##"''3255#5367#'65535#35#'67&'ò,,"  &/35555  M  Ê ^>  9^ \<7 .9nQ:3#  mÿêôÇ"&,27#3##"''3255#537#'65535#35#&'''6î$" &0))))5  4  Ç`A  >`QC5 4>^K>4!  ÿçìÍ 73#53&'3#'65536'&'_ÎX> ?±o F  Í  -0' &8[ÿçï—  73#53&'3#'665536'&'¬:„5* %n I*— ! $ *  ÿé]Ž7#"''32654'7##5] "Ž*.”¥`ÿêóÐ 73#53&'&'73#'65536µ1‚; D #oI Ð  -0( %9XÿëóÑ7#'6553&'73533#3#535#ñn82$%%/p.$·K>1 1:V  V44GGaÿéóÑ 7#'66553&'73533#3#535#ñf 6 2!##,i+!·L@0 -"X  W55HH\ÿèöÎ$7&'3673#3#&''67#535#€   O !9A;& '1 3 9=8Î (!474 #/+Bÿí¦Î &7#53673#3#&''67#5365'&'q' "% # !  ‰* "/ ^ gÿéöÎ#7&'3673#3#&''67#535#Œ  F  3:5" "0 0 471Î (! 361 !/+GÿèòÐ&7&'3673#3#&''67#53655#x  L  %>KI534 9<@5Ð )!50."-!>ÿîªÍ%73#3#&''67#535#536'&'‰$') " " "% /  Í !'+%Mÿè©Î &735#53673#3#&''67#7&']!    #  e# & (7yTíÑ%73#3#&''67#5365#536'&'¿ %;DF& !0 5=@8L 7  Ñ$"%   ÿèŒÍ$7&'35#53673#3#&''67#:  0)<  124 "(.Íc'' $. '4òÏ$7&'35#53673#3#&''67#±'!/#'(  "%Ï  Q% *>ÿñ¾w%73&'73673#3#'67#5365#&'E  0;= /&03.O W   * / @ÿèï£#)7&'73#3##5#'67#53655#5365#o  b '$++0+-#\.£   *DD/#O*SÿèõÏ#)73#3##5#'67#53655#5365#'&'à *$$,)#!I *  Ï6]]@5 %^6(sÿåóÑ!%7&'73#3##5#'67#535#5365#K  t ;1==B? 6>>/xBÑ   9YY9$-9b99bÿéóÐ &73673#3##5#'67#535#5#'&'oG  !$( !!Q"  ¢7\\@4777. wJÿéóÏ!%7&'73#3##5#'67#535#5365#~  ^ !((-, $%' [ ,Ï  8\\@48b88hÿéóÎ%73#3##5#'67#535#5365#'&'Í "' B!  Î8\\@48a88u dÿéóÏ!%7&'73#3##5#'67#535#5365#‹  R " &$ !"I%Ï 8\\@48a88vÿèóÐ#(7&'3673#3##5#'67#53655#5#“ @  GÐ $7\\?5 %77(ÿéßÐ733#5#535#535#53'&'7'6vR©©¡¡§UD  ª ÐR•''H  ! eÿéíÏ733#5#535#535#53'&'7'6 8nniim6)  s ÏQ•''H  ! nÿéíÏ733#5#535#535#53'&'7'6¤4ffaae2$ j  ÏQ•''H  ! [ÿèñÑ!)73&'73#&''67&'#67#3#'3'65c; : "# G A *C&#¹    Dgg. $ÿèð™#'73&'73#&''67&'#3673'673#_`0 #8A,(>6#'? W7 /O…     EA1DÿëÎ,B73533##'3267#'67#3733##'3265#'67#73733##'3265#'67# * #       ;      ². ' S E 09 1D 08 0zÿìôÎ %733#3#533#"''3265''67&'¬''1t/   K  Î!!S  C '   €ñÉ&7773267#"&55'75'75'6Ü.068  $& 0É" % ÿéùÎ $57'67&'''6767&'3'667332767#"&50 9 (,-  ' MW+Î# 3 &" 30( $+J   FõÐ%+73673673#3#&'#'67#5367#7&'T  ,o‡7% -F' +@ I+¬    5  =õÐ%+73673673#3#&'#'67#5367#7&'T! ,n‡8$ /F' -@ J+©    8   mõÐ$*73673673#3#&'#'67#5367#7&'Q   -p …5# ,G($< D+¶        (  dõÒ*7&'3673673#3#&'#'67#537#A  S *o„5! ,C) )?GÒ        ÿëä)3Q733#3#&''67#&''67#5353353#5#5335#&''67#&''67x,,Z9   5  7'"O¡    3           /WQ      ÿèè‹*.273733#5367#35#3#3#3##5#'7#535#735#35H!<'¿?)5/I¢F]]^^R_H}}B~   "&   / )ÿèØx 73&'73#3#3##5##535#)NL¯     {{{g    6 5ÿçÕr"(,06:733#"''3255##5#'655'667#35#33535#735f7; 84 13 ,  00B8{10B8r T  $   '  ÿéäp)/5767&'7'#"''3255#'67'67676'67&' ./>   &&""?# p f "       E     ÿéÜ`73533#&'#5'67#:=;;0" "#/ 42H7? lîÏ 73#5'6773533#3#535#'&'U '"222,k,2PÏc &  ÿéíà &,73'67#&'367533#'67#7&'&'Ð  ¸4*mV]QHcz(" 'à  N.11%NMÿéíŽ &,73'67#&'367533#'67#7&'&'Ð  ·3 *lU`K<] ~% $Ž   6 "% # ?  7   jóÐ;73#&''67&''667'3533#3#&'#5'67#535#¡D    ·&((--  !(-&Ð         ÿéíb 7#'655í¾b*& %) ÿéîg 7#'655î¾g*& &.1ÿéðQ&7773267#"&55'75'75'6Ì!%NPXZ *'FI>@MQ         /ÿêñO#7367&'#"''3265'3'67#‹" .  J:1(&O     91 $?u» 7&''6[  » Q +(' ÿèò\7373#&''67&'67#67# T  {/ L,'*E 6# Ex D K   % wGñÏ!'73'67#'6'&''673&''6ª2 &   E  &7  Ï R  ;   8 vÿîóJ !7&''67&''33267#"&5·  &  `  7  J   2 KÿêòÏ$*73'67#'6'&''6553&''6›L  =( ]) :&W Ï (# y/.C ?Y ,)' ÿêõg73#&'#5'67#535'2Ì "*haF B #< AZe"&Sg -0# _ÿè÷Ï%+7'673'67'&''6553&''6ª  B  p \' 5&A • 03$,†*(9''8Q   YòÏ$*73'67#&''667#'6'&''6vb  %0 ,4 % G7# 'Ï        1   cóÏ#)73'67#&''6767#'6'&''6vb  %1 -3 %  G 4! %Ï       ,   tíÏ#)7'667#'673'67#&'&''6›$ $  b %%!% 4! %    D  ! ÿéóÉ3767&''67&'#53353#32767#"&55#'6Q $ 5•=  "J CÁ     hvcbuI PRhÿéðÏ#'7367326767#"&5#5##535#35#h3, 1; 1BzRRRRRÏ   $zz-HrÿéðÏ#'7367326767#"&5#5##535#35#r.( .5 ,<rJJJJJÏ   $zz-H'ÿçðÏ#'736732767#"'&5#5##535#35#'OB HV>8 IJ °Ï  &}}.H~ÿéðÏ"&736732667#"&5#5##535#35#~)# (0 $6 hAAAAAÏ    $zz-HƒÿéðÏ"&736732667#"&5#5##535#35#ƒ%! &- "5 d=====Ï    $zz-HXÿêóÏ/73533#3673#3#3#"''3267#7'67#535#i#$$ +< TOQ! Q  # :+#µ  2,DÿêóÏ.73533#3673#3#3#"''327#7'67#535#V*** 1D`[[&[  '%B2*µ  2(._ÿêóÏ/73533#3673#3#3#"''3267#7'67#535#p  )9 PKM  N  !8) µ  2, ÿêóÏ07#'67#535#53533#3673#3#3#"''3267#T;0hWAAAA(! :X!z{ L  1 lÿêóÏ/73533#3673#3#3#"''3267#7'67#535#| %3 IDH  G 1#µ  2+  ÿêîÂ*A73#"''3267#'67#3#"''32665#'667#'3#"''32765#'667#  P O E Jfi  $)ti  $)Â7 : *R=' ""E$">& 7F%"ÿêî•)?73#"''3267#'67#3#"''32765#'667#'3#"''32765#'667##¿  O L BHdg  #(rg  $)•+ - =C $5 B #5 [íÈ7#533#"''3267#7#'6L,Ÿ 9   = D 72µ#1 #5"q[òÇ7#533#"''3267#7#'6•]"   $! ¶#2 #6"oÿèôj73533#&'#5'67#t33)  (O%(ED&% ÿékÐ#'73#"''3255'67#5353635#35#35#7'   ) *>  //////Ð º  *'p 299GÿéõÊ373#3#5335'6'333#"''67&'767#'7#ã  !Z 2p9  96/<   ""#Ê4<vc}($4QÿéõÊ373#3#5335'6'333#"''67&'767#'7#ã T  *f6 54-7      Ê4<vc}>' !'4ÿéó373#3#5335'667#'7#5333#"''67&'á 117|C„ "!.FOJCS   H5LO #*   WÿéõÊ273#3#5335'6'333#"''67&'767#'7#ã Q +g7  21*5   "Ê4<vc}A !4ÿé Ê273#3#5335'6'333#"''67&'767#'7#“ M +f4  /1*4   Ê4<vc}=( !&4ÿèñÃ$73#3#"''3255#353#5335##535#âg^  JzJ^gà  xP5HH5P—ªQÿðóÄ%73#67&'7&''67#3533#3#535#\‘F!$ 3737::H¢F7Ä( # (u ''Aÿó­Å&7#53#67&'7''63533#7'675#f`- !$&&&*-8&´)  H# 'eÿðóÄ%73#67&'7&''67#3533#3#535#n;  *0,011=Ž=0Ä(# (u ''8ÿðò“$73#67'7&''67#3533#3#535#C¤Y&)9@3AAATºRA“  PTÿó´Å&7#53#67'7&''63533#7'675#pY)  !  %(2 ´& H$  'KÿðóÄ%73#67&'7&''67#3533#3#535#V–H#& 4;5;<Ž<3    Cÿîð’%73#67&'7&''67#3533#3#535#Ó}15 FM=UUUhàdU’  R ÿônÄ$7#53#67'7''63533#7'75#/['   $"$(2("³%  E%  ) ÿîvÄ&73#67&'7''67#'75#53533#6 i0 !& "b+4)%%''Ä* #  ( ! fðÑ 73#5##53&''67&'®8f; 6 Ñ "#$    ÿì’%73#67'7&''67#3533#7'75#‚? ,2,///47C7/’   QFÿè÷Ï-1773533#3#3##'32767#&''67#735#535#35655#T=KK@@M  9< ;/: 7455=Q,A$¾8 ' -)* (:$7 ÿèôÏ-1673533#3#3#"''3267#&''67#735#535#3565#geeRRa   GQ OTTPPWWg{>T>½: ' (+3  /:%; cÿè÷Ï,0673533#3#3##'32767#&''67#735#535#35655#n2==55@ .0 /&/ /,++2F!6½6 &/'' )8$9 ÿçòŸ,27733#3#3#"''327#&''67#735#535#5335#367#u__LOd  D"@J%M >E LUU]]:9S9:Ÿ1   +,  /A$=ÿèôž-1673533#3#3#"''3267#&''67#735#535#3565#N@HH==Q  :@ A5 43 5::@S*@%’  1%!0 .CÿçøÏ5;7#67327#"&''67&'#3#"''3265#'6553&537&'ñ6     7/  I  ¨D,> )9$P%L39- -7P''   ÿèï97#67327#"''67&'#3#"''3267#'6553'33&'7êP     SC  /b ƒ% "*("" "2?&/+ $.=  ÿçöp87#67327#"''67&'#3#"''32667#'6553'33'7íO    XH  4h$a!  %0 " #. PÿçøÏ4:7#67327#"''67&'#3#"''3265#'6553'37&'ñ1      4+  F  ¨?*> )9#$P%M 59- .6P''   ÿéó‰87#673267#"''67&'#3#"''3267#'6553'33'7ìO     UE  2ft" %7  ,6)! !+3  ^ÿçøÏ6<7#673265#"''67&'#3#"''3265#'6553537&'ò-     0)  A ¨8!(> 9"%O%N0;+ .6P'''  wÿéòÌ'73#3#67'7&''67#535#535'2à &&29 &*+4&&3Ì"$1  & /$nÿéòÐ'73#3#67&'7''67#535#535'2ß **7@  *009))7Ð#%0  & /% '6óË73#67&'#67'735#35#'©E  [:# ËX  +#  e28÷È7#67&'#7'535#35æ+   +' AAAÈK    &-  ƒ(ÿéôŽ7#67&'#67'53535ÓP  $[0!* ƒƒƒŽX   57  œ"Ÿÿê÷È!7#67&'#67'5353535ë  %   '''Èq $IU  Ì /MÿíœÐ $*07&''63#3#67'675#535#&'7'6w   . %;Ð     E I3Zÿéô—73#67&'#67'735#35#Z=  E% YYYY—]  ;9 }9wÿêõÉ 7#67&&'#67'53535â0  ! CCCÉr  0(V  Ö0+&ð’73#67&'#7'735#35#+¡C  R#2.! yyyy’C     G % “ õÈ 7#67'53535&'76ä?  ---    È_F ®&-  +ÿèôÇ7#67&'#67'53535ËH + d/'$0 xxxÇx   GL  Ð!!2 ~ÿêõÉ 7#67&&'#67'53535ä-    >>>Ér  0(U  Ö0aéÅ 7#67'53535&'76Þi VVV"%1Å^B  «%-  #" ÿé…Ï'15N733#3#53533'67''6767&'3353#57#7''67''6767&F'',w    KJ\\JJ   Ï))7     -,Ž Q>       ÿé|Ï'15M733#3#53533'7''6767&'3353#57#7''7''6767&A##(o      GEWWEE     Ï))7     -,Ž P>      }ÿìùÌ&733#7'6753773673267#"&5¡% %    ÌFe ¢žÃK b$* „ÿèôÇ73#67&'#67'735#35#„^*  2 9999Çp  !NT  ¤N ÿéyÎ&733533#3#53'67&73#5537$$%n)  R@¼9KS $% 7t o[  ÿñìÉ!*.7367&'#"''325567#3'67#3#-ž$6  €T; 7@ØØÉ #+Nk q(?%"2w(ÿìóI73#3267#"&5535#0ž’jj2  "Ð 3SCb P=S3  ",ïÑ73#3#353#5335#535#'6B’Tee9«8cc5 Ñ 6*<<*6  ÿõyÐ 73#3#753#55375#535#'6$E'++J-- Ð.S=U ZEV. sÿéôÏ735333#&''67#535#337#13%" #&),#7¦))I1 10!%-6) 6pÿèõÏ73533#&'3##5#535'67#y/2) %£,,K#$FM00MC',FuÿèñÏ73533#&'3##5#535'67#y/2%  !£,,K#(Vb00cT.,HiÿéóÒ-2=CGKQ73&'73673#3#3##"''3255#535#5365#5#35#"&55#733567#35#&'i#   ,$  VVR'.K %U D U UU  ²  ]    ]  5    ? =    ÿçõf 73#3#353#5#5335#535#'6EFjj@¦?jj5 f. #  …NóË#(733#"&55#'665#53&''67&67#Ú   `  - Ë   H     ÿéîV73#3#353#5#5335#535#'66“Jcc:œ:cc;V  "   ÿéðX 73#3#353#5#5335#535#'6?”Nff<¢>ff?X  !  LëË #'+/37;73#735#33535#3353#735#33535#33573#735#33535#335-¥¥77J777J7¬dd)@)"cc(?(Ë=% <%%<% ÿ÷gÐ 73#55375#535#'673#3#7P; $$ 1$$ PY WEU0 $ 0Q^ÿçðÑ.OU733#3'67#73267#"&55'75#'6655335'673673##"''3255#7&'œ<<@-    /,!2+ 0  ,Ñ     G9/ '!Qƒ   )   ÿóbÐ73#3#753#55375#535#'6!4!"" 5 ""Ð0UA\ YFX0 ÿéðK 73#3#353#5#5335#535#'6<•UffA§>ff5K$ CëÑ &*.2O73&'73#3&'73#3#3#3#5'65#5#5#'6767767'67'67'67[dÖm '/****1s .!!!!!P   E& Ä 8    : (    ÿòx™ 73#55375#535#'673#3#7`I**  ?$))9F E1< 9 ÿéçÏ)173#"''32765#'6&''67&'763353#9¢  — a`s›Ï —7 t   RTgWÿéîÏ)173#"''32765#'6&''67&'763353#wi \ 9    ?DkÏ —6 €  XZlKÿéíÏ*273#"''32765#'6&''67&'763353#oq  e =    DKqÏ “ ~  XZlaÿéïÏ*273#"''32765#'6&''67&'763353#~c U 7   :>dÏ “"{  XZlLÿéóÐ373&''67&''667#35#53533#3##5#'L! ( ) % # ?9LL--33KÐ   j ##((eÿéóÐ473&''67&''667#35#53533#3##5#'C  !#     4 .??%%**>Ð   j ##((pÿéóÐ473&''67&''667#35#53533#3##5#'•>       / *::!!%%:Ð   j ##((HðÎ473&''67&''667#35#53533#3##5#'}M" +"( "  ? *BB88AA;Î     a`ÿéóÐ473&''67&''667#35#53533#3##5#'ŒE "$ !   6 0BB'',,AÐ   j ##((kÿìôÅ'+/73#"''3265#'67##32667#"&5535335ux   .4 +$u` # 5Å/# 8L(  {****bÿíöÐ$(,733#32667#"&55'6367#3535#Š<$`  0% / . Ð T1  }$3333ÿé‡ÏCGKO`7335#535#535#53533#3#3#35335#535#535#53533#3#3#353#3#3#735#7677'7&'  uyykkGG!3>ËT XX   Ue  * !    ÿëp¦!'-767&'7&''67'677&''4'''6X! $      ‘2#P^ÿîó¡!%)733#3267#"&55'6367#35#335Œ2'] ( 4# +'.¡  C  ` =!!!kÿíöÐ#'+733#32667#"&55'6367#3535#’7"Z  -# * )ÐT1  { $3333 ÿéxÐ(,073533#3#3#535#535##"''3255##535#35#,**$$+l.$$,b   55555à   Jh  *~"2uÿéôÑ *7#5##53&'73#3#33#"&''675#ïL.4S$$  "   !»**  3.1,> jEÿëðÑ/733#3'67#'665533265#"&55'753’CCJ g /;(  ! Ñ B6+ 'K!   EÿçðÑ/J733#3'67#'665533265#"&55'75333#"''32767#'67#536’CCJ g /;(  !  9  '/ & "Ñ B6+ 'K!   25 :+0ÿèîÑ/73267#"&55'75#'66553533#3'67#À0 '   7AAV D‚   C8+ )N1 Xÿìô@ !7&'&''33267#"&5''6²  7  @"  @  0  4%  ÿéìÑ5733#3'7#'66553367327667##"&55'67djjt  £ G+$$9 0  Ñ =3' $G6   ÿèðÑ/732667#"&55'75#'6553533#3'67#½>-),4F__p W‚    C9* ,4M1 >ÿèãF73673#"''3267#'67#H6Q=9/ 14  0 0  ÿèðÑ/732767#"&55'75#'6553533#3'67#½>".),4F__p V‚  C9* ,4M1 <ÿññH7353#3#3#5#<•““„˜%#"ÿèðÑ/732667#"&55'75#'6553533#3'67#½> -),4F__p W|   C9* ,4M1 5ÿíò;"7&'33267#"&57&'''6—     ( k  u ;-  2   0ÿéïª-E7#'6553533#3'7#73267#"&55'7#'66533267#"&5€&9NNS?02  & /(  M   s2:99%      F%   ÿèëÍ 7'66556ß Mf lÍ EE; 1!W4ÿìôP$*73673267#"&''677&'''67&'f'"#2 & 1   0  “  <'* ,  B    2ÿèég!%)-73#3#"''3265#'675#5367#735#33535#335G˜DR F= /9GA11C1t11C1g> " & ! /ÿèïe73#735#3#3#&''67#5367#GllšDXN19 ? 6EPDe( % 8ÿæóM73'73#&''67&'#67#@KL )3$!1 (T J<      ÿçñÏ1733#3'67#732767#"'&55575#'66553mTTq \GI( 7&..9 MÏ      H;. +Q ÿêíÐ4733#3'67#673267#"'"&55'675#'66553rfffQ$#( 2 > QÐ     I=/ +!SkÿéôÐ(76767'67'67#53&'73#&''6C ' #64F ;* OnJ "$_ðÑ(1073#'67'67#53'67#7&''6ƒfJ A;*Hb+ƒ8VÑ     .  mÿëôÐ(76767'67'67#53&'73#&''6C ' #64F ;& KnJ "$=ÿéÀ{(73#6767'67'67#53&'&''6~5F  > " $6=  , O{   1  7   ÿçñ¤*73#6767'67'67#53&'&''66c(( B: F '&Fjf2N HR¤   # I+ÿæ»l(73#6767'67'67#53&'&''6k:Q  )I / .GD &0 Yl  -   9   Jÿéðž(73#6767'67'67#53&'&''6œDY !J ,*?J5 až  :DNÿéôÐ(76767'67'67#53&'73#&''6t" %S 2 #-E  @WN%4 cm I "$ ÿé’Ð(76767'67'67#53&'73#&''6,D )%84G :  1 On J    ! ÿé„Ð(76767'67'67#53&'73#&''6*= $ 1.? 0   * FnJ !  !?ÿúã'7677'67'67#53&'73#&''6e D ) ):6E :- N^5      nÿéòÏ )73&'73#&'''667&''67&'u4 /xW*   # # ®      ÿé…Ï )73&'73#'67&'67&''67&' 1 *r H  0  & "«   -    ÿèñ‹ )73&'73#'67&'&''67&'76e^ÙB) $x"-. >'-? 8' t         ÿèó“ *73#53&''67&'&''67&'76|cÕ[& !v"-0 ='!!' 8%“ %     JÿèõÍ )73#53&''67&'&''67&'76Ÿ @˜B !S !# '0 .Í 4    \ÿèõÍ )73#53&''67&'&''67&'76ª9†7  M   "+ * Í 6    Uÿð£Ã '73&'73#'67&'''67&'76YH  ,      ª   +  ÿè^Ï"(.7676767&'7''67'67&'#'674'#     ,&‡9!   .+n" ÿétÍ )73&'73#&'''667&''67&' &)dK  #     «   !   QÿéôÏ'7'67#53&'73#67&&'#67'u (.@ 99   H #0# ( HB`  gÿé÷Ï'7'67#53&'73#67&&'#67'„!*9  30    F #.# #%JAb  fãÐ73533#"''3267#'67#73#735#$5   !%#~QQ++¹: "0 $J( ÿéò`%7'67#53&'73#67&'67'F:Sh ^b  %L&       A    ÿéò`$7'67#53'73#67&'67'D6L\ha  " X "      9 #  KóÇ!(.473#3##"''327#67#5367#3&'365##3'#3&'×  š;(L1*J#F(V*RÇ     šZãÏ 73#"''325'3#Ð  6Ï^  HHbîÑ173533'73#67&'#"''3255'67&'775#a)a   %(  (1 a¼       ÿéôa&73&'73#67&'67'5'67#h_`   K$ "  4LP    4 )  )  RfÉ7#"''3255#'65535#35#f   ( &&&&É^    0 .iQóÐ -73#"&55'633265##3#"''#326†V,. AK*%%- 3  Ð =  0! #  LvÑ &,73#"''3255#'67#5353635#&'&'B&   0 // Ñ[   1 >  )  ƒEòÉ(733#"&55#'6553&''67&'767#Ù "_    IÉ   9     ƒKòÉ)733#"&55#'6553&''67&'767#Ù "_   HÉ   9      KŽÉ "(.7'6553'#33#3##"''3255#&'''6, jFF9JJ[$ %K  2 £% $3&     MôÏ73533##"''32655#&'@ @  ¶@ ;  ÿéòW%7'67#53&'73#67&'67'F:Sg_b  %L&      A   ÿèï› 73673#&''67&'7#367D  ƒ1&#/)G ?$ %:R p%   ' !B„Ñ$7&'73#353#5#'67#5335#5363?0&"2DÑ    7!0 'wGçÅ7#"''3255#'65535#35#ç   53333Åf  -,"0ÿ鉘'7&'73#353#5#'67#533655#536.  I2 - ! "6K ˜  (C , 8' |ÿèéŽ7'3255#'65535#35#é "1//0/Ž‹   (S.J…ôÏ#7&'3673#353#5#'67#5335#¢  B  /$ #-Ï !  >-H%@->^ÿéòÒ7#'6553&'7òq<¾O@3 3=[ Q ðÏ#7&'73#353#5#'67#5335#536~  X,F%& 4 + 7%E\Ï   >3S %F3>Pð”"73&'73673#353#'67#5335#P$ $)G'= 0 $ 8*F~   ($ *%R—êÇ 73#735#'3#735#¥EE""dDD""Ç00Rÿé©Ç 73#3##"''3255'67#'735#aF    'Ç?e  K+!+60? ÿêŽÇ!73#3##"''3255'67#'735#t   *+2 1GÇ<c  T4!-4<'òÒ#73#3#3#"''3267#5363535bWŒ¸¸² ±1%zzzÒB  0 s  ÿéÚJ73533#&'#5'67#UH= 1 2 -2HA !&<;%kÿèêÄ73#735##53#=#rqqKKYÄY5·mm66 ÿè¡Ð/73673#&'3#5'67#3#3'7>7#7#8;/" >F  #.ƒOB F ³    H& ÿëõÐ173673#&'#5'67#3&'#3#3#"''3267#7#Ol?/ s .@:c%Eȃw z 0¸      33 'Bÿê•Ï,73673#&''67#3#3#3#"''3267#7#L   ))G&$  ( ¸    +2 #†ÿçõÏ!7&'7&'7&''5'6556Ú    %Ï‚BBŒ©$ ´-^< 6\9LÿèõÏ173673#&'#5'67#33&'3#3#"''3267#7#R9L.$ Z  -E M UŸi_ ` "¶    I1 'oÿéöÑ473673#&'#5'677#&'#3#3##'32667#7#t,=# J "^  wLL Pµ   $%' %ÿèó£37373#&'#5'67#3&'#3#33#"''3267#'7#SmB ) p &?CW " HÆ‚l n 1     ,' yÿéôÐ073673#&'#5'67#33&'3#3#"''3267#7#~%5  > 2 5 ;kB?  B µ    J1 %SÿèòÑ+7''6767&'3533#3##5#535#'6È 9A"'* G 66BBGG*  (# : 77 ^ÿèòÐ,7&''6767&'3533#3##5#535#'6Ì5;%( B22==AA% '$ : 77 f óÏ*767'7''63533#3##5#535#'6 % /777::;;"Ï  % (( GÿéñÐ+767&'7&''63533#3##5#535#'6‡(+ ;B! &??GGOO- Ð%  ' 77 rÿèôÏ,7&''6767&'3533#3##5#535#'6Î.3  :**4499 ¼ +( 7 66  ÿèwÐ+7&''6767&'3533#3##5#535#'6^ #' 2!!$$,, Â! &# 877 }ÿèôÏ,7&''6767&'3533#3##5#535#'6Ò ). 7&&//22 ¼ +) 8 66  ÿè~Ï#/FK73533#&'#5'675#&''6'&''63&''67''667#-**  -Q   <  +        ¼+  -   2      €ÿéóÅ#73#3#5##537#35#35#35#35#35#€s13H%. < Ŭ¬©zzzLLcÿéó  &,73&''67&''667#'6'6'6‹I"$( , < . 03 (@ B7 -U X       &      ÿêòÏ-73533#3#32667#"&55#'67#535#'6C-RRbI &'F =Ae6 Ì**+K ' RVF+% ÿè‚Ï%7#535#'673533#3#67'5#'60"4&&%  '%W) &&)))F TF)%uÿêõÏ-7#535#'673533#3#3267#"&55#'6–3)))"  W) #))))P $ S-.^ÿéóÏ-73533#3#3267#"&55#'667#535#'6~,,7(   -)B È***O# RK!($* "ÿêí›+73533#3#3267#"&55#'67#535#'6H%CCZ? $ #N GFb. •3 :B 1 eòÏ.73533#3#3267#"&55#'667#535#'6†++5)   : É !!!0  4!#  ! ÿêñ,73533#3#3267#"&55#'67#535#'6?.NNaI  $ % B<Df8 0 67( fÿéóÏ.73533#3#3267#"&55#'667#535#'6…((2#  *#=È**+P % SL!(%+ KîÏ,73533#3#32765#"&55#'67#535#'6m33C5   1 ,/H$ Ê !!!; AE 3! lÿèòÏ-73533#3#3267#"&55#'6767#535#'6Œ))0"  ) 4 à )))Q  UG() JÿçöÏ%+733#33267#"&55#'67#53'&'7'6—E2   ,)F1   Ï]X  \+5EN !  ÿêøÎ"(.733#327267##"&55#'667#537'6'&'2$0 I(  #&  6  ÎbU \5* &/Q'  "$ ÿéñ{"(733#3267#"&55#'67#537'6'&'uhM# / (M DEfM z  {7, 2A1*      BÿéñÏ &,733#3267#"&55#'667#53'&'7'6’F2  *E0   Ï]X  [.4+)M ! zÿèöÏ &,733#33267#"&55#'655#537'6'&'­3$  & 34 P  Ï\^ " b8%-K#  ÿí|Ò %73#53635#35#'75#535#53#3#9-` 8888Qk-$$*h*$$Ò YY)7w ÿèlÏ$73533#67'5#'665#7&'7'6 $&      I  uZZN `9/+4X "`ÿéòÊ #BFJN73#5'675#73#5'675#&'7&'3&'73#3#3#3##5'65#5#35#m;(E<)2V520++++2j 6%%%%%ÊW  W      4  U  ÿéô•$*733#3267#"&55#'67#537'6'&'vcK  #%&& ?>`P‚•B: A&( 5;  ÿèvÐ#)-159733#"''3255##5#'655'6367#35#33535#3356)    ! #5#Ð – )%%+.O 5HbÿéöÌ%+733#3267#"&55#'655#53'&'7'6¢=*   3 *2$  i  Ì[[ " ^7#,K    MÿéñÐ &7'6556&&'67'5676×2<>=  '% Ð JC6 .BYR (%F>…  ¢ Iÿê÷Ì %7'655667'56&'76Þ5@B9 #) .- 0 Ì HA4 .?V   œ* 2*` =ÿéõÌ &7'655667&&'67'56Ý9E G=$  =Ì HD5 /AW  !A:|  ›YÿéòÐ &7'6556&&'67'5676Û2;><    *% Ð JD5 /AYR )%CA…  ¢ >ÿèó• &7'655667&'#67'56Ô6ACB  9  2• 8/& !,F   "OV  q ÿé„Ï %7'6556&'7'56776m&+./  + "  Ï JC6 .BWU 0&Y   “ Vÿç…Ì 7&'&''6i   Ì  3  2 0- +}ÿéõÐ $7'6556&'7'5676á&. 0.   ! ÐKF3 /BXQ *$7k…  ¢ fÿèóq '7'6655667&'67'56á *9  B&   .  'q ( &   8A Y ÿè_i7#"''3255#'6555#35_   " 2!!ij   #5! ÿözÏ &73#53&'&''67'67676767'B)h(9 #* $Ï ” ')%>'aÿéõÎ $73#'667&&'67'56ˆ\f \  #5Î   82g „rZïÐ $73#'6&'67'5676‹U_X  +  -( ( Ð  '  +  6   \pÐ73#3#"''3265#'667#53&'E"85  $ *Ð  -   (ÿé×[7#"''3255##535#35#×  ‰‰‰‰‰[Z  $r ,ÿï‡È7#3#53#3#3#535#535#‡^Xl MS!ȳÙ,&%%&dÿïóÈ7#3#53#3#3#535#535#ó{{ `%""+j+##'ȳÙ,%%%%bÿïóÈ7#3#53#3#3#535#535#ó}}‘ b&##,k+##(ȳÙ,%%%%PÿïòÈ7#3#53#3#3#535#535#òŽŽ¢$l+((2x2))-ȳÙ,%%%%iÿïóÈ7#3#53#3#3#535#535#óvvŠ [#!!)e(!!$ȳÙ,%%%%$ÿïî‹7#3#53#3#3#535#535#é±¶Ê$–B::H¡G::B‹xœ ÿì‰Ï7#67&'7&''53&'73535€P% )+<<<²jD  "&  ¸ + 7|Ð7#7'7''53&'73535|I( " $'555ºN    z |?æÃ7#"''3255#'65535#35#æ   6 3343Ãk   E$7ÿìÏ7#67&'7&''53&'73535}P $ )+<<<²jC   ¸ +ÿìzÏ7#67&'7&''53&'73535vM # ()999²jC   ¸ +9ÿê–Ï,7#535#535#53533#3#3#3#"''3267#'6V" ,+   [ @ ). $Bÿê Ï,73533#3#3#3#"''3267#'67#535#535#X))    » ? )0 #C ÿöŒÐ$73#3#3#67'753675#535#'62I,00))7D 99  Ð&$ MIZ&M|Ï73533#3#3##5#535#535#)))$$**..$$)¼QåÅ73#"''3267#'667#…`   " ÅR:.& "&E|Ï73533#3#3##5#535#535#)))$$**..$$)º{>åÄ73#"''3267#'667#…`  "Ä_!G5- )/d|Ï73533#3#3##5#535#535#)))$$**..$$)     gåÈ73#"''3267#'667#…`   " ÈD+$ \|Ï73533#3#3##5#535#535#)))$$**..$$)ÁcåÇ73#"''3267#'667#…`   " ÇH/%!  ÿèòa$7367&'#"''3265'3'67#w  ;#  cS< 1=a   (3 F8 (Eh™Ï73533#3#3##5#535#535#G!!!!!!à     ˜eêÃ73#"''3255#'655# J  ÃC /+ $Bÿéîo*067676767&'7&'#"''3255'67'67'67&'z(,*"    )   _ O #      E    n}Ð73533#3#7#5'675#535#((($$(*$$(Å     rèÑ173533#3#3##5#535#535#73#"''3267#'665#)))##**,,##)t^   !Å      < …níÇ73#"''3267#'667#‡f   " Ç@ ' xìÏ/735#535#53533#3#3##5#73#"''3267#'67#/'',,,,'',,/yb  ! ’      E/ )  ÿçó(2N733#3#&''67#&''67#535333353#5#7'67#&''67#53#&xOOiG 9 C/*[ ²†  :  –        GG]      !ÿè߯73#3#5##5367#735#35#+ªSd–EB‚‚ ––ÆW kl 1¨6"ÿéÜ”73#3#5##5367#735#35#0žJ`’D?vv’’”AS S z" ÿéðÑ73#'6553&'…`¾ZÑPD3 5<] ÿøkÅ7'67#53&3#7'75#@ ,2F 9KS#}1  05_ÿèöÐ!2673#67&'7''67#53&''66733267#"&5'3#«9G  ,1'6" F  "Ð !  ! tL&$L OhlÿëóÏ +73533#735#33535#3353#3#"''3267#7#t01t1O1i‡XQ  T ¹V342, 'vÿëóÏ +73533#735#33535#3353#3#"''3267#7#|..n-G-`}PK  N ¹V342, 'fÿéñÈ2JPV73#27#5'275#35#35#75#73''67'767#67&'#5'6'6'6jG 17  %    8*   ÈB K+, F      N     !;Y    ÿëhÇ $(,28>7#3#3#3#"''3267&'77#55#5#35&'''67&'b  C%   ÇG "‚&%5! dÿèòÏ &*.26:NRX^73#5'675#537367325267##"&53#735#33535#3353533533#3#535#35#'67&'“''!  @rr0N0d !‡"- > Ï>     A' # ( !   kÿèòÏ &*.26:NRX^73#5'675#537367325267##"&53#735#33535#3353533533#3#535#35#'67&'•""  :mm-I-^ +9 Ï>    A' # ( !   eÿéòÑ QUY73#53&'3#735#73#735#3533533#3#3#67&'67'5'67#535#535#5#35#´6‚7.77166W "7   ,    (!P Ñ#++*     ,      IÿêõÇ!%)73#3#&'#5'67#535#735#33535#335`‚6F7'#* (;K9&&9#\&&9#Çd" 'KL.';@UÿêõÇ!%)73#3#&'#5'67#535#735#33535#335jz2@2$% &6D5""5T""5Çd"%HI+';@ ÿéôÒ#'+/5;73673#3#&'#5'67#535#735#33535#335'&''&'%~  PgT$4 :&#8 1%SeP==Q=Ž==Q=Q  ,  ¤ [  %=;" 67c     ÿéóg!%)73#3#&'#5'67#535#735#33535#3352D`L#1 9&%9 2%PdF33F1w33F1g:  %%  $  ÿèòÆ!%)73#3#&'#5'67#535#735#33535#335&³PhW"6 :#$64#UfO;;O<‹;;O<Æh"+IH*"<B ÿéxÉ &*.73#5##53535#335##"''3255##535#35#iK/+8  !!!!!É?##??/2f  '~#6 ÿé€É &*.73#5##53535#335##"''3255##535#35#pR21 =  %%%%%É?##??/2f  '~#6ÿépÉ &*.73#5##53535#335##"''3255##535#35#d @ * $ / É?##??/2i '~#6mÿëóÍ'733#7'7536773673267#"&5”' '  ÍGg ¤ ÅS ^! €ÿêóÎ#)73#3265#"&'#67'56'&'á #"  $  3(Î9346Gc  ÃD50r   ÿétÉ &*.73#5##53535#335##"''3255##535#35#g G,( 4  É?##??/2i '~#6pÿêøÐ %,487#5##53&'7'673&''67&7267##5##535#íO0, 5  " ) =555¸#%  O     5M M/ÿë÷Ð+73533#3#535#&'6733"&&#"'6632#TUUcÛdT'=)"<A-C@"  °   ;7,%    kÿèöÐ"1573#67&'7&''67#53&''66733267#"&5'3#±4@ (, "/ B  !Ð "  ! tK%%L Ohgÿêõ¡"&77#53&'73#67'7&''63'6673#733267#"&5—-0B   %-     z    &'!  OO9 p’íÐ 73#'6R\ Ð  QÿèôÐ $(>73&'73#67&'7''63'67673#7333252767##"'"5g7:ˆ% !%06    &'  ¶     ,8   0^^L ! ÿüiÀ767'7537567#533K (1  :QZ8 e`r* ÿò`¿73#3##5'67#35#P +$ '¿ hc +6‘CdÿæöÆ#'+073#3#&''67&'767#535#35#33535#335s~712/ -$  /04/L/Æa    a>? :ÿç÷¡)0473'73#67&'7&''67#33267#"&5''6673#R>  Ia '* 8@&h  T1+Š     9;  @= N ÿói’77'753757#533J(1 9P=+ OLZ!\ÿèôž$(;73&'73#67&'7''67#3'67673#73333665##"&5m49D   .4(  $& Š    <,   %KK6  X_èÆ #73#5'675#73#5'675#&'7&'^?-K?-:  X  Æg  )g  )      fãÊ #73#5'675#73#5'675#&'7&']%+ Io]%+ IcuÊc  "c  "    [ÿêïÆ#)/573#"''3255#'3#"''3255#&''&''6''6°? +I?  +U @  f = ÆÅ ¯Æ °   , )% $' )& $SÿêïÆ#)/573#"''3255#'3#"''3255#&''&''6''6­B .MB  .Y  Dk A ÆÅ ¯Æ °   , )% $' )& $Yÿëîq)-173#"''3255'675#'3#"''3255'675#'''ªD  2KD  2W @ qq " "q " "c‚éÈ 73#735#335335c††'ÈF$$$$$ ÿé\Ñ73&'73&'#5'67#   &7° !  e` ? ÿê‡Å)/575#53#"''3255'6'5#53#"''3255'67&''&'u&8  .%7    6  ,  ^VÄ 8 ^Æ 4 i   ÿçóU736533533##5#'67# C<??>9.A= @@;(’ÿéîÏ733#5##5##5335#35#·$%%Ï.uQQvUCCC ÿê€Å*0675#53#"''3255'6'5#53#"''3255'67&''&'n"4  -#5  8  .  Y[Ä 4 bvP / j   ÿêwÏ 73#'67#536&''6767&'6,/  ", Ï'G3 1=!& )EN oÿêëÆ)/575#53#"''3255'6'5#53#"''3255'67&''&'Ø"5   -&8  9  -  ^VÅ 9 TÅ ; ^   rãË #73#5'675#5#53#5'6'&'7&']%+ I¸Oc'-ŒoËT  S  !ÿéìr)733267#"&55#'67#5363533##5#fA   1< 1$(B^ãÉ #73#5'675#73#5'675#&'7&']%+ Io]%+ IcuÉj&j&     ÿésÆ)/573#"''3255'675#'3#"''3255'675#&''&'E.    5.    ? '  ÆÅ  2 XÅ  2 X  VÿçõÏ  7&''6&'67#53&'ž"' #$#. # \t%+Ï.10&   X ÿæö’ !7&''6&'67#53&'y5< 8:'7F*  "*“²,22’$  =  ÿëy— !7&''6&'67#53&'= #   BY —  Aoÿèó’ $73#3#537#35#35#35#'67&'s}40g#6CCCCCC  ;’ff, ) *     kÿéöž  7&''6&'67#53&'ª  )  G^ $ž     A fÁ73#3#7'75#535# Y&!+ Á:9   @:qÿêõÃ!'73#333267##"&547#67'7#&'qzO?  /9Ã$}  p} ¹P ÿéŽÏ !7'67&&'67#53&'N'   Nd %¬+(5!   V ÿívÏ !7'67&&'67#53&'A #   =R   ¦)&7    S  ‡ÿóóÐ 73&'73#3#536'&'Œ,  #bI %l4%  ¤ G5>?4581ÿí~Ï !7'67&&'67#53&'E &   BV  ¦&&7    S  uÿèöÏ !7&''6&'3&'767#®  %  _    IÏ ,1*&   &ŠÿçõÏ !7&''6&'67#53&'µ     G(p```Ð6& FiiF3ÿéëÐ7''6767&'#5##535#±$ WW 4#+wÿéöÃ$7#53#33267#"&55#67'7&'vJ4 $5 ±#… x| jÿéé”767&'7''6#5##535#U;@ OZ$›ŠŠŠ”#  3R R5"ÿéëš7&''6767&'#5##535#°%XX8 #9C 4…………  &' @R R5# ÿéô773533#&'#5'67#bcU&6 :&%8 1%N.  --  ÿéòE 7&'76'7'5'6Í %Q^ (  77  <  "   RêÏ7''6767&'3#735#Ã8>)+ PttLL¸  0-  HN)ÿèðÑ'+/5;73533533#3#"''3267##5#'67#735#3353355##655#=)::H  3, C 9 95=Q)&:)%µE"4 RRD 3HT" "Lÿçëž&*.2675#53533533#3#"''3267##5#'67#77353355##7#|%%**4  + #( 4)a7- AA6  &7>ÿèí“'+/3773533533#3#"''3267##5#'67#735#33533535#35#?'::F   1) C 8 =2?S'&›(#7''‚8,>>4 $57nÿéõÏ'+/3773533533#3#"''3267##5#'67#735#3353355##5#q$""+  % % $6"´D"1SS2!'F T"""" ÿé‡Ä73#"''3267#'67##5##535#t   ( , %$oCCCÄK2:,_iiF3 ÿéßÃ73#"''3267#'67##5##535#Ä T S H G¿………ÃH/L<_iiG4i,éÆ73#"''3267#'67#3#735#rw   2' kkDDÆ7*CE#4aÁ 7#55#35aG4!!Á>----tÿéðÄ73#"''3267#'67##5##535#wy   *+ %'uJJJÄL2=/_iiG4 ÿéáƒ73#"''3267#'67##5##535#Ç ] L B Bă1/  :N N3!PâÅ73#"''3267#'67#3#735#\† 4 5 - * yyQQÅ< "4(IQ+uÿéõÐ '-39?73#'633#3##"''327#67#536365#7&'67#7&'’NV  \   N97 (9 Ð  #  R$  ?ÿêwÈ 7&'&''6_   È  2  8 )& %F-õÑ'1<73#33#3##"''327#67#5367'65#3&'77#3&'7jy‚y t qZ( ]( Ñ  2 &   PÿéõÐ ',27=73#'633#3##"''327#67#5;7#7&'67#7&'sir  t  hNM 5O' Ð  )  S)%  [ÿéõÐ &,27=73#'633#3##"''327#67#536365#7&'67#7&'€^gk  aFD 2G Ð  S)%  ^ÿéõÐ '-38>73#'633#3##"''327#67#536365#7&'67#7&'€]f k  aFD 2G Ð    S)%   ÿçôÐ %*.2773#'636733#3##"''327#67#765#'#37##37#H• &+-’%& †+­+,*=/?+)Ð  #R<)  )));)))ÿçóÐ %*05;73#'636733#3##"''327#67#765#7&'7#7&'H• &&(’$% †&¨j/  Jl5  Ð  #R<)  )&  V)&  ÿç‚Ð $)/4:73#'636733#3##"''327#7#747#7&'67#7&'(@I R   ET/  #0  Ð V)$;)%  V)&  ÿèô¡ "'-3973#'636733#3##"''327#7#77#7&'67#7&';¦³ ¬  Ÿ º†* cˆ+"  ¡   F/ . = fÿéõÐ '-38>73#'633#3##"''3267#67#536365#7&'7#7&'ˆV_ e Y@> .@ Ð  #   S)%  mÿéõÐ %+16<73#'633#3##"''327#67#536365#7&'7#7&'OX b V<: ,<  Ð  :#  S)%  ÿéòw %*/497'67336733#3##"''327#67#75##&'#7##&'#7 "”Í!Ÿ ! “±7-z;+P  &NÿèñÍ 187'2'6'&'&'373#&''67&'67#67#á XIG1  (1 \ "!7 / 'W5 Í    7 #   0 mÿèñÍ 187'2'6'&'&'3673#&''67&'67#67#â 0E94 $   "G ) # C $Í    7 #  .  ÿçó• 187'2'6'&''&'373#&''677'67#367Ð JkYP >  0  F‰5 $! 0*A #; :Q •       &    wÿèóÍ 187'2'6'&'&'3673#&''67&'67#67#ã -B65"   !B "  @  Í   : #   . eÿèñÍ 177'2'6'&'&'3673#&''67&'67#67#á 2J<9 (    )L , % "K(Í    7 #   . Hÿí©Ð#)/7676767&'7&''67'67&''67&'c    !  3  ,…;%  0+k! •ÿëïÏ73#"''32767#'6&'¶/  "   Ï“+ "l '5 >ÿò•Ð!'-77&'7''67'67676&'&'''6„       ¯7  0.a!7ÿòŠÐ!'-77&'7''67'67676&''67&'w   -&¯8  0,b!|ÿéóÏ"&*73&'73#3#3#3##5'65#5#35#ž   #O *Ï   Ž+- 3 3  ÿééÏ*06767&'7&'#"''3255'67'67676'67&'©4?>3  8   &(%#!(##I $ ‡µ8" $ C  =.'j"# aÿèõÃ73&''67&'#367&'k'!( *$  , ÃU= !5J>/2; hÿéõÏ(733327#"&547#''67&'77#53—/   ! $$Ï-5&$#&"$7 )!36 *iÿêì¾7#53#"''32765#'>''6£-v  #    « 3&vS+  '0.%ÿçëm+1710776767&'7&'#"''3255#'67'67&'''6`( 47L)  !  ++&% W! !R ,'W #  #   <    ÿèöÏ 7&''63#'3'65|38 46.; NGW9 0Ï273+)Œ<2&GÿèöÏ 7&''63#'3'667"+ *"!, <5J)Ï')+*/Šˆ%G '$]ÿèöÏ 7&''63#'3'67¦& $% 3/A$Ï ')+*/Šˆ%G?`ÿèöÏ 7&''63#'3'67¦& $# 1.>' Ï ((+*/Šˆ%G@kóÏ 7&''63#'3'65¨"  )*1$ Ï#$# !mk$,! ÿèôŠ 7&''63#'3'667€ 19 86+; QEV6Š!#a`1âÏ 73353353#EDÅÁ!//!4kÿèöÏ 7&''63'6673#®  (3Ï *.) &(B40<‹Mÿéò£ 7&''63#'3'66™"+ ''% 44D £ %#!'mm6* $fÿèöÏ 7&''63'6773#ª$ !$ .%;Ï '')*1%G@"ˆ ÿèõ› 7&''63'66773# 0; 67+= Q@ R› %,%#!8 jvÿèôÏ 7&''63'6773#®  ' !2Ï'(**/%HA"ŠrÿçòÏ 7&''63'6773#°  % )".Ï ))**,'JC$ŠƒÿèõÏ 7&''63'6773#²  !)Ï ''+*0%HA#ŠsÿñïÉ73#3#535#535'2à 440t/334ÉIOOGiÿèöÑ 7'67&'&'3'67#¬*"  (k  ! X­(%2 '. +ÿçë‚+177676767&'7&'#"''3255#'67'67&'''6K#3;O* !  +++$ I! !R .(a '  )  %  K   jêÐ73533#3#5##535#XXX`¬_X½-.!zdË73#'3#Q0ËQHHiÿêöÏ"73#&''67#5353533655#335ç9# "'- 5,,,§N22/ ".N((N ** <lÿîóÏ %7#5##53&'736732767#"&5î]: 6% ,  ( ¬2 2 .0 0 ( aÿéöÐ 7&''6'6'6'6©$ #$. , +,8 631, GÐ !"$  $ - !&vÿéëÏ73353353#5#353#5#5335#vb0»?SS?XdLj ^LdkÿééÏ73353353#5#353#5#5335#k ##$k 4»?SS?XdLj _LdgÿéóÁ73##"''3255###535#gŒ  gP3 Á«  ¦'XfF5jÿéõÏ$*73&''67&''667#2&'&'š:  # !   ." !<* (;Ï #      ]  wÿéïÃ7#"''3255##53#735#ï   R!55ÿ  §ÇÚ7b@_ÿêõÎ!7#'6553&'7&''6767&'ói:  %&  ¯:?: 0=L c'- 5S^" hÿòòÆ&73&''67&'767#3533#3#535#up"  Y.008†:.Æ'    t((gÿé¨Î7'6'67#Ž ! Î-^ $ ydÿèìÏ&753753753#5&'#5&''655'6u    ’>9f5mçc!–\ .C,(9  !mÿé÷Ì"(.73&'3267#"&5'3'67'677'6'&'·   !%  L  ]  ÌeI ÈvC* "1  S &  ÿéêa)/5767'7&'#"''3255'67'67676&'''6¦)93* :   %'  # !T $ a     ;   gÿéòÐ>767&''67&'3#3533#"''3255##5##5'67#536‚ )NT+    "(Ì      1 8  !TT@=mÿêôÐ7767#"''32654''67''67&''7&'767&''6Ñ    "2 6$ + +#$ %    0Ð   !< !     xÿèìÄ73#735##53#=#ggAAtNÄY5·mm66HÿèöÎ287'#'67'6776767&'3&''67&''6767#Ñ <;* (-5GR+ //'   E•     - 0       ÿô‡Å 7#3#3#535#35#5#‡%"$'n##DD!!Å.Q.Ñ@.m-m..›áÊ 73#735#'3#735#ˆYY55|YY55Ê//ÿéé& #53#=##53#=#˜d=nc< =< =<tÿôëÆ 7#3#3#535#35#5#ê(&(+w''LL%%Æ-R-Ò@-l+k--pÿðóÄ 73#53#3+535#3'35#Â1ƒ€-.- ++Ô)^^)°:</é’ 7#3#3#535#35#5#å[NN_ËHH••HH’ + c ' ' P€É 7#3#3#55#535#735#€  k9'!!É5yg5U!‹OñÉ7#3267#"&5535åF '3ÉC  e,ÿóÞ‘ 7#3#3#535#35#5#ÔIGFR²77~~88‘@ž/II+ÿîå“ 7#3#3#55#535#735#Ô:98Jº\76F"__“", ÿéöJ767&''66''6|  M!N 908 J   "$ % ÿïòO 73&'73#3673#53&'YWÇ( E  9â5 ?  ÿéóo,73'67#&''635#53533#3##5#'86 O A '  _ '66##++6oU <   %%))OòÏ.7&''673'6735#53533#3##5#'@  3*A  &11!!&&6¦    ) +5 $$ OÿêóÏ&-735#53533#3##5#'''673'67&767® !!'0%?   … !R++RCC 6P43J  ÿêóÐ,73533#3##5#'735#'3'67#&''6‚9 $$= .9K8 T F(   ©''NJJ;N9…3(l   0 ÿéó—+73'67#&''673533#3##5#'735#=7a Q )  "V0&&++3#0— l&N   (844/&8ÿéàÑ %73#5##5365#7&''67&'76erš:lš{Ñ ÇÇ±ŽŽ…   gÿéìÐ %73#5##5365#7&''67&'76™I]&D]I    Ð ÆÆ±ƒ   ^ÿêîÈ $7#5##535#3533#&'#5'67#îkkk "##     ÈÞ Þ¿­'?C &eÿêîÈ "107#5##535#3533#&'#5'67#îccc     ÈÞ Þ¿­'>>'QÿêëÈ "7#5##535#3533#&'#5'67#ëttt &''    "ÈÞ Þ¿­'@G&mÿêïÈ "7#5##535#3533#&'#5'67#ï\\\   ÈÞ Þ¿­'==(iÿêïÈ "7#5##535#3533#&'#5'67#ï```   ÈÞ Þ¿­'>>&?ÿ÷Àq73#735#3533#&'#5'67#?]]    qzY     B½™73#735#3533#&'#5'67#B{{WW    ™—u )+ ˆÿêðÈ "7#5##535#3533#&'#5'67#ðDDD  ÈÞÞ¿®(71 &?ÿéŒÈ 73#735#35#35#'67&'H??   .  È¢qNO 8  ‰ÿéïÆ$(,73#3#"''3265#'67#'67#'67#735#35#“T0A  "     ....Æ] N18"!+&  7:ŠÿêïÑ#+/373673#53&'35#&'735'6#5##535#35#§e) 99999Ñ VV ]777  E    ÊTF6 5Aa5 /@( @/3     !#- <xÿéóÐ2:>73673#3#3#3673#53&'735#535#535#53&'#5##535#›  0,,44 { 33--1_CCCÐ    B B(vÿéñÆ73#3##5#535#'6'&'|n-4433-X B  ÆdSSd%#!#yÿèôÅ1673#7#5'75#35#35#675#7#53&''67&67#zF    )7  ÅŠ.'š&&]&^"T - )1 &3 ÿéwÏ5Q733#3#53533335&''67&''676753#57#677''67''7=!!(j-?    QQ?    ?Ï**!+       Q%      ÿïï‘ 73#3#735#3673#53&'ÐЪª‚‚ ; 9Þ;‘C6   ÿëtÁ 73#3#735#7'676'&' ggYY44. +4 "ÁJ&@ rÿèôÐ$).73#3##5#53665#53635#335367#3355#¤8((G  !,G, Ð l 44 l 9J  M _ÿèõÐ48<@DH73673#33##&'#5##5'67#535#535#535#53'5#3533535335Ž  (,$    ##!"26Ð   %%6II08'SìÅ 73#3#735#3#536'&'Z‰‰ rrLLG *™X 9  ÅD 7uÿïóÆ 73#3#735#3#536'&'u|| hh@@; "}F 2  ÆS/GuÿéêÐ"(733#"''3255##5335#35#7'6'&'¦1  I,IIIIJ  M  Ð=’  ;ª0Ly  uÿòòÆ'73&''67&'767#3533#3#535#€g     P*++2{6*Æ.    u((tÿêôÏ,73'33#3265#"'&'#7&'3#67'675#wA** Ag  V9 % £,F/5)f<   X@ FiÿéóÏ"(7&'73#3##5#'67#5365#5365#”  O !' BÏ8\\@4*b8- oÿèïÍ#73533533#3#535#35#'67&'w}*Gž////BBBBZ *!mÿéóÇ$73#3#"''3255#353#5335##535#m†;7  % J %79Ç   ‹aN_^Ma¦·nÿéôÌ  $7'67&'&''6#5##535#”B" (J555Ì &$# /Y Z:(lÿéòÃ#(,733##3#5##5'67#537#537#3353535#{fEV:  "#/%',3::Ã+, X H ,€*oÿîòÄ !-73#&'67&'67&'63#3#535#xww  0  1  Xw27ƒ92Ä   S**lÿçöÏ-73#35#535#53#3267#"&55#'667#56ŸH2   Ï  rJ M/- $(jjÿèñÆ673#3#"''3255#67&'7&''#5#67'7''#535#j‡;8  '  &  7;Æ “  }T &- /ŽT&.  <¬ pÿéñÈ%)-373#3#"''3265#&''67#'67#735#35#33#~fAV %   @@@@CVÈU Y =   31afÿéöÏ!26:>7&'#5'63&'3#"''325'#"''3255##535#35#73#¤$ J +; 7  & 6Ï  "-s  mt  1‹%8-\^ÿéöÈ/38<73533533#3#67&'#67'5#'66553'#335#35#Š-    *   qMMN&  9; G-# 2#`9(V kÿïõÆ#'73#735#'67&3533#75##5##5#dd>>  O t ŠmÆb@&  …OO======gÿéöÏ#)73533#3#&'#5'67#535#&'7'6u/1184" ! "58/  [  ²>-&MJ$*>    ÿéõÏ#)73533#3#&'#5'67#535#'6'&']]]iW"7 ;%#;:!Xi]«|  ·@/9ca5 -@  ^ÿéöÏ#)73533#3#&'#5'67#535#&'7'6m244<7$ $ $9<2  b  ²>.'NJ%+>    ÿéò£#)73533#3#&'#5'67#535#&'7'6YZZeU#6 8%#96"SeY%  ‰ Ž/%.KM-#/    RòÏ*73533#3673#&'##5'67#53&'735##SVV 4L9A'5 0%H* S¾   &$   ÿêwÃ473#67&'#"''32655'67&''67&''67#^&     "  #à     ' &  nÿéóÄ73#3##5#'67#535#5#}p &"I ÄMjj@* &7MMMMiÿéöÄ /7#3#3##535#73#535#3&''67&'767#©-****4==**B      -ÄO0Û=+M)L.$    ZÿéôÐ>DIN733#67&'#"''32655'67''67&''67#5'6367#367#335“2$=     "+0"# $  $/+  5#Ð 9   -0     /  / \ÿèôÐ I7'2'6'&''&''3#&'#'67#5367'67'6776767&'â 3K>8  )  %  i F4 (2 $+4  #%%Ð     1   $     #iÿéòÄ",73#3#367&'#"''3265'3'67#{ggww3      3,  Ä!  %9 W 2%qÿéòà &073#3#535#367&'#"''3265'3'67#€c'/r/(*      3-  Ã!!9   &8 V 2& ÿéóà '073#3#535#367&'#"''325'3'67# ½R_ÕbWW  :# YL8 46Ã9  3B  [: + ÿçöÏ)7'675#535#53533#3#3#33#"&&%"! ,<70O8.9 M   +cÿéôÏ(73533#3#3#33#"&''675#535#z*//9922  (   99*®!!!"0)7a!?ÿëñÐ(7#535#53533#3#3#33#"&''67m0/)2&j""""!1 /0 Kÿéõ”(73533#3#3#33#"&''675#535#^;;;BA44& 2%   BA;€!   'E ÿèôÏ(73533#3#3#33#"&''675#535##RTTaaVV,#@B %__R±#/+; ` ÿéóÑ05;7373#3#3#3##"''3255#'67#5367#537#5#&'Sgicg†-&&   b &DLB±!;AU 6  œ  ÇE0+ #++EEE    GÿèðÇ!73#'65535#53+37'6'&'Â.~*.”-*  a  n ,( !'2GG: pÿèóÇ!73#'65535#53+37'6'&'Ï$bo $  No.( !(1FF9  ÿéìÏ573#3#3#"''3255##5##535#535#535'6556à '.IIPPO  ;2FGGBB'*pÏB  *TTDWI>615[C îÏ3735#53533#3#3#"''3255##5##535#'6556Ü 4F80011661   18KÏ 01 EE6F0) &+MP@òÊ"(73#&'#5'67#535'2'6'&'Û  @,"$( %.@?1  M  Ê*.* (   &ð(73673#&'#5'67#53&'735'2Á # .P7@$9 2!K, %K   !   ‹ìÔ 7#5##53&'7'67&'ê¯a' 7 4N-, ,.Å     ÿéóË"(73#&'#5'67#535'2'6'&'Õ (0cR#7 9&#89M_',]Iy  ËB1:ff6 -@!  ÿézÎ"(73#&'#5'67#535'6'6'&'m ++ +-' @ C  Î;`W 07  jÿçöÈ7'6553#&'7#3™ d %<tÿéôÏ73533#3#3##5#535#535#x322..6677//3©&&&&>>&&ÿéuÎ"(73#&'#5'67#535'6'6'&'i )) )*$ >  ?  Î;`V /7  ÿépÎ#)73#&'#5'67#535'6'6'&'c && '( ;  ;  Î;_U/7  LÿæîÐ#(,059733#"''3255##5#'655'667#35#33535#735‡B# )& ";8##5)_$#5)Ð – #--&B7 .K IÿéªÎ#)-16:733#"''3255##5#'655'667#35#33535#735o    -Η )$ *0;  .G_ÿéíÏ#)-16:733#"''3255##5#'655'667#35#33535#7356(   "  - ' 1"S1"Ï • #66# */4 .KÿèäÔ#)-17;733#"''3255##5#'655'6367#35#33535#735TW C  A? 2K H ;;OA‘<;OAÔ  “ ::"A5 =N ›ÿéêÏ 736753#5'› Ä–”æ? ÿéõÏ735333#&''67#535#337‰!), !$'!5¦))I3 44 $.6)6ÿè߇"(,06:733#"''3255##5#'655'6367#35#33535#735MV : ;=$NJ 99L;ˆ:9L;‡]  !!( #. „ÿçóÌ%+73#3265#"&'#67'56&5&'Ú  $ ; Ì3  /,RQ µE0u  sÿçøÌ#7'65567&5567&'7''¤3*    ¬*Y> 6Y8 #?B6t"ª  gÿçõÏ7&'7'7''5'6556×     /ÏCC‹ª%³,^= 6]8ÿétÏ%+73533#3#3#3##5#535#53&'#535#367#! (!$$%% *! !¶11K}ÿîóÉ73533#3#535#3533#3#535#‡(((.p.()))0v2)¨!!!!_""##|ÿéôÐ%)73&''67&''667##5##535#Ÿ=     0C555Ð !    b\\<+ÿèçv"(,059733#"''3255##5#'667'667#35#33535#735\J; =B .MB ;;N=Ž>=P=vS  '   (   ÿébÏ73#5#'67#535#533O B6#Ïæ[E:"P>ÿêò) 7&'''67&''&'Ô  —{  % )   3îÒ7&'73#3#3#535#535#536V  m 6\RRgÝcRRYwÒ  ÿéò_"73673#3#3##5#535#535#53'\ )2RKKffkkMMV5 _        ÿðñÑ7;@73673#3#3#33#537#537#'67#5367#537#53&'37#367#S / 6e]ayn³: $ , 7KR?CS7 O42 76Ñ   -'"2 ¡6 cðÑ73673#3#3#535#535#53&'T 7 2`UUgàfUU_9Ñ  nÿîõ½7'67#53&3#3#535#´ ANe  Rj-49)p 4 77 ÿë€Å %*.733##3#5##5'67#5367#537#3353535#] :C+ #$.!)++Å+, Z D  + }) ]ÿîõÓ !%)73#53&'3#735#3#735#3#735#35#3#®>•>.[[@@*ppJJJJ'——Ó 'R4 " 9@& $ % ÿè Ð!)73&'73#&''67&'767#3#'3'66?7 0 'b\;´       Nki/* "@ÿë÷Ê #'7&'''6'#5##5'63&'35#´! , 2%0 X 0 n!XXÊ # % `Z !W0 ÿéó "&7'67&''#5##5'63&'35#Y" g19 p O ‡&!pp $ P P$#L'cÿéïÌ #7'67&'&''6#5##535#ŒC# !*K999Ì &$ " /Y Z:(XÿéöË !%7'67&''#5##5'63&'35# D # D 5aDDË &%#! %'^_ &'W-xÿñóÐ %73#5##53&'&'''63#3#535#¶3R0'  d)4z2'Ð-0 : .22yÿéïÌ #7'67&'&''6#5##535#š;   #B...Ì' % # .YZ;) ÿénË  $7'67&'&''6#5##535#(3 :$$$Ë $#  /^^<*GöÍ !%7'67&'&''66#5##535#€I$( ($/ !$KKKKÍ " " 4U U6$PÿëôÊ'+7&'73#3267#"&55#'665#53635#  S     J CVVÊ QE  H(& !"QV-ÿéõÎ (,7&'''63#3267#"&55#'667#735#¤#' '$F ) %’)    !)' jjÎ"% 'Q:  A ) +ÿçóÏ#)73#3267#"&55#'67#53635#7&'«)( % $ C> &[Xrr  Ï^>  BC6^`8? MÿèõÑ&*7&'73#3267#"&55#'667#53635#… Y    ECOOÑ  TE L&-$ TX0 ÿéÎ "7&'''6#'67#53#67''35#b -+ $X 22Î pE:RR3 S.aÿéôÏ"(73673#3265#"&55#'67#735#7&'w9     1 +BB  ¡XB  II>4< dÿèôÏ $(7'67&'3#3267#"&55#'67#735#’ D@d   / *>>Ï !$7IC  IH=&mÿéóÐ!%+73#3267#"&55#'667#53635#5&'Á   2 *<<  ÐSF   K,' #%SY1A*ÿèÞÐ8767#"''32654''67&''67''67&'767&''6¿ "  4J P4,; :. (2   ") \Ð  9))     xÿéîÏ!'+73#"''3267#3#"''3267#536&'3#œ6   <_   ^  "TTÏ E-WI1{ (   qÿèò "(.4:73#3#3#"''3267#5365#35&'''67&'#&'TfŽ··² ±'czz r b      B  / v"  O    ôÒ73267#"&''7&'37&'7èZ,  6 c[-  »       sÿððÏ %73#5##53&'36732767#"&5¯ 0T6(!+,  $Ï00 Q/(  uÿððÏ %73#5##53&'36732767#"&5± /Q5' *+ "Ï00 Q/(  ÿë‚Ñ#'+17=73#3#3#"''3267&'767#5363535&'#'67&'21L]][   [ :::+$Ñ L  @   ‡  b~ÿðòÏ $7#5##53&'73673267#"&5îK/4! "(  ! ¬00 5++  ÿé{Ï!'-73#"''3267#3#"''3267#536&''6:-   4P   O &(Ï F-WH0{ &h  ÿëxÎ%73#327#"&'#67'56'&'g    6  Î8K) ?L ¬E53j   ÿé‚Ï+<Ma73533#&''6765#67&''67&'767''67'67''67''67&''67&'1++   1    S        =  ¸;*!'!P         4           ÿó}Ä 7#3#53#735#3#735#73#735#|WSf AA%% %% Ä«Ñ#55E&E& ÿéuÈ#7367326767#"&53533##5##)  % +((+È%   ;GG ÿêvÏ 7'655##53533#5#367'J.'&  [4 =Y"5**3 W  oÿéíÏ!'+73#"''3267#3#"''3267#536&'3#ž2   ;^   ^  +\\Ï E-VI1z )   kÿëqÏ"73#"''32765#3##5"'635#,:  . .$Ï–+ wW^ 'n3lÿòöÄ#73#3#3#535#535#735#33535#335ws011<Š;000/L/ÄtB P kÿñóž#73#3#3#535#535#735#33535#335ur022<ˆ9///0N0žd;@ ÿêq¥5767#"''3265'67&''67''67&'767&''6P    %   ) '¥  +       ÿé‰Ë  $7'67&'&''6#5##535#4<'F222Ë $"  0^^<*pÿéñÅ!735#53#3##"''32655'67#'->m  ##,¦.>>^ Q='"9qÿèôÏ 7373#'67#&''6767&'}@B  [ §(dD GTX#) .RJ) ÿéöÍ !%7'67&'&'3#5##5'635#X&)n" 1: 74,•rLrrÍ ! +0he(m2ÿæëM!73533#&''275#735#335&'#6*NN  Ng2/N<  E$* !&ÿèô™/573533&'73#67&'#"''32655'675#&'g"&` $ :# +6 =-g, |   +8  , ÿéfÎ 73&'73#3#3##5##535#"!X EEEEH!!!² U T6%yÿéóÃ!&+/733##3#5##5'67#5367#5347#3353535#‰\<K2  )!"%,22Ã++ X >     - €+yÿéïÈ"&*.2767#533#"''3255##5##53&'35#33535#335– Me "  22P2¬   //8¥ =JtÿéõÌ ,27'2'6'&'&'3533##"''3255#&'å 0E8.  &    O  O  Ì  =H  E ŸÿéñÃ73#3##'3255##5##535#ŸR"   Ã&j  U‘‘p&dÿç•Ð 73'65'3#ƒ!Ð…<( $4eˆ ÿèôœ%)73&'73673#3265#"&55#'67#735#+  8 1("J @*}}x  I+ 2@1#<ÿþɧ"(73#3267#"&55#'67#53635#7&'¡    +'= 8AA  §  B  $)BD ;   1ÿóÉx$(73#3267#"&55#'67#53&'73635#•   / +  5CCx 9  % 9   50ÿöÉx&*73'7'#3265#"&55#'67#5'635#b 9    5 0 <   (% %(015 0 Ï?6 QJ,#BN-ÿéõÒ ,7#5##53&'73#3#3267#"&55#'67#ç¥^W‘‘ÐB '&'& >=¹--  /@   G*- =MÿçõÑ -7#5##53&'73#3#3267#"&55#'667#ìb< 9WW'   $´1 2  ,B  F*+  #"aÿçõÏ .7#5##53&'73#3#3267#"&55#'667#íW73MM|'   ´1 2  ,D  H,)  "#uÿè÷Ð .73#5##53&'3#3#33267#"&55#'665#º,N1BBr   Ð 1 !2 BC  G+)  "$IÿëõÏ -7#5##53&'73#3#3267#"&55#'667#ên@Bee™/  )±*,  ,B  E((  _ÿëõÏ -7#5##53&'73#3#3267#"&55#'667#ì_8 ;ZZ…'    #±*, +B F((  fÿéôÇ *73#535#535##5##53&''67&'767#wijVTTUx` g % (!   PÇK  G"#'  `ÿéöÇ *73#535#535##5##53&''67&'767#qop\ZZ[g m$ ($   UÇK  G"#'   iÿèõÐ*.273673#3#"''3267##5'67#735#53&'35#35”  0:  % !& (- 8+Ð  ?8Q@$!BK-qÿéêÐ"(733#"''3255##5335#35#7'6'&'¥1  M/MMMMN  Q  Ð=’  ;ª0Ly  qÿòóÏ"(73533#&'#5'67#'33#7&'7'6%%%  o‚(  W  {TT ?E  #Y¿Ê pÿéôÑ)/57676767&'7'#"''3255'67'67&'''6 %,$   42  ? ’5! Q  K($i  eÿçôÇ(,048<73#3#3673#3#5##5'67#535#535#735#33533535#35#p}G%% 1 @B '9*$$%#GBBBBÇ5 [ I –0_ÿéõÏ'/373533#3#535#3#735#3673#53&'#5##535#c>==4~7> vvRR%$–"mTTT   *1$ (= =!qxäË 73#735#35#qssKKKKËS11[ÿêïk)/573#"''3255'675#73#"''3255'675#&'7&'h<    !)K<    !)?  [  kj  #j  #   ZÿéñÇ"&,28>7#3#3#3#"''32767#55#5#35&''&'''67&'í3----7  r<((((   2  (  ÇN  2‚&%/  [ÿéôÉ 6=73#735#33535#335'67&'3&''67&''667#k%%6%[%%6%S N (9 %,&"  %  0É[59(        MÿèòÌ5:@7'23673#3#3&''67&''67#5367#53&'67'&'â 5N@& -KTYP  !  ' $$ )  %  Ì    $)  m z fÿîôÈ #'+/373#3#735#33535#3353#3#735#33535#3353#j……vv 2 R 2 j‡‡yy""3"U""3"qŽŽÈ @' # $ A' % %bÿéøÊ -73#735#3#735#73#735#3533#&'#5'67#zbb::$<<5<<\9>2" " #2Ê4177;   73 \ÿèõÐ%)/39?EKQ73#3#3#3#535#535#535#535'235#&'735'6'67&''&''&'è"??9988?>6699>>2?.&& 3&  Q  u    Ð ?    ?  e    `   ÿî™Ç !/73#&'67&'67&'63#67'75#„„   3   4    ]{5;I:2Ç   L' *ÿï…Å !/73#&'67&'67&'63#67'75#uu    /    .   Po-0;2.Å  H%  )ÿêÏ1733#3#5##535#53#"''3255'7567#536E005X6//D  26 :Q Ï''}'    ÿîôÆ !-73#&'67&'67&'63#3#535#ÆÆ&UX Ê]jçiYÆ   K33 ÿïuÅ !/73#&'67&'67&'63#7'675#ee  )   (   D`&")2'Å  I%  *YÿîòÄ !-73#&'67&'67&'63#3#535#c‹‹   7   9   iŒ=C™C<Ä   S**dÿîòÄ !-73#&'67&'67&'63#3#535#n€€  4   6   b‚8=Ž>7Ä   S**ÿíºk !-73#&'67&'67&'63#3#535#’’  A  ?  u–AK©KBk      (GÿîòÄ !-73#&'67&'67&'63#3#535#Rœœ   =   @   wGM«KCÄ   S** ÿéjÏ73533#67#5'675#'6 Ä"22: SI  D (Jÿîó— !-73#&'67&'67&'63#3#535#V””   :  :   m@M©I<—     9  MìÏ"73&''67&''6655667#× /=k   C  TÏ   % $En  ÿézÑ%)-7&'3&'73#67&'7''5'63535C! =    &***Ñ   W/   2"uÿéîÏ!7#"''3255#&''67##5373î    !4¨§  "B­¿''_ÿéòÐ "73&'73#3267#"&55#'655i5 5e  +§s  e-%44^ÿîóÎ-7#"''3267#5327667##"&55'753753ç      *  ŸR##$ _Yb  # d93D>Xÿêõ¿73#3267#"&55#'655#f…"   )%"¿© ! ¬RE, )  ” ` J # ~ÿéòÏ 73533##5#~2//2NN††‚ÿèøÏ7&''67&'±  Ï$r2 ]M02\!pÿéðÀ73#3##"''3255#535#ym*44  88/ÀAV  QAhÿéôÏ735#535333#&''67#75#n1''/9(&&* -`]6))I3 22 $.6)ˆÿéõÉ%7#"''3267#3&''67&'767##5è  9U     ?É4 J5$     qßzÿèóÏ 733#7&'7&''675#5335#35#®(( *3(((Ï,b6 ! 9bP>>> ÿémÏ&73533#3#3#"''3255##5#535#535# ""!!+   "" ±9 $WWwÿñôÅ 73#735#35#3#53535#35#35#ŠXX2222M }    Åg=C=JJJ99999aÿðôÅ 73#735#35#3#53535#35#35#zcc====Y“!!Åg=C=JJJ88888ZÿðôÅ 73#735#35#3#53535#35#35#tggBBBB^š#"Åg=C=JJJ88888Xÿðô’ 73#735#35#3#53535#35#35#pllHHHHdœ$$’J-,,:::***** ÿ÷b˜767'67'67676'6P (   %({( ! T 8ÿìõ 73#735#35#3#53535#35#35#X€€ZZZZz½,,W461;;;***** ÿíÀp 73#735#35#3#53535#35#35#&~~ZZZZu³**pD) # &$$$HÿðôÅ 73#735#35#3#53535#35#35#fqqKKKKi¬'&Åg=C=JJJ88888IÿéëÈ!773#3#"''32765#'67#735#35#3267#"&5536cySl g SSSS= "(  *"ÈU X" 8 31K    , WÿéëÈ!773#3#"''32765#'67#735#35#3267#"&5536noKb   [  IIII5 $ % ÈU Y! 8 31K    , `ÿéíÇ %7#5##535#35#535#53#3#3#7&'íggg " Q "UD  ÇÞÞ½«„++4  EÿïîÉ"&*735#53#3#3#3#535#535#'6735#35#`*9‚5==77CŸH661 \\\\g \\ Y8`ÿïóÉ"&*735#53#3#3#3#535#535#'6735#35#w!0p,22--8ˆ<--'JJJJj[[ V9 ÿÿeÀ73#3#67'675#535#V"  ( À6= D6cÿéöÏ!'+173533#3#&'#5'67#535#35#&'735'6p8771&" 18. ¹T DP.$TW.  ..  ÿéóÏ!'+173533#3#&'#5'67#535#35#&'735'6dddTA#3 9%": 5 @Td$@@ H@ »X"-NM*!XY2 22;ÿéòÏ"(,273533#3#&'#5#'67#535#35#&'735'6KIGG=,'%-(&=I ))5)  ¹T%LT/$TW.  .. UÿéõÏ!'+173533#3#&'#5'67#535#35#&'735'6c><<5'!( #"5>!!0!¹T"GR-$TW.  .. \ÿéõÏ!'+173533#3#&'#5'67#535#35#&'735'6i<992% ' ! 3< .¸R "GT.%RX0 00  ÿéô !'+173533#3#&'#5'67#535#35#&'735'6 iiiQ@$5 9%$77!?Qi+>>  E>  J !55 JI( ((  pÿéöÏ!&*073533#3#&'#5'67#535#35#'735'6u644.# /6, ¹TCJ*%TW.  ..  ÿçôÏ48<A73533#33##3#&''67'67#5367#535#535#535#353567\]]Pe‰: $ .$N :$9 =I9PddPP\p<<P  . ")#*55**1C!!!8! ¿       A  ÿçð¦59=B73533#33##3#&''67'67#5367#535#535#535#353567WXXMg…4 " /'E &/55@1NeeLLWk:::f4œ           7  TÿäôÏ#;B73533#33##535#535#535#35353#&''67'7#53667#a8DD7y/<T " 2 ,%#,,À"! !%    1   ÿç˜Ï#;A73533#33##535#535#535#35353&''67&'67#5367#2<<-g&22##2F.7  '' *¿" !    * ÿé…Ï#'?D735#53533#33###5#535#535#335353&''67&'67#5367##++44* *##..#5.2    #  '  + pÿéîÇ %7#5##535#35#535#53#3#3#7&'îXXXGK<ÇÞÞ½«„++3  rÿèôÆ"7#5##53'>33267#"&5ã@&    Æ‹yy‹(R.*  #,9 ÿío}7'67#535#53533#3#&D "'("""#  " jÿæòy"7#5##5333267#"&55'>Þ@*   . y^LL^% !   $KÿéëÅ 7#5##535#3533#3#535#35#ëzzz ***"W"*22ÅÛ ܽ«%FFO"aÿéîÅ 7#5##535#3533#3#535#35#îggg$##K$''ÅÜ Ü½«&EEP$hÿéîÅ 7#5##535#3533#3#535#35#î```! H!$$ÅÜ Ü½«&EEP$ÿéãŒ7#5##535#3#3#535#535#35#ãžžE55'c(55E/@@Œ£ £„q44UWÿèé– 7#5##535#3533#3#535#35#ékkk%%%N%((–® ®‘€888fÿéîÇ )7#5##535#3#&'#5'675#535'2îdddN !!  !!!ÇÞÞ¾¬ :0 #pÿêìÅ (7#5##535#3#&'#5'67#535'2ìXXXH     ÅÛ Û¼ª D2'RÿéìÊ  $7##535#35#7#"''3255#535#5#–1‡  1Ê\…á%87Ä b\%8aÿéîÊ  $7##535#35#7#"''3255#535#5#¡,y  ,Ê\…á%87Ä b\%8KÿèíÊ #7##535#35#7#"''255#535#5#’6$$$$‘ 9''''ÊO“â -/Ì zO -LÿéîÊ  $7##535#35#7#"''3255#535#5#”4 Ž  8%%%%Ê\…á&<6Ãa\&<FÿéêÉ $7#"''3255#535#5#'##535#35#ê  7&&&&$6$$$$ÉË  ‚D & 5Dœà & NÿèïÊ  $7##535#35#7#"''3255#535#5#˜8&&&&  9''''ÊCà ( 'È  €B ' VÿèïÉ #7##535#35#7#"''3255#535#5#›3!!!!‡ 5####ÉGšá ' +Ì ‚G ' ÿèæ— $7#"''3255#535#5#'##535#35#æ  I7777&G4444—–  HH ' 7Gf­ ' ÿéë– "7##535#35#7#'3255#535#5#tJ8888Á O====–He­ & ,” FH & žðÒ!73#&'#'673#&'#'6+B"pM( Ò   ÿèïž +/373#3#535#5#35#3353353#3##5#535#735#35#ÝH<Æ CÈÚ‰ÿéöÏ!%)-73533#3#&'#5'67#535#35#33535#335•%%%$  $%"4"»[' !;;![9; ÿéö !%)-73533#3#&'#5'67#535#35#33535#335gggQ?#7 :&$75#?Qg)>>R>>>R>’O "44 O.-Yÿéö›!%)-73533#3#&'#5'67#535#35#33535#335d<<<5& #" !)5<""4#W""4#G !84 G* % rÿéöÏ!%)-73533#3#&'#5'67#535#35#33535#335v455.%  #.4-H-»\"">?\9:YBôÍ!%)-73533#3#&'#5'67#535#35#33535#335e:<<4'"  #'4:""4"V""4"à  >   > # ! VÿéõÏ!%)-73533#3#&'#5'67#535#35#33535#335b><<71% !$',6>##6$Z##6$¼\#!>C#"\9: ÿéuÏ"&*.73533#3#&'#5'67#535#35#33535#335***$$   $*&:&½Z =BZ88ÿéñÇ"(.473#3#"''3255##5##535#&'7&'&''&'âg^  JJ^g3 i N Ç“  {‘‘™¬?   $qðÎ#73#3#5##5##535#3#73#3#73#ÄXfQQfX??d@@e??e@@Î (11' "yðÎ#73#3#5##5##535#3#73#3#'3#ÄYgRRgY??d@@@@e??Î%++$   ÿéLr 7&'&''6&  ) r      Eÿèôl#73533533#3#535#35#'67&'S4!!)¬(044  Y Z2   ƒÿéæk73#"''3255#'65533535œJ -)*+km 0("  ÿé…o#'+/73533533##3#3##5#535#535#5#5#35#335),,0055++Q) +h  &  &  - QÿéìÇ%)-73#3#"''32765#'67#'67#'67#735#35#msG_   2 -0+ KKKKÇ^ N -9!+* 7:nÿéìÇ$(,73#3#"''3265#'67#'67#'67#735#35#{f=R , &$    >>>>Ç^ N18"+' 7:fÿéíÇ$(,73#3#"''3265#'67#'67#'67#735#35#wkBW / )#   CCCCÇ^ N18"+% 7:ÿççe$(,73#3#"''3265#'67#'67#'67#735#35#0¢r‘   7- ;3)&}}}}e6+     !gòÐ")/57'6'#3#3#3#&''67#53567&'#7'6'6× 5-4TPPPP[ -1 #£ 90% #7 7Ð       ;V 8     WòÏ")/57'6'#3#3#3#&''67#535&'#67'6'6Õ 0.3VOOOO[  +1 L" 1 2$ %5 :Ï      D] C      JöÎ!'-37'6#5353#3#3#3#''63'#67'6'6ß 7/‘"n\TTTTb -3M # ‘ 2 5$ $9 :Î  OI   L    pÿéìÇ$(,73#3#"''3265#'67#'67#'67#735#35#{f=R , &    >>>>Ç^ N18" +# 7:NÿéóÏ %)-73533673#3#5##5'67#535#67#35#35#d-10F!YM  59-A MMMMµ ue TAzÿéóÏ#'+7353373#3#5##5'67#535#67#35#35#Š #2B3 $'2 3333µ ua oAKÿé©Ï #'+7353373#3#5##5'67#535#7#35#35#V " 5" ' """"´  ud pCÿéê&*.73533#3673#3#5##5'67537#535#35#35#D'## =Z hy  'PT'yyyy‹  [ B U- zõÐ73673#&'#'67#QqB, 6#% 9 (=½     }ÿéòÈ #'+/73#735#'3#735#3#3##5#535#735#33535#335¼44N33 h+1111**B*È22/V((355ÿèì$)-173533673#3#5##5'75367#535#67#35#35#H8) )FQb  DE8X &-bbbb€  Z E   @0Uÿéì{$(,73533#3673#3#5##5'67#535#35#35#e(  !8?M 64(MMMMk  I4 E % -ÿéá  7'66553'#3U Ÿzzt(8+ (N, ^ÿéóÏ#'+73533673#3#5##5'67#535#67#35#35#q$)/BOE -.$8 EEEEµ ub  nB ÿéóË,049=73#3#3673#3#5##5'675327#535#535#735#35#35#35#)¬\BB(& 'JRw%$iXBB=„„„„wj wwËE  T ;   ) % '…ÿéóÏ!$(,73533673#3#5##5'67#535#7#35#35#”  , <. "#. ....´  u`pCQÿö’Ï7&'367'5#j  * Ï ?m  pEÿéòÏ!$(,73533673#3#5##5'67#535#7#35#35#]/24I^Q #7;/C !QQQQµ  uf oA>ÿé„Ë#7#"''32655'67&''67&'76t       Ë 4=#$&   ;ÿê’Â473#67&'#"''32655'67''67&''67#CM           '$ ‰ÿéôÏ#'+7353373#3#5##5'67#535#67#35#35#™ &5* "* ****´ u[ pC òÏ%*.73533#3673#3#5'675367#535#35#35#%D22" 3OQŒhUD.dcdd½ V<  \3Cÿéñ¡$(,73533#3673#3#5##5'67#535#35#35#](**&>OT ")@7(TTTT  a M  W3 ÿèò”$(,73533#3673#3#5##5'67#535#35#35##K11)" 3Z cp'.(WbK.pppp„  Z I  R.lÿéóÏ $(,7353373#3#5##5'67#535#67#35#35#z%% '8 I> ..%8 >>>>µ  u` oANòÏ!%)73533#32673#3#5'67#535#35#35##D553 1W!]˜.'TVD0pppp    >.  ? $ ÿççD)/573#"''3255'675#73#"''3255'675#&'7&'b %-3&Pnb %-3&P`uDK   K     ÿé{Ç$(,7#"''3255#'6553533#3#535#3#735#{   A  3//ÇÅ  ¯SC7 3B_28;~ÿéïÆ(.473#"''3255'675#73#"''3255'675#&'7&'…3    !:0    /  IÆÃ  8 VÅ  5 X   ‚åÊ #73#5'675#73#5'675#&'7&'[%,In[%+IfrÊE  E  VÿèöÏ"(,0673533#673265#"''67&'#7&'3#735#'6\O44      P|  e??5%.2©&6$5!(#,->7 DC!:  2÷Ï'+/573&533&'73#67327#"&''67&'#3#735#'6 L     €[[44M1<?·  !%,   )5, ÿéúÐ"(,0673533#67327#"&''67&'#7&'3#735#'6€ML    À  žVV..M2=Cª&3#" /&7.=9   GK%I  JÿèïÏ#)-1773&533#673265#"''67&'#7&'3#735#'6NY66     %Yƒ  m@@3$+0©&%%4!-%1'@8 FC#< wïÏ 73#5##53&''67&'d¶b - )X(" #'Ï --$    ÿéó‰'+/573&533&'73#67327#"''67&'#3#735#'6s "P   uQQ--M2>@j   '/  !& 5+ ÿéó†(,0673&533&'73#67327#"''67&'#3#735#'6s "Q    tQQ--M2>@r  &#"2  #,7.  ÿékÏ!'73#3#5##537#53635#35#35#7&'S ""0(6 (000000Ï™™c?@®  ÿèíË ,73#535#535##5#3#"''3255##5##535##5)©©•‹‹•ÄNI  54HQËTN,1  GG5G/qÿéôÇ *73#535#535##5#3##'3255##5##535##5ggVOOVu'0 0'ÇPO/  FF7Gÿêì– ,73#535#535##5#3#"''3255##5##535##5-ž¡Ž††‹¿OH   66IQ–C  >!  33$3$tÿéî  ,73#535#535##5#3#"''3255##5##535##5}efTPPSq")  *$ @  =&  ::-< yÿéõÇ *73#535#535##5#3##'3255##5##535##5†bbPIIPo", ,"ÇPO/  FF7GSÿéöÏ48<B735333##67&'#"''32655'675#535#535#33535&'`288  ,    $33==2E%%%f »$%   &+ /$/  ,ÿéô¸37;A735333##67&'#"''3255'675#535#535#33535&'E@FF   1  +# 5"@@YY@T222x  š"#   "    "' ^ÿé÷Ï48<B735333##67&'#"''3255'675#535#535#33535&'o+44  '   #--55+>!!!` »$%   &*  /$2  hÿé÷Ï59=C735333##67&'#"''32655'675#535#535#33535&'|)--   "  #**22);Y »%$   $) 0%2  ÿéñÏ.26<B735333##67&'#"''32655#535#535#33535&''6'OJJ ! :!  PPddOc666•Q'13¼$%   /3 X$2   ÿévÏ$*073533#3#535#3#3##"''3255#&'''6*++$Z#* UU e(  *T  5  ½6=  9 cÿéõÑ "(.7#5##53&'73#3##"''3255#'67&'ï^73OO‰=   9 \³0/ *K  H ÿéì™ "(.7#5##53&'73#3##"''3255#'67&'ì³aV••Õa   ^1! {! ˆ)) #.  + GÿéóÑ "(.7#5##53&'73#3##"''3255#'67&'ìoA ;[[žF    Dl´10 +J  G hÿéõÑ "(.7#5##53&'73#3##"''3255#'67&'ðW2 .II8   4 X ³0/ *K  H !TïÎ "(.73#5##53&'3#3##"''3255#'67&'‚]°^7““Ñ^  `5 ' (x# "Î""!      MìÐ 73#5##53&'#3#535#35#¡ByGCYcvGGPPÐ #$078'_ÿèëª !73#5##53&'#3#5##535#35#…\­a^‰“€vv€€ª ,,16D ‹&]pÿéòÐ !7#5##53&'7#3#5##535#5#ò[5'MQ>99>>¶%%  +@M ¢-qpÿéòÐ !7#5##53&'7#3#5##535#5#ò\7&NR?;;??µ$$  *?L ¢.rfÿéñÐ !7#5##53&'7#3#5##535#5#ñe<(VZGCCGGµ$$  *?L ¢.r_ÿëôÏ $*73&'73#3##"''3255#735#'67&'i89†r.  1LLd  ³ HA  =$@ ' NÿëôÏ %+73&'73#3##"''32655#735#'67&'\9C’ x3   1PP l  ´  I> 9#@ ' SÿëôÏ %+73&'73#3##"''32655#735#'67&'`: =Ž v1   1MM j  ´  I> 9#@ '  ÿéqÏ"(.7676767&'7''67'67&''674'$   &%  5  0„:"  /*i   ÿënÏ"(.7676767'7&''67'67&'4'''6$  $!  …9"   /+iTÿèóÐ<@DHLRX73533#3#&''67#5365#'67#5365#53533#3#&3#735#35#35#'67&'^   n    u€€ZZZZZZ  P À   &  Y? # #     ƒÿëôÏ $*73&'73#3##"''3255#735#'67&'‹,%eY# #33   Q  ³ H?  :$@ &  hÿëôÏ $*73&'73#3##"''3255#735#'67&'u04z g*  *AA]  ³ H?  :$@ ( uÿéòÐ %+73#53&'3##"''32655#735#&'''6µ/v1c'   )==@  9 Ð  ˜C  >8    '  Ï  +„a %6F#   $,   ?ÿéõÑ *1773&'73##5'673&''67&''667#7&'KG G£!  =>"     .  ¶  ‰j %'A-    $#+ VÿèðÐ !7#5##53&'7#53#3#5'35#35ðtD 1hU_LBBLµ))  Á ¢>M jSiÿéñÐ  7#5##53'7#53#3#5'35#35ñb< *]JS@77@µ)) Á ¡>N jS2ëÒ 73#5##53'3#3#735#35ƒ`°`?›ˆ•¨uu‚Ò ,.,0 2O=_ÿèðÐ !7#5##53&'7#53#3#5'35#35ðk@ .dQZG>>Gµ))  Á ¢>M jSOÿèéÐ !7#5##53&'7#53#3#5'35#35érD 1jV`LBBL¶**   £?N kSUÿêî¤ !73#5##53&'#3#5##535#35#¡BtBGV\JCCJJ¤ ))/5A …%[ÿéíž !73#5##53&'#3#5##535#35#€b²b`‹™…ww……ž &',4 A „#VÿèñÑ #/73&'73#&''67&''63533##5#Y WÈ2 u  •ieei¸    -9CCÿéñ™".73'73#&''67&''63533##5#[  \Ï3   t  ”egge„       $//Fÿèð¦ #/73#53&'&''67&''63533##5#Ÿ>–B  V lLJJL¦ $  !   - 22ÿéïŽ ".73&'73#&''67&''63533##5# XTÁ+  x ”eddew       "'' ÿéó¤$073#&''67#&''67#53&'3533##5#‚X*   J   -_bihhi¤  !   v--rÿéòÏ #/73&'73#&''67&''63533##5#{-0s F   O5665´      -   ;>> ÿè…Ð/397'67#53655#'6553&'73#35#535333##&'3535R    /)[$  %% =1 2;Y  C('k(  ÿèñ¥/3973#35#535333##&''67#53655#'6553&'3535ŽU³L<<B87 <9 0/:L[001¥2   & 1' )0I? tÿèðÏ"&*73#3#"''3255##5##535#53635#35#£5+5  ""5. EEEEÏX<  %SSDVX -4 ÿéuÏ"&*73#3#"''3255##5##535#53635#35#5/%*  +& 9999ÏV5  YYDVV ,2iÿèïÏ!%)73#3#"''3255##5##535#5335#35#9/:  '&92%NNNNÏX<  %SSDVX#4oÿéïÐ"&*73#3#"''3255##5##535#53635#35# 7-7  $#6/"IIIIÐ [7  "QQ@P[ /9ÿè{Ð 73#3#3##5#535#536#335#:,NQ*----'*;;;>>Ð 77++JZÿèòÐ 73#3#3##5#535#53#335#’>gk7CCBB4&ATTTXXÐ88++‚JFÿéôÏ#'+73&'73#3#3#3##5'65#5#35#w/  04----6} "C44444Ï!!! ,+!!3!!3!Aÿÿ†®73''67&'767#K2      ®A#%•ÿèôÐ#'+73&'73#3#3#3##5'65#5#35#³< #Ð$##„..$$4##4#;ÿêœÏ48<@73533533##3#3#3#&''6677#537#535#535#5#5#35#335D  ##*'  ! 6  ¾ 2    2 =ÿéðA 733##5#53wffggA11BAíÑ#'+73&'73#3#3#3##5'6353535k*5<4444;}00000Ñ L ! !;JÌ 7&''6' Ì  A Eÿèó#'+73&'73#3#3#3##5'65#5#35#p+6;2222<‚ A33333  g&'V“ìÎ 73353353#V..–Å )) 2 ;îÑ$(,73&'73#3#3#3##5'65#5#5#F8 JQGGGGY® (M?AAAAÑ  L & !+ÿéÚ1 7#5##535#Ú‰‰‰1H H+7ÿéœÏ #8>D73&'73#&''67&''63533##"''3255#'67&'F#R  .     5% % C ´      $   - ? <&  }öÐ73673#&'#'67#Sn9' / , < ,>À  !  ÿéð’"&*7'673&'73#3#3#3##75#5#35#+ 9TSHHHHW±ZFFFFFK "&   j'&Zÿéð‘"&*73&'73#3#3#3##5'65#5#35## )-&&&&0l 8)))))‘   `!&&ÿê\Ž73533#7#"''3255'675#   w"-  !)dÿéõÐ $(,#5'673&'73#3#3#3'353535   (  &-''''/f$$$$$ $!"!™!!2""4!!oÿêìÇ$(,7#"''3255#'6553533#3#535#3#735#ì  M  @99ÇÄ  ¬l>!!>w27;fÿéóÐ#'+7'673&'73#3#3#3##75#5#35#€  (  *&&&&-_4 „ #( """‰""3""3" ÿéóÏ  $(73#''67&'#"''3255##53#735#u( #(~! &9   Ž2QQ++ÏLB $;z  b€“+C!ÿéäÏ $(733#"''3255##537'6'&'3#735#u[  žWQ} &bb::ÏB‹  s‘¤< \P*PÿèëÐ $(733#"''3255##537'6'&'3#735#”C  sDDe  %EEÐJ…  nŒž<  XG%mÿêìÎ $(733#"''3255##537'6'&'3#735#¢5  W59Q  <<ÎG‚  kŠ;  YG%| íÏ $(733#"''3255##537'6'&'3#735#«-   I/2  J  33Ï@n  Ys„4  K@rÿèîÐ $(733#"''3255##537'6'&'3#735#¦4   U48 Q  99ÐJ†  qž< ZF& ÿédÐ#'73#"''3255'67#5353635#35#35#2$   $ &7  ******Ð º  )'p 299PÿéõÐ%)-48>7&'73327#"&'##5#'655365##5#&547##5#'&'š  ? OO  Ð 0"$$$!(99# ']G. Ž  ÿé÷Ó!%*04:7&'73327#"'##5#'6553635#33&535#73''&'s  a :<zy99M7„:9M9ˆ  Ó q(.CAA& '3IG E r ÿòðÏ!'7&'73#3#535#53635#&'7'6P  r ;FNáIEƒ9""?  °Ï ‹‹³‹#+ *&1! ( ÿïó’ *7&''63#3#3673#53&'735#535#‡14 5607 E s/YY 2Þ4 YY0’   #   #DÿîóÏ#)/7&'#3#3#535#535#5'63&'&'7'6“%, 0CCK¥G??- 7 V  i  Ï& DD $ ^   RÿðõÏ$*07&'#3#3#535#535#5'63&''6'&'œ$% *==CœF;;) 2YB [  Ï)== %$_   }ÿðô¾7333267##"&5477#€_A  #8G¾}  !'$i ÿðò± &,7&''63#3#3673#535#535#&'€,8 52+; C y3YY  1Ñ^YY3  ± %!/// qÿêðÆ73##53#3#"''3265#ƒ^^ MK OÆ=*G-vÿéóÄ73#3##5#535#}q05544-ÄInnIrÿîôÏ-7#"''3265#532667#"'&&55'753753ê   )! ¤U$/ `Y g# cD<E=lÿêöÐ7&'5#5'66556Þ   4Ð$>C4t"¿7L? $5%HqÿéêÈ7#"''3255#'65535#35#ê <;;;;ÈÁ 3.) 5@_;(b'VÿéòÒ 48<7'2'6'&''&'33###"''3255#535#535#33535Ù 6NA> /    „8  77@@7L$$$Ò     ()!  )ÿéïÑ 48<7'2'6'&''&'35#533###"''3255#535#75#35#Õ LmZPB  /  aL®N  PPa¯:::Ñ       A((  (^ÿéóÏ 48<7'2'6'&''&'33###"''3255#535#535#33535Ù 3J=9  *    |7   22::1E###Ï      )("  ) ÿéó›48<7'23&'736733###"''3255#535#535#53&'3535Ô JjX5 #  R SSiiU T>>>›    !   wÿéôÑ 48<7'6'6'&''&'35#533###"''3255#535#75#35#Ú #C ?!!0)k /  ))0^Ñ    D)*"  ) ÿèöÑ#'-373#53535335335#33533535#35#35#'67&'Ýí8#o$$8#$“$$8##7$$I*'b'$ &&´B/////n.....F    `ÿçõÏ#'-373#53535335335#33533535#35#35#'67&'è ” #E"V"#5 N¯uu ;)))))c)))))@  IÿçóÏ#'-373#53535335335#33533535#35#35#'67&'ã© )O'e'(;!Y¯uu :(((((c)))))@  XÿçôÏ#'-373#53535335335#33533535#35#35#'67&'å› &I%[%$9Q¯uu :(((((c)))))?  JÿèñŸ#'-373#53535335335#33533535#35#35#'67&'ã§(O'd'(@ SŒ]]/K5   fÿèõÏ#'-373#53535335335#33533535#35#35#'67&'è "D"T""7O¯uu :(((((c)))))A  oÿçõÏ#'-373#53535335335#33533535#35#35#'67&'ê … ?M 2 I¯uu :(((((c)))))@ ÿèõˆ!%)73#3#&'#5'67#535#735#33535#335+¨LcN$5 ;)"8 3I^J66H8€66H8ˆO  10  /-ÿèï˜!%)73#3#&'#5'67#535#735#33535#335+«KcR#0 7"!62 QdL99M8…99M8˜T !8822dÿéíà 73#735#35##5##535#35#mvvNNNNlaaaaaÃ]797m m'<lÿéîà 73#735#35##5##535#35#uqqKKKKf\\\\\Ã]797m m'<ÿèâ 73#735#35##5##535#35#/¢¢|||| I,+)` `#5yÿéíà 73#735#35##5##535#35#€ee====YLLLLLÃZ578mm(>?ÿô¾s 73#735#35#3#735#35#IiiIIII]]]]s8" >% " G¸ 73#735#35#3#735#35#Ncc????qqKKKKF+ & (H+ ' ÿéïÄ 73#735#35##5##535#35#†aa;;;;VHHHHHÄ\677n n(=Zÿéôn73533##5#'67#535'6§ * *, #))#n00CC(‡tèÉ 73#735#35#‡aa====ÉU34€ÿèòo73533##5#'67#535'6¹   o00@@' ÿéžÅ $7#'6553#3#3#5##537#33535#\,x'//':''SSS,::Z>1 5=]=TTv~!dÿéðÅ $73533#3#5##535#'6553'#335#‡)--&7%*tOO877ˆTT@. 5>]=+!QÿéñÅ $7#'6553#3#3#5##537#33535#©1ƒ,55+B*,]]]1BBZ?0 5=]=TTv~! ÿé€Å $7'6553#3533#3#5##5357#335#-aO""'==(''Z?/ 2?]=TT[Ž"DÿéõÏ%+73533#3#3#3##5#535#53&'#535#367#T@@@N# ?NNMM>" !P@5& A¶ 11K \ÿéòÏ%*73533#3#3#3##5#535#53&'#535#367#j544@4@@@@3C5-4¶11K ÿé€Ï%*73533#3#3#3##5#535#53&'#535#37#&%%.&////&0&" (¶11K ÿéxÏ%+73533#3#3#3##5#535#53&'#535#367#"""+"++**!,"!¶ 11K ÿéóÏ%+73533#3#3#3##5#535#53&'#535#367#"UVVh1 'SggggT. ,jUB: \ ·11JLÿéïÏ%+73533#3#3#3##5#535#53&'#535#367#[:::G 8GGGG;I:1# ;¶ 11K ÿ逛$)73533#3#3#3##5#535#53'#535#367#&%%.%....$ 0&$%Š$$8 NòÏ%+73533#3#3#3##5#535#53&'#535#367#];::G 9GGGG9 J;1#:¼ ** > ÿçò$*73533#3#3#3##5#535#53'#535#367# VVVh3%O____M%1hVC:S 6 #‘ÝÈ 73#735#335335#ºº%%7%&È7^ÿðóÐ %73#5##53&'&'''63#3#535#¦=g;-  #y4B”?2Ð .1 : .22lÿñóÐ %73#5##53&'&'''63#3#535#®8\5)  n/;†8,Ð-0 : .22ÿïêe (7#5##53'7&'#3#535#5'673&'éª\,$ 7_Óa8 4 oW%&     @ÿéóÑ *7#5##53&'73#3#33#"&''675#éqBGt177/2 "0»**  6)0.;flÿëôÑ *7#5##53&'73#3#33#"&''675#îW2 9\$**#%   %»**  3.1,<j_ÿéôÑ *7#5##53&'73#3#33#"&''675#í[8=b'--')   '»**  3-0.; i ÿêõ¥ +73#5##53&'3#3#33#"&''675#„\­cF­LMM!0)E. /N¥ "" 9! #.N ÿé…Ñ *7#5##53&'73#3#33#"&''675#…L.4S$$     !»**  3.1-=kÿçîÑ#'+7&'73#3##5#535#53635#33535#335U  i &LddddLp i88M8…88M8Ñ  m..m@G ÿçiÏ#'+7&'73#3##5#535#53635#33535#335)  < ###''#/ '"1"Ï   g00g>CZÿéôÎ#'+7&'73#3##5#535#53635#33535#335‡  K #5CCDD5C>""5#X""5#Î  g..g?CSÿçòÑ#'+7&'73#3##5#535#53635#33535#335†  P 6EEGG6MH##6#Y##6#Ñ  g00g>ElÿæôÎ#'+7&'73#3##5#535#53635#33535#335“  B !/::;;/< 4/K/Îf11f?DGÿèò¥#'+7&'3673#3##5#535#735#33535#335|  _  "AJJNNA//B/q//B/¥   U33ÿèñš#'+73673#3##5#535#53&'35#33535#335T 1/PffiiQ) >>Q>>>Q>–  SS21~ÿæôÎ#'+7&'73#3##5#535#53635#33535#335   B +2222+= 5+D+Îe22e?E ÿæ’Ð#'+7&'73#3##5#535#53635#33535#3353  D !188::1? 70N0Ð g11g?Cÿîï¦ !73#5##53&'3#53535#35#35#€a­^`"Þ#qqqqqq¦ ,, 3nn%78iÿñóÏ !73#5##53&'3#53535#35#35#«;`7CŠ111111Ï *+ @††-GHRÿñôÏ !73#5##53&'3#53535#35#35#  CtBH ¢!;;;;;;Ï 01 @……,GGHÿèóÏ (.473&''667'6''63&''657'6''6›(! $/ ,< b 0+ .7 M? b  Ï$) A('#!* ÿç›Ï.27367&''676''367&''676''O "0 ( * 5 ". $ ) Ï  ,,   )jëÏ*067367&''657367&''65''67'6D   )l    (‰ p  Ï     !     !   7íd7#5##5íµd-,ÿíòG73533#3#535#)LKKhâeL,<ÿèôu /573&''66''67'6367&''66''6‹)$'&0-( l 4   7#81& u       +       ÿç†Ï-17367&''676''367&''676''D  (  # .  &  " Ï    ,,   )…ÿéõÏ!733#3&''67&'#5367ª22-  Ï"8(  0 ÿä³y177367&''676''6'6765367&''6_    "9 .)  58 *    Q  y       V    0  Hîs7#5##5î´s++ÿè÷P733265#"&'#3##5#535#/‘ ?44::*P,),*++{ÿèôÏ (.473&''667'6''63&''657'6''6³   ,  D ! % 4-  F Ï$ ( @(&#!* ÿéyÎ)73'67#'63#35#535#53#5##56/6  ' C0CÎ  %/ !!} x ÿó€Ò.73533#3#535#&'''63533#67'675#(((0s0(K * &$$0:&·0  " #Iît7#5##5î´t++Dÿèð  (.473&''66''67'63&''657'6''6˜(" "%+ .0  r9 + -6 N? d        4   ÿçíR 73#3##"''3255#'67&'6––¾R   X, * $|  R$     zÿèóÏ (.473&''667'6''63&''657'6''6¯  # -  K$ $ 1. LÏ$ (  A('"!*  YÍ.47'667367&''6'667367&''6I   6 $#    9 §   *  G     &  iÿèóÏ (.473&''667'6''63&''657'6''6ª  '!.  P ($ "+ <1  NÏ$' B(#"* 2ÿéÐY7#53#"''32=#335Ež  xxxx'pU  7  dÿèóÏ (.473&''667'6''63&''657'6''6¨ $#1  R(% $- ?2  Q Ï$' A(%" * ÿèó 06767&''6''667&''6''6{   00= b5 =   ' J  e9   # 1) $  .Uê %+17367&''65'367&''65''67'6°    )k    *  p             0íS7#5##5í¶S## ÿçô?7&''676''6À ") N#2) g n 4    9    …ëÎ#)/7367&''67&''6736''67'6E    %¡    (°oÎ     "    )    Qí~7#5##5íµ~--Qîx7#5##5î¶x''ˆêÏ%+17367&''657367&''65''67'6D    )l    )ˆ o Ï               gì…7#5##5ì´…ÿéìr 73#53&'3#3##5##535#`×^I¹¹¹¹³ŠŠŠr $  00 )ÿéØg"(,73#3#5##535#5#35#"&55#'67#333535#-§7;Š62^6Š( %!b#ŠŠŠg bb 2    <  F‡g 73#53&'P-z9g aÿéîÏ$*0673#"''3267#'63533##5'67#7'6'&'&'‹ Y   N (''  K1D Ïœ-$ !N::UA!B   8 HÿéíÏ%+1773#"''3267#'63533##5'67#7'6'&'&'{k b #111 !)^  A  O  Ï š/ˆ M::UEB   8 ÿèæ*0673#"''3267#'6'63533##5'67#7&'&'6    –| {KBB) &9(  \  u0a  ,,G@%;  <  `ÿéîÏ%+1773#"''3267#'63533##5'67#7'6'&'&'‰\   Q *(( #O6  H Ï œ-$ M::U@ B   8 cÿéðÏ%+1773#"''3267#'63533##5'67#7'6'&'&'Œ[  Q '$$   M5  B Ï š/% !N99WC@   9  ›ÿéñÏ973#"''327'#5'67#535&'75367'3#765#'6³3         )Ï )5>    +%  %_  ÿë_Ç!%)-39?7#3#3#3#"''3267&'765#55#5#35&'''67&'Z    8     ÇM  &&6!bÿé¡Ï#'+/73533533##3#3##5#535#535#5#5#35#335b   '¼%<((<%P ÿé~Î,2873#"''3267#'63533#&'#5'67#7'6'&',G  =    @ - Î ’„ R:: :6<  uÿéïÎ+1773#"''3267#'63533#&'#5'67#7'6'&'—M  @ "    D 0 Α &} Q:: 9><   ÿèzÏ.373533#3#3#3&''67''67#535#535#67#(%%""(51      .%%(4 %º      ‡ XÿéöÈ'-397367#53#3#&'#'677#3#"''3257&''&'''6a//w5I%!' &6   C    1 ™!# i  M#)+"!') ) " ÿêöÈ&,2873#3#&'#'67#5367#3#"''3257&''&'''6$·UqG77@ :JVMG X   JÈ "*/ Oc  F''+$!' )  *Mÿê÷È&,287367#53#3#&'#'67#3#"''3257&'''67&'_-+u7I$!$+##2   F  TQ  š  !$i  L#)+") ! !') <ÿéõÈ(.4:7367#53#3#&'#'6677#3#"''3257&''&'''6F87ŒBX-$'*  -C  I   8š  !$h  L#)+"!') ) !MÿèöÈ&,287367#53#3#&'#'67#3#"''3257&'7&'''6[,!n9H#$&, &&7   ,  .  T š  $2%!e  G%%)#% '(  ÿéó”%+17737#53#3#&'#'67#3#"''325''67&'7&'KM¿Zt=+ 3+: %8\   )e  7 l  !  M  1 %  LÿéðÐ $73#'66553&'33#3#5##5335#«:w :55,: ::Ð K>1 -!V ,&_ _B1bÿèñÐ#73#'6553&'33#3#5##5335#·0i7,,&2 22Ð M>3 3:X +&_ _B0?ÿêóÐ/573#'6553&''67#73533##"''3255#&'£ CJ  5  5  ÐI>. 08T %)‡‹""`  ]QÿêóÐ.473#'6553&''67#73533##"''3255#&'­<B .   .ÐI<0 /9T ƒ%)‡‹""a  ^ÿïñ— %7#5##53&'7'67&'3#3#535#í²^' - /K*&((f´QhâfO„*+     #""QÿèõÏ773#&'#5'67#535'633##"''3255#53567#Ø =- #& !*=/96u??  LLWÏ &*  f !  tÿéôÎ873#&'#5'67#535'23567#533##"''3255#ß 2% !0054 D]00  4Î'& •   LÿìöÑ +17=7&''6&'3'67#33267#"&57&'''67&'¤( ' # 4 )x  ` -  7 ƒ  Ñ    &; ;$ OÿìõÑ *06<7&''6&'3'67#33267#"&57&'''67&'£% &# 1 *u \) 4   Ñ     ';  8  $  ÿì˜Ñ !'7=7&''6&'3'67#&''&''33267#"&5''6M$(  !_  Hc      Ñ !  /  - 0 XÿìõÑ +17=7&''6&'3'67#33267#"&57&'''67&'¨$ # . $n V (  3 y  Ñ     ';  8  $ DÿìõÑ *06<7&''6&'3'67#33267#"&57&'''67&'Ÿ!* +"& 7 -€ f +  8 ‰  Ñ     ';  <  % rÿìöÑ +17=7&''6&'3'67#33267#"&57&'7&'''6¯  ( d  N   $   4  S  Ñ    '< = ! ÿéôÏ )-157&''63##"''32655##5##5##535#33533536 66)> Omm• $####6#$Ï#(# i 1111=‚2_ÿéøÏ (,047&''63##"''32655##5##5##535#335335¥!# ""% 1??` #Ï%($ i "2222>2!!!!! ÿéô› )-157&''63##"''32655##5##5##535#33533562 85(= O __Ž $%%%%6%$›  M $$$$-f'TÿéøÏ (,047&''63##"''32655##5##5##535#335335Ÿ#& %$) 4EEi &Ï$'$ i 1111=‚3!!!!!XÿéóÏ (,047&''63##"''32655##5##5##535#335335ž!$ !"% 1AAd %Ï&(%!i 1111=‚3!!!!!9ÿésÏ 7#5'6_  ϰ‚ 2 ÿébÐ73#&'#5'67#535'6R     ! %Ð'qq$!/  ÿéò¥-1597&'#5'63&'#"''3255##5##5##535#335335/8 k BWq   """""5""¥   *M  """",d'eÿéøÏ '+/37&''63##"''2655##5##5##535#335335§ " " $ .BB`  "Ï%'$ i "2222>2!!!!!lÿéóÏ (,047&''63##"''2655##5##5##535#335335§  )<3"""""ÿéŸÐ',17&'3#3#&''67#535#5'6367#335S! D*1   '0 ,/ÐA!A i  zÿéî¾73#"''32765#'667#'6_      ¾¦.-tdEHT!$ \ÿéôÐ"(.47&'#3#&''67#535#5'63'&'3655#335§ "  3/% ', , ,3 2:   3!Ð! A"'%A   bWÿéõÐ"&,27&'#3#&''67#535#5'63'3655#335¥#" !61( ). -.5 4< "!"5$Ð! A!(%AdmÿêóÏ!&,27&'#3#&''67#535#5'63&'3655#335« -) % & '- (0 -Ï  A!%#A  eQÿèøÐ&,287'3#&'#'67#537'6767&''6'6'6È L$ ) $1  . 0/ (> B: -T WÀ     S "*  ÿèŠÐ!'-397'3#'67#5367'6767&'&'''6'67'6j  :B$   # $# / 0- !@ AÀ     J   ! + ÿíõÏ'7773267#"&55'75'75'6Þ ')-/ &)! ,Ï &  )  4 5 (&DÿèøÐ(.4:7&'3#&'#'67#5367'6767&''6'6'6ÃR'  - '5  !3 44 -B H> 0[ ^À       S "* gÿè÷Ð'-397&'3#&'#'67#537'6767&''6'6'6Ï B !)  ' )( #4 91 'G JÀ   !  S "*  ÿê}È"(.4:@73#3#7'75#535#735#&'735'6&'#&''&'''6c)%%'-8-&&('    ÈX 7 77 w yÿðòÈ +73#3#535#5#35#3353353533#3#535#{s" n"@   Y*++3y2*ÈNN=,,,,,Y!! ÿêtÈ#)/5;A73#3#7'675#535#735#&'735'6&'#&''&'''6\&!!#)3$$& #  ÈX 7  77 v lÿìùÏ'159=A73673#'#3267#"&55##5'67#3533&'#35#33535#335x#>" )      (?(²  L   W");@FñÐ#7733#67#5'75#'67#5373#373##5#'66556J$$8/ =D ™ )L 1¤  5AA, #_ñÐ"6733#7#5'675#'67#5373#373##5#'66556J$$'5/ =Eš *M1«    ,22! =ÿéòÏ%:73673#3533#67#5'75#'67#73##5#'66556E(,    5. ¢ "=  +° $''@< $+ .<3 4E:ÿçóÏ%:73673#3533#67#5'675#'67#73##5#'66556#29   10 Í "-Y(  7¬ 94"6 -……>4 7F;Mÿë£Ï$73673#3533#7#5'675#'67#T#'   ( ±%'' ;3 $ÿçô˜$973673#3533#67#5'75#'67#73##5#'66556"5=  #51 Õ #0Y %  8}  &#'^^(' *2+IñÐ#7733#67#5'75#'67#5373#373##5#'66556J$$8/ =E ™ )L 1¤  6::, #ÿïóg)-7&'#3#3673#53'735#535#5'63&'„+:1MM7á8 MM/GKg       dÿïòÈ#'+/733##"''3255#53567#3#53535#35#35#xi88  ==No Ž "!È  hOOO=====nÿðôÈ#'+/733##"''3255#53567#3#53535#35#35#e44  ::Kj †   È  hNNN<<<<<VÿïòÈ#'+/733##"''3255#53567#3#53535#35#35#mr==  DDVx œ$%È  hOOO===== ÿéóÏ*0673673#&'#'67#3#3##"''3255#'67&'Sg@03!= -B8dd,¾U  U#…¶  ")';  8 !VÿéõÏ)/573673#&'#'67#3#3##"''3255#'67&'f/C(") % CC‚7   8bµ "((<  8 !  ÿéó›*0673673#&'#'67#3#3##"''3255#'67&'Rh?.2! < (!>kµ ")(;  8 !  ÿèöÐ 673673#&'#'67#3533##5#3533533##5#'67#L m;+ 4"& : +=/211234L33M0 '2· ,*0)==&EÿéôÏ!773673#&'#'67#3533##5#3533533##5#'67#R1U, &)&%%%%" 8$$9$ ²   '&,- ::$eÿéöÐ%;73673#&'##5#5'67#3533&'#3533533##5#'67#p)C#   !  ,)* ² ! !!  +T!!!!::%^ÿéóÏ$:73673#&'##5#5'67#3533&'#3533533##5#'67#k,B%  #  3+, ²   !!  +R ::%ÿé£Ð7353#5#535#535#733#3#3##"))!!"P%% **§)ç2++;),+1XÿéóÐ7353#5#535#535#33#3##533[&))$$&j$$..(§)ç1,++,1ç)JïÐ733#3#3##'3#5#535#535#53‘JJCCKK8GG<>88??d" ÿèòl73#5#535#535#53733#3#3##^QQHHKK.MMHHRRl„ `ÿéóÐ7353#5#535#535#33#3##533f"((!!"d))$¨(ç1*++*1ç(Lÿèïš735#535#5353#5#733#3#3##L1&&++1Y441177$²*ˆ+ÿéçU)/573#"''3255'675#73#"''3255'675#&'7&'b $,3%Onb $,3%O`vUY Y   ÿéð—73#5#535#535#53733#3#3##ZJJ>>DD6GGAAMM—®.. ÿåóI767&'67'5'6‚   .O)   OI ?%  +Cî¨7353#5#535#535#3#3##533GLLAAGAAKKHšb      e ÿéòÏ733#3#3##5#535#5335#35#mhhUMjjiiIB-Ï_++_'9WÿéòÏ733#3#3##5#535#5335#35#”EE;3DDDD4-TTTTÏ]++]';eÿèòÏ733#3#3##5#535#5335#35#ž>>72====1-QQQQÏ^--^':PÿéòÏ733#3#3##5#535#5335#35#HH=5GGGG5.WWWWÏ^++^&:_ÿéòÏ733#3#3##5#535#5335#35#—AA80????1*NNNNÏ^++^&:oÿéòÏ733#3#3##5#535#5335#35#¡881+8877+&DDDDÏ]++]';ÿéð733#3#3##5#535#5335#35#oaaTMggggMF2………… J  J *zóÏ733#3#3##5#535#5335#35#§440*3333("????Ï R&&R!1R îÎ733#3#3##5#535#5335#35#HH@6DDDD8/\\\\Î L L, ÿéwÏ733#3#3##5#535#5335#35#4//*',,,,&";;;;ÏZ--Z%8TÿçöÏ-73#35#535#53#3267#"&55#'667#56‘&&Z%%&9!    Ï  rJ M..$'j]ÿèöÏ-73#35#535#53#3267#"&55#'667#56–""S###6    Ï !!rK  N.- #'j{ÿçöÏ-73#35#535#53#3267#"&55#'665#56£B/   Ï  rJ M0, #)jiÿçöÏ-73#35#535#53#3267#"&55#'667#56œL 3   Ï  rJ M/- $(jÿêÏ$7#'67#5673#35#535#53#67'Z+&I 4  K?" 1n ""vE =Ä£*73#35#535#53#3267#"&55#'67#56l  K!!1   ,!£ W(  ..!Rÿèòi+73#35#535#53#3267#"&55#'67#56t &;;‰99@S6 "$ C < 0,i    G # AkÿéóÏ #73#5353335#35#35#'67&'³5q)=fKKKKKK  F«€€8978'     ^ÿèóÐ #73#535335#5#35#'67&'«7w,C OOOOO ! !@«††68&&(   HÿéñÏ #73#5353335#35#35#&'''6 AŠ5M‚ccccccI!)! «€€8988(     ÿçîÑ #733#3#5335#35#35#'67&'reeP¬H4„„„„„„!.*e(( ))Ñ……':9*   |ÿéóÏ #73#5353335#35#35#'67&'¼/f%4X@@@@@@ =«€€8978(     X ñÏ #733#3#5335#35#35#'67&'’JJ?„2]]]]]] JÏ rr!..#    ÿçíÆ $(735#53#3#67'7&''275#735#5##5#&QA•APPMd0-Q$mm}=>nDDE%  'k y!!!!ÿî~Ê!%)7&''275#535#53#3#67&''35#5##5#l $/''Q!(( -++3) )DDDD% t z####pÿéóÐ"&*7'673&'73#3#3#3##75#5#35#‡   $  &"""")Y0‚$' """‰""3""3" ÿéóÇ'+73#&'#'67#735#33535#3353'6673#'±$" ('2/$$::O:‰::O:uQÇk "! ?EH&&  UTÿéõÆ'+73#&'#'67#735#33535#3353'6673#d€   $$7#Z$$7#O 6Æj "! >EH(%   ULÿëíÉ'+/3773#3#"''3255#7'7&''75##535#735#33535#335V‹  + $ (<3 4!U 4!É]T  = "[m7;[ÿéîÉ'+/3773#3#"''3255#7&'7''75##535#735#33535#335d6A  .  '",?6##6#Y##6#É^V  ? "]o8:ÿéê˜)-15973#3#"''3255#67'7&''275##535#735#33535#3350¡F_  K 3AG[G44H4|44H4˜O <  (CS /-oÿëðÉ(,04873#3#"''3255#7&'7&''75##535#735#33535#335wp.7  %  !#6./K/É]T  = #[m7;'ãÇ#'+/3873#3#"''3255#''275##535#735#33535#335&'#&¯N\  & .<H[O<G[K77K7‚77K7ÉaS  ; Zm9;Oÿèñ™(,04873#3#"''3255#7&'7&''75##535#735#33535#335_‡:E 3 $,&7J:((;(c((;(™P ?  * DU 0.UìÉ'+/3773#3#"''3255#27'7''75##535#735#33535#335a€6A  .  %.*/C7##6#Y##6#ÉR@  *  BS10ÿë„É'+/3773#3#"''3255#7&'7''75##535#735#33535#335i+1   0++C+É^V  ?   #[m8:zÿëðÇ'+/3773#3#"''3255#7&'7''75##535#735#33535#335€g+4   "  1+*C*Ç^S  <Yk7<ƒÿëïÈ'+/3773#3#"''3255#7&'7''75##535#735#33535#335ˆ_'/     *%&;&È\V  @! $\m7<Šÿçêa7#"''3255##5ê 8aK 6hz ÿýz_ 73#67'75#`',9 ,%_-  2ÿèåÒ (,073533#735#33535#335#"''3255##53#3#[[ÊHH\H¤HH\H  Š!nnnnÁV42-`  Ifx"ÿéâÑ (,073533#735#33535#335#"''3255##535#35#YYÆEEYEžEEYE  †††††ÂU21.b  &y!. ôs73673#&'#'67#^nA* 4J9Nc " ÿéâÈ #7#5##53#3##5##535#35#35#⟈ˆˆˆ™‚‚‚‚‚‚‚ÈSAAS € €"12ÿêˆÈ !7#5##53#3###535#35#35#ˆOBBBBUS@@@@@@ÈWFFW r  //mÿéìÊ #7#5##53#3##5##535#35#35#ìYCCDD[PPPPPPPÊUCCU#€ €"12ÿé‹È #7#5##53#3##5##535#35#35#‹QDDDDWCCCCCCCÈWFFW!€ €"22fÿéíÈ #7#5##53#3##5##535#35#35#íaPPPPcOOOOOOOÈWFFW!€ €"22qÿééÈ #7#5##53#3##5##535#35#35#éTFFFFXDDDDDDDÈWFFW! !33ÿéêœ #7#5##53#3##5##535#35#35#ê«••••¢ˆˆˆˆˆˆˆœD33D  ee % % cÿéöÄ /7#3#3##535#73#535#3&''67&'767#¥/,,,,7AA,,E      /ÄO0Û=+M)L1"     ]ÿéöÄ /7#3#3##535#73#535#3&''67&'767#¢2////:CC..G       1ÄO0Û=+M)L1"      ÿèYÎ73533#67#5'675#'6  Ä009UJ D (Qÿçóš /7#3#3##535#73#535#3&''67&'767#’/..//ÿì~› ,73#3#535#33535#3353353533#7'75#l h .+V)''(/;0)›999= iÿðóÉ +73#3#535#5#35#3353353533#3#535#n&#{$'I##e100:Š<1ÉOO=+++++X!!;ÿïÁr#'+73#3#3#3#535#535#535#33535#335335>‚'#4//9†;//4#'85#r 0    0 /ÿéðÏ$(,04:73533#3#3##"''3255#535#535#35#33535#335&'eiiP66 ——‚Qe'>>P=>>P=w  ¿W%  "W35H ~ÿéòÇ #73#3#537#35#35#35#'67&'ƒn-*`!,:::::: <Ljˆ<==+   NƒÂ 767'533`  #x]  ²8ÿëá 7#5##535#'#5##535#á444$4442222ñ #73#3#537#35#35#35#'67&'ØiV¯E[&‰‰‰‰‰‰* !5 4Y+**)OO   ƒÿçõš #73#3#537#35#35#35#&'''6‡e('Z(666666/  šll///"   ÿ胡!%+1773673267#"&53#735#35#35#'33#'67&'* "0$ - PP,,,,,,-^pB ¡    H3,H   Bw˜ 733#67'B!! ˜%F Bÿé“Å$733'67##"''3255#53&'767#FF     1Å ! ^  Z ÿçñÆ %73#3#5367#35#35#35#'67&'•\% K#))))))  4  Æ ˆˆ =>>.    AÿêšÌ"&73533#3#&'#5'67#535#35#335H         ·H  <;$HL&&&–ÿçóÐ &7#5##5367#'6733'>&'í)#  "   ‰q``q  #8" –ÿçöÏ%+733#5367#'635#35#35#'67&'¹' G& %%%%%% / Ï tt  E23)      ÿèPÏ73&''67&'67#5367#%     Ï,W* #'l!:&[ÿéôÏ!%73533#3#&'#5'67#535#35#335i99941% " )/39 3 ¶E)$BE&,EL!!!ÿé†Ï"&73533#3#&'#5'67#535#35#335200,, %,2,¶F ?G'FM""" ÿézÏ"&73533#3#&'#5'67#535#35#335,**'' "(,'¶F >D!'FM"""KÿéµÏ"&73533#3#&'#5'67#535#35#335Y%$$""   "%!ºE GH#EI###/ÿç•Ï!%73533#3#&'#5'67#535#35#335A!!!  !  ¹MJE#MR+++ÿéóÇ 7#5##537#53#3'>&'ì,#[$ ¡‚pqƒ '@'  !"Kÿé Ï"&73533#3#&'#5'67#535#35#335R    µD  =A"DO$$$?ÿ鯞"&73533#3#&'#5'67#535#35#335L'''""  #'#‹9  )/9;·ÿèë› 73#"''325'3#Ù  "›™  }juÿéõÏ!%73533#3#&'#5'67#535#35#335{0//+  +0*·G(,OR.)GM!!! ÿ胓"&73533#3#&'#5'67#535#35#335/--''  '/'…8  -386‚ÿèó™73'67#'6'65&šE 6 % ,$™ $N#$H0N ñÐ &73533#3##5'67#535#35#335&'UBCC99$#'9B'':&¼CIE$CE: ÿéYÏ"&7#5'67#535#53533#3#&'35#335>   $  ,C>!DD  3$$$Jÿé˜Ï73533#"''3267#'655#_    §((,#u&S3 2G&•ÿêóÏ!%)/5;73#3#3#"''3267&'77#5363535&'''674'¶&7??@    @%%%    ÏL?  ˆ gmÿçô $73#3#5367#35#35#35#'67&'t{44i"3EEEEEE Doo 2.."     ÿêqœ%733'67##"''3255#53&'767#X     &,  @œ L  G  fÿéñ™ $73#3#5367#35#35#35#'67&'g‡:7r'9NNNNNN @™ll-,-!      ÿém—7367&''65''66    +  —. ': $ Wÿ窙 #73#3#537#35#35#35#'67&'WS!J))))))  1  ™gg0,+    iÿûšÃ 733#67'i  Ã=_  ÿèïÈ $73#3#5367#35#35#35#&'''6×gT¡7Z.||||||]+$")6!-*Ȉˆ >==-     jÿèöÈ %73#3#5367#35#35#35#'67&'t|32r+4KKKKKK  F È ˆˆ >==-      ÿèqÏ$73533#3&''665&'767#535# (((# "  C"(­""#+ # ÿéqÍ73##5#'66556e %B  -Í /„„<2 8E: ÿê{Æ 73&'73#67'5#'6553*+iQ  =¤† f,332ÿêqÅ%733'67##"''3255#53&'767#Z    $.  CÅ _  [   ÿé˜Ë+/37GKOS7#5'75#53#'35#35#5##5'75#53#'35#35#5#7#5'75#53#'35#35#5#—]~K888888*?&q*?&~ E?3 & ' f G;/ % &   G;/ % &  ÿé‹Ñ.26:>BMRV[733#3'67#73267#"&55'75#'65533#735#33535#335'635365#25#5#2;,,;*      & RR 0 .8Z  Ñ     J=0 07UH9"  < )‹ÿèòÇ #73#3#537#35#35#35#&'''6Œd('Z'5555552  Ljˆ==>,   ÿé‹Ç (AGMSY73#735#35#&''67#'6727677&'7''67'67777&'&''&'''67&'dd>>>>   I      3)ÇI- ( U   &     %"  ÿê‡Ñ !%+73&'73#3#735#3#735#3#735#35#'6 ,8znnJJ99%dd@@@@W2>CÁ  S6 " 8?& # ŒÿéòÇ #73#3#537#35#35#35#&'''6Œd'&V)222222.   Ljˆ=>>,    ÿê‚Ä%/57367&'#"''3255'67567#3353#5#7&' T       >Pb Ä     ;(¡‰  ÿèy*067676767&'7'#"''3255#'677'6&'''60  "#  B  0  y  '  + %  ?   ÿéƒÏ$(,7'6553&'73'#3#"''3255##535#35#/ )&@@  (((((~8; 2[2  ;*#l  .ƒ#3ÿñ{Æ !.73#&'67&'67&'63#7'75#ff   *    *   Fc)$*4+'Æ   I( +ÿèqD #53#=#,X2[\&&TÿçõÏ"/73533#&''6765#'677&''6`9AA#&,6 %9   L  µ4 O$:>%"ME "-S LÿçõÏ#073533#&''6765#'67&7&''6Y<EF%)/: (<   ]   ´3 P$;> ' LD %*E  ÿéòÏ#073533#&''655#&''67&''6_``NLK i_% ’ °! F$:9%3L!  %/!aÿçõÏ#073533#&''6765#'67&7&''6l4;;#'1 !4   M µ5 N#9<%"NE "-E  XÿèôÏ#073533#&''6765#&''67&''6k5<< #'6 '4  ^  µ: I#7<'!L    #*    D#ö¤#073533#&''655#&''67&''6N@II<:7 J@  n  ˜ $#&      Cÿíò:73533#3#535#Z877M¯O8%ÿéõ’$173533#&''6655#&''67&''6bbc&H C'R ;,b$ ‡  € 8400&     (  ÿèót$073533#67&'&''6767#&''6_aa  . B(J 4_'  f     +& %    ÿçó &373533#&''>5#&''67&''6aaa$H A&R*,a+ ‡  Š =53 )(   %  aÿè÷Ï$173533#&''6765#&''67&''6j5;;) 0 " 4   [ ¶69##7<' M    *    ÿç’Ï"-73533#&''665#&''6'''6122& 1`  D  µE0HP    ' ÿçƒÏ"-73533#&''665#&''6'''6,,, # ,T   =  µG/GQ    ' ! ÿê{Ð#/73533#&''655#&''6'&''6&'' 0&I   :  µA'*>A   +  ÿçyÐ'+7533'67#3''67&'767#'65535#@& #   8°  -+   <0 /9V@- ÿózÅ)73&''67&'767#3533#67'75#]   H*''.8.*Å $      i# ( ÿéŒl(.47&'#"''3255'67'67676767'&'''6q     !  2  K $     "     h…Ï !7&'7'63533#&'#5'67#+TY/00  &Ï   !!   gÿéôÃ73#3#3267#"&55#'667#|hh „%   !Ã2d # g:5,4 ÿéô¿"73#3#32667#"&55#'665#$¸¸ØE  $ ,- (?¿0a  h8/0 ÿèò 73#3#3267#"&55#'675#YY o#0 >2 I   O=5@ÿêòà 73#3#3267#"&55#'667#_yy˜0  & &Ã2c  f8.1ÿéòz 73#3#3267#"&55#'667#,¦¦ÙE " ) ))Cz. 4$   ë¡73533##"''3255#&';  ;  ‚H  B   ÿçœÃ73#3#67'5#'655#jj € %"Ã.`  pD- (<ˆÿéøÂ 73#3#3267#"&55#'665#šPP c   Â3e h=5-6ÿéŠÇ #04875#53#5'675#53#5'6'&'7&'3#5##5335#35#8)< O(;P G  1F'FFFF‘%_ #_ +  <j j&; ÿéò‹ 73#3#3267#"&55#'667#*ªª×E  # ,*(>‹=   C') OñÅ 73#3#33267#"&55#'665#a||—/!  'Å$K  Q/- '' ÿéÃ73#3#67'5#'655#__ v %!Ã,b  qD+ '; uïË73#3#3267#"&55#'67#.¢¢ÓH ( &$*? ?Ë    ÿéõp &*.26:7#3#;267##"&55#535#55#7533535#5#35#5#ÛGMM  ;!HH@@-?55;;86n;;86p$ 9  9 $ ck ;  |óË73#3#3267#"&55#'67#(°°ãX  ) ! F< CË     ÿëõ|"&*.273#3#32767#"&55##535#735#35#33535#335+¡JVV)0*=QDyy ==PB’==PB|( A  L  < % ÿçíÐ#<733533533##5##5##5#53#5##5#"''3255##5##5353:('(('(''³³¾  55IÏ:./28  !RR?QFÿéñÐ#<73533533533##5##5##5##5##5#"''3255##5##5353K¤ƒ˜  $$8° !++0;  &TTCTÿðóÏ'73533#3#535#3#735#3673#53&'eeeS»Ue±±‹‹ 7 =å> »6C7    ÿëÏ(73533#3#535#3#735#'7&'7767 100(d)1ff@@X3?  »6B N   ŠÿòóÅ 7#3#3#535#ðTKKWi99Å.S.Ó/:ÿí¬Ï(73533#3#535#3#735#7677'7&'E&%% R&OO++  1=" ·::0   ÿëÏ'73533#3#535#3#735#7677'7&' 0//'b(0cc== .9½8<6 LÿéëÈ !%7'6553'#3#5##5##535#35#35#x†&&8'sCCCCCCC…C= 4@\C1"ŒŒ%77UÿèïÈ !%7'6553'#3#5##5##535#35#35#$$6$nAAAAAAA†C< 2@`B0#Œ%88_ÿçìÈ !%7'6553'#3#5##5##535#35#35#‡x 2 e6666666†&@9 1=hB1 "ŒŒ%778ÿéçÈ !%7'6553'#3#5##5##535#35#35#i ‘--?,~OOOOOOO†C? 4A\B1 "ŒŒ%77WÿèïÇ !%7'6553'#3#5##5##535#35#35#|…&&9'p@@@@@@@…#E5 7>_B1 "‹‹%77ÿéåÇ "&7'66553'#3#5##5##535#35#35#; ¾??SC©rrrrrrr„"E4 2"_C0#‹ ‹%77 ÿé‘È !%7'6553'#3#5##5##535#35#35#/t0b5555555†)<7 .9kB1 "ŒŒ%77 ÿé‚Ç !%7'6553'#3#5##5##535#35#35#) k,X-------†471 )4uA1!!!"‹‹$89ÿèŽÐ,H73673#53&'&''67'6767767&'7&''67'6767767'2t"       N       Ъ '/-*?,   &/-*?+Cÿé‰Ê7#"''3255#'6555#35‰    &ÊÊ ?3& 7?a<*** ÿéöÏ)-73533#3#32767#"&55#'667#535#35#...& &A M4(.::¶G> C)# !!GM!y ôÆ 7&'''63#"''3267#'667#Í  P   ' Æ- / / %N7>JÿëôÇ "&*.7#'66553#3#3#535#535#735#33535#335ñ~ f)..77--*+C+ÇRC5 0$^!h<Fp ñÆ !%)-7#'6553#3#3#535#535#735#33535#335ïXK %]'  )  ÆD9+ -3OW    469ÿéðÇ "&*.7#'66553#3#3#535#535#735#33535#335ì… "k-22;ˆ;//,,G,ÇSE5 3#_!h<F4ÿéò­#'+73533#3#3##5#535#535#35#33535#335?LMMBBSSWWBBL00D/s00D/žXX249ÿéõÐ/37;7&'#673265#"''67&'#'66553'33#3#735#×  '-       N aV::88Ð 3"3!++)DG;. * R##$E# ÿè÷Ð)/37;7#67327#"''67&'#'66553&537&'3#3#735#ñD     b u$UUJJ$$¯5"'5")*%-4;H<. + T!  EJ& ÿèð™,0487#67327#"''67&'#'6553533&'73#3#735#ï?    " l} £TTNN**ƒ''"'-8.$ %+A "8UÿéöÐ-1597&'#673265#"''67&'#'6553533#3#735#à  !$     >NH0011Ð 03!+)#JH<- 05S##%E# ÿéòš,0487#67327#"''67&'#'6553533&'73#3#735#ì<    j| ¢UUKK''ƒ&*$ #$/:4 *7, !:SñÐ.26:7#673267#"''67&'#'6553&533&'73#3#735#î;      o¡^^RR11½  ###  $   & ÿéåc!',059733#"''255##5#'667'667#35#73535#735OT; =F   %RJ A@S=’CBT=cB     ^ÿéöÐ,0487&'#673265#"''67&'#'6553'33#3#735#â"    ;LF..//Ð /3!+3)$IH<- /6S##%E# ÿê’Ï'-1597#673265#"''67&'#'6553'37&'3#3#735#Ž      3E?''** ¬/7"$"4;H<- /6S### ?C%hÿé÷Ð-1597&'#673267#"''67&'#'6553'33#3#735#å      7ID,,.. Ð .5!)!'.@I:/ .8S##%E#h£Ï73533#3##535#35#h#¥***Sb*k/dÿéó•-1597#673265#"''67&'#'6553'33&'73#3#735#ð'     5F _(('' „&+  +)8/$ &*A  ; ! ÿêóÃ04873327#"'&'#3#7&'7&''275#535'25##5#¸  ¥ #;;*;P)":: F8)(È!&… H#  $H[%%%%lÿéôÃ048733265#"&547#'273#7&'7''75#53#335#lr a%'%  $# ÃE6$$ -$;-<) F#  &F(((WÿéóÇ#'+/37#5##53533#3#3##5#535#535#35#33535#335íj:::66DDGG66:$$5$Y$$5$Ç##)TT32^ÿéóÇ#'+/37#5##53533#3#3##5#535#535#35#33535#335îe67744AAAA336 3!T 3!Ç##)TT32FÿéóÇ#'+/37#5##53533#3#3##5#535#535#35#33535#335ìw@@@;;KKOO;;@((;(c((;(Ç##)TT32‚ôÇ#'+/37#5##53533#3#3##5#535#535#35#33535#335ôN''....''(>(Ç()!  N  N ,- ÿéÆ#'+/37#5##53533#3#3##5#535#535#35#33535#335O)))''))11'')(=(Æ""(SS43|ÿéôÆ#'+/37#5##53533#3#3##5#535#535#35#33535#335ñM)**))2233(())@)Æ"")TT33_ÿéôÏ1E73533#3#3##5#535#535#73#"''3265#'667#373#&''67#`MA     I<@:* *- ,6¾W?-% !'v  %)  "dÿéîÇ"&73#"''3255##53535#335#3#735#Û dAB..AA ÇUo  Yx‰UUC,B>ÿéïŸ#'+/37#5##53533#3#3##5#535#535#35#33535#335í¶IFFPPeeffPPI ==P===P=Ÿ--"  E  E & % _ÿèðÐ&*.373#3#3&''67&''67#5'635#35#67€^gcEO  #   EEEE  Ð M  B / ) A  ÿçó@767&'67'5'6   !" K) ! F@   )   ÿçòM767&'67'5'6†  " O!"  PM   /#  & pÿéñÈ#'+/37#5##53533#3#3##5#535#535#35#33535#335ïY211--7777--2-G-È#%)TT32ÿèñÈ#'+/37#5##53533#3#3##5#535#535#35#33535#335ë°HHHKKhhffKKH77K7‚77K7È6##6,VV20sÿéõ¿73#3267#"&55#'655#m  $!¿©   ¬SE, );S)ïÏ#'+73533#3#3##5#535#535#35#33535#335^^^MMffffNN^#;;O:‰;;O:à  I  I ) ) }ÿéóÄ73#3##5#535#„j.3300)ÄInnIN ñÈ#'+/37#5##53533#3#3##5#535#535#35#33535#335îy...99HHHH::.'':&`'':&È%%$  M  M ++ ÿé–Æ#'+/37#5##53533#3#3##5#535#535#35#33535#335–b4550088==0040M0Æ""(SS33sÿïíÎ!%+173533533#3#3#5#535#35#35#35#'67&'w*`^q%******  / µY6IY56'    lÿçõÉ 073#735#35#3#3#"''3265#'67#'67#'67#~ff@@@@!…PR  4 . %   ÉP0..F+7+"   dÿé¨Ï73#3#7#5'6356—$Ï %0-š{ÿéòÆ#'+/37#5##53533#3#3##5#535#535#35#33535#335ðN*++**2222****@*Æ"")SS33~íÐ/373733#5367#35#3#3#3##5#'735#535#735#‡'o')[%%&&1"55+77Â!  ".  }ÿéôÇ *73#735#35#35#3&'73#&''67#536‹[[666666  +! $ %!#'ÇtS23'   %'   €ÿéòÆ!737#53#33#537#35##5##535#‰!e1+r% 3555š5$$$IWW8'ƒÿéóÏ(,073533#3#3#535#535##"''3255##535#35#‰'++&&0p- '_  66666¾R]  %t 1|ÿèöË573#3#535#535'667#'7#53333#"''67&'ç 8 G*  !)"#  Ë6<<1e(3G#  -†ÿéóÐ$*73533#3#535#3533##"''3255#&'%%%+l.%F   F( ³N<  8  ÿçžÍ"JR73#35#535#53#563327#"&'&'67'5&'67'537537&''5&'= !!M$$0oD            "   Í\Yc8".  . + , r   #  !{ÿìî¾73#3#5##5'67#35#ƒk2C+ $'++¾% y ] +=£LOÿé¦Ï#'+/73533533##3#3##5#535#535#5#5#35#335P  !!##  7 ! »$;((;$OQÿéñÏ#'+/73533533##3#3##5#535#535#5#5#35#335U:&::EEHH::'j:'':(¼%<((<%OnÿéïÏ#'+/73533533##3#3##5#535#535#5#5#35#335o.00668800 W.1»$<((<$O„ÿéô”'+/736533#&''67#3##"''3255#3#735#Š)),  #p   M ::‡   'A > .€ÿéñŒ!%+17=7#3#3#3#"''3267#55#5#5#&''&'''67&'î%(   R+3 '#Œ  8 &a     kÿìì¤+1773#"''3267#'63533#&'#5'67#7'6'&'ŠW  O  $##   I8  ¤xk B..   1:# 5    ÿés¢#'+/73533533##3#3##5#535#535#5#5#35#335 !$$((''%%A! &–  4 ## 4 @ ÿêóÏ#'+/73533533##3#3##5#535#535#5#5#35#3357M772RRjjhhRR/7˜M#>>R>¼&=''=&OpÿèõÏ 7&''6&'3'67#«! ' !d$ NÏ &(' #.2&"'£ÿìõÏ73673267#"&55'7» ÏO c  ]sÿé¯Ï 7#5'6  Ï!¥{ /oÿèõÆ#7#533&''67&''6667#'7#Œ W #    ; &´2C%"?+ F,(3/AkÿéõÏ73533#3#&'#5'67#535#x133/%  ""+1©&&'44ba-$$1'wÿñîÇ 73#53535#35#35#á w 666666ÇÃÃA.o.o.a©Î7''67'6767677&'   J -#94  @% tÿéöÐ73#&'#5'67#535'6à *4,'  +44Ð (/0'%ls2 )4$bÿí¢Æ73#3#"''327#735#h:&(  )%&ÆK(F AM%žÿêóË7''6767&'Þ _2< Uo vC% gÿéõÏ"73#&''67#5353533655#335å 2 +(+ 0 2 +**§N000!+N((N--<{ÿéòÁ%73#3#"''3255#&''67##537#{w00   16Á"‹  t  1’¤" ÿèó~#'+/73533533##3#3##5#535#535#5#5#35#335,[,,9NNkkiiNN7,š[::L:v )  )  3 ™óÏ73533#&''655#""   "˜77)($5¢ÿôõÐ 73&'73#3#536'&'¦ K6 S&  £ H4=@4581_ÿì Ð73533#7#"''3255'675#b   ¤,,( Q  B 3pÿçõÏ048<@DHN735333##3#3#&''67&'7#5367#535#5#5;5#33535#33535#33567#|-- -/@L  (   1- -G-K1$ $Ä  .   .  ' D P  qÿïõÉ #'+/373#3#735#33535#3353#3#735#33535#3353#xzzmm-I-ayyoo.K.j„„É @& $ $ @' $ %ZÿçõÎ3Nhn73533&533&'73#67327#"''67&'#'67#7''67'6727677&'&''67'672777'&'i   2   #   F     H)]Z,   "   )N -%P cÿèôÊ 'DJPV\73#735#35#''67'6767677&'7676767&'7''67'67&''&'''67&'trrLLLL   2      : 0ÊO/-X    ! "    K  ‚ÿéëÉ 73#735##"''3255##535#35#†aa;;R  CCCCCÉ>>x  1&;~ÿèìÑ"(733#"''3255##5335#35#'&'7'6¬,   D*DDDD  [  Ñ=’  !@¬.Jt  uÿèôÐ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#35#35#35#33535#35#{ 5-  E ,3-+E+ÀF  %%F-O6 ÿésÏ#'+/73533533##3#3##5#535#535#5#5#35#335 ##''++$$B $»$;((;$OÿóðÊ#733533#3#3#3#535#535#535#53\!BB</**=)f**=)ÏWWb5Iÿë Î%)-1573#3#3#7'75#535#535#535'235#33535#335’ ""R#""" - ÎS S ^5_êË$(,0473#3#3#3#535#535#535#535'235#33535#335Ø2;;0033<‹=330088-7$1P1Ë  J    J  T* ÿéñÎ73533#3267#"&55#'67#* .6B: ž00ˆ  Žv-)l ÿêŠÎ%)-1573#3#3#7'75#535#535#535'235#33535#335z 44,,--*s7//--55+4,E,ÎV V ^2LÿíôÏ&*.2673#3#3#3#535#535#535#535'235#33535#335Û  JJ<<@@J¨K??<.))<)e))<)ÏXXb4 ÿéîÌ%)-173#3#3#5##5'67#537#537'635#35#35#Þ.5`iŽˆt "3C3=Bf3ttttttÌ k 00 ÿéòÈ %73#735#35#35#'33##5#'67&'G™™ppppppBÁd]; 4 -o($ &&ÈqP--FyII  cÿòôÂ73#3#3#535335#p€2++6‘;ÂLL}}ªiÿêðÁ73#3#"''3267#5335#365#i‡>: j"7I&'Á*s(%bQnnX£Ð7''67'67676767&'•   M -#:6 @& uÿééà 7#5##535#35#35#éNNNNNNNÃÚÚ;)d)e*`ÿìõÏ&73#5#3267#"&55#5335#53533#3Ë  # -88CCˆ_3 9P?S ScÿêóÊ73##5#'66556é ,;g!4  EÊ .<3 5E9]ÿêóÏ#73&'7&'#3#"''3265#7#5'6‰ U 6 = B Ï'!+5 !G-3 $ ÿèñÎ &*.273#3#5##5367#'665566535#35#35#ß #)VWIq;O  t',%qqqqqqÎ  Œ Œ  J:7G=' P77 ÿéïÏ "&*73#''67&'3#5##5'635#35#35#v3– $0e k0ÏB: " ƒ p233fÿçõÄ73#3#67&'7&''67#vrrŒB%- 45 4Ä:F (/ ):mÿéìÏ7#5##5##535335#33535#335ì!"66""6!W""6!£†EE†,,1O ÿîóL#733533#3#3#3#535#535#535#53bHH@@FFVæUHH@@IILNN       ÿìôÏ26<@73533533#3#&'#327267##"&55'67#535#35#3&'#353=33B@% v+ @& '@A3G==b 9 b¸ . IG ?ÿìóÏ26<@73533533#3#&'#3267#"'"&55'67#535#35#3&'#35Q")"",* V.  7$  &-"6))P . C· 2  K G 3ÿñÎ15;?73533533#3#&'##3267#"&55'67#535#35#3&'##3>#'  I"+(  %&0## <&099t      & + 6ÿé¯Ï!%7#5'67#535#53533#3#&'35#335€ %))))&! 6$4KI"$FF5"""Dÿé±Ï"&73533#3#&'#5'67#535#35#335R&%%!!  !&"¹EGG!(EK$$$ ÿé Ï &73533#3##5'67#535#35#335&':6622 $(0:1 ¹EcL#'EI!!!>Bÿé¨Å 73#735#35#35#'67&'NPP****** <  Å¢rNN6 ÿéÆ 73#735#35#35#'67&'jjBBBBBBE Æ£rNN5  Lÿë³Å 73#735#35#35#&'''6XMM''''''* Å¡qMN6 [ÿé­Å 73#735#35#35#'67&'dDD 0  Å¢rNN6 ÿèëÐ&*.373#3#3&''67&''67#5'635#35#67F‹” Ž`j /:(&6 /#(! "ppppÐL    A + ) @ LÿèôÐ(,0573#3#3&'5'67&''67#5'635#35#67xit sOZ  )"   PPPP  Ð L I  / ) ? \ÿèöÐ(,0573#3#3&''67&''67#5'635#35#67ƒ_ghGR  $  GGGG  Ð L    E  .* ? fÿèôÐ(,0573#3#3&''67&''67#5'635#35#67„[ccBN  "   BBBB  ÐL   E0 * @ Sÿçô§%)-273#3&''67&''67#5'67335#35#67#{jF T ' )    flKKKK&D… A     : ( # E iÿèôÐ'+/473#3#3&''67&''67#5'635#35#67ŠW_]BM  !   ????  Ð  L   @/ * @ nÿêòÊ '73#735#73#735#3#3#3#"''3265#7#x44+55Jhh„PL  S ÊB B ?4 %nÿéóÐ+/3736733#5367#35#3#3#3##5#'7#535#735#35{5€'+&.o'**445 ;4GG&¾  " (4BcÿèóÍ!%)-73#3#5##537#'66556735#35#35#ç +/0(9#, G999999ÍŒŒJ: 9H<*K99pÿéñÆ"&73#"''3255##53535#335#3#735#à  ];>))==ÆTr  ]x‰TTC,D=vÿéòÏ!/3773673267#"&5'67'5333#5##53635#35#³    + $ 9EEEEEÏ!   "$ b 0 o o 5BfÿíîÏ73533#67'7&''75#75##5#n222  2;:2d  ¢--`6" 9<<<<tÿêòÊ '73#735#73#735#3#3#3#"''3265#7#|22)33Iee ~MI  Q ÊB B ?4 %mÿêôÅ48<73&''67&'#367&'3533#7'7&''275#735#335xm     ,/.. .<//Å"     X7  rÿèóÐ%)-273#3#3&''67&''67#5'635#35#67’OW V=G      <<<<  Ð L    > . * @ aÿèòÑ4<@DHLPT73#33##3#"''3255##5##535#535#'6553&'5#35#5353535#33535#335¹0.& &*  )%%.9 ..%7<)A)Ñ   T  !i  D2 4=]( '   D )  ÿèôÐ!57&'#'67#53673#&'&'3533#3##5#535#y  2+: 1=Ž  1?, 3|  #+..ZZXX+ÐJ/!w g//RÿéõÏ!57&'#'67#53673#&'&'3533#3##5#535#¤  !# X  & #U  8877ÏI+t k..`ÿèôÎ373673#3#3#535#535#53&'3533#&''67#• :11==119!:?5&) 9 77Î   Œ #  (!LÿèîÎ473673#3#3#535#535#53&'36533#&''67#ƒ  !@66CšC66?' @F;)/ B ==Î   Œ $ *$nÿèóÎ373673#3#3#535#535#53&'36533#&''67#3++6~5++227/!% 0 10Î   Œ #  &!eÿèôÎ473673#3#3#535#535#53&'36533#&''67#–  8//;ˆ://7!8<6&' 7 56Î   Œ #  % ÿéóÐ!%)7&'73#3#5##5367#53635#35#35#X e GnV;bˆ aÐ   ˜˜d>>OíÏ#73673#3#537#53&'35#35#35#x " )H?-A&\\\\\\Ï   {{ W66vÿéóÏ $(7&'73#3#5##5367#53635#35#35#”  E &6/A"2B /AAAAAAÏ — ™ c?@†ìÐ#73&'73673#3#537#35#35#35#† )$V)000000²  {{587Zÿèï.4873673#3#5##535#53&'5#35#"&55#'65#333535#‡$ !0(b*1%8(b  Lbbbœ  x x 5>  K ÿë\%7#"''32654''67&'''67&'76K         *.     KóÑ*0473'73673#3#5347#5#35#"&55#'67#333535#>  6 ?Q?Â<M‚%;, ) "q&»  TT .   4  ÿçõG!:>B73533#27&'7&''275#735#33573533#67&'7''275#735#335)(( '2)'*++  (3**; - , PìÐ*0473673#3#535#53&'5#35#"&55#'67#333535#-6,ˆ(2&9&b IbbbÐ   zz 6E  VÿéñÑ/7;73673#3#5##535#53&'5#35#"&55#'67#3327535#Y 1  BRA™=MBF<™ ' )l ™™™Ñ  ¢¢ @X !($l‹öÌ?73#672'#"''32655'67&'5'67&''67#53&'736Ô*         # Ì           bSôÐ?73673#67&'#"''32655'67&#'67&''67#53&'ˆ  $=  (* # #"#6Ð        P îÐ<73673#67&'#"''3265'67&''67&''67#53&'€   .H  , 0#$ ) !;/ Ï       ƒôÌ?73#672'#"''32654''67&''67&''67#53&'736Ð-   (   !  &  Ì   (         a5ôÏ?73673#67&'#"''3265'674''67&''67#53&'‹  &?      %* &4%Ï   " (      0_È7#"''3254'7##5_  $È+  ,‡˜ ÿèbÍ73&'73#3#"''32765#'665##)&  ­ %g! BO,>PL^Ç7#"''3254'7##5^   !Ç  "k{ ÿékÆ73#7#5'675#35#35#75# ^   Æ€93 R Y!DèÏ73#3#3##5#'6G—zeejj $Ïa #ÿéÅI73#"''3267#'67#7Ž  9 D? +ID'7( ÿé™Ï&,73533#3#"''3255##5'675##535#&'9993   *39[ ¹; %“N*#?Rp ÿé˜Ï+073533#3#3#"''3255##5##535#53'65#)00::4    2= *ÊG  0^^J] " ÿ雯 &7'6553'35#"''3255##5##53536uaM &ƒ>9 .%O  <; 3 B 8!7 'GÿéïÑ *73&'73#3#735##5##53##"''3255#M@Dš ……__ƒ‚t. 4½  3.1/#+  (gÿêòÐ *73#53&'3#735##5##53##"''3255#±9ˆ8%jjDDgeY   (Ð *3/1 /$*  'KÿéðÑ *73&'73#3#735##5##53##"''3255#R=B• [[€m&   3½  3/1 /#*  ' ÿéeÆ73#7#5'675#35#35#75# X   Æ93 R Y!ÿêða7#5'75#53#'35#35#5#î'' Í zffffffIC7 ) ' mÿéôÏ'-733#3#535#5335#35##5##5'66&'§++:‡:,,-(@( Ï22#UG7;K'%ÿèí§ *73#53&'3#735##5##53##"''3255#ƒ[Ñ`8““mm£´!—>  F§ (* %,, kÿêòÐ )73#53'3#735##5##53##"''3255#³8„5$ff@@b^S   %Ð  *3.2!0%)  &VÿéóÏ 173#53&'3#735##5##53267#"&55#'665¤<Š9#mmGGljm   % Ï ,0,01"9  ,#&EÿéóÏ 173#53&'3#735##5##53267#"&55#'665A”=%ttNNuts   ( Ï +0,0 1"9  ,"& ÿéôÒ &*.73#53&'3##"''3255#53&'7363#735#€_Ô^G B(   ¬<  7}hh@@Ò  *  e  a>AÿéïÐ .4:73#53&'3#3##"''3255#535#53&'736'67&'„VÉ\B 8b[[   [[e8  > V & !y%$Ð  * 5 2 \ UÿêòÏ .4:73#53&'3#3##"''3255#535#53&'736'67&'¬4ƒ8) (;66   99=$  < ]Ï  +5  1\  4ìÑ 673#53&'3673#5#3#"''3255##5##535##53&'„SÆ[ 5=OG   55HR<Ñ -#  //*;-aÿéïÑ 473&'73##5##53&'7367533##'2655##5##5f4 :„‰h#   +2 ¹  #((  2: &XX?PRÿéóÑ !%)73&'73#3673#53&'#5##535#35#X>A–! &  '¡( vTTTTT¹    An n(>OÿéžÑ #'73&'73#3673#53&'##55#35RJOA32!!¹   Ca m(Vÿéò’!%)73#3#53&'#53&'367##5##535#35#©<+œ(>#9SQQQQQ’  4 (UU .ÿé{Ñ #'73&'73#3673#53&'##55#35(*g mUFG33¹   Ca m(Iÿéó¦!%)73&'73#3#53&'#367##5##535#35#S>B.ª+6'?X[[[[[      .[ [!/ÿèä’!%)73#3#53&'#53&'67##5##535#35#ƒ>8Ê3 ?'Jc_____’   6 S S ' ÿéë¥!%)73#3#53&'#53&'367##5##535#35#ƒT!7×6 \? Yxzzzzz¥    : ,^^#4 ÿéóÑ !%)73#53&'3673#53&'#5##535#35#€ZÊY 7  Bæ@‘{{{{{Ñ %   Av v,Dÿé€Ñ !%)73&'73#3673#53&'#5##535#35#),j rX77777¹   Bn n(>zÿêîÎ"73#"''3267'6765#'6&'šJ  $+2"?   Î ˆ!.( #ƒÿèðÄ73#"''3267#'67##5##535#…k  &" f;;;ÄH0=1`j jK9 ÿélÑ  $(73&'73#3673#53&'#5##535#35#""Y _L+++++¹   Cm m'>ÿéxÑ !%)73&'73#3673#53&'#5##535#35#&(c jR33333¹   Cm m'>uÿìôÑ %73#53635#35#3#3#3#535#535#¨ 'j"CCCCu0**47**1Ñ]]-97yÿèõÈ #73#735#3#735#35#35#'67&'Š\\66hhBBBBBB  ?È41qP//%    oÿéóÏ*.373533533##5##5#3#&''67#53535335#335r$$s/ % % ) ) 4 +++¸);!#%;;)#)‰ÿéóÑ !%)73&'73#3673#53&'#5##535#35#Œ'(c jR11111¹   Cm m'>ÿéñm!%)73#3#53&'#53&'365##53#5'35#5#S$?á?L ;J¢~~~~~m 'X??!  XïÒ<R7#''53&'73535&'#6''67'67'6767676767#"''3254'7##5£ '''&7     ¦ Ã7  N  $2    .  Xg qÿïòÒ !%)73#53&'3#735#3#735#3#735#35#3#¸38+qqKK==&hhCCCCÒ%T8 " :?& # $pÿéõÏ159=OT73533533##5##5#'673&'73#3#3#3#7#35#5##53&''67&67#t## *,((''+n1 p   & 9 Á ?    Q   )     aÿéõÏ048<NS73533533##5##5#'673'73#3#3#3#7#35#5##53&''67&67#g##""##  "14--,,6}5$$$$$z  !& !% 7 Á 9     R   +     ÿégÐ!'-7#3#"''32767#53673#"''326'&''6M)C   A  ¥YL&{ F %  g   ÿé€Ç(9>DHL767#533'67###'3255#'67#53&'#"''3255##5&'''63#735#/ Kc$  &3Z    KG    33µ       Fd  Pkz  , ~ÿéóÑ !%)73&'73#3673#53&'#5##535#35#‚,,m uZ88888¹   Bm m'>~ÿèöÏ+1773533#3'67#535#&'36533#'67#7&'&'$%%- X,$ 4+0. #.  N ·  1   6*('=   <yÿïòÎ!%+173533533#3#3#5#535#35#35#35#'67&'€*^]o $******   ) µY6IY56)   qÿèõÐ!>DJQ767&'7''667&'7''6'67'7#&''674''6'6'67'6¡  %)2    7    2" #%6 0.*) @Ð         1   JÿèôÏ*0573533533##5##5#3#&''67#5353533655#335Q#6##6#?+3< 3D66#$6(·$;)7+ ;;##)Uÿè÷Ï*.273533533##5##5#3#&''67#53535335#335b00ƒB!% !%2 5;111!¸#<$'" <<)))`ÿèõÏ*.373533533##5##5#3#&''67#53535335#335d00€;% '. - 9 222¸#<#(& <<)$)kÿèõÏ*.273533533##5##5#'67#53535333#&'35#335m))F + ' 6 +0 0 #<+·y)!<<%E+++ ÿêók+1773533533##5##5#3#&'#'67#5353533655#335 ;I::I;Æ!Z?IQ@ZFE13E? 94* "B ;2/E JÏ 7.# #,@ G'   PÿèòÏ%+173#3#'6553&'#53&'367#'6'6'6§?!y"=":; 5 0) ? 8/ +B EÏ 7.# #,@ G'    ÿèñÐ/5;73#&''67&'767#53'#'67#'6655'6'6ˆ_+!;&2 ‘[~21F D'} « 4R VB 7h lÐ      W   2(! :+(  ÿé„Ð %+1773#53&'67''67&'#'655'6'6'6J+m,    bV O  & .)! 80Ð %   !0- #.2     ~ÿèõÏ%+173#3#'6553&'#53&'367#'6'6'6½, X   *() &" .(! / 1Ï 8-$ %*A G)   VÿèóÏ /7&''63#3#735#36533533##5#'67#£' &"% ,CCuuNN#$(&&*)"Ï   5< 33/]ÿèôÏ /7&''63#3#735#36533533##5#'67#¨ !" ""# )??rrLL""&$$((!Ï   5< 44/ ÿçóÑ37&'#5'63&'3#735#36533533##5#'67#€08 ` OME››ss;C<??? 5)>Ñ    46B //+EÿèóÏ /7&''63#3#735#36533533##5#'67#™&) )(* 0JJZZ%)/++1-$'Ï   5< 33/kÿèôÏ 07&''63#3#735#36533533##5#'67#¯  %88eeAA !$Ï   5<33/tÿèôÏ 07&''63#3#735#36533533##5#'67#±  #11aa==#Ï    5<33.FÿéóÐ '-3733##5#5333##5##5#53533#5##53'67&'–::;;$%%7%%7&[6V L!#"Ð*O=?QQ  PÿéóÐ '-3733##5#5333##5##5#53533#5##53'67&'œ4444&55R3S J Ð*O=>P P  kÿéòÏ '/573533##5#3533533##5##5##5##53'66&'|,,,,**o>+"!  ¼!N>?O)) "  ÿéóÏ#+3973533#325#"&'#7&'3#3##5##53'66&'Œ:9 )¼  ›iillmG-",(¬#K,0XY4 7  G68I)%  [ÿéóÐ!%-5;73&533#3265#"'&'#7&'3#3##5##53'66&'_R** R}d??CCF' «%H2 ,*m0  6  F66F&"   RÿèòÎ,73#35#535#53#5##5673#35#535'2ß !GG,!!!4k +EED΂*… |  (‚ZÿèóÎ,73#35#535#53#5##5673#35#535'2à  DD*2f)BB@΂*… |  (‚cÿèóË+73#35#535#53##5#5673#35#535'2à BB&0:9&<<2<Ëed//_ eÿé…Î*73#35#535#53##5673#35#535'2u 22&] 112Î(z |  ' ÿéóÏ+735'673#35#535#53#5##5673#35# hL VV %*jjB444I–% 33@h• }# „ }  $}rÿèòÎ,73#35#535#53#5##5673#35#535'2á 77 *T !665΂)… |  (‚kÿèòÎ,73#35#535#53#5##5673#35#535'2á ::"+X #::9΂)… |  )‚ ÿéóÏ-3;?73533#3&533#67327#"''67&'#535#7&'#5##535#/..BA@   $ 8/´  ::::²"*,  '#5'"*$ \X g=+GÿêôÏ/5;?73533#3&'33#673267#"''67&'#535#7&'##535#Q,0/     i(†  (8$$²!*+ # $!%," ZNa=,\ÿéòÐ,28<73533#3'33#673265#"''67&'#535#7&'##535#`&&&  Z x  &,²M+".$"3%&# YM`<+bÿæòÎ'-733#3#535#5335#35##5##5'66&'¢11=@112/K1"""Î55%SK;?O('WÿéðÏ'-733#3#535#5335#35##5##5'66&'š22C™C112/K.!"!Ï22#VF6:J&&OÿçòÏ'-733#3#535#5335#35##5##5'66&'—55H£H44"""5""1Q2#%"Ï22"UF6:J'&ÿéò›'-733#3#535#5335#35##5##5'66&'wOOhäiOO<<9WÿéíÇ #73#3#735##5##535#33535#35#W–– YYvk,,?,k,,?,,Ç;:o o*?!ÿéॠ#73#3#735##5##535#33535#35#2””ll•—BBUB—BBUBB¥ 0._ _"1ÿé’Ç #73#3#735##5##535#33535#35#~~nnHHcY##6#Y##6##Ç9:o o)? ÿéàš #73#3#735##5##535#33535#35#0ŸŸ••ll–˜CCUC˜CCUCCš -+Z Z /qÿéîÇ #73#3#735##5##535#33535#35#q||llFFbW""4#W""4##Ç9:o o*?aÿêëÇ #73#3#735##5##535#33535#35#aŠŠ vvPPmb((:(b((:((Ç9:n n*?ÿêí™ #73#3#735##5##535#33535#35#ÛÛ¢¢||ž™CCVC™CCVCC™ ,)Y Z -TæÉ 73#3#735#3#735#33535#335T’’ zzSS++>+i++>+É 0-V36ÿéyÇ #73#3#735##5##535#33535#35#ffYY33MA*A*Ç9:o o)?FÿéñÊ (73#735#35#5#53#3#33#"&''6httNNNN C’ÏvY!!#.<€ÿïõÐ 73#7&'''6'66±-2 KE %*Њj"++#4 + F) ÿéôÊ (73#735#35#3#3#33#"&''675#1žžxxxx3ÞdWW,">A+fÊ[674".  E ÿèô~ '73#735#35#3#3#33#"&''675#1¢¢zzzz1ÛdWW,"B> 'c~?& " #     $qöÈ '73#735#35#3#3#33#"&''675#‰]]7777w3,, #%   1ÈN/,+  %6yÿêõÉ (73#735#35#5#53#3#33#"&''6‹\\7777 .n-$$ # É[6:OB"{ñÉ #73#3#537#35#35#35#'67&'q1,` ,<<<<<< C Éxx744'    mÿëóÉ (73#735#35#5#53#3#33#"&''6aa9999 2t.%% #%  É[6:NB ! ÿé†É 073#735#35#3#3#"''3265#'67#'67#'67#\\6666!xHL  -) "   ÉP0..F+6*!  ÿéiÏ7#5##5##535335#33535#335i!""3"¢u QQv--+GEÿçðÉ 273#735#35#3#3#"''32765#'67#'67#'67#^zzUUUU&¦gf   4 ;/ '  )ÉP0..E '. +" H7óÉ /73#735#35#3#3#"''3265#'67#'67#'67#^{{VVVV'ªli   $ ) #   )É7!)     Eÿêñž 073#735#35#3#3#"''3265#'67#'67#'67#^[[[[$¥or   & !/ ( "ž?' " $8(" J+ôÉ /73#735#35#3#3#"''3265#'67#'67#'67#`WWWW$¤dh   ( ", $ )É<%  !*     Jÿçð‘ 073#735#35#3#3#"''3265#'67#'67#'67#bzzTTTT'¢eh  A 9- & &‘?&  #2 %    ÿìL¢ 7&'&''6*  ( ¢  "  $ &$ #\ÿåô› /73#735#35#3#3#"''3265#'67#'67#'67#vmmIIII#]\  . (' ! ›A' # $ 8*    N íÉ 073#735#35#3#3#"''3265#'67#'67#'67#duuOOOO)Ÿ`a   < 4* " *ÉC) $ &; ,"  ’ÿéõÈ .73#735#35#3#3#"''3267'67#'67#'67#£HH$$$$_66   & )     ÈO//.G"( )   _ÿè–È7##'32654'7##5–  È? @ÑàƒÿêõÈ /73#735#35#3#3#"''3265#'67#'67#'67#–RR....!nAE  * &    ÈO//.G-6*" ÿèñm#)/5;73#3#3#"''3267#5363535'67&''&'7&'Vp‘±±§   ¦"ž j`  m1  U6      HÿìóÄ *0673#735#33535#335&'33267#"&57&'''6^$$7#Z$$7#%    ^  kÄpAL6 : 9  # ^§Ï73533#3##535#35#^+¥***Sb*k/pÿéëÊ $(,73#735#33535#335#"''3255##535#35#p{{""4!U""4!  KKKKKÊU230g  (~$4*6׎ 73#735#33535#335*­­::M:‡::M:ŽX46 SÿìöÄ )/573#735#33535#335&'33267#"&57&'''6g||!!4"V!!4"%    Y  f  ÄpAL7 : 9 !  ÿêõÅ .473#735#33535#335&'&''33267#"&5''6Šaa(=(  -  4 ÅrA P 9 ;    ># qÿìòÄ )/573#735#33535#335&'33267#"&57&'''6~ff)@)    H  O  ÄpAL7:  9 " +/Ñ‚ 73#735#33535#335+¦¦99K9„99K9‚S11 ÿìŽÄ )/573#735#33535#335&'33267#"&57&'''6ee(@(     J R  ÄpAL7;  : !  ‰öÆ (.473#735#33535#335&'33267#"&57&'''6•VV"5"   ?   FÆ]6?,  4  5aÿë§Í73#&'#5'67#535'6      Í) a[#+$QÿèèÉ $(,73#735#33535#335#"''3255##535#35#Q——00A0q00A0   bbbbbÉT231g  )#4kÿèíÉ $(,73#735#33535#335#"''3255##535#35#k‚‚%%7%\%%7% OOOOOÉT231g  )#4ÿèàÈ $(,73#735#33535#335#"''3255##535#35#ÂÂCCWCšCCWC   „„„„„ÈV320e  '}"1 mÿëöÆ!%)-159=73#3#3267#"&55##535#735#33535#33535#33535#335qr/77  #51 2P 2S##5%Z##5%ÆOQ  `/1Q3 nÿëöÇ $(,048<73#3#3267#"&55##535#735#33535#33535#33535#335tm.55 ( !3-/L/P!!3#V!!3#ÇPR   _0/P2 ÿç÷j#'+/37;?73#3#336767#"&55##535#735#33535#33535#33535#335'±OVV 8,CUN;;O<‹;;O<“CCWB™CCWBj2 2  8 1ìÔ 7#5##53&'7'67&'ê¯a' #3 8J-,-.Å     HÿéõÈ )73#735#35#35#3&'73#&''67#536`~~VVVVVV!# A3 7; 2:@ÈuR22'  )+  dÿéõÈ '73#735#35#35#3'73#&''67#53rppHHHHHH  7+ / / & 27ÈuR22'  &(  ÿêŽÈ *73#735#35#35#'67#53673&'73#&iiCCCCCC( $ ,14 ÈvS12^"     9ÿêÅs#)73#3#&''67#537#735#35#35#&'#Gn > #  -7-KKKKKKHsL   5   AÿôÁŸ!%)73#3'73#&''67#5367#735#35#35#Ob( 6   )1'@@@@@@Ÿ^    B & &  ÿêyÇ )73#735#35#35#'67#53673'73#&YY333333 # #' . ÇtR34]#     lÿèòÇ 673#3##'3255##5##5##5367#3653#&''67#p€77 +53<6) '% % /Ç ? +8888BS z  ! &(  $[ÿèõÈ 573#3##'2655##5##5##5367#3653#&''67#e=<  /;8A:+ -. -2È > )7777AS y  ! &)  "IÿéóÈ473#3##'2655##5##5##537#3673#&''67#RšCC  4B?IA2 4& 29È> )7777ASy   ( "Pÿè÷È"773#3#"''3255##5##5##5367#3653#&''67#X™AB 3D7H=,29 42È @ +8888BT x  " .1  'TÿéñÈ&*.473#3#"''3265#&''67#'67#735#35#33#mtNg + & NNNNI\ÈVT>    41a ÿêòÅ#73#3#5##537#35#35#35#35#35# åo jžH b#%%y%%A......Ū ª©xxxIJlÿéòÅ#73#3#5##537#35#35#35#35#35#l†:=W,8F#Ŭ¬©yyyKKUÿéïÅ#73#3#5##537#35#35#35#35#35#UšC Ff2 CQ)Ŭ¬¨xxxJJ[ÿéöÏ ">7#5##53&'73'67#&''67#3267#"&553#"''325ïc=A$< 1   g   ;  µ$%  ) j)S  "e  zE  fÿéöÐ !=73#5##53&'3'67#&''67#3267#"&553#"''325®6\6#8 . a 7 Ð $% > k(!Q  !e  zE  GÿéòÅ#73#3#5##537#35#35#35#35#35#G«MMt;JY,Å­­¨xxxJJhÿéòÅ#73#3#5##537#35#35#35#35#35#hŠ<?[.:H$Ŭ¬¨xxxJKKóÇ 73#3#537#35#335335#3#3åj dÅL f %%77$67777Ç `` Z> >>   ÿê‚Å#73#3#5##537#35#35#35#35#35# u25F$/ : Ū ªªyyyKK ÿè„Ð,273533#3#3#3''67&''67#535#535#67#+..&&+:;"   "1''+ ,»"   s  ÿéyÐ#0HN73533#&'#5'675#&''6'&''63&''67&''667#+((  +J   6  -     !½.   ,     3     sÿîóÏCGKO_7335#535#535#53533#3#3#35335#535#535#53533#3#3#353#3#3#735#3673#53&'{     pvvff@@!€ÇQ   YY Ra  ." ~ÿéðÑ J73&'73#&''67&'763353#3#"''3255#67'7''67##537#€--pF    <A*5  ' )'½     11B I  3   Qb ÿçóÏ&2JP73533#&'#5'675#&''67&''63&''67&''667#bee0: 2.#= A(b+    “  AC  "$70 76? ¿(!  #(    !   1   !   ZêÔ"&<I7#3#'6553&'75##5#35#3353353673267#"&5'67'533êH;°U *+++;*+;  % D!(=È # -       %  ÿæ€_!%2?7#3#'6553&'75##5#35#33533567'533#67'533€"W +   ?   S #,   -   '   ' {ÿæö_"&;G7#3#'6553&'75##5#35#3353353673267#"&5'7'533ð!W  ,       S #,        ' ƒÿéòÏ!73533#3#67&'7&''67#535#Š%%%08 $(!*%£,,,6 #)  4,hÿéóÏ!73533#3#67&'7&''67#535#t000;H#&  05.<0¤+++6  %* 4+ ÿóxÏ73533#3##535#35# ,++"G%,33¢---To-m.YÿéöÎ+1597373#3#3#&'#5##5'67#537#537#3&'#35#35#f5>A>CV  = )"(1E+====»  U WX 0:FÿéôÎ.48<73673#3#3#&'#5##5'67#5367#5367#3&'#35#35#S:CFDKd$ H +%,6 P6HHHH»    X W  X .: ÿéñ¤.48<73673#3#3#&'#5##5'67#5367#5367#3&'35#35#Sejhqˆ+ o *=7@M>mdoooo˜  H I 8,.iÿéöÎ*04873673#3#3#&'#5##5'67#537#537#3&'#35#35#t/365:M  4  %#,<$4444»  U TX 0: ÿçõ=26:@73533#''275#735#335&'#73533#''275#735#335&'#2)( (2)' 5*+ (3** 6+   ' 6 *   &  BõÐ(-157373#3#3#&'#5'67#537#5367#3'#35#35#Udjbiƒ*  /A3;N8hMjjjjÅ   /(  :  eÿéöÎ*0487373#3#3#&'#5##5'67#537#537#3&'#35#35#p1698=P  7  &#->&7777» V TX 0: ÿèói,26:7373#3#3#&'#5##5'67#537#5367#3&'35#35#Vbgdk€.!e /C;DPD]\eeeeb    .,  ) ÿéxÏ"(,27#5'67#535#53533#3#&'35#&'735'6L (,,,,)) 5 %  &=I('PP52  22  ÿé€Ð "*.7&''63#'6553&'35#3#5##535#K   $! J(777"""Ð  K.$ %,B %  C D'[ÿé÷Ï%)-73533533##3#&'#5'67#535#5#35#5#e;&?0 $ $/<');;;;·K")EC%"K:aÿæõÏ%)-73533533##3#&'#5'67#535#5#35#5#g9%=. ! -:''9999·K#)HD%#K:NÿæôÏ%)-73533533##3#&'#5'67#535#5#35#5#Y?(C4 $( &3B*+????·K$*JI("K:^ÿêóÑ ,73'73#3#735#33##"''3255#53567#^<A’ zzTT‚BB  @@a½ 43   SÿòôÏ!%73533#&'#5'67##55#353#Y>@/%%# !.jWDDp››³1. :VV#0ZÿòôÏ!%73533#&'#5'67##55#353#`;<,$#! -ydQ??i‘‘³/,;VV#/JÿòöÏ!%73533#&'#5'67##55#353#SAG6((' $1…r_LLy¤¤³0/!;VV#0fÿñôÏ!%73533#&'#5'67##55#353#k77(  )q^K99_‡‡³.+;VV#1xÿóõÏ!%73533#&'#5'67##55#353#~./#  #dTB00Suu²,);VV#0ÿç~ÍDLU73#35#535#53#5633265#"'&'67'5&'67'53753745&'77&5&6 ?*`4        . &  Í [Wa,- )! / . , t  " ! !  fÿéöÏ-1573533#3673#3&'7&'#5##5'67#535#35#35#y  ,:  ; &E3 ;;;;¶!  l ^tBoÿé÷Ä-3733#67&'#"''3255'675#535#535#&'‚Z6     !:ZFFH  ÄM   "*  /W NÿäöÈ %73#735#3#7#5'75#35#35#675#knnHH,›5=*HHHH( HÈ<6V#!^6:ÿéëÈ %73#735#3#7#5'75#35#35#675#0žžxx+Ì b=,tttt0DtÈ:7Zb6=JÿäöÇ %73#735#3#7#5'75#35#35#675#gqqKK,ž 7>+JJJJ("JÇ:7W#!_7:ÿæò  $73#735#3#7#5'75#35#35#75#-¥¥€€+Ö!O\-}}}}}} ,*GN,0 rÿäöÇ!&73#735#3#7#5'75#35#35#675#†[[55$y ).#55555Ç:7W#!_7:ÿçíÐ"(.733#5'66367#35#35#35#'67&'ZS ,¥ M H }}}}}}!/+](' ()Ð r% /57*    fÿé÷Ï &,733#5'6367#35#35#35#&'''6’5$r + )LLLLLLB * Ï }q 256'    ÿèð¨!'-733#5'6367#35#35#35#&'''6bK,§ 6LC [)( (*1"/-¨j_%,,#   GÿèðÏ %+733#5'6367#35#35#35#'67&'wG"  < ; \\\\\\! N Ï~s )67(     CÿéóÏ  $(,73#7&'''6#5##5'6735#35#35#–=  S‚W Q5 WWWWWWÏB8  "< o& #32 ÿéê› "&*73#7&'''6#5##5'6735#35#35#uF\!Ÿ|!k? "+-||||||›-%   *k _  ' ' RÿéõÍ@733&'76767&'#3#&''67#535#5'67&'767#a: C      79(!$+ 8 25!   )Å( ,       " !"   DÿéóÍ@733&'76767&'#3#&''67#535#5'67&'767#T> J   #<>+%"(1 = 69$    ,Å'-       "!"   ZÿèõÍ@733&'76767&'#3#&''67#535#5'67&'767#i7 @      45" $ - /1   &Å' ,      " #"     ÿçó¢B733&'76767&'#3#&''67#5365#5'67&'767#] C  !(GK60 33DI AF#    F—      !  Wÿèõ%9?76767&''3'67&'767#3#3#'67#5365#&'¹     5 E=   )"A>B6 * .37   = '   2 ! . ÿöU™ 7#5##535#35#35#U™ž £-HH4ÿçÑw@733&'76767&'#3#&''67#537#5'67&'767#:< G       "7;"  " *-3!   )q             5ÿþÌ A733&'76767&'#3#&''67#5367#'67&'767#D3 /    %*   (.  "š              gÿéõÍ?733&'76767&'#3#&''67#535#5'67&'767#u3 :     ./!$ -+-    "Å) -    """   xÿéîÆ"&73#"''3255##53535#335#3#735#à  P 84%%66ÆTq  [x‰TTB+D<SÿêôÅ6:>73&''67&'#3367&'3533#7&'7&''275#735#335^# &' &   '1888! 8K&!8%%8%Å      X7 ;ÿêðÅ6:>73&''67&'#367&'3533#67&'7&''275#735#335LŒ' * %1 / *7=>>>T*$=**=*Å     X7  `ÿêôÅ6:>73&''67&'#367&'3533#7&'7&''275#735#335iz "$ #  #-3332C#3 4 Å!      X7 Dÿèô›37;7#53&''67&67#7&'3533#7'7&''75#75##5#` '3 /$)R  :=<<- EPP=x))Š    ?0‡óÇ59=73&''67&'#3267&'3533#7'7&'#'275#735#335a     #$$ (.#$Ç    C/   ÿèób159?7&''67&'#5#3267#&3533#&''35#735#335&'7#Ú'<-,A. Q &6 RPP ]miP<DT73#"''3267#''67''67&'767#'667#&'&'''6733267#"&5{`           -  C  d    Ï WA    U   # 0  Aÿìôž-39KQW73#"''3265#&''67&''67'767#'6#6&''3326767#"&57&'''6jm           S    "n  wž G,      <  $  )  1Þ¤*073#"''265#''67''67'767#'667#7˜       ' [ ¤ J/      ?ÿê‰Ð7'6#5'6v   !Ð , zb  ÿéõš$(,735'673#&'3#5##535'67#35#35#e"# l8 5cI5 ?#II#< -'M/v #VV#F, ÿéóÍ#'+73#&'3#5##535'67#535'235#35#Ð %-eO#2 6)J~H#7 5"RbHU;~~~~Í%7l l1!—=sÿçõÆ $7'6553'#33673267#"&5™gAA5 !  €F4 4A_F4"*  - &  pÿîôË"(.7&'36732765#"&55'67''67&'¢ +   k  Ë-K3I\D"  L,%"( & 'xÿêóÏ/733#3#5##535#533567#533##"''3255#«,,3R2++38 6N 11  8Ï""„ & #oÿìöÏ'159=A73673#&'#3265#"&55##5'67#3533&'#35#33535#335y$="'      &;&² J   W!)9@qÿéôÐ59=AEI73673#33##&'#5##5'67#535#535#535#53&'5#3533535335–  #'      !!//Ï   %%6II. <% bõÒ'+/373#&'#5##5'67#535'25##3&'35#35#ËIcK"2 v 4"JaFOcDvvvvÒ  +/  4    ÿè}c"&*.73#'#5##5'67#535'235&'35#35#k/' 3 /(0 !3333c   ;8   3   ! €ÿèöc!%)-7#5##5'67#535'273#'3&3535#35#æ3  /((/  (0 3333#;8      $ ! ZÿîòÏ !7#5##53&'73#3#735#35#3#îi=6TTqqJJJJ(˜˜·3!!3  #`8>8_ÿîòÏ !7#5##53&'73#3#735#35#3#îe=6RRooGGGG'““·3!!3  #`8>8IÿîòÏ !7#5##53&'73#3#735#35#3#ìvA9^^||TTTT,©©·3!!3  #`8>8mÿîòÏ !7#5##53&'73#3#735#35#3#ðZ51JJ ee>>>>$……·3!!3  #`8>8ÿññ§ !73#5##53&'3#3#735#35#3#…_´eB  §§0áá§ %%) L.+,fÿîòÏ !7#5##53&'73#3#735#35#3#ï_93MM hhBBBB&ŒŒ·3!!3  #`8>8NÿêôÐ $,487#5##53&'7'673&''67&77667##5##535#ég<6 F # *") #  ; LJJJ¸#$  M      5M M0WÿêôÐ $*267#5##53&'7'673&''67&767##5##535#êa93 ? " ( &   4 HFFF¸#$  N       6M M0VÿèòÌ7<B7'23673#3#3&''67&''67#5367#53&'67'&'ä 6M@( -JSWM  !  ! "'& )  %  Ì      $,  m z CÿèòÌ6;A7'23673#3#3&''67&''67#537#53&'67'&'ã >YJ. 3  W`eX  #(" % (-+ ,  *  Ì      %) m { ÿèïÐ/4:@7'23673#3#3&''67&''67#5367#67'&''&'Õ KkZWŒ  t…r#*2%#* '"+491@-/  Ð7 "# 3 G ~     ÿèò£ >C7'6'6'&''3#3#3&''67&'#'67#5367#53&'67Ï =t |1  C  6 zŠ{+8'$. %)5=-3£           Z  jÿèôÌ5:@7'23673#3#3&''67&''67#5367#53&'67'&'å 2I<# )  FPTJ  $   #!'   Ì        m z  ÿè„Ì7=C7'2'67#537#53&'73673#3#3&''67&767#7&'x *>2     <CF?   0Ì   #*        † vÿèõÌ7<B7'23673#3#3&''67&''67#5367#53&'67'&'é /D9! &  DLPF    #   Ì        m z GÿéöÐ 48<@D7'2'6'&''&'333##"''3255##5#535335#35#35#35#ã *4* CUÓ  YFGG      1  )" "BÿéõÏ%:733#5##5'667#&'''63673#&''67#|H )d '> : L  9GJB) .? 7>Ï UEEJ    4   !&  Aÿçô¥#8733#5##5'667#&'''63673#&''67#‚?#d *:<K   7GJ>& /7 ,:¥ H76A   *  \ÿìõÑ $73#53635#35#3#3#3#535#535#œ>??8" ·‰  r‘£/ ** YÿéóÏ873533#3#"''3255##535#3673#3##5#535#53&'YCCC=  h-Af "$$%%;z. ÿéç)-1597&'73#3#"''3255##5##5##5'65535#35#335335wP¤¯  ###‘‘##5##‹ 4 G !!)D# %28$YCëÐ,0487'6553&'73'#3#"''3255##5##5##535#35#35#i;<kk #$‰4/ '1; 4$#R ####,f*mÿéðÐ+/377'6553&'73'35#"''3255##5##5##535#35#35#‹  /.`M       w68:n  >-@g #$$&&;{/ÿèÐ)-157'6553&'73'35#'7655##5##5##535#35#35## .)WE   x79 !7o  >-Af "$$%%;z. ÿèðš +X73#'6'3#3#"''3267#'655#53&'#"''3265#5;267##"&55'753753„]e> 0,   '·  . š    I48# "2$.= !831  3 ÿèð¤ )V73#'6'3#3#"''3267#'655#53'#"''3265#5;267##"&55'753753„^f? 0,   ' ¸  ) ¤  ! O9<% $7#0A #;69  :YÿéöÎ $(7#5'673#3#&'#5'67#535#735# #Q!+$   ")++ήˆ .$M%! LH#))>ÿèöÏ $(7#5'673#3#&'#5'67#535#735#d /\'3*  &1#44ϰ‚ 2+N$ %VU) '( =ïÏ %)7#5'673#3#&'#5'67#535#735#B  '2y3FF## # 4E2TTÏaF  #.  ÿéö  $(7#5'673#3#&'#5'67#535#735#<  !3~5J;)&* (:I5YY ‚a ,)?CC" 1ð« #)7#5'673#3##5'67#535#735#&'<  #/z5HH& -A2TTF  « T= + &!   ;  UÿèöÏ $(7'67#73#3#&'#5'67#535#735#k   )T#-%  "*..z &,±ÙM%!"ON%()[ðÐ.47367&''66'3#&'#5'67#535'6'6­  ( ;%%%  (-"1F  Ð    (+  #' XÿéõÏ,2873&''667'3#'#5'67#535'6'6''6¿  (     !b8  Ï?% L!15EA7&e^#+"& %)  ÿéô˜1773#&'#5'67#535'67367&''66''6j$$  %, .d   % 6 $# ˜NN!( ! 20!<'$]ÿéõÏ-3973&''667'3#&'#5'67#535'6'6''6Á  &     !^3  Ï?% J 03DB;) a[!-$& %) [ÿé©È735'673#&'#5'67#b     …& + fe! eóÐ;73#&''67&''667'3533#3#&'#5'67#535#¡F    ¸***,,  $,*Ð       Qÿèð™ %*73#535#535##5##5#53&''67&67#gqr`nn_‚t o"+)# 7 ™B  < .    ÿëðÉ (73#735#'3#735#3#3#3#"''3267#'7#‹XX11…XX33®®ᘠ‹‡ 1É<<:0  ÿêó %73#735#73#735#3#3#3##'3267#7#VV11ZVV00u°°æ¤ ! ‘ .00.$ÿè•Ç '73#735#73#735#3#3#3#"''3267#7#88688Ttt ‡MA  D%ÇD"D"@1 !€ÿêóÉ '73#735#73#735#3#3#3#"''3265#7#†// $00 C[[ sGC  J ÉA A ?4 "FÿéìÇ"&,28>7#3#3#3#"''32767#55#5#35&''&'''67&'ç60000;  yA....# : /ÇM! 1‚%&- gÿéñÇ"&,28>7#3#3#3#"''32767#55#5#35&''&'''67&'í.))))2  l9&&&&   .' ÇO 1‚&%/ 6,ëÈ!%+17=7#3#3#3#"''3267#55#5#5#&'''67&''4'èA8888D  ‚@,,,,,Q  `  W  È   4 b           ?JÈ 7&''6,È  1%ÿéï‘!%+17=7#3#3#3#"''3267#55#5#5#&''&'''67&'âSKKKK` ´VBBBBBt    M ;  ‘5 m  ÿéï!%+17=7#3#3#3#"''3267#55#5#5#&''&'''67&'âSKKKK`´VBBBBBs    M ;     4 j      iÿéñÇ!%+17=7#3#3#3#"''3267#55#5#35&''&'''67&'í,''''0  f5""""  .  'ÇO8‚&%/  $í¨!%+17=7#3#3#3#"''3267#55#5#5#&'7&''&'''6ãUNNNN_   ±R@@@@@L9J  ¨ " R            ÿèô:7'6767&'2567'D>)  "$ S- "     &   ÿîoÏ *73353353#3#3#735#676767'67'ZbbWW22 '1 Ä**06,   ÿíóÌ7'6773267#"&55'7§/( 24  #&¢  <N & RuÿîõÎ,7#"''3267#532767#"'"&55'753753ì ,!  ŸT!3 ^Xh e;5E?|ÿèíÐ 73#'3'6573#ÚL&Ðçç„>& $4wÇ:íÊ!%+17=7#3#3#3#"''3265#55#5#5#&''&''&'''6æTMMMM[  ³XEEEEEw   Ê   1 Z        ÿèð@736533533##5#'67#C;;;>5*?. 44.Aÿè÷Ç#'+173#3#&''67&'767#535#35#33535#335QžF'':)c'':) I    I ( ( ‰ÿèôÄ $(,073#3#&''67&'767#535#35#33535#335’\&#$ #     !"##4#Äd    d<@ŽÿèôÄ $(,073#3#&''67&'767#535#35#33535#335—X$!!  !     !!0!Äd     d<@\îÐ73#3#3#535#535#53&'736§9]RRdÚbRR\0 1 Ï    ÿê€Ï?D7#"''32655'67&''67&''67#537#'733#67&'37#Z  "  $D696   6-->     //    xLÿéõÏ@D7#'733#67&'#"''32654''67&''67&''67#53'37¾MK(J      #0 5$$ $ $5_, C//   .0    /Z-ðÒ?D733#67&'#"''32655'67&''67&''67#537#'77#‚O I     !'-!$ $%#1dMXCÒ            ÿéôÑ>B733#67&'#"''32654''67&''67''67#537#'77#Oo:n +,  0> H-)8 6+ 25Un| e Ñ1+/     UÿéõÏ@D7#'733#67&'#"''32654''67&''67&''67#53'37ÀGF%F      !- 3!! " !1Y)=//   -0   /€ÿë÷Ï?C7#'733#67&'#"''32654''674''67''67#53'37Ê,03     !   9#‘0 1   (,      1IÎ767'67'67676'6}    ›3 3. f  ‰ÿëøÏ=B7#'733#67&'#"''32655'67''67&''67#53'37Î,-,       4#‘01  *,       1  ÿéò›@D7#'733#367&'##'32654''67&''67&''67#53'37 `^Ct   / / 1A D0%=6(( - VŽ@ Ye(%    "    % _ÿéôÊ:733#67&'#"''3265'67&''67&''67#535#535#va@    $ +  :dKKMÊH      _ÿéôÏ@D7#'733#67&'#"''32654''67&''67''67#53'37ÁDC"C       &.  -S%://   .0     /kÿêöÏ@E7#'733#67&'#"''32654''67&''67&''67#53'37Ã=?=      # '  *M!4//   ,/    /\ÿéòÐ*.273733#5367#35#3#3#3##5#'7#535#735#35j!>”#*713€,55::? E@XX .¾ " (4C`ÿéóÐ+/3736733#537#35#3#3#3##5#'7#535#735#35m";$+2,1z,//;;< C:RR ,¾ " (4BgÿéóÐ,04736733#5367#35#3#3#3##5#'7#535#735#35t8ˆ")/)/t),,779 @7LL*¾ " (4Bÿèñ­/373733#5367#35#3#3#3##5#'735#535#735#*;VÝC3@TLH°7CCB†14499F __Á ~ ..  > ÿé•Ð/3736733#537#35#3#3#3##5#'735#535#735#$0ˆ$-)"/l$--227 $@@5GG¿ % '2  6ÿéɇ.273733#5367#3353#3#3##5#'735#535#735#G#3“-1'Tm'..00: -<<4GG{   "  ÿèñÐ*.273733#537#3353#3#3##5#'7#535#735##3$7aà<0F]—´EQQ[[be[ŒŒG@P½$ 32B|ÿçòÐ")/73673#3&''6654&''67#677&'‡>?:    £8"   +?4 r   ÿé€Ð-173733#537#35#3#3#3##5#'735#535#735#'t' ,]%%&&1 !66,88¿%21rÿéóÐ*.2736733#537#35#3#3#3##5#'7#535#735#35~2 }!)(#,i%''11381CC$¾  " (4B~ÿèõÉ'7#3#3#3#67&'#67'5#535ëKDDCCT/   +  É   EM ZlvÿêóÑ -73&'73#3#735#33##"''3255#53567#{/3vff@@h33  77K½ 43   xÿéôT73533#&'#5'67#y34'   %K #IG&#~ÿèóÎ 17'2'6'&''&'3#35#535#53#5##56æ ,A4.  %    % H2HÎ  " #""„  ÿéuÐ ,073733#537#35#3#3#3##5#'735#535#735#% i$*V!!!!* 00(22¿ %21qÿéïÇ $<@D73#735#335335'673#"''32653533#67&'7''75#735#335~kkI  T  a"## !(%"#Ç=M  j'R . wÿéôÏ37;?C73533533##5##5#3#3#3#3##5#535#535#535#5##5#35#335wp 444444 R$½""(pÿè÷Ñ!%173#3#&'#'67#537#53635#35#3533##5#¢70B#  '" ????ÑU &"U ,3p""$$ ÿélÑ -173733#537#35#3#3#3##5#'735#535#735## `#$L $  ''!((À % (1 kÿçõÐ#'+/5;73533#3#535##5#;5#35#3#735#35#35#'67&'o9990s09~HH qqKKKKKK  G Å   "//)U=    HÿíñÏ673673#3#3#3#3#535#'67#5367#5367#53&'ƒ  &HDGZa]2?‘@% !%,(+7(Ï    ""%   LÿéóÑ C7#5##53&'73#67&'#"''32654''67&''67&''67#ìrAPŠE      ". 3#& ' #.º!!  *   05 "  EÿéóÐ'M7373#3#3#&'#'67#5367#5367#367&'#"''3255'67&'767U:DHCI_+ $(  ,%,6<     ¶   $  Q)      ÿñîÒ573673#3#3#3#3#535#'67#5367#5367#53&'T 1  6[X^ w „LYÆY6 *AMJP[4Ò     "" (   ;ÿíòÏ473#3#3#3#3#535#'67#5367#537#53&'736½(LHK`gc4B™C( &'/*.<,  Ï  ""&   ÿïñ 373673#3#3#3#3#535#'67#53567#537#53'[28mgl‚‹†HVºQ; )>I7Vcca _C ( 'Ï 9H 5 u   ÿçóÔ%+1773#3#3#"''3267#53635&'7&'''67&'m` ºº´ ´<0ŒB  ?  ~ <  Ô >C+‡ }  aÿçôÏ%+1773#3#3#"''3267#53635&'#&'''67&'œ<_nnk hL  * 'Ï 9G2 u iÿçõÏ%+1773#3#3#"''3267#53635&'&'''67&'Ÿ;\kkh fJ (  %Ï 9G1 u   dÿéòÐ!%).38AGM73533533#3#5##5'67#735#335335367#35#35#3'3267#3'67&'n$##-D  !$5X "3 4  @ 9¼1;/2: .4  1  58  Kÿé—Ï73#3#7#5'756ˆ""##( Ï %0.™ ÿé{Ï73#3#67#5'756l!(<<<<$ &.Ï  % -)š—ÿèöÆ#(733#"&55#'6653&''67&'#367ã    P   Æ<  0$  )c1    &TÿéÏ73#3#7#5'756Ž!!""'  Ï %0.™]ÿé¤Ï73#3#7#5'756• % Ï $1.™ ÿérž73#3#67#5'6756c%7777#" (ž  eÿéõ˜$)733#"&55#'6673&''67&'#367Õ '   m  !$ #   ˜( M   gðÈ &*.73#5##53535#335##"''3255##55#35Úe8?((L  2C22È8(*88( .X  m ZÿéïÆ &*.73#5##53535#335##"''3255##535#35#ÙqAD..T   =====Æ?""??.0d  '}#4JÿéìÆ &*.73#5##53535#335##"''3255##535#35#Õ~DN00^  GGGGGÆ?""??.0e  '}#4ÿéíš &*.73#5##53535#335##"''3255##535#35#Ê#´_&rLL::‰  vvvvvš6((66&  'L ` % lÿéôÆ &*.73#5##53535#335##"''3255##535#35#ád;=((N  77777Æ?""??.0e  '}#4ÿèïÊ &*.73#5##53535#335##"''3255##535#35#Ï ·!]-vII66‰  sssssÊC,-CC1#3g  +~"0‡ÿéñÃ73#3##5#535#^%++,,&ÃIllIƒÿéïÏ73533#3#5##535#35#ƒ,,,'9&,99221pp1}9xÿæôÎ)73#6767'67'67#53&'&''66¶ +: ; $ (6?$ (.Î J ! d #0xÿèöÐ +73#53&''67&'&''6677&'76º,o. B         Ð 6 " '    wÿëóÎ#(-7#5367#5373#3##'365#335367#335#3½F #!  5$$,.G,  cc#1¡ A  ) wÿêóÏ!%)-BH73533&'73#3#5##5##535#35#33535#3353533##"''3255#&'{0  0++0,D,`S   S » \\.-?     uÿéñÐ "&*73#53&'3#735##"''3255##53#735#µ5|0\\88W  P;;Ð +32[  Das 5mÿéôÐ !)1A7#5##53&'73533533##5##5##5##53'66733267#"&5ëO/9a:!   ½** -N=>m$P C vÿïòÐ #'+/?73533533#735#33533535#3353353#3#735#3673#53&'|!!qMbwwjjHH!|ÀO/1, .$    rÿçñÑ !%)-39?7#5##53'73#673#5'675#5#5#35#''6&'''6ïX40K  6d H?????  D"  ¾##    \M H   i }  kÿè÷Ð 8<@DHN73#5##53&'33533#3#32767#"&55#'67#535#53#335#35#35#&'±4Z3    * %./??????GÐ #  a  # a   ' '   dÿèóÆ -73#735#33535#3353#67&'#67'5#ouu1O1m‹<    5 Æc9A7  BC Qÿèñ› ,73#735#33535#3353#67&'#7'5#+¬¬::L:†::L:´àc   R!0" !›R2.-  7-   9ÿèöÊ ,73#735#33535#3353#67&'#7'5#-©©66J766J7²àh  $ W!%:'# (Êd;>6    DI  S^ÿèóÆ -73#735#33535#3353#67&'#67'5#jxx2 R2 q‘?   8 Æc9A7  AC QJÿèîÆ -73#735#33535#3353#67&'#67'5#Y‚‚$$7%\$$7%~¡E   : ! Æc9A7  BD  QWÿèóÆ -73#735#33535#3353#67&'#67'5#d}}""5"W""5"w˜C   :  Æc9A7  AD  QsÿèóÆ -73#735#33535#3353#67&'#67'5#~kk-F-c~6    . Æc9A7   AD  Qÿé¢Ï $,073533533##5##5#'67&3##5##535#,,G /& FZZ_EEE¸%Q Q5#\ÿéõÏ $,073533533##5##5#&''63##5##535#\. .F % "$# 0[[aGGG¸  !Q Q5$Gÿé÷£#(0473533533##5##5#&'#5'63&'#5##535#Q"1""1"L%' R <; M[[[’   *D D(lÿéõÏ $,073533533##5##5#&''63##5##535#l((>#   + QQX>>>¸ "Q Q5$sÿéöÏ $,073533533##5##5#&''63##5##535#x&&7  * IIS999¸  !Q Q5$rÿéöÈ)?73&'767#533'67##"''3255'67#3533#&'#5'67#z/ Ie1   )34' %›     @ #II($kÿéöÈ)?73&'767#533'67##"''3255'67#3533#&'#5'67#t2  Li4  " ,67) '›     @ $KK*#]ÿéõÈ(>73&'767#533'67##"''3255'67#3533#&'#5'67#g6  Ws,  % 0<=." " "-œ     @ #JL,"TÿéôÈ+A73&'767#5333'67##"''3255'67#3533#&'#5'67#^; Zx;   ' 4@;,$"% $0›     @ %LM," ÿéôœ(>767#533'67##"''3255#'67#53'3533#&'#5'67#f §#V  8   %< +'MTAbcV&7 :&&7 2$N‰   M  /.  ÿé€È(?73&'767#533'67##"''3255'67##5'67#53533#&+ C].   %C (2++ ›      q1?1[ÿóòÅ73#3#3#535#535#3535#5##3aŒ*&&/—,#%(9%%$#Å)W,,V*¬>3;<2HïÇ73#3#3#535#535#3535#5##3×G;;KÞH88EX%::%77Ç66[%$$eÿóòÅ73#3#3#535#535#3535#5##3k‚&##+) !$6""! Å)W,,V*¬>3;<2EïÇ73#3#3#535#535#3535#5##3×G;;KÞH88EX%::%77Ç77^&%%ÿð¸c73#3#3#535#535#3535#5##3š/**7§8**3B**)(c01QVïÈ73#3#3#535#535#3535#5##3×G;;KÞH88EX%::%77È11O  ÿèë` 73533#''275#735#335'7#6)MM Rk51M99M9 =G4 2jEôÆ73#3#3#535#535#3535#5##3n€# )Š* %8  !Æ89^"""™éÐ 73#3#53635#35#µ$8DJ73#'66553&'35#3#"''3255'675#73#"''3255'675#&''&'«7w =#cc 4 "=7 %   /   Ï 8'@1 +#X5:q   .q    *    TÿéõÑ -39G7#5##53&'7&'3673267#"&''67''67&'3353#5#533òr@  "(  "   ~  5#l#»..   /% . 0    @3+E;)cÿóôÆ 7#3#53#735#3#735#73#735#ðz~‘+TT..11-11Æ®Ó!98J,J,`ÿéóÉ#';73#3#5##5##535#3#73#3#73#3#3#3#"''3267#7#k|6?..?4 !!C J((J''Rƒƒ“c] b É #::# '    %SÿéõÑ 7;?CG7&'67&'67&'63#3#&'#5'67#535#735#33535#335x  <  8   i†;E6" #$ "1@8%%8'_%%8'Ñ      -O   46! /1Kÿç¯Ï!%73533#3#&'#5'67#535#35#335]     ¹M IC%MR+++ŸÿçöÐ73'67#'63&''65¾)     $Ð# *"31  #!1ÿçóÒ -1597&''63#3#"''3265'##'2655##535#35#73#x4: :5,4 Jii|   H 11111^Ò"&(# p gn /…$41[AÿéõÏ!26:>7&'#5'63&'3#"''325'#"''3255##535#35#73#”&- \ :NG   3  """""FÏ  " .s  mt  1‹%7-\FÿéõÑ $48<7&''63#&'67&'6'#"''3255##55#35œ#* (&"* < LLB    .   8 "4""Ñ$%! ! # (# #("q  -ˆ%ÿèøÒ +/3=7&''63#&'6'#"''3255##535#35#7&'6€/: 64,@O nnc     88888   Ò$*(  $ & !i  .†#42 $ÿçóœ"37;?7&''#5'6&'3#"''3265'#"''3255##535#35#73#}16 Z ML l B  66666`œ    S LS  "j ( 'G +öÐ"'+/<@7&'#53#"''3255##5'63&'35#35#73#"''325'3#€16 #"HU  8 Q : =8888’  -Ð  M ^  < & 'J  A<TÿéöÏ!26:>7&'#5'63'&'3#"''325'#"''3255##535#35#73#š#* V 1G D  1    AÏ   -s  mt  1‹%8-\ ÿé™Ï/37;73#5'67&3#"''325'#"''3255##535#35#73#T AH  0"  & 5³ #*s  mt  1‹%8-\:ÿêõÉ7;?7327#"&547#'65535#'273#67&'7''275#735#335Û a $%  *ÉH8$$+$;0>V>9 /ƒÿèòÆ!7#5##53'>33265#"&5ç4" ÆŒ{z‹(R/)  $,3 ’ÿèõÆ!7#5##53'>33267#"&5ê'  ÆŒ{z‹(Q2'  #- /  G ôÐ .26:7&''63#3#"''325'#"''3255##535#35#73#, #* + <VV]  0  #####DÐ   [  V_  $s .(M\ÿéòÊ /37'6553'#33673#3##5#'67#535#53&'5#‚[[:  5Ž+E5 7?a<) >>& EkÿçõÆ %7'66553'#33673267#"&5“ lFF8 #   €E5 2#_F4"*  -   ÿüpÍ73#67'756675#\!? +0 " Í  W ¨¨\aÿéôÏ1E73533#3#3##5#535#535#73#"''3265#'667#373#&''67#iE@     H;?9) ). - 5¾W>-% !'v  %)  " ÿçô–1F73533#3#3##5#535#535#73#"''3267#'667#373#&'#'67#)''$$((..$$)o`  # ucgT;G"TEVŠ      D*! \  #$ ÿéï‹1F73533#3#3##5#535#535#73#"''3267#'667#3673#&''67#(&& '')) (ia   " m\eY>F$O?O€      : # J !! Dÿèò¢0E735#535#53533#3#3##5#73#"''3267#'67#36533#&''67#NUI   [FPD64 E : B[   O=  1# 0[ QÿéôÏ2F73533#3#3##5#535#535#73#"''32765#'667#373#&''67#ZMF     PCF@. .4 2=¾W 5+& !&v  &)  "IÿéôÏ2G73533#3#3##5#535#535#73#"''32765#'667#3673#&''67#SPI    TGJD0 18 6A¾X 4-% #%w   '*  "hÿéðÐ %)-157&'67&'67&'6#5##535#33535#35#„  8   7   S 2!S 2!!Ð   Qyy-GiÿéõÐ !%73&'73#&'73#536#5##535#r05{  G *ŒM $DDD·    @[ [?-kÿéòÐ-1597&'3673#3#"''325'##53#"''3255#3#373#  R  ‡o  >A    Ð  „  :€ hE`OÿéòÐ.26:7&'3673#3#"''3265'##53#"''3255#3#373#y  d  (£ˆ   I(N ((((%Ð  „ 9€ hD`ÿéðÒ-1597&'73#5363#"''325'#"''3255##535#35#73#S  m A߆ + T 88888kÒ   0‡  z  6›*A6l`ÿéòÐ.26:7&'3673#3#"''3265'##53#"''3255#3#373#†  X  #’x   BF   "Ð  … 9‚  kE`ñÐ-15973673#53&'3#"''325'#"''3255##535#35#73#R 8>â<‹  Q  77777iÐ    +e  ^d  'y"2)O JôÒ,04873#53&'7363#"''325'#"''3255##535#35#73#®>ç@ :&  K @@@@@pÑ  $?  8B R 8ÿéðž-15973673#53&'3#"''325'#"''3255##535#35#73#M 99ß7   K   77777eœ  )g  \`  (u -*V]QòÓ+/3773&'73673#3#"''325'##'6655##55#3573#]#' !•y  , $6$$¿ @  8B T !7rÿéôÏ-1597&'73#5363#"''325'##53#"''3255#3#373#•  K ‚L   8< Ï   3…  :€ iE`ÿéïm.26:73&'73673#3#"''3265'#"''3255##55#3573#=:>ß»   D   DVDD+Y B :C V 9VÿéóÏ26:73533533##5##5#3#"''32765#3##5'65#35#d######c   U G;A)))¼v YY_ 1%ÿéeÏ73533#&'#5'67#"   ¡.. ‚v$)8 ÿééœ!73#"''3267#'6##55#35>  ’ {[[HHœ b [k%ÿñò 73#3#735#35#3#ÄÄŸŸwwww5ãã[594\ÿéóÏ #48<73#5'675#5373673267#"&5#"''3255##55#35‡((&    .  GZGGÏ]    h  *€" ÿéšÏ "37;73#5'675#5373673267#"&5#"''3255##55#357%%$    -  BUBBÏ]     h  *€#dÿèöÏ!9@73533#&'#5'67#7&'7'6373#&''67&'7#367n78, +  `  a+ H   0 #"722$">  r      KÿèõÏ!;A73533#&'#5'67#7'6'&'3673#&''67'67#367TBC3%%) #/{ Y 1`"   '9 *1 &;+ ž11*1 >    z      TÿèôÏ!:@73533#&'#5'67#7&'7'63673#&''67'67#367_==0! " . l  l1 P  %5 '' '<  ž11#%?   r      ÿèôÏ!<C733#&'#5'67#537'6'&'3673#&''67&'67#67#v]J- 2##1 +E]O|  Q~+ #(-&+F  %?  ) 3 ž11 <   x        ÿé÷Ï%5FJN767&'7&''67'67676'3'65733267#"&5'#"''3255##535#35#™")! ,6  o¡     AAAAA½"   hM1.BfÇ # ab  *z!05ÿéôÏ$3DHL7&''67'67676767''3'65733267#"&5'#53#"''32=#335«!$  W JM   ((((š   + :eM1 .DeÆ % (wc ?„ÿêëÉ7#"''3255#'65535#35#ë (''''ÉÉ ?/' )3v;(c)A•Ï73533#3##535#35#A  3 !!¥***Sb*k/GÿéòÐ/E733533##5##5#53&'3673#&'#'67#3533533##5#'67#q',,'$$^  r6I3+ 7 . $+#%'''!Ð    %$ ;77$ÿéëÒ#173#3#3#"''3267#53635353353##533[e–±±³ ±/ ‚‚‚W1ˆ0ÒO  A *Š a)9SÿéîÐ#173#3#3#"''3267#53635353353353##ŠEfxxy wSSSuaÐN  A'‰ a)_ÿéñÐ#173#3#3#"''3267#53635353353353##‘@_ooq pKKKlZÐN  B *‰ a)…ÿïñÆ ,27#3#53#735#35#373#&''67&'67#367ñZZlEE$$$$+    %Ʊ×D( & +     ÿï‚Æ ,27#3#53#735#35#373#&''67&'7#367‚\\oJJ((((+    $Ʊ×D) & )     wÿðñÅ ,37#3#53#735#35#373#&''677'67#367ñggzQQ////0    ) ųÕD) & )      ÿï‘Æ -37#3#53#735#35#373#&''677&'7#367‘jj|RR11111     +Ʊ×D) & )     nÿïñÆ ,37#3#53#735#35#3673#&''67&'7#367ñqqƒ VV4444 4     , Ʊ×D) & )    iÿïñÆ ,37#3#53#735#35#373#&''67&'67#367ñvvˆ!ZZ6666!9   , Ʊ×D) & )     YÿïñÆ -47#3#53#735#35#3673#&''67'67#367ñ††˜&bb@@@@'@  $ !2 Ʊ×D) & )   _ÿéùÍ#+<@73533533##5##5##53&'73#3#3'667333265#"&5'3#f((=7e[o  J   %º2  '" #<  @O ÿéê”39?EK7&''67'67676767&'73#"''32765#'6&'&''&'''6i #+  %=G :      N   ,M j% L % PÿéõË &>E7&''67&'76'3353#'67&'3&''67&''667#À    Ta…!L *G$ $ /*  ;Ë     @@Q         fÿéöË &=D7&''67&'76'3353#'67&'3&''67&''667#Å       NW} H ' B  '"   7Ë     AAQ        WÿéöË &>D7&''67&'76'3353#'67&'3&''67&''667#Ä     R]‚" J 'F#", ( !  :Ë     AAP         rÿéôË%=D7''67'76'3353#'67&'3&''67&''667#Ç      FMr D )9 "  -Ë      ==M         }ÿè÷Ë &>E7&''67'76'3353#'67&'3&''67&''667#Ì      BHl >  :      -Ë      AAP         cÿéñÏ"04873673267#"&5'67'5333#5##53635#35#¦    1&@R$RRRRÏ$   "$ b 0 o o 5B&ÿéõ !/3777'53373673267#"&53#5##53635#35#8C+& E '" '.  ,[…9+…………y  E"    [['2hÿéñÏ"04873673267#"&5'67'5333#5##53635#35#©    / %>N"NNNNÏ#   "$ b 0 o o 5BÿéÏ!/3773673267#"&5'67'5333#5##53635#35#E    " 2: ::::Ï#    #$ b!0 o o 5D ÿé‡Î#'+DHLP7&'#5'6&'3#735#73#735#'3#735##"''3255##5##5##535#335335C!  A (3&"" E"" 5"" @  !Î   0  0  0 1I """"*\#‹ÿéóÏ !/37767'53373265#"&55363#5##53635#35#  1   128 8888¥%  ]   S G qq 3BZ£Ï73533#3##535#35#Z,¥***Sb*k/ÿëç–'+173533#3##535#35#7'3255#'65535#35#..."C!. 11¸ #84454{GXQ%U‹ >>.JEÿéõÈ 57'66553'#33#67&'7&'3#3#535#535'67#r ŠddZo>   //8‡ , , 77ÿéú›48<7327#"&547#'6553#67'7''75#535'635#335á jm&""  $+."" ."›:-+-%1:&.BB5 5E›òË 7'6'6'6×* (- +( &Ë " # $oÿéøÉ59=7325#"&547#'6553#7&'7&''75#535'635#335å  GH    ÉH8&&#=0>n=##=yT  "Tk666 ÿëvÏ 77'2'6'&''&'3#3#753#55375#535#'6j (9/+  ;%((C'' Ï      1"> :'3  ÿénÇ #04875#53#5'675#53#5'6'&'7&'3#5##5335#35#+. =. <  8   $0 0000•!_ !_)   >j j&; ÿétÏ#AEIM733533##5##5#533#735#73#735#3&'73#3#3#3##5'6353535$,,%,,4!G Ï #--"  E ôÎ&*73#"''3267#'6#3267#"&5535#žD   : 2 #! Î Y D ;!   _, ÿìùÆ*7327#"'&5#'655&''67&'76Í  | q Æo4"#!-\83 *4o, !!  GÿçöÇ,73265#"&547#'65567&''67&'×N(   ÇG8' .%9/>f62 (4x.- ! #" ÿþ[Ï 73&'73#67'676'&'M3 % ¨ ;$ 5/)+.':ÿéòÑ"'-39?E7333#"''3267#'67#53637#37#'&'&'&'''67&'Š;    ‚ */61+!^Q  n    < 5 Ñ//J0 44@=q "  ;ÿéñÏ"&+17=CIO7'267333#"''3267#'65537#37#7&''&'&''&''67&'Ý :TE#    xQXcg3   i   0  +Ï 2%&A)'! -93%9 b  v  FÿéòÏ"&+17=CIO7'267333#"''3267#'65537#37#7&''&'&''&''67&'Þ 7OA     l HNW[,    d /  ,Ï 2%&B*) -93%: c  v SÿéòÐ!&,28>D737333#"''3265#'67#37#7#'&'&'&'''674'e02  h %*3&!/A  g 8  -®"0.K0 )E<    FÿéòÏ"&+17=CIO7'267333#"''3267#'65537#37#7&''&'&''&''67&'Þ 7OA     l HNW[,    d .  +Ï 2%&B*) -93%: b  u >ÿéñÐ"&,28>D7367333#"''3265#'67#37#7#'&'&'&'''674'Q88  w *2:-&6L  s > 2®0.K. )F=   ÿéí§"'-39?E7367333#"''3265#'67#33737'&''67&''&''4'F W !   ª  +!    7 - (--*#  Ñ gO  UE$;g 7E 3  ÿèõ¢#',15F73#332767#"&55'67##5335#335367#335&''6767'yNW ( /%JL3M:<   mÿéôÑ"&+/?73#3265#"&55#'67#53635#35#365#35#67'7''6ž9   0 & %'(%  Ñ gO  UD%;g 7E 3   ÿèôd27;?C73#67'7&''67#32767#"&55#'67#536365#33537#335N!      )+ QEARE:;ME‘68KHd;     !*;  iÿéòÊ  &*73##5#3#735#3##"''3255###535#k„ fII##‰  iR9&&ÊQQ56M  J4 ?$ ÿéóË  &*73##5#3#735#3##"''3255###535#Ó¤hh@@3æ#   ¯Š[HHËPP56L  I7F& ÿéŠË  &*73##5#3#735#3##"''3255###535#t T==~   YL/ËQQ56N  K5 B%LÿëóÊ  &*73##5#3#735##53##"''325'##535#U–q PP**T{§   A..ÊQQ5IJ  64 ?$IÿæõÆ!%)-173#3#3#&'#5'67#535#535#5#35#335335T—-+@K=& (' &=J@+,X))ÆD!'CA# D2 VÿéõÆ!%)-173#3#3#&'#5'67#535#535#5#35#335335`Œ*(;C6! #" "6B<))P''ÆD"&><"!D2  ÿèõÈ!%)-173#3#3#&'#5'67#535#535#5#35#335335ÜH    \1--  )ÉCC2!!!!!I 5;-ÿçóP!%)-173#3#3#&'#5'67#535#535#5#35#3353353¸;3JZI5<1 +?ZM3:l!2!!2!!P \ÿéðÆ "073#3#735##"''3255##5&'73##5#536\””uuOOp   k54 !/Æ 30f  Pk}   **OÿéðÇ "073#3#735##"''3255##5&'73##5#536O¡¡€€XX{  u9 ;$$4Ç 3/g  Pk~   **AÿéšÇ (.73#3#735###'3255##53673##5#7&'DQQGG%%@  8  Ç23e  Rn}4 ///  ÿé{Ç (.73#3#735###'3255##53673##5#7&'eeVV44Q  K  Ç22f  Qm~5 ///  iÿéðÆ "073#3#735##"''3255##5&'73##5#536i‡‡ mmGGf  _1.*Æ 30f  Pk}   **ÿéì¡ /73#3#735##"''3255##53&'73673##5#ØØ¤¤¨  ©(   94¡ /*K  6Rc.   sÿéðÆ *073#3#735##"''3255##53##5#536'&'t|| ff@@_ WM&Æ 30f  Pk} **  ÿévÉ "073#3#735##"''3255##5&'3673##5#hh RR00M  F$ É23f  Rn~   //qÿéóÑ<73#5'67335#35#3#3#"''3265#'67#'67#'67#–X_OS;;;;uPQ       ² C9 ( & '<#) #  ÿéìÇ "073#3#735##"''3255##5&'3673##5#ØØ¤¤¨  ªF  A  '55Ç74]  Few   ""†ÿçñÏ73533#7'7''675#75##5#‹&&& %,&M //f1" 4BBBB`ÿéóÏ#'+/73#3&'73#&''67#5365#53635#35#35#5/0& , 3 ) */'!DDDDDDÏo   (# o )/0ÿèíÏ%973#73#"''3265'3#3#3#535#535#73#3#3#535#535#É   ­P!!QYLOÏççÍ ÂÿçìÉ #73#735#3#735#35#35#'67&'4™™tt±±‰‰‰‰‰‰$+ (\/! -É4/xU23&      ÿé‰É #73#735#3#735#35#35#&'''6ee??ssLLLLLL4  É60qO//%  cÿèõÈ #73#735#3#735#35#35#'67&'vllEExxRRRRRR FÈ41rQ./%    ÿçí“ #73#735#3#735#35#35#'67&'3žžzz¶¶‘‘‘‘‘‘+ ;7U%) +&“* $V> !    ÿé”É #73#735#3#735#35#35#'67&'llFFzzUUUUUU A É54pO//%   ÿêó– !%)73#3#535#3#&'7#'67#735#35#35#Å[mægXµ9%) .) 8 8&%5–  $Z    ? " " \ÿèòÐ&.26:73#33##3#5##535#535#'6553'5#35#5353535#·23( (-?&"")8 ))"4??Ð #$J I ?3 0!Y02#`6ÿéòÑ(048<73#33##3#5##535#535#'66553&'5#35#5353535#£CD445N,,,9 I 99,?!!!MNNÑ #$J J A2 -#Z 13#aZÿéôÑ'/37;73#33##3#5##535#535#'6553&'5#35#5353535#µ54) )*;#""+9 ++"5:;;Ñ #$J J B1 3;Z 13#a ÿçô©'/37;7#33##3#5##535#535#'6553&'75#35#5353535#ñ[HHK}DFFRY RRFY555z}}–  9 9  5) *0J  )   HcÿéôÑ(048<73#33##3#5##535#535#'66553&'5#35#5353535#¶31( ((8!& 6 &&2688Ñ #$J J A2 -#Z 23#aqÿéôÑ(048<73#33##3#5##535#535#'66553&'5#35#5353535#¾*+# #$0! 2 !!..00Ñ #$J J @3 ,#Z 23#a ÿé†Ñ'/37;73#33##3#5##535#535#'6553&'5#35#5353535#Q*(! !!-"  / "",,--Ñ $$I I @3 2>>· L-" $,@$  +FE, ÿéWÏ73#5#'67#535#533D 8/Ïæ[F:"P>iÿèõÐ #+/7&''6'6553&'73'#335#5##535#¬ # ,1 #EEEE444Ðq." $+A K:  .D D* ÿéó¬"&.27&'#'655'63&'73&'3535#5##535#ƒ 05 ”! S:5!%$ttt¬ B*3+  (: :cÿèõÑ #+/7&''63#'6553&'#3#3#5##535#¨"  # / 'Z04FFFF666Ñ  J-% '36 #  E E, CóÐ#73#&'#'67#5353653367#335ÎF3 @A .<HJ$ 3H;¸6  6 6 $mÿî÷Ð!)-1573#&'#'67#535353367#3353#53535#35#35#á*! '$$ )** ‚    ¸6  66&gBBB22222 mÿéóÉ 06<73#3#535#5#35#3353353#3##"''3255#'67&'u~'"t!&F  Zff 5  7  ]  É<<+;) &  WÿðóÏ #'+73#7'673'3#7&'3#53535#35#35#Œ8  (‰p œ!!Ïw; ,+"/`$/NNN<<<<<4ÿòóÐ  $(,73#'6'3#'3#7&'3#53535#35#35#±5; .(v  (¿+*Ð #*mdZ% /QQQ>>>>>QÿñóÐ  $(,73#'6'3#'3#7&'3#53535#35#35#¾(/ )%l ¢#$Ð %/vla* 3MMM;;;;;_ìÐ  $(,73#'6'3#'3#7&'3#53535#35#35#¼'- )!g     Ð  "*jb['  )===,,,,,]ÿéôÐ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#35#35#35#33535#35#d !$$(A5 V5>" 3!!!!!!3#V!!3##À E  ""E -O5 ÿêÏ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#5#35#35#33535#35# 6, E -6! L,E,ÀE  ""EP4AÿèñÐ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#35#35#35#33535#35#I()++""0M>  h=I*(;))))**=+h**=++À  E  $$E  ,O3 ÿéóœ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#5#35#35#33535#3355499//CdQ  QgA//5|444*==P===P=    0 0    = ! Xÿèöš8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#5#35#35#33535#35#d #$$(A5    W4A% U###""4#W""4##  1  ##1  8 " hÿéôÐ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#5#35#35#33535#35#n!7.  J/; M.J.¾@  ''@N0 ÿê‡Ï8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#5#35#35#33535#35#!7)  @ )1E)@)ÀD  &&DP4G óÏ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#35#35#35#33535#35#T$%%% .K9  ^9H- $7%%%%&&9%^&&9%%    6  6   ' A ' kÿêóÐ$FJ767&'76'3'67&'767#3#3#3267#"&55#'67#535#335Ô   /T3   N     É   H   2  @!-  0+"!!!?ÿëöÎGK733&'76767&'#3#3267#"&55#'67#535#'67&'767#5#RG<   11  7 //0    2QÈ"#       *+   1-"*   n**5ÿéò£HL733&'76767&'#3#3267#"&55#'67#535#5'67&'767#5#DK c'      44   9 .13   7Xœ&        ".    Y ÿéòÏ 37733#5##537'6'&'3#32767#"&55#'67#735#u^©_Fp ‹%  %! F@ ccÏ05""5,    HF*!  /3% KÿéòÏ 26733#5##537'6'&'3#3267#"&55#'67#735#”BsE7 Q  d   2 -??Ï23!#5-  JF*  03%"UÿéòÏ 26733#5##537'6'&'3#3267#"&55#'67#735#™>lA4 N  ` / *::Ï23!#5-  JF* 03%"eÿéõÏ 15733#5##537'6'&'3#3267#"&55#'67#735#£5\81  F  Q  +'++Ï32!#4-  JD+  14&"KÿìóÈ#4:@73#735#36533#&''67#&'33267#"&57&'''6b~~XX   (  ^  hȉe    R, 2  rÿéòÏ+08<@73533673#673267#"&55'67#535#67##5##535#35#~ $8 % $ "'2 8@@@@@¾         X[ [!1aÿéóÎ2:>B73533#3673#6732767#"&55'67#535##5##535#35#n! '>)" &/ (& ,)!zPPPPP½     kX X -UÿéóÏ19=A73533#3673#673267#"&55'67#535##5##535#35#b)  *B .' ,4  )+ 64)SSSSS¾       lX X,aÿïôÆ $(73#735#&''63#53535#35#35#vkkEE! H “ ""Æc?    KNNN<<<<< ÿðÄp $(73#735#&''665#3#53535#35#35#%ƒƒ_'   &{·++p@    :$$$@ÿîõ— $(73#735#&''67#3#53535#35#35#]zzT   #vµ++—N0   N<<<,,,,,pÿïòÅ $(73#735#'67&3#53535#35#35#€dd>>   /‚    ÅfF,  /PPP@@@@@`ÿîòÏ#'+/7&'3673#'67&'3#53535#35#35#‹  J  ~  D  3 ’"!Ï (  2GGG66666iÿîòÏ#'+/7&'3673#'67&'3#53535#35#35#‘  D  v B  2 ‰   Ï (  2GGG66666?ÿïõÎ #'+/73673#7&'&'''63#53535#35#35#NZ  *›!  a !8" #µ**A ;  'HHH77777yÿéóÈ/37;?C73#3#"''3267#3#7&'7&''75#535#'67#735#33533535#35#mHU   +"" " !!    I"È>n$U//€ ÿê~Ð$(,17&'73#536'67&'7'753#?5#275#*  Ch> ' . ,<- ZA   Ð  ,    iYGA=;€ÿïôÏ#'+/7&'3673#'67&'3#53535#35#35#ž  7 g :  * t    Ï '  3HHH77777YÿêöÈ"&*0673#3#3267#"&55#'67#535#735#35#&'7'6ov0;,  3 ,$82PPPP  e  ÈW.,  /3&.45)    JÿêòÈ"&*0673#3#3267#"&55#'67#535#735#35#&'7'6d~5B0   8 1 )?6ZZZZ  p ÈW.-  04'.45)    DÿëïÈ"&*0673#3#3267#"&55#'67#535#735#35#&'7'6Uˆ:I6  2 --D:eeee | ÈW.-  03'.45)    PÿêöÈ"&*0673#3#3267#"&55#'67#535#735#35#&'7'6iz3@/   5 /&;3VVVV  l  ÈW.-  04'.45)    LÿêëË 5;A73#735#35#3#"''3255'675#73#"''3255'675#&'7&'b~~XXXX%G  $4SH  $4D  c ËT20.j   j      \ÿêîË 5;A73#735#35#3#"''3255'675#'3#"''3255'675#&''&'lwwOOOO.@  -K@  -Y  ;  ËS11.j   "j   "     ÿéŒÉ 38=73#735#35#3#"''255'675#73#"''255'675#'7'iiCCCC9  'A9  '6 L ÉS110i   -i   -    I ëË 5;A73#735#35#3#"''3255'675#73#"''3255'675#&'7&'_{{VVVV"I  &7RJ  '7@  c  ËK-+)S  S   tÿêîË 5;A73#735#35#3#"''3255'675#73#"''3255'675#&'7&'gg@@@@5    "@5    "5  O  ËS11.j  $j  &     kÿêîË 5;A73#735#35#3#"''3255'675#73#"''3255'675#&'7&'{kkCCCC9    &C9    &9  T  ËS11.j   &j   &    5ÿéÂv 59=7#55#353#"''3255'675#73#"''3255'675#'7'¸p^LLk>   .I>   .?Qv88  ;   ;     TÿéñÈ 15973'7#3#33#"&''675##"''3255##535#35#`.++ (""  9‚  QQQQQÈ    # 3Ta  +y -[ÿéñÈ 15973'7#3#33#"&''675##"''3255##535#35#gˆ +(( & !  6}  LLLLLÈ   # 3Ta  ,y ,GÿéñÈ!26:73'67#3#33#"&''675##"''3255##535#35#U™3//,&$# ?‹  XXXXXÈ   # 4Ta  ,y ,gÿéñÈ"37;73'67#3#33#"&''6735##"''3255##535#35#o~$$$ $  4v  EEEEEÈ  # 3Ta  ,y ,xÿéñÈ 15973'7#3#33#"&''675##"''3255##535#35#€o    ,g  :::::È  # 3Ua  ,y -EÿéóÐ048<@D73533533#3#3#"''3255##5##5'67#535#35#35#33535#335X$$$$-uk      -$7$$ 3 S 3 ·n ((*S)0^7@-íÏ048<@D73533533#3#3#"''3255##5##5'67#535#35#35#33535#335R%$%%+vp   $%  .%9$$%%7$[%%7$ I > #C %  .LÏ 7#5'6:  ÏuU &[ÿéóÐ/37;?C73533533#3#3#"''3255##5##5'67#535#35#35#33535#335o%\Y   %0,E,¶n ((*] '^7lÿêòÐ048<@D73533533#3#3#"''3255##5##5'67#535#35#35#33535#335y TT    $, (?(¶ o  ))*b_7 ÿéöÐ&>D73673#3#3#&'#'67#5367#537#3##5'67#535'6&'X^d]g…+ &T&.?4?R’ NN!3 .!>P H%! ##¿    " H@9 <  SÿèôÏ%B73733#3#3#&'#'67#537#537#3#&'#5'67#535'6`:?B>CW  / +#*7b::  -: &½  N  #1eÿêöÏ !8>D7'6733#3327#"&547#3533#&'#5'67#7'6'&'ˆ  XdUUn [%##   G3  ª   *, 02**  (04   Vÿé÷Ï 5;A73#'63#3327#"'&5#3533#&'#5'67#7'6'&'vem  ffq _ ,)) )O4  Ï  BB U0'' .. 3  MÿéöÏ 4:@73#'63#3327#"'&5#3533#&'#5'67#7'6'&'qjs  jju  c -++ *U<  Ï  AAT/&& ..4  CÿéöÏ 5;A73#'63#3327#"'&5#3533#&'#5'67#7&'7'6gr{  pp}  j 1.. . QÏ  AAT0''/05  ÿéfÑ%)-7&'3&'73#67&'7&''5'635356   4    """Ñ   X/   Ž !3"@ÿéóÏ%)-173#3&'73#&'#'67#5367#53635#35#35#‹D;  <1 7> 25<4*\\\\\\Ï p   *$ p */0OÿéóÏ$(,073#3&'73#&''67#5367#53635#35#35#“=5 6+ 1A 4 06/%QQQQQQÏ p   (! p */0 ÿéõÏ&@FL7373#3#3#&'#'67#5367#5367#367&'#"''3265'&''6Vbgck ‹:% .G' .> 9BQ\   #$   ) +&(½  "  V    D    ZÿèõÏ(E736733#3#3#&'#'67#537#5367#3#&'#5'67#535'6g5;>=CU! + +%+2[ 77  & $+9!½  L &1 <ÿéñÐ'D73733#3#3#&'#'67#5367#5367#3#&'#5'67#535'6JBFJEKa! 9# "1(/>m!BB&" % $4B+¾  M  3lÿéóÐ)F736533#3#3#&'#'67#5367#5367#3#&'#5'67#535'6u/3626G  $  #",P // $0 ½    M  "/ ÿçô«'>D73673#3##3#&'#'67#5367#5367#3##5'67#535'6&'T^c]f‹3 &S' -B1;NMM3 +7L)6!' %œ     =42  3  gÿèôÏ(D736533#3#3#&'#'67#5367#537#3#&'#5'67#535'6o57:6;M  '  )"'2[11  !'1#¾  O'. ÿéðÐ $(,AG73533'73#3#5##5##535#35#33535#3353533##"''3255#&'a2 bTA@Ta!@@TA•@@TAº ,,  < ½ bc-.<     UÿêöÏ!%)-BH73533&'73#3#5##5##535#35#33535#3353533##"''3255#&'Y? C9&&8?&&9&_&&9&|m!!   m# » \\.-?     ^ÿêõÏ!%)-BH73533&'73#3#5##5##535#35#33535#3353533##"''3255#&'b; ?6##6;##6#Y##6#uf   f! » \\.-?     [ÿéò« $(,AG73533'73#3#5##5##535#35#33535#3353533##"''3255#&'^B# @:)):B));)d));)€i  i š   UU & ' 5    Qÿêöš $(,AG73533'73#3#5##5##535#35#33535#3353533##"''3255#&'UA E;(':A'':(b'':(€p""   p# Š  I I ! ,    ÿçï¯!%)-BH73533&'73#3#5##5##535#5#'#35#'353533##"''3255#&'e?  bS@@Se¸@@@S@S@eœ..  œ; œ  RT %  4    Mÿèò§!%)-BH73533&'73#3#5##5##535#5#'#35#'353533##"''3255#&'NG% H<))0 *&  Y ,)#!( #_ÿéôÏ4:73#'67'6753&'3#3#&''67#5365#'6'&'¼+a 31%#  % &!#  1Ï K=1 (&  \ , *$ ( !<ÿéôÐ$(,573#67&'#"''32655#53635#35#3'67#A8  +  8.!]]]]!:# %Ð [   (- Y[ 07;1%mÿëõÑ !'673#53635#35#35#&'&'''6733267#"&5£2c======$9 U   Ñ {{ 066,    #   ÿìœÐ !'873#53635#35#35#&'3&'''6733267#"&5G7l!GGGGGG* 8 Z   Ð || 165.    ! UÿïõÑ !2873#53635#35#35#&'7&''33267#"&5''6™;t&MMMMMM/8  E    Ñ ww .333    - ( ;ÿëô¦  0673#53635#35#35#&'7&''33267#"&5''6„E~$ZZZZZZ& Q  `  '  ¦dd & ( ' !     %  ÿëõ© !1773#53635#35#35#&'7&''33267#"&5''6lX¡4({{{{{{9 bz * 5%© hh ***%     !  _ÿëõÑ !'873#53635#35#35#&'&'''6733267#"&5œ8m"FFFFFF' >  ]    Ñ {{ 067-    # GÿéöÑ %-17#5##53&'7'67&'&''6#5##535#írB * K !+ '%5 < !!k$(A;UQB # +Ñ $  "" Q  3 'GÿéòÏ 73#3#"''3267#'665#53&'¤AeV B"DÏ\"B&5?Gÿéð˜73#3#"''3267#'67#53&' av  d) 3=k˜ @ &6!L  ÿôWÎ73533#7&'74''75#735#335   ¨&&a4  8???QÿéžÏ73&'73#3#"''3267#'655#]$#     ©j#QN0 0C0NÿéóÌ >T7'6655633#3'67#73267#"'"&55'75#'6553#'66533265#"&5Ý /?  H 225   ! : Ì.H: 6E;    '62 (56f0 0 ]ÿé¤Ï#'+73533#3#3##5#535#535#35#33535#335^  &  ¼_++_:=Tÿê­Ç"673#3#"''32765#'67#735#35#&''3#536aC$3 ,  !!!!   &6 ÇQY @ 03E   =§ÿéòÍ73'67#'63&''66»-      Í &,+'2_ÿèòÏ.8N733533##5##5#53#5'67#53673#&'##533&'#33533533##5#'67#**% #/=% $! =./Ïr   6 1// ŒÿéôÏ$(,73533#3673#3#5##5'67#535#35#35#ž  "/% "%%%%´$ u_oC\ÿé–Î 73&'73#3#3##5##535#\:22334²  VV3"ÿéòc73&'73#3#"''3265#'67#efˆr  c6 ?DM  - $  4•çÐ#)/7367&''67367&''6''67'6I   .j   .…mÐ * '    hî7#5##5î´(( ÿêèÒ;73#53'3673#5##53''667#53&'73#3#"''3267\Ï]" E 0©/ "1$;_\ƒx Ò %  ""x##  /]ÿéðÑ =73#53&'3673#5##53&'3#3#"''3267#'667#53&'ª:†8 !h$46RL  9 "$>Ñ $  "" +  1 $""ÿéîŸ:73&'73#3#5##53&'#367#3&'73#3#"''3267#'67#Ud'8µ9$G>T;Z^‰~ m* / 0 $$  ; $   ,ÿèí¬:73#3#5##53&'#53&'37#3&'73#3#"''3267#'667#„X* ;´A-[4 J9PSwx "i2$/¬ !! 7A  %  QÿéñÐ 37#5##53&'73&'73#3#3##5#535#53&'736ìu@S?>“f,GCCCCF(  ¹,, 2   ,, kÿéïÎ 37#5##53&'73&'73#3#3##5#535#53&'736í\5C00uS"844447  ¹,, 4   ++ DÿêðÏ,26:7#5#3&'73#3#3#3##5'67##5375#5#35#ì> ",5////8y 18+....´+  q'0 [((NÿêðÏ,26:7#5#3&'73#3#3#3##5'67##53675#5#35#î8)1,,,,4q 04!****´+  f%-0  \ '(fÿêðÏ,26:7#5#3'73#3#3#3##5'67##53675##5#35#ï0 $*&&&&-c % ."####´+   q"/  \'( ÿéê¤,26:7#5#3'73#3#3#3##5'67##536735#3535êc *KPKKKKS© ;2P9C;CCC’"  \# B " ÿéê-37;7#5#3&'73#3#3#3##5'67##536735#3535êc +HMHHHHP© <2P9F>FFF"  Y#A   ÿèzÐ+/377#5#3&'73#3#3#3##5'67##53675#5#35#z! H )º( v%(, _((ÿéÑ (0473#5##53'3533#3#3##5#535#535##5##535#L-J/$$$&&//00''$[666Ñ ##7      LN P1  ÿèˆÇ9?E73#3#"''3267'6765#735#73#3#"''3267'6765#735#&'7&'8 #    '%?9 #    '&6 K Ç:h!   <:h!  <_   ÿé€Ð)159=A77&'74''535633#"''3267#'67##5##535#33535#35#5  ;    6B*B*Ð .   LB 65 -Xq q+D ÿéÏ 0DJP7&'''667&'7''63#"''255'675#'3#"''255'675#&''&'[      1    71    B +  Ï !   )j   j  "     v|É*7333'67##"''3255'67#53&'767#h    *4  NÉ       ~sòÏ73#&''67&''667#—G    *Ï     ÿëzÇ .473#3#"''2765#'67#735#35#&''6'33#Y6I C  5555  '4EÇR Y> 12H    ,gÿéóÎ 17'2'6'&''&'3#35#535#53#5##56æ 6M@9 /    /""X$$%8XÎ  " #""… ~MÿèóÎ 17'2'6'&''&'3#35#535#53#5##56å @\LE@    8++p//0Cp Î  ##""„ tÿèóÎ 17'2'6'&''&'3#35#535#53#5##56æ 0G91  &    *L 3LÎ  " #""„  ÿéƒÐ $9?E73#53&'&''6'67&3533##"''3255#'67&'K (n1    > Y3++  3 Q  Ð  *       ? <# wòÐ!'-37'6'#3#3#3#''67#53567'#7'6'6Ø 707UQQQQ[ -3 '¦ ;3# "9:Ð       2H0   ÿîõË)/57'6#5353#3#3#3#67&'7&''67'6'6Þ %- (†#jWPPPP\I!# -2Á $+ '* < 6Ë%iu$  q'-oòÐ")/57'6'#3#3#3#&''67#53567&'#7'6'6Ö 6-5UQQQQ[ ,3 # ¤ 5/$ #6 ;Ð       6O 3      ÿçòs"?EKQ767'7&''667&'7&''6'67&'77&''67''6'6'67'6j !" =C"R  ^  -;A1'@7%"%S .26 /?DM ;ips                ÿèñy #DH73533533#735#33533535#335335#3#67&'#67'5#'6553#$:(;Á((:()((:()»¾N    @) #œœs0    ! _ÿéòÏ/373533#3#535#'67#53#67&'67'735#q000;Š;0 o1   4 II½  99   : 0  _eÿéòÏ/373533#3#535#'67#53#67&'67'735#w...8„9. l.   0 FF¼Ž 99   8/  _ ÿèõÏ/373533#3#535#3#67&'27'5'67#735#$RRRhæiR­F    P /#  +#0……½6<   ; $  '  Kÿÿî¡!.73533#3#535#3##5'67#735#67&'Z999G F9A )YY9  –   %+, "  ÿèó“/373533#3#535#3#67&'#7'5'67#735#$SSShäiS ¥@ O7%  &$*€€ˆ   &/   1     TÿéóÐ0473533#3#535#3#67&&'#7'5'67#735#g444A–A4x,    ! PP¾48  ( '  ' AÿêóÏ1573533#3#535#3#67&&'#67'5'67#735#[888F¡G8~.  #!   "VV½48   ' +  )  QÿéóÎ0473533#3#535#3#67&'#67'5'67#735#p211:ˆ;2p)  2    "JJ¼19  +. -  , hÿéöÈ/38<73533533#3#67&'#67'5#'66553'#335#35#’)   '   kGGH$  8: G." 2#`9(V GÿéõÈ'+/39=73#3#67&'#67'5#'66553'#33533535#35#Ï":   4  „bbbL/ 8; G,$ 1$`9(E WÿéóÈ&*.28<73#3#67&'#67'5#'6553'#33533535#35#Ó4 /   ~WWWC*    18  F,# ,9m9(D aÿéòÈ.27;73533533#3#67&'#67'5#'6553'#335#35#„.  +   uPPQ&    9; G+% 4A_9(V TÿéóÇ.28<73533533#3#67&'#67'5#'6553'#335#35#{5 /  €ZZ[+Ž    17  E," ,9l9(V pÿéòÐ "&*73#53&'3#735##"''3255##53#735#²72cc??_   YBBÐ -1/[  Dbt!5[ÿéñÏ!%)A73&'73#3#3#3##5'65#5#5##533#"''3267#7#'6‚$*1****2i 2#####l   !). 'Ï     B    /) <  ÿéìÐ%)-E73&'73#3#3#3##5'65#5#35##533#"''3267#7#'6?7 KLDDDDN« #VGJJJJ.¤ 2 9 G@ 8Ï  Q   ! A#1 ÿéªÏ,B73#&'#5'675#535'23#5'675#5373673267#"&5‘ AA#  (>>;$  >   ÏLG? 'K=K      aÿæôÍ,A73#&'#5'675#535'23#5'675#5373673267#"&5Ú ;;' $ "668!  9   ÍI-!AB$,H@J     DÿéôÍ,A73#&'#5'675#535'23#5'675#5373267#"&5536Û "JJ0 +& /EEB)!!u    ÍB3'E@$+I9Q    ?oÿéòÏ,B73#&'#5'675#535'23#5'675#5373265#"&5536Ù 33!  "33/  X   ÏK)@>!&N8S    >FÿòóÏ @7'67&'&''667&'763#3#3673#53&'735#535#ˆ $"I   !# -$) $  Go/BB  %¨$ >>,Ï      =* * ÿðõÏ 9?7'67&'&''67&'763#3#3673#535#535#&'^ *++j'& &' /1 >-#F <"a=[[  7ßeZZ>  Ï           :++,  _ÿéšÐ 7#5'673#~  Ð ¤v5ž sÿéóÊ -273#735#35#3#735#3353353&''67&'#367€ggCCCCxx"dp $  !  ÊE* ' '41   mÿïôÑ6:>73&'73673#3#3#33#537#537#'67#5367#537#37#37#{ 1-1AHJy#   '"&,:! °    K  x:VÿïôÑ6:>73&'73673#3#3#33#537#537#'67#5367#5367#37#37#j    :59LUWŠ) $-(-4A&& (&°   K x:ÿéòÑ%AJ73673#3#3#535#535#53&'&'367&'#"''3255#3'67#T 1 7`UUgàfUU_600//e ! 4 PU4-=Ñ      ^    "$ 8 # 7ÿéôÑ$@I73673#3#3#535#535#53&'&'367&'#"''3255#3'67#ƒ  'C==I§J<22;(&$$%_ " 1Dz9/ ! $²      ;     " @ 2 >ÿè÷Î >W7'655633#3'67#7325667##"&55'75#'65533265#"&55#'6655ç W7'6556'6553533#3'67#3#3325265##"&=#33265#"&55#'6675æ 7I O!+++8 *  4    Î GF; 7=Xm0% &,C(    "6. '<ÿè·Ï 7;L7'6655633#3'67#73267#"&55'65535#7'5#'6655¦ "-  5 $     -  Ï /F9 5E:    41 (3:&+!  $1 §ÿèôÏ73'67#'6'6553&Ä#     Ï ! y&+>  ÿè›Ï 48H7'655633#3'67#73267#"&55'65535#7'5#'655‰ -;@../    :  Ï HF: 8>$ 6.$  1     .$KÿçíË#8<B73#353#5#'67#5335#536'&'7#"''3255#'665535#35# %' ! 0 "”    ËI-l- :ÿçíË#7;A73#353#5#'67#5335#536'&'7#"''3255#'65535#35#ˆ *, $ ); (  £ $!!"!ËI-l-  ÿèëÐ#7;A73#353#5#'67#5335#536'&'3#"''3255#'65535#35#e 50 (&3G 3  Ð  6 4454ÐG3V1%E2GÄ  51$&TT<*f+ _ÿêîË!59?73673#353#'67#5335#7&'7#'62655#'65535#35#_+      Œ žG1A0 &A1G= 50( 8=`:(d)JëÐ%8<B73673#353#'67#533655#7&'##'3255#'65535#35#L3  $" $ #  ˜  §)9/  !9)8  —  "$ "-X1 O JÿèôÐEIN733#3'67#73267#"&553&'73#&''67&'#'665535#67–88G6*, &.:#   6# Ð      & )M%K hÿéòÐJ733#3'67#73265#"&55'75#3'73#&''67&'767#'6553¤$$:&   %+   B +Ð     D      % -3NÿëõÐ048<@73#3#53&'#53&'367##53#327267##"&55#;5##;5#Y&=Þ<$Z 9PS¼U  2 ??AA??AAÐ    > ‡WW  X!GÿìõÐ-159=73#3#53&'#53&'367#3#3267#"&55#735#33535#335žD0¬.<#;2>  $<((;+f((;+Ð   ; -U  33]ÿêøÑ+/37;733#3#53&'#53367##53#3267#"&575#'#33535#œ=*—'8 66ƒ9 %:&""""&&Ñ / †VV N ÿìó¡/37;?73&'73#3#53&'#367#3#336767#"&55#735#33535#335ZY#<Þ:"C< X.¥K # 31G44G844G8Ž    $H   , ) ^ÿîóÊ047#3#533533##5##5#533673#3#5'67#35#ð€ƒ•0)),>>>[R.C!?     / ËN/,4## +     ÿððÐ/37;735#5#53533533##3#3#3#3#535#535#535#75#35#335$R155O550PP[[TTfßeRR\\RƒO!??S=€  2    Q ?TÿïòÏ/37;73533533##3#3#3#3#535#535#535#535#5#5#35#335^6(::==77EžF22::77!d6$$7(¾11?5ÿîî§/37;73533533##3#3#3#3#535#535#535#535#5#5#35#335?$<$$)DDGGCCR¹UCCIIEE'$s<22D0œ  (      (  3 &–Ð048<733533##3#3#3#7'75#535#535#535#5#53#335#335+,0000,,-6A8..3333 >,,> 3Ð  &  &  -  ÿïƒÎ159=73533533##3#3#3#67'75#535#535#535#5#5#35#335 $..--&&/90**..--M$-½ 2      2  >Fÿîô /37;73533533##3#3#3#3#535#535#535#535#5#5#35#335HG.@@EE??N®N@@GG@@.xG..@.“  )      )  4 ÿíòœ/37;73533533##3#3#3#3#535#535#535#535#5#5#35#3351V226QQ\\VViähVV^^RR41šV@@S@” *      *  2  ÿì“Ï159=73533533##3#3#3#67'75#535#535#535#5#5#35#335 '1133--9D9,,22//V'/» /    / ;uÿïòÏ/37;73533533##3#3#3#3#535#535#535#535#5#5#35#335u(0011))4}6))22.. R(.¾22 @ÿéñ£  $(73#53'3#735##"''3255##53#735#gád?££{{§ ©-vvQQ£  &+ &F 2IY) ÿç‚¡ "&*73&'73#3#735##"''3255##53#735#1.rXX44R  N 22  % F  0L]' ÿéóŒ "&*73&'73#3#735##"''3255##53#735#giå(””ll   ¨1llHH€ # =  )CR& ÿè‹Ï "&*73#53&'3#735##"''3255##53#735#N2}5XX//Q   N77Ï  -40\  Fct5`ÿéòÐ "&*73#53&'3#735##"''3255##53#735#ª>’<$mmIIk   g$FF""Ð -1/[  Dbt!5RÿèöÏ676767#535#5673#35335#535#53#3&''67&'y i67$$.78'/"%  6 [ ]]^"  BÿèôÎ473#35335#535#53#3&''67&'767#535#56|""--"""5@9 & /$!* $ s@@Æ]]]   Z<íÔ  $(73'73#3#735##"''3255##53#735#adÚ)ŠŠff˜   ¥0jjEEÆ! 5 ":I$ ÿéóŸ "&*73#53&'3#735##"''3255##53#735#kåd9——qq¤   ¯7ggEEŸ&+'=  )FU+ÿéíˆ "&*73&'73#3#735##"''3255##53#735#abØ"””llœ    ¨1llHH|# = )BQ$ ÿçíª !%)73#53'3#735##"''3255##53#735#†_Ùd;““kk›  ¥1jjFFª  (+ 'J  5N^+ Qÿèí¢ !%)73'73#3#735##"''3255##53#735#QCEœooHHr   r$PP--“  ) %G  4O^* )è°  $(73#53'3#735##"''3255##53#735#‡ZÒa@••mmœ  £(zzVV°! ) 0<! ÿ錤 "&*73&'73#3#735##"''3255##53#735#27}XX44U    P::” )&J  5O_) ÿéÐ "&*73#53&'3#735##"''3255##53#735#T65 bb==]   WAAÐ -1/[  Dbt!5QÿéòÐ "&*73#53&'3#735##"''3255##53#735#¡D¡F(vvRRu  q&LL((Ð .1/\  Fbt!5ÿèòÑ !%)73#53'3#735##"''3255##53#735#‚eäg<œœtt¤  «1ppJJÑ  -41]  Hct 6ÿé{Ñ "&*73#53&'3#735##"''3255##53#735#K+i*QQ..J   D11Ñ .32[  Fbs 5eÿéòÐ "&*73#53&'3#735##"''3255##53#735#®;;"iiEEf  a!DD Ð -1/[  Dbt!5\ÿéñÏ'/37;?76767&'7&''73#"''3267#'67##5##535#33535#35#\!   IL    @_&&9&_&&9&&¼  1  TF 0=1Vr r+CcÿéñÏ&.26:>7677&'7&''73#"''3267#'67##5##535#33535#35#c  FH    =Z$$7#Z$$7##¼  1  TF,>1Vr r+CpÿéïÐ&.26:>767&'7''56#53#"''3267#'6#5##535#33535#35#ž   2@ /P1P1Ð 0   MF.2 )q q+D0ÿîí¤!)-1573533#3#67&'7&''67#535#3#53535#35#35#L>==Nf $':@4P>’½,+•    U///?ÿíòÏ!)-1573533#3#67&'7&''67#535#3#53535#35#35#]888DY "$5<*D8³'(¸    h>>>-----˜ÿîõÎ (,0473533#3#67&'7''67#535#3#53535#35#35#¥ #   "J] ¶   hCCC55555<ÿéžÌ 'CGVZ`73353353#73533#3#3##5#535#535#73533#3#3##5#535#535#3#3#7'7&'#735#767#A  Y  &  8__O %.--ÈVZZUaV      Y )   5  ÿéiÏ7367&''65''61 '  Ï3 ) /D:,! ^ÿêöÏ"73#&''67#5353533655#335å>' %,2 :000§N14/ #-N((N ** <_ÿîõ½7'67#53&3#3#535#¬# HXo  [u3;@.q 4 77`ÿéöÃ473#67&'#"''32654''67''67&''67#o|:    !   $ (! " ",à  $  "'!^ÿéôÏ:73&''67&''667#3533#3#3##5#535#535#ŽG  $)" ,>*422..<<??..4Ï       >eÿêóÑ -73&'73#3#735#33##"''3255#53567#k86… qqLLx<<  ??X½ 43   \ÿéõÌ&.26:>73673#&'#5'67#53&'735'2##53#'#;5##;5#à 81 "# !.4=2Y}5$$$$$$$$Ì   (*  ÍggW$WÿéôÎ!8N7#53533#&'#5'67'6'&'35#53533#3##5#''3'67#&''6Ž,==. Y  I?$$() 1   “** )* J  Š((""J ,28 XÿèôÎ1K73533#3#535#3533#3#535#'3533#67'75#3#3267#"&55#'67#l222<ˆ92@LK #“-   0 '&¾5 2! $2  # ôÐ(,0473533533#3#3#&'#'67#5367#535#35#35#35#;;;;#_ ƒ0 ) G% '@1";N;;"€€€€Ã  I   I ( ' VÿèôÏ(,0473533533#3#3#&''67#5367#535#35#35#35#]##$$6D:- 02 ,195#7##XXXX¼R  %'   R40JÿéöÏ'+/373533533#3#3#&''67#5367#535#35#35#35#T((((8K>. 5<4;C6(;((\\\\¼R '*   R40bÿéöÏ'+/373533533#3#3#&''67#5367#535#35#35#35#k!!!!2?4( -0 (/6-!4!!LLLL¼R %'   R50 ÿévÈ #'+/73#735#73#735#3#3##5#535#735#33535#335..%//A\&""//&$8$È7 62V%%35TÿéòÐ>_73533#3#&''67#537#'67#5365#53533#3#&33#3##5#535#'67#5373#3`  i    644AAJJ: (V_ #¿   /     -     ÿèòÈ!'-39?73#3#3#535#535#735#&'735'6'67&''&'7&'&³PRReÜdRRP<<  B<  vµ `  N  È[9 99 ‚      ÿèòÈ#)/5;7#3#3#535#535#55##5#35335'67&''&'7&'ÙPRReÜdRRPŸ<<<<›µ `  N  È[[%u     ÿéõÏ$7#5#'667##537333267#"&5ï,  ¤6$EICA$6++GV DÿêíÇ"7#'67#'67#533#"''32765#'6µ94%<'[{+/k   DBd4&"*"&k! EL-)TÿéëÇ"7#'67#533#"''32765#'67#'6‹$9$Ut'-d    <8  0,d"&i# ?L/)B5&#mÿéìÆ"7#'67#533#"''32767#'67#'6™0Fb!$Q    1.  &#d#&i# AK0*A4'#ÿérÐ7#5##5##535335#33535#35#r(((=(ª€ MM €&&1 R ÿògÏ 7#5##53675#35g...®µ¼ M::::ˆÿéíÆ"7#'67#533#"'532765#'67#'6¨%7O?  %#  d#&l JK0+A5& #Xÿì“Ë 7&'&''6i   & Ë  ,  0 /-*bÿéíÇ"7#'67#533#"''32767#'67#'6’4"Om$)[    74  *&d"&l  >L/)B3%!ÿéäÇ!%7#"''32655##5&'''63#735#ä  ž€/bb<<ÇÄ ¬ËÞ & &O+RÿéìÈ $7#"''3255##5'67&'3#735#ì  s6  7  *HH""ÈÅ  ®Ìß  4O/eÿéíÈ $7#"''3255##5&'''63#735#í  `W  @@ÈÅ  ®Ìß  &O/MÿéôÎ67'673#3#535#5367#'7#533327#"''67&'º ' MP""&;",,1   ° 6;;. 67$UÿéòÎ57'673#3#535#5367#'7#533327#"''67&'º $ HL!#7(*.   ° 4<<0 !68% ÿêõ‰4735'673#3#535#67#'7#53333#"''67&'l6+7. 660q-6D .%1J#) JJCS  R        ÿèôÂ767#'7#53333#"''67&'+ 1-7O-OIAS O(5:( ÿéöÂ767#'7#5333#"''67&'& ($1H$TKDV   S(4># míÎ73#3#535#535'6Ù662w166* EÎ2;;/0ÿùÎw673#3#535#535#'2'3333#"''67&'767#'7#º $$O$$ $a4  4.)?  w     TÿòôÎ73533#3#3#535#535#'6r%9966?—D88+ Á667667 (MÿòòÎ73533#3#3#535#535#'6m&;;88A›F::, Á667667 )lÿòòÎ7'673533#3#3#535#535--++2}7--…(2667667€ðÎ7'673533#3#3#535#535› %%""*n1%%‘ !$++,,,, gîÐ73533#3#3#535#535#'6/=[[OOaÛgLLE  Ð   ÿñðƒ73533#3#3#535#535#'65:TTJJ`ÛfKKC  €ï73533#3#3#535#535#'6•##!!&d,$$ ‹  zÿòóÎ73533#3#3#535#535#'6((&&-s2''¾666666 )~ÿóóÎ73533#3#3#535#535#'6’&&$$+g)&&¾ 666666 %§ôÏ73533#3#3#535#535#'6· C ¾ ++,++,   ÿèîÐ#'+/5;733673#5##53&'733#735#3#735#35#35#'67&'u -².  A™™qq¬¬„„„„„„( 'c%% %&Ð  )* ( &Z? $ #      EÿèñÏ#'+/5;733673#5##53&'733#735#3#735#35#35#&'''6’   }!  .llGG!‹‹ddddddH" $ , *Ï '(  ) $^C " "   ÿè¦Ñ=Y]aei73533#3#&''67#5347#733#3#&''67#5347#533533#3#3##5#535#535#35#33535#335  _  `9<<66AACC669##6#Y##6#Ä       T  ?  ? ! RÿîñË!'-39?O73#3#3#535#535#735#&'735'6'67&'7&''&'3533#3#535#^‡:66C˜B55:((  5'  V 0` F566FŸF5ËG    # ##  d       " ^ÿîñË!'-39?O73#3#3#535#535#735#&'735'6'67&'7&''&'3533#3#535#g€611==117$$2#O /YA111@“@1ËG    # ##  d       " dÿïñË!'-39?O73#3#3#535#535#735#&'735'6'67&'7&''&'3533#3#535#ny3//:…9..4"" 0!K +V?.//==.ËG    %  %%  c       $\ÿèòÐ159=AQ73#'6553&'3#3#3#&'7#'67#535#535#735#33535#3353533#3#535#³3u=d)&&- '  -(()*A*P&''/q0&Ð PB3 4<[&>       & " b4ÿéòÐ159=AQ73#'6553&'3#3#3#&'7#'67#535#535#735#33535#3353533#3#535#¥AŽH#x2119 & !8223 3 S 3 d000:Š<0Ð OA2 3=Z'@ ' " d   EÿéòÐ159=AQ73#'6553&'3#3#3#&'7#'67#535#535#735#33535#3353533#3#535#­;€A n.,,3  # 3--..J.Z,,,5}7,Ð OC1 3<['@ ' " d   `kóÐ873533#3#&''67#5365#'67#5365#53533#3#&i  f    Á    )  _ÿèñg 73#735#35#35#'67&'lxxRRRRRR K gY? # #     KÿíòÏ'-3;U7367&''667367&''66''67'6#5##53#3#3&'73#535#535#s    P     i  T  I€o/33™B33.Ï      %       ?00!  ÿéðÏ'+/37=C73##5#'6655673##5#'665563#735#35#35#'67&'p !+Q  4’ !-T% 5™°°ˆˆˆˆˆˆ! 2 .^', .)Ï$  UfH ( ( !    WÿèòÍ%)-15;A73##5#'655673##5#'65563#735#35#35#'67&'Ÿ / "a / !hZZZZZZ GÍ $$ %  $$ %TdG % &     aÿèòÍ%)-15;A73##5#'655673##5#'65563#735#35#35#'67&'¢ ,  ] ,  cyyTTTTTT DÍ %% %  %% %TdG % &      ÿëòÏ5Bj73#"''3265#'67#'6'3#&'#5'67#535'2&''6367&'#"''32655'67&'767™C      $ #  $-#*B (- 80%E H"    #%   +"   Ï A)*   $$S         XÿéóÐ7Dci73#'#5'67#535'273#"''3267#'67#'6&''6367&'#"''3255'67'&'š     ;*    % "## 0       Ð"   ; '% 6           ÿèô¥1D\bh73##5'67#535'273#"''3265#'67#'67&''67&'367&'#"''325'&''6l ''  !+#+UE      . 25 94/7 ,+ % %$#)+! 3¥ '   5 !     ,     ,    ÿêîÇ&*=A73#3#5'67#35#3#3#5##5'67#35#'3#3#5##5'67#35#Î}—*6:pp1i9 =* &**—i9 <* &**Ç9$ 77M .B7M .Bÿéï&*=A73#3#5'67#35#3#3#5##5'67#35#73#3#5##5'67#35#Í‚ {–(3:pp@h<<( (((Ii;<( )(( 1  )*B (2. B (2 ÿéóÊ#'+/T73#3#3#&'#'67#535#535#735#35#5#35#367&'#"''3255'67&'77*­&00<0! *N) !,=00&ˆˆˆˆb;;;  !    (   ÊI     , ' *  %     RÿéõÈ#'+/T73#3#3#&'#'67#535#535#735#35#5#35#367&'#"''3255'67&'767iu$$,% * %)%%PPPP:%%%  !   ÈC ) ' **     @ÿé÷É#'+/V73#3#3#&'#'67#535#535#735#35#5#35#367&'#"''3255'67&'767Y€((0' !1# /4))ZZZZC(((     "ÉD ) & ))     ^ÿéöÈ#'+/V73#3#3#&'#'67#535#535#735#35#5#35#367&'#"''3255'67&'767tl&  $  $GGGG4   ÈC ) ' **       fÿéöÉ#'+/S73#3#3#&'#'67#535#535#735#35#5#35#367&'#"''3255'67&'77yl#! " #HHHH3    ÉD ) & ))    nÿéöÉ#'+/T73#3#3#&'#'67#535#535#735#35#5#35#367&'#"''3255'67'767~f     BBBB/  ÉD ) & ))      UÿéóÆ #'+37;?C73#735#33535#335#5##535#33535#35#'#5##535#33535#35#h||##5#X##5#!) ) 7) ) ÆT262xx-L(ËE* % $B( # (B( # BëË #'+/37;73#735#33535#3353#735#33535#335'3#735#33535#335,¦¦66I7€66I79dd(>(Ãcc(>(ËB( # "?& ! '?& ! ÿéìÈ #'+37;?C73#735#33535#335#5##535#33535#35#'#5##535#33535#35#*««88K8ƒ88K8+=(=(N=(=(ÈW450{ {/K@{ {/Kÿêîœ #'+37;?C73#735#33535#335#5##535#33535#35#7#5##535#33535#35#,©©88K8ƒ88K8GC*C*ŸC+C+œL-.*Z Z"01Z Z"0Fê¬ #'+/37;73#735#33535#3353#735#33535#33573#735#33535#335,¥¥88I888I8©aa&=&%``'>'¬1..\ÿéóÆ #'+37;?C73#735#33535#335#5##535#33535#35#'#5##535#33535#35#nww 2!S 2! &  &  5&  &  ÆT262xx-L   9    j5  _d__™  *0   6* 0 O   ÿê_Ï &,73#"''3255#'67#5353635#&'&'6 """ Ï ² Q=, -2KZ: H ÿçõ¯ (=MR73&'73#67#5&'7'567&'3#"''3255#'67#3353#5#'66535#gdà\    m &  ¿J    ‚ˆ „ƒŸ    '. 0  -$  ( [  ÿçõ„&;KP73&'73#7'567&'67#5&''3#"''3255#'67#3353#5#'66735#e eà½&  h   OJ    „Ž  ‡„y   !  ,  !  H  iÿé÷Ñ%7FL73#53'7#5&'67&'67''3##'3267#'67#3353#5#'6535#°:…7  -  V-  AD BAÑ  !   ,2  #"  =/  7i%  /ÿäó_ *=LQ73#53&'67#5&'7&'#67'56#3#"''327#'67#3353#5#'6635#‘Y½Q l   –?    nv  po_           5  ÿçõÐ'<KO73#53'67#5&'7'567&'3#"''3255#'67#3353#5#'6735#zdÛ`   l #  ¼J    ‚‡„‚Ð    **#  : % 71 % : g'.YÿèòÒ+/37;?EK7#35#53533533#3#3#535#'6553&'75#35#33535#335'67&'ðs/*f*2;*B*8 9¿1  LL @4 2>[ C<-"   ÿè¢Ò+/37;?EK7#35#53533533#3#3#535#'6553&'75#35#33535#335'67&'¡u1*g*2; ,D,: :¿1  LL C1 4=[ C<-"   \ñÐ*.26:>DJ7#35#53533533#3#3#535#'6553'735#35#33535#335'67&'ñq-%\%/7';'2 0Ä3 AA ;. .7RDC #   LÿèôÒ+/37;?EK7#35#53533533#3#3#535#'6553&'75#35#33535#335'67&'ò€  7/p/9B /L/> >¿1  LL @4 3=[ C<-"   NÿèôÒ,048<@FL7#35#53533533#3#3#535#'66553&'75#35#33535#335'67&'ò} 6.n.7 @ /K/= =¿1  LL A4 0"\ C<-"   7ÿèôÒ*.26:>DJ7#35#53533533#3#3#535#'6553'75#35#33535#335'67&'òŽ%"%?5}5>H """5"W""5"C" C¿1  LL A3 3=[  C<-"   UÿèôÑ*.26:>DJ7#35#53533533#3#3#535#'6553'75#35#33535#335'67&'òx4,j,4< ,F,; <¿1  LL B2 3>[  C<-"   MÿçªÏ/37;?CGN7367#535#5#53535333##3#3&''67&'7#735#33535#33535#33567N""$&     +  0#!  8,   ,  € ) F; ÿé˜Ñ 57'2'6'&''&'#"''3255'67567#53„ /D75  %!  9  TpÑ  ] ) "  ÿê‰Î!18P7#5'67#53533#&7'6'&'3'67&''667#35#53533#3##5#'V !//#  >     0 †"$  ++ S  b,0   (( ÿêŽÎ!17M7#5'67#53533#&'&'7'6'673'67&767#7335#53533#3##5#W "00# ?  Y P  3   % ‡#%  ++ T    ” "P   ((!! ÿèŠÐ #'+/5;73533##5#3533533##5##5#3#735#35#35#'67&'*,,* ,,hhBBBBBB  8 À gI *) "   E ðÐ"8O7'63533##5'67#7&'&'3'67#&''6#'735#53533#3##Ñ sAAA# * ^ F"! 1   c" $$Ð  ##21 4 0  !' &  6 ÿérÐ"&3@73#3#'6553&'5##5#35#33533567'533367'533C&L  %    '  Ð ;>+ 49Y =,]  V  VJÿéóÀ73&''67&'#367Y~%, +- .!  ÀP9"$$$1F<)05MÿîõÑ $73#'6333267##"&5477#‡bl'dC#  +DDÑ " @  ASÿëôÏ73267#"&''7&'37&'íX (0 --!  “ ;8 >I ))C GÿéùÄ'73'#"''327&''67&'765#67#[† (   42  0> .Ä`22' 2'#7&(W )L5LÿèøÐ 7&''6&'3'67#š%+ &(&3!  4†$ *pÐ&*)# *?0MÿéçÉ7#"''3255#'665535#35#ç  WSSTSÉÅ  /," 1$_?,k, kÿéëÉ7#"''3255#'665535#35#ë  E CCCCÉà ,,# 1%`?.n.i¼ 7##55#35i>>**¼£¸I6666+ÿèÕM 7#5##535#35#Õ‚‚‚‚‚Me e%7 ÿæéÊ%)-73#3#"''3265#'67#'67#'67#735#35#-©t — OK!!? 7*)Ê] L4<% 0- 79OÿéòÏ73#3##5#535#'6wi9>>LL$ Ï BbbB!ÿéîL73533#3##5#535#'6@/RR``hh? I   ÿêôÏ73533#3##5#535#'6A4TTccpp= !Ç00<SS< *ÿéì73533#3##5#535#'6C.HH``dd9 Œ ###88# iÿéóÏ733#3##5#535#'673¬++33==!  Ï1=RR= $.YÿèîÏ"'73673#"''3265##5'67#'67735¤7  #& *" .##Ï"7E(hZ0 ) ($H6TVòÏ7&'3265#"&''7&'7º  ;D   ( 85Ï      ÿéîƒ73533#3##5#535#'6:8YY``iiA   55  rÿéèÐ 73#5##53635#35# <N$NNNNÐ ÄÅ^:‡:mÿçóÐ+17#673267#"''67&'#67'53&'37&'ð8  !$ 6  ¦: 1*!Hn  *(   FÿéôÏ73533#3##5#535#'6q#<*PPffff5 É ZÿñòÎ#73533#33#53535#35#35#35#35#g988-˜-9 FFFFFFFF·‹‹;665]ÿìõÐ>DJ73673#3#&'#3#"''3267#3267#"&55'67#5367#7&'7'6l-:?N * J  +)) &([¦  *8 B  5   ^ÿèöÏ*0673533#3'67#535#&'36533#'67#7&'&'q///8 q9/ C8>; ,; Z ¸ 1  5*'&>   <ÿèîT73533#3##5#535#'6N!IIaaii/ Q!!  hÿéïÇ&,7#"''3255#353#5335##536735#&'ï  ( J(4a ÇÆ  pK\ÿéõÏ"&8<@73#&'#5'67#5367'23&'#35##"''32655##53#735#Ø I# V )"25 22X   WBB!!Ï   @-)Q ;Uf.\ÿèöÐ`f73673#3#3#535#535#53&'3&'33#67327#"''67&'#7#"''3255'75#535'67&' 811:Œ=118 '-+  !   #"UÐ      _   %      ÿèîp73533#3##5#535#'6D+IIaaii7 l ,, WÿóõÂ73#3#3#535#535#`?;;EžE::<ÂKKKKQÿéîÅ!73#3#"''3267##5#735#3355#\„;I  3@ 45I';#ÅI 5 aaD$$$V RÿìøÏ$7335#53533#353#3267#"&55#^%CCII&9   ( 7ŠAR RAS/ 5GÿîøÐ"7&'332767#"&57&'#'6“$ Q  bÐ.‰ }'. /&7-+ ÿèïÐ"'73673#3&''67&'#'67#67Fƒˆq. )%%2 0 ( 7A`   '   "4$7B1[ÿçøÏ*733327#"&547#&''67&'767#53Ž4  "$  Ï,6&$#&"&6 )! 67 DÿõòÁ73#33#537#537#5#P”J G®' &) 5t6Á&C!EÿéõÏ73533#3#&''67#53655#]788EE . 07 ;=A7¤++<:5 $2MÿèõÏ7367&''>''6—!+ 1= " ' ÏX  !=';B-633# $ZÿèóÏ7367&''>''6œ ( ,6  $ ÏX !=&:A.723# $dÿèìÏ%735#53533#3#3#"''3267##5#535#l...8833> +66.€; (VVŽÿèöÏ7367&''>''6º  #   Ïa A 24.82& !@ÿèöÏ067367&''>'3#&'#5'67#535'6'6º  # ,    !! %3  Ïa A 24.8`' db,""& ! ÿéôÏ73&''6676''67'6uO JW 0-9 žÏH [$*BK!4!2/! !'/" !ÿçöµ73&'#'>''67'6v.B B(S (/0•µ2 I@?!.;+ % -TõÒ73&''67#'6d]1$&73E j9U 6Ò   4 ÿçô7367&''66''6w  + HU<)7*?<<# )gÿèôÏ73533#&'#5'67#r181! #*¡..I <‚5#*AfÿéíÃ7#"''3255##53#735#í  a&<<ÿ  §ÇÚ7b@fÿéôÂ'73#3#"''3255#&''67##5365#fŽ=:  ' $9?‹  s  1’¥_ÿçô 73#735#&'''6xii??:)ÂzTv & %" -eÿêóÌ!'73##"''3255#535'2'6'&'ß >>  ==9.  M  ÌXA  <V#  ÿêíÏ#)733##"''3255#'67673'67&'{QQ   N _@DPC6 Š 4V  R -( "$ %! %"!TÿèñÆ!%73#"''32765#'66553'#33#735#p  \ ySSJ<<‡] AA3 1#^?-M>`ÿéòÐ !%73&'73#3#536'&'#5##535#i24|\ )’T 8  mMMM¸  R[ [>+{aóÏ73533#&'#5'67#‡%.% ³13UÿéóÊ73#3#535635#'67&'Í-0f(›9$22PÊ  8{€8Q ]ÿéóÏ#'73533533#3#535#35##5##535#35#e)"–$0))NLLLLL±  Crr'=dÿðóÐ %73#5##53&'&'''63#3#535#«;b8,  !t2?ŽE      |<<>w6(  ($‘ `ÿéîÇ #04873#5#73#5#&'7&''67'63#5##53635#35#`E2KC0B P ! X%9U-UUUUÇ_M_M       j j /;“ÿèðÏ073'67#&''63'67#&''6¹&! 4  "%;  Ï )0   D 0:   ^ÿê÷Ð59=A73533533##3#3#3#&'#'67#5367#535#535#5#5#35#335c4$6668D4( 02 &1:3544#a4 3"Å  2  "& 2 ? dÿéôÊ -273#735#35#3#735#3353353&''67&'#367rssMMMMˆˆ'q (!  #  ÊE* ' '40   YÿçôÈ#'+1773#3#3#535#535#735#33535#3355#5#'67&'jz $& !!3!T!!3!  K! ÈZ66;)   @ÿéòÏDHL735333##35#53353#5##535##5#3#5#'6753353#35#535#535#33535\;::,!!,.%!-<O7µµÈ   ")  *") XÿéõÏ#'9=A73#&'#5'67#5367'23&'#35##"''32655##53#735#Ø K% X *"4644Z   YCC""Ï   @ ))Q ;Uf.ZÿéóÒ-2=CGKQ73&'73673#3#3##"''3255#535#5365#5#35#"&55#733567#35#&'Z(  #0'""  bbZ+5V)a Laaa  ²  ]    ]  5    ? =   MÿêªÑ .73&'73#3#735##"''3255'7567#536URDD9#  %( 5M½ 4^   RÿêõÏ!%)/5;A73&'73#3#3#3#5'65#5#5#'67&''&''&'€".0++++3‚ 9))))) }     Ï Q ,&&  TÿéôÏ17;?EK73673#67&'##"''3255#5'67&'767#33&'35#35#'67&'b)B#  *   )    !8 > +AAAA c·    90  -5  F-)   VÿçìÇ(AOS73&'767#533'67##"''3255'67#'#53#"''3255&'#75#673&'35#`9 ]x/   ) /'ˆ  ?7 a 4        c Gye  / -K   3HÿçêÇ(AOS73&'767#533'67##"''3255'67#'#53#"''3255&'#75#673&'35#R? e‚3  $  - !5*“  F<k  6 $$      f Eye  0 -K   3>ÿéöÏ#'+17=C73&'73#3#3#3##5'65#5#5#&'''67&''&'r& 13----6x #C/////g  n  b    Ï   [ ($% \ÿéóÌ $(6<73#535#535#3#3##"''3255#535#735#'3#67'75#&'mvvc[[c>C   ii^C  %  ÌK  @:  K  UÿèöÑ )/C73#5##536'6'&'3533##5'67#&'3673#&''67#J\#3/ "!!   C  V7H9+ 28 *0Ñ~no "   $$-    2  && aÿéòÏ;?CGK733533##5##5#533#3#"''3255#7'7''275##535#735#33535#335„$$$$##|4?  , &+>5!!4"V!!4"Ï  $N D  /  J[ .,QÿêôÐ 7=SY733#3'67#&''67373&''67'767#'63533#&'#5'67#7&'€. %    0B   . h=D8  # &3 Ð !    #   W  ""  /,1 VÿèôÐag73673#3#3#535#535#53&'3&'33#67327#"''67&'#7#"''3255'75#535'67&'‡ :22<‘@33:)/-  "    $$#XÐ       _   %      XÿèôÏ%4:@X_7'23&'73673#5##53&'&''33267#"&57&'''63&''67&''667#à 4K>" i?     L  Q H  ' (!  - ; Ï    ###    !         `ÿéðÊ#D73#3#5##5##535#3#73#3#73#3#3#"''3255##5##5##537#i~6>+,>5""?!!F((F**TŽBC  08Ê (;;( ) :  $8888=N UÿîôÏ#)/5;CGKO735333##3#535#535#535#33535&'''67&''&'3#53535#35#35#l.77F•<--77.A$$$ d Ta Ÿ%%      ;      333#####YÿéóÏ$=EIO73533#3#535#3'67#3#3#535#3#3##"''3255#535##5##535#&'c;;;4z4;”e%B‘<-š --s?BÅ   $    #   D D*  SÿèôÏ$_s73&'73673#3#3#535#535#&''3&533#67327#"''67&'#&'#5'67#535#'63#3#"''3267#7#^  #<44@Ž<44%&?8-T0%! ÿéó’767&''66''6y " , M 8' 56= ’ % G#7 G1' ^ÿéõ‹7367&''65''6Ÿ ( .1 A  ‹6 +**%6&$ ÿè÷Ï7367&''66''6Æ     Ï/$ C /*"S;# cÿòñÇ7#3#5&''677&'76ðyzŽf  ǯÕ&#!  JÿéõÏ'735333267#"&55#'67#3533##5#Y(8  &1 &&GJJG²I  ;</d$$??SÿèëÏ%735#53533#3#3#"''3267##5#535#]444??;;F  1>>4;#VVOÿêòÐ%73#3#3&'767#'67#537#536”FK[a^ (; W,2 .3Ð    CÿíóÏ )7&''6#3267#"&553#"''326™%) '&!* 8>?!(  3/h  Ï '+)%CU l6 LÿéëÏ#)736733#"''32765#'667#7&'&'S9K 6 7"  N  ‹&&X7 T4C=-Og MÿèöÈ7'6553#&'7#3|!x&, 1&QQdQ+%UUdI!ZQ>UÿêóÏ &73&'73#67&'7''67'67676WC Bœn0/(/  =< 0!# ²  V  #)"&-)cÿéçÑ 73#5##53635#35#™D\*\\\\ÑÅÅ^:ˆ;FÿçòÇ $7'6553'#33673267#"&5s‡^^J&! &-   ( €D6 5@_G4! * * #  Mÿéõ 73#735#'67&'izzRR"#PÂzTu ,!"%Xÿéè¼ 7#5##535#33535#35#èh**>*h**>**¼ÓÓUBBB—BBB@ÿèòÏ*73#3533#"''3255##5##5'67#536Œ\d ):  && '&/Ï""U  =tt[V ,$GÿîóË"(.7&'36732767#"&55'67''67&'‹,8 &"  …  Ë,R*& ((I2 1GŠ #    1  ]  RÿèðÏ"(73'67#'63#"''3257&'''6zm  ^ / :PÏ   +ƒ  _)+.'/( )IÿéèÃ$(7#"''3255##5#'65535#33535#735è   '+))='d))='ý +CC-" 3>]<)))e))) ÿéõÏ$173533#&'#5'675#&''67&''6[XX)A <$(6 @*[# ˆ  µ8B6b\3:@  '  KÿéóÏ$1733#&'#5'675#53&''67&''6”AA- ($ *==)  d  ÏE7*TS*3G   '   QÿéëÈ$(,7#"''3255#'6553533#3#535#3#735#ë  b  ODDÈÅ  ¬SD5 5?_26=mÿôòÁ73#3#3#535#535#&'uv2++9…8,,0`  ÁARRAb mÿéïÁ7#5##53'>&'ãE,  Á˜‡†—-M+'  ")(2ÿð»Ð 73#'6#53#3#67'5#53^S^ $%c*44 22Ð 1$3  C ÿïÏ 73#'6#53#3#67'5#537@J L ** &&Ï 3$7  F ÿïqÏ 73#'6#53#3#67'5#5307@ @$$""Ï 3$8  ExÿçóÐ(.7#673265#"''67&'#67'53'37&'ð1    2  ¦:0$&)$Eo  **(   fÿèòÏ)73#3533#"''3255##5##5'67#53¡GL-    !Ï $##U  @uu\P /'lÿèìÇ 7#5##5##535#33535#335ì####7#Z##7#ÇTT<)))e)))`ÿéóÅ73#735#3#3#"''3267#7#snnDD(“_ Z  ]ÅD D!63_ÿêóÌ!'73##"''3255#535'2'6'&'ß AA  @@;0  T  ÌWA  <U#   ÿèõÒ  (,7&''63##"''3255##5#53#=#26 64.; P‚‚¤  0YN)Ò$(&!%B  )exWka 22cÿòòÇ 7#3#5##53533#"''3255##îw{J('   ǯÕMUgS >l`ÿèòÏ $(,73##"''3255##5#53535335#33535#35#æ  R 333R3´t*  %EEt:'''a'''RÿèðÂ7#5##53'>&'äL0&& " Â’}#G0 $+3ÿæíÉ 73#735##5##53'6656&'3——oo‰L.:8).'&!-É><_LM`&(  KÿéóÐ$*73533#3#535#3533##"''3255#&'X>>>H§K> r!!  r(  ²N<  8  KÿçóÐ%)73&'73#&''67&'#67#3'6573#V>?'*", (I > %!L¹      E1 )gBÿé¦Á7#5##53'>&'¡2#   Áš‰Š›'M'  "+0 DÿèöÏ#'7367'673#&'#'67#3'6673#Q6.G8  T/% .5*-'<“-$+3( $+kFÿç÷È 7'66553#&'7#3&'&'u „ " * \\K% "*% ''|;. +RL="J9&/*CÿèóÇ &733#535#3#3#&''67#535#'6apžp]g=IB03; A EI# Ç+/# )# Jÿè÷Å"&7#3#67&'#67'5#'6553#ëx}6  7 !bbÅC %P`  mD0 5=^*DÿéóÇ *73#535#535##5##53&''67&'767#Ynjjl“y ~) 2 + & eÇL  F"#(   DÿèîÆ $73#"''32765#'6553'#33#735#p~  j†``TBB‡]@A2 4?^?-M>HÿêðÏ17=7'6&'#"''32655'67'67676767&'&'''6Ï 5B ;> ,     #+7-% ^ Ï P? :  & 3  BÿéöÆ!73#3#33#"&''6735#735#d{177' 2% $  7UUÆU'4-9j1JÿêóÏ-37&'3533#67&'#"''32655'675#&'Å bA@@  ! "0A  Ï   ''1 #C ?%#*/ PÿéòÅ!73#33#537#537#35##5##535#X“PE¢% $00>6R[[[Å3"O"FW W8&cÿèöÑ!%7#67&'#67'53&'73535Þ7 ":! 24SSS²f  EK  ¿ +ZÿéçÐ"(733#"''3255##5335#35#'&'7'6˜<   c8&cccc  z Ð=’  ;ª.Lx   [ÿéëÈ#'+/3767#533#"''3255##5##53&'35#33535#335€d'   ,+D++>,j++>,±   //8¥ AJMÿéóÆ 73#3#5##535'67#35#7&'Z‘=7Y5' 2?YYD ÆZjj?(©6_LÿéóÐ 37'2'6'&''&'33##"''3255#53567#à;QO72 )  †EE   MMiÐ  ++ ' KÿéñÐ?767&''67&'3#3533#"''3255##5##5'67#536h  4!)]d4   !! )1Ì      /  8  !TT@= MÿíõÐ +73533#735#33535#3353#3#"''3267#7#Y<<‹))<)e))<)„¨ob g $¹W531( 'IÿéöÇ73#3#&'#5'67#535#735#by2E<* (& *&&9(Í  ?7PP. C I- ÿéóÏ"73533#3#535#'6#5##535#?0WWhæj; ¥………Î $$$$ `bb@-EÿêóÍ"73533#3#535#'6#5##535#m#>>F©O- „```Ç&&&& Z\\;(†ÿêóÍ"73533#3#535#'6#5##535#œ""'g-Y444Ç&&'' Z\\<*ÿéï"73533#3#535#'6#5##535#>1UUdÝe< ¤†††   FG G+ ÿëÌ!73533#3#535#'6#5##535#)''1‚=_888Å%%%% V``9&xÿêóÍ"73533#3#535#'6#5##535#’))/w5 b>>>Ç&&'' X\\<*kÿêóÍ"73533#3#535#'6#5##535#‰--4ƒ; kGGGÇ&&'' W\\<* ÿéwÏ"73533#3#535#'6#5##535# &h/X///Á ((((S\]<*eÿðôÏ)73533#3#535#7&''67&''6u.33:†9.   T  ;””''•)3( ÿèõ673533#&'#5'67#efN$0 :'": /#N.  32  ÿëˆÏ!'73#"''3267#3#"''3267#536'6@0   4T  V)&.1Ï 8 OK2s ‘  ÿðŒÐ7335#53533#353#67'5#7755- /ŠCYYCU.  8 ÿêÐ!73533#3#3#'67#53655#535#233--57 &# 47,,2± 0$  ÿêÏ733#5#'67##53367'@140+ Ï*7$h@ ?\&9:a   ÿêŒÆ 73&'73#67'5#'655321x\!D¤ † f,332 ÿéˆÏ73533#3#&''67#535#/1133 "023/¨''' * *<'Ë7#53&'73#3#'8 1RFZ‹v ÿï‹Ï7#'66553&'7‹S ,©D7, (Nÿî|Á73#67'535#hL+ &3 KSÁbZ  z< ÿý„Â767#53&''67&'+ Pf  ' (›&?))ÿé†Ï 7#5##535335#33535#335†I...I.¢¹¹--J777€777 ÿêzÏ73533533##5##5#35#35# ,,!,,,,£,,,,§§>>> ÿîðÆ"73#735#3267#"&553'#37#3-££{{ BC LM¾iAAUAAÆ=*   uH5"""!ÿêò’"73#735##32767#"&55#;5#.ssš¨=JSKT@@@@’2.;  SÿëÏ$*77'5673#3265#"&''&5&'+ ='&  )ie  È :4 :D3aÿéŽÂ$73#3#"''3255#&''67##537#|20   28Â"‹  t 3’¤" ÿëŠÏ!73533#3#535#3533#67'75#+++5|3+-++6C3-¯   Y$ ( ÿë‡Â 73#3#735#7'676'&' zz hhAA< 3>%! 3  ÂJ%@ ÿéƒÆ73#735##5##535#``88REEEÆW1_kkI6ÿè•Æ!73#33#537#537#35##5##535#€D7‡).-'>CCCÆ5"N"HWX7% ÿéÐ 27'2'6'&'&'#"''3255'7567#53 0F91  #  r2   3;SjÐ  [ + $  ÿç¤Ï4:7#67327#"''67&'#3#"''3265#'6553537&'ž-      0)  A  ¨<)?")9#R%M 5:, -7P''   ÿêšÏ$*073533#3##"''3255#'655#535#'67&'///5"  #!$5/i  ³l  gC+ ':G  ÿí‰Î%73#67'53&'3535&'76K &N %;;; !  Î fG  » ()1  "  ÿê–Æ#'+173#3#&''67&'767#535#35#33535#335|5/1& ##   .040L0Æb  b>>  ÿé–Å %*.733##3#5##5'67#5367#537#3353535#kCQ3  +.$6#%*033Å+, \S   + })ÿéÐ !%73&'73#3#536'&'#5##535#./rU"J 0 aCCC·  TZ Z>, ÿê’Ð %*073#3##5#5367#536365#335367#33535B:''K ##.K,#( Ð l //l :  J  .   ÿé”Ð(,073533#3#3#535#535##"''3255##535#35#:88009ˆ #&>>³-Z F Z)ÿéÏ #'+73533673#3#5##5'67#535#7#35#35#%%(:K: ,/%8::::µ ueoA ÿï—Î(,04873#3#3#67'75#535#535#535'25##5#35#335‡ 999E6778 'Î!! !!X!!!!3!!!­ÿèñÃ7#"''32654'7##5ð  ÃB$ 'BÊÛPÿê©Ð!73533#3#3#'67#53655#535#X " !¯!!" / $ "Kÿê¥Ð /73#53&'3#735#367#"''3255'7567#z"Z#KK$$S$  # 9Ð  .5/   Oÿë£Ä $7#53#"''3267#'67#535#5;5#35#lG ² 02 )))d)Aÿí¡Å &7#53#"''3267#'67#5367#5335#65#jL     %³¤-'5+))9`ÿé¥Ð73533#3#3#'67#535#535#a¯!!!!0 &!!Uÿé¥Ð73533#3#3#'67#535#535#Y¯!!!/ &!!?ÿè¢Ç +733#5367#'67#535#'673#3#&QA^7/" %( 7&( Ç Ÿ  ÿè¡Ó4<@DHLPT73#33##3#"''3255##5##535#535#'6553&'5#35#5353535#33535#335e43* *.  *&&.: ..&8A*F*Ó   T  !i  B4 3?\* '   D ) ÿêœÇ $(,0487#3#25267##"&55#535#55#7355##373535335‘*** (  &&'F I1]1Ç8h g8Ë»° º1* ÿç¦Ë%+PV\73#33#5##53537#35#35#35#&'7&''33267#"'3&''67&''67&567#''6‡@9s'3OOOOOO#  ;   D  G  -$ ) = Ë BB         ( 9 ÿé¢ÐCGKO`7335#535#535#53533#3#3#35335#535#535#53533#3#3#353#3#3#735#7677'7&'   ‹‹rrMM #"?M"ÈN VV N\  -#  ÿéðÇ-173#3#5##53565#5#35#327#"&55#'67#35#àL?ŸAN€ @Ÿ+  !% ,ŸŸÇ¯ ¯cP% )2&|lÿçóÐ#)/7373#33#53537#5#35#3#3&'''6u303/ „ )0^EEEEEE ' ¾ww/  ;ÿçëÈ$(,7#"''3255#'6553533#3#535#3#735#ë v&&&+f(&TT..ÈëTF5 6@`15?;ÿè™Ï73533#"''32765#'6655#E)  ) ¤++)'[ r*B?[ÿëôÇ"73#735#3267#"&553'#37#3dssMM &5  >3†L''9%%ÇB‰%   rI7%%%KÿéóÉ 7&'''6&''6767&'à &) 9*'M/8)" ÉC K>-*G(0 .RL)‹ÿéõÈ 7&'''6''6767&'Ü (7 %ÈCJ?,*G)/  /SP(VÿéóÉ 7&'''6''6767&'Ç #& 6&"K +4& ÉC K>-)F(0  .RG.aÿéòÉ 7&'''6''6767&'Ë "3"F (0# ÉC!J>.)F(0  .SM(7ÿñÅ® $73#53635#35#3#3#3#535#535#u 8r&NNNN600>Ž=//6®LL (-, uÏ767'5'753q5% c  mD?OÿéóÏ#'+73533#3#3##5#535#535#35#33535#335UBCC::HHHH;;B((<'c((<'¼e''e;AUÿéñÃ373##"''3255#7&'#53#"''3255#7&'#5UœœF   “    Û  …()!r²›  …()#u²LÿèñÆ*673#3#"''3255##5##535#&''67&'7''67&'L¥HC  00CI-  S  Æ “  }ŽŽš¬ @&,  &, IÿéöÏ !=7#5##53&'73'67#&''67#3267#"&553#"''325írAE*C 6   t  A  µ$%  ) j)R   d  yD  GÿîôÐ&*.2673#3#3#3#535#535#535#535'25##5#35#335Þ $FKD™CJCC)0Ð"(("Y"""":(((lÿéóÐ#73#3##"''32655#535#535'2å 0099 ::223<Ð-%7 3%*XÿéëÏ $(733#"''3255##537'6'&'3#735#™> kA<Y  FF ÏI„  m‹=  WG%PÿèñÏ%+73533533#3#535#35#35#35#'67&'Y>¡)>>>>>> % M ±mmBC1  KÿéëÇ$(,7#"''3255#'6553533#3#535#3#735#ë j!!SEE!!ÇÄ  ¬SE4 5?_/7=EÿéòÏ#'73533533#3#535#35##5##535#35#N!5!!(­*!455^^^^^^±!!!!Css)=\ÿëõÆ "/73#735#35#3267#"&5536'33#67'\……____w    w,, Æ_9;= )   ^1  KÿêõÏ!373'33#3267#"&'#7&''3#33#7'27537N_10  `‹ mBB#"-8‘>#='$DQD 8"/ `]IÿéîÈ&*.473#3#"''32765#&''67#'67#735#35#33#c|Sm  0  % VVVVViÈU X! 7    31aAÿéòÏ-173533533##5##5#3673#3#5##5'67#35#R#,%%,#9R\ dO %-1OO´,  [ F  Z)QÿéôÏ #48<73#5'675#5373673267#"&5#"''3255##535#35#…00#   :  YYYYYÏY      p  ,…$5RÿçóÇ 4;73#3#535#5#35#335335373#&''67&'67#367Yš2)Š'.U((„8S 5 ' ,C  ÇCC1E      MÿéóÏ /5973673#3#5##535#53&'3535#"&55#'67#333535#   /8.m091 ,@m RmmmÍ ›› - j  i[ÿéôÐ!06:73673#3#5##5365#53&'3535#"&55#'67#333535#„ %3*c-5) .:c LcccÏ››  / j  inÿéóÏ.4873673#3#5##535#53&'3535#"&55#'67#333535#‘  +$S',# + 0S  B SSSÏ›› /j   ilðÏ*0473&'73673#3#535#35#5#"&55#'67#75#335#l ,'x"); 2 TETT¯  uuX 1? ÿéŒÏ,2673673#3##535#53&'#335#"&55#'65#333535#+   ") _"' 8.M  ? MMMÏ Š› -V !&!fKÿçòÎ#)/73533#33#53535#5#3535#5#&'''6Y=CC8 4=vZZZZZZZ@+ " ¾ww. * )     CÿèôÐ59=AEI73673#33##&'#5##5'67#535#535#535#53&'5#3533535335w  17*   ",,"")* =BÐ &% !=IH6 8&MÿéòÏ 87'2'6'&''&''673#3#353#5#5335#535á ;TF> 0 (    n?GG+|+KKÏ     > 0%A 7%0 UÿèóÏ#'+/7;?73533533#3#535#5#35#33533535#335335#5##535#35#U122))1Y))g) VVVVVÁPP ,-\ \ -EÿêöÑ *0AGM73#53635#'673&''67&'767&''33267#"&5''67&'ŠP(gg$  +        $ ‰  Ñ }} vY      N 1 4    eÿéîÇ #/3773#5#73#5#&'7&''67'63#5##5335#35#fB/H@-@ N ! U %6Q+QQQQÇ_M_M       j j&;[ÿèöÐ#)/5;73#3533533##5#'6553&'#3&'''67&''4'±3lB7&  I  F Ð &::R)$OP [) # gÿèõÐ#'-373533#3#3#535#535#3#735#35#35#'67&'o355//;‹;,,3ssNNNNNN % <Ä     DbE ' '     ÿéìp 73#53&'3#3##5##535#ƒa×`M¹¹¹¹³ŠŠŠp"  00 UÿòóÇ 7#3#53#735#3#735#73#735#ò‹Œž-YY3322022ǯÕ!;6L,L,KÿéóÑ(,073'73#3#53&'#67#3#3##5#535#735#35#U@ ?)§(bB)‚8JJJJ7\\\\¼    R1.IÿèôÐ*;Oc73533#&''6655#67&''67'767''67'67&''67&''67&''67&'NHFF? 5?)$H     e          `    ¸+91: 7>+      .       LÿçõÐ.EL73673#&'7#'67#735#&''67&'763&''67&''667#\-F8 bbI     :  ''"  &) 4º  [ 7     O     _ÿéôÊ /473#735#35#3#735#33533533&''67&'#367nvvPPPP(w„ *" % ÊE) ' '41   WÿêòÎ*06<B73#35#535#53#3#"''3267#'67#56&''&''&'''6—''Z(((;\q   j  H    Îa L4 _  ÿéÏ%)157&'73#53635#33535#335'&'3##5##535#J  3 mD <,G,I  ƒƒt>>>Ï QQ33S  x F G) HÿéóÉ 06<73#3#535#5#35#3353353#3##"''3255#'67&'R¡3**2[))u‚‚£F   Jr  É>>,9 ( %  Dÿé÷Î #/5;B73#5'675#73#5'675#&'7&'&''6'6'67'66UE 2PE 2;  a   , 0#. :+ 1 35 )= AA .[ 59ÎV  V      5       + IÿêóÏ39?E733533#3#3#3#&'#'67#5367#535#53&'#53367#7'6'&'ƒ3 *D<<M<, 34 )99E;+/2 / 6<448, #7H  c  Ð333   '# ) H    @ÿëöÊ159=AFJ73267#"&55'67#5367#535#53#3#3#&''5#35#3353353&'##3x !*  5. )8-).›1*Nf+ &))[J27BB  2 ::   $™(UCÿçôÐ "&*067&''633#5367#53&'35#35#35#'67&'–') *) ( :* !ˆL S,cccccc$ !R Ð   jj K ( * !     GÿéôÐ>DIN733#67&'#"''32654''67''67&''67#5'6367#367#335ƒ;,K     "/4"' & !' *6 4 #,@.Ð :   -2     . 1 IÿèïÎ'-3;V7367&''667367&''66''6''6#5##536533#"''32767#'67#u   I    J “u*B  1( 2 &Î    '    ! @))0 ; #,MÿéóÏ(048<@73673#&'#5'67#53&'735'2##53#'#;5##;5#á #!:$ &% !6  !G8e‹=(())(())Ï    "'   Ï hhV$FÿéôÏ;CGK73533#3#&''67#5367#'67#5367#53533#3#&#5##535#35#P"   w    \\\\\¹      +      n n'= KÿéòÈ #'+/73#735#73#735#3#3##5#535#735#33535#335SEE>HH""\‹&&> ŠŠdddddd& #O! !Á gI ) ) "    SÿéëÊ  $7##535#35#7#"''3255#535#5#˜3!!!!†   5""""ÊN’à +.È  uN+ @ÿéòÏ/37;?73#673&'73#3#3#3##5'66553&'35#5#5#35#¤@„ #+/****2g A%qqC"""""Ï 5-   ^ +" .!W 4^!"IÿèóÈ-159=73#3#3673#&'#5'67#53&'735#535#5#35#335335T™0); 9$ %) #3#  ?)-W((ÈB'    7>$ 'B0NÿêøÈ"&*.26:7#3#325267##"&55#535#55#7355##373535335ç044 4 00.TV9!w9!È:h g:̺¯¹2*ÿéïÁ 73#735#&'''6.¤¤||b+ +; -0ÁySu!% +~òÅ 73#735#&'''6XX223  'Åa=\  ! Lÿéî’ 73#735#'67&'_}}UUV’b=V " \ÿéòÁ 73#735#&'''6sppHH?)ÁxTv % %! ,uÿéò 73#735#'67&'‡]]55? ÂzTu ,#!% &!‰ÿêò 73#735#&'''6’TT//2  # ÂzTt"') + # ;å} #'73#735#33535#33573#735#33535#335]]%9%^^&:&}B( & (B( & ‡æÉ #'73#735#33535#33573#735#33535#335]]%9%__&;&ÉB( & (B( & 2ÿèÏe 7#5##535#33535#35#Ïu00E0u00E00e}}/JDÿéér 7#5##535#33535#35#é}44H5}44H55rˆ ‰5###W###%OÞÄ 73#735#33535#335%¹¹??R?‘??R?ÄuDOCŒ» 7#5##535#35#35#35#Œ'    »¬ ¸I:::‚888ÿèðÏ73533#3##5#535#7'6'&'— !!$$$$ H  :  NN+JJ+O  %ZÜÆ 73#735#33535#335%··<FF::4::D  T µ"#<<.   "   {ÿé÷Ä!(73&'#"''3267&''67&'765#67#ŽX   "! (Ä^6. .($9  %Z 7=7Qÿé÷Ñ  ,97&''63#3#735#73#735#&''67&''6ž!+ * ' 6@@";;9;;E   U  Ñ!" ;;/   !   [ÿéöÑ ,97&''63#3#735#73#735#&''67&''6¡( '" 0>>99199B S  Ñ !$ ;;0   !   `ÿé÷Ñ  ,87&''63#3#735#73#735#&''67&''6¢( &" .>>88188A  P  Ñ !;;/      ÿëôÍ73'67#'6'6553&¬:  +   (Í  +i,);#FgÿéóÎ%)-736533#&''67#3##"''3255#3#735#r325 $ ) / Œ   hFF%%¶     9W  T9LÿéóÎ&*.736533#&''67#3##"''3255#3#735#Y?>A& &+ 1 : §  }SS..¶    9W  T:EÿèôÌ$KQW]7'23'73673#5##53&'&''33267##3&''67&''67&567#7&'''6Ü 9SD+  |>   Q" +! +( $ ) DGa Ì    "" '       G  [    >ÿçôÏ #=J73533533#735#33533535#335335#3#3#67'5#'655&'76V+.”*m*Š}}‹b  Š   6  ÁI- + &  - 6$ $7M ' @ÿéõË 3773#735#3353353#3#67&'#7'5'67#735#Z)€šš ‡6  9 &  # aaË:5 3    . !    FÿéõÒ!%+37;7'67&'#7&'3#735#&'735'6#5##535#35#u ;$) Q= -ŠŠ)) 4)&UUUUUŸ   B!  !!  2T T+@ÿèóÑ*/37?C733#&'#'67#3&'73#'655'667#3#3##5##535#L(   <5† +HA jjjjjEEEÑ     8* ,2= M  9 9 FÿçôÑ !%)-39?7#5##53'73#673#5'675#5#5#35#7'6&'''6ïzC9e)4O‚ -#)d\\\\\ V& $ &À%%    ]SG   i }   MÿèòÊ (BHNTZ73#735#35#&''67'6767677&'?7'7&''67'67&''&''&'''6^„„^^^^    8         ÊP0,W  !!    K  EÿéñÊ#F73#3#5##5##535#3#73#3#73#3#3#"''3255##5##5##5367#N™EL97JA))L**U22U44f¬RP   9FÊ (::( *  ;  $8888=O Sÿç÷Ò !%7@IW]cio7&'6'&'6'&'63#735#&''7&'76367'7367'733265#"'&'&'7&'&'7&'Õ ' & jjU   [  :  9 P   F   /   F   Ò         ,I(    8NZNY'! %2        @ÿêôÐ048<@DJPVf733#3'67#'65533265#"&55'75363#735#33535#335&'7&'''6733267#"&5‰CCP n3A" ,>jj,F,#  A  `     Ð  IÿéóÍ#6:>BFJ`m73#73##5##53#5##5&'7&'#3#'6553&'75##5#35#3353353673265#"&5'67'533OIIUII $$4   a   20+…B--    . )Í 2!!22!!2  *"# "+3        6 @ÿçòÐ$QUY]agm7'673533#3#67'5#'67#53535#'673533#3#32767#"&55#'67#3#735#35#35#'67&'Y      '0  #    E……`````` !P ²       )[A $ $      ÿëóÆ733267#"&5'3'>’ !D ƾ " ÀX(6 +7ÿéëÁ 7#5##535#35#ë88888ÁØØZH¢HyÿéóÆ#733&''67&''667#67#'7#‡U      @ #Æ3A'=* G_‰(44<ÿéäG 73533##5#735#335ZYYZGG[F62|ÿèôÍ73#&''67&'#53&'67µ .  0  ÍB+(F4& #6mÿéòÇ!%+17=7#3#3#3#"''3267#55#5#35&''&'''67&'í($$$$-  a4 -  (ÇO7‚&%/€ÿóòÅ7#3#5&''6767&'76ò^^rS      Å®Ò#%  „ÿéîÂ7#"''3255##53#735#î  D//¿  ¨ÇÙ7aA€ÿéôÅ73#3##5#535#'6'&'Šc*1100&O = ÅdSSd%#!#ÿéít!%+17=7#3#3#3#"''3277#55#5#5#'67&'7&''&'âSKKLL^   ´VCCCCC  8c    t   +Z    sóÑ.37373&''67&'67#36773&''67&'#3674 &  'b     à        ÿéí|!%+17=7#3#3#3#"''3267#55#5#5#'67&'7&''&'âSKKKK^  ³UAAAAA  :c   |   - `    xÿëôÏ#73533#&''67&'767#735#335,..% !   ,-°Z"     666rÿèõÐ  7&''6'6'6'66¯  ($ #'1 0*.& $*Ð""$ ! & ,!#'$vÿéìÈ7#"''3255##53#3#735#ì  O>>11ÈÅ  ­Ìß,X7yÿèôÇ73#7#5'75#35#35#75#}q S"000000Ç*( ™&&]%_"kÿèòÆ $73#"''32765#'6553'#33#735#e  QoII@99‡^ HC1 4?^?-M>pÿéôÇ *73#535#535##5##53&''67&'767#€bcPOOOpX `  #   JÇK  G"#'   kÿçóÏ5;73533#67676732765#"&''75#'655#7&'oT;  ! $  U  ›44(     za< ;VD ‚ÿéóÐ!%7#67&'#67'53&'73535ã*   1 $&999³f JK À ){ÿéñÈ 73#735#35#3#3##5#535#‰^^9999g+1122)ÈZ49733xÿéóÏ %73&'73#3#3##5#535#536'&'~. -qP "744..1F , ± #88#pÿéôÐ"'+7&'#3#3#5##535#535#5'63&'35#« ..'8$** )3  88Ð% VV # —$tÿèîÏ373#"''32765#'63#3#353#5335#535#'6T G  /!!Q$$ Ï ›6€  2$43#2 qÿéóÏ$173533#&'#5'675#&''67&''6z.--"  .   K  ´F5'PL'0K    (  ÿëôÆ !.73#735#35#3267#"&5536'33#67'jjCCCCU    Z Æ_9;= +   _0   ÿéõÏ*.73533#3#336767#"&55#'667#535#35#dffL63 '(% /Md+……¸K4 :''KT&AÿôõÂ73#33#537#'7#37#O£k]+´uW&$M LÂ"†/if1BÿéöÏ 73655#535333#&''67#75#M?22:H5458;z&])))I2!54"$/6)BÿéñÅ#735#53#3##"''32655#'67#'t ?T(..   "70&9¦==^ YB-"<=ÿçòÐ '-73673#3&''67&''67#67'&'N)bdT#(% $ +  , '0  £6#    !1M4!o EÿéóÏ"(.733##"''3255#'67#5373#3&'''6—>>  B&. RY,0LŠ-G  B$!$! # $ :ÿèôÒ .4:73#53&'3#735#3#735#3#3##"''3255#'67&'ŸL°N;’’nnPP,,+……¬L   M(  i Ò 'U3% 8       8ÿéöÑ 573#53&'3#735#3#735##535'273#&'#5'6¢I­N=‘‘kkKK## &'‡C-!  ‹x}#I / #-.ÿé“Ä$7#"''3255##5&''67&'76“  UN    Ä  ªÈÛ'   OÿçóË #'+1773#3#535#5#35#3353353#735#35#35#'67&'P£3+•-3]++{††``````$ I  Ë 55 $,bF % &     ÿéõÐ+05733#3267#"&55#'67#5367#'6367#35#R Z :@   ) % >;Z R./6E@;Ð P6   = 0P  ^**jÿéóÏ(,073533#3#3#535#535##"''3255##535#35#q27700=‰9))2s  FFFFFÀR\  $t 0aÿéóÏ27#53&'73#67&'7&'3267#"&55'67'6”(77E $    * #Ÿ  ) !% X # [OB ÿîžÐ (7&''6#3267#"&553#"''326O%!# /:6'  2! ^   Ð (&?\  r7 ÿ雯 $7#3#3267#"&'#67'535'#,20 * R*&ÆK$#)*1B  Ò%%\$$ÿè˜Ï!733#3#'67#535#537'6'&'I66;=# 57225  Q  ÏM*- "*B   ƒÏ 73533#3#67'7&''67#535#)**5=  ).$-)¬##3*   '3 ÿé’Ð73#&'#5'67#535'6„ 000(24/>Ð (#dg"$/% ÿìšÐ"73533#3#535#3533#67'675#222<Š;2233 >K2¯!!  Y$ ' ÿê›Ð*.273673#3#"''3267##5'67#735#53&'35#356  2<  ( "(.0 90Î  @9 O?$!C H- ÿñ¡Ï*7'75#53533#7&''6'&''6@OD;;55   Q  %‹‹"¨  %,  #ÿéÐ"(733#"''3255##5335#35#7'6'&'J3  O0OOOOQ  U  Ð=’  ;ª0Ly   ÿèôÑ,073673#3#32667#"&55#'665#5367#35#7695"(>- '3II·   I<  C('  I O% ÜÊ 73#"''3265'3#É   )Ê „{ ÿç Î !77#5##53&'73'67&'767#'67#67'53#"''325Ÿe>> 8   a ;  ·&(  !o+%" & o  D ÿé£Ï.287#'733#67&'#"''32655'675#53'37&'jCJ(=   #@S$ < S  ˆ8 6,  .6R ÿêšÏ'+/736533#&''67#3##"''3255#3#735#327  ' . Œ   gHH##¶     9V  S:^ÿèöÐ #'+/5;73533##5#3533533##5##5#3#735#35#35#'67&'o2992 44 xxSSSSSS G Á gI *) "    iÿéóÏ 7#5##53&'7&'''6îV2" (¯:((: 6Z$*`9:)mÿéòÐ#'+73533533##5##5##5##535#33535#35#m$$~P0 P0 ²(6%%%\&&& iÿéñÈ #'+/73#735#'3#735#3#3##5#535#735#33535#335´::V99 u2::;;01P1È11/W((45`ÿèôÐ I7'2'6'&''&'&'3#&''67#5367'67'6776767&'â 1H;6  (  #  g D3 '1 $)1  '$Ð     1   $     ! ÿêeÎ6767#"''32654''67&''67''7&'767&''6L     $   Î  "=!     rÿéóÏ &,733#5'667#35#35#35#'67&'œ2d ) & ======J  Ï  y  &87'  tÿèóÐ#'-373533#3#3#535#535#3#735#35#35#'67&'}.//))4|5)).jjDDDDDD  8Ä     DbE ' '    lÿêîÑ#+/373673#53&'35#&'735'6#5##535#35#’   ‚ $$3%  $NNNNNÑ VV ]666 ;cc#5 ÿéUÅ 73#735#35#35#'67&'AA  .  ÅŸn OM4 !båÌ 73#735#35#35#'67&'+««………………& #%U%%$$ÌU; !  ÿæés7#5##5'66&'Ñ{K25 2--) ,*s[HI\.2  +uÿèóÏ)/7767327#"''67&''7''74'37&'â/66    '()  £   $ " % 43  dÿè÷Å#'7#3#67&'#67'5#'66553#íbf,  -    RRÅC  $Q_ mB4 0%^*tÿêòÏ!'7#5##5367#'6733'665&'ë8+ !  -   "‰q__q # 9  #(pÿèöÏ*0673533#3'67#535#&'36533#'67#7&'&'~*++5 f3* </55 &4 Q ¸ 1  5*'&>   <_ÿèõÐ59=AEI73673#33##&'#5##5'67#535#535#535#53&'5#3533535335‘   &*#   !!! 14Ð  %%5II2 8'tÿêïÑ#+/373673#53&'35#&'735'6#5##535#35#™{""0" #HHHHHÑ VV ]666 ;cc#5bÿéóÒ*048@D733#&'#'67#3&'73#'655'667#3#3##5##535#•=  *)h 94 UUUUV333Ò     !  ,* )M M  7 7ÿèôÆ 73#3#33#"&''675#735#0¤EUU'#?A (!K||ÆX%0.: c2ÿéžÈ%+733#"&55#'66553533##5'67#&'| #  966 !1bÈ8  -  jbI%*ÿéžÄ.47#"''32655'675#535#535#533#67&'&'a #@cMMOb=  T   .M2  L ÿè¦ÅB73#67&'#"''32654''67&'''67&'7267&''67#Œ4     / 2#   & @Å  -3      6ñÐ-15973673#53&'3#"''325'#"''3255##535#35#73#P 9 >â=‹  F   >>>>>gÐ   (N  FM  b # 'Fÿéà073#"''3267#'67#É  ] E< D01 % ÿé£Ç"&73#"''3255##53535#335#3#735#   jCG00EE!!ÇUp  Zx‰UUC+C>ÿì›Ï (73353353#3#3#735#67677'7&' !zŠŠ ssMM  :H Â))/=3    ÿé¢É 06<73#3#535#5#35#3353353#3##"''3255#'67&'-&ƒ&,P%%huu’>   A i  É>>,9 ( %   ÿç©Ñ$@FLR767&'7&''667&'7&''6&''67''6767'7'6'63'6I  -3;   ( (-(    . ,0"A A4(] XÑ       4   ( ÿé¡Ð 7;?CG7&'67&'6'&'63#3#&'#5'67#535#735#33535#335,  e  #  55>:  "4@7$$7"Y$$7"Ð      -N -1 / *  ÿê¦Î#'+17=C73&'73#3#3#3##5'65#5#35#&''&'''67&'5 )*%%%%-e9&&&&&X  ?  2Î  X )%%0    ÿè³Ê '-=L7#'6553#353#'67#53365#536'&'73'67#'6'6753&©|E   I     ÊTE6 6@`5 /@( @/ 4     o  = #  ÿé¦Ò $*26:7'67&'#73&3#735#&'735'6#5##535#35#3 0% O"5Jyy!!  -!  !FFFFF " %D    1TT ) ÿë°Ï<KQ733#3#53533#673265#"''67&'#'6553533'73#67'675#'6Y--;•M$    DV  m;-    Ï##"$#  3/756  % ; >  ÿé¢Ê .173#735#3#735#73#735#3533#&'#5'67#37%ee??$==:>>a>??"" (5JÊ5066: /4 ÿèªÑ$9^cglr733#5'667#35#7'53373267#"&553633#3267#"&55#'67#5'667#37#335&'3H‚ D<\\'3%A   MG /  . $) D> !%5( Ñ &  .  $   # (           ÿç«Ð$PTX\`fl7'673533#3#7'5#'67#53535#'673533#3#3267#"&55#'67#3#735#35#35#'67&'       ",    A{{UUUUUU  J °        )[@ $ $       }½73#3#67&'7&''67#UUe,! (-#½(: $ 8 ÿó…¾7#5'67#53#3#=#; (t7 @( c (1s AAÿçÚK736533#"''32765#'67#M`!N. H H; 8   wæÍ73533##'32765#'67#Œ0 /*¢++l$ K]%!S ÿë÷Ï,05733#3276767#"&55#'67#5367#'637#35#:0 ! I*3/ $/'  'Ï I>  C8! /I  Z%%% ÿ÷È$(,073567#533##"''3255#3'7575#75#75#; Gc++  ;t8F   ˜  +> PM97520ÿéÐ28<@73#3#3&'73#3#3#3##5'67#5367#'65#5#35#"R4GL')""""([ $3 Ð    M #%  p"# ÿé‘Ï'/37;?73673#&'#5'67#53&'735'2##53#'#;5##;5#ˆ  )  ( .9&Fl,Ï!    &  Õ hhW' ÿê”Ñ !%+73&'73#3#735#3#735#3#735#35#'6 3?‡xxRR >>(nnHHHH\5AGÁT4# 8A( ! ÿèÏ37;?CK73533533##5##5#3#3#"''3255''75##535#735#33535#3355#7'7!! k-3   1++E+ Å  N K   N` 0 + _$  ÿè•Ñ DHLY73#53&'3#735#73#735##535#535#53533533#3#3#67'5'675#35#67&'S:„5*77088:!  !O   A   Ñ$++p     "    <    IÿéñÅ#735#53#3##"''32655#'67#'x Q%QQQQQQÐ ÈÈC#Y$[%ÿèóÈ7#'6553#33#"&7#3GT /CJ:--dO-&UUd=)2™>ÿééÇ#'73#"''32655##53535#335#3#735#Ë  ¤[(oGG44 ]]99ÇUo Yx‰UUB,B>ÿééÅ73#735##5##535#7#5##535#+ªªƒƒ6999À888ÅW1XqqP>qqP>\ÿéòÏ)57367325667##"'"&5'67'53333##5#53© 1$BB>>Ï,   .2 x&E>>QÿéõÇ*733#"&55#'66553533#&'#5'67#É$ ' =B4$ &$ "+Ç7  ,   o ',RW/'JÿèóÏ5;73533#6767673267#"&''675#'655#7&'XdG   &% ,# 1+o  ›44)      y`< :VC Yÿé÷ÏCI73&'33#67327#"''67&'#67#"''3255'675#535'67&'Ÿ #.-    $      $Y  Í. )*#)&" #.$ 6  + +)YÿéòÏ$*073533#3##"''3255#'655#535#'67&'d877B/  **0B8w  ° f  aE, ); D !"€ÿêõÃ73&''67&'#367†e   ÃT=  .P@(08 ÿè…Ð $*07&''63#3##"''3255#535#'67&'I ! , F**   -- U  Ð$I  E8"   ÿó}Ï!73533#3#67&'7&''67#535#&%%+2 (+#,&¬##31 "  13 ÿéõÒ 7&''63##5##535#~27 54/< Q'—— ‚‚‚Ò(.,&,ddA.QÿèôÏ 7373#'67#&''6767&'d%PS*) #n"( ¨'gE HWX#)  .QN&gÿè¹Æ73#3#"''3267#735#jM49  : 39ÆI'J$-M#dÿéîÐ#73#"''3255#&''675##53&'žC *   &4Ш  /( 7,!+8­ÀTÿì«Æ7#"''3255'67567#536¨!   9NpO C )´ÿîóÊ733267#"&5´  ÊÁ " )ÿé×D 7#5##535#׆††DZ [<) ÿéäÈ%)-7#"''3255#'66553533#3#535#3#735#ä ˜ &/007~3/ aa;;ÈÅ  ¬SD5 1$_07=[ÿéôÏ=7367#535#53533#3673#33##"''3255#53567#'67#i%D8--!! #4 8<<  EE2 i  ' $  ÿêól736533&'73#&''67#\+&[,(I! ] X YQ    <1.„ÿëóË73##5#'6556ä !>#&Ë$††81 ,0c[ÿéõÌ ,27'2'6'&'&'3533##"''3255#&'ä 9TE;/a&&   a%  Ì  =H  E Kÿæ÷Æ#'+073#3#&''67&'767#535#35#33535#335\”B9:7 6!, & 68?$$7%\$$7%Æa    a>? gÿëòÆ"73#735#3267#"&553'#37#3qkkEE #,  60I%%6$$Æ;‚.  yH6$$$YÿéóÈ$*.73#3#5##535#5#35#"&55#'655#333535#Yš2)a)1V'a Laaaȯ ¯f %# !)~UÿìöÏ'159=A73673#'#3267#"&55##5'67#3533&'#35#33535#335a,J*" 1 #!  0N0²  K  W '=?[ÿéòÐ,0473#67&'7&''67#53&'#"''3255##535#35#¨@R#&5=-@K  MMMMMÐ      ed  *|"2XÿèìÏ373#"''32765#'63#3#353#5335#535#'6{e  [ =&**_-- Ï–" z  2$43#2 WÿéëÎ(73'67#'63#35#535#53#5##56‘E  9 &''`''*>`Î "+ !!} xUÿèñÆ(473#3#"''3255##5##535#''67&'7''67&'UœEA .-@E)  M  Æ “  }ŽŽš¬ @&- &- KÿéñÏ,073533533##5##5#373#3#5##5'67#35#` '!!' 6 HQ YI (,+II³- Z D $Z) ÿéóÉ #'+/73#735#'3#735#3#3##5#535#735#33535#335‹VV00€WW11 ·RiiiiQ>>R@’>>R@É330V((34 ÿé÷Ï#'8<@73#&'#5'67#5367'2&'#35##"''3255##53#735#Ï +63" u(9I8V;B OO   ¢.iiEEÏ  *% >  )K  5Qb.YÿéòÏ 77'2'6'&''&''673#3#353#5#5335#535á 7OA: +%   h;BB't'CCÏ     =  0%A 7%0UÿéóË,CY767#53&''67'67#53&''67&'767#53&''67&'#53533#&'#5'6 Of  # 0C   T0C  4E??88EE77>[[[[[[ * #EÄ     DbE ' '     JÿéóÏ/;AG733#3'67#73267#"&55'75#'665533533533#7'6'&'•IIH 5'( !  5%)%ƒp V  Ï     E7- )O£LLLLV?ÿéøÑ%<73#'6553&'3533#'#5'67##5'67#53533#&'§>„C$  g   Ñ P:5 ,7b N%% `L",/TQ",%%4WÿìôÏ$1IQ7#5'675#53533#&7&''6'&''63&''67&''667#­ (99;; '    L    < +'  1n *) Q     6       YÿçôÏ#'-373533#3#535#735#3353#735#35#35#'67&'i355E›C3""5#kYYYYYY  >à +   E_C ' '     RÿèõÏ#'8<@73#&'#5'67#5367'23'#35##"''3255##53#735#Ú  N' [  /<8  88d  e"DD##Ï<) *R  556##3%   e Y  ÆcA   AA ƒ VÿèôË'+?CIO73265#"&553'#33267#"&553'#33533533#3#535#35#'67&'¼  ;c  ;++!!)ž$1++ K   Q<,   Q<,O+     ^ÿêíÑ#+/373673#53&'35#&'735'6#5##535#35#†   !#++  9+  &YYYYYÑ  WW [555 :dd$4‡áÊ 73#735#73#735#SS//\TT..ÊCCÿêâ4 7#5##535#7#5##535#u000±0004J J/J J/LÿèöÑ *0E73#5##536'6'&'3533##5'67#&'3673#&''67#‹Nc%6 3   $$$ F \=M=. 5; .5Ñno€ "   $$-    2 %'  IÿçôÏ #=J73533533#735#33533535#335335#3#3#67'5#'655&'76^)+(g(‚vv„^  ‚  3  ÁI,+'  - 6# %7M ' FÿêöÏ;JP733#3#53533#67327#"''67&'#'6553533&'73#67'675#'611?™R(    J[  s<0    Ï##"&&/!  -5-! #)>  # < ; >ÿìôÑ"(.BH73#3#53&'#53'37#3#735#35#&'7&''33325267##"&5''6šA .«.?& 6-††````6  I  ^$  !  Ñ   5 (K- *&     " Oÿè¬Î 73#"''3265'3#˜   IÎË ±£LÿèôÏ%5;AX_7'23&'73673#5##53&'&''33267#"&57&'''63&''67&''6367#ß 8QC& sB     P W N" +"+#  1 AÏ    ##%    !           RÿéõÔ!%+37;7&'#5'63&'3#735#&'735'6#5##535#35#¡!' C4) @ƒƒ''4$%QQQQQÔ    -B#  ##  0T T+RÿèöÐ #'+/5;73533##5#3533533##5##5#3#735#35#35#'67&'e6>>6 :"": [[[[[[" K Á gI *) "     YÿéðÏ '+/37733#5##537'6'&'3#735##5##535#33535#35#šCsA; ]  eeAAed));)d));))Ï#-.!     320d d&9RÿéñÊ #BFJN73#5'675#73#5'675#&'7&'3&'73#3#3#3##5'65#5#35#^B/MB/8]9$8711118v :+++++ÊW  W      4  U  RÿéôÏ048<@UZ733533##5##5#533&'73#3#3#3#5'65#353535#533&''67#&67#€#$$#$$!85//..4‡ ?-  ---4 ~ .( "( @Ï       5    7     RÿéòÊ#D73#3#5##5##535#3#73#3#73#3#3#"''3255##5##5##537#[Œ>F31D;%%E&&N..N00^ LJ  6@Ê (;;( * :  $8888=N OÿîôÏ#)/5;CGKO735333##3#535#535#535#33535&'''67&''&'3#53535#35#35#d399Iœ@33@@3F&&& f Vd¥&%Á     ;      333#####VÿéòÏ)37DQ733#3#53533&''6'67&53#5#5335&''6'67&¢11=œ   ?   }jS   >   Ï//    2–2::      KÿéóÌ+/37GKOS7#5'75#53#'35#35#5##5'75#53#'35#35#5#7#5'75#53#'35#35#5#ño•XEEEEEE 6 J,ˆ 3 K,~ D>3 % & f F:. % %   F:. % %  ÿéóÏ(26BO733#3#53533&''6'67&53#5#5335&''6'67&|NNdæ..'  X  ¶£|  X  Ï//   2–2::   …ÿéñÅ 735#53#3##"''3255'67#'— (:b   )¦.>>^  L9&!;€ÿ÷óÊ73533533533##5#3#5#5#€ 5Rf QŒ44>>>>JJo‚888…ÿéóÌ73##5#'66556ä (K   1Ì,††>3 5D:‰ÿòîÇ 73#53535#35#35#ä e ******ÇÃÃB0p.o/~ÿìòÄ 73#3#33#"''675#735#ŽW $$ 6 %//ÄU%5+,8  c1€ÿêóÐ'+/736533#&''67#3##"''3255#3#735#ˆ&'*   #s  Q 77¸    ;X  T;\ÿçòÇ 5;73#3#535#5#35#3353353673#&''67&'67#367c.&‚',O&&{4M 20 $ )?  ÇCC1E   QÿèõÓ $(47&'#67'5'63&'73&'3535&'76œ$ _  4' LLL  )- Ó&O4  !"  %%%   ÿìîÅ 7#'655î±Åa8 3=]:ÿôôš73533#3#535#LAAASºSAd66JJ ÿòóÐ)73533#3#535#7&''6'&''6VXXiägV™&| %C++‘ +8+WÿéõÐ1073#&''67&'#53&'67#© :' '+ + AA Ð@*'B#6 `ÿèðÐ73533#3##5#535#7&'7'6g577@@<<5  o ‚NN*JJ*O   WÿîòÌ73#3#535635#Û:1m#&›=)66Ì .j»¿jSÿçóÎ73#&'#5&'75#'66556Ü +:l* .! ?Î *6 ;I *)4,#xÿòðÌ%)-1573#3#3#3#535#535#535#535'25##5#35#335Ö '0b%**#`^ÌZ]"**$_O[9+(((<+Ì#$$#[####7$$$U?òÑ7&'3267#"&''7&'7° AM # - 1/Ñ   "%$ IÿíóÏ273733#'667#7&'32767#"&55'67536eTVa  !   ž119A =4?   K *!  M8^ÿéôÐ %73#53&'3#3##5#535#536'&'©:‹;6 -E==88>T:  Ð 0#88#]ÿêòÑ 27'2'6'&''&'33##"''3255#5357#ç 8QB9/  (   y??   @@&]Ñ    *+ 'aÿèíÈ$(,04733#"''3255##5##53&'767#35#33535#335a‡1  ,&< h&&9,e&&9,È  009¦  WJTÿéôÑ6>7&''6767'&'''63&'''67&''667667#È17! 5!B! (&   8 Ä   /      7  iÿêôÏ!%7#67&'#67'53&'73535à6  <#03PPP³f EL  À  )\ÿéñÇ *73#535#535##5##53&''67&'767#luwd__b„of$,!    NÇK  G$$'   WÿéöÏ:733533##5##5#53#5'673673267#"&55'67}00   <  Ï- s[#2 !/  #  `ÿèìÈ'+7#"''3255#&''67##5365#53#'35#ì  +   #(>2r.0KKee  N  %k} NN '*]ÿéôÏ#(-73#3533##5#5367#53635#335367#335š@=44P*' 3#V 3%Ï d33 d 6@ `ÿéóÏ(,073533#3#3#535#535##"''3255##535#35#h6;;44B“>--6z  MMMMMÀR\  $t 0NÿèøÎ';7373#3#3#&'#'67#5367#5367#3533#3##5#535#_9>B?F[$ / &!(5%$$9977%» b++ÿñ}Ï.73533#3#535#'67&'3533#67'675#$$$-l-$  ?  9%##5) %µ0    +!`ÿéíÈ&,7#"''3255#3673#353#5335##5&'í  f9  $ L+- ÈÆ  ¯8L;LL;L„ßEÿìôÉ )7#'6553533#3#535#3533#3#535#ó} +((1r.+-++5…=-ÉOA; 2>a2P!!I7òË73#3#&'#5'67#535#735#cy4D1 '& "/C2SSË< "44 XÿéóÑ $*0673673267#"&53#735#35#35#'33#'67&'l6*,<- 9%aa;;;;;;3|.  I Ï   T;   :\   ?ÿêôÑ#'=J73#3#'66553&'5##5#35#3353353673267#"&5'67'533¤A1,€ B*(    ) "Ñ =:- .!X =,3"    ! URÿèôÐ*:Nb73533#&''6655#67&''67'77''67'67&''67&''67&''67&'WCBB; 3:&"C     `           Z    ¸+:1: 6?+      .       0ôÏ ,26:V73#53&'733327#"&'&''67&'767#535#'3#735##"''3255'7567#53O+p/h$   #  aa<DJP767'7&''667'7''6'67&'7&''67''6'6'63'6Ž  /5A  H  #+ +#1-C0 -4$D D7*a \Ñ              2   (WÿéîÑ06:73#3#"''3255#3#3#535#535##53&'#53&'367#35#£A #  -$$E"",% ?A ##Ñ   w55’¤> ‚PÿéñÐ#'+/73533#3#535#'6'&'#53#=#73#735#X=@@H¡E=q  P  ˆb?? º**  ¥ tt CC9/XÿéóÐ3;?73673#3#3#3673#53&'735#535#535#53&'#5##535#„&  ?77CC ›#EE::B qXXXÐ     žA A'XÿíóÐ-159=73&'73#3#53&'#67#3#3#3#535#535#735#33535#335a9?#—%[9.€8>>D›D;;5""5&[""5&¼    N.,UÿéõÏ'/37;?73673#&'#5'67#53&'735'2##53#'#;5##;5#à ! 3" %" "0A4^ƒ:$$(($$((Ï   +(  Î ggW$@ÿé¡Ð .73#53&'3#735#367#"''3255'757#rU"KK%%L   !(2Ð  35.  YÿèöÏ #'+/5;73533##5#3533533##5##5#3#735#35#35#'67&'k4::4 6 6 ||VVVVVV I Á gI ) ) "    PÿèöÑ )/C73#5##536'6'&'3533##5'67#&'3673#&''67#M`%51 ###  E [=K<+ 4: ,5Ñ no€!   $$-    2  %' UÿéôÏ(048<73533#3#535#&''67&''6#5##535#3#735#]<AAHŸD<  _  $cccCCÀ::        =m mRA ) WÿéôÉ(,04:73#3#3#3#3##5#535#53&'#535#535#735#335335367#\>::F! $?HHBB5C99>*F!2É9 ‚ Sÿé÷Ð 473#53&'3#735#3#735##5'67#535'673#&¨CšB2‚‚^^DD$$% "6D1=< 8D7! #Ð$R2$ k./    AëÏ73533#3#535##5##5baaU½Tbׯ¼9./ÿìóÃ7#3267#"&553#"''3276Ó/ # V  °¨   ¿I.   ÿè|Î7373&''67&'67#67# $ 5 " "% ¢,Q,  "$@ %7#Œÿîé¼ 7#5##535#é555¼ÌΣ`ÿéòÇ %7'66553'#33673267#"&5‰ tLL< %   €D5 1#_G4! *  + ' kÿóóÏ7&'3#3#3#535#535#¤  &711<ˆ8//6Ï &7<<7`ÿéëÏ$*736733#"''32665#'6767#7&'&'i.@  , ,  K  ‹&&Y6 2?5B 0Of[ÿéõÏ73533#3#&'#5'67#535#r-22=4 !%)6-©&&%2$$2b`0%(2%`ÿéöÏ73533#3#&'#5'67#535#m4992)%&&/4©&&#,&%)`_/$)3#iíÏ 73#53&'&'73#536ˆO¼V!  h @Ô} Ï %   dÿéóÐ7'673#&'#5'67#53¡=4 9. !-6° );5ss4 ";eÿèïÏ!&7373#"''3267##5'67#'672735¥.66 # "" ##Ï#7@ 0iZ&" ($H6ZÿëòÆ 73#3#33#"&''675#735#vm-44&)  -GGÆU&3*: e1Zÿè÷Å"&7#3#67&'#67'5#'6553#ìmq0  2  ZZÅC   $Q`  mB4 4@^*YÿèöÏFL73&'33#673267#"''67&'#67#"''3255'675#535'67&'  !.-    "    'R  É)!)* &%1( ."<  0("  kÿéòÎ 73&'73#3#3##5##535#k:9‡vvvvsMMM² RR2 bÿèöÏ%+73533533#3#535#35#35#35#'67&'m8$888888 %D °nnDC/  XÿìôÊ )7#'6553533#3#535#3533#3#535#ór#((/k(#%((1{6%ÊOB: 1?b2O  ]ÿèôÏ3873533#3#535#'67&'3&''67&''667#q0//;ˆ90 O(D  "% $  $+ 7 ¹*       $ XÿìõÏ=CI7373#3#&'#3#"''3267#3267#"&55'67#5367#7&'7'6h0=BQ  / M   /# .& )*[¦)  -9 E  9    nÿéôÐ#+/373#327#"&'#67'56&'#5##535#35#ß 4/  * <"fNNNNNÐ   ]& Jm m'<YÿéëÇ$(,7#"''3255#'6553533#3#535#3#735#ë  ]K??ÇÄ  ¬SD5 5?_16=]ÿéñÏ,073533533##5##5#373#3#5##5'67#35#k##2CK S?  ),??³- Z F "Z)kÿéõÏ#'+73533533##5##5##5##535#33535#35#k$""$U!!3"U!!3""²%’’7%%%^(((eÿéóÏ 67'2'6'&''&''673#3#353#5#5335#535ä 3J=5 )"   `6==$m#==Ï   >  0%A 7%0]ÿêôÏBHN73533#3#3#676767&'7&'#"''3255'67'67#535#535#&'''6i777007e F  }X::º**  ¤ttCC8._ÿéóÐ3;?73673#3#3#3673#53&'735#535#535#53&'#5##535#†'>88BB’??66<mQQQÐ     B B(XÿéôÏ17;?EK73673#67&'##"''3255#5'67&'767#33&'35#35#'67&'e)A"  *  )   7 > +@@@@  `·    90  -5   E-(   ^ÿèôÏ37;?C73533533##5##5#3#3#3#3##5#535#535#535#5##5#35#335` *!!* …8==AA7b*¼!!( `ÿçôÏ#'-373533#3#535#735#3353#735#35#35#'67&'n233A”@22 fzzTTTTTT <à +   E_D ' &      XÿéøÊ 5973#735#3353353#3#67&'##67'5'67#735#i||$s u0   4   QQÊ87 3    . "  ! _ÿéõÏ'/37;73533#3#535#&''67&''6#5##535#3#735#f9<-/+  ) 8bKKKKKÁ   2 : Il l'<eÿèöÏ3:73533#3#535#&'''63&''67&''667#w-//;„6-S4  3  !'$ "  +º-         `ÿìöÏ)37;?C73673#&'#3265#"&55##5'67#3533&'#35#33535#335k(D&-     -G-²  J   V ';? ÿèö£"AGMS767&'7&'#'667'7&''6'67&''67&''6767''67'67'6f 1BBZ   ; 55 <7(< >#"%  : ; >< +T UB 8g j£        .   "  dÿéôÒ)-173&'73#3#53&'#67#3#3##5#535#735#35#l75#ŽR4$p/??>>.JJJJ¼   Q/0ÿéð›,AG73'67#&'&''6'3353#5#'67#535#3533##"''3255#&'Ÿ7YO, !f 8/LY  Y ›4 '     +1ªB2 '"    `ÿéöÏ $(.4:@73&'73#3#3#3#5'6353535&''&'''67&'ˆ')$$$$*s #####2  >  2Ï O *$%4 ^ÿèïÎ&,2:S737&''667367&''66''6''6#5##53733#"''32765#'67#ƒ  @     @ ƒd#:   ( 3 + Î    (     @))0>:,`ÿéóÏ"&6:>73#&'#5'67#537'23&'#35##"''255##53#735#× D! T ( 1100U S@@ Ï @ ')Q  ;Uf.cÿèôÎ0K73533#3#535#3533#3#535#'3533#7'75#3#3267#"&55#'67#v-..8~3-<FF!ˆ(   + #"À6 2! $2  #`ÿçõÏ #J73533533#735#33533535#335335#3#3#67&'#67'5#'655p%#|#X#qffr,  (   ÁJ- *(    -- 8& $7aÿèôÐag73673#3#3#535#535#53&'33#67327#"''67&'#7#"''3255'75#535'673&7&'6//:…8..50(&   !     +Ð       ]  (       RÿéöÐ&*.48Lf733#"''3255##5#'655367#'635#33535#73573#"''3267#'67#3533#3##5#535#'6u    "   '  C   Д %!!%AA RJ o6 , "F  22 ÿûTÊ736753#5'537+ ʱ‡¤ £—ÿëö¡@QUY73&'73#3#53'#367#733#3#3#3#3#3267#"&5535##"''3255##535#35#*+r)#OTTMNJJJJFF$-' NN 99999   (    b T g ) aÿéñÏ#CGKO733533##5##5#533#735#73#735#3&'73#3#3#3##5'65#5#35#‡ $$ ##==6==D2400005l 6&&&&&Ï  #.." J`ÿçõÐ%QUY]agm7'673533#3#67'5#'67#53535#'673533#3#3267#"&55#'67#3#735#35#35#'67&'s     *      >ttPPPPPP  F °      )[A $ #     ÿèñ•!%)73#3#&'#5'67#535#735#33535#335%´OaO"3 8$!9 1#M`Q>>R<Ž>>R<•V  "55  42rÿéòÁ73#3#"''3255##5##535#r€6/  08Á"i  R’’qƒ"nÿèõÉ'7#3#3#3#67&'#67'5#535êRJJII[3   / É   EM ZliÿèóÏ'-735#535#53533#3#3##5##5'66&'m6++3366..=†s@-"! | M<>O(*!  jÿèõÐ#'-373533#3#3#535#535#3#735#35#35#'67&'t244..:‡:--2ppIIIIII #<Ä     DbE ' '     eÿéóÉ %)/573#3#53'#735#35#3##"''3255#735#'67&'ur5;‹;(LLLLq.   0MM `  ÉE * % E3( %*  bÿéñÏU73533533##5##5##5##53#'67#53#67&'#"''32654''67&''67&j$ $„]LL  (…C      (- ! !¾ ,,)             ÿéŽÎ .7'2'6'&''&'3533#&'#5'67#„ 0F91 (    411  &*Î #   =  AJ(( ÿé›É 06<73#3#535#5#35#3353353#3##"''3255#&'''6‹+&%*O%%gtt=  >m  E É==,:( %   ÿé“É $(.473#3#53'#735#35#3##"''3255#735#'67&'n19†8(IIIIn+   0JJ V  ÉE  * % E2) &*    [ÿéëÎ73#"''32765#'6&'W  L"  ΂  n#/  ÿïòR !7&'7&'''6733267#"&5… Y • /  -#R  ( 7 `ÿéôÏ73533#&''67&'765#nF''$ &% %EŸ00>$+# 1_ÿéìÏ73#"''32765#'6&'‹Y   N   σ  n#2MÿêèÏ73#"''32765#'6&'yg\  Ïf@ j!- ƒëÎ73#"''32765#'6&'¤<  /   Î n P % !ÿëîT732677#"&547#5ÀF799 4M_hT   ÿòðÂ7333267##"&54767#ºt0822G$!f–Â\3 !$Q!ÿëîG7327677#"&547#5ÀF796 3L[dG  &ÿìëc7333267##"&5467#0•]%6%'I#$Kec,  &%ÿðî~7333267##"&54767#&®j+3,.E![„~:  3€ÿñò¾7333267##"&5477#€aG   5J¾  "' $ihÿîòÏ"736773267#"&55'75'7› AC03'.Ï" ;@ %  D9l@ò£(733327#"&547#''67'767#53˜)      £       _HõÏ(733327#"&'5#&''67&'767#53”-    Ï.%     ]ÿéòÏ*733327#"&547#&''67&'765#53Ž2  "!  %%Ï,6&#$&"$7 )" 58 AÿèøÏ*733327#"&547#&''67&'767#53;  & +,  %%Ï,6&$#&!%7 ) 87 gõÏ(73533327#"&55#&''67&'765#q.     ±M# ):  $&  ÿêó„+735333267#"&55#&''67&'765#DP  <64 Coh # Z  $   ÿêó„+735333267#"&55#&''67&'767#!?M  987 ?oh # Z "  `ÿéìÁ73#"''3267#'667#'6m   &) $2  Áš"%‰XNB`0! 'UUïÉ#737&'#"''32767#'667#'6ao     : + É  + 1M &$ SZæÇ73#"''3267#'67#'6_‡  & B ;9ÇL5A4V^ñÈ"737&'#"''32765#'667#'6`p    6 -  È- ,D  ^ÿéìÁ73#"''32767#'665#'6rz  "%$%0 Á¤3.qfEGU## ÿéóË73#&''67#53655'2Ò '/jaPJN N_c&+ZË "?&)ED*+; ;ôÌ7'673#&'#'67#536v&!f90kG6<F 6GU¯ !++ UÿéòË73#&''67#5375'6ß <8. )6=34.BË7J?;!I (AÿéòÊ73#&''67#535'2× "KI3 07<@DAÊ'H B;'+=5 ÿêòt73#&''67#5367'2¿ "f\L NTPZa#Ht  +)  ÿêô’73#&''67#5367'2Î $,j_P S [ U [`%)W’ ,40) Y\íÏ73#'67#5367#'2&'Ú>E1 '3<8 Ï "  < uÿêòÎ7#3#&''67#535'6Ý52$#*01 CÎ4D""66"+=4  ÿæ‹Ï(73533#3#&''67#53655#'6'$$.1 $ * 37À ** +%.  $LÿèñÏ&73533#3#&''67#53655#'6n66A>( ,3 49>$ Ä ** 773!#.   jÿéòÏ%73533#3#&''67#53655#'6‡))42 "%( -1 Ä ** 762#/ ;ƒÏ,73533#3#&'#'67#535#3533#7'75#(((/   0(*&&&/:0*Á    >VÿèôÏ 73#7&'''6'66 1 D `@5 19Ï—}"' &#5% &'+4 .U¦Ï7''67'6767767'”    M '%=8" ?&QôÌ)73673267#"&5'33#7'275367' +   & H)))7; Ì+   _+ KIfÿèðÎ73533#3#5##535#35#f;;;0M1;MMž002qq2~9¬ÿðêº 7#5##535#êºÉʦ”TÿéôÐ%+05733#3267#"&55#'67#5'667#367#335ˆA )(  73 + ". 4 !5)Ð  K;  ?7! )@   9'YÿêóÏ,27&'3533#67&'#"''3255'675#&'Ì  \;::      +; Ï   ''1 #B  <$$*. NÿëóÆ 73#3#33#"&''675#735#nt/77)- # 2NNÆU&4,8f1cÿéóÎ 37'2'6'4''&'3567#533##"''3255#á 2H;7 * !  @Xt;;  @Î  d , (bÿèôÍ ,27'2'6'&'&'3533##"''3255#&'å 7OB6 +  [##   [% Í <I  F gÿéêÉ 73#735##"''3255##535#35#mwwQQj  ]]]]]É>=x  2‘';\ÿéóÏ#'+73533#3#3##5#535#535#35#33535#335c<==88BBCC66<##5$Y##5$¼d''d;@Sÿé÷Î1;73673#3#3#'#3##5#535#5'67#537#537#3533&'d99>9?S )::<<* &#*4- !# ¼  ** D SÿèóÐ"',73#3##5#5367#5335#335367#3355#•A#44Y &)##6$Z"6)# Ð m44 m-I  M ]ÿéóÏ(,073533#3#3#535#535##"''3255##535#35#e7==66D–?..7}  OOOOOÀR\  $t 0]ÿéóÏ'+/736533#&''67#3##"''3255#3#735#g959#. 3 –   nKK))¶     9W  T:UÿèìÏ573#"''32765#'63#3#353#5335#535#'6yh   ^ ?'++a.. Ï –!€ 2$43#2 BÿéïÆ (7'66553'#33353353#353#5#5335#q hh[,e -‹)D5 1#_;*&)88):7)E :)7\ÿéñÎ -7'2'6'&''&'#5'67#53533#&à 7PB7 /    J )7<>9% Î #   gJG $$YÿéóÍ%+17'23#3#353#5#5335#535#536'&''&'æ 9QC5 ;DD(t&CC6Z+    Í 5'D :'5Nÿé§Å73#7#5'75#35#35#675#NX   ÅŠ/*—##W$a'Gÿï™Ï 73#'635#53#3#67'5#f'/   4  Ï  T$$9 D]ÿé÷Í #06<B73#5'675#73#5'675#&'7&'&''6'6'67'6a@ .J@ .5[ ) +& .# * +/ #5 7: *R SÍU  U      5       +YÿéðÑ K73&'73#&''67'763353#3#"''3255#67'7&''67##5367#Z@@–a    Q]9G   ;   84½    11CI  2   PbUÿéóÑ;73#5'67335#35#3#3#"''3265#'67#'67#'67#{mt imPPPP'›ff  %  )  !² C:  )& ';"* #  CÿèöÐ $*06<73#3533533##5#'6553&'#3&'''67&''4'©8w"I =+""  Q M  Ð &::-7#PP [) # QÿèïÎ'-3;W7367&''667367&''66''6''6#5##536533#"''32765#'67#z   F    G n'?   -& 0 $Î    '    ! A((/ : ",ÿèòI"73#3##"''3255#535#535'2Ô %-YYgg gg]]SZI   bÿçôÏ#'-373533#3#535#735#3353#735#35#35#'67&'q022@’?01 exxRRRRRR  ;à +   E_C ' '     lÿûÄl7#"''3255#'65535#35#Ä   &%%%%l^  ))-[ÿèôÏB73533673#5##53'3#735#3#3##"''3255#535#535"'2} p aa::S 88DD   BB77:È %% ))2.(      NÿèõÌ&Nf76767'33#"&55#'6653&'#33#3#"''3267#735#5'67&'767#67#53&''67&'µ        -# JD $!'   +     0N 5I  Ì    # +!93 8          HÿéôÏ28<@FL73673#67&'##"''3255#5'67&'767#33&'35#35#'67&'V/H'  .   -  &= D /HHHH j·    :0  -6   G-)   ZÿíñÏE73533#3#535#3#735##5##5#53#67'7&'3#3#535#535'6_=AA3y3= ttNNsq4d4   55@“@55Å   !% ''%        VÿçôÑ !%)-39?7#5##53'73#673#5'675#5#5#35#7'6&'''6ñm:3\$1Gw ( %ZQQQQQ  P#  "À%%   ]SG   i }   Yÿç÷Ò !%6?HV\bhn7&'6'&'6'&'63#735#&''7&'7367'7367'733265#"'&'&'7&'&'7&'Ö %  % ‹‹eeQ   K 8 7  L   D   -   D   Ò         ,I(    2NZNY%# %2        OÿèòÑ#8\afjp733#5'667#35#7'53373267#"&553633#3267#"&55#'67#5'67#367#335&'zI‚ D>^^(4 &A   NH /   . $+ F @ !%6* Ñ $   /  $     # '         SÿéóÌ+/37GKOS7#5'75#53#'35#35#5##5'75#53#'35#35#5#7#5'75#53#'35#35#5#ñlUBBBBBB1 J+ƒ1 J+~ D>3 % & f F:/ $ %   F:/ $ % …ÿèõÏ#73533#3&''67&'#535#67#Œ('''    $(4 +­"",/    &,nÿêŒÏ&*.73733#&''67#3##"''3255#3#735#..1  %) ~   \ AA¶    9V  S9\ÿèõÐ73#&''67&''667# [! %' ( ! >Ð!D, 1 0 :"= ÿò€Á73#3#7'675375#m&"2=3Á;I  ~zœ ÿ醯!73#33#537#537#35##5##535#s<7 z$'/(@???Æ5#O#HWW7%ÿèÒ 073#53&'3#735#367#"''3255'7567#G0r+]]66d  1 GÒ -51    ÿé{Ð !%73&'73#3#536'&'#5##535#),iLnA + ];;;¸  SZ Z>,ÿëŒÎ )73353353#3#3#735#76767'7&'qyykkDD  7C Ã**08*  ÿé‹Ñ/5973#3#"''255#3#3#535#535##53&'#53&'367#35#P3  "=! 31 Ñ    x55“¤ >‚ ÿèõjG73673673#3#&'#3#"''327#3267#"&55'67#5367#53&'J  +fw-# &D]  Q"=E. $6KL#g           qÿéòÈ'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335wv1 066550 21N1B%ÈM"".+ ZnÿéôÏ.:@F733#3'67#73265#"&55'75#'65533533533#7'6'&'¤77<'     + hWCÏ       E;, +7O¦LLLLRÿéía!%+17=7#3#3#3#"''3267#55#5#5#&'''67&''&'âSKKKK^   ´VBBBBBC  K  ‡  Aa  &N   qÿéóÐ'+/73'73#3#53&'#7#3#3##5#535#735#35#v20!‚ I((k+7766,EEEE¼    Q/0 nÿéîÇ #04873#5#73#5#&'7&''6''63#5##53635#35#r<*A;): I ! 5 !4G$GGGGÇ_N_N      j j /;nÿì÷Ñ *06FL73#53635#'673&''67&'767&'3&''33267#"&5''6 ?rLL       7 ?     Ñ {{ v[      O 1  3!pÿéóÐ H7'2'6'&''&''3#&''67#537'67'6776767&'â -C71  '    _ 8, " ( (/  Ð       4       $kÿéïÏ)?S73#"''32765#'63353#'67#5336'673#"''327653353#'67#5336‰W  N !&   M  <$$  ÏL .  !   V  K - "  oÿéóÏ4767#535#5673#35335#535#53#3&''67&'  V,. (./ '  6 [ ]]^   tÿêòÇ 5;73#3#535#5#35#3353353673#&''67&'67#367ww# p!%C  d'A )'  5 ÇCC1 E     ÿè÷Ï735333267#"&55#'655#(*= F6¤++™ ŠZ9 6PdÿèõË'+?CIO73267#"&553'#33265#"&553'#33533533#3#535#35#'67&'| 73 7m$%!.$$  G  Q<,   Q<,O+      ÿìPÏ73'67#'6367' #   Ï %$m  `ÿéöÐ %+17&''63#3##"''3255#535#'67&'§% " !,B77   ;; \  Ð #"!A  =8 $ oÿëôÆ !.73#735#35#3267#"&5536'33#67'ovvPPPPe   g&&Æ_9;= *  _1  fÿéìÎ)73'67#'63#35#535#53#5##56˜@  2!""U##%8UÎ  #, !!} xkÿéêÆ73#"''3255#3###535#qy  eXXQ7$$ÆÁ¨O [<*eÿçõÐ%QUY]agm73533#3#67'5#'67#535#'635#'673533#3#3267#"&55#'67#3#735#35#35#'67&'u    >      ;ppLLLLLL C Ð      )[A $ $    dÿèòÑ#8\bglr733#5'667#35#7'53373267#"&553633#3267#"&55'67#5"'667#367#335&'‡@s <4OO!-  8   F@)  ' & <5 0"   Ñ $  /  $    # '       ZÿéôÏ=LR733#3#53533#67327#"''67&'#'65534'33&'73#67'675#'6¥++8…M&    @Q l5)  Ï###!%  05-" %(>    ; :tÿïóÎ!)-1573533#3#67&'7&''67#535#3#53535#35#35#€'--7<  +/(2'j     ¸    e???-----tÿèõÏ,0473533533##5##5#3#3#&''67#5367#735#35#{j-6* #& ' ! -3*DDDD½P !(   00 vÿåôÐ#'-373533#3#535#735#3353#735#35#35#'67&',--7~5,,YllFFFFFF  7 Ä ,   CbE & &   lÿèôË'+?CIO73265#"&553'#33267#"&553'#33533533#3#535#35#'67&'Å 5S 4$!"ˆ,!!  B Q<,  Q<,O+     qÿéõÏ'/373533#3#535#3#735#3673#53&'#5##535#s566/q/5llGG„aIIIà   *0#  )= =!qÿé÷Ñ3:73#&'#5'67#535#'2373#&''67'7#367à 2% #11<#K  ( &/ Ñ''     {HòÊ$)733#"&55#'6653&''67&'#367Ö "  a   "   Ê   ;     ÿæîj"&*06<73#3#3#"''3267#&'7#53635#35'67&''&'dY±±ª   - z6%|||“ aj4   Z:      ÿéîn",08<73#3#3##5#535#53&'#53'37#'6553'#3#5##535#µ0 $4..%%.!+| [44"""n   1 ,+*3# <<$-ÿëÎz%/37;73#3#3##5#535#53&'#53&'367#'6553'#33#735#¦   P>++ z  $$ 6 % !36'=A òÏ -37;73#53&''6553'#373#3##5#535#536'&'3#735#ÊPQCP! $-=11 Ï  I;;;C2!33  4R05î¦#,04873&'73#3#3##5#535#53'#67#'6553'#33#735#|-12,,))1 C!Z661FF##˜   '.+ ÿêñ;73533#&'#5'67#eeR&. 6'%6 .'R/  .- ÿéï%.2:>73#3#3##5#535#53&'#53&'367#'6553'#3#5##535#¶+#3--''/ + #}[44  (( H.- '45B0&UU6%MÿèõÑ6BFJV7'67#537#5367#53&'73673#3#3#&'#67'73&'73&'#35#35#67&'j%1,2=(" DBGV' Y   $ FFFF/  )K     5 m " $  [ÿèôÏ#)/73533#33#53535#35#35#35#35#'67&'d8??3™.8OOOOOOOO  H¾xx-,,+"    UÿèñÓ4<@DHLPT73#33##3#"''3255##5##535#535#'6553&'5#35#5353535#33535#335²65+ +0  +((0< 00(:D+I+Ó   T  !i  C3 5=\+ (   C ) YÿïðÈ #'+/373#3#735#33535#3353#3#735#33535#3353#\’’ $$6#Y$$6#pŒŒ%%7$[%%7$y——È B' $ # B( $ %PÿêôÏ=LR733#3#53533#673265#"''67&'#'6553533&'73#67'675#'6 ..;M%    DU  l8-   Ï##"$%! 15-! #)>   < ; cÿçóË #'+1773#3#535#5#35#3353353#735#35#35#'67&'d-'„',Q&&kwwSSSSSS B Ë 55 $,bE & '     DÿéóÏ&*.26Kf733#"''3255##5#'655367#'635#33535#33573#"''3255#'67#3533#3##5#535#'6q        *  J   $$ Ï • )&&%@@  TGq7 $+!E 11  UÿèôÐ .4:73#53&'3#735#3#735#3#3##"''3255#'67&'¨>‘?/YY ??,ttŸF  G& Z Ð 'U8( ;     PÿíóÏ>F73533#3#535#3#735##5##53#&'3#3#535#535'67#&'7#6[?BB8ƒ8? ||VV{yn %88J£E55 S# Å  % !((          RÿéòË >BFJ73#735#35#35#73#735#35#35#3'73#3#3#3##5'65#5#35#a>>6AAG96////8u =*****Ë`E ()C`E () E   ÿë‡Ð+17''6767&'3#3#'67#5365#'6&'f ''+F)582 (,0 :Â! ! 6( B   ÿè„Æ%)-373#3#"''3265#&''67#'67#735#35#33#`8 M     ::::=PÆSVB      21X( ÿéÏ'/373533#3#535#3#735#3673#53&'#5##535#566.p/5kkFF #„dHHHà   *1$ (= =! ÿéŽÈ159=AE73#3#"''3267#3#7&'74''75#535#'67#735#33533535#35#qKY  -"""')""    K#È>iU/ /  qÍ737533#67'7 ,5¢…«DN gÿêõÏ#)73533#3#3267#"&55#535#35#'6u155)  :+1@@ $!¸G? EGN!::cÿòòÎ#73533#33#53535#35#35#35#35#p277-(2BBBBBBBB·‹‹;655`ÿîòÂ4873#"''325567###535#73''67&'767#3#iw ]. C4       \‘‘Âs y "d nR@/   y^ÿéóÑ<73#5'67335#35#3#3#"''3265#'67#'67#'67#‚gnbfJJJJ%’``   $   '   ²C8 )& ' ; ) #  MÿéöÏNRX73533#3'33#6735#"''67&'#3#3#3#67'75#535#535#535#535#75#7&']##.**      " -8!)! a  ¸="+1  #> —pB  uÍ7'675#535#53&'73#3#6r02##(& ') *;2 27 ÿéŽÏ(73533#3#535##5##567'5#'665/,,$_&/pKX   º8,-*8   9#  & ÿð|Ï(73#35#535#53#563533#67'675#7?-e+((09+Ï jb„ !ÿïyÏ$73#35#535#53#56'675#53#67?-eM5* &^%Ï jb©.)tÿèöÐ 1573#67&'7''67#53&''6733267#"&5'3#¶0;  %( ,= Ð #  ! tK?L OheéÎ&7773267#"&55'75'75'2Î '0UVgi! ,(WZHJ"(XÎ      ÿì÷Ñ(777327267##"&55'75'75'6O 3 P+ Ñ.(2   4)- ÿéŒË(AOS733'67##"''3255'67#53&'767##"''3255&'#5'#5673&'75#35#q,    +0   Wt  4  +  U"Ë       We  4 .,K|+   A ÿèÉ -273#735#3#735#73#735#3533#&'#5'67#37dd>>66177W565  *;É3055<16ÿéÏQ73533533#3#5##535#35#3##"''32654''67&''67&''67#53#67& V- FF;   $) $ %|>   ¾,,-\            ÿé’Ë ?CGK73#735#35#35#73#735#35#35#3&'73#3#3#3##5'65#5#35#77,99>-,&&&&.a 2 Ë_D (*C_D (* A RñÐ,28>BF7673#&''67&''##'2655##535367#''6'&'3#735#† ?    M.I  "2 ?  11ª#     ( /JX&&  *   3&  jË73#3#5#53&': #?;N (ËlÿêóÐ !73#'63#3327#"&547#6¥° ¸ ¥Ð   7'0!,GÿèõÃ73&''67&'#367T“,$ & 13#  "ÃT<"%""0M*<0;LÿèçÐ 73#'3'6573#Ôn7Ðçç|C) '9oÇFÿèõÏ73533#&''67#W9FA?4= H9’==S1-FF,6ORÿèíÏ73'67#&''6ŒX;+ aJ (Ï RA!v  0NÿïòÐ73#3#5#53&'™ Fwl‚H ЋŸQÿêðÆ73##53#3#"''3265#itt)Ÿb ] aÆ<*G+KÿîôÏ,7#"''3265#532767#"'&&55'753753ä  &", :( ¤U$/ _Y d ! cB< D>BÿèóÌ73673#&''67'67#367L2_  #"8 55 ,B + š@ #  #"$ 5gÿìõº753#3267#"&735#gzf- 7(RR¹oC   hI`ÿéèà 7#5##535#35#è`````ÃÚÚZG¡G^ÿéìÏ!7#"''3255#&''67##5373ì  * *?¨§  #A­¿''DÿèôÏ 73673#'67#''6767&'[$Z],+ !u %,! ¨fF GXX#)  -RH,JÿéõÐ "73#'63#33267#"&547#rhr ll jÐ  ! ! )bÿéóÐ)73#"''3267#'667#53&''67&'”G  9  Wo%# &! # Ð3""V3   JÿèóÐ+73#"''3267#'667#53&''67&'…S  E !j„*( . ) Ð 3$#Y2  TÿêðÁ73#3#"''3267#5335#367#TœGB  y)BU,/Á*q%bQnnIÿèõÏ 73#7&'''6'66š4G q4` 6@ÏŒm!'( )! ,J,JÿðóÊ733#3#53533¡88=©!!ÊGj••GÿèñÏ733#3#5#'65533¸%u\J!<Ì< jW7#+@n?lÿéõÐ$7367&'#"''325'3'67#®    4-   Ð5 ."!3R  ‡.#1?JÿèôÇ#(733#"&55#'665#53&''67&67#Í" 3  (' ,. ,,LÇ<  0#  *v3  YÿééÏ 7#5##535335#33535#335éj??,,?+j,,?+¡¸¸..I777888SÿéðÏ73533#3#3##5#535#535#X>AA<©&&"'>>'"[ÿòñÇ7#3#5&''67&'76ð‚–l  ǯÕ&#   GÿêêÏ73#'6753&'735#²8s; 6__§\%)3_^6 ÿéâÏ73##'6753&'735#–LŸ Q N‹‹§U$,"6WW/ ÿéyÐ753&'73#'6735#"% D11TUZ<$ "I6lÿêìÏ73#'6553&'735#À,X,'EE§\># 8W_7Sÿæ÷Æ#'-273#3#&''67&'767#535#35#3353655#335dŒ>785 2 ) % 46<""4#W!"4#Æa    a>? ÿéá\ 7#5##535#35#á›››››\ss)A^ÿêëÏ73#'6753&'35#¬ 0c2NNÏ\?"1_k6 ÿê„Ï#'73533533#3#535#35##5##535#35#x(>:::::±  Crr*AÿúˆÏ#)7367#53533#&'#5'3#7'6'&' #""   M`b  5  ÃŽ#MM =D'É ÿç“Ï/37;?CGM7367#535#5#53535333##3#3&''67&'7#735#33535#33535#33567!#0,,,,1<;  ',F,J08   8-   -    ) G; QÿéêÇ7#5##535#"&55#'7335655#êqq  WqÇÞÞ¹+ i/7" ~dix*/?ÿçóÏ"7&&'67'7&''5'6556Î  ! =ÏHT$%WR¨$ ²+_< 9Z9]ÿéäÄ 7#5##535#35#35#ä_______ÄÛÛ<)d)d(DÿèîÏ#(73673#"''3267##5'67#'676735œ!?  +1 2* --"Ï#8A 1ia3"( '#H6FÿéòÏ73#'675353335#¡Gt,Q~``¤N41FFW*SÿêòÏ73#'675353335#¬>f!(FnRR¤N4-JFW*uÿéòÏ73#'655353335#º3T 8YAA¤N5:;FW*zÿïóÏ73533#3#535#3533#3#535#…'''0q.''''3y3'­""$$c$$%%rÿêóÏ28>776767&'7&'#"''3255'67'67'6&'''6Ú . ! !&   D 6Ï 5  D  <   #  lÿéóÏ#@DHL733533##5##5#533#735#73#735#3'73#3#3#3##5'65#5#35#‘ !!99188@*(%%%%+a 4#####Ï  #..#  J lÿéõÐ#'>B[^73#3#&'#5'67#535#53635#35#''67'677767''''67'6767677'¨ 6-  .7  A        O        Ðf 78f 6H   '$   '"  uÿêøÇ $(,0487#3#25267##"&55#535#55#7355##373535335ï((( %  ###@ D/U/Ç8h  g8ʺ° º1*nÿèòÉ -73#735#3#735#'3#735#3533#&'#5'67#ƒWW33 77Q8876+  ,É82876  76nÿéöÉ 4873#735#3353353#3#67&'#67'5'67#735#uvv!j„„ q*   -   KKÉ75 4    4 $  $ wÿéòÌ  5;73#535#535#3#735#'3#7'75#3533##"''3255#&'„ccPKKP388P6T  T  ÌJ  B75      iÿéóÐ@FKP733#67&'#"''32654''67&''67&''67#5'6367#367#335’4"9       # '   ,) 1Ð  9   (*     - - lÿéóÏ"&8<@73#&'#5'67#5367'23&'#35##"''32655##53#735#Ù ? N   $,)++O  K77Ï >'+Q ;Uf.lÿéòÎ(048<@73673#&'#5'67#53&'735'2##53#'#;5##;5#ß  *  (5)Hl.Î   '$   Î hhW$ sÿéîÇ #/3773#5#73#5#&'7&''6''63#5##5335#35#t<*A9': H  4 2E%EEEEÇ_N_N      j j&;ÿçéi#'+/39?733#&'7#'67#5'6367#35#33535#335&''&'WM3      * MH 99J9ƒ99J9+   i <    1  "     sÿéóÏ#'+/DJ73533#3#&''275#535#35#33535#335'#3533##"''3255#&'u244/ +8,,2,I,ET  T!    JJ *,& !      vÿéòÐ'+/73'73#3#53&'#7#3#3##5#535#735#35#{/-|E&&g)3322*AAAA¼    Q/0gÿçóÑBFJP7#35#535333##67&'#"''3255'675#535#'6553&'73535&'ðe&%     &5?  ½4 ##   "'    ! C3 4=[ 0$.  nÿèðÇ9?E73#3#"''3267'6765#735#73#3#"''3267'6765#735#&'7&'p;"&    * (C;!&    *(: N Ç:h!   <:h!  <_   jÿéöÏ%*.?EJ73'67#&'''673&'67#3#3##"''3255#'67'‡ &  F)  / 8>>q/  / Q !Ï <-     K* 89 6 )pÿíôÆ ).>7#3#3#535#35#5#73&''677&'#3673533#3#535#±? 1<  g0229ƒ70Æ6ˆ)>>w8&   $)ŽvÿéóÏ 77'2'6'&''&''673#3#353#5#5335#535ä .C7/  $   S+22]44Ï     ? 1'B 6$1xÿéóÐ&.26:>77'7''535633#"''3267#'67##5##535#33535#35#¢ !A ;K/K/Ð /   LE/5 .Xq q+D[õÏ"7367&'#"''325'3'67#y ( ;#   dX@ 8AÏ    ,+  >."BÿéëÏ#)736733#"''32765#7&''67#7&'L;O:    3;9!  Œ&&Y7 T 9,.ROCÿéôÏ73533#3#&'#5'67#535#V>BB<.*&*.*8>©&&&*%*1mk9!#0&AÿçòÐ '-73673#3&''67&''67#67'&'V'\_R %## %  , $-   £8!     0N4!o  WÿéçÂ7#"''3255##53#735#ç  k)??¾  §ÇÙ6b@]ÿéæÏ73353353#5#353#5#5335#]&((*v%9»?SS?XeMj _MeZÿçóÑ27&'#673267#"''67&'#67'53&'3Ë  4A ' , >Ñ !<" +%Em  * ÿèóv"7367&'#"''325'3'67#x ' 8$   _T< 5>v  .;  S5(8ÿíóÏ4736733#'667#7&'32767#"&55'67536N'ab&r &" " ž9B =3A M )   M<9ÿêôÊ )7#'6553533#3#535#3533#3#535#óŠ!.//74.200;“D2ÊOA= 2?b2O  IÿéöÏ ;733#5##533'67#&''67#3267#"&553#"''325–DqA0*C 6   u  A  Ï$%) j)R   d  zE  HÿêîÄ%+57367&'#"''3255'67567#&''3353#5#_y     "^ €“Ä  $ (2 #  ¡TÿéòÎ"*.273#327#"'#7'56&'#5##535#35#Ù?7 <& NzbbbbbÎ 0  [* Fl l'<HÿééÎ)73'67#'63#35#535#53#5##56ŠL @ *++l,,/BlÎ  !* !!} x;ÿèëÏ473#"''32765#'63#3#353#5335#535#'6c}   t J044n88 Ï ”"  2$43#2 ;ÿéõÏ-73#'6553&'#3&'3733#&''67#  ;DHmm  L,<4 1,9 5)Ï ?>2 1:W #   **)*LÿéóÏ.287#"''32655'675#537#'733#67&'37&'©   $)!I]KQ-D   (A D _ ,) .8 6   £R MÿéòÐ+/373#67&'7''67#53&'#"''3255##535#35#¢DZ"$ 6=4IR  ZZZZZÐ     `i  )€$4OÿéóÏ(,073533#3#3#535#535###53#"''325'#;5#X=CC;;J¤F33=tW 5""""»2t\  G""eóÐ"7367&'#"''3255'67#53x & :% A 9BWÐ    $&  MÿéõÄ.4733#67&'#"''32655'675#535#535#&'dnE  (   $)"KrYY[ ÄM   %. .W HÿèöÏ*0673533#3'67#535#&'36533#'67#7&'&'^5::C  ‚A5 !OBHD 3E e! ¸ 1  5*'%>  ;@ÿèïÏ'-735#535#53533#3#3##5##5'66&'PB55>>AA88IŸ‡P4,/+&% #| M<>O'+ #  EÿéòÏ#'+73533533##5##5##5##535#33535#35#E$6--6$›g++>)g++>))¯ )‹‹5###Y%%%ŠÿïôÏ73533#3#535#3533#3#535#”"&&)c'""%%+j,"­""##c%%%%FÿèõÐ59=AEI73673#33##&'#5##5'67#535#535#535#53&'5#3533535335z   ,4*!  &00&&0- =AÐ %%9II6 8'EÿîðÏ '73353353#3#3#735#3673#53&'W)+ ¤¤„„^^ '  '«/ Â**/<2  BÿèíÇ9?E73#3#"''3267'6765#735#73#3#"''3267'6765#735#&'7&'ND,3   &7 *2TI,3   &7 *6R d Ç:h!   <:i    <_   IÿéïÐ#)/7373#33#53537#5#35#3#3&'''6QABE=¥2>y\\\\\\ (" ¾ww0  BÿèïÐ,I73673#53&'&''67'6767767&'7&''67'6767767&'p+  '¨) /   h   Щ $.)(B( $.((C'JÿéóÉ'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335U‘@@KKFF=>**=-j**=-\/ÉO""/+ ZGÿéíÏCG733533##3#"''32655&''67'75##5&''67&'75##535#5#53#3j8$$'G    4  0C&##K88Ï"s    =s(   :yŠ" HôÏ!38AEI73533#3#535#733#"&55#'665#53&''67&67#'6553'#3#5#011(d)0¾   `  +b(Ä     E       . @ÿéõÑ 7;?CG7&'67&'67&'63#3#&'#5'67#535#735#33535#335k  C  ?  u’BO>' ,) (;H=++>/m++>/Ñ      -O  "84  /1 ;ÿèõÒ!%+17=733#5'667#35#33535#335&'''67&''&'}D - '5 9 **>*h**>*  t f    Ò qe  0M7  PÿéîÇ 37;A7#5##535#&'3&533#67325#"''67&'#3#735#'6îxxx_ P<      <//!ÇÞ ÞÀ®   & 22,  BÿëìÏ !%)/573#5##53&'3#3#535#35#33535#335'67&'šFJ"f+=Œ<())<*f))<*Q " $L Ï +,1\\6:+    DÿèóÏ#'+/7;?73533533#3#535#5#35#33533535#335335#5##535#35#D888.™,8d,,r, _____ÁOO -/[ [.QÿéóÏ#'+1FL73533#3#&''275#535#35#33535#335&'#63533##"''3255#&'UACC: 8I#!88A%%8'_%%8'jn!!  n,    JJ *,& "     IÿððÏ+/7#5##53&'7353367#53#3#3#535#53'35#ëx    <%a)<BF73533533##3#3#3#&'#'>77#5367#535#535#5#5#35#335O> (==?@N<. 6: :D:<;;'p>'';)Å  2 #%   2 ?8ÿçòÑBFJP7#35#535333##67&'#"''3255'675#535#'6553&'73535&'òŽ9++2,   $   &++9F ] ¾3 "$   %-    A4 4=\ 2#+  BÿéôÇ/37;?EK73#676767&'7&'#"''3255'67'67#735#33535#335&'''6VH-,/&    .**<+g**<+ IÇP  $+ %  00v   ÿéñI$7367&'#"''3265'3'67#x  8$   cT4 *>I   5%CÿéóÐ39=A73#3#3&'73#3#3#3##5'67#537#'65#5#35#okEZb& 071111;| "*2  @-....Ð    U  ) p""CÿèõÌ&Nf76767&'33#"&55#'6673&'#33#3#"''3267#735#5'67&'767#67#53&''67&'±      /& MF"'")   -    2Q 8L  Ì    # *"93 8         >ÿîòÐ"&*.4DJP73533#3#''275#535#35#33535#335'#&''33267#"&57&'''6IFFF;  @I&!;;F((;(c((;(  &f  u  ¾I I+ ) '   (  ,  >ÿêñÎ*06<B73#35#535#53#3#"''3267#'67#56&''&''&'''6Œ--h../Bh  y  N       Îa K3_ BÿçòÏ#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'Q!.##,M==K+!4..))<*f))<*P , &O ¹]]_;+    AÿçòÈ#'+1773#3#3#535#535#735#33535#3355#5#'67&'UŠ%%*¥*""'':(b'':(+++ ! T& #ÈZ66<(   ?ÿéóÌ $(5;73#535#535#3#3##"''3255#535#735#'3#7'75#&'Y‡‡skksII!!  €€##kM$+!!  ÌK  @:  K   >ÿèñÆ!'-39?73#3#3#535#535#735#&'735'6&'''67&''&'S?AAL¨I??>++  9, $  v b    ÆcA   AA  † EÿéóÉ &*0673#3#53&'#735#35#3##"''3255#735#'67&'[‡@K©H1aaaa†8   ;bb r ÉE* % D4( %*  xÿèòÐ'+/473#3#3&''67&''67#5'635#35#67•KTU7@       5555Ð L    E2* @ LÿéñÏ37;?C73533533##5##5#3#3#3#3##5#535#535#535#5##5#35#335P(,%%,(“?GGII@n/½ *KÿçíÑ2=HL7&'3#"''3255#3533#3#&'#5'67#535#35&'75#367'35'3#` 3k  Y-,,(     (-  )  nÑ Ä  ¬J 58JJ     ,6» OÿéïÏ '+/37733#5##537'6'&'3#735##5##535#33535#35#•G|F? g kkFFll--?-l--?--Ï#-.!    220d d&9?ÿéòÊ -73#735#3#735#73#735#3533#&'#5'67#aooGG(DDBCCmHI=) (* *=Ê4177:  ":9HÿéñÈ 5;73#735#3353353533#3#3#3##5#535#53&'#535#367#R––+;AAJ=JJLL<F;3*BÈ8;   8 GÿïóÐ #'+/>73533533#735#33533535#3353353#3#735#3673#53'Q..™,u,««ii- 0¬(ÁQ0/+ / #  LÿéòÏ<@DHL733533##5##5#533#3#"''3255#67'7''275##535#735#33535#335v*,,***‹=I 7  $-4G<));*e));*Ï #N D  /  J[ ., BÿìôÑ#)9?E73#3#53'#53'367#3#735#35#&''33267#"&57&'''6 @(£+=&9,YYYY+ ! )k  x  Ñ   5 (K- ) "  " ' BÿéñÏ(048<73533#3#535#&''67&''6#5##535#3#735#KDEEN¯MD  h  'mmmJJ%%¿;;       =kkRB * 8ÿêòÏ=LR733#3#53533#673265#"''67&'#'66553533'73#67'675#'6•55D¢ V+    O a y?3    Ï##"'&" 45,"  >  % < ;AÿéìË "073#735#35#35#'33#5#'65#535#73#3#5##53uOO++++++80 ;1‡24"1ËgI ) ) 5`n; "qpK;;o@ÿëõÈ'-GMS73#3#3#535#535#73#3#3#535#535#&'3673267#"&''67''67&'NGIRGJ #",!   ‰  ÈY  3' 3   9 8ÿéøÉ+;K]q7#53#3&'7'#"''3255##5##5'673''67'76'''67'7''67'76'&''67&'76M«L:   41 % *6    A    M    @    · ’  „žžž£           /       LÿéñÐ #)/7;?CT7#5##53&'7&''33267#"&57&'''63#53535#35#35#3##"''3255#ëtA   [ a ˆ¥&'e”>  C½         '''4 >ÿéñÏR73533533#3#5##535#35#3#'67#53#67&'#"''32655'67''67&F'2++&z"':22__" 3§W    *59)!, +!¾,,-(           CÿéõÏ048<NS73533533##5##5#3&'73#3#3#3#5'6#35#5##53&''67&67#K1)'')1*=@7766B–@00000 )#. (+KÁ      ?    (     :ÿíòÐ "(048<73#'63#53#3#'#335357&'3#53535#35#35#»+2 +ZX++M +¸+)Ð G3I"  5<<<***** >ÿéôÏ$)-15;A733#3#5##533#'#5##5'63&'35#35#35#''67&'ƒIIS}= hh3 %/ ] /K]]]]]] f Ï ## [ Y  & & o    @ÿéóÊ #BFJN73#5'675#73#5'675#&'7&'3&'73#3#3#3##5'65#5#35#KJ!6UL!9@  h @*A?9999Aˆ C44444ÊW  W      4  U  ~ðÐ"7367&'#"''325'3'67#| % :  _O>2:Ð     ' )  ƒÿèõÏ#'-373533#3#535#735#3353#735#35#35#&'''6Œ%&&/o-%&L__999999*  à +   DaD & ' "     EÿçôÌ%+RW]73#33#5##53537#35#35#35#&'7&''332767##3&''67&''67&567''6NžNC„-<``````. A R !R  ( $2)    ]  Ì DD "             '  3  IÿçñÐ#'+/5;73533#3#535##5#;5#35#3#735#35#35#'67&'NEJJ?;E›–YY ††`````` !T à   00)U=    :ÿèõÑ6BFJV7'67#5367#5367#53&'73673#3#3#&'#67'73&'73&'#35#35#67&'Z (629F.'$LIOa- d " + QQQQ6 #/N     6 m & $   <ÿçóÏ#V73533533##5##5#3#735#335335#67327#"''67&'#&''6553&533&'7M'),,)'””+<     @ O À 8A     !$$  MÿèòÐ -159?EU[73#5##53&'3533#3#3#3#535#535#535#35#335335&'7&''33267#"&5''6¡>o?)**77AA8‚8??55)&6 J  W $   Ð $%-    ..   [$      AÿèòÐ -159?EU[73#5##53&'3533#3#3#3#535#535#535#35#335335&'7&''33267#"&5''6˜Hy@ ,..<ÿéñÑ QUY73#53&'3#735#73#735#3533533#3#3#67&'67'5'67#535#535#5#35#—I¥F6??BAA!!e&-((##-L   =  #7, &e---Ñ$+ ++   ,     CÿìôÏCGKO_7335#535#535#53533#3#3#35335#535#535#53533#3#3#353#3#3#735#3673#53&'O™¦¦‰‰bb ( 0±.ËT XX Sc  -    AÿéóË+/37GKOS7#5'75#53#'35#35#5##5'75#53#'35#35#5#7#5'75#53#'35#35#5#ñy _LLLLLL  7 Q/“ 8 Q0~ E@4 & & f G;/ % %   G;/ % %  AÿéòË'+/37;?CGK73#3'753#3#3#3#3##5'67#735#35#35#35#35#35#5#5#35#RD( &GA<<5555?‚   Q""Q Q""Q Q""00000Ë` \` H  E ()J @ÿéìÏ#CGKO733533##5##5#533#735#73#735#3&'73#3#3#3##5'65#5#35#t(**())!CC!!?CC J':<6666=} ?.....Ï  #.." P :ÿçñÑ#`dhlp7#5##535#535#53533#3#535#35#3#35#53#3#3#3#67&'7'5'67#535#535#535#735#35#5#35#ñŽN>>JJKK??--@-- 9) ;++%%6N  A  #9.''E)))‡#$# # 4    %     1-òÐ(,73#"''3265#3#32767#"&55'635A‘  † j_4ITA !KÐN3;  H !Nÿé§Ë73##5#'66556œ 3  %Ë /;5 4E:[ÿçõÓ)/U7&'67327#"'#'67&''7&'7&'673267#"&''67&''7&'7® DC   "! +% RJ  % ,'Ó         H   '    ÿê[Ï733533#3#5#'65/)Ê=BB)O=3# #5 ÿèðÆ"735#53#3##"''3255#'67#'7 mŠÒ488 2T M-c¦??_  [>"0ÿêéX!735#53#3##"''3255#'67#'0oÉ&++   +UF#PE   $ bìÐ733673#5##53&'733#735#v-±.  @””llÐ" ++ - ÿéTÏ73533#7#5'675#'6     Ä11> PF G(ÿêˆÈ  $73#735#35##"''3255##535#35#qqMMMM[  AAAAAÈN..+n  -„#5ÿõîÁ73#3#3#535#535#Í]MMeÜcKK\ÁHKKHWÿèëÐ 73#'3'6573#×a#1Ðçç„=' #4wÇQÿæõÇ"7#5##5333267#"&55'>ÛC,  8 " Ç}}*9 ? 10(3ÿîîY73#3#3&'73#535#535#Î[SS4 ÜdTT_Y   iÿéóÆ"7#3#327#"&'#67'535'#ç.64 .! X-)ÆK$#$)-.B Ò%%\$$bÿëóÍ73#3#353#5#5335#535#'6…W2>>"k">> Í0VC` VDV0 gÿëõÆ .73#735#35#33#67'73267#"&5536g||XXXX)) }  Æ_9;11  ] )   ]"ÿîñd7#32767#"&55#;5#ܧ;KUFTAA@@d@  `\ÿêòÏ:73#5#5335#535#'677'67#&'&''6733#3#3Øn%@@   ]3   #K:T1==# 6.%  0     .%\ÿéóÉ %)/573#3#53&'#735#35#3##"''3255#735#'67&'nw7?”?*QQQQv0   3RRe  ÉE * % E3( %*   KÿéøÏ&+/37=C733#3#5##533#&'#5##5'63&'35#35#35#''67&'‹DDMs9``. $- V *FVVVVVV a Ï ## [ Y  & & o    |ÿè÷Í!7&'7'7''5"'66556ä      6ÍwGMª # ·/I= 8I< ÿèƒÑ DHLY73#53&'3#735#73#735##535#535#53533533#3#3#67'5'675#35#67&'K2s.%11*222D   8   Ñ%)  ) p    !   ;    |ÿêöÃ#73#33265#"&55#67'7#&'|pG2  4Ã$‡ z| ¸M ÿé|Ñ?767&'3#3533#"''3255##5##5'67#5367'67&'!  ;B%     Ê    ;  &YYGB [ÿêõÄ#73#33265#"&55#67'7#&'cˆ\D   4( 8  Ä#†  yz ·I ŠÿêöÃ#73#33265#"&55#67'7#&'Šc>,  .Ã$‡  z| ¸Mÿé{Ð !%73&'73#3#536'&'#5##535##X@i8 &  U444·  RZ Z>- ÿïƒÏ)-15973#3#3#67'675#535#535#535#'25##5#35#335l .  -,7+  ,- !Ï!! !!X!!!!3!!! ÿé|Ï"&*/DJ73533#3#''275#535#35#33535#335'#63533##"''3"55#&')**)'1'')(?( LI  I"Á JJ ,-' #     ÿéƒÑ06:73#3#"''3255#3#3#535#535##53&'#53&'367#35#G2   72 +Ñ Ž  y55“£ @‚ ÿëÎ $(,06<BH73#3#3#535#535'65##5##5#35#35#35#'67&''&''4'+P m P     F  a   Î1++ 7111111<+++++D  ÿé‹Ò)/37?C733#&'#'67#3'73#'655'667#3#3##5##535#19  $(_ 60 PPPPQ...Ò     !  ,* "(R M  7 7[ëÒ7'6'33#5##53'&'3#735#ÃCb®a< „„\\Ò  #8''8#  43ÿêöÉ!%)/473#3#33#"''67&'767#535#35#3353655#335v3*+JF>Q"  )+1+C+Ée  e<C ÿéíS73533533##5##5#35#35#'d((d':ddddDII0YÿéóÏ$173533#&'#5'675#&''67&''6e7::' # &7  Z ´F6)RM%.L   &  ,ÿêÔ] 7#5##535#35#35#Ô]s s ) * \ÿïñÍ+73533#3#535#'67&'3533#3#535#m044@‘=0I J222?•B2µ3    ,   fÿêóÐ#+/373#327#"&'#67'56&'#5##535#35#Þ 61   0# ?(mPPPPPÐ   ]& Jl l'<+ÿéÒS 7#5##535#35#35#Ò‚‚‚‚‚‚‚Sj j $ % ‡ÿçõÏ '-736533#3&''67&''67#677&'‘;<6      ¢7#     0N4!o    ÿè‘Î"&*.7373#3#5##5367#'6655635#35#35#‡ +:($'$/$ D//////Î ŒŒ H: 8G<v:9QÿèòÍ"&*.73#3#5##535#'66556535#35#35#å 44,A&0  N AAAAAAÍH;8G<*K99^ÿîõÏ'+/373533#3#67'7''67#535#3#53535#35#35#q/33>N   /5%9/v— #"¹    i???.....]ÿëîÏ !%)/573#5##53&'3#3#535#35#33535#335'67&'©=h>V#4y2 3!T 3!E  C Ï +,1\\6:+    WÿêöÐ )B7&''67&''6''6#5'6733#33#"&''673§   2  Y    P     Ð   %2   &/ ' yY "/ $E _ÿéðÑ I73&'73#&''67'763353#3#"''3255#67'7&''67##537#_=>‘]     OY7D  8  43½    11CI  2   Pb ZÿéñÏ#BFJN733533##5##5#533#735#73#735#3&'73#3#3#3##5'65#5#35#ƒ"&&"$$==8>>E!5611117p 7'''''Ï  #.." L+ÿéÒK 7#5##535#35#35#Ò‚‚‚‚‚‚‚Kbb " $ [ÿæðÑ3=GMSY_733673#5##53&'733#735#3#3#3#535#535#73&'735#336735'67&''&''&'œ p!  *ffDD ƒ988B’>558   &8  h  z Ð   # 4     U         ÿë€Ï 73#3#&''67#537#'67:(*  $-03  Ï &#;1lÿéôÆ733##"''3255#53567#ym==  99UÆ\ Y! ÿênÆ+733'67##"''3255'67#53&'767#U     ) =Æ  i  @ $,  ZÿéöÏ$7367&'#"''325'3'67#Ÿ " #  <2  Ï8!9"'6Y  Ž0$3? ÿèîT73#3#5##5'67#35#Úƒ …| +;7||T G6@kÿñðÎ73'67#&''6¤ C7% X6 'Î R: q   2iÿóóÐ 73&'73#3#536'&'q4  2|\.ŠG3  ¤ G4>>5591gÿèôÏ73533#&'3##5#535'67#n47- )£,,M!$LS00QC++GkÿòòÇ 7#3#5##53533#"''3255##ïps‡D$% ǯÕMUgS >mkÿéóÏ#'+73533#3#3##5#535#535#35#33535#335p47733<<99//40O0¼e''e;A_ÿñõÏ  &7&''63#&'3673#7&'¢% !"" / PP  )G /‰ Ï%*(&( !X-+/"e!eÿêøÅ@73#67&'##'32655'67&'&''67&'767''67#p,     & +    $<Å @#$? 04      iÿïôÏ&*.2673#3#3#3#535#535#535#535'25##5#35#335à 6:6}4656"'Ï&##&`&&&&6### ÿèîM73#3#5##5'67#35#Ú† ‡| &67||MB 3 7lÿèóÎ#)/73533#33#53535#35#35#35#35#'67&'q588- … -5HHHHHHHH  CÀyy-,,,"      ÿèîF73#3#5##5'67#35#Úƒ‚| )97||F ?/ 4UÿèôÂ!73#3##"''32655#&'''6rllŒ=  :o  HÂ&t p%* *% 5"\ÿêóÏ#)/733##"''3255#'67#53673#3'67&'¤44  8!(EK %$ Y Š.I  D$$! %!VÿéñÏ,047373#3#3#5'67#35##"''3255##535#35#e$RZZ2:‚+c   OOOOO¾ /-a  (x - VÿèòÊ &@FLRX73#735#35#&''67'676777'76777'7''67'67&''&'''67&'i{{VVVV    4     ?  3ÊO/-W    "    L  ÿéñ= 73533##5#ghhg+00 ÿé~Ï73265#"'&''7&'37&'k2   ‘ 9%%I!)G>  ÿèuÒ 7'67&&'3'67#E"  XC®(#3 .2( +#ÿèöÑ 7'67&'&'3'67#º"   Z   F¬($3 '/ +„ÿêóÏ73267#"&''7&'37&'î< #  “ =7"=K!)GA ÿéòÐ733#3#5##5335#­22*4 44Ð.0wwR@€ÿèñÏ73533533##5##5#35#35#€**$****£,,,,©©99ƒ8ÿæòƒ'-39?73#3#3#535#535#73&'735#336735'67&'7&''&''°MTThähUUO  ;O ˜  K  aƒ9        f         ÿçwÄ73#3##5#'655#535#5#`:ÄLjj>( %5LLLL ÿèâÏ73#'66553&'35#ˆN¬ Z>™™Ï 4+A1 /!Y 3 ÿúmÁ 767'7535#35#75#_(2  Á£ ²;(a(b# ÿéÏ#'+73&'73#3#3#3##5'65#5#35#,   "O *Ï   Ž +- 3 3  ÿénÎ $(,7'673&'73#3#3#3##75#5#35#  >'~ 4##$ˆ##4##4$jŸÎ7&'37'5#~  " Î 9e  kOÿÿ•®767#53&''67&'g $7    †>( %“ÿéóÏ"&*7'673&'73#3#3#3##75#5#35#£ ?(~ #'!"&Š!!3""7&ÿèuÉ#';73#3#5##5##535#3#'3#3#'3#3#3#67'7''67#S#,+!5+++LL c5  É-??-.    oÿèõÏ'7367'673#&'#'67#3#'3'66o0"5+ ;#  % # *M'“ -& -hh1) #nÿêöÏ%+05733#3267#"&55'67#5'676367#367#335—: '(  $ %%   & + -Ï L; /))B 7 F*ÿîód#735#53533533#3#3#3#535#535#@FFFF>>JJRäOGG@<  dc   ÿègÉ 7'6'6'6N+ % * %$# *É #" %$ ! ÿê|Ñ#)73673#3##5#'67#53655#5#'&'6  ?  ¢7ZZ=4 &77(w ÿêŒÑ#)73673#3##5#'67#53475#5#'&'F  # N!  ¢7ZZ>4 &77(wÿé•Ï4767#535#5673#35335#535#53#3&''67&'# b22  +15 ) #4 \  ``f    ÿê”Ç #)7#5##53#735#35#3#53&''67&'X ffAAAA&5‚7  EÇ  'S11' (   ÿ陯'<B7#'6553#3#67''3#67&'3533##"''3255#&'= yggH  RR*  (;  ;   zD5 7=_+$_#  4$ !   ÿé•Ñ'=Q73#"''3265#'63367353#'67#'673#"''327653353#'67#53368S  N   +$  T  >%" Ñ I1    : I ,     ÿê—Æ #'+73#3#535#35#'6'&'#5##535#35#$*Š'"5< WpBBBBBÆEEEE  Sf f$5 ÿè—Í.2673533533##5##5#'67#5367#53#3#&'35#35#!!:$ % .5*k+;A!9EEEE·˜  OOr-ÿé–Ñ"&2>73#3#'6553&'5##5#35#3353357'53367'533]0$#f5"G  Ñ =;- 2;X =,]   T U ÿé˜Ï#'+0EK73533#3#&''275#535#35#33535#335&'#3533##"''3255#&'4772 /=1141P1N^   ^(    JJ *,& !      ÿé›É#';73#3#5##5##535#3#73#3#73#3#3#3#"''3267#7#v0;*->3 CH%%H$$Q}} ‘_X ] É #;;# )  %ÿé‘Ê 273#735#35#3#735#33533567#53&''67&'kkEEEE~~#W [u  % ÊE) ' '4E     ÿèšÏ!%)-17=CI73#3#3#535#535'65##5##5#35#35#35#'67&''&''4'-[ ‹ R     J  l   Ï 0**:000000<*****C   ÿêœÊ(,0A76767&''33#5'67&'767#3#735#7677'7&'d   >7 9= $``:: F7 ' È   1&!       Q7,  #ÿîïf!73#735#3267#"&553'#37#32jj>FOH±b<E}‰6%! H JuuuK!    @BÒ "$\2  —  $*  !BÿèõÓ $(47'#67'5'63&'73&'3535&'76–'( g  :0 +TTT .1 Ó" Y5  “ # #$&  hÿèõÓ *.27&''6&'767#67'53&'73535¦ " +M #&  P  ) ->>>Ó!#"+W   1 ’ #ÿéjÏ76767'67'67'6767N(%5  Ÿ5 :9 4 30 ÿðfÏ73'67#&''61*< 1  Ï…3)k   .|ÿíõÏ#73533#353#3267#"&55#5335#|/11,  ,/³ZDV/ 5UCZ|ÿññÉ73#3#535#535'2ä //+l.331ÉKPPIÿéÑ $(7&'3&'73#3#3##5'635#35#A" EEEHH &3333Ñ R ™ C. ÿåõ~ $(47&'#67'5'63'73&'353567&'„.: Š'  B 30),www"  0,~  7 V   !  ¥ÿèðÊ7#"''3255#'65535#35#ð     ÊÆ :8!"?z;)e)ƒðÏ733#3#3##'353#5#535#535#NNFFPPzMRRIIMÏ  DK  mÿéñÐ 57&'7'6'33#5##533#735#3533#&'#5'67#ƒ a ,7]7QQ++*68.  *Ð   %+,"58  !9;! ÿçõh"&27'#67'5'63&'73&'353567&'† 56 ˆ% D /6*5vvv1  11h 1K   "  ÿëfÐ73'67#'6367')0  !   Ð &'v  `ÿêôÐ#cgkos73533#3#3#5##535#535#35#3353#35#53#3#3#3#67&'#67'5'67#535#535#535#735#35#5#35#b>>>33Ar>33>""4#[-  +%%)4    $ !3'&& 6È !&&! 0          1 lÿèõÏBFJ735333##35#53353#5##535##5#3#5#'6753353#35#535#535#33535y0/ /"  "#   #00990A ; &‚'&4 @@ 4& ?"' ; oÿé÷Ñ +77&''63#3#735#73#735#&''67&''6«"  *6644,44;   G  Ñ!";;/   #  tÿèòÉ 5;73#735#3353353533#3#3#3##5#535#53&'#535#367#uxx#_---5-4466/5-+%É::   7  eÿèòÐ48<BHNT73533533##5#5#3#5'75#5373673267#"&5'3#735#&'''67&''4'k FP J  2** 6  X  O ¾`      H[;R  mÿçòÐ "&*.4:@7#5##53&'73#673#5'675#35#35#35#''6'67&'íV3/K -jEEEEEE  =¾'(   ^J D $ % g z    ]ëÌ $*06<7#3#3#3#"''267#55#5#5#'67&''&''&'àQJJJJ\  «Q>>>>>  ‰ Ì   L        jÿéëÐ73#'6553&'35#¶*W,CCÐX8/ 0?Df3rÿíëÇ7#5##535#"&55#'7335655#ëUU  D UÇÙ Ú¹- g+8$ }bgw-+fÿèöÑ#'7367'673#&'#'67#3'6673#h.%3 1ÇP  #+ %  00v   aÿìòÑ *06FL73#53635#'673&''67&'767&'3&''33267#"&5''6˜Bv OO        8 @     Ñ || uZ      O /  2!ÿéôÊ -73#735#3#735#73#735#3533#&'#5'67#OO++22'11I+/%  $Ê4177;  41 /óÑ $*06<733#5'667#35#33535#335&'7&'''67&'UQ4³ 2L G==P===P=)  J  ŸD ÑL; *       €ÿóôÂ73#33#537#'7#37#€pFAtD<1/Â"†,li4}ÿêíÏ73#'6553&'735#Å(M$"::¦[<"9V_7xÿéòÏ 73533#3#67&'7''67#535#‚())4= %* )2(¬##37 %+ 23 ÿçñƒ $*06<733#5'6367#35#33535#335'67&''&''&'YU*¨ ' UP99J8‚99J8 ¸  (  +  ƒ F9 " &      ÿêïÏ735#53533#3#&'#5'67#-''''0*   $q%''%6,RT('1uÿèôÎ$73533#3#&'#5'67#535#'6((.# '3 ++(*&")Y[,"%.(  RõÏ73533#&'#5'67#_`P&6 5+$9 8"Oµ%,76+&fÿôôÂ73#33#537#'7#37#jˆYP#ŽWI?=Â"†/if1WÿéñÅ"735#53#3##"''32655'67#'… 3Dx %%  2,"0¦>>^ X>+ 9ÿéï‘73#3#3##5#'6M•yddll)‘*~ $ ÿçö}*7327#"'&5#'655&''67&'76Í  {# t   }H (# M5)% $H  ÿðð‹ 73&'73#3673#53&'\[Í1 -  DàB n  %*(')& ÿéó7#53##"''3265'##535#²¤å, &I55lh OFW3  ÿèßR 73353353#5# AB«=9NN9UHóÏ73#3#535635#ÆRA 6Eå"^JVVÏ'^e' ÿêà‚ 7#5##535335#33535#35#à˜VVBBVB˜BBVBBg}}1N!ÿéÞ[ 7#5##535#33535#35#Þ•@@U@•@@U@@[rr)>!ÿèÞV #53#5'#335#355#5½TAATATATA nn P!ÿèÞc #53#5'#335#355#5½TAAT@UAT@ {{Z!ÿéÞz 7#5##535#33535#35#Þ•@@U@•@@U@@z‘‘6###Z$$$!ÿèÞˆ 7#5##535#33535#35#Þ•@@TA•@@TAAˆ  ?,,,j,,,xÿéðÐ73#"''3267#'6&'¤F<    Њ$v $0" % ÿé…Ð $*06<733#5'667#35#33535#335&'''67&''4'3+Y    #5# M G Ð cY *C/" sÿéòÐ>767&''67&'3#3533#"''3255##5##5'67#536‹    GM)    !Í   2  9  $UUAA{ÿêøÏ#'+737#"''3255'67#5353635#35#35#§0 + (G  777777Ï[  ?  $!s 2<:tÿéòÎ %)-157&'6'&'67&'6#5##535#33535#35#º      ]   J.J.Î   Pyy-HsÿéóÏ(,073533#3#3#535#535##"''3255##535#35#z.22,,8€5&&.l   AAAAAÀR\  $t 0vÿïóÍ+73533#3#535#'67&'3533#3#535#„())2w2(B @(((3{4(µ3  -   tÿêòÐ6>BF733673#5##53&'733#735#3267#"'&5536#5##535#35#© Z  JJ((9"& '#):::::Ð -. '    6JJ & nÿçóÎ17=73#35335#533#335#535#535#533#535673&'''6ˆ! „ 6(„ CCLMZ  ’‰  f   ÿérÀ 7#'65535#rE22ÀY B2 2?[G5 ÿðtÏ7'67#535#53533#3#&A $%% #$0& )7)$$) ÿéô€7#5##53'66733267#"&5Ó~A/;8&'  4 €aNM`!;5*2  ÿéôm 7#5##53'66733267#"&5ÌxA/<9&  , mTBAS30&-  “ÿëõÆ $73#3265#"&55#'67#735#35#35#›N ))))))Æ2  87+dCClÿèöÐ #'+/5;73533##5#3533533##5##5#3#735#35#35#'67&'w/44/ // ssMMMMMM ; À gI ) ) !     dÿìöÑ!%+1DJ73#3#53&'#53&'367#3#735#35#&'7&''3325265##"&5''6¯2"ƒ /0%nnIIII*<  I     Ñ   8 *H, )"      #  JÿìöÑ $*0DJ73#3#53&'#53'367#3#735#35#&'7&''33325267##"&5''6¥;+—'83,}}WWWW2  E  V    Ñ    7 )I, ( "     " ^ÿèóÐ#'B]73#3#&'#5'67#535#53635#35#''67'6776767'7''67'6776767'¢ =2"  $4?      n    Ð h 9:h2F   &! )   &  - ^ÿêöÐ.26:>BHNTd733#3#"&55'75373267'67#'65533#735#33535#335&'7&'''6733267#"&5›77D  $ &_,]]&9&  :  T  Ð     I=/ 07SD?& !       EÿêòÐ/37;?CIO_e733#3'67#'655332567#"&55'7533#735#33535#335&'7&''33267#"&5''6‹AAKj1@$)#hh+D+"  ?  I     Ð   I=. .8T  '?& !      #  TÿéöÒ#)/5;CGK7'6733#736735#33535#335'67&''4'7&'#5##535#35#`!<%‰$ 8D&&9)b&&9)j ~ ;54SSSSS˜JW * '       PP %  eòÑ#(,7&'#3#3#53&'#535#5'63&'67##35#‚14 1P 8×2P3GQ%!.$Ñ    G cÿéíÊ  $CGKOU7##535#35#7#"''3255#535#5#3533#3#&'#5'67#535#35#'735'6¡,x   ,H'''##    "'   ÊEœá' *Ì „E '   6  #$ 6 4  ^ÿéóË+/37GKOS7#5'75#53#'35#35#5##5'75#53#'35#35#5#7#5'75#53#'35#35#5#ñe†P>>>>>>-C(z-C)~ E?3 & & f G;/ % %   G;/ % %  ÿêôQ!&*/7'67&'#3#3#53&'#535#73&7##35#CI1 25 3J:Þ1L27F 0&'   9 ÿïUÎ"(.7&'3#3#7'75#535#5'6'6'&'/ /$ ')ÎA F flÿêìÏ!%73#"''3267#3#"''3267#5363#”>   Ce  d$]]Ï < #NM6r ›tÿéëÏ 7#5##535335#35#35#35#ëR23 33 3¡¸¸..I777888aÿêöÏ73533#&'#5'67#7&'q174$ )+]  š55A.)9~{4(1>?   iÿèîÏ$*73'67#'63#"''3257&'''6W H  "  6  GÏ   ,ƒ  _)*-',% &[ÿéòÐ=767&''67&'3#3533#"''3255##5##5'67#536u "%#W]1   'Ì      1 8  !TT@? gÿðõÏ-73#'3#7#53&''67&67#3533#3#535#Ž CE    S/00<‹6&+- ) 16./2' 0  o  Ð333  &" ) J   pÿêõÐ27=C733533#3#3#3#&''67#537#535#53&'#5337#7'6'&'˜ $400:2$' * ( -1++/$ +=T  Ð333   %  ) H    ÿópÇ"7#3#3#3#67'7&''67#535m@====C/   " Ç'  (sgÿéïÄ (7'66553'#33353353#353#5#5335#Š wSSK%N#ˆ'B6 .%^<+'"//"38'D ;(8kÿéõÏ06:>DJ7373#327&'##"''3255#5'67&'767#33&'35#35#'67&'w#8  $ #  0 3 !5555  S ·  60  -4   G-)    ÿíóC73#3#3#535335#Î]MMiæ*+]C##3 ÿéóÏ&*.736533#&''67#3##"''3255#3#735#YZ]4+,0> I Sæ&  ¬"dd>>·    8W  T9vÿéóÏ&*.73533#&''67#3##"''3255#3#735#€+.0  ( }   Z ==¸     ;X  U= ÿé€Î'+/73673#&''67#3##"''3255#3#735#,*.    &s   S 77¶     9W  T8‚ÿéõÎ#'73533533#3#535#35##5##535#35#‡s%>77777°!!!!Crr)? oóÐ733533#3#53=(SSfæ0½;NÿêòN(2R733#3#&''67#&''67#5353353#5#53'65#'#&''67#35##&xJJhE 1  D*-W¯p  ! !Ÿ# N     !:8    }ÿñîÇ 73#53535#35#35#â q 000000ÇÃÃ@-o.o. ÿì€Î 73533#3#535#'6##535##%%+p2 \L99Ç'''' YJZ8% ÿé’Ï#AEIM733533##5##5#533#735#73#735#3&'73#3#3#3##5'6353535177/66<.-))))&X Ï  #.."     I    £ÿéñÎ73533#"''32765#'65#­$   ¢,,_Ejy. *q[ÿèóÐ*>Qc73533#&''6655#67''67&'767&''67&'67&''67&''67''67&'`?== 7 .7#!?      [           T    ¸,8/8 7?,      .          nÿèñÏ.4:@7#5##53533#35#&'#67&''6654'&'7&'&'ï[2??1[[(      "   H      ¸¸/—…  "  )    "  `ÿéóÏ"&*/DJ73533#3#''275#535#35#33535#335&'#3533##"''3255#&'c;==6 2A33; 2#U 2#Pc   c)    JJ *,& !     †ÿêïÏ73353353#5#353#5#5335#‡W*»?SS?X eLi _Me`ÿêöÐ (A7&''67&''6''6#5'6733#33#"&''673«  /  Q    K     Ð   '1  '/ )]"1 "H ¨áÏ 73353353#FEÃÌ$EÿéõÐ!+7&'367&'#"''3255#3'67#&" $$M   8 =%& 0(Ð 1;M ˆD!3ÿèîg73##"''3255###535#ß%   ¦„R@@gU  R9 E(SÿñóÇ#'73#3#3#535#535#35##335##35#35#Z’,''3 4''-@M&Ç*]++]***<9999v+b¹ 7#5##535#b"""¹ž§{hk¹ 7#5##535#k...¹ž§{h\¹ 7#5##535#\"""¹ž§{hU¹ 7##535#U-¹Ž§|jS¹ 7#5##535#S¹ž§{hYÿéóÐ"',7333#&''67#535367#'65##67#Š5 )9+ 0/) 59 ) QÐ C%4+ C j11OÿïôÏ #'+/73673#7&''67&'3#53535#35#35#^M  *$  B4¥%$B = /HHH77777M¸ 7#5##535#M¸¦{jI¸ 7#5##535#I¸¦{jZÿêóÐ3;?C733673#5##53&'733#735#3267#"&5536#5##535#35#œs&``<· 7#5##535#>  ·œ¥{kd¹ 7##535#d9%%¹Ž§{hS¹ 7##535#S,¹Ž§|jOÿéîÄ '7'6553'#33353353#353#5#5335#wŠddY+[*‡&D4 4?]=+'"//"47'D :(7M¹ 7##535#M'¹§|jX¹ 7#5##535#X¹ž§{hZÿéòÆ73#3##5#535#'6'&'e‡>  +  %  j %J8! +8 )5>! #&&Ð    3    $     #UÿéôÑ)-173&'73#3#53&'#67#3#3##5#535#735#35#^;;&ž$]?(|3EEFF6VVVV¼   R01DÿèñÓ5=AEIMQU73#33##3#"''3255##5##535#535#'66553&'5#35#5353535#33535#335©<;/ /4    "0..7 D77.AM1"S1"Ó   T   i  C3 0#\* '   C ) @ÿçöÑDHLR7#35#535333##67&'#"''32655'675#535#'66553&'73535&'òˆ7**1,   "    %**7 I[ ¾2 #$   %,    A4 0#[ 2#+  XÿéóÉ &*0673#3#53&'#735#35#3##"''3255#735#'67&'kz9A˜B+TTTTy2   4VVf  ÉE* % E3( %*  TÿêøÈ"&*.26:7#3#325267##"&55#535#55#7355##373535335è/331 ..,PS7 r7 È9h  g9Ì»°º2*RÿéóÌ $(6<73#535#535#3#3##"''3255#535#735#'3#67'75#&'iyyf^^fAC   qq`E  ' ÌK  @:  K  XÿéòÊ#D73#3#5##5##535#3#73#3#73#3#3#"''3255##5##5##537#b†:B/0C9%%D$$L--L..[™GG  5>Ê (;;( * :  $8888=N IÿéòË 26:>BFJ73#735#35#35#73#3#3#3#3##5'673&'7735#35#35#5#5#35#YAA:E< 893333<|  $  -----Ë`E ( ( D` F  A () I ÿì˜Ï/H733#3'67#732767#"&55'75#'65533753353#7'75#533F99?1%&    0  .9# Ï     F9- +6PVKH*%4  1"‹ÿêòº7#3267#"&5535éJ   !6ºoD ¹IIÿðç» 7#5##535#ç@@@»Ê˦“\ÿééÌ7#"''3255#'665535#35#é  H FFGFÌÆ40' 2%a=*f* Uÿé÷Ï7&&55#5'66556Û  !! =Ï#k1I@"À¾7J@ $6#IWÿèóÇ#(733#"&55#'667#53&''67&67#Í ,   u"# )) &*AÇ<  0$  *v2   Jÿèò 73#3##"''3255#&'''6hss”B   >tKÂ&u  r%* )& 5"^ÿééÐ 73#5##53635#35#35#”Jd, ddddddÐ ÈÈE#Y$[%]ÿòðÇ 73#53#3'35q“{ss_2-Õ.TA..EÿéðÇ73#7#5'75#35#35#675#OŸ6>!*GGGG%"GÇwA< R!XKÿèòÏ*07767327#"''67&''7&''7&537&'ÜDOM  !, 0 ==./  £  " &   65   LÿêðÑ&*.267&'3533#3#"''3255##5##535#35#33535#335È  kHJJ@   -(;H ((:-g((:-Ñ !!‡  336Ÿ@FMÿñòÇ73#735#35#53#3#3#535#`‚‚YY9>“A<=x  1‘(;JÿéòÐ"',7333#&''67#535367#'65##67#< (A0 4 71 ?@ / V#Ð  E# 0("E j22FÿïñÎ+73533#3#535#'67&'3533#3#535#Z8>>K§H8!O W;;;J«M;¶1 /   JÿêïÆ #'+73#3#535#35#'6'&'#5##535#35#S–,2¥2)<N  o  ˆUUUUUÆEEEE  Qff$6;ÿèïÇ #)7#5##53#735#35#3#53&''67&'æy‚‚\\\\0I«K 0 'O"!Ç  'S11( )   7ÿêòÑ-DJ7&''33#673265#"''67&'#'65533#67&''655#'6Ô  ))    N`HC   &  Ñ   /5%+$( 'HH<- .7S"%   &7   NÿèñÏ-39?7#5##53533#35#&''67&''67&'&'7&'&'ìx>RR>xx2        ]    ¸¸/—…  #   '  ÿêìÏ#737#5373#3#3&'767#'67#L@EZ^x} j -A #`Gƒ    ÿîòÌ73#3#535635#ÐWI§3<å[E``Ì -j»¿jÿêôÏ"(.733##"''3255#'67#53673#3&'''6TT   Y;E }†B: a* (‹.F  B$$ !# #ÿèðÃ$735#53#3#3#67&'7''67#535#)MXÅXNNe|8=  IR MgMŽ""". (  ,"ÿèðÌ'73#3#67&'7''67#535#535#'2Ö '/OOf|9>  IR MgMM&*[Ì"#. (  ,#! ÿéóÏ48<73#3533#3#&'#5'67#535#535335#535'25#'35Ï $,]]',,%Q<8#": 4$N"(()[[#'U6'=)ÏCC"}ÿé–ÏDJ_7'23&'73'6733#"''3255#67'7&''67##53'767#7&'3&''67'767# 4K>8 L  * )   7 Y;E   2Ï +     m Z   s‚  +  €     ÿê™Ï!18P7#5'67#53533#&7'6'&'3'67&''667#73533#3##5#'735#` -86*  J  !    /  ‡#!  ++ R   [ -0     '!!  ' ÿë”Ï)-273533#3#535##5##53#3#7'7'#735#767#877/q.8‚\KKj9G%DD$ *%) 2  9 ÿéðÀ73#3##"''32655#535#!½Qcc iiXÀAV QAÿéð¾73#3#67&'7''67#%µµás6A JJ *V¾2D (1 )8ÿéîÒ *73&'73#3#735##5##53##"''3255#f^Ý!œœtt¨³ @  I¼   1-1 / -  * ÿëñÇ 7#'655ñ¿ Çc< 4?] ÿçöÐ  7'67&'&'3&'767#€-= N(0: 64  F«! '; ް.(2 ,0) NÿêðÆ%733'67##"''32655#53&'767#^‚5  +  JO  hÆ  ^ Y  HÿèõÏ  7&''6&'3&'767#˜&( '&)4  ){#) bÏ /0/(   ( QÿéòÏ 73533#3#67&'7''67#535#\:::GT') 4:6E:¤+++5 $+  2+OÿéòÏ#7&'73#3#3##5#535#535#536x  Y .C==GGGG<B73673#'#3265#"&55##5'67#3533&'#35#33535#335N3S0'5  $$ #*$!  $$7!X$$7!²  N   X(9>LÿéòÐ !%73&'73#3#536'&'#5##535#W;:Œj .¦a A  {[[[¸  R[ [>+eÿêòÉ#6:>BFJ`l73#73##5##53#5##5&'7&'#3#'6553&'75##5#35#3353353673265#"&5'7'533q;;A::y! K )&!h  6$    !É 2$$21##1    #)"" #+1         6 QÿêóÌ#59=CGK`m73#73##5##53#5##5&'7&'#3#'65534'75##5#35#7353353673265#"&5'67'533_BBJDD ) V ,+(y <((    ( $Ì 2$$21##1    ! )' $,2         6 ‡ÿéöÐ&*73&''67&''667##5##535#¤;    ,A111Ð        ]\\<+5ÿï‹Å73#3#67'75375#735#CB #, ÅO 2 XSi-VÿéõÏ 0EKQ7'67&'67'7''63#"''3255'675#'3#"''3255'675#&''&'‡# O & -   #) F 3LE  2b  =  Ï #&/ +e   %e   % GÿéôÏ 1FLR7'67&'67&'7''63#"''3255'675#'3#"''3255'675#&''&'~% $Q , 1  &.#K "8SK "8i  C  Ï &&1+e   %e   % [ÿìôÎ (,0473533#3#67&'7''67#535#3#53535#35#35#n022;M   19&<0y ™!#¸  eCCC22222lÿéôÐ%73#3#3&'767#'67#537#536 ?BOST "( K!%#&Ð    ÿñf¿73#3#5##5'67#35# Y% /  !'¿ s _+6’DÿñW¿73#3#5##5'67#35# J ' #¿ s a +6’Cÿöêº 7#5##535#ê555ºÃÄ Ž eÿéñÏ '+/37733#5##537'6'&'3#735##5##535#33535#35#¡=h<6 T YY55ZZ$$7#Z$$7##Ï#-.!  420d d&9 pÿéñÏ '+/37733#5##537'6'&'3#735##5##535#33535#35#§7^71 K  SS//SQ 1 Q 1 Ï#-.!  420d d&9 `ÿìôÐ "(048<73#'63#53#3#'#335357&'3#53535#35#35#Å"("LI G  % ” ""Ð K‚4G# 6===***** kÿíóÐ "(048<73#'63#53#3#'#335357&'3#53535#35#35#É$ FDB  # ˆ  Ð J‚3H#  8<<<+++++^ÿèñÏ73#'655353335#³8a(>fLL¤N-& (2;FW*ÿèuÏ73#'655353335#J(F+H33¤N-& (2;FW*YÿéóÏ.287#"''32655'675#537#'733#67&'37&'¯  !%CVFL*?  #= ? X  +( .8 6   ¤R ÿëî[ 73#3##"''3255#&'''6'°°Üa  h! R . ([&  "  ÿéóJ 73#3##"''3255#'67&'(°°æg   l>" {  J        \ÿèíÏ473#"''32765#'63#3#353#5335#535#'6~c   Y 9%((^,,  Ï –"  2$43#2  [ÿéöÒ!%+37;7'67&'#7&'3#735#&'735'6#5##535#35#„ 0!& ?9 '‚‚&&   1%  "OOOOOŸ    A#  ##  2S S+ ÿècÏ73&'73&'#5'67#   $5°   fa ? ^ÿïóÐ #'+/>73533533#735#33533535#3353353#3#735#3673#53'e((‡'c'{”” ||YY$)•!ÁQ0/+ / #  UÿéôÑ RVZ73#53&'3#735#73#735#3533533#3#3#67&'67'5'67#535#535#5#35#£B”=.;;:<<[ %$$(B   4  0& X%%%Ñ#+ ++    +    ?ÿéõÎ $(,EIMQ7&'#5'63&'3#735#73#735#'3#735##"''3255##5##5##535#335335—() R =9 =,,_,,E--W   , Î    &0  0  0 0H !!!!)]$ RÿéöÏ $(,EIMQ7&'#5'63&'3#735#73#735#'3#735##"''3255##5##5##535#335335 $& K 692)) V)) @)) O  )Ï    "0  0  0 0H !!!!)]$ ]ÿéñÍ $(,EIMQ7&'#5'63&'3#735#73#735#'3#735##"''3255##5##5##535#335335¡# F /1 ;(( Q(( >(( K  &Í   *0  0  0 0H !!!!)]$ eÿéöÏ $(,EIMQ7&'#5'63&'3#735#73#735#73#735##"''3255##5##5##535#335335¨# > /- 0'' '' ''   $Ï    #0  0  0 1H !!!!)\"lÿêñÇ733#"&55#'665#5##535#Õ +  ^AAAÇ;  0#  )lqqO=uÿèïÐ"73#3#"''3255##5##535#53&'¯ 341  132Ð \  E‚‚ew  ŽÿêïÏ73533#"''32765#'655#¡( )'£,,d> hc> =Xÿçç–073'67#&''67363'67#&''6g@1] O.6  $G:@y k;4 T–6 ( .A3   ÿçZÐ73&''67&'67#53667#,"    ÐP,  "$~8# 3ÿïï€$73#67'7&''67#3533#3#535#@£]4)  8D/CJJV¼SC€ D ÿòò˜"(73#5'67&&'3673#7&'€T_ P25 39 Lx:Ì"  } .$8J  ÿèó8 7373#&''67&'67#367 D4 %! 5+E 2! :O3 0     iÿéóÏ"&*/DJ73533#3#''275#535#35#33535#335&'#3533##"''3255#&'k8882 /=1181 Q1 L\  \#    JJ *,& !     _ÿê÷ÏDHUbh73&533#673265#"''67&'#3#3#3#67'75#535#535#535#75#'&''67&''67&'_c     ")+    -   E‡!'( +! )  '+ jhW    pÿéóÐ*048@D7#&'#'67#3&'73#'655'673'3673#3##5##535#ó  &(a  <;13PPPPQ000     "  85 +61!   ^  7 7ÿçòÐ!(.7373#3&''6654&''67#677&'‡>@:    £-7#    (;4!r  {ÿéôÌ 7&'''63#"''3267#'67#Î" G   Ì?F?( $'_!HN"Cÿûì¼ 73#3#3# ÀÀ ªªØØ¼CERÿûó¼ 73#3#3#[¡¡¼CEÿêïÆ73##53#3#"''32765#2  <ß }…Æ<*F'CÿèôÐ07''6767&'3#3#&''67#5367#'6¿ 99"$* 9a<LB3 5 C : =B  Ä!    7$ -$ LÿèöÎ#)/7&'36732767#"&55'67''67&'—!/     Î -V-Xj6%" V5% +!#)*"dëÐ73673#''67&'67#367> €) ?'> 1  1J º      |ÿêïÈ7#"''3255##53#3#735#ï MAA77ÈÆ  ¯ÌÞ,W5ÿêÑ#+/373673#53&'35#&'735'6#5##535#35#5~##1#  #KKKKKÑ  WW \555 :dd#4 ÿè—Ï19=73673#3#3#3673#53'735#535#535#53&'#5##535#8#7//55 ‹ 22..6^BBBÏ      Ÿ? @" ÿèšÐ "(0487&''63#3#735#&'735'6#5##535#35#L## +EE~~##0# #KKKKKÐ  A#  ##  .T T,wÿëöÎ=73533#3673##33##"''3255#53567#'67#5367#535#   .-//  ;; & "9)º    sÿéòÄ373##"''3255#7&'#53#"''3255#7&'#5s;   x   Ä  ‡**&"|²  ‡**&"|²‡ÿëôÆ !.73#735#35#3267#"&5536'33#67'‡cc====M    S Æ_9;= +  _/  sÿé÷Í #06<B73#5'675#73#5'675#&'7&'&''6'6'67'6w8 &?8 &+Q # $ ' " "( + ./ #C EÍU  U      5       +tÿéóÉ +/373#3#535#5#35#3353353#3##5#535#735#35#yv##v!!A  ]k,5577,DDDDÉ22#/F  * & nÿéòÊ#D73#3#5##5##535#3#73#3#73#3#3#"''3255##5##5##537#wu39&%8/8A%%A&&N‚;>  ,3Ê (;;( * :  $8888=N lÿèóÏ&*04:@FLR73#3#3#3#535#535#535#535#'235#&'35#'6&''&'''67&'å 771100781144557&!!/    ; 0Ï >    >  f     `  ÿéôs73533#&'#5'67#bcS$7 ;%$9 8"R]*2YX.' ÿò€Ä!%7'75#535#53#3#6'35#33535#335}3>/**+h*))E+B+ tt P wÿéôÍ73'67#&''6§D-O4  !Í R;8e   .{ÿéóÅ#7#3#327#"&'#67'535'#ê'-+ % I&!ÅI#$)-.B Ò%%\%%kÿèòÏ)73#3533#"''3255##5##5'67#536¡FK .    !&Ï##U  @uu\O )(sÿìî¾73#3#5##5'67#35#{s6 H1 !()11¾#"y ` ,<£LzÿêòÇ733#"&55#'667#5##535#Ú & U999Ç;  0$  +lqqO=pÿéñÍ 73#535333&'#«F&@T(—#Y#=@rÿéóÏ27#53&'73#67&'7&'3267#"&55'67#'6 &3-:    %  Ÿ  ) $ S" UOAoÿêõÏ $(,737#"''3255'67#5353635#35#35# / "3 .!J  999999Ï]  @  %# s 2<:ÿéðÄ73#735##5##535#†cc;;VIIIÄT.\klI6yÿéøÑ!%73#67&'#67'53&'3535¨ -/8 ) EEEÑg  DK  Á **tÿçðÆ 73#735#35#35#'67&'~kkCCCCCCBÆ£rOL4 ÿçôÐ F7'2&'7'6'&'67'7'3#&''67#5367'67'6767å *;13  DL! 1+   (-. Ð       $    |ÿéôÐ59=AEI73673#33##&'#5##5'67#535#535#535#53&'5#3533535335œ  !&      ,  ,  Ï   %$6JJ)  <%dÿèôÐ+/37;?EK7#35#53533533#3#3#535#'6553&'75#35#33535#335'67&'òp/)c(1  8(?(7  8¿1  MM C1 5<[ C<-"   nÿêôÊ%7673#3267#"&'#67'7&'nB/,+ .! @» %1,!3@Z  {#;bÿéõÑ 7;?CG7&'67&'67&'63#3#&'#5'67#535#735#33535#335‚   6  3  ^{6>0  .922"T2"Ñ      -O   3/ /1dÿéðÐ K73&'73#&''67&'763353#3#"''3255#67'7''67##537#d;;Œ[    KU4A  4 51½      22B J  5   QbfÿéòÐ19=73673#3#3#3673#53&'735#535#535#53&'#5##535#   611::  Œ 99337iOOOÐ     œC C(ZÿéõË 4873#735#3353353#3#67&'#67'5'67#735#p{{"l„„v. 1    PPË:6 3    -     ÿøpÐ 73#55375#535#'673#3#7XB''   6 &&PV XET/ $ /Q cÿéòÏ#CGKO733533##5##5#533#735#73#735#3&'73#3#3#3##5'65#5#35#!!!!99399A,0,,,,1e 4"""""Ï  #.."   L   kÿéõÏ&.273533#3#535#3#735#3673#53&'#5##535#o7880t17 nnJJ  !ŠeKKKà   *1$  (= =!gÿçòÏ#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'s!;0r/9 ,0N0@ !D ¹]]_;+    iÿîõÐ#'+17GMS73533#3#&''275#535#35#33535#335&'#6&''33265#"&57&'''6r333- /7..3-G-     U  [  ÀI I- ) '   (   ( aÿéöÏ#'+17=C7'673&'73#3#3#3##75#5#5#&'''67&''&'{  ))$$$$+`6#####S  \  V t).   e%% nÿéóÉ +/373#3#535#5#35#3353353#3##5#535#735#35#r}#"z"$H!!ao/9999-HHHHÉ22#1D* ( kÿéóÌ !6<73#535#535#3#735#'3#67'75#3533##"''3255#&'upp]VV]===U; !]   ]!  ÌK  @95     cÿèòÎ(.4<U7367&''667367&''66''6''6#5##53733#"''32765#'67#Š   =    > |[ !7   % 2 * Î     !'    ! A((/<:,hÿèóÐ`f73673#3#3#535#535#53&'3&'33#67327#"''67&'#7#"''3255'75#535'67&'•3--6€7**1"(&       NÐ       _    %      gÿéòÏ<@DHL733533##5##5#533#3#"''3255#7&'7''275##535#735#33535#335‰ ## ""w3=  *  $&811 Q1 Ï #N D  /  J[ .,iÿéïÏT73533533#3#5##535#35#3#'67#53#67&'##"''32654''67''67&k#Y/##JJ  &A      !& ¾,,-)           dÿéòÃ!&+/733##3#5##5'67#5367#5347#3353535#uoKYA ,/!3*,1?AAÃ+, X D    , €*`ÿìõÐ?EK73673#3#&'#3#"''3267#3267#"&55'67#5367#7&'7'6o,:>O  - N   *') $&  \ ¦  *8H  7   eÿìùÏ)37;?C73673#&'#3267#"&55##5'67#3533&'#35#33535#335q&B% *     +C+²  M   W ):@ ÿçóT%73&'73#67&'67'5'67#[h`   #P   9 SF  :   #  Iÿí’Æ73#3#"''3267#735#OC-0  2 ,/ÆK(E!,M%fÿéôÏ%736533#'67#7&'33267#"&5s(AB 2(X     – 9>E)`I Qn !& uÿçöÌ %73533#'67#7&'33267#"&5~!??,' R    •77o,(dJ Qk "& ÿèð—473733#3##'2655##537#3673#3##5#535#53'dil]–M`U04433/~^ Gcu#    ÿéñ—%*0473533673#3#5##5'75327#535#67#35#35#%F< 0Q\'(b\Ft 59x€    Y A @,[ÿêòÉ#6:>BFJ`m73#73##5##53#5##5&'7&'#3#'6553&'75##5#35#3353353673265#"&5'67'533h>>F==$ Q ,)$o 7'!    & É 2$$21##1    #)% $*1        6 _ÿéôÎ!8L7#53533#&'#5'67'6'&'35#53533#3##5#''3'67#&''6“(8:- W  NB""&' /  “** )) H  ƒ((""J .0 8  KÿéôÏ!8O7&'#53533#&'#5'67'635#53533#3##5#''3'67#&''6y  !.@C0"" ^ &&+,! " 7  Ï   2** ,+ L  „((""J-18 EÿéôÏ!8N7&'#53533#&'#5'67'635#53533#3##5#''3'67#&''6t  0CE3#$% d ((--!!$ 8  Ï   3** +, J  ƒ''!!I +38  ÿé~Î.26:>73673#&'3#5##535'67#53&'735'235#33535#35#u ,  % '=( #  '0&=&Î!    (g g,  ž=IÿéðÇ*7#53&''67&67#3533#3##5#535#c‰&- ) %(K,6<?3ÿóï 73533#&'73#536!V[Å-  y @܆g  !pÿñóÐ73533#3#536'&'z01uV *ƒF5¨(( H9B?3=>2]ÿéóÏ(,073533#3#3#535#535##"''3255##535#335e9;;44B–A//9}  O 3»M\  1t2""" ÿêŽÂ 73#3##5#'673# __ {52 MÂ&ŒŒ;# 2Uÿêl 73#3##5#'673#JJ [%#:Â&ŒŒ9% !2UlÿéóÏ(,073533#3#3#535#535###53#"''325'#;5#t06600<‡8((0]Dj  +»2t\  G""qÿéóÏ(,073533#3#3#535#535###53#"''325'#;5#v044..:‚5((0\Ci   +»2t\  G""IÿéóÍ473533#3#3#67&'#67'5'67#535#535#X9AA::H=  7  #4D449¶   R7  4 BÿéöÏ&+/@DJ73'67#&'''673&'67#3#3##"''3255#'''6h&&' 3   X6  <# DNN%—?  Cu,*M Ï D"3    !!P, 62  / #$  IÿçðÎ#@73533533#3#535#35#35#335335#5#3'67#&''67##5M('--#‘ (<''!*CF%QJ< %!À6643'3%  )ÿè¥Ï37;?C73533#3#33##5##"''32655#535#535#535#535#35#3353535?@@557 $   99AA9955?""5""$$$  0!*  0 -@!KÿèòÏ37;?C73533#3#33##5##"''32655#535#535#535#535#35#3353535V@DD99;(   >>KK==88@&&9&&(((  2 !*   2 ,?! ÿé¥Ï#'+0EK73533#3#&''275#535#35#33535#335'#63533##"''3255#&'9>>7 4D 559""5$Y""5$eh   h*    LL )* & "      ÿê¢Ç(9?EIM767#533'67##"''3255#'67#53'#"''3255##5&'''63#735#> ]8   ( .4p   fT   CC""³    Df Ohz   -ÿêñÑ"(,7#3#"''32767#53673#"''326'&'3#Ô4Q   N3     ??¥XK "z  E#  s ÿë‰Ï"&*06<B7'673&'73#3#3#3##75#5#5#&''&'''674'!  !!R1I  / ,…"& d%%  ÿì”Æ#7#3#3#"''3267#'667#'655”d^1/  ÆX!BE# 5C"B4 4>]ÿèÎc736533#"''32765#'67#-:R  B:03H  H%3& ÿêzÆ)733'67##"''3255'67#53&'767#a$    )/GÆ  i  F#$,   ÿèˆÏ#'-373533#3#3#535#535#3#735#35#35#'67&'.11++5z2)).iiCCCCCCA      ?aE & %      ÿòÏ 73533#3#67&'7''67#535#/..7B " ,1-9/¬##30 #)  ,3ÿó‚À73#67&'7&''735#35#aN  ' ::::ÀrB   “MCöÐ 7&''6&'3'67#}/: 73.: M(  ;“ vÐ',.&  " +ÿéÚA 7#5##535#Ú‡‡‡AX X9&(ÿé×T 7#5##535#ׇ‡‡TkkI6 TôÇ73#33#537#537#5#Ñs_)ç8 ,2H¡Q Ç5"M"" ÿéôÁ73##"''32655###535# ç&  ­|L88Á« ¦'XfE2WôÎ733#3#&'#5'67#535#53wccVC#3 9%%6/$AWffÎ %$ KÿåôÏ%+735#535#53533#3#3##5##53'67&'OF33;;DD77K¥V6T K yE35GJKÿæñÏ&,735#535#53533#3#3##5##53'66&'\=22::>>66E•‚P0V )$"}  K9;MO! ŸÿèðÏ#737#53673#3#3&'767#'7#Ÿ!&)(   "y' $ÿé×73#735##5##535#5––pp9:K K. JÿçôÐ)6:>DJPV73533533##5#5#3673267#"&5'3#5'75#5373#735#&'''67&''4'R",&&Q"`,<  Z 22G  l \   ¾   J_ ZAA+»-@S>>,$$7&%#c_#z i!W  "6À6621(, )BôÏ(733#7'7537736732667#"&5G'''3> G")  (Ï%6 ][q0  ( !  ÿñò573#3#(­­åå5_ÿñòÏ %7#5##53&'7&'''63#3#535#ðg= # z3@“?3³.1 % /22ÿêîœ &*.73#3##"''3255#53&'#53&'367##535#Y";  ­<$X :S:mEEœ  F  B : 077&`ÿèõÉ'7#3#3#3#67&'#67'5#535å`YYYYn@   7! É   IM  ZlMÿéóÐ 2BSW[73#53&'3#3#3#3#3265#"&5535#5333673#53&'#"''3255##535#35#vLR46443344 556Œ PD  #####Ð   2     wE   0i  *‚$8VÿêîÑ#73#"''3267#'6##535#35#€d  Y K7$$$$Ñ “$~ &"m~.J ÿéYÏ 73&'#''6.   Ï& «µ* UÿéñÐ "@73#5##53&'3'67#''67#3265#"&553#"''325¤:c:"$< 0    h : Ð $% >k(S  !e zE  _ÿéòÑ !%)73&'73#3673#53&'#5##535#35#d:9‰# " #“$nLLLLLº   An n(>cÿ÷óÊ73533533533##5#3#5#5#c@h|hŒ44>>>>JJo‚888aÿèõÏ%73533#3#&''67#53655#'61174$ &* + 04 Ä,, 572 $, oÿèöÏ"73533#3#&''67#535#'6Œ++30 &/25 Ä *** 65/ %03^ÿêôÏ7'2333#"''67#53&'Þ 2H; ++2 =NX/Ï3)  /@HÿèöÏ "(7373#'67#3&''657'6''6\!_a / ) P  "2 A/  C ³_81U7 .,'8! " \ÿéòÆ73#7#5'75#35#35#75#`/6)@@@@@@Æ{=9 Ž!!T!X QÿéîÑ)?S73#"''32765#'63353#'67#5336'673#"''327653353#'67#5336zh  c '.   e  F* '  ÑJ ,  %  % Z I * %  & V„Ð,73533#3#3#3#"''3265#'67#535#535#/,,%%)DB 7 4))/Ä        ÿéój 73&'73#3#3##5##535#amå´´³³µ’’’X  ,, XÿçóÏ048<@DHO735333##3#3#&''67&'7#537#535#5#5;5#33535#33535#33567#g5559FV   2 $&1+95 ""5"W""5"[&&9&* ,Ä  .   .  ' D Q GÿçõÏ048<@DHO735333##3#3#&''67&'67#537#535#5#5;5#33535#33535#33567#Z;::>Pc'  $5 % (3-@;));(c));(h..@+12Ä  /     /  ' C PPÿéöÏ).2CIO73'67#&'&''673&'67#3#3##"''3255#&'''6r### /   S0  7 @HH!Š:   =lH ÏD"3   !!P* 62  /   XÿéðÇ$)733#"&55#'667#53&''67&67#Ñ ,   t "' &% : Ç<  0#  )v'     'ÿèØN 7#5##535#33535#35#Ø‹==P;‹==P;;Nff';UÿíïÏ573673#3#3#3#3#535#'67#5367#5367#53&'‘ $?DJPV73533533##5#5#3673267#"&5'3#5'75#5373#735#&'''67&''4'[(##OZ(7    U //?  _U  ¾    J_ Z==4T4>TTž111pp1}9ZÿèõÏ%73533#3#&''67#53655#'6{44<9& )- . 38 Ä,, 661!#- eÿçõÐ*07#673265#"''67&'#67'53'37&'ñ<  $ ( :  ¦/$ -%+ Gj  Œ*(   Jÿë÷Ï#)/7&'36732767#"&55'67''67&'Ž"0    ~  Ï .W/Wj6$  X6% + ")*!VÿéðÇ*7#53&''67&67#3533#3##5#535#m ~#)% #& D)166AA??1µ!  N))dïÏ#7&'332667#"&57&'''6w     !  ˆÏ @  A  &Hÿè÷Ð 373'73#3#735#3#735#3#&'#5'67#535'6OJE¤ ŠŠddGG''M ;G6& (' %8I4@À  T6 $ 7 0.  RÿéõÏ#U73533533##5##5#3#735#335335#67327#"''67&'#&''6553'33'7\#)"")#‰‰'=     - <  À 9>    #$#  bÿéôÏ#7373#3#3&'767#'67#537#k/?CPTP &. H*.+²    ZÿèöÈ7'6553#&'7#3‡p#& -"IIdP,&TUdJ"YQ>`ÿóóÐ 73&'73#3#536'&'j67‚b0“M9 ¤ G4=?5591PÿçòÐ%+73673#3&''665&''67#677&'kUWK""  ( "  £+"7"    1M4 !q   rÿéóÇ73#3#3#3##5#535#535#535#wx3//007788....3Ç>>aÿéïÇ73#3#3#3##5#535#535#535#f„83344====33338Ç>>QÿéçÃ%)7#"''3255##5#'65535#33535#735ç   $&$$7$\%$7$ý +CC+$ 3>]=***f* **XÿóõÍ %7&''63#3673#7&'&' "' %#$ 2^^Q +’A    Í $%$#+d-+/"g !ÿéóÎ733#3&''67&'#5367ª//-!  !Î"7'0$!oÿèíÐ73533#"''32765#'667#}!<  ( £-d? hCHE=mÿêóÑ -73&'73#3#735#33##"''3255#53567#r47 llFFr88  ;;S½ 43   `ÿçõÏ.73#'6553&'#3&'36533#&''67#®/e4:RR@"-& &!- * Ï ?@1 1;X #  )'&*hÿèíÏ373#"''32765#'63#3#353#5335#535#'6†[ O 5!$$W'' Ï ›6 |  2$43#2  mÿéóÊ /473#735#35#3#735#33533533&''67&'#367{kkEEEE~~#gu   %  !  ÊE) ' '41    fÿèñÆ!'-39?73#3#3#535#535#735#&'735'6&'''67&''&'ut1008‚7//0/   [  PÆcA   AA ƒ iÿéìÈ#'+/3767#533#"''3255##5##53&'35#33535#335Œ Ys#  %$=$$8%]$$8%±   //8¥ BJ`ÿéôÏ8=737#535#5353373#33##"''3255#53567#'67#767#m#B7,,$$38::   BB2 H i  ( %  5 cÿéõÄ 73#3#33#"&''675#735#xj)// !(   .DDÄS&4+;j/]ÿèñÆ $73#"''32765#'6553'#33#735#‚o  [xRRJ==‡] EB2 4?^?-M> ÿèóa73#3#33#"''675#735#+ªJPP#.(o )Lƒƒa3    * ÿèó^73#3#33#"''675#735#+ªJPP#.(q ) Lƒƒ^2    )bÿìõÐ>DJ73673#3#&'#3#"''3267#3265#"&55'67#5367#7&'7'6q+8<L  * H   )'( %'  [ ¦  *8A  7   jÿïñÍ+73533#3#535#'67&'3533#3#535#|*--7‚7*E F-,,8‡;-µ3    ,   _ÿéóÎ -7'2'6'&''&'#5'67#53533#&á 4K=5 +   H ,59:7$ Î #   jGD"'( ÿèñS73#3#33#"&''675#735#-£GQQ82<. "H~~S.     'WÿêôÑ"&<H73#3#'6553&'5##5#35#3353353673267#"&5'7'533°6)&p;%     ! Ñ =;, 2;X =,3     !!   V]ÿèôÎ0J73533#3#535#3533#3#535#'3533#7'75#3#3267#"&55#'67#p000:ƒ60?II"Ž+   . %$¾5 2! $2 $XÿèóÐ#'@CZ_73#3#&'#5'67#535#53635#35#''67'6767677'7''67'677767'¢?3! !# %2>     n     Ð h !::h0F   &    &"\ÿéñÑ PTX73#53'3#735#73#735#3533533#3#3#67&'7'5'67#535#535#5#35#§=‹9+884::W#!!$<   0   .$S###Ñ#+ ++    ,     zÿëôÆ !.73#735#35#3267#"&5536'33#67'zmmHHHHZ    ^!! Æ_9;= +   _0  ]ÿñðÏ  &7&''63#&'3673#7&'£  (@@  6T  *“$  Ï(''&'  V,+."d!_ÿéòÏ573533#3#3#67&'#67'5'67#535#535#l27722=5  / *:,,2¼   U @ 7"TÿèõÌ&Nf76767'33#"&55#'6653&'#33#3#"''3267#735#5'67&'767#67#53&''67&'¸        +# GA# &   *     -K3G    Ì    # *#94#8          ‰ÿéòÆ!%73#3265#"&55#'67#735#35#35#’T ......Æ/ 46*fBC ÿé‰Ð37;?73#3#3&'73#3#3#3##5'67#5367#'65#5#35#$N-?E  ""Q")4Ð   Y & r"" ÿègÐ"(,048733#"''3255##5#'655'667#35#33535#335/$         + Ð   — *%%)0O  -H ÿé†Ð 73&'73#3#3##5##535# 22ydddda666² V V6# ÿé|Ð 73&'73#3#3##5##535# +/o TTTTS***² V V6#ÿéô† 73#53'3#3##5##535#ƒiægD©©©©§|||†  )  8 8 lÿèïÏ,73'67#&''6'673'67#&©7YO1    $ +3_W-  Ï =/   G9 jÿéôÏ1767&'7&''6'673#3#&''67#5367 *0 K(73& & 0 . .2Ï" " M  $ _ÿîóÐ"&*06FLR73533#3#''275#535#35#33535#335&'#6&''33267#"&57&'''6h8880 3;1181N1    X a  ÀI I- ) '   (  +  YÿèôÑ N73#53&'3#735##5##5#53##67#&'#"''32655'67''67&''6§?Š8.vvPPum/b4       ",2"' & Ñ )( "(          ZÿêõÎ _ci7&''67&''63&533#673265#"''67&'#3#3#3#67'75#535#535#535#75#7&'o   /   ?d"!   $,) ]Î    ( &F!+! ,)  jhG ÿéOÎ 73#53&'3#3##5##535#/C44445Î >TU5%PÿçöÇ+73265#"&547#'65567''67&'ÙI$    ÇG8( .$:/>f62 )3x., #2 "!! ÿêwÐ &73673#3##5#'67#535#5#'&'6  >  ¢7ZZ>2777(w ÿíƒÏ'+/3773##67'5#5'67#5363533&'#35#33535#335?3 $ % #  %7%Ï V *O G79ÿè†Ê/377#'6553#"''32=#35#'6553#"''32=#356  3  @  3  D1+ -3wË ''**<3) -3wË ''** ÿéwÐ#(-73#3533##5#5367#53635#335367#335;,,: %9%Ð b33 b6B uÿéòÏ"(.4:73#3#3#"''3267#5363535&''&'''674'8Q``` ` >>> *(ÏL? -‡ ^ ÿérÇ 7#5##5##535#33535#335r'<'ÇŸSS£>,,,g*** ÿêvÏ'73533#3#&''67#53655#'6 $' # *. Á ,,  (#- $ÿéqÉ 73#735##"''3255##535#35#UU//F   77777É>>w  1';ÿêxÏ1733#3#5##535#53#"''3255'7567#536;&&*F+&&8  (, )= Ï''}%   ÿêzÏ"(.4:73#3#3#"''267#5363535&'#&'''674'9*FKKN N 333   $ !Ï K A+† ^zÿéòÐ5;7''6767&'&'''63&''67&''667#Õ (-  +  2    &Ä # 1   %      tÿê÷Ð#'-37&'#3##"''3255#535#5'63'&'''6« ** ** $;! 1  9Ð) H E !)] !  ÿé|Ï*.273673#3#"''3267##5'67#735#53&'35#35*  (.   !"& 4$Í  >:Q7 AI-ÿëxÉ#'73533533#3#535#35##5##535#35#j%911111®""""Am q(> ÿèŠÎ +873#53&'#5'6'673''67&767#&'U+u5 "  )      Î  .…\&5#5;    %  zÿèòÏ%+73533533#3#535#35#35#35#&'''6})u%))))))+  !±llAB2   ÿêÑ6:>BFJ73673#33##&'#5##5'67#535#535#535#53&'5#35335353351 $   * + Ï   #%  1OO/! 5$yÿéòÇ!%+17=7#3#3#3#"''3267#55#5#35&'#&'''67&'î&!!!!*  \2  )"ÇO7‚&&.  ÿê{Ï#)/73533#33#53535#35#35#35#35#&'''6+))# n #+55555555* Ávv.,++"     ÿç‚Í&,28>D7'67#5'675#5367&'3#5'675#&'7&''6'67'6J  #4 4  "*J  !! & (' 8 :c  !V {X     Y    0  ÿéÉ +/373#3#535#5#35#3353353#3##5#535#735#35# t# o!?    Vd(//22)>>>>É22#/F* &  ÿè€Ï37;?C73533533##5##5#3#3#3#3##5#535#535#535#5##5#35#335g  -//11,  J ½$$) ÿéƒÉ'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335k, .0022/ -,E,<#ÉN##.,\ ÿé†Ð-159=AEK735333##3#3&''67'7#537#535#5#5;5#33535#33535#33567#)( (-99  $!   -) )?)C- +à  ,   ,  ( ES ÿè‡Ó4<@DHLPT73#33##3#"''3255##5##535#535#'6553&'5#35#5353535#33535#335V((!!# " ' 5 '' 10"3"Ó   T  "i  C3 5<\+ (   E+ÿëwÎ!%)/5;A73&'73#3#3#3##5'65#5#5#&''&'''674'#K.D ,  *Ì [ %%   ÿêŠÏCGK735333##35#53353#5##535##5#3#5#'6753353#35#535#535#33535,. .!  !     --88,< < &„)'4 BB4' =!' <  ÿç~Ï#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'/*f)0')@)7 6 ¸\\`=+   ÿé‡Î"&7;?73#&'#5'67#5367'23'#35##"''3255##53#735#o ? E  "*4 ##D  E22Î  &  ? %*M 8Qa*  ÿéÐ-26:@F73673#7'##"''3255#5'67&'77#&'35#35#'67&')3#       "W ,,,,   M  ·    @0 -5 & 1)     ÿéƒÐ,1<BFJP73&'73673#3#3##"''3255#535#5365#5#35#"&55#733567#35#&'    #  LLF 'A F  :F  FF  ²  ]   ]  5 $  @ ;  ÿé€È26:>BF73#3#"''3265&''75#53533#7&'767#'67#735#33533535#35#hEP   #"  I     $!È>l& // M €ÿæõk!%)/5;73#3#3#"''3267#&'7#5335#35'67&''&'yS˜µµª   . xE2………›  _k1   W;      ÿéfÐ!%)/5;73#3#3#"''327&'77#5363535'67&'#4'*&9<BFJ`m73#'3##5##5##5##5&''&'#3#'6553&'75##5#35#33533536732765#"&5'67'533O66<66qY 3 b#`  1      É 1$$11$$1    $(' #+1        6 ÿótÏ73533#3#5##535#35#*((+*++¢---a o-r4 ÿóxÏ7#535#53533#3#=#($++,,#3 o,//,a 33ÿéår!'+73#"''3265#3#"''3267#536&'3#kS  p     2 N––r   !/ ?  7ÿèâ!'+7#3#"''3267#53673#"''326'&'3#µk˜   ˜+R   >  P——\*5 H # 9ÿë€Ï ;7'2'6'&''&'3#3#6753#5'5375#535#'6u ,?4,  !    G$,, '33 Ï   .A 6*2  tÿéõÑ  -:7&''63#3#735#73#735#&''67&''6¬  '3322-229   D  Ñ!";;/   %    ÿçïÒ#'4J7#3#'6553&'75##5#35#33533533#67'73267#"&5536ïC:·Z-,,,>-(˜99!(£ %  %  à *C< 3@]   /   #  ÿéƒÑ"&3@73#3#'6553&'5##5#35#33533567'53367'533O*Y,      = Ñ A90 0=Y 81!!!!!c  T  U„ÿèôÎ%+73533533#3#535#35#35#35#'67&' $ k $$$$$$ 9 °nnCD0 ˆÿóóÏ7&'3#3#3#535#535#·  b'##+k,##'Ï &:::: ÿé†Ï#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'3+i+3)+C+6 6 ¹\\^<+    ÿê}Í%J73#&'&''675'67#535'2367&'#"''3255'67&'767i +$   "  ",)      Í      m%        ÿêŽÍ%I73#&'&''675'67#535'2367&'#"''3255'67&'77z 4*   $ %50     Í      m&        ~êÑ7#5##53&'73&'7367ê®) &   °. 2    ÿéòr'-39?73#3#3#535#535#73&'735#336735'67&''&''&''¯LTThähUUO  ;O ˜  ¹  , (r4       Z       |ÿèóÏ#)/73533#33#53535#5#3535#5#&'''6‚+//& w"+Q55555551 &½vv.++   qÿéöÏ "?73#5##53&'3'67&''667#7#3265#"&553#"''325µ1R12    H  0 Ï $% > j("  g  |F  ÿéòi$-39?73#3#3#'67#535#535#73&'735#336735&'7&''&''¯LTTh¿  hUUO  ;O Z  'i2       T      zÿêôÈ!%)-1597#3#3267##"&55#535#55#37355#355#5#735ë"##  $$"= ;<=>È7b  c7ο·¿3) ÿêuÆ #)7#5##53#735#35#3#53&''67&'t?SS....%d+ 6 Æ&S03' )   ÿéøX!%)-173#3#3267#"&55##535#735#35#33535#335'¥HUU#' 0/?QJ??RC•??RCX4   = 1 ÿéõÍ73#&''67&'#53&'667#¹,   //ÍD**FŽ1%7zÿëõÏ#)73&''67&''667#&'&'¡2  !    &) &Ï(     \  xÿéðÏ)=Q73#"''3265#'63353#'6677#5336'673#"''32653353#'67#5336‘P   F  $       F 7 !  ÏL2  !    V   L1 "  ^öÐ?PTX73&'73#3#53'#367#733#3#3#3#3#3267#"&5535##"''3255##535#35#*-r(#PTTMNJJJJFF# ,& NM ;;;;;Ä        <1 ?ÿëö|>OSW73&'73#3#53'#37#733#3#3#3#3#3267#"&5535##"''3255##535#35#*+r(%QUUMNKKKKGG$ -' NM ;;;;;p !      NB  S  ÿêóÐ7'673#&'#5'67#53¶-&!&      %± +8-lg$ 4 ÿéÑ $(,EIMQ7&'#5'6&'3#735#73#735#'3#735##"''3255##5##5##535#335335G$ E ,8 ### G$$ 6## C  "Ñ   0  0  0 1I """"*\#ÿï}Ï!%73533533#3#535#35###535#35#o'8E3333°  @ao(?RÿèóÏ48<73533#33##3#33#"&''675#535#535#535#3535e8@@4466++  0088008K"""¾$#' =#$­äÏ 73353353#FGÆÉ »ÿé÷Ï73533#&''67#7&'»  / @@T/&BA( 9Q= ÿèód#73533533#3#535#35#'67&'#(E((<æ>(@??C4(  ‡ðÒ 737#'733#737#™sw6â9ll— '!& ÿçð+73533533##5#'67#??;;B 6)9 %%!oñÏ733#537#'77#Ku:â“p iÏ. cðÏ7#'733#53'37«np9à’J d ‰688bðÉ 735#533#535#2€‰*ࢀŸT‡ðÉ 733#535#535#)*ࣂ‚ŠÉ2  ,wƒ !7&'7'63533#&'#5'67##  Q O**!    ƒ     |'ñ„ 7&'''63#"''3267#'67#Ê   N   „   $ 3ÿé²Ñ7'6#5'6Ž >;0GÑ ) se #…ÿéíÃ73#"''32765#'665#•X  è0+v_I GZ^ïÏ73533#3#535#feeWÀUf¯ ++`ðÏ73&'73#3#5#fc°ž³³  .AjðÏ73&'73#3#5#gc°ž³·  (;_ÿêõÏ73&''67#'6=%"  N- !Ï17!/ 8b+YÿèóÄ73#3#"''32767#'655#gŒTK6/2$Ä0r$ LQ5 9T/ 3ôÏ73533#&'#5'67#bbL 4 9&#:5 L¬##,8de6)QÿêóÈ733#"&55#'665#5##535#Ï! 5mQQQÈ<  0%  ,mqqO=]ìÄ73#3#5'67#35#ÓyŒ 0>EffÄ <&%C}òÐ"73#3533#3##5#535#'67#536¦=B ''0033.  Ð ##''ŠÿéôÆ73#7#5'75#35#35#75#f #!$$$$$$Æ€83 R X Cÿé‹Ä73#3#"''3267#735#I=)2  3(*ÄJ(H!.L& ÿçõd#73&'7&'#"''3267#'67#5'6V l 9  : M D '4b% *3  $ IÿéõÊ73#3#535635#'67&'×0=r"*§C/<<ZÊ !8{8P eóÏ7&'3673#&''67#´”^g]"@I# 4) BTÏ    ) ÿêóÏ736533#&''67#7&'£  @  Š''R+$, ,TI ÿêEÏ"7#"''32655'67&''67&'76        Ï +>'((  —ÿçõÐ$*733#5367#'635#35#35#'67&'¸#H  $$$$$$ 2  Ð || H98(  ÿé‘É*:IYg73#3&'7#"''3255##5##5"'6735#''7'76'&''7'7''7'76'''67'7y5"        4Y  .   5  .   É Š …™™ž    6     1      xÿéõÉ'6ETf73#3&'7#"''3255##5##5'6735#''67'7'&''7'7''67'7'&''67&'7€n/     0Q  ( 0  (É  Ž  „™™ž¢   6    1     ŒÿçôÏ73265#"'&''7&'37&'ñ3  !  ‘ ;'#O!)(? ;ÿêžÏ73533#"''32765#'667#O&    ¢--Ž*(\HJAE ÿèàÇ 7'66553'#39 »““€D5 1$_G4! ÿèëË 7'6553'#3/Ш¨¥>B= 2@d& }âÏ 73353#533vDÄDÏ?/BB/ÿêåi7#53#"''3267#'6]FÎ ^)$ @WZ"D12 ÿéçu73653#"''3267#'67#Vc O4' IR[  M%2"28 gôÐ7.''667&'f!E( #%$E &) ÐA# 1 HÿéôÅ73#3##5#'67#5365#5#b‹ '')3 -&(W&ÅLjjI!<:LL; ÿé‰Ï&733533#3#53'67&73#5537 ((-}-   \J¼:MQ !'  7t o[  ÿéîÏ373673#'67#7&'32767#"&55'67536PwzG ?Mš  *&  $  $b?6YB O/&  TC jÿèõÏ#'-373533#3#535#735#3353#735#35#35#&'''6v022<Š;0/`ssKKKKKK3 Ä ,   E_C & &    ]ÿçöÑBFJP7#35#535333##67&'#"''3255'675#535#'6553&'73535&'óo+!!) $     !!+;G ¾3 "$   #(    B3 3>\ 2#+  lÿéóÏ37;?C73533533##5##5#3#3#3#3##5#535#535#535#5##5#35#335l++{6::771 [(½ ( óÐ$=AEK73533#3#535#3'67#3#3#535#3#3##"''3255#535#3#735#&'_bbX½S_Þ ÉžDXÄZHæ   LLµQQ22a  È     *  ‰ÿéæÐ 7#53&+k‚çK ÿéóÆ73#735#3#3#"''3267#7#*¦¦~~1æ¢ ’/ÆED 8 3@óÏ/73673&'73#673267#"&''675#'67#BH $Y #  !$ 3 .<± (  0:$#*GÿêøÐ NRV73&'73#'67&'3533533#3#3#67&'#67'5'67#535#535#5#35#UCC›9 " D U#'##';  4   $4(#\'''À       ; '  '  UôÐ73673#&'#'67#SoF1 8< 0Fµ  (50#fðÉ 733#535#535#)*ࢀ€‰ÉP \õÏ73673#&'#'67#U mE2 8 < 3G¶ "0.! ÿçôA73673#&'#'67# dlZB KP @X/  &'   †õÑ73673#&'#'67#H {3 + >* 0à  aÿéëË $7#"''3255#535#5#'##535#35#ë --ËÉ  qR#1AQà"1 ÿòjÁ73#3#7'6353675#O)1$Á;N |  ÿìÑ/37;?73#3#53&'#53&'37#3#3#67'675#535#735#33535#335G,s*'e*))26**))@)Ñ   4 %N   .-uÿê÷Ð :>DS7'6655633#3'67#733267##"&55'655375#'6733267#"&5æ '4 <%       Ð /E; 6G<      2' '.E'H6+4   GõÎ 7&''6,? B)$F RÎ A>=&–òÏ73533#3#535# SXXläeS   lðÐ"73533#3#&''67#535#&'7#6$QVVi4GP=cQŒD .   + uÿéóÇ %+73#735#3353353#''67&'&'''6|qq.H   +ÇJ*****@Žˆ   -  % ÿêvÎ73#&''667&'767#53&'B &  !  A(Î0#($ "zÿéòÏ73655#535333#&''67#75#€%- 1"  !#Q])**H3"36 $06)  ÿé€Å733265#"&547#3##5#535#X ÅD5! /!9,:InnI ÿéyÂ$73533##"''3255#'67#75#7&' J &K&  e]]R O;. 1.KK? ÿêvÌ"7'2333"&&#"'67667#53&'l '9/!    F(Ì8# ,ÿè}Ð(767&'7''63533533##5#'655#2 %) Ð+  T####QQ0 & ÿésÅ73#735#3#3#"''3267#7#SS++f; >   A ÅD E!7 3 ÿómÏ73533#3#5##535#35# )%%, ),,¢--.a o.s3 fôÐ"73#&'#'67#535367367#335Ï4& /3< &6GH+BAÁ      ÿçñ…#)/5;73#3#3#"''3267#5363535'67&''&'7&'b\³³««4#|||– „  B ?…7(cC    ìÑ73&'73673#5##53&'9 *    &µ' Ï   &' zÿèòÍ 7#5##53&'7&'''6ìF* ¯=*+> 3\).\V5 =ÿîqÏ 7#5##53&'7&'#'6q=%   ¯:)*; ,@L O>U1 8 ÿévÏ73533#3#535##5##535# *++&]#*^...­""$$Occ@- ÿé‚Í73533#3#535##5##535# .22(a$.h555­ ##Oba?-ÿé?Ï 7#5'6-ϰ† ,@ÿêµÏ!'-3973#3#3#"''3267#533535&''&'''674'r%@OOP  N... &$ÏI  D/ [ nÇ 7'7&''62%  ‘/Vf93A-;eòÐH7&''3&'33#67327#"'#'67&'#7#"''3255'75#535'6Ç 7<HC    A(* 4799%5Ð            ÿé~Ï$(,7'6553&'73'#3#"''3255##535#35#,(%??  %%%%%$?/ 0;V  8(&m .‚"5 ÿèÎ&5<73#5#3'67&''67#53&'67#73#"'67'7#325Q(G      -  ",   Î %4(! %/' >X  „K ÿé€Ì&73#35#535#53#67'5#'665#567=-  Ì q@  L,( #&i ÿézÐ %)-157&'6'&'67&'6#5##535#33535#35#H     P  ?)?)Ð   Pv y-I ÿé|Ï#/73533#&'#5'675#''67''6+))  +  H  ²RLE!0L   )  ÿç}à '7'6553'#33353353#353#5#5335#' hDD=  >ˆ(D5 7=^;+�#39(D 9(9^ÿéîÆ '7'6553'#33353353#353#5#5335#‚~ZZP'T&Š(E4 6>_<+%)88):6(D ;)6`ÿéôÇ *7#'66553533#3#535#3533#3#535#ój $$+c&$%%-p1$ÇSD6 1$_0P## ÿéð)7#3#3#535#535#'65533#3#535#53îREEO¯KAAVhDDT¹PAA<3& (-F\ YÿèóÏ6:>75#535#535#535#53533#33##3#33#"&''673535y //66..88==2244()  ? : ;$# v$fÿéòÐ'7&''6767&'3533533##5#'67#Ñ .3 S"#) ´ ,* ]))))RR;,ÿçßÎ 73353353#5#CB­˜ŒÂÂŽ³ ÿéóÉ 87'6553'#3773276767#"&55'75'75'6.pII !(* )B6#& (+F5 5@`:)  ÿëñÐ"736533#32667#"&55#'67#PoM  (,. QO¡† $  ŒAJ*f ÿêòÏ!73533#32667#"&55#'655#6)& :4#Ÿ00‡ ! Ž+J. *A+ÿéîO733##"''3255#53&'ª00   ——d O'  #  ÿéîa733##"''3255#53&'ª00   ——d a4  0  ÿéîÏ73533##"''32655#&'’88 ’7¢--‰ „ % $!ÿèðÌ 15;73#535#535#3#7'75#73#3##"''3255#535#735#&''ªª˜’’˜]$',6+&ke))  ¤¤4>>Q ÌJ  C6  M   ÿéó>733###'3255#53567#4—!df   mmm>    >ì¤ 7#5##53&'7ì°` A..A ÿèPÏ73''677&'67#53667#(    Ï,U)  #' 8& ÿéóÑ-1573673#3#3#535#'67##"''3255##535#35#ž-36!U"  Q   %%%%%À   Kd  ){!1¤ÿéóÏ 7373#&''67&'67#67#¬'    ! Ÿ0Q   &)_B)! æÌ 73#735#'3#735#‰]]77[[55Ì//ÿéáa 7#5##535#3#735#á__<3 2;YZ+#"XÿëóÏ (7&''6#3267#"&553#"''326£ # !!) 356*  4 \   Ï .0),BW m6 _ñÏ'737533#7'773673267#"&5'$$"2>i! !(   #¾HW%[$    kÿèñÏ"73&'73#3#"''3255##5##535#k=483  2;¯  _  H‚‚k} ”ÿéïÏ733#5##5##5335#35#35#35#¹$%$$$Ï,„EE†2 QQÿæïÇ$*CI7#5##5##5##53'65'3'65&'7&'373#&''67&'7#367ê"dK"!  W z/Z    4 & &<" Ç^NL\^NL\'' ''+ #  "     SÿèôÐ"&.26733#5367#'635#33535#3353##5##535#35#†= *…F:  $''7'^''7'}œœ‹RRRRRÐBB 8 $ % R R ' GÿéðÑ I73#53'3#735##5##5#53#67&'#"''32654''67''67&''6£B—B0zzTT{t9!j3    '26)* )! Ñ )( "(            XÿçñÏ /37;A7#5##53&'73#673#&'7#'67#5'675#35#35#35#7'6îl>9`' &?!)   %&WWWWWW ½)*   `    R F ' & h ]ÿèô 73#3##"''3255#&'''6xhh „9  6j  EÂ&t  p%* *% 5"QÿèõÐ48<@DH73673#33##&'#5##5'67#535#535#535#53'5#3533535335ƒ   (0'   ",,"",)8;Ð   %%8II58'ÿê{Ñ 1573#5##53&'3533#3#3#3#5##535#535#535#35#H(F.#&&##''"3#++###33Ñ ##6    SS   |$ÿîð`73#3#3#53'#735#67#ÌÌ ±;à=‹‹gO` 0 4 ÿîð^73#3#3#53&'#735#367#àà¶">Þ>!’’,9J^ 1 4 kÿèôÈ:AIMQ73#3#'67#'737#'67#'737#53#3#3325#"&5'37'#5##535#35#q8 ] ;  9 QJJJJJÈ'   M      _ _!1 fÿèöÐ,04:@DHLRX75#53533533#3#"''3267##5#3#5'67#77353355##655#35#35#35#'67&'”$$$$-  cm   1$ IIIIII  >¬  *    [U ) &  F % #     aÿèðÏ2LPTX\733#3'67#673267#"&55'675#'65533#3##'667#'67#537#735#33535#335Ÿ55@ .    +[$+  '  $)%#7#Ï    I]ÿêöÏ;JP733#3#53533#673265#"''67&'#'6553533&'73#67'675#'6¨**7ƒH"   >O  d4)   Ï##""%/  05," "*>   < : iÿòóÃ#'+/3735#535#53#3#3#73#735#73#735#3#735#73#735#i:778ƒ9::>Š** C++ `** C++ QKKQ´3  3 R4  4 xÿòòÇ 7#3#53#735#ñdez(CCǯÕ<^:qÿíóÐ #73353#5333#32767#"&5535#¢ w1t\ " ./]`Ð:.A@-$@+@lÿéïÐ473533533##5##5##5##53733#"''32765#'67#lƒZ'3")&$·10=F )5+]ÿèöÑ48<73&'73#3#53&'#367#3#32767#"&55#'67#735#35#n54&Ž$1)+s  2 ( MMMM½    (R" (1 #00 `ÿéôÐ $(048733#5'6367#35#33535#3353##5##535#35#9#| 82##5"W##5"pLLLLLÐE=# % & P P ' ‘ÿèõÈ#'735#53#3#7&'7''675#735#35#335™!G!! "(!##!tCCN! #p!€,,, ÿéÏ $*07&''63#3##"''3255#535#&'''6A % E''   //C  3 Ï   J  G<   ÿé…Ñ L73&'73#&''67&'763353#3#"''3255#67&'7''67##5367#00vJ    @G-8  + ,)½      11CI  2  PblíÒ!%)73&'73#3#3#3#5'65#5#5#<;PUNNNN[¿ S@@@@@Ñ  5    |ÿé÷Ð 7&''6&'3'67#°  $#a   LÐ,**+/ !*pÿéòÏ-73673#3#'67#535#73#3##5#535#536u Y ¥7:' "37<7__7{ÿéòÏ-73673#3#'67#535#73#3##5#535#536€  P ¥7;& #27<7__7~ÿóõÆ7#53##5'67&'3#´0l' 6Err´ ŠY%,%#/,+ƒšÿêóÏ73533##"''3255#&'š1  1 ›44ƒ   rÿéêÐ733#5#535#535#5367#'6›7 %__YY\5 ( Ð Š $$zÿõòÇ 7#53##5'67&'3#¯/n*7Bss´‹Z%'*".+*vÿêòÐ2973#53'3673#53&'3673#&''67'67#367¶/s0  |#E  ' ")0 Ð ( P       bëÏ573#"''3265#'67#'6'3#&'#5'67#535'2›A ) # # &$   &.!*Ï B'*    pëÏ773#"''3265#'67#'6'3#&'#5'67#535#'2žA  &  % &!  %.*Ï8 &       vëÏ873#"''3265#'67#'6'3#&'#5'67#535#'2—J  & ! ! &&  &1,Ï1 "        rÿòóÃ#'+/3735#535#53#3#3#73#735#73#735#3#735#73#735#r5335|566:(( ?(( [(( ?(( RKKR´3  3 R4  4  jòÐ,DJ73533#3#3#3#"''3265#'67#535#535#73#&''67&''667#-..'',>=  4   2((-ŒB    +Ç             xñÑ273'67#&''67#3267#"&553#"''325?3PE,  ¢2(% X Ñ +    2  ZóÑ ',:>BFJ73#'673#&''67&''6673733#3#7#77##7#37#3372OZzE      ·X fZ!Ñ            ÿñ|¾*73#67&''67'675&''675#`&   +6  (¾n,5  0  5A f ÿêyÏ!&+17'6733#7'5#'67#5367367#335&'1  ,  # / -& «  JA   O>2J R&B  ÿèÑ 5I7'6'6'&'&'&''67'67676767&'3733#&''67#q #HD  !  V (,   G-/3   'Ñ       ?    '2    ÿèƒÍ#'-3973673267#"'"&53#735#35#35#'33#'67&'% '(! /GG######.Wi#  6 Í   aF & ( 3 2;YZ+#" ÿì„Ï'+/39?EK73#33533533533#3#535#535'635#35#35#&'''67&''4'$KQ    p       F  B Ï  &&&&&&&** p*****B  ÿè€Ê %+73#735#3353353#735#35#35#&'''6pp  Vdd<<<<<<3 $  ÊB =jK++!   fíÑ%8K73#35#535#535#533#5##535673767&''67&'&''67&'764$$–!!!!$6¶ $     .    ¤  B!!>  (      ŸðÓ73#3#5#53&'h¶›®cÓsÿêôÎ_e73&'73673#3#3#535#535#3'33#73265#"''67&'#7#"''3255'75#535'67&'v"1**4{4**3/ %$       !H  ¶      >   "       O÷Ï=735673#3#35335#533#335#535#535#533#&'#'67#  ))))5-,,.0&&&&(8),_+ *}G   4 +  J   ÿé†Ë %+17QX73#735#35#35#73#735#35#35#&'''67'67&'3673#&''67&'67#67#33+22'   B  #  [!A  & @ "ËbE))EbE))      $      añÏ #>BFJNTZ`flr73#53&'&''67'677677'7''67'67676767''3#3#3#735#'&'7&''&'7&'''67'6ƒN&           s====<<#   œ    œ   £ ˜ Ï #                         ÿè†Ï"(.7373#3533##"''32655#'67#&'''66; !!  - \  8 ­"$,,I D$]   gôÔ173'67#&''67#3267#"&553#"''325>6R H-   ¡2!,$ Y Ô 1$ -  @"  ÿéŒÊ%+DK7#5##53#5##53'6673'66&'7&'3673#&''67&'7#367Hv*  ?  , G a'@  ( 2 ÊXJJXXJJX1% #,1& #   %     |ëÏ733673#5##53&'733#735#u  ,³. :‰‰eeÏ ,, ! kñÍ'9P733#"&55#'6653#53#3#3#''#3'6677#535#'667#53&''67&'Ö $ YCjl50  ! $ \ BW    Í    MZ   7?       OÿçóÐ-73673#3#'67#535#73#3##5#535#536X  !!!r&& ¤8<% $18<8__8EÿèñÏ6:>73533#33##3#33#"&''675#535#535#535#3535W>CC77::.. ::BB99>R%%%¾$#  ' =#$ÿèøÇ!%73#3267#"&55#'67#735#35#35#¢F  %  Ç•/ 2.#jEF;ÿéôÏ:@F73673#3#3#&'#3#'67#53655#5'67#5367#5367#&'#&'G:MQPVm  3GM: 06?* !.#*6 DB#"¾   "  T ; ÿéŸÐ,173#&''67&'767#53&'3353#5#'66735#TA , &  `8@C  @@Ð     kv/ ÿé¡Ñ 157#5##53&'735#53533#3#3#3#5##535#535#35# g;D1**''22==2Q2??1QQ¿"" H L K_ ÿ퇼73#3#"''32765#'667#uB=  )( ¼d! 9Q+@SOïÎ 73#7&'''6'66{>`$ !} ;p BHÎC6 0 ÿèVÏ776553'67'56OÏy EE<5  % • ÿë™Î %733#3#533#"''3265''67&'B))4r*  ! [  Î"` K $  ÿèðR7#53&''677&67#4 ®%#0:*.=#"8&r?"  YÿèîÐ773533533##5##5##5##536733#"''32765#'67#b++Œf *5 %3'·10=  F (& +[ÿêòÏ 4;73#53&'3&'73673#3673#&''67&'67#367¬:‰99% &“/R  , ! &<Ï  L        [ÿéóÐ $(733#3#53533#"''3255##535#35# 33@˜C  TTTTTÐ--$q  /‰&:ŸÿëîÐ 73#5##53635#35#½%+ ++++ÐÂÂZ7‡>"TßÐ 73#3#53635#35#i^¡ª½@1ŽŽ––Ð/ .i ' G ÿéó[ 73533#&''275#735#335&'#"TQ Sp6/TAAU?2E1  -bÿéöÐ97&'3733#6767673265#"&5'675#'67#Ê LZ8  ! $   Ð +44#           xm3 1b[ÿèôÉ$73#735#333#&''67#5367#335“PP,,5b;$ '-- 28/B%ÉG%E2+-"!bÿôòÎ .7'2'6'&''&'3#3#535#535'2ä 4J=9 1    s >>7~3>>8Î    &#!!"nÿéóÏ 4A73#5335#&''67&'763673267#"&5'33#67'œ9v'PP;        A&& Ï ^^M<    G"   U*  RÿèóÑ<@HLPTX73#3&'73673#33##&'#5##5'67#535#'6553&'5##5#35#53533535335®9z'"     =%1Ñ   0@@* 2, 4<[U. ÿêaÃ7#"''3255'67567#53T   *š(6 .-}"   7 - WWWW½   (S  %0 "2/bÿéíÏ'+/7#53&'73675##5#35335#5##535#35#í‹! )**) WWWWW³XX  #1ee#3 ÿíõÏ #73#'6333265##"&5477#·/3 71  & Ï   V   A )ðË!'-39?73#3#3#535#535#735#&'735'6'67&''&'7&'"¼URRfÞdNNS@@!CB" x€ 4‹  ËB    "  "" `        RÿèòË %+17OV73#735#35#35#73#735#35#35#&'''67'67&'373#&''67&'67#67#XBB =DD!!!!!!/   V  ) x- \ - 6 '"U 3ËcG ( ( FcG ( (            {ÿéóÆ73#&'3#5##535'67#35#ƒk) (9# $/99Æ 5ij3(©7‚ÿéôÏ'/373533#3#535#3#735#3673#53&'#5##535#„.//(d).aa== rZ>>>à   *1$ (= =! ÿé~Ï'/373533#3#535#3#735#3673#53&'#5##535#.//(d).aa== rZ>>>à   *1$ (= =!OÿìôÎ+05;733#3267#"&55#'67##5367#'6367#335&'†9 .-    96 B 0 !%8/  Î I@ F< 1 U  Z%A jÿéõÒ1773'67#&'&''63533##"''32655#&'œB] S7  "!^   ^#  Ò A4  ^8 3 $ÿèò’ !-73#735#35#3267#"&5536'33#7'&²²ŠŠŠŠ§ %+  * %BB<(# ’O/+-   >   RÿéõÏ,08Q73533533533533#3265#"&55##5#'67#5##5##5#"''3255##5##5353R  3XVtŠ   1¶   ** )),7  !HH;M`ÿéðÎ8<@F73533533##5##5#3#3#"''3267#&''67#'67#735#35#33#h"##" qH_   #  '  KKKK3D GA.  + ) F$RÿéðÏ6:>BH735#53533533#3#3#"''3267#&''67#'67#75#35#35#33#g$$&''Ng   '   )  N&UUUUD733533#3#3#3#&'#5'67#535#535#53&'#53367#7'6'&'_J* ,\QQ`G+$ ,2'4 4E]OOX.(FCVt ”   $$$   '%     ;  gÿêõÐ&,2:P7367&''667367&''66''67'6#5##53533#&'#5'67#‰   @    U  B  B]25-" !-Ð    &    8""+86aÿêõÏ(.4<R7367&''667367&''66''67'6#5##53533#&'#5'67#…   B    X  D  Ca480$ #/Ï    &     8""+96`ÿéõÎ17=73#3#35335#533#335#535#535#533#5356&'''6ˆ  ) J0Î  99BUR "“‡¢  (óÑ &AEIMQW]ciou73#53&'&''67'67676767'7''67'6767767''3#3#3#735#'&'7&''&'7&'''67'6€P!           s<<<<=="  ¡  ž¡§˜Ñ  @  %0  % /   ,    _ÿèóÈ"&7#53#3#7'7&''75#53'35#35#35#œ,l-55!  6A=33GG!!4""†BBK!   #K'~'''VÿèõÍ733#&'#67'5#537'6okA4 ? X!ÍZ@!M`  kT *  ÿòõÐ  &7&''63#3673#7&'&'z/< 84,: L'| 9Ía*Ð)..('e,+."i""RÿõòÆ7#53##5'67&'3#žC•;+CZšš´ Šf (%".,*€ 9ôÑ573'67#&''67#3267#"&553#"''326<6* @'  £1 *# Y   Ñ;% I    Nc9  ÿóÐ7676767&'7&''67'67( '/$ +4"lT1 % #5&@>hÿòêµ 735#53#5#535#peh}mmej8ÃAgÿíôÎ "73353#5333#3267#"&5535#Ÿ#~"8za "*  4/agÎ9/A@.#@+A,ÞÈ"&*.2767#533#"''3255##5##53&'35#35#35#35#[“¼$G  @AHAAU@@UAAU@@²  W  l)/ AöÍ(73673#&'#5'67#53&'735'2Ñ %-  /R&7 ;'$: 8"P) &+YÍ'  "+) &_ÿèíÇ 07#"''3255##536735#&'3#3#5#53&'í  i; i  # <6H %ÇÄ  k‹ßC1  5 #4 ’ÿëõÏ &73&'73#67&'7''67'67676•&$\?   %   ± O,$  -+'WÿéøÒ $(:?73#3#3#3#5'673&'5#5#5#3&''67&'#367°4700008†  $)))))~ ',$  Ñ A    0     LÿèôÏ &*.26:NRX^73#5'675#537367;267##"&53#735#33535#3353533533#3#535#35#'67&'..'  % K‰‰));*e));*}#-$$+§+#5-- !#"H  Ï>     A' # ( !   ,óÒ %AEIMQW]ciou73#53&'&''67'6776767'7''67'67676767''3#3#3#735#'&'7&''&'7&'''67'6ƒP"           s<<<<==" ¡  ž¡§˜Ò  @ $/  $ -   +       QÿéïÐ(7&''6767&'3533533##5#'67#É28"$ V'""(2 (´  -+ ]) ))RR:,ÿênÎ73#3#'67#535#535'6e $##%& %&""-Î & 5! *("TÿèõÏ073673#&'#5'67#33&'3#3#"''3267#7#X7J,! U  +C J Q˜d[ \ µ    J0 'VÿèîÐ573533533##5##5##5##536533#"''3265#'67#^!(""(!m $D  12 ,!·10=  H/7*HÿèðÇ *7#'66553533#3#535#3533#3#535#îy )**4v0)*,,3x3*ÇSE5 2$_3L""IÿèóÏ48<73533#33##3#33#"&''675#535#535#535#3535\=DD6699.. 44<<33=P$$$¾$#& =#$EÿéíÐ$(,7&'73#'65535##"''3255##535#35#ž8xdds  BBBBB¹  <=9 .;Z*;i  -‚"2UÿïñÏ!'7&'73#3#535#53635#'6'&'ƒ Y ,.0œ5)I#=  `  Ï  ‹‹´‹/'&''*$PÿéöÏ&9?73673#3#3#&'#'67#537#537#3#3#'67#535#&'a0CGFK` ;  &#-O#-2C7 !!FM((M&&U„„ še] c "É #;;# )  %œÿêôÌ"(7673267#"''67&''7&'37&'ð,       — .#"# 0%?6IÿèöÏ9=A73673#&'#'67#3533#3673#3#5##5'67#535#35#35#]- Q( ! ( '>QO "%28OOOO¶    ] L  W2IÿéòÐ/KOSW[733#3'67#673267#"&55'75#'65533#3##'3267#'67#5367#735#33535#335“AAL =  ' $:k0? 1+ #.),G,Ð    J?. 07TJ=   & !  \ôÐ2EIM73#&''67&''667#'3533533##5##5#3##'3265#'63#735#¡@     &”S  H  77Ð       5 ! &  ÿëÐ?737#535#53533#3673#367#"''3255'67567#'67*@-##  #    m       ÿû‡Ð %7&''63#'767'&'&'L( DDShA    Ð  %Y ++,!N!!€ÿèõÏ"73#&'#'67&''67#6®@   & ¥<.  6?$%" ÿé”Î$(9=A73#&'#5'67#5367'2&'#35##"''3255##53#735#A J %04& ((P   Q 77Î  # A  'M 8Pa+  ÿèÑ2:>73673#3#3#3673#53&'735#535#535#53&'#5##535#/1++55‚ 66--4cEEEÑ        A A& ÿè“É)-15:73#3#3#3#3##5#535#53&'#535#535#735#33533537#5..54==66.9007$< /' 4.0./ÿóóÏ7&'3#3#3#535#535#º  _%""(f+&&'Ï &7<<7ÿÿK¼ 7##55#35K((¼£½J9977 ÿéò„#'+/37#5#3#3#3##5#535#535#535##535#33535#335íOHHKKhhiiKKHHP+99M9†99M9„$ <  < $I ÿîðR 7#55#353#Ô§“€€¯ßßRHH  &E¼ 7#5##55#35E"¼±¸J9966 RÿèôÐ-15;AEIMSY75#53533533#3#"''3267##5#3#5'67#77353355##655#35#35#35#'67&'†++**3   # q{  # 6* WWWWWW! F¬  *   [V ) &  E % $     SÿéòÉ HLPTX7#'6553533533##5##5#3#3#"''3255#67&'7&''675##535#735#33535#335ò{&&a)4 "   -''?'ÉSF4 6?`@C 2FU' % RÿèñÈ#AGKO73#3#5##5##535#3#'3#3#73#3'73#3#3#3##5'65##5#35#d€6C10C8P&&B$$$$B&&>4511119u 9())))È *--* %      I     ÿùjÐ!73533#3#67&'7&''67#535###  #«%%4/ "$ -4UÿêõÐ%+/3733#3267#"&55#'667#5'6367#35#335= +&   7 "1 0  3"Ð M:  @=E  C'''iõÏ 7'67&'&''67&'76Q) %q'% %' /0 ?*"F 8#Ï       Fÿé«Î#'+73533#3#3##5#535#535#35#33535#335Q !! ))++  - ¹_--_7;SÿèôÐ8<@DHLP73533533#3#3#33##"''3255##5#53535#535#535#35#35#35#33535#35#Z$$''+G:   ^7B&$7$$$$$$6(^$$6((ÀF  %%F-P6ÿñïh 7#55#353#Ó¦’~~¯ßßhVV#0XÿêíÈ73#735#373#"''3267#'67#vppJJ$H  7 6 , !ÈQ-^O6H8SÿéìÏ !73#'3'6573#'&'7&'''6Ùe#!2B]ÏæãtD+ (:oÖ¤""%!!"% $ ^ÿéóÆ 73#3#5##535'67#35#7&'h„72O0 -8OO?ÆZjj;(©6_fÿêóÏ/73533#3#5##535#33##"''3255#53567#l399;^73U@@  :: <¹$$:% ! oÿêôÏ/733#3#5##535#533567#533##"''3255#¦007Z60078 :Q ::  8Ï''„ ' #¤ÿôôÏ73533#3#535#¤FˆGGnn]ÿé÷Ñ $(7'667&'&'3'67##53#=#¦#  "% "#  'r VzU²"!    p SR %%ÿéxÐ&,73533#3#"''3255##5'675##535#&'(+++   %(O  ·4 “E$+-?Qh tÿéõÏ,73533#3#"''3255#&'#5'675##535#ƒ*...    "'*¶5  (0!IH$-)>P[ÿêóÏ 2973#53&'3&'73673#&'67#5373#&''67#6­8ƒ73"$Š4 !*P  3 'C*Ï  L  ^  >  žÿèõÏ#5'67#53533#&'5'Õ u)"/>1176 "cÿèõÐ(7673#3655335#535#53#&''67#n $,3* -, + -°  'rr'{-.+&JÿéòÎ%+1773673#3#3#535#535#7&'&'''674''4'^P  '?55D—?559&  n  m ]  ¤:  ¦ ?ÿéòÎ%+1773673#3#3#535#535#7&'&'''674''4'UV )C88H D::=)  p t a  ¤: ¦  ^ÿèôÅ !%)-3973##7#53737337#3#67#3#735#35#35#'67&'ì w1zzTTTTTT  GÅ dG ( (      VÿèôÅ "&*.4:73##7#53737337#3#67#3#735#35#35#'67&'ë |   !4YYYYYY  JÅ  dG ( (      NÿéõÈ  $(;@73#735#35#3#7#5'75#35#35#75#7#53&''67&67#eWWWW(£P!!=G      ÈF* ( &QZ46&)     `ÿéôÐ 57&'7'6'33#5##533#735#3533#&'#5'67#x n  1>i>%]]77,=@4  0Ð    %/0!68  #<="ŠÿéõÑ-1573673#3#3#535#'67##"''3255##535#35#˜07:&\%  U   )))))À   Ka  *{!1QÿèõÐ-39?EK73'67#&'&''63533#&''67#7&'&'''67&''&'x&81    ;   $8    c  YÐ M> 49    +44/')5B  ™  QÿéðÏ $(A73&'73#3#3#3#5'65#5#5#3353#"''3255##5##r"791111=‰ ;(((((;>  ;Í  @    ##8 %""> [ÿòóÃ#'+/3735#535#53#3#3#73#735#73#735#3#735#73#735#[A>>?‘@AAE˜--L--i--L--PLLP´3  3 R4  4 ›ÿéûÆ!%73#3267#"&55#'67#735#35#35#­@     ÆŽ6  :;.dAB ÿéƒÑ?767&'3#3533#"''3255##5##5'67#5367'67&'"   ?F (   # Ê     ;  &YYGC  ÿç™Ñ-NT733#3'67#73267#"&55'75#'655335'673673##"''3255#7&'G::> +  /, 1*.  ,Ñ     F9. .5P… "  *   ÿé’Î17=73#3#35335#533#335#535#535#533#5356&'''6,  ' ˆ C(Î  99BUR !“‡£ ˆòÏ733#3#53533vTThä(,Ï))’ñÏ733#3#53533zZZdã.+Ï $$HîÓ 73#53&'3#735##5##5aÜe?¢¢}}­¸Ó )* %(( ÿç’Ñ!>DJP767'7&''667'7&''6&''67&5'6767'7'6'63'6>   "&3    " !%!  ' %(5 5,#N IÑ          4 ( ÿé‡Ð,048<73&'73#3#53&'#37#3#3#7'75#535#735#33535#335+2z.#&g*..03?3--*,E,½   (J   -, ÿèzÐ"7367&'#"''3265'3'67#C    4/ ÐG  Z ŠH*4 ÿè‰Ð"7367&'#"''3265'3'67#J   5.  ÐE Y ŠH$8IÿêôÐ 873#'6#"''32767#5327667##"&55'753753}gr #w   " 6 Ð  )I GBD  F+% )$^ÿíöÏ 873#'6#"''32767#53325267##"&55'753753‰Zd o   B Ï$F "IEH  L#-(ÿìöÐ 873#'6#"''3265#53327667##"&55'753753«=C O   '   Ð )CJDM  N/)?ÿë•Í73#&'#5'67#535'6Š      %Í( d`",$>ÿïðÍ !'7&'7'63#3#535#35#'6'&'p  hnœ37²=+>J q  Í   ‹‹‹‹1 )'&(*%ÿé•Ð6:>BFJ73673#33##&'#5##5'67#535#535#535#53&'5#35335353355  *# #   !! 14Ï   #% 1OO2 5$”ÿèóÏ+177673&5#"''67&''7''7&537&'å$))     ¢  1$    53  ÿéóÂ73#3#"'#5##535#3255d)$ #);Â"o "’u‡"4` XNÿéñÏ&.26:>73&'73#676767&'7''67'67##5##535#33535#35#NICS  #$$& =D8•a&&:'a&&:''º   %     Zff$6{ÿêôÏ %+17&''63#3##"''3255#535#'67&'±  "4,, -- J Ï%&#D  A8 =ÿçöÐ"&273#3#&'#'67#537#53635#35#3533##5#‰H>U0 )+ &-:2'^^^^"(("ÐT '&T -2n%%BÿéõÏ,08Q73533533533533#3265#"&55##5#'67#5##5##5#"''3255##5##5353B 5b_•   %$7¶  ++ )),8  #II>( !@ ;ÿéÎ7'6'67#c # Î.a  ) x€ÿèõÈ $(735#53#3#27&'7&''75#735#35#335Š' R''  )11'..(tCCN! #p!€,,,—ÿîõÐ %73#'6333265##"&5477#´4: <%    $"Ð  "B   AŠÿèõÉ&7#3#3#3#67&'#7'5#535ë@9999G(  '  É  DM ZlBÿêƒÅ73#3#"''3267#735#H9%+   + "&ÅK)F!-M&5ÿû¢Ð %7&''63#'767'&'&'p $;;FX7   Ð  %Z **+ O!!ŒÿéðÐ"(733#"''3255##5335#35#'&'7'6¶%  4#4444  R  Ð=“  ;ª0Lu    ?ÿèñÌ 37;7'66553'#33533#3673#3#5##5'67#535#5#5#j iiY - ::%8)W:::–/E7 2$`6%#  V EUDÿëôÎ&EK73#&'&''675'67#535'2367&'#"''3255'67'&'Ú !KK* ", ''. 3$ +@KA    " ) Î  s+      GÿéóÏ E733533#537'6'&'3673#3#3#&'#5'67#535#535#53&'‚6 2Z n  ( ##D<ÿèìÈ#CHLP73#3#5##5##535#3#'3#3#'3#3&'73#3#3#3##5'65#5#35#RŽ>J76I=W**I((I**I)) ":;6666?‚ A.0000È *--* %     J     GÿéòË %+17OU73#735#35#35#73#735#35#35#&'''67'67&'373#&''67'67#367PFF""""""AEE!!!!!!2   Y  ) ~3a&  "< -. '<  ËcG ( ( FcG ( (              GÿéôÐ!048VZ`dj733533##5##5#53##535#35#7#"''3255#535#5#3533#3#&'#5'67#535#35#&'735'6l6**6%%#7''''— =,,,,Q300-(   /3 (  Ð  <‚¾ $¬ n< 3  !) 3-   MÿéóÐ!048W[aek733533##5##5#53##535#35#7#"''3255#535#5#3533#3#&'#5'67#535#35#&'735'6t4''4''"4""""   8((((L-..**    *- &  Ð  ;ƒ¾  #¬ o;  2  '  2,!ðÈ!*.7367&'#"''325567#3'67#3#4—  4  wX: 5BÄÄÈ   "9H N 6)S nóÆ73#3#3#535335#ÒaOOiæ-)]Æ&&4€ÿçõÏ+/7367&''66'''665367&''´ $ " 4 &   = Ï   + ,y )4  " S)ÿç‚Ï-17367&''676''367&''676''C  %  " + #  ! Ï  ,,   )TÿêõÐ'-3;Q7367&''667367&''66''67'6#5##53533#&'#5'67#z   I   `  K In<@6&! %4Ð    &     8"#,<8 bÿéòÎ #'<LPTZ7'2'6'&''&'3#735#3353353533##"''3255#'#67'7''535353&'ã 6NA. (    ††'*"   "3  !!!(Î    -3@  <>$ n   ÿèïS73'73#&'#'67#536t/  $X@ HO AQZR  01  )WÖÈ 73#735#35#35#)­­………………ÈqO-,NÿéíÐ$(,7&'73#'65535##"''3255##535#35#¡5q]]m  =====¹  <<: 09Z*;i  -‚"2}ÿéóÏ06<7'6&'#"''3255'67'67676767&''67&'Þ #* %(       "8 Q  Ï QA  ; & 4! 4ÿéóÎ#)-17;Oj733#"''3255##5#'655'667#35#33535#73573#"''3267#'67#3533#3##5#535#'6[   -P    (( Η )$ )1;  .Gp9 !, "A 11 ZÿêóË +27&'7'6'&'3673#&''67&'67#367¥J ]  .Q. ' '<Ë( N &  " ÿëyÅ %*.733##3#5##5'67#537#5365#3353535#X 6@(  !,&((Å+, Z C + })]ëÆ'73#3#3#535#535#73#3#3#535#535#c*&&)f+##'qb)%%)g+##&Æÿè÷[%+73673267#"&''677&'''67&'LA+0I"&  '$ !%  < ±F.%)   H  " oìÈ'73#3#3#535#535#73#3#3#535#535#c)%%(f+##'qc)%%(f+##'ȈÿéóÏ 73533#3#67&'7''67#535#$$$,3 #($,$«$$46 $+ 34ÿìñE73#3#3'73#535#535#Í\TT3  ÝeTT^E ”ÿêõÐ'+73&''67&''667##5##535#°.      1&&&Ð "       W` aA/ÿíðI73#3#3&'73#535#535#Ì\OO()àeOO\I IÿêôÍ17=73#35335#533#335#535#535#533#535673&'''6k, ¤ 6 . ƒ>>MK\ ‰ f ^ÿèòË %+17OU73#735#35#35#73#735#35#35#&'''67'67&'373#&''67'7#67#c??8@@-  O  ( q*V  1 #)!P -ËcG ( ( FcG ( (           ÿêð773#3#3#535#535#&'#ÔaU &ßeTT_›7  *ÿìð;73#3#3&'73#535#535#ÔaVV2 àfTT_;   ÿç{Ï-73673#3#'67#535#73#3##5#535#536  Q ¤8<% #28<8__8kÿêëÅ ,73#735#33535#33533#"''3267#'67#536}kk,E,6: ' - (%(Åa9?.@"*@2 ÿçóH 7#'67#53##¥B7 1Aæ:5? 0KqÿéóÅ2733'67#3#33#"&''6735#53&'767#~h& ,, "  6B  OÅ +3 !C h  ,QÑÒ 73#53635#35#_h¥%~~~~Ò gg 7AÿórÐ 73#5##53635#35#8/88888е »^<‰;+ÿè×q 73#5##53635#35#qW„=.„„„„q s s2B-]ÑÐ 73#53635#35#i\¤4%}}}}Ð ^^ /8ÿïðN735#53#3#3#535##R^Ñ_SSgàeR'-iÑÐ 73#53635#35#g]¤2$ÐTT +1)ÿéÕg 73#5##53635#35#`i†- ††††gg h,9`ÿèõÑ#'373#3#&'#'67#5367#53635#35#3533##5#˜=6K"   +'LLLL& &Ñ U    U -3k''ÿÿSÎ 73#5##5365#5#-Î ¤ ®Q22D33 =ÿêñÐ#'=JPV\b73#3#'6553&'5##5#35#3353353267#"&5536'33#67'&'''67&''&'¦=.+‡J.    a##m \  R   Ð 0 A1 3:Y2 '    1      JÿêòÐ#'>KQW]c73#3#'6553&'5##5#35#3353353265#"&5536'33#67'&'''67&''&'¯8*'{B*  Y  g  U  N  Ð 0 A1 3;Y2 &   1      WÿêòÐ7;?CGKQW]c73265#"&55#3#67'5#'6553&'73#3#6'5##5#35#335335&'''67&''&'ß  # >4'$$ '  P I b   6C @2 2 5B] *" .   *$ L22> RÿéõË 59=AY_73#735#'3#735##367#533#7#5'75#'665535#35#75#73#&''67&''667#«@@Y??|{%"5   -4%    Ë--)%  >J 4( #GR*+ g!      &[ÿéóÍ73673#3#5##5'67#35#g.JOY@  &).@@ s_&/ƒ?oÿéîÈ&*7#"''3255#&''67##5347#53#'35#î  #   #8+d')>>ed  M  %j| NN '*\ÿèòÏ%+177&'3673#3#3#535#535#'67&''4''4'“  D  &5//7ƒ7//5  u  Ï$p  ÿèfÑ73&'73&'#5'67#!    *?±   pc ? ÿéTÑ73&'73&'#5'67#  .° )  f\ @zÿéëÏ 73#5#533533×]š±¢ÄÄnÿõòÆ7#53##5'67&'3#«6{/ $8Mƒƒµ ˆa&+##/,+‚fÿéôÈ 73#735#35#3#3##5#535#wnnGGGG{5====2ÈZ49733ÿéiÐ73#&'#5'67#535'6`    #',Ð&  mj!#/  ÿçôI73#&'#5'67#535'2Ù (0fL". 9'#: 1$PeP]I/+  \ÿçõÑ"@FLR767&'7&''667'7''6'67&'7&''674''6'6'63'6–  +0;  C   ( '*) <+ +-!= =2'X SÑ           2 (‚ÿêóÐ7'673#&'#5'67#53±2* '*$ '.°  *6+ij+#3\ÿçòÏ#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'i$%A5{3>#-$$ 3"U 3"E $F ¹]]`;*   \ÿíóÏ,048<73&'73#3#53&'#7#3#3#3#535#535#735#33535#335e;9#“#X9-~6;;A—C::5""5#X""5#¼    M-, OÿçôÏ #>K73533533#735#33533535#335335#3#3#67'5#'6655&'76d')‡'b'|qq~Y   }   0 ÁI,+(  - 6# 6K  (  sÿçôÏ#'-373533#3#535#735#3353#735#35#35#'67&'+,,77+,XllFFFFFF  5à +   D_C ' ' !      Uÿé÷Ò!%+17=EIM733#5'667#35#33535#335'67&''4'7&'#5##535#35#Š:$… %72%%8'_%%8'g YW  OOOOOÒJ; &       PP %  ÿé[Ð7'673#&'#5'67#53. #    ­( me%.wïÐ73#3#53&'#53&'367#~Y&>Þ=$Y 9PÐ   A bÿéôÏ1767&'7&''63#3#&''67#5365#'6œ -2M*;5) ) 5 1 16 Ï! ! )! %  ]ÿèøÑ#'+737#"''3255'67#5353635#35#35#›6  (?9&VBBBBBBÑc  ;  %"!s 3<: ÿè€Ñ .273&'73#3673#53&'#53#67'5#'66735#$ )c nX  44º   f::,  ;!  ,rÿéøÑ 5973&'73#3673#53&'3#3267#"&55#'6765#735#†$ )c nX   44º   ,:2  8   ÿè}Ñ,0473'73#3#53&'#367##53#67'5#'6'35#35#()o)]  ::::º    wNN! / Q.xÿé÷Ñ37;73'73#3#53&'#37##53#3267#"&55#'676'35#35#ˆ()o)^   ::::º   wNN#  )  @.ÿëæ~73653#"''3267#'67#OcO4%GLe  R(7'6 @ÿçðy73#3##5#535#Ç[ggeeXy&FF&ÿñî~73#3#5#53&'‡]¤›¯!d~ M` ÿéï€73#3##5#'67#535#5#!Ä,66L3 +36&„J€)HH2%))))ÿìò‚ 7#3#53#735#ç¶ÁÕ;qqII‚p–)Cÿêñ“%+73533#3#535#3533##"''32655#&'!VRRfâhV“(( “% † 9& #  !eâÏ7335#53353353#353#!CO;9MBÁ‹!+##-!)hÿèõÉ'7#3#3#3#67&'#67'5#535êWNNMM`7   2É   EN Zl eÿéòÐ!048W[aek733533##5##5#53##535#35#7#"''3255#535#5#3533#3#&'#5'67#535#35#&'735'6ƒ,, -z   0E'&&##   "'  "  Ð  ;ƒ¾ ! #­ p; !  2 " 2 .   aÿê¦Ï73533#&'#5'67#h  Ÿ00 mf '3]ÿèóÏ6:>735#535#535#535#53533#33##3#33#"&''673535|..55--77;;1 122'(  >: ;$# w$jÿêðÄ%+57367&'#"''3255'67567#&''3353#5#~a   J btÄ  $ $ 6&  ¡Yÿê£Ï73533#&'#5'67#`   ¡..  fl&/hÿéõÑ,067#'733#67&'#"''3255'675#53'37&'À@F&2       > 6   5 W( &Ï =,     L* 86  3 $&ÿéõÏ(733#3#5353333#33#"&''673¹""%e ""    Ï!">>+ B ƒÿèõÑ 57&''6'&''633#33#"&''673Ñ  ,      Ñ   )1  +7!- "F bÿéòÎ +/3773353353#3&'73#3#3#3##5'6#35#35#n$"#)-''''0e7"""""Â''-    i  %& ÿìÎ :7'2'6'&''&'3#3#753#5'53675#535#'6t ,>3. "   >#++&" --Î     ,=  1*0 hÿèôÐ #)AG73673#735#&''67'7&'''63&''67&''667#j"F€\\F      2 9 $  &1 ¾ T4     6        "  ÿéèV'-377'7&'#"''3255'67'67672&'''6¦(4Y;  %'( #T $ M       1   aÿçïÇ'8KO73'767#533'67##"''3255'67##"''3255##5'#5'673&'35#i5  Uo/   & ,…   \T = '      .f  Ohz  %%  3 XÿçôÏ #<I73533533#735#33533535#335335#3#3#7'5#'655&'76h&'ƒ&_&xmmzWy   .  ÁI,+(  - 7% $7L  ' ƒÿêôÏ28>D733533#3#3#3#&''67#537#535#53&'#53367#7'6'&'¨ )&'/'  " %*$$' 1I   Ï555   % G ÿìXÌ!'-767'7''67'67676&'#'674'C     )&±># /+k\ÿêõÏOSY73533#3&533#673755#"''67&'#3#3#3#67'75#535#535#535#535#75#7&'f'#"     '0%# X  ·!<'/ ) *9 –pC  ÿþsÏ767'67'67676'6` #'1 )36§:  0)o  lÿéçÐ733#5#535#535#5367#'6—; 'gg__g= , Њ ## ZÿæöÆ#'-373#3#&''67&'767#535#35#3353655#335k…:351 1( #  248 3R 3 Æa  a>? [ÿæôÎ473#&'#5'67#535'2#533#"''3267#7#'6Û ;/  (5,6]   ,Î (( ‚2 &.hÿéõÎ673#&'#5'67#535#'2#533#"''3267#7#'65à 4# #66"b   #&#!Î)) ‚4 2 )kÿéñÈ 73#735#35#3#3##5#535#{iiCCCCu299::0ÈZ49733bÿêôÎ17=73&''67''667#3533##"''3255#'67&'= " &# "   1'533  5Y  Î     _8  4 !  RÿèïÏ'-735#535#53533#3#3##5##5'66&'a://779900@ŽyE.))%"  | M<>O(* #  eÿìöÈ!%)-173#3#3267#"&55##535#735#35#33535#335mn.77 #5-JJ ##6%[##6%È8_   k`=^ÿéïÐ *.27#5##53&'7#5'673#3#5##5367#35#35#ïd;5 "R!"(((((¸")  Šc$  ES# lÿïòÐ #'+/?73533533#735#33533535#3353353#3#735#3673#53&'t"#x"U"j€€rrNN$†!ÀO/1, .$   ÿæõX$*73'67#&''67#'6'&''6|X )9 6  A H5"%X .'2      RóÐ%+1773&'73673#3#3#535#535#'67&'7&''&'4 0 6]WWgßeRR[ ‚O  cº     6        ÿèeÏ &7&'7'63#3#3#'67#537#535#%@  >S"$ ! Ï  /$ ÿèbÏ '7&'7'63#3#3#'67#5365#535#"@ :L!$Ï  .$ dñÑ.4:73673#3#3#&'7#'67#535#535#53&'&'7&'N 7 9]UUg   › gQQZ7) = Ñ    F    …ÿéôÍ 7&'''63#"''32765#'67#Ï  R    Í4 42 1h  BV"L‚ÿêîÎ73#"''3267#'6##535#¤B  8 1&Δ.#w 0WfF5„ÿèõÌ#7'673533#3#&''67#535£ ##)!  # # (* $(**'453"03+ÿè×f 73#5##53635#35#zQ†E8††††fk k 0; ÿéõÏ 0J73533#3#535#3533#7'75#73533#3#535##53#3267#"&55#'6%##)f*% :5p)/;6# À6 D $/   ÿéƒË '+773#735#3353353#3#67'5'67#735#67&'ll   [qqh9   BB'  Ë:6 3   )   ÿé‹Ï$=EIO73533#3#535#3'67#3#3#535#3#3##"''3255#535##53#=#7&'200*g*2x e P2r-" ~  ((]08Å   #    " "  A @@   )ÿé×> 7#5##535#35#׆††††>U U- ÿé‰Ç73#7#5'675#35#35#75#{ $* &,,,,,,Ç83Ž R Z ÿêðw7#5'75#53#'35#35#5#î*œ%Í#yggggggXQ?4/ uÿñõÊ733#3#53533¹'')€ÊGnŸŸrÿèôÏ#7#5#'667##537333267#"&5í#0  ¤6$FHD?&8++GV tÿé÷Ï7367&''66''6® # - $Ï ?%&<8*S1#mÿèõÏ $(,73##"''3255##5#53535335#33535#35#ç  H -,,H,³q/  +HHq8'''`'''uÿïòÄ73#3#3#535335#‚o***+}2ÄDX}}¯ kÿìöÑ#)/CI73#53'3673#53&'3#735#35#&'7&''33325267##"&5''6²/q- # jjFFFF*;  F     Ñ   .H, )"       # kÿêøÒ LPT73&'73#'67&'3533533#3#3#67&'7'5'67#535#535#5#35#t46},  :E/  +  .#J¾       9 &   &   rÿéóÎ #'<LPTZ7'2'6'&''&'3#735#3353353533##"''3255#'#7&'7''535353&'æ 1F:(  "{{#&  / &Î    ,4B  >=% n   cÿéôÐ 1FLR7&'''667'7&''63#"''3255'675#'3#"''3255'675#&''&'Ç '!   !&?  -F?  -]5Ð & ! ,d   &d   &    ÿéíV73#7#5'75#35#35#75#&´$& $$kkkkkkV:> " & ÿêðX7#5'75#53#'35#35#5#î'' Í zffffff@;1 $ #  ÿé^Æ73#7#5'75#35#35#675# Q    Æ€:3‘""T"[! gÿéñÐ #)/7;?CT7#5##53&'7&''33265#"&57&'''63#53535#35#35#3##"''3255#î^7     O T  s ‰V|2   7½         '''4 aÿèöÎ9CQ7676767'74''67'67676767'74''67'673##533'3353'67#y    ;    &s &$š . " . "a22i'"#'% ÿêðE7#5'75#53#'35#35#5#î''É zffffff 50( ÿèî'+/735333##3#3##5#535#535#535#535#33535-DG##GPPee``KKDDaaDW555v        ƒòÏ733#3#53533zVVdã'0Ï,,)ÿéÖs7#"''3255##535#35#Ö ……………sq  -Š&8,ÿéÒi7#"''3255##535#35#Ò €€€€€ii  )€$4iÿõòÆ 7#53##5'67&'3#©;‚1%:M„„µ‰b&*$#/,+gÿíóÏ .73733#'67#7&'3267#"&55'67536iPQb     22R( 'F? K &"   N7jèÑ/73#673267#"&''675#'67#53673&'´ #S   ( < 2@E<Ï    1 #  fÿêóÏ#)/733##"''3255#'67#53673#3'67&'©00  3 %?E !"  V Š.I  D$$! #! ÿê\É7#"''3255'6555#&'6\     1 ÉÄ  7 )">xq_ B  ÿêcÉ7#"''3255'6555#&'6c    6# ÉÄ  8 )!?xo]  D eÿêìÐ 73#"''3267#'6##535#‡Z  M G0ÐŒ|#&XgG5bóÇ!7#53'67#3#33#"&''67w^Ð E??<530 µ  ( _ÿêòÏ-37&'3533#67&'#"''3255'675#&'Ì  R655      )6 Ï   ''1 #A  <#$*. mÿê÷Ð&,273533#67&'#"''3255'675#7&'&'w/44    $/]  <  §))1 "@  7 "(2:   A wÿê÷Ï,27&'3533#67&'#"''3255'675#&'Ô  N222     2  Ï   ''1 "@  9#0 ¤ÿéõÐ$*73533#3#535#3533##"''3255#&'¨Q -   -  ´  KC  ?  ¢ÿêðÏ733#5##5##5335#35#35#35#Á      Ï-ƒEE…1 Q eÿéòÉ FJNRV7#'6553533533##5##5#3#3#"''3255#7&'7''675##535#735#33535#335òn\&-      +%$8$ÉTE5 7>` B E 3 GW ' $  ÿéñ@73267#"&55#'6655Ÿ ""= @8 + ÿéÎ!%)-73#3#5##535#535'6655635#35#35#w %# ;%%%%%%ÎŽ/J: 5I<u79 ÿéðl"&*73'73#3#3#3##5'65#5#35#C1  VSIIIIW® &SDDDDDk     I    qÿèòÏ(733533##5##5#53&''67&'76‹&&L   Ï7 1" #. # ÿêyÏ'73533533##5##5#67&''67&'    $´""##0$!‡òÒ(77&'77327#"&''7&''#5'6 (  !< ):.'   &Ð       ' ÿèòc"'7#3#3#3#&'#7'5#53567ÖŽ‡‡ˆˆª&  <@3# ((l c    ?OqñÐ *073'67'677367&'326767#"&5'&'b'8J#)"'  (e Ð&  !     D „ÿéðÎ*.2973#3#"''3255''75##535#535'235#3357'75#á ''.   ,%%/%  Î;R   !Yi;Jk $ ÿéò>73#3#&'#'67#5367#)¯OdN=GQ ER]M>"$ [ÿéíÊ  $CNX7##535#35#7#"''3255#535#5#3533#3#&'#5'67#535#35&'75#36735—*€   )L%&&""    "% !  ÊEœá ' )Ì „E '  ; %&; 6   ÿèç¢ $CNY7#"''3255#535#5#'##535#35#3533#3#&'#5'67#535#3&'735#33'6735ç   I5555-G5555 >??77 % "+7> &8  ¢]: ,;º 2  $  2,   8ÿíóÏ "&.26:73#'63#53#3#'#3353533#3#53535#35#35#¯17 %[X,,9BB7»+*Ï  G‚3G#%<<<***** RÿìôÐ "&.26:73#'63#53#3#'#335353#3#53535#35#35#¿$*#PN$$3880¢%$Ð I‚4G#!===***** _ÿè÷Ò !%6?IV\bhn7&'6'&'67&'63#735#&''7&'737'77367'7733265#"&'&''&'&'7&'Ö  M  6  ;~~ZZI   D 3 1   % AÒ      -F ,    1J OL P%% %1)        Kÿè÷Ï $7#67&'#67'7535335#35#Þ? %@##. 98aaaa³f   EH ´(C[ÿèöÐ $7#67&'#67'7535335#35#Þ5  !9 ( 12RRRR²f   DH  ´(Cÿî~Î!%7#67&'767''67535335#35#wI  & $$5555°j8   ª-D:ÿèóÏ%=D73533#3#3265#"&55#'67#535#3&''67&''667#X:;;I0   $$G:0 A & ,#%3 . -  :¹    @        YÿèòÏ$<D73533#3#3265#"&55#'67#535#3&''67&''667#l200=*   <2*8  $) % %  /¹    C       bÿèõÏ$<C73533#3#3265#"&55#'67#535#3&''67&''667#s000<&    :0+6  "' $  " -¹    C       ÿèô£&>E73533#3#3267#"&55#'67#535#3&''67&''667# VSScB ' >& :fVMS 9 ?(+; 2# 5L“    ,      ÿé—Ï/37;?CGN735333##3#3#&''67'67#537#535#5#5;5#33535#33535#33567#-//08E " &&0--J-M0(& Ä  -   -  ) GS CÿêòÎ"(73533#3##"''3255#735#'67&'NDK¢z3   2PP o³I>  9#@ " XÿëôÏ#)73533#3##"''32655#735#'67&'g7>ˆ q/   /KK g  ³H? :$@ ' _ÿêóÐ"(73533#3##"''3255#735#'67&'k7<† k+   ,EE c  ·GE  @#B) !UÿéôÏ "7&''63#3#"''3255##5#Ÿ"% $!%0CC!  1*Ï ,++&6 ![[_ÿéôÏ #7&''63#3#"''3255##5#£# !#.CCx   *(Ï*,(%6 ![[fÿéòÏ #7&''63#3#"''3255##5#¨! "+DDr   +!Ï*+'$!6 ![[ aÿïóÐ #'+/?73533533#735#33533535#3353353#3#735#3673#53&'h'(…&a&y‘‘ {{WW#(’ ÁQ0/+ / #   zÿéöÏ 7#5'753'&'&'ôBECNLH Іt-:ÿçõÏ(0473533#67&'7&''67#33267#"&5''6673#RCG\'+7?*d   V+³!  !IR % U,0('bLÿèõÏ*.673533#67&'7&''367#33267#"&5'3#'3'66c9?F !  69._('¶   HW Zb`-0'SÿçõÎ"2673533#67&'7&''367#3'66733267#"&5'3#k78B  47* K'´  G5, &1S Wf^ÿîôÀ7#533#3#537#5337#7#"y–!C.'0¬\PPHHcPPfÿðóÁ7#533#3#537#5337#7#š%t%;' (®XSSEEfSSZÿéóÎ!17IM7#53533673#&'#5'67&'3'67&''667#353533#3##5#7#3+;  -      ! ",,“** )) Hb -1     %1((0PÿéóÎ!37FL7#53533673#&'#5'67&'353533#3##5#7#3'3'67&''667#Š.?  #0!!!   . $00Z!   “**  *+ I¡-,,-> -1   FÿêóÎ@FL73533#3#3#67767&'7'#"''3255'67'67#535#535#&'''6T@@@88EZ ()"    @ /I::@oB ½    ) #   Š    AÿéôÏ-C73'667#&''673533#3##5#'735##53533#&'#5'6i$"   C*+*?JMA* )% (Ï'.! '$'p#'@>#;ÿéòÏ )-1573353353#3&'73#3#3#3##5'6#35#35#P//—0 :<4444@‡ I33333Ã''-   e %%MÿåðÏ1767&'7&''63#3#&''67#5365#'6$' 7? ]3HB-0. / ?D" Ï! ! (& ,$ EÿæõÈ %73#735#333#&'#'67#5367#335[[66<{A0 58 3=C6† #) x4!*<<GÿèõÏ7&'&''67&'36”R +( '!2 /.  (&ÏP/5F@.&UÿòòÏ!73733#3#537#35#35#35#'33#ZHE T  0 %(  h  ["2   # + !     <    }  = #(^ÿéóÏ'733533##5##5#53&''67&'76))J "( 'Ï7 +( &OÿêóÉ"&*.373#3#3&''67&''67#537#35#35#35#67Y•E=TW  %!.%  -<XXXXXX  É g    g * ) +; QÿéïÑ1J[_c73673#"''3267#'67#3733#"''3267#'67#73733#"''3267#'67##53#"''32=#5#f3:   -* (     P      ,| VVVà   * $ % r eP  )  NÿéëÏ #';?C73353353##"''3255#'65535#35#'#"''3255#'65535#35#b&&…‰          Â++0{ %)S(@9{ %*S(@ PÿçóÈ %+73#735#3353353#735#35#35#&'''6X••,y††``````@! !  È<5oN-,#    fÿèöË  $(:?73#735#35#3#7#5'75#35#35#75#73&''67&'#367vkkEEEE#ŠC  .=    ËI, ( (OY456)     MÿïõÑ 59=M73#5##53&'3533533#3#3#&'#'67#535#535#35#35#3533#3#535#žGu=)$ ### ")%@’?Ñ ..5  "0>EîÐ;S7#&''53&'73535&'#6''67'67'677676767#"''32654'67##5¡ ###67    §¾D f  )2:    # ;"  r€ RÿéòÎ #'<MQU[7'2'6'&''&'3#735#3353353533##"''3255#'#67&'7''535353&'ã =WI5 /    ““+/'   '8 &&&*  Î    -3@  <>$ n   BóÒ %BFJNRX^djpv73#53&'&''67'6776767''&''67'6776767&'73#3#3#735#7&''&'7&''&'7'6''6ƒPq      ‡     !<<<<==r  ‡  ‰†‘Ò  :   *    * *            {ÿòëµ 735#53#5#535#X[o\\Xj8ÃALóÑ173'67#&''67#"''255#3267#"&55C.F ?%  "² 3 +" Ñ I=   + A  X ÿéõÏ-7#673267#"''67&'#'6553533&'7ñ;    r„ °3,&5"" !'&7@I=/ .:T  bÿêëÅ ,73#735#33535#33533#"''3267#'67#534urr.K.9> * 2 , ,/Åa8=.@$+@1˜ÿëóÐ%73#53'67'7&''67'67676Å W# "  "  Ð@P,% -*(`ÿéñÆ%+17=73#3#3#535335#3##'3267#733&''&'''67&'i†900;:!l q\" 2  +Æ''5g:$; &  —ÿëðÆ ,73#735#33535#3353733#"''3267#'67#¤II  '  <*   Æb9@B @+5 , ÿë_Æ +73#735#33535#3353733#"''3267#'67#KK  )  <)   Æb9@BA 15 ,ÿéó{73567#533##"''3255#f€ž#jj  f@ / +¢íÑ 7#5##53&'7í³bÁ ¥íÑ 7#5##53&'7í³bÁ  ÿéð@73533##"''3255#&'ž00   ž7 '    mÿéðÏ7673#3#"''3265#3#y_``  cXX€<"/[$@!+ÿèÕ] 73353#5#533v6•8]S2TF2 ÿèîu73#3#5##5'67#35#Ú‚ Šz /@8zzu\ H [+ÿêî’#)/733##"''3255#'67#53673#3'67&'}LL   Q5B}ˆ 71+ )!![,  '    cÿéòÏ-C73'67&''667#73533#3##5#'735##53533#&'#5'6     0  .790  Ï '/    (!(q#!:9fÿéòÉ /73#735#3353353#5#535#535#53733#3#3##n$H,,##&&#))%%**É@5š$$LÿêõÎ@EK73533#3#3#676767&'7'#"''3255'67'67#535#535#'''6Z>>>66CW  )(! %   > /H99>l-A ½   ) #   ‹    JÿéòÏ +/3773353353#3&'73#3#3#3##5'6#35#35#`')‰+ 26////:yA,,,,,Ã''-  i "$& óÏ!'+/73533#3#535##53#3#53&'35##363#735#eggYÄWe2§Aå?jQ>~±±‹‹Å G))  ) LÿëõÏ,N7#5'67#53533#&7#5'67#53533#&3'67#3#33#"&''675#…    F    ‚%00$1#  >+#   &#  !  *L@ÿëõÏ,M7#5'67#53533#&7#5'67#53533#&3'7#3#33#"&''675#}    J    Œ–*55'!4% C‘,&   '&  !  3  KOÿéõÐ%)73#&''67&'#53&'67##5##535#¢@'*") &AHQOOOÐ     LDa aB0LÿêõÐ ?73&'73#3#735#3353353#67&'67'5'67#53&'WA?– ƒƒ$+B>  5   "5Gº >1  /   LÿèðÐ "(.4DQ73#53'3#735#3353353#7'6'&'&'''667'5'6767&'œFŸC/ˆˆ&:O!r_(!   *5   /Ð )/'11         ) ÿèöÏ-373533#3533#67327#"''67&'#535#7&'888D::     šB8¾  Á ++;"#)6+ #" #P  IÿéòÁ#73#3#'67#5367#33267#"&5jv4AD @; .1.=  ÁN0,AVL   Jÿë÷Ð#)/@7373#3#5367#35#335335&'&'''6733267#"&5WD@DDŠ1@(0  G  n#   ¸ EE J!!!!!9  # - CÿíòÏ!'-=C7367#53673#3#735#3353353#&'7&''33267#"&5''6[+8<DIG†&|››K  ER   – @=  %  & 3ìÒ$73673#3#5367#35#35#35#'33#c\aK†'^Faaaaaa>ºÌÅ ZZ% ! " 9^YÿîõÆ 73#735#35#3533#3#535#lyySSSS699DœF6Æj=EO&&[ÿéñÏ67'23#5##536'&''&'67#53&''67&'á 8QC2 !n_'     Og )  Ï ((  h   cÿéñÏ67'23#5##536'&''&'67#53&''67&'á 4L?/ gZ$     I`  &  Ï ((  h !  ÿèäe)/573#"''3255'675#73#"''3255'675#&'7&'`  #*1$Mjb  #+1%OS  {  ei &i  '   ‰ãÍ #75#53#5'675#53#5'6'&'7&'aJ^"(,’J]"(+‡u ¨C C    ŒãÌ $73#5'675#'3#5'675#4''4'…^#*-$Mn] %)"LQÌ< <     gÿë÷Ð#)/?7373#3#5367#35#335335&'&'''6733267#"&5p7589w*4"&  =  ^     ¸ DD J""""":  # /  fÿíôÏ &,<B737#5373#3#735#3353353#&'7&''33267#"&5''6x",05:9n  d~~@  8 B   • > =  &  '  IòÑ%.26:73#3#3##5#535#53&'#53&'367#'6553'#33#735#¹./**,,0 +'{Z552EE##Ñ   8 % $29(7 EòÑ#,04873#3#3##5#535#53&'#53'367#'6553'#33#735#¹. /**,,0 +({Z552EE##Ñ  :  %" %3:) 8 PòÑ%.26:73#3#3##5#535#53&'#53&'367#'6553'#33#735#¹./**,,0 *'{Z552EE##Ñ   4 # "/7&4 UòÑ%.26:73#3#3##5#535#53&'#53&'367#'6553'#33#735#¹./**,,0 *'{Z552EE##Ñ  1    -5%3 YòÑ%.26:73#3#3##5#535#53&'#53&'367#'6553'#33#735#¹./**,,0 *'{Z552EE##Ñ    0   ,3#2 aòÐ%.26:73#3#3##5#535#53&'#53&'367#'6553'#33#735#¸.0++,,0+'{Z662DD$$Ð    +  )0 . iòÑ#,04873#3#3##5#535#53&'#53&'37#'6553'#33#735#¸. 0++,,0 + '{Z662CC&&Ñ   * %, ) ^ÿêõÑ LPT73&'73#'67&'3533533#3#3#67&'7'5'67#535#535#5#35#b;<Œ3  @ M!"2  .  0"R!!!¿       : "   " _ÿëõÏ =EIM73533#3#&''67#5365#73533#3#&''67#537##5##535#35#g  F    6KKKKK»       Rn n)@ dôÐ3HLP73#&''677&''667#'3533533##5##5#3#"''3265#'63#735#¢@    &”S  H  77Ð     1  # TÿéöÐ $(,06<BH73#3#3#535#535'65##5##5#35#35#35#&'''67&''&'wg ‘]       f ] Ð.// 9......A/////I  YÿèôÈ?GOSW73#3#'67#'737#'67#'7367#53#3#33267#"&5'37'#5##535#35#`@  j  C  B  [VVVVVÈ &   H         _ _!1 ÿéöd 73&'73#3#3##5##535# gqë´´³³µ’’’T ** aÿèöÏ<@D73673#&'#'67#3533#3673#3#5##5'67347#535#35#35#o&H"  "   !5GD -1DDDD¶     ] J X2 [êÊ %+1773#735#35#35#'3#735#35#35#&''&'7'6''6ˆ[[777777~[[777777š c N  b  ÊQ9  :Q9         bóÑ $(DHLP73&'73#3#3#3#5'65#5#35'3'73#3#3#3#5'65#5#35—$&%g,–$&%g. Ï    2    T    2     ÿèöT 73'73#3#3##5##535# ojë´´³³µ‘‘‘G    ' ' ÿèõE73#&''67&''667B‘"&2G-+: .# #&E      ÿéó[ 73&'73#3#3##5##535# elç´´³³µŽŽŽM  (( šÿéòÐ"&*73&'73#3#3#3##5'65#5#35#¹ 2Ð$%$ ‰ -.$$5%%4$ ÿéaÐ"&*73&'73#3#3#3##5'65#5#35#( 2  Ð$%$ ‰ +,$$5%%4$±ÿéôÎ 73#53&'3#3##5##535#ÔC44445Î >TU5%YÿèõÏ7&'67&''67&'ž &" '& %'&) Ï";2)IT.4EOÿéôÏ!'=73'33#673267#"''67&'#7&'3533533##5#'67#XU22     V„  v  ¨''?,@%#,F:  l,,,,55;/YÿñóÀ %73#3#535#&''6'&''6a=?”A@z "   % 5Ñ "-/q"1 "$' !ZÿêõÇ/473#67#5'75#35#35#75#73&''67&'#367Z[  4F     ÇŒ,&š%%^(a"fK8*E1!%-gÿê÷Ç/473#67#5'75#35#35#75#73&''67&'#367iR .C    ÇŒ,&š%%^(a"fM6 *F4+$NÿêóÇ.373#7#5'75#35#35#75#73&''67&'#367Na  7J      ÇŒ,&š$$]'a"fN4*E1!%-XÿéòÏ%-159=73&'73#676767'7''67'67##5##535#33535#35#XD?N  "!!$  8@5[$$7$[$$7$$º   &     Zff$6 ÿéRÏ73533#7#"''3255'675#     ¥**2 G  8;PÿéôÐ (,07#5##53&'7#5'673#3#5##537#35#35#ôrC8  a))4&4444·!(  ‡g $ES#PÿéôÑ $*06<H73&'73#7&'7''67'6776'&'7'6'67&'33##5#53[A<“W   E   cx  6IIEE¹            "33TÿéòÍ37;?7&'#5##5367'&'3#3267#"&55#'67#735#35#35#  ^m\  V  a   3 ,======Í '1 1+ ?\ - B $ $ Gÿé÷Ï >EV\b7#5##53&'733&'33&'#5'67#&'&''62673##"''3255#'67&'ìs>5# E1   V =    Xy‹?  9 a »   $*     $     Q& # 9öÐ=735673#3#35335#533#335#535#535#533#&'#'67# ((((8-//-/%%$$(:8".P- #6sQ   #: 2  W   OÿæóÐ#'+/37QUY]7#'673#&'#3#3#535#35#5#73#735#3353353#3267#"&55#'67#735#35#35#¼9 ,C##=MM  &   5 -![[[[[[µ  !&`)). *N   %7   ;ÿêòÐ $(,048SW[_73#&'#'6'#3#3#535#35#5#73#735#3353353#3267#"&55#'67#735#35#35#¦:    N++CTT  ‹Š(   # 8#ffffffÐ   &_' (, )Q   8 ^ÿêòÐ#'+/37PTX\73#&'#'6'#3#3#535#35#5#73#735#3353353#3267#"&55#'67#735#35#35#².  A !!6FF  rt!   2 *PPPPPPÐ    &_' (, (S    :   \ÿéóÉ *HLPTZ`f73#735#3353357767'7&''67'6773'73#3#3#3##5'65#5#35#'&''67&'dˆˆ'i    6 9 "#%!É7U*   a '% KÿéôÒ6Idhlp7&''7'76'3#3#35#535#535#533#5##5356&''67&'763#3267#"&55#'67#735#35#35#­   . k+ €@     Dr  3NNNNNNÒ    O%%H"      77777·;h  +#3QÿéôÎ,B73'67&''667#733#3##5#5335#533533#&'#5'67#y%    N"!!m<?3! !& '-Î %.  >!$$(!o"(BA$ i˜îÑ 73#'6ƒ^g Ñ sÿêöÄ+73#3##'67#'7367#33267#"&5}t)-  *, 9@Ä&#(,86'fC &  GÿéóË 48<@X^73#735#73#735##367#533#67#5'75#'65535#35#75#73#&''67&''667#YBB!!>BB""6„)%8  ,=$        Ë--)% >J 3) )0GR*, j!      #  XÿêíÉ73#735#3#"''3267#'67#vqqII€  6: 0!ÉR,WT!,@$ $,E>----55=1KÿéòÄ )7#5##5'67&'3533#&'#5'67#ëj-@M;A6% #% )1Ä10! : (,PN('UÿéóÄ )7#5##5'67&'3533#&'#5'67#í`)= F5:3" $ ',Ä10! : )&IM&& ÿèõz 7&''63'67#53'19 68(: O" 5s? z    ZÿèõÒ -7&''63##53#5'357#"''3255##5¡$ # ) 2BB:`  Ò(+'$psh K::J  4o€XÿéùÎ%+D73673#3#&'#'67#5367#7&'7'6373#"''3267#'67#g1 >EY . $ )  j  Y#2   # , #     <    x A (+"CÿèñÅ573#7#5'675#35#35#675#7##'32654'7##5G[   !!!!!  Å…4/“""X%] x@"! DÉÚ8ÿêõÎ #06<733#3#537#53&''67&67##3#"''325''67&'a )] C U    &V   G  Î#5d3,)D(`  K $  EÿéöÏ !.4:733#3#5373&''67&'#3673#"''325''67&'j$T0U     j  C  Ï "F`4!-T@''@M`  K $  <ÿéöÎ*/5;733#3##"''32655#5373&''67&'#367'67&'b##+#  ) 8U     Œ J  Î$f bF`4!-T@''@^ %  EÿéöÏ).4:733#3##"''3255#5373&''67&'#367'67&'j$  $0U     C  Ï "f  bF`4!-T@''@^ $  KÿéöÏ).4:733#3##"''3255#5373&''67&'#367'67&'l#  #/T     }  C  Ï "f  bF_5"1O@'$CY  UÿéöÏ !.4:733#3#5373&''67&'#3673#"''325''67&'x!M0J    _   B  Ï "F_6!0R>&$@M`  K $  cÿéòÎ48<73#3#"''3255#7&'7&''675##535#535'235#335â  55@  . #)<55@$!!3#Î=R  ;Xj=IhÿéóÏ'+73533533##5##5#3533#3#5##535#35#h((;<<.J.; JJ¸3W XW'RÿèôÊ #)D7'6553##57#3'6'&''67&'3533#3##5#535#'6{†,,`` O 97))2244 ”/E5 5@_6::$     \ÿêïÏB733673#5##53&'733#735#35#53#3##"''3255#'67#'Ÿ e SS//=U†    - $)Ï" **  ,; !UÿèðÎ3K7'23#5##536'&''&'3'67#&''6#'735#53533#3##ä 8PB3 pd (     ; 1   ]% Î       1Y"C  A%,,*‡ÿéöÎ#)B73673#3#&'#'67#537#7'6'&'3653#"''3267#'67#“+0?      K  ;  #     ž  8   y A 00']ÿéòÉ /73#735#3353353#5#535#535#53733#3#3##f††'L00((,,%,,((--É@5š$$YÿéõÏ,\7&'#5'63&'3&'&''67&'763353#3#"''3255#67&'7&''67##537# !$ Y 2     IR/B  7   !! 52Ï       ((7;  &  @PSÿéõÏ -9>BSY_7#5##53'73'67&'767&'767#'6&'73'673#3##"''3255#'67&'íj>5!-        g  4 .!H33%z7  0 U º  4      & F /' $  VÿèòÐ #)/5ER73#53&'3#735#3353353#7'6'&'&'''667'5'6767&'¤B–>,$:MkZ'  '4  ,Ð )/'11         ) ÿêøÐ7'673#&'#5'67#53Â$      ¯  *:'f]5 PÿéóÉ *HLPTZ`f73#735#3353356777'7&''67'6773'73#3#3#3##5'65#5#35#'&'&'''6\)n   : = %$É7T,   b '%  DÿçóÐ$7'23&'7333"&&#"'663267#â >>J4   0.5J>‡  ±f  aE, (<D !"DÿéóÏ'/73533#3#535##5##533267#"&5'3'66NBDD;ˆ9B™rZ   0" ¸<2 !3!B F+' !FÿçîÐ673533533##5##5##5##53653#"''32765#'67#R!0##0!œs4= ,= 40±%))3  F &>.SÿèîÆ(,7#"''32655#&''67##5365#53#'35#î  1  /E7~45VVdd L  #i| MM ('‰ÿìöÍ733#&'#67'5#537'6šD% %  ;Í[C!S]  hV* JÿôñÎ .7'2'6'&''&'3#3#535#535'2à =WHA 9  "  … "KKA’=HHBÎ   &%%•ÿëóÇ73267#"&553'#37#3¨ " W4!NH ÅygUUUDÿñôÐ!%73673#33#535367#35#35#35#35#QDCF>°/@ ZZZZZZZZ» ““ :998BÿéñÐ.5767#53&'73#&''67#&'3353#5#'67635#q qEI +1!' "MR OM¨   ?v/  GÿòñÏ $(733#5'6367#35#33535#3353#…A *‹ +6 3 ((<)e((<)‰¨¨Ï  j\# 7FHVÿìòÈ!%)-173#3#3267#"&55##535#735#35#33535#335`u2;; "':0RR'':(b'':(È8_   k`=”ÿéóÇ73#3#3#3##5#535#535#535#—X" &&%%"Ç>>AÿéõÏ;AG73673#3#3#&'#3#'67#53655#5'67#5367#5367#&'#&'M8KONTk  -EK9 /5=$   ,"(4}A@#!¾     "  T ;BÿéòÏ *.2673353353#3&'73#3#3#3##5'6#35#35#X,+- 681111<€E11111Ã''- i "$&DÿêóÏ'-3;Q7367&''65'367&''657'6''6#5##53533#&'#5'67#¾    M    5 M™{?G=-&$/<Ï             C#$*=6 8ÿëõÑ #/5EKQ7'2'6'&''&'#53#3#533#535#535#&''33267#"&5''67&'Ú 9SDB  0 5>?K§I:‹‰vrrx= #     Ñ       $ @  6     !  DÿíóÏ3;?CG73533533##5##5#3533#3#67'7''67#535#3#53535#35#35#O"8##8"7::HW !$ 8?6J7ƒ¯'&Á   T222!!!!! FÿéòÎ #'=MQU[7'2'6'&''&'3#735#3353353533##"''32655#'#7&'7''535353&'â A^N: 2    žž.4+   +=   ***+  Î    -3@ <>$  n   AÿéóÒGLgkos7&''67&'76'3#3#3'67&'76735#535#535#533#5##53563&'3#3267#"&55#'67#735#35#35#ª     / &  %- ‰&9w   "6SSSSSSÒ            N%%GKU  = ! ÿóQ¾ 7#5##535#35#35#Q¾À Ë7%[$\&ÿóK¾ 7#5##535#35#35#K¾À Ë7&\%]&XÿíôÏ5=AEI73533533##5##5#3533#3#67&'7&''67#535#3#53535#35#35#c// 022>K .4/@0t›!"Á  T222!!!!!FÿèòÊ #-:GS73#5'675#'3#5'675#&''&'3&'73#&''67&''63533##5#œM!;QI!7_ P HG¤% ^  sKNNKÊU  P  8      $ %%`ÿèôÉ #-:GS75#53#5'6'5#53#5'67&''&'3&'73#&''67&''63533##5#Ù,>30B7 C ;:Š  V  `>DD>žK P >       $ %%tÿíðÏ &73&'73#67&'7''67'67676u42{V'&# ..% ²  U! ") #%.+  UÿêöÑ #/5;KQ7'2'6'&''&'#53#3#533#535#535#&'7&''33265#"&5''6ß3K>:  )0/r0>Š95}}jeej@ G  T !  Ñ       % @  4       dÿèòÏ %173&'73#&''67&''63533##5#l68‚  F  \====´     '  @??bÿéóÏ/73533#3#535##5##53'66733267#"&5h8;;1t/8…^! *  ¸<1 2!+% &F iÿéóÉ'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335n|6 499662 4!!3#V!!3#I&ÉN"".,[bÿéôÑ"&<I73#3#'6553&'5##5#35#3353353673267#"&5'67'533´3&$j6#      Ñ =<, 2;Y =,3    !   V lÿèôÅ !%)-3973##7#53737337#3#67#3#735#35#35#'67&'î m -ppJJJJJJ  BÅ dG ( (     gÿêïÏ  $(.473#5##53'3#3#535#35#33535#335'67&'¯9`9Q!0r0/L/=  > Ï +,2[[7;+    dÿíõÆ (-=7#3#3#535#35#5#73&''67&'#3673533#3#535#¬C!!8?     o277?=2Æ6ˆ)>>w8&  !,dÿéòÏ *.2673353353#3&'73#3#3#3##5'63#35#35#u v)-''''0e3"""""Ã''- \ !$&jÿéóÏ!%+1773267#"&5536#55#3535#'33#'67&'Û '6 ( 1$0-UE444440qƒ% C Ï   '4``  ' 8^    tÿéóÏ 4A73#53635#&''67&'73673267#"&5'33#67'Ÿ7q%KK8        >$$ Ï ^^ V<    @!    U)  tÿîòÏ '73353353#3#3#735#3673#53&'{p}} jjCC ~Â**/<2  iÿîóÐ'+/373533#3#67'7''67#535#3#53535#35#35#',,9A   */(4'h Š   º   eCCC22222]ÿéöÏ287367&''667'3#&'#5'67#535'6'6À    %     !(  Ï?  "A$.5EA;) a\!-$) eÿéòÏ573533#3#3#67&'#67'5'67#535#535#r/44//93  . '6**/¼  U @ 6#cÿéõÐ 173'33#3265#"'&'#7&''3#33#7'7537nJ'' Jr  \88%- ‘??5/8&[D 7$, _[fÿé÷Ï$173533#&'#5'675#&''67&''6q466%  &4 Q ´H3%ON"*K    "  lÿéóÐ $(733#3#53533#"''3255##535#35#¨,,8‡> IIIIIÐ..#q  /‰&:iÿèöÎ%+73533533#3#535#35#35#35#'67&'r3‰&333333 %A °nnCD/  sÿéòÑ,0473#67&'7&''67#53&'#"''3255##535#35#´2A *.)9C  AAAAAÑ      bi  *€$6cÿîôÏ&*.2673#3#3#3#535#535#535#535'25##5#35#335à ;91s/898#&Ï&$$&_&&&&6$$$eÿëóÐ 15973&'73#33##67&'#67'5'67#5#5;5#35#e=:j*  +  !DDDD»  "!  !3 (  $ !2gÿéóÒ3M73'73#6773#5#67&'7&''67##5367'67#3533#3##5#535#'6i7?D   2. $ !B 00088;;#À    )  ) b ## eÿéõÐ '-39?K73#53&'676767&'7&''67'677'6'&'&'''63533##5#¯6‚8     :  i  x Q   ;<<;Ð  R )     (   * 22aÿðóÏ)73533#3#535#7&''67&''6q055;‰;0  W   ;””''•'5)UÿðóÏ)73533#3#535#7&''67&''6f4;;E™A4  _   ;””&&•(4(DÿðòÏ)73533#3#535#7&''67&''6X:AAL¦G:  !g  ;””&&•'4(=ÿèôÊ$*E7'66553##57#3'6'&''67&'3533#3##5#535#'6j –22oo Z%A=11::<<”/D6 1$_6::$     LÿêòÏA733#3#535#5335#3353353#67&'67'5'67#53&'˜??9„8??%%+@;  1   #1BÏ>>M/  1  +öÐ>OSW73&'73#3#53'#367#733#3#3#3#3#3267#"&5535##"''3255##535#35#)+r($PTTMNJJJJFF# ,' MM 99999¾   %    WI [ # `ÿèôÅ"&7#3#67&'#67'5#'6553#êdh* '   RRÅB  !$Q]  hD3 6?^*_ÿéóÐ .5;73#53&'#5'673&''67&''667#&'±5„9  20      ! Ð  *„b))     $*   bÿêòÎ@FL73533#3#3#67767&'7'#"''3255'67'67#535#535#&'''6j677//;M ""   6 )>116b< ½  ) #   ‹    bÿéøÑ(Mm777;265##"&55'75'75'6773267#"&55'75'75'6'7767'5'75'75'6Ù:a;*e)XÿèôÑ<@IMQUY73#3&'73673#33##&'#5##5'67#535#'6553&'5##5#35#53533535335²5u&!    :%/Ñ   /@@*4* 4<[U)UÿèôÐ (,04Q73#53&'3&'73#3#3#3##5'65#5#35#'677'67'67'67676§EœB B &+ !     Ð "  o *+d+E$ Yÿì÷Ñ#)9?E73#3#53&'#53'367#3#735#35#&''33265#"&57&'''6¬8!%4/*qqKKKK&   "]  e  Ñ   5 (K- ) "  "  '  RÿêòÐ6:>BFJPV\b73265#"&55#3#67'5#'6553'73#3#6'5##5#35#335335&'''67&''&'ß  %  C5(&& ,  S L b   6C @2 2  " '`'N,,,Ð   (7TT5$~ÿéíÏ7#5##5##535335#335í-//¡wVVw..P===kÿéòÏ)159=73533#3#535#&''67&''6#5##535#3#735#r255;‡92  O  !OOO@@À<<      ?l lQA )  cÿéõÒ $*06<DHL733#5'667#35#33535#335'67&''4'7&'#5##535#35#‘6 w 2. 1!R1!]  s  43/FFFFFÒI=  '      OO &  ÿéXÏ$*73#"''255#'67#5353635#&'&'3     ϳ R<. -3L[; I YÿèòÏ $(FJNRdj7'673&'73#3#3#3#75#5#5#''673&'73#3#3#3#75#5#5##53&''67&67#°  BW  Az   *"( ? —      K?      K+    ÿéô}73267#"&55#'655&'¹   M21  }v   i/&56) qÿèõÊ 7&'''667&''67&'Ê"   !  Ê#) (% 1 &#+#!!! )nÿéðÁ$73#3#"''3255#&''67##537#n‚75  #   4:Á"‹  t 1’¤"bÿè÷Å'7#3#3#67&'#67'5#'6655ëb\\e& '    Å  $S_ lD3 0%^_ÿèíÊ'73353#35#53353#5##535#3#5#'65m&[(([% Ê75FF57áKHY YH0 /EqÿìöÈ!%)-173#3#3267#"&55##535#735#35#33535#335yf+22   1)BB1 Q1 È7^  ja=mÿéòÎ37;73#3#"''3255#7&'7&''75##535#535'235#335â 11;    (  $700: 0Î=R  ; Xj=IiÿîòÏ %73353353#3#3#735#3673#53'vtƒƒ mmGG  ‰# Â**/<2kÿéðÑ K73&'73#&''67'763353#3#"''3255#67&'7&''67##5367#k59…U    HP2?   2 0/½    11CI  2  PbbÿêôÑ S73#53&'3#735##5##553#67&'#"''3265'674''67&''2727637277¬:‡9(mmGGjj^&    ((## $ Ñ(( "(          ÿôRÎ 73533#67&'75'675#735#335¨&&a4  9???dÿèòË %+17NU73#735#35#35#73#735#35#35#&'''67'67&'373#&''67'7#67#i<<5==*  K ' l(R  . !' M +ËcG ( ( FcG ( (            ÿçñÓ7#'6553&'7ñÀdÃJV,$US ÿèôh$7'67#53&'73#67&'7'=@ W_iX  C!<)#      !:%  /NäÐ &73#"''3267#3#"''3267#536&'mL   u¢   ¡8Ð (/# O   ÿéòQ&7'67#53&'73#67&'7'F;Qh ^b   !L'(     9    jòÐ&73#67&'67'5'67#53&'€cb   P!  0HeÐ   9   ÿéòK#7'67#53&'73#67&'7'F;Pgba    K( (7     5    ÿé€Ì3:73#&'#5'67#535'23&''67'67#5367#p -- $../    " ! Ì  %f    1   ÿù‡Ã)73#67&''67'75&''675#m.  2>1  ,Ãn'3   ( 0>j ÿìˆÏ#'+73533#673#3#5##5'67#535#35#35#! 1?/ -.!////· vf nD ÿì‹Ð*073533#3#535#&'&'#33267#"&5''61,,(h-19 :  6    ®"",,B  7 <$  ÿìÆ7#53#67'5#'6735#35#35#.Z  % 3333336+ ;=  ’BB ÿìŒÎ!'-7&'3673267#"&55'67''67&':$     ^  Î0?/ATA%$  W0'&$*,#rëÑ 7#5##5367'&''&'믒  H  *  ª8&&8'      ÿê€Ç #)7#5##53#735#35#3#53&''67&'~G [[4444-n,  9 Ç  'S11&  ) ÿé†Ï G\7'2'6'&'3&'733#"''3255#67&'74''67##53'767#67#53''67&'| .A5+ ) ['  #   -  R& );   Ï        o \ v…  g   ÿéZÉ73#67'5#'65#735#35#35#A    É“3  D# 0hGHsëÑ7&'73#5##536'&'€  O 4±Œu  Ñ10    ÿé‡Ï*0673533#3'67#535#&'36533#'67#7&'&''((1  b1'  7,/ 5 - 3 O ¶  - 2 1. - 2  3  XÿêòÉ7&'73&''676'367'Š  I( ) j É")*!i%#!#.$N•  fÿêòÊ7&'73&''676'367'”  C! $ ` Ê#)*"n$!!.$O”  <ÿéòÏ 2:>73#53&''6553'#37&'73#3##5#535#536#5##535#ÊS!S@1  8!+ ;Ï SF$EFO>-!<<!)mmG58ÿéòÏ 2:>73#53&''6553'#37&'73#3##5#535#536#5##535#Æ!X$WH$$,  < #"/ >Ï SG#FFO>-!<<!(koH7HÿéòÏ 2:>73#53&''6553'35&'73#3##5#535#536#5##535#ÌMLC2 ) 3'4Ï SE%EFO>--!<<!(koH7ÿé‡Ï 73353353#3#67'535#qnQ.$(8 QZÂ0==0C=*  JÿésÏ 73353353#3#67'535#a]D%". CIÂ0==0C=*  JUÿêóÑ%+1=733#3#535333533#&'#5'67#7'6'&''3353#5## 88Až(#$     M 8  hhÑ((D++,*  9  yy— `ÿèôÐ08<@D7#'6553533#3'67#7326767#"&55'73#53535#35#35#œ.66A /$& "Ju444444—G;- .6R(      0VV* * ÿêíÐ4733#3'67#6732767#"'"&55'75#'66553rfff Q$B(2 6> QÐ     H<. * R ÿêmÎ.>733#3'67#'65533267#"&55'753#'665367'0))' 1  (     0 Î  E8, -3O"   H= ,? ÿêíÐ/7533#3'67#673267#"&5'675#'655sfffQ$#&1' 3?²     K>0 /9U ÿèrË4;73##5'67#535'2&'373&''67&'67#367g ## $+*"  ?+  !* Ë6&9  4    fðÑ !'7&'73#7&'''6&'7'6''63 t6  H Q · &A Ee Ñ  .+       gÿè÷Ñ<BHL7#673265#"''67&'#3673&''67&'67#'65535367#7&'3#ð  >     N.H J11¬. 5&&1%,C9 "   <. 07S%%y   4¬ÿéòÀ73#3###5##535#32655¬F  +À#q ’u†#4d] ÿêyÐ#'+735#53673#3#&'#5'67#75#5#35#,%.&-(   !R99999<m m 04raÿêíÏ !73353353#&''673'67r "{(    $JY PÃ5AA5G,  ,P@ ÿê”Ï 73353353#&''673'67v'  "GT LÃ5AA5G,  -P@AÿéóÏ*.?EK733#'#5'67#5;533#&'#5'67#3#3##"''3255#'67&'h 6   @~~žD   Gl Ï '' .(G+  (   QÿéòÏ+/@FL7#5'67#53533#73533#&'#5'67#3#3##"''3255#'67&'‚       @ $&  É7T -     c '%  ÿèóÏ73533#&'#5'67#•"$#    !¡..E -qi%*AGÿéöÏ,73533#&'#5'67#73533#&'#5'67#Y   J     ¡.. tx8"-I..E 0yx2*@ÿé¤Ï,73533#'#5'67#73533#&'#5'67#   H    //wp-*A//rp-(CÿéªÏ-73533#&'#5'67#73533#&'#5'67#   H    // sr0)B//nr-*A7ÿéöÏ+73533#'#5'67#73533#&'#5'67#I P!  ¡..ws8"1I..D!6~6)AKÿéöÏ+73533#'#5'67#73533#&'#5'67#[    H     ¡..ty*%7..E 1yv1*@ ÿéñv 7&''63&'73'67#€,;@0.<F(O E!1'Žv  ! $tëÉ'735#535#53#3#3#735#535#53#3#3#( &b)""(ct'!!&b)"")c†|ÿíðÏ &73&'73#67&'7''67'67676|0.tP$#  **#²  V  ") "&.* UÿéöÏ,73533#&'#5'67#73533#&'#5'67#e   C     ¡.. ux-&@..F4zy5)A5ÿéõÏ!27#53533#'#5'67&'''667&'7''6\   Œ*  #'Ž..!jt,${BJ@*)V" (0  +9ÿéõÏ!273533#'#5'67#7&'''6''6767&'E   “%5 "& ¡..'pt+'=:BJ=-*H(0  *VT$  ÿè@Ë 7&'&''6 ! Ë1  6 .+ )?ÿêôÐ4:PV733#3'67#&''67373&''67&'767#'63533#&'#5'67#7&'u=3*      1K   6  uEN@# "$' +9"  Ð ,!   #    X  ""0-2 BÿèòÐ (,04S73#53&'3&'73#3#3#3##5'65#5#35#'6767'67'67'67676›L¬J  K *,       Ð "  r "!*+d/ )($  ZÿêôÏ,06I73533#3#3#3#3##5#535#535#53'#535#37#'&'333#"&'&'75#•"##((!!((''""))""%6  '% . ¼:=Hf   WNÿëóÏ-28J73533#3#3#3#3##5#535#535#53&'#535#367#'&'333#"'&'75#Š&**/.''..,,&&.-&%+< # *+ 43 ¼ ::Ef  W ÿêYÏ7367&''65''6,   Ï<  ) 0G5+$TÿëôÏ"N73&''67&''667#'&'3533#3#3#3#"&'&'75#535#535#535#¥2      %: 0$$$ ''/1 "$'' $Ï       V   WfGÿëôÏ#O73&''67&''667#'&'3533#3#3#3#"&'&'75#5335#535#535#¡5      *?  4'(($$++46 %(++##'Ï       V   WfFÿêõÏ-39K73533#3#3#3#3##5#535#535#53&'#535#367#'&'333#"&''75#†***//((//..((00*&,H  ! .. 7  ¼  : E>g   W¨ÿéøË 7'6'6'6Þ! " ) "Ë #$ ) /!ŠÿéïÅ73#"''3255#3###535#Še RAA?+ÅÆ ±N Z<+NÿçöÐ!%173#3#&'#'67#537#53635#35#3533##5#”A9M* %) #)3-#SSSS##ÐT ')T ,2o%% ÿéó‹-1597&'#5'63&'#"''3255##5##5##535#33533523  Oj|   ($&&&8$(‹   'C  %Z$MÿéóÏCH7'23#5##536'&''&'3673#3&''67'&&''67#67Ü 6M?1lc "&KRO  *$ -  Ï  &&    F       '! \ÿéóÏ@E7'23#5##536'&''&'3673#3&''67&''67#67Þ 3J=.d] %GNM &# .  Ï  &&    G     %! \ÿìôÏ !%8<@7&'67&'67&'63#735#3267#"&553'#37#3v <  >  jyyTT '.  84‰N((:((Ï      //d  V:+SÿíõÐ%573673#&'#'67#33#3#535#5333#3#535#53^2H/& /, #(;))=‡7$$00B—B,,¶   %&;JÿéóÐ )-15R73#53&''673&'73#3#3#3##75#5#35#'677'67'67'6767¥F D  H,+  &    Ð n!%  t*+d-1,  $$’ÿêõÎ$*073533#3##"''3255#'667#535#'67&'   !  M³s  nB5 1<=$ '(+%mÿêòÑ )157#5##53&'735#53533#3#3##5#535##5##535#ï[4;*//22--;;77*oKKK¿"" H  1K K/qÿéøÑ #'7'67&'&'3'67##53#=#± (   "f KlF²" *"    p SR $$§ÿç÷Ï73533#&''67#7&'¯ 8‹DDN2"9;'\C‚ÿíôÎ (,0473533#3#67'7&''67#535#3#53535#35#35#‘"$$*4   && ("[r    ·    gBBB33333gÿéôÄ )7#5##5'67&'3533#&'#5'67#íZ, 5 C74)  *Ä10" < %)PP%#\ÿçôÐ(7673#3655335#535#53#&''67#d #(/6, 0- , 1°  'rr'{/.+&XÿèóÐ7>73#&'#5'67#535'23673#&''67&'67#3#26Ü ;,! $" "+;;H+W #/ & !e.%Ð #--€       ÿçéÎ 73353353#5#OLÀ˜‘ÇÇ“³ ÿéçÇ7#"''3255##5ç  ©ÇÆ  ¯ÌÞ"KïÅ7#3276767#"&55#;5#ݧ:'" SHS??BBÅE  c##bÿéòÐ -73#5##53&'373#'67#67&'7&''6­4[80"PTH $%Ð // S!I)$@ 2  # #hÿèòÒ48<7&''67&'76#"''3255##5'67#53673#35#35#Û  %! !   9"+GO 9999Ò     d^  ,\   +dÿëõÑ#'+735#53673#3#&'#5'67#75#5#35#e;,!7->0! .iGGGGG<n  n74rkÿêõÐ#'+735#53673#3#&'#5'67#75#5#35#r3*3*7* $]AAAAA<n  n78!r`ÿéöÒ%6:>7'6'&''66'&'&'''6#53#"''32=#3#3æ1- (0(. c 7g @@@@Ò  %!    Œ0‡n  D dÿéðÏ&+19=AIM7367&''667367&''66''67'6#5##53#735##5##535#‚     C     U CBcXX44TLLLÏ    !      5-./-99! ÿè‚ #)/73533#33#53535#5#5#35#5#'67&',..' u $,T:::::::>  —  __ &     ZÿèõÐ -159?EU[73#5##53&'3533#3#3#3#535#535#535#35#335335&'7&''33265#"&5''6¬9d:%$$++::3x399++%"/ D  Q "   Ð $%-    ..   [#      eòÑ(7&'3267#"&''7&'7'#5'6° AJ  , 2.K  'Ñ   " A0 TòÑ 7&''6&'3#67#x/: 82); J)6 lÑ"&%   ±ÿðíº 7#5##535#íºÉʦ”£ÿéóÁ73#3##"''3255#«@@P   "Á.m  i¬ÿëôÁ73#3###'3255#²==H  $Á.j  f°ÿêòÁ73#3##"''3255#µ::B   Á/l  i¼ÿêòÁ73#3##"''3255#Â..4   Á/l  iKÿéöÏ#'G73533#3#5##535#3#735#33535#3353'7#3#33#"''675#]<@@EtB<jj+F+o•-66"T @à  "# (A( % "    3WÿêîÏA733673#5##53&'733#735#35#53#3##"''3255#'67#' h  UU11?WŠ   . '+Ï" **  ,; ! HÿëôÑ-159?OU[7&'327#"''67&'#'6553&533#6'3#3#735#&'33267#"&57&'''6Ø    CT)( [2200  #d k Ñ .#   "$+322 33,  / SÿéõÏ+[7&'#5'63&'3&'&''67'763353#3#"''3255#67&'7&''7##5367#Ÿ$$ \ 5        LV0D  9   #"64Ï      ((7;  & @P ÿéÌ26:>BGKOU[aekq73#3##'3265#3#''75#5''6553#67#7#335#335335#335#335&'7#7'6'&'73#''67&'2fLR   (! '$  ƒr  ZaaL6#/L(0v&C6"   $ 2Ac(; n T - œ   %   ÿéÞÏ733#5#535#535#5367#'6ba3©©œœ©q X! 3Ï Š !#ÿÿR¼ 7##535#35#R-¼£½I88MÿêóÏ $(,73##"''3255##5#53535335#33535#35#â  X55!!5#X!!5##µu+  &CCu;(((b'''DÿèöÏ!73733#32765#"&55#'667#Y# $ ,"22‰ CE B=TÿêóÐ 773#'6#"''3267#5327667##"&55'753753„bm s     3 Ð (G' GAD  F+%*$VÿêöÏ#(.473#33##"''3255#'67#5367#535#&'''6œIP)++ D  )0 _  SÏ4A > \!  #]ÿêõÏ#(.473#33##"''3255#'67#537#535#&'''6 DK')) @ (/ Y  OÏ 4A >\!  #ÿèíi#73#3##"''3255#535#535#'2® KKbb  ccKK6i   VÿèõÒ  (,7&''63##"''3255##5#53#5'35ž!$ ""& 2FFj   8<Ò(,)$I  2n€]sh K99JÿèôÊ$*E7'66553##5'6757#3'6'&'&'3533#3##5#535#'6t Œ..ff SN:,,5577”/C7 1$_6:  "$    CÿèôÏ)Nm777;267##"&55'75'75'673267#"&55'75'75'67''677767'5'75'7Ñ!ACEG'  .0'*CR!"$   )#h )#  ! Ï      „         ! QÿèôË/3773#33##&'#5'67#535#535#535#535'235#35#Û CC7+$ $& &$3<<3388-9 $$$$Ë"! <>a2CÿçìÊ'73353#35#53353#5##535#3#5#'65[,k..k+Ê75GG57ãLHZ ZH- ,A\îÌ%7N7#3#53#3#3#&''67#535#'6733#"&55#'66767#53&''67&'?Wil51    %  $  AW    ½Mk          C   ÿíì'7#3#53#5#535#535#53733#3#3##꺼ÎM33,,00'<<66>>£sfÿòòÅ'7#3#53#5#535#535#53733#3#3##ðwx‹6# !!ůӞaÿéóÐ#'+77'673&'73#3#3#3##75#5#35#33##5#53x  !&*$$$$,c7$$$$$<<==‡ "%   \! *00TÿéóÐ#'+77'673&'73#3#3#3##75#5#35#33##5#53n  % */((((1m;)))))BBEE‰ "%   \! *00%ÿìò¡ ,F73#53635#&''67&'7667'53373325267##"&5536nd»@1““z & k!* >k "0 ' )¡UUL3 ^ B   5aÿèõÇ1G73#7#5'75#35#35#75#3&''67&'767#67#53&''67&'iƒc"======%=    )W /E     ÇJQ/22    %   aÿéôÉ'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335h‚98AA>>5 7$$6&\$$6&N(ÉO""/+ ZGÿèõÈ/E73#7#5'75#35#35#75#3''67&'767#67#53&''67&'P›w'KKKKKK+G    2d 6M   ÈJQ/22     &  NÿéòÈ3K73#7#5'75#35#35#75#67#53&''67&'73&''67&'767#\i%CCCCCC -B     FI    4ÈIP-1 H     # $     ÿçôÈ-2I7#5'75#53#'35#35#5##53&''67&67#'67#53&''67&'î'' Í zffffff9e  "2  H^   m SL=-..         JÿéõÏ &73353353#&''6&'3'67#\)*ŒA$( ('* 7  0€!cÃ++1    &)UÿèõÏ '73353353#&''6&'3'67#d'&†= ( $%$ 3+w]Ã++1   &*^ÿèõÏ '73353353#&''6&'3'67#l"#9$ !## 0 ,v[Ã++1   &*aÿé÷Å"&7#3#67&'#67'5#'6553#ìgl+    -  VVÅC   #R^ kA2 5>]*dÿñó¿ %73#3#535#&''6'&''6l‚8=Œ;6f O   ¿©©   1?  0nÿèöÊ$(7#3#67&'#67'5#'66553#ñ\\#   %   IIÊC   )Re qE6 1%a)nÿé÷Ñ "&7'67&'&'3'67##53#=#° '#   "e LnH²"* !  p SR %% >ÿèôÇ !%)/@DH7#'65536533#&''67#'3#735#35#7&'#"''3255##55#35ðb G@@k,   2 ÇSE4 4@_L0D*/* 'L>C( # % F[  %pMÿéöÒ%6:>7'6'&''66'&'&'''6#53#"''32=#3#3æ75 .8-!3 l Cp  JJJJÒ  #%!    Š2‡n  C ÿèõÏ!%)/5;A73&'#"''3255##5'63&'35#35#7'6'&'&'''6w3)   u g]-uuuuš""œ ’  L"#Ï & `  ,s   ;7“      ÿêƒÏ $(.4:@7'#"''3255##5'663&'35#35#7'6'&'&'''6A     . C ....= J P -Ïm 1}(; /3’      ÿéî£#CHLP7#53#3#5##5##533#73#3#73#3&'73#3#3#3##5'65##5#35#vZÈ\fTRdH==g<<<558 2  ' ÈSE5 5@_A&&r  m-C -  RÿéóÈ #'+1A7#'66553533##"''3255#'3#3#735#&'7677'7&'ò| V   =88337- % ÈSD6 0$`A&&s  o,C! -  ?ÿèòÏ^b73#67&'##'32654''67&''67''67#'66553533#3'67#733265#"&55#7Š#€;     &+  + 5FFN9+, & ##x   '      ;) )P*       #[ÿèõÏZ^73#67&'##'32655'67''67''67#'6553533#3'7#733267#"&55#7˜n5       #.;;C /!"  y  $       ;) -5P*     #jÿéõÏZ^73#67&'#'3255'67&#'67&''67#'6553533#3'7#73267#"&55#7 a0       )44<)   w  &       8, -5P*    #pÿêõÏ!%)/5;A73&'73#3#3#3#5'65#5#5#'67&''&''&'“!%!!!!(l .  g   Ï K -%&  ÿê„Î37;767&''67&'373#3#"''3255##5'67#5#5##     &:BH   2 ^222Î   <  _  (^ 2RîÌ'9P7#3#53#3#3#&''67#535#'6733#"&55#'66767#53&''67&'AWil2/    " š #  AW   ¼Uu         G   ÿëðÃ73#3#3#"''32765#7#537# ¿r ’ ‚ !ˆ:? 8Ã##K! ,6#RÿìòÃ73#3#3#"''3265#7#537#^†I `e \!a'+ (Ã""L!05"OÿéöÆ73327#"'&5#3##5#535#Sx  .''&&"Æp6!#/ƒFppFpÿèöÆ735#53327#"&'5#3##5#qf %mFj.-#!(JWFrreÿéöÆ73327#"'&5#3##5#535#hj  &!! Æcd#.†FppF?ÿèñÅ %7#'66553733#"''32765#'67#ñ€ < 'ÅRC4 2!^J..L8 P29'LRÿééÇ 7#5##535#'67&éooo6 & ÇÞÞ½ª^%)T#"ÿééŒ 7#5##535#&''676骪ªP$ $  Œ£ £‡t€ÿéîÆ 7#5##535#'67&îJJJ%   ÆÝݽ¬f&*Y$?ÿéóÏ$)/73&''67&''67#'7367367#7&'˜V # ""3, !Q< = &~&    &2@1"Z•QÿéôÑ&+173&''67&''67#'7367367#7&'¢O    -&J7 4 #  ~ ,     &3?1# Y” ÿéìÎ$)/73&''67&''67#'7367367#7&'pr% *#%1 . *>8-oOU6~ &    (3=0)"[”7ÿéò%*073&''67&''67#'7367367#7&'‰`$( %! -,!^A B.  ]    &0&Du ?ÿéïÐ .73#5##53&'373#'67#&''6767&'¢>nA;. X^'"'| .-!" Ð // R"G%"<0$ #46 pÿêôÏ273533533##5##5#3#3#"''3267#'667#53&'t""H/LE   1<¶? )3 ,1 hÿéòÐ373533533##5##5#3#3#"''3267#'667#53&'m%%G2MB  0""<¶  B)1/+ EÿèòÏ273533533##5##5#3#3#"''3267#'67#53&'O"6##6"UBbY  F ( /*H¶  A (4K 9ÿçëÊ'73353#35#53353#5##535#3#5#'65T/r22r.Ê75GG57ãLHZ ZH. ,A ÿø~Î073&533#327#"&'#7&'3#33#7'7537> >c J..%  ™78*/U@0"8 `\ ÿëÏ!373&533#3265#"'&'#7&''3#367533#7'7 C  ChQ33  & ™6D*0$e>Ddu"> ‚ÿéïÏ!'+73#"''3267#3#"''3267#536&'3#¨-   2P   Q  %NNÏ F 0XG2|#  pDÿêôÑ04873#53'33##67&'67'5'67#5#5;5#35#¢CžD,x0  @   &#RRRRÑ ."!   > -  +  !2jÿîõÐ$473673#&'#'67#33#3#535#5333#3#535#53s)>( & % !1""4t-))8‚7$$¶  &&;`ÿîõÐ%573673#&'#'67#33#3#535#5333#3#535#53j-C+" *' $6%%8}2!!,,<Œ=((¶   &'; iÿèôÐ(59=CIOU73533533##5#5#3673265#"&5'3#5'675#5373#735#&'''67&''4'i$!!GU$0  J  )) 7  R J¾    J_Z     +  ¢,9!    2M4 o   _ÿéðÑ *73&'73#3#735##5##53##"''3255#c7:† ppJJnl^$   '½  3.1/$, )\ÿéïÐ(=CI7&'73#'65535#3#"''3255'675#73#"''3255'675#&''&'£3n[[2  84 !  )  » >!?2 1<1  "2Í '..  &$ !$n !==!^ÿïóÐ$*26:>7&'3673267#"''67''67&'3#53535#35#35#˜ & s   ” "!Ð  94 ?  < UAAA00000dÿèóÏ#)/73533#33#53535#35#35#35#35#'67&'k5990,5KKKKKKKK  = ¿ww0+,+ #    ]ÿéôÐ $(:?73#3#3#3#5'673&'5#5#5#3&''67&'#367µ,0))))2x  """""v "(   Ð E ' /    dÿéòÉ#';73#3#5##5##535#3#73#3#73#3#3#3#"''3267#7#rs/:),=2 AG%%G##Ozz Ž\V \ É #;;# )  %[ÿêöÑ *0AGM73#53635#'673&''67&'767&''33267#"&5''67&'—F~#WW&        x  Ñ || uZ!      N 1 4   ¥ÿéõÏ"73533#3&''67&&'#535#67¬      ®!!-4%  -?H½ 7##55#3535#H&%½¦¹1!!!!T" \ÿìõÏ#)/5E73533#3##5#535#735#33535#335&'7&'''6733267#"&5l44499994""4"[''9'.  F  g  ¾24 4V6   * TÿéöÑ+/7;73#&''6'3#&''6&''63##5##535#¼)   A'  9#$ $%' 4XXeMMMÑ     ! M M1 bÿéöÑ)-5973#&''6'3#&''6&''63##5##535#Á% ;#  1! !" 0 OO\EEEÑ         M M1 F ñË +F7'66553'#3&'7367&'#5'673533#3##5#535#'6k ’ll_1   "2288<- .9S/C + * eóÏ#73533533#3#&'#'67#535#3351B00>8! .=4(9;1DB¿  bÿéíÉ.267#"''255#'65535#35#'#"''3255#'65535#35#í         ÉË A:#=y:(d*LË A8!!?y:(d*ÿéò€#'+73533#3#3##5#535#535#35#33535#335accQQiiggQQa$==Q=Ž==Q=s  B  B % " zíÏ73#5#535#535#53733#3#3##^LLEEGG/KKCCMMÏU     gÿé÷Ï;AG73673#3#3#&'#3#'67#53655#5'67#5367#5367#&'#&'t*8;+)  +/¸)   #I  <<<<<³ )  ##É5(      4(Y !n +   > ðÍ !7HLPf73#735#33533567&'7&''673267#"&5536#"''3255##535#35#73267#"&5536ÌÌ**>+)  +0¸) ##G   ;;;;;± )  "#Í.!     )#G \ #     3ÿèñ 7&''&'''67&'Ö  )  b E         ÿéð¤  7HLPf73#735#33533567'7&''6732767#"&5536#"''3255##535#35#73267#"&5536ÌÌ++=-*   ,1¸) # #I  <<<<<³ * $#¤-       )!H ] $     1 ]ÿèôÈ "7HLPf73#735#33533567&'7&''673267#"&5536#"''3255##535#35#73267#"&5536aŠŠ'g  x    /  n   È7*      4'Z  $o +   = OÿèôÈ !6GKOe73#735#33533567&'7&''673267#"&5536#"''3255##535#35#73267#"&5536T••+n  "ƒ   3  (((((    È7*       4&Z  $o +    = ÿéöÑ*.28>FJ735333##3#&'#5'67#535#535#535#33535&'7'6'3'6573#&ORR==  2>,; " 7  - 7[ÿéõÏ-O7#5'67#53533#&3#5'67#53533#&3'67#3#33#"&''675#Ž   A   y‡ %,,!,   9*$   #$    !  2 MMÿéòÏ  $*@73#53&'3#5##5'6553'#335#7&'73#3##5#535#536ÍNH, 9 9 3( Ï S kOGFO>-w7R!<<!ÿíò¬)-15973'73#3#53&'#37#3#3#3#535#535#735#33535#335 UT(=Ü<%E5E8ªKVVhãgUUK77K8ƒ77K8™  ?    & ! ÿðòÒ-159=73#3#53&'#53&'67#3#3#3#535#535#735#33535#335€[,Cá>/\-E=°NXXiägWWN;;O;Š;;O;Ò   3 M  .,ÿçöÐ37;73#3#53&'#53&'367#3#3265#"&55#'67#735#35#Y'=Þ<$Z : Q1©1 ' F ? /Ð   6 *Q!  '2 #1/ eÿéöË 48<@W]73#735#'3#735##367#533#7#5'75#'65535#35#75#73#&''67&''667#³<<S<<st# 1  *0      Ë- ,)'  ? L 1+ %3HS+, f $     ÿóðÇ#73#3#3#535#535#735#33535#335&¶QUUeßfWWQ==Q=Ž==Q=ÇxD!!!RtÿòðÇ7#3#5#"''3255##5##5353ïij|x  $DZÕ;Q ˆZ   1    ¸     W 3  -  %" Pÿé÷ÐEKQ7&'#673265#"''67&'#3533#3##"''3255#'6655353'67&'â   "   J  [P  9Ð .!6*$/ .I=5I  D=. , VkUÿíøÏ!17=7367#'6733#535#535#&''33267#"&57&'''6s9 2  <!ta]]_3   ]  l  •  [R  (  ,   ÿê‚Í-73#&'#5'67#535'2#'66537'm **  #/-  B Í  #.†+,A    ÿézÍ.73#&'#5'67#535'267'5#'655c &&  *(* Í  #+t9  ; &# ! ÿëÍ#,73#&'#5'67#535'2'67367'm **  #/-" )  Í  #.s? 1>  [ÿéïÏ%767653'67'56##53#"''325˜     ZA   Ï n QQ3'# ŠÆØš gÿéîÁ!%)7##53#"''325'#67&'7''53535Ü9  4/   ¯ÆØ› ˜sC & Ä!!2^ÿéîÁ!%)7##53#"''325'#67&'7''53535Ü>   :2   ¯ÆØ› ˜sC & Ã!!2lÿéïÏ&767653'67'56##53#"''325Ÿ   R:  Ïn OR3' $ ŠÇØš sÿéîÁ"&*7##53#"''325'#67&'7&''53535Ü5 -*  ¯ÆØ› ˜sB &  Ã!!2 ÿêpÍ-73#&'#5'67#535'2#'665367'^ ##   '& ;  Í  ")‡+.@  OÿéîÏ$77653'67'56##53#"''325‘   "bE   Ï n PU.) " ŠÆØš `ÿõ¦Á7#67&'7''53535 . ÁsC & Ä 1 ÿéÎ26:73#3#"''3255#7&'7''75##535#535'235#335€ ..8  % !4..8-Î=R  ;  Xj=Iÿé˜Ò%-159=73'73#676767'7&''67'67##5##535#33535#35#89G    3:+}Q2Q2½   $     \g g$6 ÿé—Æ%+17=73#3#3#535335#3##'3267#733&''&'''67&'„8//9ˆ9 j oZ! 0  ,Æ''4f:$; &   ÿè¤Ï%)-27;?CGMS75#53533533#3#'3267##5#'67#77353355##67#3#735#35#35#'67&':))))1 !#   5(wwRRRRRR  D«  *  ) &  -X? " "      ÿé”Ë 15;73#535#535#3#7'75#73#3##"''3255#535#735#&'iiVPPV ; C:   ``7  ËI  B8  K  ÿê™Ð+/>DH73&'73673#3#3#&''67#5365#535#5#35#"&55#'67#333535#  -'2>: % & 294&+E !R  >RRRµ    _  _ 6     >  ÿé¤Ï E733533#537'6'&'#5'67#535#535#53&'73673#3#3#&@.‘-S f  M" $2>339  =66@6 Ï///-   ®,.   ÿç¢Æ6MSY73#63#5'75#35#35#675#767#53&''67&'#5'6767&''6'6L   ; )=   ='   K    Æ? J )- - "    ~5X   )  ÿè˜Î#<B73533533##5##5#3#735#335335#5#3'67&''67##567#  ##  yy!-7>   )  .À 62& / &4  ÿå”Ò'+/37=C767'7&''563#"''3255#'67#3#735#35#35#&'''6@    &B    ;ttMMMMMM: Ò $    ?6 $/  !@jK++"    ÿç¥Ð(6:>DJPV73533533##5#5#3673267#"&5'3#5'675#5373#735#&'''67&''4' )$$O[)8  V 00> _ U ¾   J_ZDHLYn73#73##5##53#5##5&'7&'#3#'6553&'75##5#35#73533567'53373673265#"&5@@HCCˆ' W ++'v :'O#    Ì 0""0. !/    ! )) $-1   :  6       ÿç›Ð$JNRVZ`f7'673533#3#7'5#'67#535#'67#535#'673533#3#67'3#735#35#35#'67&'      L     _rrNNNNNN  E °       Z@ % %       ÿé•Î#:73#3#3#"''3267#53635353533#&'#5'67#B4Zjjk   l$GGG_)'' %Î@  6$o   [  )*GÿéòÈ%,073#3#5##535#5#35#"&55#'655#333535#G«:.p.8_-p T pppȵ µp 1# -5„{ÿé÷Ï(7365333267#"&55#'67#3533##5#})  % /00/² K  =</e%%??kÿèöÏ,73533#&'#5'67#73533#&'#5'67#q A    ž11 u[' 4I22H /kj+,BŸÿêîÊ7#"''3255#'65535#35#î   ÊÇ <8 !?y<+g+xÿèõÉ7&'73&''676'367'   = # & U  É")*!r& .%O’  wÿïóÐ#73533533##5##5#3#3#5#53&'w%%C-[Wi9µ Tg mêÒ#)73'67#&''67#'6'&''6ub %$!%$# < J 9"$Ò   #   #  aëÑ"(73'67#&''67#'6'&''6vc $% $$$ >  K 9!$Ñ    , .  ’ÿèöÇ )733#5367#3#3#&''67#535#'6¢A^7.8$"    $' Ç 2% " cÿéŸÏ 7#5'6Œ  Ï©†&`ÿè÷Ñ>CIM7#673265#"''67&'#373&''67&'67#'6553&5367#7&'3#ð  C    U1L O44¬1! 5&%1&/A9!  ;/ /8S%z’ 6iÿèóÏ49?DJ73533#3#3#535#535#33#3##"''3265#67#5363&'#33657##&'#s15500<Š;,,1m   ` $ $ " L ;  ÿèõS!:>B73533#67&'7&''275#735#33573533#67'7&''275#735#335((( '2(((++  '3()E1 0[ÿéóÏ#973#3#3#"''3267#53635353533#&'#5'67#—=`ppo  mNNNf++""  "#Ï; 4 j   X  "97`ÿéóÐ.D733533##5##5#533673'73#&'#'67#3533533##5#'67#†""+  ,# , ) !!!Ð7     $" ;77$  ÿéòÏ0F73533533##5##5#3673&'73#&'#'67#3533533##5#'67#;>??>; M A  E!1 >%A 4::;88=!8º%    "# ;66"  ÿéôÏCG73533533##5##5#3533533533##5#3#3#&'#5'67#535#5#5# <C>>C<$9,,]$¡XcW&8 9'#: 4#ObHŸ9¿ !!. 11?^ÿéöÏCG73533533##5##5#3533533533##5#3#3#&'#5'67#535#5#5#c##%%##C\/;-  !.9-c¿ !!- 2. =MÿéöÏCG73533533##5##5#3533533533##5#3#3#&'#5'67#535#5#5#S')**)'$Hh6C2" %$ #4@2o$¾ !!- !61 =bÿéöÐ.a733#3'67#'6553373265#"&55'73#67&'#"''3265'67''67&''67#£//8 [  4   e/    Ð  H;- .6Q   *         kÿíóÏ.6>BFJ73533533##5##5#3533#3#&''67#535#67&'7#3#53535#35#35#k..),,9 +0+7) A ‡   ¿  8!444$$$$$³ÿéóÏ73533##"''3255#&'·     ›44‰  „ªÿéóÐ73533##"''3255#&'«'  '  ›55„    dÿçõÑ$*.26:@F73'67#&''67#'6'&''63#735#35#35#&'''6¦= #   &  . (qqKKKKKK>* !Ñ    #    "  eH* )   ÿåí¬!%)-39?E73'67#&'3#53'67#'635#35#35#'&''6'67&'w^ ! 8 2_¢09 *}}}}}} 6 #- 24Y'#%%¬    WW  T ! ! ‹    r   GÿçõÑ!'+/37=C73'67#&''67#'6'&''63#735#35#35#'67&'šH   , % $ .  < 1ƒƒ]]]]]] ("NÑ     #   "  eH* )   qëÑ"(73'67#&''67#'6'&''6vb !$! $$# :   I 8!#Ñ          ÿèõc 9=A73533#67'7&''275#735#335'3533#67&'7''275#735#335…(++  '3()Æ(++  '3()R7  7  @óÒ;?F733#&'#"''32654''27&''67&''67#537#'77#67#"MeC# 2. 3F<= D@!' -ZaoZJGÒ      9  VÿéóÌ "(SW[_cgl7'6553'#3'6''73#''67&'3#3#"''3265#3#&''75#535#'67#735#33533535#335&'#{ŠffP",2AnPX  ,# ")&##  L%¥ )1¬( 1 @  ?????«)   * Ò       6 *J  b &   ;!òÒ*;?C\767&'7''673;267##"&5536#"''3255##535#35#7;667##"&5536>! )1¬( 1 @  ?????«) * Ò     < .Q  "i )   A CòÒ*:>B\767'7&''673;267##"&5536#"''327##535#35#7;667##"&5536?  *1­) / @  @@@@@¬)   , Ò      .&?  V     2XÿèôÍ&7;?U7''6767&'73267#"&5536#"''3255##535#35#73267#"&5536—   ]   1  u    ¶ (#    Pd  Ï  &" -)G+  (  QÿêõÈ37;?CIM73#3#3#&'#32767#"&55'677#537#535#5#35#3353353&'35#^-%?P' G& .(  +-&-R%%<8,55È8  $  0   8'D  5œÿéöÏ+75##535#53533#3#"''3255#&'#5'6à     L*6G5 !2BDOÿé¤Ï*75##535#53533#3#"''3255#'#5'6x     T"2C5 !8?FxÿéóÏ#+/37367&'#"''325'3'67##5##535#35#¬    .(  jAAAAAÏ   !$  ?(Qh h&9Fÿé÷Ï"*.27367&'#"''325'3'67##5##535#35#—  *   G;) #'‘_____Ï   #'  @)Sh h%8dÿéöÏ"*.27367&'#"''325'3'67##5##535#35#¥     <2  !{LLLLLÏ   #(  @)Qh h%9kÿéöÏ#+/37367&'#"''325'3'67##5##535#35#ª    80  tFFFFFÏ   !& @)Qh h%9UÿéóÐ %73353353##'6553#3##5#535#l$$‡w"a'--..'Æ))17.# %*@$77fÿéóÐ %73353353##'6553#3##5#535#ztyl[$))))$Æ!++ 17.$ %*A$77UÿéôÏ).4:733#3##"''3255#5373&''67&'#367'67&'v#  "1H      w  C  Ï#f  aFV8# %0J5'&6] (  _ÿèöÑ$>BFJO7#5#&''67##5'673#67#3#3&''67''67#735#35#35#67#ï(   # =1 sEH ) & OOOOOO* ; ©$   ,Q   :  = RÿèõÑ$?CGKP7#5#&''67##5'673#67#3#3&''67&''67#735#35#35#67#í+   & #A6 zJM ,")  VVVVVV.B©$   ,Q   :  = `çÒ#73#33#53537#535#5#5#5#W[EÍD\`C{{{{{{{ÒF F) ÿë`Ï 73#3#&''67#5365#'6#) ! Ï1 %$:ÿèñW!73#3#33#"&''675#735#/¦JRR!.)G/ IW0   *bÿéóÏ,08Q73533533533533#3265#"&55##5#'67#5##5##5#"''3255##5##5353b    /  M Nh  -¶  ++ )),8  #II?-  ÎcE58H&'!  ¹ÿéóÅ7#"''32654'7##5ò  Å?!! !CËÜRÿçôÏ)OWbh7'673533#3#3267#"&55#'67#535#'67#535#'673533#3#67'#5##53'665&'´       @     ZP1!$ '%«        M=>N' PÿçôÏ)MU]c7'673533#3#3265#"&55#'67#535#'67#535#'673533#3#67'#5##5'66&'±     C     ]S9&$!«          N=>O)- $ µÿéöÏ73533#&''67#7&'µ  5 ŠEE?B1#3" 5P? ÿèŠÐ,048I]733#3'67#'65533267#"&55'7533#3#735##"''3255##53&'73673##5#;00= P  %3%  !\\OO//E  <  Ð L>2 /;V     (  4 #>J   mÿðóÍ#73533533##5##5##53&'73#3#m((<1^Yl²I SÿêóJ73#3#33#"''675#735#-¨KSS!0*w  (K„„J*      " ÿèñD73#3#33#"&''675#735#1¥OTT$.)F/! DD%    ! kÿéõÑ 7;?CG7&'67&'67&'63#3#&'#5'67#535#735#33535#335ˆ  2  0  Xt29-  *5//N/Ñ      -O  1. /1eÿéïÎ9=AG73533533##5##5#3#3#"''3267#&''67#'67#735#35#33#l!! mD\      &  GGGG2D GC.    + ) F$ ]ÿëøÑ-159?OU[7&'327#"''67&'#'6553533#6'3#3#735#&'33267#"&57&'''6à    : L##Q----      \  b Ñ .    (*211 30,  / gÿéõË 4873#735#3353353#3#67&'#67'5'67#735#tvv"o‡‡ s* $   OOË973   "(    _ëÑ#'+73533#3#3##5#535#535#35#33535#335XYYMMcc``KKX99L:†99L:È 66  gÿéñÊ#E73#3#5##5##535#3#73#3#73#3#3#"''3255##5##5##537#py4;((;2;D''D((Qˆ?@  /6Ê (;;( * :  $8888=N^ÿéöÈ %AQ7#'6553#'#5'67#535'6#535'673#&'#5'63#53533533ðoB    -    /{&ÈKC? 4A] ) .   (" J22>RÿèòÆ %7#'655#"''3267#3265#"&55ñtw   + # ,ÆRD5 6?_3I1y   ’iÿèòÇ %7#'655#"''3267#3267#"&55ðem   %  ' Çl="!>y4I 2y  ’ ÿé{Æ 7#'655#"''3267#67'5zJ[  ÆRC6 6>^'P 7…  £ÿçñÆ &7#'6553#"''3267#3267#"&5ì²1| S0 >.ÆRE4 6>_3K1t  ÿè‹Ï$7373#3533#7#5'675#'67#) ;B %""!!$8!¯   84" oÿêóÌ!'73##"''3255#535'2'6'&'à ::  775+  I  ÌYB  =V"  eÿéîÁ6:73#3#"''3255#&''655#&''655##535#5#e‰'%        ')QÁ%Š  t  (:  # !1 ¡%%%%ÿçîj 733#3##5#535#'67#5373#3zFFaaiiJ -> x† 0A     qÿëôÆ !.73#735#35#3267#"&5536'33#67'quuOOOOc    f%% Æ_9;= *  _1  hÿèîÇ 07#"''3255##53#536'&'3#3#5#53&'î  `VP,!"82C "ÇÄ  ­Íß  5 #4 pÿéòÐ %)-157&'67&'67&'6#5##535#33535#35#ˆ   4   6   Q0!Q0!!Ð   Qyy-GNÿêîÎ %)-157&'67&'67&'6#5##535#35#35#35#p   C   C  l++=//=++=//Î   Qx x-GIÿèôÑ48<7&''67&'76#"''3255##5'67#5373#35#35#Ð  )' $&!"  F '1 ^g FFFFÑ     d^  ,` +\ÿéöÏ'=C73673#3#3#&'#'67#5367#537#3#3#'67#53655#&'j,?CAF[ 5  ")J7;2 ) -47¾    V # *uÿéóÏ %73&'73#3#3##5#535#536'&'z0 .uT #966//2G / ± #88#zÿéóÏ %73&'73#3#3##5#535#536'&'. ,pP !633--0D -  ± #88#‘ÿéóÏ %73#53&'3#3##5#535#536'&'¿&_$) *&&$$%3 "Ï /$88$ÿèðG73533##"''32655#&'œ00 œ>8$  ÿê’Ð73533533##5##5#35#35# 55'5555£----§§==Œ= ÿî“Î767&'7&''6#5##535#D & 11#P===Î7 # "Hdd>+ ÿü‡Í73#7'6756675#t.%U6= 0&Í Y §ª] ÿé›Ê#)/7&'36732765#"&55'677&'''6H  %   Q  Z  Ê +L0Ki3"   Z)23(9& .ÿò’Æ7#53#67'75'67&'P8v)2A5+3  ³ ˆ  f+  ÿó•Í736767''3#5'675#53W  $&&Í8  u  ËÚ*  Lÿø‚Ð733#5#535#535#5367#'6@0 !WWSSX5 $ !Ð {   ÿéŽÐ$*73533#3#535#3533##"''3255#&'---5€7- U  U  ¶!!Q<  8   ÿì“Ï;767&''67'33#"''3255##5##5'67#53673#3,   ! !.,  !+?HË   \7  #RRA>  ÿò‰Ç73#735#35#53#3#67'675#iiCC*/u3--9:*ÇL(w WÿñòÇ73#735#3#3#3#535#535#lwwOO=66A›F44<ÇM*RjÿñòÇ73#735#35#53#3#3#535#wooII/4|4--9ˆ;/ÇM)‚ÿñôÇ73#735#35#53#3#3#535#‡cc;;$(d(%%1r-$ÇM)!! ÿé™Ð59=767&''67&'#"''3255##5'67#53673#35#35#+  ) l =  (1EL====Ð     _b  &`  #3 ÿçqÐ+73'67#&''6&''673'67:)(2/ !   $#(30ÐB/  b   )S>dôÉ%+7'66533265#"&55'675#53#67&'’ S   ]#, $Z#S ·  #?  6% 4.eÿéóÐ73#3#535635#'67&'×&0Z$ˆ5",,JÐ #;†;R ! _ÿéöÑDJP7&'#67325#"''67&'#3533#3##"''3255#'655353'67&'ã       A RM 4Ñ ,:($  .H>5I  D1 08U    ' 6 &>J!  DÿíìÍ'+73673&''667&'67#3677#5##535#D &   0 c  ¢)H.  '$( "3+Éʦ”YÿëïÍ&*73&''67&'67#53667#7#5##535#|!       pÍ*K,  &%$3)wÉʦ• ÿîSÏ 73#'6#53#3#67'5#53%#*  /  Ï  0%9 HOÿëõÐ (J73#'6'3#3#"''3267#'655#53&'3'67#3#33#"&''675#­8? .   CI      Ð !% k"UM0 4N! A ,:  C#n\ÿéôÏ ,7<@QW]7#5##53&'73'67&'767&'767#'6&'33'673#3##"''3255#'67&'îf<3!)     f  2 ,D00$u4  .  Q »   3      % &A  /' $ Lÿè÷Ñ;BHL7#673265#"''67'&'#373&''67&'7#'6553'367#7&'3#ï#  J ]6 O Z;;­4!"3'$1'2(9"   ;/ .8T$${ —  5 ?ÿìöÑ #/5;KQ7'2'6'&''&'#53#3#533#535#535#&'7&''33267#"&5''6ß 6M@6  +/7ƒ9B”?9ƒ‚ollp: L  W  ! Ñ       " A  8       ! ÿéðZ73#3#3#"''3267#7#,¤¤à™€ 3Z  !  vÿéòÐ %5;AY_7'2'6'&''&'#5##5&'33267#"&5''67&''673&''67&767#ã +=2)     hN:      b  A  8 !  / Ð        N      ÿéï_73#5#535#535#53733#3#3##^MMBBLL1KK@@MM_v~ôÊ)7'66533265#"&55#&'3#67'75# R   0Z&.$ #"› 5  ,  4 oÿéóÐ37;767&''67&'3#3#"''3255##5'67#5335#35#ƒ  ! "GNN  8  $8888É   % b  '_ B0rÿêóÏ!'=73'33#673267#"''67&'#7&'3533533##5#'67#rB'&      Ce  V       £,,33'#C9   i%%%%556. >öÐ(,04733533#3#3#&'#'67#5367#535#53#335#35#N><<*f‚1 ,I( +D6'<>dŒŒŒŒÐ  7    7    `ñÐ,EK73533#3#3#3#"''3265#'67#535#535#73#&''67&''667#(00)).=8  .  !.$$(ŠC    +Ç           ÿèñf#(-73#3##5#5367#536367#33537#3355#an=SSz? 5."69JE,2DN>f; ;  "  $ cñÏ173533#7#"''32655'75#73##5#'6556'%%$' -'Ì &1\"*7» #(( .WÿéõÏ )H73#'6'3&'73#3#"''3265#'655#3#3#&''67#5365#'6³8> M #&    \'   ! Ï ! h$SO1 1D.)(  ÿçòš*I73#3#"''32765#'67#53&'73#'63#3#&''67#535#'6D"60  (]Q[ H/40 (#& % 06 š  P /9 ,N      añÑ (F73#'63&'73#3#"''3267#'667#73#3#&''67#5365#'6ŠT]s*#51   " †D&2)# #  06 Ñ  #       5ÿéõÐ (J73#'6'3#3#"''3267#'655#53&'3'67#3#33#"&''675#¡BJ 5 $#   OR ""     Ð # e(NM0 5L" > +8 E& mCÿéõÐ *L73#'6'3#3#"''3267#'655#53&'3'67#3#33#"&''675#¦>E 0    IL      Ð  $ fQN/ 5L" > +9 "D& m ÿèö¥ 'I73#'6'3#3#"''3267#'67#53&'3'67#3#33#"&''675#ŒW` B /.   &Zc ..&'   ¥  L5;! ,T 0  %#2T&ÿèØf 73'73#3#3##5##535#*KL®¢¢¤¤«ŒŒŒW  ..  ÿçÙY 73#53&'3#3##5##535#ƒQ¹R@££££¥€€€Y '( \ÿéîÊ $7#"''3255#535#5#'##535#35#î   .&,ÊÅ  d\%:J[…à$9cñÏ373533#7#"''32655'75#73##5#'6556'%%$' -'Ì &1]"- 7» #((  gñÏ373##5#'65563533#67#"''32655'675#á &1\"*7¤'%% ''Ï'' - XñÏ273533#7#"''32655'675#73##5#'6556'$$# &'Ë &1\!)7¹  &,, 3PñÏ173533#67#"''32655'75#73##5#'6556'$$&  &-'Ë &1\!(7·  ( 22 6GñÏ 373533#67#"''32655'75#73##5#'6556'%%  -'Ë &1\!(7µ * 99 9ÿîìs 73#735#35#3#7’’jjjj5ÖÖs`9::ZÿõòÆ7#53##5'67&'3#¢B8*?V’’´ Še *$".,*€aÿõòÆ 7#53##5'67&'3#¥?Š5 );Q‹‹´Šd$#,#"/,*€ÿèöÏ'733533##5##5#53&''67&'76•""F  Ï7 1! ". 5" ÿëôÐ -73#3#5363535#'&'333#"&''675#:di})PPVVV 2 %>F P,(Ð @A—!r} D`   PdÿèöÏ ,73#"'63'7#3#33#"&''675#Š]d j  //%'   #Ï  $+4A jZÿéóÏ ,73#'63'67#3#33#"&''6735#€cm t  //')  *Ï  &  +4 #BiUÿìôÐ .73#3#536#335#'&'333#"&'&'75#²&BFY"///33= % +& 1 Ð @?–W} F_   P^ÿìôÐ /73#3#536#335#'&'333#"&'&'675#´%@DW!---009 #)# -  Ð @?–W{  D_   PSÿéóÏ17#"''32655'75#53533#73##5#'6556“  d !>&iH : :++2l%ˆˆ=6 15]9ÿéóÏ'+/N735333##3#3##5#535#535#535#535#3353567#'7#5333#"''67&'‡**--44**##++1€ 3?<5B   ¼"!$,&: A!%TÿéóÏ'+/N735333##3#3##5#535#535#535#535#3353567#'7#53333#"''67&'—$ $&&,,""$$+j/  63,9  ¼""#- :!;%#PÿéôÏ'+/N735333##3#3##5#535#535#535#535#3353567#'7#53333#"''67&'•% %''--$$%%,m0  95.:  ¼""#-!:!;%$bÿéôÏ'+/N735333##3#3##5#535#535#535#535#3353567#'7#53333#"''67&'Ÿ" """((!!(`0  00)2  ¼""#-:!;& $dÿéôÏ'+/O735333##3#3##5#535#535#535#535#3353567#'7#53333#"''67&'¡ !!&& (],  .'2 ¼""#-:!:%"bÿéõÎ673#3#535#535'633327#"''67&'767#'7#æ C "_5&'+   "Î7<<28%  7YÿéõÎ573#3#535#535'633327#"''67&'767#'7#ä G#d9(*/    $Î7<<28% !6DÿéôÎ47'673#3#535#5367#'7#533327#"''67&'»*# !! R""Z$%&;$//5  ° 6;;. !67$ ÿéZÏ#'+/73533533##3#3##5#535#535#5#5#35#335   1  »$:)):$NJÿéôÏ'+/P735333##3#3##5#535#535#535#535#3353567#'7#53333#"&''67&'’' '))//%%''.t2"70""  ¼""#-":!;% $ ÿé’Î773#3#535#535'633327#"''67&'767#'7#ˆ @  Z3 $'    Î7<<2:$ !6 ÿéò™-15@7'6735333##3#3##5#535#535#535#535#33535'#5'6@ 4377<>3F$$$ˆ  '™ !         bN ÿéòž-15@7'6735333##3#3##5#535#535#535#535#33535'#5'6@ 6377<>3F$$$ˆ  'ž "     ePEÿêòÏ"(7365337&'#"''32767#'665#'6])6   "%# !) ¥*;"N)WHMCB $  ÿéóÏ!'733#"''32665#'665#53&'''6aI  4)*(%EEt  • Ï*bD ADGMD?*#) +!*! jÿé÷Ã#73#"''32765#'665#'67&'|[  " j ÃwK$€\M JW% #ÿéò@73#3#"''3267#7#äŸ  •1@  cóÐ573&''67&'67#5367#73&''67&'767#@2  # *%T]    FÐ   2 /    #ÿèÝg"/7'67##53673#"''3255#&#&''6w  7UP  D$ !  (9  ct[  E    hóÐ573&''67&'67#53667#73&''67&'767#@1  # *%F]    FÐ  8 2    _êÐ"&73&''67&'67#53667#73#735#B3  # + ']ZZ44Ð    =  +M)lêÐ!%73&''67&'67#5367#73#735#B0  & !, ']ZZ55Ð   /  'G$GñÐ873&''67&'67#5367#767#53&''67&'@2  % )%Y  La    Ð%   = *$   YôÐ673&''674'67#5367#767#53&''67&'@2  %$ ) %f  Ka   Ð   7 &  ^ñÐ773&''67&'67#5367#767#53&''67&'@1  # *& g  Ka    Ð   3 %   ZêÐ#'73&''67&'67#5367#73#735#B2  % ", % ]ZZ44Ð"    9 ,P. ZæÐ"736533#"''3267#'67#73#735##6  $&"SS,,¼ C'#*V1`ìÆ73#3#5'67#35#Ó~wŒ 1?FddÆ ='"AaÿêòÏ 73#53&'3#3##5##535#¦@‘;%xxxxwNNNÏ  >U U5# ,ó73533533##5##5# 5M<<M5r++++3333ÿçåÐ$73'67'567677##53#"''325YL 3  3*$y3Z ¦Y>($ …lbÆÙ   MóÇ73##5'67#&'Ô]%5E$_-!!,Ç`J"( ÿèáÐ7'6553&'73'#3B#PO‹‹f+6!MM  N;( xóÓ73&''67&''667Wm"0 :..= 4%   Ó      RÿçõÌ!%)-TY_73#33#&'75#&'7##53537#35#35#35#33265#"'3&''67&''67&567''6\’F=  6 3*8WWWWWW  K  %".%   S  Ì A   A       (  :  IÿêñÅ!735#53#3##"''32655'67#'x;Nˆ&,,   "6.$7¦-==] WA-#<LÿéóÐ '873#'6'3#'3#7&'#5##53'66733267#"&5¹.4 ,$m I*&& #!  Ð !&YQL  !SBCT./ &% \ÿèñÑ673#67&'7&''53&'35357#"''32654'7##5}2   b  ÑfL # Á **LB$ 'BÊÛeÿèñÑ673#67&'7&''53&'35357#"''32654'7##5ƒ,  _  ÑfL$ Á **LB$ 'BÊÛ‰ÿèóÑ673#67&'7&''53&'35357#"''32654'7##5ž    K ÑdL% Á **KF" 'DÌÛKÿéƒÎ73'67'67#'67276767s    e;0 4 &*26 iÿçõÏ159=AEIP735333##3#3#&''67&'67#5367#535#5#5;5#33535#33535#33567#u01 16DM  +  )%30 0N0R!!4#( 'Ä  -    -  ' E Q  kèÇ73#3#5'67#35#Î~—*6:ppÇ 9% 8aÿéòÆ73#7#5'75#35#35#675#g‹>'"@@@@%@Ɔ2/ ’$$\$Y ÿézÆ73#7#5'75#35#35#75# l $"%%%%%%Æ…3/ R \$ ÿé‡Ç73#7#5'75#35#35#75#q  &*#......Ç…30 R \$Y½ 7##55#3535#Y33!!!!!½¦º1!!!!T"T½ 7##535#35#35#T/½¦¹2"S!T"[ÿéòÏ#'+73533533##5##5##5##535#33535#35#[!0 0![%%7$[%%7$$¯ )‹‹6$$$Y$$$\ÿèôÏ4735#5673#35335#535#53#3&''67&'767#i56##-67& '"  eL[ ]]^ fÿèòÏ6735#5673#35335#535#53#3&''67&'77667#p12 +23! $    _L[ ]]^   PÿéòÐ+159AE7#&'#'67#3&'73#'655'673'3673#3##5##535#ò   20w!DE>?aaaaa<<<     ! :5 ,68   ^  7 7JÿéòÐ+159AE7#&'#'67#3&'73#'655'673'3673#3##5##535#ò 51|!GH@Aeeeed@@@     ! :5 ,67   ^  7 7 …òÑ73#&'#'673#&'#'68># tG*  Ñ " #   òÑ73#&'#'673#&'#'68>$  rH+   Ñ   %  tÁ7#3#567&''67&'tOOb%   ÁœÀ#  ÿÿ\¼ 7##55#35\66##¼£½I7766PÿèòÏ!73#3#"''32765#'667#53&'® 4VN  8> Ïc# 4+57QcÿéòÏ!73#3#"''32765#'665#53&'° 2QE   1; Ïf  <,4=GiÿéòÌ73##5#'66556à $0Z!'! 5Ì ,††?5 ._WÿêöÏ"73#&''67#5353533655#335ä?) (.3;222!§N130 ".N((N ** <dÿéõÐ *7&'367&'#"''255#3'67#‰# !! H   5 6  #Ð  3:R ŽH"6TÿéòÏ'+/3773533533#3#"''3267##5#'67#735#3353355##5#`$**4   *'( $6(µE"2 RR2 (G T""""Qÿê÷Ñ 26:73#53&'33##367&'67'5'67#5#5;5#35#­>“@(p-  :   $JJJJÑ ."!   = /  .  !2ÿéWÏ73533#&'#5'67#   // y|%%/ÿêQÐ73533#&'#5'67#    00  ‹x )QÿèòË15973533533#'3255#'655#'3255#'655#75#35#V <=  5cm^^^^W  R=%"? W  R=%"? MMMM `ÿéðË#+/37;73#3#5##5##535#3#73#3#'3##5##535#33535#35#h‚:@.,>6? !!>r\$$6&\$$6&&Ë (AA( -h h&: QÿéðË#+/37;73#3#5##5##535#3#73#3#73##5##535#33535#35#Y‘AG53E=""G##F!!F%%8i++=,i++=,,Ë (AA( -h h&: dÿéðË#+/37;73#3#5##5##535#3#73#3#73##5##535#33535#35#l~7=++=5=<< 1W""4#W""4##Ë (AA( -h h&: kÿéñË#+/37;73#3#5##5##535#3#73#3#73##5##535#33535#35#tv3:((:1999/R 2 R 2 Ë (BB( -h h&:VÿèïÐ+/377'73#'65535##"''3255##5##5##535#335335 7p]]s      µ >#73 (6a,@e  !####<{.CÿèîÐ,0487&'73#'65535##"''3255##5##5##535#335335—?€mmƒ  "µ  >#83 )5a,@d !####<{.sÿèõÏ"73533#3&''67&'#535#67#{111+   ,1: : ¨'')'    ')nJÿèôÏ '.73#5##53&'3#&''67'67#53667#¡ ?pC[ #!9 26 %- 3Ï++ 6&  [! ^ÿèóÏ &-73#5##53&'3#&''67'7#53667#¬8a:O 1 +.')Ï** 6&  'Z  aÿèóÏ &-73#5##53&'3#&''67'67#5367#®7]9M 0 +. %#'Ï** 6&  D  mÿèóÏ (.73#5##53&'3#&''67&'67#53667#¯4W4K * & ! %Ï** 6&   Z  vÿèòÏ (/73#5##53&'3#&''67&'67#53667#´/P2B ' $ " "Ï** 6'  Z!  ÿèzÏ &-73#5##53&'3#&''67&'7#53667#A)@) :  "   Ï** 7&&    'X XÿéóÏ$=EIO73533#3#535#3'67#3#3#535#3#3##"''3255#535##5##535#&'a9==7|29•€f%B’=.› ..u>CÅ   $    #   E E+  RÿéòÏ$=EIO73533#3#535#3'67#3#3#535#3#3##"''3255#535##5##535#&'\<@@95<› †l(F˜@2  22{AEÅ   $    #   E E+  dÿéóÏ$=EIO73533#3#535#3'67#3#3#535#3#3##"''3255#535##5##535#&'l5992t/5Œw a#=ˆ8+ ,,m:>Å   $    #   E E+  ÿè Ï'+/37733533#3#"''3267##5#'67#735#5335#35#35#35#9%%/ - %+ %%%M#ÏC"7 "SS3!(F 1 T""" ÿî‘Ä&73#67&'7&''67#'75#53533#~< */+}8E7//00Ä) # ( #  ÿéæÏ 73#"''325'3#Ò   2ÏÌ  ®‘ÿé¤Ï=73#3#'6553&'#53&'67#3533#3#7'75#535#'6_: &{(8!4((""'j1%%Ï :/% %-C B    ^óÏ !'73#'&'7&'''6'&''6''6™m ³  R L ¼ (N Rc Ï@@      #    WóÏ !'73#'&'7&'''6'&''6''6™m ³  R L ¼ )N Pa ÏDD         IóÏ !'73#'&'7&'''6'&''6''6˜l ´  S K ¼ *M Qb ÏLL    #   %   OðÈ +07#3#3#535#35#5#7#53&''67&&67#€%%%%i CCh`   $ 0È2x#33R0   ]ñÈ ).7#3#3#535#35#5#7#53&''67&67#€%%$$i EE!!i `   ! 3È-k-.I $    dôÉ */7#3#3#535#35#5#7#53&''67&67#€%%$$i EE!!k [   -É ( _ % % < %   FðÇ */7#3#3#535#35#5#7#53&''67&67#€%%%%i CCg`  " 0Ç5€%87Y4     " ÿõ‡Ï!%+173533533#3#3#5#535#35#35#35#&'''6 1ZOc %111111=   ¼V;MV44)   ÿùiË73753#5'53675" ˳ˆ¥ ¤˜eÿéóÐ'+/3773533533#3#"''3267##5#'67#735#3353355##5#k$%%. ( "& $6$´D"2SS2!'F T""""SÿéóÏ73533#3#535##5##535#SEGG<Š:EUUU®!!##Occ?,OÿéóÏ73533#3#535##5##535#OGII=>>5}4>‚LLL®!!##Occ?,mÿéóÏ73533#3#535##5##535#m8::1t/8zEEE®!!##Occ?,yÿéòÏ73533#3#535##5##535#y322+j+3q@@@­""##Pbb>,UÿèôÈ@HPTX73#3#'67#'737#'67#'7367#53#3#333267#"&5'37'#5##535#35#\A n  E  F  _XXXXXÈ '   F        _ _!1EÿèóÈ*2AIMQ73#3#'67#'737#73#3#'67#'737#37'733265#"&5#5##535#35#OG  RH   &  P ]]]]]È % & 7  %  _ _!1EÿéöÏ"&*@73&'73#3#3#3##5'65#5#5##53533#&'#5'6l&7<6655=z :*****   ÿê‹Ð',07'67#535#5'67&'3#3#&'367#335J   #+ & <%, /*!A & A5 ‚ÿéî¾73#"''32767#'667#'6–X     ¾¦.,tXLHU!$ ÿê‡Ñ"/<7&'3#5'63#735#'3#735#&''67&''6D  7= '!11L11  >  Ñ   0??3  %  ÿêŽÑ"/<7&'3#5'63#735#'3#735#&''67&''6I  :@ *"33O33 A   Ñ   0??3  $  ÿêÑ"/<7&'3#5'63#735#'3#735#&''67&''6I  :@  *"33O33 B  Ñ   /??3  %  GÿéðÌ #)PTX\`dhn7'6553'#3&'7'6'3#''67&'3#3#"''3265#3#''675#5'67#735#3353353535#335&'#6m•qqbk* 4ErQ]   /& $,%  N% ¤;B< 3@c(   $    #G/    /   ÿé¨Ï159=S73533533##5##5#'673&'73#3#3#3#7#35#5#67#53&''67'&!!!!&    56....7‚8%%%%% _{   +  à  >   R   -   lÿéôÏ!'+/573'33#67327#"''67&'#7&'3#735#'6lJ+*    Jp  [88)$&©&/3 ($$+"D7 DE!:  gÿéöÏ &*.473'33#673267#"''67&'#7&'3#735#'6iG0/   Hs  ^<<,&*©&&')#5 &8)/;7 CE!:  iÿéìÇ 26:@7#5##535#&'3533#67325#"''67&'#3#735#'6ìbbbS C0     0)) ÇÞ ÞÀ®$ %'2,  SÿéêÄ73#"''3267#'67##5##535#W“ ?1 *,Ž```ÄK.=1_iiG4 QòÑ &9NT73#"''3255#'67#5353635#&'733#"&55#'6553''67&'767#&'C&   0 00œ &_  !  % IAÑW   /5  #   4      hÿêóÒ&*.267&'3533#3#"''3255##5##535#35#33535#335Ò  \<==6   #"5<""4#W""4#Ò !!ˆ  555Ÿ@GbÿéðÒ%)-157&'3533#3#"''3255##5##535#35#33535#335Ï  ^>??:  '':>''8'_''8'Ò !!ˆ  665Ÿ@GbÿèõÍ733#&'#67'5#537'6ya5, 4 QÍZA!M`  kT * XÿéõÐ !73#'63#3327#"&547#~]f ddt `Ð  !%% %^ÿéëÆ7#5##535#"&55#'655#3335ëhh PÆÝݹ* k.7# -.ekdÿêëÇ7#5##535#"&55#'7335655#ëaa  KaÇÝݹ, i-8" ~cit*-mÿêíÇ7#5##535#"&55#'7335655#íZZ  G ZÇÝݹ, i-8" ~cis(-€ÿêîÇ7#5##535#"&55#'7335655#îII   =IÇÝݹ, i-7# ~cip'-wÿéòÐ767&'7''6#5##535#¥! +0T>>>Ð8 & FhhF4‚ÿéòÐ767&'7''6#5##535#« '+O999Ð6 & GhhF4oÿéòÐ767&'7&''6#5##535# "$ .4XDDDÐ8 & FhhF4dÿéóÐ767&'7&''6#5##535#š&( 49 _LLLÐ7 & FiiF3 KòÐ#'+>73533#3#3##5#535#535#35#33535#33573##5#'6556333,,//66,,3+E+w )K!.Æ  ;   ; " G AA$ 5KòÐ.26:>73##5#'6556'3533#3#3##5#535#535#35#33535#335å )K" .±133,,,,22,,1+F+Ð AA 2 ;   ; !  ]ÿéòÏ#'+/73533533##3#3##5#535#535#5#5#35#335`4#66AAAA55#a4##6$¼$<((<$N ÿì_Ï7367&''65''6-    $Ï> $% 5N&+$ÿê\Î7367&''65''6-  %Î=   & /F6+ #YÿèõÎ/3733533533##5#3#3#&'#5'67#535#5#535#s=c6;0" "% #-:.RÅ++: 88L+CõÐ/57367&''66'3#&'#5'67#535'6'6®  "<%%  *-"1F  Ð" $#17 (.  `ÿêìÐ73#"''3267#'6##535#„^   QI3 ÐŒ|%(XgG5oÿîóÄ 733#537#537#37#37#zo „(.-1/ÄÃTIII°TjÿéõÇ!%)73#3#&'#5'67#535#735#33535#335zk,5'  *7-,E,Çc(.LK*&9A`ÿé÷Ç!%)73#3#&'#5'67#535#735#33535#335rs0;, "# !/=10M0Çc(0ON,'9AnÿéòÇ!%)73#3#&'#5'67#535#735#33535#335}g*4'  &3+*A*Çc(-JH('9AuÿéõÇ!%)73#3#&'#5'67#535#735#33535#335ƒc(/"  %2)(=(Çc(.MJ)'9AeÿèîÈ  $(7#5##53#3##53#"''32=#335îcQQQQl  FFFFÈSCCS!c-e  A`ÿéôÈ !'73#3#535#3#735#35#35#'67&'mz4?Ž;2zzTTTTTT IÈ2nN.-$     XÿéôÈ !'73#3#535#3#735#35#35#'67&'f8C•>5YYYYYY KÈ2nN.-$     eÿéòÈ !'73#3#535#3#735#35#35#'67&'rt1<ˆ8/ttPPPPPP E È2nN..$     JÿéòÏBFJ735333##35#53353#5##535##5#3#5#'6753353#35#535#535#33535d88 8+  ++"  *99@@8I%%% ; &ƒ(&4 DD 4& > ' ; hôÑ "(AGM7&'7'673#&''67&''667#'33#"''3255##5##53'67&'(  _ 8=      $c/   2  3 Ñ        "1 226E   ÿéæ  $7##535#35#7#"''3255#535#5#vG4444·  I7777Jj´) ,›  LJ) ÿèõ^%73#333277#"&55#67'7#&'Þ˜l    ] '2k ^2   - W*  pÿéìÅ 7#5##535#3533#3#535#35#ìXXX?ÅÜ Ü¼ª&DDP$rÿéìÅ 7#5##535#3533#3#535#35#ìVVV<ÅÜ Ü½«&DDP$ÿêbÃ73#3'67#&''67#R*.91    ÃZG >C -9ÿê^Ã73#3'67#&''67#N&*5-    ÃZG =D -9ÿêSÂ73#3'67#&''67#E"$2 +   ÂYG >D  .9;ÿðóÅ 73#735#35#3#53535#35#35#_yyQQQQp¸))Åg=C=JJJ88888pÿðôÅ 73#735#35#3#53535#35#35#†ZZ4444P „    Åg=C=JJJ88888jÿðôÅ 73#735#35#3#53535#35#35#^^8888T ŠÅg=C=JJJ88888 ÿéxÎ $(,>BFJQ7&'#5'6&'3#735#'3#735#'3#735##"''#5##5##535#3353353255= 7 %.  % . . W      Î   0  0  0 1J """*]%$<ÿèñÓ4<@DHLPT73#33##3#"''3255##5##535#535#'6553&'5#35#5353535#33535#335¦?>2 27   $!400;I;;0BR!!3$W!!3$Ó   U  !j  C3 3>\) &   D ( CÿçòT*06767&'7&'#"''3255'67#'6767'67&'²!!#  $%- d R     4     GÿëôÏ>D73533#3#535#3#735##5##5#53#&'3#3#535#535'63'#6JKMM>?K‡‡``‡ˆ<"x (<B73673#&'#'67#3533#3673#3#5##5'67#535#35#35#$1     * 6/ '( ////½      _ N V4ÿóÍÄ7'673&'767U) l'"-2 6 15  A  '1ÿòðÇ "&54632'"32654&€/AA//AA/'65('66?,+??+,?Ä5$$44$$5vÿêŠË73#vËáOÿì°Ë73#'3#œMËßÃ4ÿéÐÌ 73#'3#73#¼ˆCÌãϲ¡’ÿîßÂ73&''67&'76´  ,M P")+ -*ÂL+7/# Xó¨ 7&'3#{ Xææ¨6 )óÀ 7&'3#3#zXææ»»À74ñÈ 7&'3#3#3#|  Yâ⯯ÔÔÈ0"(ÿøéÅ73&''67&'767#'6_^3%<?-+ 1) Q Å C0%  %- !ÿìüÌ '654'7&547'3#å߬¬8438;5791??1.=<0ÿìüÌ '654'7&54773#3#åß ³³8438;5791??1.=<0·qÿìüÌ!73654'7'7#&54773#3#"»¸ ££ ‘‘,)38;5791??1.=.'¨8ÿìüÌ (.3'654'7&5477#5##535#"&55#'7335655#åߦ€€! _€8438;5791??1.=<0Ç»»™" T#0 eNTd&#ÿìüÌ(,73#33654'7'7#&547537#537#35#0J F³+*- >5E5´5`1-38;579 1??1.=3+N5•NÿìüÌ #)'654'7&5477&'3#'67&'åßT  B®®.a8438;5791??1.=<0Ò0 <"*0+3 5*ÿìüÌ &'654'7&547733#"&55'753åß§]LR <?8438;5791??1.=<0— K MB@ÿìüÌ  '654'7&5477&'#'6åßr" 807 18438;5791??1.=<0À3U4zt:5ÿìüÌ 3'654'7&5477365333267#"&55#'667#åß-8  #$ ,8438;5791??1.=<0¤ # s<85,ÿìüÌ '654'7&547'3533##5#åßPQQP8438;5791??1.=<0…PPqqÿíþÌ )N#654'3'#&5473533#'#5'67#73533#3#&'#5'67#535#'6ãÎ   ] !!+$  *0??1-DC´1??0+CD-*)) vk%51 %%)&%SX))) ÿíþÌ 6:>#654'3'#&5473673#3#"''3255##5'67#35#35#ãÎ3X` b  Q #*/QQQQ0??1-DC´1??0+CD-  y  2s "(E=ÿêþÌ 4:#654'3'#&547#5'6327#"&''7&'37&'ãÎ/  "œA  %++0??1-DC´1??0+CD-Ÿz10"3E< &%; ÿÝÿÛ +"&54632'"32654&3#3#3#535335#€5KK54KK4.AA.-AArŠ744>š@#K54JJ45Kî@..AA..@*'3RRkÿÝÿÛ #"&54632'"32654&33#3#53€5KK54KK4.AA.-AAAFFO¢?#K54JJ45Kî@..AA..@/EÿÝÿÛ '+/"&54632'"32654&#5##5##535335#335€5KK54KK4.AA.-AA"55HG55G5#K54JJ45Kî@..AA..@>UEE W));)))ÿÝÿÛ %"&54632'"32654&3#&'#5#€5KK54KK4.AA.-AA€£L" C#K54JJ45Kî@..AA..@1Q„ÿÝÿÛ 4"&54632'"32654&3673#3#3#535#'67#€5KK54KK4.AA.-AA€2W]a1=–E( ! +#K54JJ45Kî@..AA..@3 ++ %#ÿÝÿÛ 15"&54632'"32654&3673#3#5##5'67#35#€5KK54KK4.AA.-AA}8SY `N  +11NN#K54JJ45Kî@..AA..@1  [ E #c- ÿçõÏ;KQW7&'#673265#"''67&'#3#"''32765#'655353'3#3##5#535#&'7'6Ú   %    ' 8²]'++++#  R  Ï  0!"= / :9%M/8. .6P''^SS^ % ÿéñÊ08<@HLTX73#'#5'67#535'6'3#"''3267#'67#'#5##535#35#7#5##535##5##535#°     W:    ÑSÊ )eb!$#M6A6¼ÈL;ˆBHNVZ767&'7''6'&''#"''3255#'65535#35#'##55#357&''67#5##535#À   &     ` ]Ï9$  3  Æ  :3$&UV<+h. bªÇM<<<<(  ,7.1.iiI8]êp73#ÕÕp ÿõðÇ7#53##5'67&'3#zfØZ(1?X'&!,€ÚÚ´Œq1#)$"-+*ÿøñÐ73533533533##5#3#5#5#!'111V'«¾!ž1’22>>>>VVt‡CCCÿèñÃ'7#"''3255#&''67##5365#53#â  F! +7CXhâf  u %$8•¨ÿ÷ñÊ 73533533#7'6'&'M MâÅ”   ÀÀÀÀ§:/ .5-78. ÿòñÏ  73&''65'3&''653# ,&1 @_!52ââÏBD 00)<@*5 4Mžÿ÷îÎ-1767'67'67676'67'67'676763#Ó $%+6#  ] %#)4! QÛÛ›<""!61=#" 50ÿèñÃ267#"''3255#&''67#&''67##535#53#'#3â  $ & (=MâG&&ŠŠ  rA  9¢&&&&ÿéõÏ&,273#67&&'#67'5#535#53533#&'7'6ˆhc  & 05 .$ *eXXYYI  “c  0)P  ^B  vÿêŠË73#vËá ÿéöÏ 7&''663#~#E C%(@-0 Ï ><9$02‘ÿéæÌ 7#56'&'Ó-/7~''Ì.Œ•!,!%ÿçåÐ7#5##5##535335#335åHEYYEEYH©{WW}''XEEE ÿéòÇ#73327#"'&5#3#3##5#535#535#º  M99GGGG>>DÇcc+%-„)%XX%)ÿæïÑ73533#3#3##5#535#535#X[[PPffccOOXª''"$EE$"ÿéãÌ73'67'536773353#5##YI < 5--Ì}>( / sfoya WÿèäÎ!%)-16;?73533533#3#5##5#'67##535#735#33533535#365#35#35##3*44>+2$" <3 3*!^**<%)9-*=++´;I ??(  I<>  \ÿèîÏ  73#'6&'#53#5'#335#Xa"1  z44 Ï&  ƒtvK888P!¯”7&'c//”07 61ÿòñÎ73#3#3#535#535#53&'{ _aTThâfSS_^Î6DD6ÿéïÍ!'73533533#3##5#'67#535#5#7&'/I0077K 4 * 47/ŒI¦''&&FQQ1 %FFFF9  ÿçïÂ$*073##"''255##53#"''3255##5&'7&'ßße  0Ç  68|—   ³—   ³/!"$ !"%0ÿéÄ 73'>y%!" ÄV&7+5 ÿéñÂ767667&''67&'?. *2 8)*C A'1Á_(8#'>  $!-a ÿñòÅ!7673267#"&55'75'6Ð *3878:$ /+V] #fÅ;K %  P;ÿêëÍ7'6767&'7&''6m#: ;&8Ê 9;,NQ2$"8DÿêäÐ!%73#"''3267#3#"''3267#5363#hW  oœ  ›+M  Ð 8 MN5s šÿéóÏ73#3#3##5#'66R™wbbffÏ&'=° ( ÿêõÌ"(73##"''32655#535'2'6'&'Ü )2jj kk(-`H ÌWB =V%   ÿèõË #7'6&'333"&&#"'663367#Ú Zm b  F¹3PL/HA$ J2šË   #1   * ÿéòÏ'73#&'#'67#5367'63#'3'66Í Ws=0 :'B 7CL^OÏ !0/ shh/) #ÿèôÐ 773##5#535'2353#5'675#73673267#"&5Ò $,ccff#(Vj:": "   Ð¥¥]} !+$ %  ÿóõÏ&7#"''327653325667##"&55'753Õ  f*" B%3:¦Q +_  # b MH ÿìéÑ #73#'6333267##"&54767#H š(ŠZ&1((B MfÑ &"=!% 6 ÿèÞÀ73#"''32765#&''6 ¾ ©*#" ##h9GJÀwM€  /ÿéÌÏ76767'67'67'67676¤,50& JQc 3;"#%-&$°@' :A/  3.ÿéèÏ#)7333#"''3267##5#535#5367#7&'fF1WTT>>:2>Ï-&C 1__4G4qLìÒ"&*.73533&'73#3#5##5##535#35#33535#335a<  aS??Ta"??T?“??T?¾  VV ' #  ÿê“Ð BHN7'2'6'&''&''67'67676767&'7'#"''3257&'''6… /C71  $   5       /  H Ð       k   , : )   ÿéúÒ+/37;?CGK733#3#3267#"&55#535#5367#'635#33535#33535#33535#335G V9N\\# 0.TTKZR +88K;†88K;AATIAATIÒ  H H   H H 8 & B & PÿëÄ 73#"''3265{ Ä¿  ÿéóÏ+/39?73533#33##5##"''32655#535#535#535#3535#'&'7'6]^^O; UUkkUU]q;;;;A  }  ¼))4  )<Aa    ÿèóÏ37;?C73533#3#33##5##"''32655#535#535#535#535#35#3353535cffRRUA [[ff[[QQc&==Q>>AAAà  3 !*   3 + ?!ñ²73#3#$··ã㲌 ÿóôÁ73#33#537#'7#7#Õ† z=è• t:lÁ#r-kh22ÿèó¾73##'6765#53##&´´~A2  @ã;¾=%H<„ÿôðÁ73#33#537#537#35#Ìh` à559P?cPÁx -Q “ B !     8  ÿîó£ 73#735#3#735#3#735#35#3##ºº””rrPP,¦¦€€€€3ææ£S3% 6?& ! "Bÿé¤Ð 7#5'6‘  7Щ‹9ç73#ÐÐ8ÿëò¤7'6553&”9M:K;$3K** $ $ ÿéöÐ 7'67&'&'3'67#€,> N(28 81  H«*#"ޝ0*4 06:+ ÿêxÐ73&''65> 3Ð=;$?\JÿíòÍ7'6767&'7''6“./B'.(, 7>9ÍP8 :e*  '/ 3O ’È 767'56‹ È   žÿçño 73&''65'3&''65œ"(+ 5_  .o#8&& -( %#4ÿêè 73533##5#7&'7'6b__b2    2^^55Q   GÿèôÏ '7'67333#"''32765#'67#536y #qiM  8#$ <,-š $+ \ 7*3@SñÇ 73#5##53&'3#Ÿ 9f=7žžÇH58K«FÿèñÃ!(73#3#3673#&''67&'67#67#^ƒƒ ——4b  ': - +Z 6 à % 2 FÿéòÏ073#'6553&'732765#"&55'75'6Ÿ @€<K 68  +.5Ï K?0 0:W /*< ?'@ÿéòÆ $73#735#33267#"&5'3'6673#V~~UUM  Z,ÆX2RY  [6. )/e>ÿéöÇ.267#3267#"&55#;5#'#"''3255#'65535#35#í? !  >   ÇyHÅUUà  89 !>x:(c*>ÿéšÏ73#3#"''3267#'655#53&'u/*   ) Ï!f!PK/ 1H'?ÿé’Ï73533#&'#5'67#F 22pk*/IÿéòÌ'=73673267#"&5'37533#7'633533#&'#5'67#§  S $,EF7% &$ #3Ì%  !  DGZ( ""+FE)"AFòÐ",7333#"''67&''667##53&o* 6=  \ Ð %     +[UÿéíÏ1733673#5##53'&'3#3#67&'7&''6˜   !sC&  ^^‘‘, !"17Ï38&'9+ L  AÿîŸÍ (73&'73#&'''6&''67&'76J#U9 2    «      @ÿéòÒEKQ7&'#67327#"''67&'#3533#3##"''3255#'6553&53'67&'Ø   #*    N$  !aT  ;Ò '.#?! % 5?<4H  C=- 09UkEÿéòÆ%+17=73#3#3#535335#3##'3267#733&''&'''67&'SœD::G¦E$~ ƒm*    ;  0  Æ''4f;#; &  Dÿë¥Í $(733#"''3255##537'6'&'3#735#k$   9&* ;  && ÍI‚  n‰™?   UF)BÿìŸÈ%+73533533#3#535#35#35#35#'67&'F  ]   .  ¯kkAB0  CÿêîÈ 'B^7'6553'#333##"''3255#5357#33##"''3255#5357#'37#"''3255'6757#i‘kk_i(1  66J::   #C9    "—4D5 5?_1    :    >ÿì¡Î $*73&'73#3##"''3255#735#&'''6F#!Y F  ""0  2  ³  GB  ?%@ *ôÏ,Y75##535#53533#3#"''3255#&'#5'6'5##535#53533#3#"''3255#&'#5'6°(,,//)   Z)--//)   s&7#  33  &7# !  /2{ Âb 7#55#35ÂG5##bXX$>ÿìõÏ.4:JPV7367&''65'3#&'#5'67#535'6'6&''33267#"&57&'''6¼     &.   #2    _  h Ï3  (# /.  62 "_  4  0" Uÿéð873353#"''3255##5##U@B   ?8##9 %##>>ÿë¯Ï1573533533##5##5#3#"''3267#3#5##5'635#L9  /,  ¹ n[ Q JS(BÿèõÏ,M7#5'67#53533#&7#5'67#53533#&3'7#3#33#"&''675#}    J    Œ–*55'!4% C‘)#   $#  !  . L:ÿè›e73#3#"''3265#'665#53&'t2.    $e 2 " !<ÿê¢Ï(.4:73#3#3##"''3255#535#53&'#53&'367#'67&'r    !   C  Ï E  @HW    CÿéðÐAEKQW]ci733533#67'275##5#533'67333#"''3265#'6553&'37#67#7&'&''&'''674'u-%% :R01-"" G     q QWX_2: +  *Ð    8    !2 0/ 32  _  p     Bÿé‹Î 73&'73#3#3##5##535#B I==>>>²  R V3! GÿæõÐ!59?CIOU[a7'673&''67&7673#73#3#3#535#535#735#&'735'6'67&'7&''&'{ O& &z599@’@993!! /#  R  X5  ;¢     ¤t8      T     GÿéóÉ +KOSW]ci73#735#33533567677&'7''67'6773&'73#3#3#3##5'65#5#35#'&''67&'Q™™-y   A B %(  * %É7T ,    d '%   9ÿéõÌ 159>V]73#735#'3#735##367#533#7#5'75#'65535#35#675#73#&''67&''667#žJJ))gJJ((•”0+>  1 / C*     Ì/.(% > J 4( */HS*+ g"      " ÿêô 73#32667#"&55#'>5#ÜC -%# " D¦ % ­J#3(1Nÿéò¬)767&'7&'32767#"&55'67'6i6; $ ' B ; /*¬-  !% S! WO@ÿéöË%+177'23533#32667#"&55#'67#73675#335&'Õ Mo\UMT<  ) OJE69MB Ë*K> #  E?3  %B  ÿëòÊ  (73#735#35#'3#33267#"&5'3'66lqqIIIIWc   %=%"ÊvDPCt >   C((  ÿèöÑ,16<7367#'6733#32667#"&55'67#7367#335&'(_ T ,^ 6D   -  4$ DC6=Q<   P8 #  8, 4*E  ÿèôÉ (73353#3267#"&55#'6765#7#5#35"L#L8 &' . '5ƒK$“É88{D ! K,+ #h88UUgîŸ 7'67&'Q- 'w&%Ÿ  ÿèòÏ '/@73#53635#35#'67'5673#535#'66733267#"&5t%T ....#  52!W%' %!8   #!Ïqq :KS ^  y~Xo$& 6   ÿèðÇ)673#3#"''3255##5##535#&''67&''&''67&'ßeY  EEYf”  I  Ç“  {ŽŽš­@%,%, ÿéôÅ 7&'''6''6767&'¯* - F)-k! HG /!3>Å=#,EH)/@(.  1HR  ÿïòË 7&'3#'67&' XÛÛG'(0l+*Ë8 D'07/38/ ÿêôÏ 7&'''63#3#"''3265#7#œ'1 -,.: 8–g m rÏ17 3"%(C'1ÿøðÏ 73#536'&'3#3#°>ÊuV  ªªààÏ q4ÿèôÐ%7'67#53565#53673#3#&'&'‚UU WZOp 4XbXJ FR <:6%-6Ï  ÿèòÎ%+73533533#3#535#35#35#35#'67&'!b +å0!5bbbbbb 4 -f*!#(²kkCB0 ÿèîÐ-K73673#53&'&''67'67676767&''&''67'67676767&'S 1 ?Ú> ›#* "']#* "'Ð¥ %.+E&  %/,E&  ÿéòÑ.6:73673#3#3#&'#'67#5367#537#53&'3'6673#Y .  3YQUq=) 5$> -ARDJY6 NÑ    "$    ˆ%"   S ÿèòÐ#7;?CGKOU[73673267#"&5'3#5'675#533#3#3#535#535#735#33535#3355#35#&'''6‹" #( #/%(!FF1ª!00>ä>22!99L8„99L8"@@@D## $$;) %Ð    (>  9F    , & (  !   ÿéãÐ!733#"''3255#&''67##53uZ G%) 6CWÐ-  … ''+(:§º#ÿéáÂ7#"''3255##535#335á –@@TB¿  MlÙ[HHH ÿêîÑ"73673#3#"''3255##5'67#H|… ‡ o,>´ x _~#+@¾œ767&''67&'R ""”! ÿêóÐ $(,73##"''3255##5#53535335#33535#35#Ù  ‰MM99M<‰99M<<µu*  %CCu;(((b''' ÿéòÉ ;@E7#5##53#3#33#3265#"&55#'67##5367#'6367#335Ô!qqqq O4;  *#I :$W L .18M9ÉK99K  9  & > B _ê¢7#5##5ꬢC00CÿêöŒ73267#"&55#'6655·  E!Œ & t4+);ÿèôÐ)7#5#'67667##5365333267#"&5ãP1 <Q    , ¦A.H ' 6(-@0o %  ÿëߦ73#"''3267#733#N• ” Á¤¤yO"1]Fÿçî²"73#3533#3##5#535#'67#536q ^i1EE__hhK$1 ²00ÿéñžD73#67&'#"''32654''67&'&''67&'767&''67#/¡E# () 0? G/ - ;Až 26 **       ‘èÆ7#5##5è§Æ5$$5ÿèí£ !73#735#35#3#53&'&'''65——oooo9bÚb4&" $$@ ' #£Y65' $  wܧ733#3&''67&'767#53,,(    >§   ÿìå¬+17=C73#35#535#53#3#"''32765#'67#56&''&'''67&'t$44z333Fw—  ” )W    C8  ¬  Q@  Lt   ÿéõËDHLPZ7#5##53533533#3#3#&'#"''3255##5##5'67#5367#535#35#35#35#3533&'#ï·#<$$ `…4% 0,  )?+#6<<{{{{20 G Ë-- A   ** ( A! ! G KÿëÅ 7&''6_)ÅU 941 ÿéôÒ$*73&''67&''667#&'&'^i'2 32.? <'4 \2# !0"V; 9TÒ       $ P  ?ÿë£Ï%+73533533#3#535#35#35#35#'67&'D  b   3  ³ii@A1  Bÿô°˜ 73##5##535#35#Bnne99999˜{ {0MTVîÊ73#3#535#535'2Ö DD>ˆ6BB<Ê ÿéõÐ+9=C[733&'76767&'#5'67'7267#3#3#53&'#735#367#3267#"&55#'667\ B  %M'  E!ˆEÙBbb'9J  D Ê         32  3  &  ÿéãÏ7335#53353353#5#353#5#FP<;;F´SLcQ>RR>XcLj ÿêðÏ735#53533#3#353#5#5335#gRRVVee=ž9go(%%(Q?`R?Q0ÐÅ%+7367&'#"''3255'67567#&'2ž$ $&   $ .| Å ! '2 #4ÓÇ173##'325567#3#735#67#53&''67&'9‚  e00V .@    Çp w &^: * ôÏ 373533533#7&'7'63#3##5#535#53&'736PSæ'  ¡   277882   š5555B   8   ÿçŒÉ73#'67#53655'6 013.46.;É1O$ D * ÿçò` 7#'6553#"''3267#'667#òº#  G, '.`!#! 3#7   ÿé¢ 7'67&3##5##535#U# 0% HOO\CCCr  K L.ÿë¡Î&EJPV77'7&''5673#"''3255#'67#'#3#7'75#535#5'63&''6'&'J   +D     445    & @2 2W[_w{7#'733#67&'#"''32655'27&''67''67#53'373533#67&'7''275#735#33573533#67'7''275#735#335xHM)E    "/)),* ?b3Bt #     "  ¤ !     | /   /  GlÎ73533#7#"''3255'675#%!!    %³  mÿêóÐ87'673&''67&76736533#"''32767#'67#“  ?      V$9   &1 +! *     # _ C2%!ÿçÄ973673#"''3267#'67#:-I  98 ,$' '$  ÿéÐ!%)-3973533533533##5#3#5#5#3#735#35#35#&'''6 =`s ];qqKKKKKK< # ½"3 1bE & %    ÿñ¹° 73'673'6oJ AL 63`°[/&Q>Z&Bÿëù­7673&''67&'8" +O H1<A"”!#3;&!70(!ÿù·’73'67#&''6d J#` W?   -’XF   "/ÿø»ž&*.2673533&'73#3#"''3255##5##535#35#33535#335/>;;   (*=>**=(e**=(‡  X  ###p.,ÿôÁ#'=73#"''3255'67#5353635#35#35#73#3#"''3267#535#K! 0'7&&&&&&B9(,    ,''„ O $ '(E86 8!ÿøÊ›"'+/73533533##5##5#&'#5'6&'3#735#322B#& `  ;>qqII‹    3; ä¨73##5#'66556Ï /?y26 J¨SS"" %-'5ñ®"=73673#3533#7#5'75#'67#735333267#"&55#'67#7%*  #*$ W' $ ™ ! e  XO D9ê¬73#5#535#535#53733#3#3##n55..33066//88¬ž1 é¯"&*06<7'673&'73#3#3#3##75#5#5#'&'&''6p   -/((((0g7%%%%%9  % m    d$$ƒ      5 éª #'+/73#735#73#735#3#3##5#535#735#33535#335=HH&&FII''^Ž>RROO=++>,j++>,ª& & #D   ) & 3ì²59=AE73#&'#'6'3#&'#'63#3##5#'67#535#735#35#35#5#¡7Q6 ‘ 33.  ,4llllllL+²      K   5 1 æ­ <@DH73#735#35#35#73#735#35#35#3&'73#3#3#3#5'65#5#5#8B ã° 73#3#&''67#5365#'6ha7FJ+ "$, 1AF! °! 2ð±107&'#5'65'3#735#Ž** b @F)……]]±  $B<é¨ $+73#735#35#373#&''67'67#67#Giiii-j  # 5 &-#_A¨D) " *     @ᣠ73#735#3#735#73#735#WooII+FF GFF £<;B B ÿêñÌ73533533##5##5#7L77L7tXXXXwwww ÿéðÏ !73533##5#3533533##5#'67#Z[[Z ,c))d2 *+®!!66C****ZZB5ÿèñÐ73533#3##5#535#7'6'&'[ZZffgg[­€  ‚NN*JJ*V   ÿéóÏ#733533533##5##5##5##5#53533\ !! ÊSSSWW{{ttuu{{XXÿòêÄ73353#3#5##535#rBV`tG[^Ã\]pK^buI ÿèôÏ#(-73#3##5#5367#53635#335367#33535oe9NN…! =?3??SA”6>RIR :Ï j11 j :F  + ÿçíÎ+17735#53533#3'67#&'36733#'67#7&'&'aTTUUc À8 /o S[ ;& Gd# v&!&Œ   4 !$=  9ÿèìÐ7&'3#&'#5#x  Q×f-  ]Ð .(\œÿéïÏ 73#535333&'#…jÜ^Oc/" !#šT">DÿæëÏ73#5#'6553533#3‡UMd#ŽŽ¦c.' (38…  Ï &?616`eT  j7 |Ð73#67'56u1GG!"'. 1Ð:I  ´AÿìåN7#3267#"&553#"''325§R +7  B9z  ;4  K&  \òÏ7733#'6655'667##"''3255#3265#"&55Š@ (j  91 _   $ %Ï 3- 1   . =   UÿíˆÑ (73#53635#35#32767#"&5536G0d >>>>F %- (&Ñ ]] 391  O =ÿèá¦736733#"''32765#'667#K0R  ?.}R3 L094+;ÿæð—73#3#"''3267#'667#D¬fX F1—[!B(13M3ÿóë¡733#3#535#53&'ƒBBT¸P>>:  ¡3UU" 7ÿóð©73533#3#535#33#3#535#53FBEEO¯LBBDDT¹QBB•9!!8ÿðó %73#67&'7&''67#3533#3#535#C¤X'* :@4BAAU»RB    W  9ÿèäª "(73#"''325'#5##53#'3'>&'Ñ   71lG  ª¦  ›€nm z`E'#  $% 3ÿñó¦#73#3#3#535#535#735#33535#335K?FFWÀWCC?++=-j++=-¦f<B6ÿéôª '73#735#35#33##"''3255#53567#Eššssss›$UU  TToªO0 +,  2ÿéñ±#)73673##"''3255#735#35#'67&'I1P> Cppppt› a7  2:=0 %9ÿëê¢ !'-73#"''3265'3#735#35#35#73#'67&'Ö  UU000000UQ 7 ¢œ “‚[98Lk     ,ÿçó®#4B7&'73#353#'67#53365#53673'67#'63&''65Q2 ! # (   #- :5 &  ) 2®  3 .?+!=, 4 $ 4*%-2ÿéô®%)-1673#3#3&''27&''67#5367#35#35#35#67#<®XJ]d" ,%%; , 3D jjjjjj> Q®X     X$ " ! G -ÿêò­ &973533##"''3255#'3#3#735#&'27677'67&'–4  4]ZZPP++\  R  0;  ‡&&q  l-D 4  2ÿéòª %,6>B73#735#35#333#"''67&''667#73&'##5##535#J””pppp7 8F   (V +nnnª;#         11 6ÿéõ¯-28>BF733#"''3255##5373#&''67&''667''6'&'3#735#_&   9&U2       F B  (( ¯=p  Zvˆ=3#  ) $)   EF&<ÿéë³8<@DHN733533##5##5#533#3#"''3255#&''275##535#735#33535#335#7&'i....--‹;M   )39L=**=(e**=(³ F : %  @Q * & 9 :ÿéó² &7;?KOSW[736533#&''67#'3#735#35#7&'#"''3255##55#35#53#5##575#'#3355#•!'  UKK....  <   8H88- 6H64444H6”  "-*  %, 8 _FF %  ÿçôÏ!73533#3#67&'7&''67#535#XVVks3; JJ ,\hX¬##33%, .3 ÿñôÑ'+/37&'3#&'#'67#537#'6767&'3#3#3#¦}C/816 +>M ), Khh„„»»Â   )&" k ÿèõÐ&,28767&'7&''6373#&'#'67#'6'67'6i.1 GO'?R zA"" )),: .Aˆ (@ B> 4S UN >s xÐ  / &"   - ÿéîÏ167'23#5##536'&''&'3&''67&'#367Ø Nq]M )°—?  -  ”"3 6(,: 9$)Ï ..N     ÿèóÏ/4735#5673#35335#535#53#3&''67&'#367(NW#66DA222FUM'#4=,-; 6')#I[  ``f   ÿéñÏ>CGKPbg733533673#3#3#3#27#5'75#535#535#53'#53&'7337#35#35#675#73&''67&'#367_*<6ZMMgv%,ePP\45' 8E'00000P`      Ï     ?I      [ ) + .  )ÿìØ¼ 7#5##535#؈ˆˆ¼ÐЧ”ÿêçÐ 73#"''3267#'6#5##535#K š ’ )cFFFБ1%v$3`f?-ÿèäÅ 73#735#3#"''3267#'67#537™™qq&b  PK BHMÅO)D G%.E5 ÿëïÏ73673#3#5##5'67#35#Oy€ r 9GErr¥re%,‚:U.È73#735#UssKK_9!ÿéäÆ73#"''3255#3###535#!à  ¯‚cPPÆÁ§M];) ÿéõÆ!&+/733##3#5##5'67#5367#5367#3353535#´""t ‹x &*5OTEYJOWqxxÆ,-Y D !  , ~&QÿèæI 7#5##535#æmmmI`a=+ ÿçôÊ %73#735#'333#&''67#53565#335I‰‰aa>¤\DM [ QX\PdAÊI#G2%  90$ÿéòÆ73#735#35#5333#'67&'V€€YYXª““"àI - )p#")ÆF"zn[1 aÿìõÏ,73533533##5##5#333267##"&5467#a((t? +5R­!!""(2  ,ÿéçÆ-73#735##"''32655#&''67##53672  xx¡  K! % A\ÆN(R_ G !ex  Bÿë¢Ï73673&''67&'67#67#T'   ¡C/   "$@&*#FõÐ#-7333#"''67&''667#73&'#E2 '"%S%&"  $  'S"Ð $     *.QÿöñÎ,0767'67'67676767'67'67673#’$  R$  ¡C$ (4/C$ (4-w‹óÉ73533#&''655#Œ%**  &%š// * *$4 )ÿèó¥%)73#3#67&'#67'5##5##535#KŠŠ"ÁP    N% %°mmm¥ *(  1BM M0:ÿéó£#'+735333##3#5##535#535#535#3353535#D<GGL{@<+>ÿé´Å $7'6553'#3###5##53533255j Y55  ƒO)"ONB00P jUgB 9Lÿè÷Ð ,287&''6'3#3#"''32767#'655#53&'&'&'Á  8/)   "WÐ%!%$0%g  =K. 0F-f.XLèÏ 73#"''3267#'67#'67#'6_    0 )% Ï N75$ -%  P±V73#735#Paa;;VG%AõÏ+07&'73#'65535#73#&''67&''667E!L88mC  #   ¹  J &.9(D"  Kÿé£Ð73#&'#5'67#535'6˜    #Ð+ id"0% ÿézÏ7'6553&'73'#3#5##535#+  )#99###d#67h L:()adB1JÿöªÏ%73#3#3#67'753675#535#'6g/ 1% ##  Ï &'VQY& MÿêŒÏ73533#7#"''3255'675#O   ¡..1 E  8:Pÿë—Î73533#67##'32655'75#T Ÿ//1? . < pòÏ73&'735#53533#3673# 7 __^^6å‚ '' ZÿéóÐ&733533#3#53'67&'3353#5#o55A™4   Q^r¾6HP".@cc AÿçòÐ#+177333###5#535#535#5335#35#3#'3'667'67&'˜5500==//""""(s    B  Ð'&uu';1ih0( #&#   ÿéóÐ3;?73673#3#3#3673#53&'735#535#535#53&'#5##535#S87\QQ^^8æ8__QQ\1–‡‡‡Ð      šD D( ÿéóÏ'+3773533#3#535#'3533#3#535##5##535#'#5##535#ƒ-//*h*-v-//*h*-Þ888*888®!!##!!##Occ?,cc?, ÿçæw !73'6573#'3#''67&'7&';1 )™Pe  Q  ]  w;4!';Œˆr"   Yÿð¨Ï '73#53635#35#3673267#"&5s"K''''  Ï \\ 2:1  ,ëÐ"&73#"''3265#'6'3#735###535#‚]   T ]BB3!!Ðj&Q zVC P2!ÿéëÇ %73#735#3#735#73#735#'3353#5#5335˜˜ss2TT..pTT--4D®EÇ=<== k&E 8&ÿëòÏ%)-1573533#3#67&'#67'5#535#3#735#73#735#`^^fi #W"-!* g` CCkBB»T  I@  NT54ÿéê‹"73533#3#535#'6#5##535#I'??\Ög2 ’zzz‹  AH H-QæÉ 73#735#3#735#73#735#6““kk0WW11aXX33É7076ÿëÐ#'73533#3#535##5##53##5##535#.11+g).pLBBP666¿-)+"T T6$ÿéƒÉ $(,73#735##"''3255##5##5##535#35#35#ff@@Z   É><}  .11??H’9'''''OÿèóÏ,0473353353#3#535#3533#67'7&''675#75##5#c!"6D˜A4799 @C%#7o&%È#**!2;>   SÿèñÏ>DJ73533#3#5##535#'67'6776767'7&'#"''32657&'''6_<>>?j=tTTTTTpI  %'' 0)Ìff- **       QÿéðÆ'-39?73#3#3#535335#3#"''3267#733&''&'''67&'^Ž=11A”>u  x j%7  .Æ''5g:$: $  Kÿô®Ï)73533#3#535#3#735#76767'7&'P%&&R %OO))   )3»2;4  CÿèñÈ @DH7'6553'#33#3#"''3255#63&'7&''675##535#535'235#335rŠee 0..5   # !%700-6#1—0D4 4>]1" , ? +@P , 7HÿéöÏ(JPTX^b737533#67'6773673267#"&533#"''255##5#'655'6367#35#33535#735Z %-R    )>' *( %52$$7*b%$7*¿2> E    [  '  #.Dÿï¤Ð%+73533533#3#535#35#35#35#'67&'O  V   2 ¬$$##^^9:*   PÿíóÉ%5;A73#3#3#535#535#3535#5##3&'#33267#"&57&'''6\Ž,%%0•.%%+>%%%%   ^  h  É78`%$$; 1 6 " Gÿë¢Ì $*73&'73#3##"''3255#735#&'''6O!RC  !!*  )  ²  EG  D#=Iÿè«Å#'7367#533#67#5'275#35#35#75#O,0F Ÿ  s"|JM Có{ 735#53#3# iVÀViæU ÿéóÈ ,48@D73#735#'3#735#3673&'73#&'#'67##5##535#7#5##535#SS,,€QQ--S. !L<G 2( ;DZ)))§,,,È>>A    % -M M2 M M2 ÿïôÅ#'+/37#53#3#3#535#53'3#735#73#735#3#735#73#735#vcÚcjjfàfiiSDD eDD ‹DD jDD ³NRRA55O55NÿïöÏ ,9F73#&'#'673#&'#'63#3#535#&''67&''6p*   S.  S?H¨M> d Ï  '   1dd   &  Hÿè£Ï /73#53635#35#3#3#"''3265#'665#53't$N ****.+   !Ï NN +-% 2 " ! KÿéðÏ/HLP733#3'67#37#53#3#&''67#'655333667#"&55'7533#735#•;;F o5-t6>7'+' " 0<9/ ) %``??Ï   H  /7R     () Hÿó™Ð73533#353#67'5#5335#H!    !®""XCT+ 5TCXKÿê¤Ð)/5;73&'73#3#3##"''32655#535#53&'#367#&'''6T     !##,  ¸  ? :+V    V…ðÐ 7#5##53'7'67&'ðt?"  @½        íÈ %+73#735#3353353#7&'''6'67&'ƒff   )' ,   C ÈH&&&&&=ql      >ÿê—Î$*073533#3##"''3255#'667#535#'67&'H   !L ³s  nA6 1;9$ OÿèòÏ8<@DHO73533#3#5##535#3#3#"''675'67#53#&'35#33535#335#7&']=>>CsC=p **ER h  P*C*!<à  "# …  * AAK %  NÿëºÎ%FKQW77&'7''563#"''3265#'67#&'#3#67'675#535#5'63&''6'&'u   4      !!+5$$!2 #.Î+  D; &! 4   !#  ;   ÿêìÐ#)/hlp7#5##535#535#53533#3#535#35#&'''63533533#3#3#67&'#67'5'67#535#535#5#35#ì²`LL]]^^MM::N::S%$#% ( $01455--Cb O   /G9''1x444…%%&& 0      *    nÎw$73'67#'6673#35#535#53#†9 &   8*Zw  #  AGÿê£Ï'-3973#3#3##"''3255#535#53&'#53&'367#&'''6w       $  ( Ï (F  AHY   BÿèžÏ"733#3#53533367'67#''6uN  & "  Ï885+/4ÿéìl!73533#3#535#'6#5##535#=,HHbØb6 ………k 789! ÿéõ”!%)-EK7#37#533#67#5'75#'65535#35#75#73#&''67&''667#î¿A9NA5$$$$$$[5      ”$  > H 3( (0HR ( * h!      #  LÿèôÏLPTX\bh73#&''67&''667#'3533#3#3#3#"''3265#'67#535#535#3#735#35#35#'67&'º0        m"## ,- ! $"‚‚]]]]]] # F Ï            WT<       SÿêòÏ59=AEI]aek73533533##5##5#3#3#"''3255#''75##535#735#33535#335'#3533#&''275#735#335&'#6U%+((+%{5E  "(&2C6&&6%[&&6%K:: :J$#:));)Ç 4(  -; .))  % LÿçöÏ0Ufj€73533533##5##5#3533#3#&'7#'7#535#73533327#"&5#&''67&'77#3533#7'75#3#3#67&'7&''67#N*.%%.*    "Q     N"*$£` # 29 +Æ       1;     %    "    DÿéöÏ!&*.26SY_ek73533533##5##5#33#5'667#35#33535#33573#&'#5'67#535'6'67&''&''4'O()**)(#H    %  W       %s M¾  S=  "5['NM&y =ÿì‰È 73#735#35#35#'67&'I88   *  È¡p O P!9  OÿéòÐ/Ycgt733#3#3##5#535#535#5373#"''3265#'67#33#3#&''67#&''67#535333#5#53335&''67&''6o 6I   <>>>4B7.%;ž     7 6˲+/373733#5367#3353#3#3##5#'7#535#735#35#F$:•&05ay&3311?K@TT/(¥  %&   = , Ò®9?E73673673#3#&'#32767#"&5535#5'67#5367#&'#'&';5 FT& A  +' B; !./b!       #      *T 1 ̰!-73533#3#535#3##5'67#735#&'76?777B—A7|C  "VVb   ¦   %,2$     6É« #73#735#3#735#35#35#'67&'KjjFF\\\\\\  A«) !W=  2Ï­!)-151073533#3#''67#535#7&'7#3#53535#35#35#C322?# *2 *>3&5 % ^ %$¢     / ,,,1 Ϊ#73#3#3#535#535#735#35#3#735#Cy2DD<‹ #§7 7    0а#'-373533#3#535#735#3353#735#35#35#'67&'@666F F6$$8$mXXXXXX F¨#  2J5  4Ê­ 5:73#735#3353353533#3#3#3##5#535#53&'#535#7#;ˆˆ(k0//=!5AAAA5  ?0G)­.,     &1Í« &*773#735#3353353#3#7'5'67#735#&'76>„„%}šš €K  XXa - «+$)      - б$AEIMQW]ciouŒ73'73#6777&'74''67'67276767&'7''67'673#3#3#735#&''&'7&'''6'&'''63533#&'#5'67#e5       _     L----)) T _ c   L   DCC$ ($7¢                             "  IðÄ73&''67&'#367*¦$$6<+*7 5&+#Ä#   #GæÆ !73#&'67&'6'&'6ÇÇeM o  Æ    RîÏ73#73&''67&'767#'3#O%g    PTÏ}w)    oLžÐ7''67'6767767&'Œ  M -#:7@$ ÿðôÎ+73533#3#535#&'''63533#3#535#&QVVdÛcQ‰"O !'OQQjçiO´4  "  CóÎ"3767'7&''667&'7&''6'67&'7''6f ') >GT  &+T %*Î   "  ""   ÿëõb"73533#67'675#73533#3#535#)))1<)t)**1v1)F( ,33>õÏG73533#7#"''32655'675#733327#"&'5#&''67&'767#53%    #%}+     ¯  2A/     ^ÿéóÏ '73&'73#&''67&'763#5#533^C>•b    o\© n 9çÐ#<7'6733#"&55#'665#5'66767#53&''67&'K$ "’ %   *  ,AXr$)  Ð !  ! K=     SBîÏ73##5#'66556Ù )8l#5  AÏFF "'"LÿêðÏ67#'66553&'767#533'67##"''3255#53&'ðy ? Md"   .5¹L?0 -!W  ?  C  ? ÿîñÌ4B735#535'273#3#3#535#73673267#"&5'353#5'675#Xff#)WX %-ddWWfâhX€  ! ‡66'ccl     ) J T¼ 7#5##535#35#¼° ¸G58 BöÏ,73533#&'#5'67#73533#&'#5'67#-&&  %p)0&  °CC %)(JK() ÿðöÏ#'+;73533533#3#&'#'67#535#35#35#35#3533#3#535#)_**3;% .A1 +:1);______ 000XÀT0¾T # T14A ÿèñÏ!1L73533#3#535#3533#7'675#73533#3#535#3#3267#"&55#'67#%QSSbÔ^Q #((+-3#q&''-n.&yàM   ( ) D< A 5 0  &- !=èÉ)7#67'7&''535357##53#"''325€K  ) 777i.S ÉQ&  ƒ zŒ\ Pÿòòi73#3#3#535335#[“@99D¢ @i#??T.îx 7'6'&'&'''6Ñ& !Œ ! !!w5# "2$%03x       Pÿêñz73#3#"''32767#'67#53&'ª>]R D $ ,&Cz  8 )< 8ñÊ?73#67&'7&''735#35#73#3#3267#"&55'67#'7365#XE!2222Rl(/$   " $ 1ÊT' f0/* $#!]ÿïõÏ%+;73673#3#&'#'67#5367#7'6'&'3533#3#535#l/69J# %!,+g  N  %&&9…:%š  # @     ŒI=ôÐ#(.47&'#3##"''3255#535#5'63&''67&'–#, "CC   BB+ 2> dÐ     B    YÿéôÆI7#5##53#67&'#"''32655'67&'''67&'767&''67#ím\#     ' .    (!Æ0 2(  02  "&       ÿïñ¢'+/?73533533#3#3#&'#'67#535#535#35#35#3533#3#535#/%2%%((>>( 2")3 +9=%%%72222,,,]ÅV,•  #/?K<òÊ73#735#35#53#3#3#535#^‡‡bbAF¢JFFK§JAÊ1KRÿéòÏ#06<B73533533#3#&'#'67#535#35#3#"''3257&'''67&'`!&#   "#0!!  A P P  µ" %$"""H[ =$ SÿðôÐ !%73#'63#735#3#53535#35#35#wku kkEEd¡%%Ð >@AAA/////(ÿïð573533#3#535#6JNN\ÈXJ#4òÏ#'+?73533#3#3##5#535#535#35#33535#33573##5#'6556244--2233--2.H.x )G.à  B  B & " P QQ,# #>3ÿòò¤,<73533#&'#5'67#'3533#&'#5'67#3533#3#535#”$     W    CFFW¾TC’  '*  .1P ÿïô§ 073#3#&'#'67#5367#735#35#3533#3#535#+ª]/ 'D ' -D6ƒƒƒƒ455V½S4§L   -* TJLõÊ%+17&'73&'##'32765#'67#&''6'6f ,U    / ,2 >    Ê    6MA    *WÈ7#"''3254'7##5W È)  )ž )\Ï 73&'#''60  Ï  s~UÿéõÏ5:>B73533533##5##5#3533673#3#5##5'67#535#67#35#35#X 3##3 +* +D ZR :<+E ! RRRR½   ] N  G1zÿüÈ` 7##535#35#È<****`W d#4=ŒÐ#'+/37335#535#535#53533#3#3#353#735#33535#33555--22//**66i-D-[< <[ ;ÿë¥Ï 173#53635#35#3&'73#3#"''3267#'667#r$Q ----# 41   ! Ï OO +-7  2   4~Ð6767#"''3265'67&''67''67&'767&''6`    # (#!  (Ð            5ñÍ37INTZ733#"&55#'665'6553'#33533533#3#535#35##53&''67&67#&'''6Ù  jgBB> [ D _     .F   Í  # 0534."       2î«"&*G73#3#3#3##5'673&'5#5#35#''67'67'676767676¹*0(())3i  !$$$$$/?!   «    A %   -     :òÏ!&*06CHL733#3#5##5373&''67'&'#3673#&'''67'#5'6&'35#D**7U0NV    ¡==C @  0 W %> 66Ï !2#        õÊ "&*0AEI7#'65536533#&''67#'3#735#35#7&'#"''3255##55#35ðÀ%  `VV5555  7   >O>>Ê>4' (0H:1-#,33  .; K lÐ&73'67#'6673#35#535#53#‹7 '    :*\  #    B LÿéïÍ #'+/3AH73#735#35#3#3#5##5##535#3#73#3#73#3#3#''67#&'#6[††````’@G43F@##G##W33W33T‡‡£ 8@ +~.$Í=% (++(        yîÏ#'-373533#3#535#735#3353#735#35#35#'67&'***2u0**See?????? 5 Ç) 9X> " !      DÊ73533#67'75#  “77L  V ?ÿêóÈ !'+17=CIY7#'6553#3#3#535#535#735#&'735'6'67&''&''&'3533#3#535#òv244:ƒ7332  .   I  s !877>”D8ÈSE5 6?_8       U         OÿéôÍ#GKOSfjo73#3#5##5##535#3#73#3#73#3533533##3#3##5#535#535#5#5#35#3357#"''255#'65535#35#Z>K95G=))G--V88V::`%% :  \   Í %//' " '  ' / ;n //#4ÿöíÏ73533#3#535#accZÈYa‰FFnn ÿòóÉ73#3#535#535'2Ø )1jj^Î\hh(-_É@RR> ÿçãr 7#'6553#5#3#35#Ï—¿AA—BB,,22XE ?ÿëåK7367327667##"&5??5 8E'=$K  # ÿêòp7#5##533267#"&5'3'66ë¯z'5!.-p./"F  L+,  "ÿðîm73#535##53#5+3'&'7'6¦HÚE.Î.((X    X0.X: ÿïï}#7#5#3#3#535#535##53535#5##3ì9//OÝL./8\///-}1==!3|)((ÿïí„'7#5##53#3#3#535#535#3535#5##3ì²¥/88KÛI88/B!88!88„2 !3 33R"!! ÿéó’-59?73'67#3#3#535#3#3##"''3255#535##5##535#&' à ̧C]Í^Ræ%   EE®`((([  ’   #   D C)  ÿëîÆ37'667#533#"''32767#7#3&''67&'767O +)¶. 3aN # #  fK-JLIaJI!%  #  ÿêõÐ!+73&&''67&''6767#73&'#>= >; ;>$ $  /b% ÐB%"(3*.BH\ ÿé÷Ñ973&''67&''667#3533#3#3##5#535#535#\l (/ =0+? 4& + ^2RRRMM^^^^MMRÑ     NÿéòÎ%7&''67&'7673&''6767p  k+(: >+(8 5 )-"  &@## ~$#3ÿéòÒ5:767&'7&''6&'''63&''67&''667h25 # KT+Y(" (> , 0k %6A,,: 5'2Ò  #     ÿèôÏ3873533#3#535#&'''673&''67&''667'OUUfÞdO( &J ( (. g!:?.+: 3& 3º*   ÿéñÈ%)-1673#3#3&''67&''67#5367#35#35#35#67#×fVhh+)B+,; 2$ '(>Y'‡‡‡‡‡‡FWÈg   g** *Q  ÿçòÓ &BFJNS733#5#&#'67##5'6367##53#3&''67&''6'35#35#35#67Z] 8G5 " >- g [ ,³qo  +?/0:%$ "Ó %  ‚RR   K  /  ÿéóÈ (:>DJbi73#3#5367#5#5#35'33#7'753773#3267#"&5735#'67&''3&''67&''667#ÝdBf~!!!![J  v<, g' )k- *:\'4A/)5 ," +SÈ VV"  @@=C3   !D          ÿáòÐ#3DHNTkq73#3#5367#53&'7365#5#35'33#7'753773#3267#"&5735#'67&''3&''67&''667#¢ Ai?d;3XL q7'  j# %m) '1 D 28*'6 -  /  ;Ð TT  @  @74A6    F          ÿèÍu73'67#&''6c j'‡ }!d   ;u  B3   ÿéñœ ")/7#5'673&''67&''667#7&'C  &NR!! &  !0D   œ{X /4C    %@0/  ÿæëÏ".26:>DJ733#5##53''67#&''635#53#3#735#33535#335'67&'fd&.b²`"* a3L 2 GC™BE 44H2z44H2[,)\* )Ï  ((  m  D) %      ÿçôÏ73533#3#&''67#535# SZZe\ DI"T S\`S¦)))BK:&%4- ÿéóÏ!735333#&'#'67#53655#335$JQ\G MM ET[J^?¦))I7G;&", "" 6 ÿçôÏ#73#&''67#5353533655#335Ô^F J8* N`II45I:¨N6E2!,N''N22;ÿéÏu73653#"''32765#'67#.AL  :F >=V O.H7 ÿçöÏ%73533#3#&''67#53655#'6@0PP`]H NN MX`9 Ç,, 5 55""- " ÿéáw 73533##5# WVVWC44GGÿéñÏ#7366533#'67#7&'&''vW^U Lm: ‰$@S&FH;*ƒZ2ÿéäj733##"''32655#53&'š66  ~~N  j: 6 ÿçÊb 73#'3'6573#¶0 '>byy./"*n)ÿïæ7#3#5&''67&'76Öšª½•  %  k    ÿé÷Ð")/7333#&''67#535367#'636565#335\W 2WD H\ R]a P -68L7Ð C& 41#C k% 0-ÿëó‘!%)7#3267#"&55##535335#33535#335ÎF % 1%3GG33G2y33G2w_  n'9ÿèÞ„'7675653'67'56##53#"''325u #$I 4  +{.V „ 5$9 QwŠR ÿéõÑ97373#3#3#&'#3533#3##5#535#5'67#537#537#!O]ack…* "T 777OOPP: -> 6?J½!''  ÿæôÏ(873533#3#535#'333#&''67#5367#73533#3#535#H?DDS¶P?1mb[B I M AYjg.CEEV»RCÄ   x '" L   ÿïñ’73533#3#535#3533#3#535#;:<<`Î\:NQQjàdN~A ÿçõÏ'A73673#3#3#&'#'67#5367#5367#3#3#&''67#5365#[Z`_h‚1# *J* 2D=GU/l,VZ4&).; AMS-¿ $ Y    SçÏ $73#5'677'673'67#&'&'P !7EJ A8 `  Ï|%   % <- 7ÿèð“"7#3#3#3#67&'7''67#535Ѐxxxx  58 IR8-“     aGïÏ$73353#5#'67#535#73533#3#535#   @4P755/p.7Ì"‡0  ##//=ãÑ 67'2'6'&''&'&'#'677'67676767&'Ù Or_O8 7 ‹NN "/3E$Ñ      0     "#ÿèÚ|"&*7#"''3255#'65535#35#'##55#35Ú  97777'33 |w  ")>(=Cl{.ÿè׊%)-7#"''3255#'66553533#3#535#3#735#×  ƒ &#''2r.#[[;;ŠŠ  t;0& $D   (1'ÿèØs$(,7#"''3255#'65535#35#'#5##535#35#Ø  75555#"""""so   !'9%9 >>>J11   ••u$@.3330 ¡      8    @  ÿèàŒ'-3973353#35#53353#5##535#3#5#'65'&'&''6S+h**i+ %  % ˆ"!1 1!&¤42B B2 &72     # ÿçñÏ$(,8<@73533#537#53#3#&''655#35#35#'3#3#537#35#35#ehh!T!D4 D I ]eŸ####šT#G####½?GK%@7%/D?I +LKK, + ÿéÛ "&*26:>B73&'73#3#3#3#5'65#5#35#5##535#33535#35#S$.777`’@@T>’@@T>>     1   HH # Kì… 73#735#33533573#735#335335gg hh  …::wóÉ 73#&''67&'67#53667#¤C  " $ ! É 2     c( hìÍ73353353#3#535#!@>Rc×`TÁ((/RòÑ &7'67#73533##"''32655#&'. ) /^## ^# ‘  Si; 6   ÿèôf9@73673#&''67&'7#67#'3&''67&'67#53667# ?  "  s3    " $ N      7&      A )ÿ#73#3&''67&'67#5367#67#:`*2 % "0 $‡       Q cÿèôÈ"73#735#333#5367#'67&'”NN--4a ‘b^% HÈF&F< ÿûÖ›733#&'#5'67#53¤   ›IO!)HñÇ0573#67#5'675#35#35#675#73&''67&'#367t&- $/////V`   ÇEQ-1 G.   "FJïÏ%).7533'67#3&''67&'#'65535#67›?*+   & && ¾    ! %#&& IâË!'-7#5##5##5##53'667'3'667&''&'à//Œ2 i1 ƒ [  ËZHI[ZHI[5 5 &  jÿéñÐ !%)-73#5##53&'#5##5##535335#33535#335­9a7R!!44!!4!U!!4!Ð .. Km// o*B`ÿçôÏ%+CJ73673#3#&'#'67#5367#7'6'&'373#&''67'67#67#j1;>L# ',k  O  #B  ( $@  £    :    €      [ÿçòÏ.2673353353#3#535##67'7&''675##535335#335o0>;1w5 :=""211#È#**!36;   H *OÿêµÏ  73353353#3#67'5#'655_  HHH= ½-??-> D  A '$ #Kÿé§Å ,73#735#33535#3353533#"''3267#'67#^II ) <$    $Åa8?@D 7 % 0YÿìôÉ!'-=CI7#3#53#3#'67#535#'6&'&''33267#"&57&'''6ëss†0=!*/ #  $,5    [  `Ég‹   0  -  1 4  M…Ê$7#3#3#&''67#537#'67#3#5…1,      XjÊ    [}4ÿçìJ73#&''67&'67#53667#{b"  "C 2 *5$3J      0  CôÏ59=A73533#3#&''67#535#73#3267#"&55#'67#735#35#35#"""(*   "$'"ck    EEEEEE¼   Z   !  A ! # xÿõÇl7#"''3255#'65535#35#Ç  !   l` ++-{ÿûÖg73533#&'#5'67#{%$$   U  /4  ;õÍ #)/573#3#537#35#35#35#''6'6'6&'''6f‹93u-=OOOOOO;% "#) %!!+ '‡ $ Í VV "  W       Qÿè¯Ï 073#53635#35#3&'73#3#"''3267#'67#| H$$$$""4+   Ï NN *-6   3! 8=ÿéöÏ+05;733#326767#"&55#'67#5367#'6367#335&'o%  -! - * $   "Ï  H; A5!*H  ^(E[ÿèôÓ#H73#3#3#"''3267#53635353#67&'7'5'67#53&'<^vvs   r KKK!C6  -   %2:Ó=   l  L    .      YÿîòÏ8<@DH73533533##5##5#3#3#3#3#535#535#535#535'235#33535#335^!(%%(!~3>>5566A™E8877AA4;&$$7"Y$$7"Á   E    E  K ' UÿêõÐ"&<Y7'6553&'73#3533#&'#5'6773533#&'#5'67#676767'7&''67'67x<PPb>$- "+ (#Ï       ]   \ ,    YÿéðÏ (,04EY]73353353#3&'73#3#3#3#5'67#35#5##"''3255##5'673&'7&'#735#f'#ƒ57////8€ 7&&&&&q  g%  (  ?Ê!  .    > +CR/   ÿèñÉ4733#"''3267#7#'67#33##"''3255#53567#&ž 5  7 C :7 .+`dd  iiGÉ+:"+B($6>. +ÿèïŽ733##"''3255#53567#2™#dd  ccxŽ : 6€áÑ 7'2'6'&''&'× Np]OC  +  Ñ      `îÏ73533#3#5##535#eddb±ce¹22 ÿèðÑ;737#535#53533#3673#33##"''3255#53567#'7#-4!rT@@::$ 2JN#[[ \\J'-1l  ) %  ÿéów733##"''3255#53567#7 hh    kkow. * /ÿéó‘5Q733##"''3255#53567#33##"''3255#5357#'37#"''3255'7567#R|GN UUXCV''  ..;^P   &) 4‘ ?   SíÑG73#67677'7&''67'67#67677&'7''67'67#53&'736ª ;+  $/ %-Y  $/ %-/9 < Ñ              ÿæóf %7#'6553567#533##"''3255#óÄPa†XX Pf*& %-H   GôÐ#'+JO73367353#3673#3#5'67#35#35#73'73#3#3##5#535#53&'#37#7 EHZ 3366X(+/**++/ +$Ç   $#D ) 6 _    Bð° 3873#3#53635#35#73#3#3##5#535#53&'#53&'367#>(FJ[5599* $2++**/-°' &X" > L    + ÿéèq73##"''3255#Ï[    `qZ  WÿéñŽ73533##"''32655#&'‘<< ‘;  n W R  ÿéô™73533#&'#5'67#^`S%9 ;%"9 : Pr''59jg5! 3ÿëï“ 7&'3#'67&'… ]ÛÛG%&-l)(“  ' 2#%#) +"ÿéò73#&''67#535'2 !'mbMJR S ac"L!*.-&ÿêò•&7''6767&''3#3#"''3267#735#Õ 00!%% ˜I:=  = 96:!) @T W1 _:8;ÿèí‹!73#3##"''32655#'67&'6““$Ûb e4 ‹E @ # 0ÿéÖ’ 7#3#5##535#35#Ç„“€rr€€’@Q ©.x!'ÿéÙ 7#5##535335#33535#35#ÙŠNN::N<Š::N<<}” ” 9&&&a(((ÿèðž373'667#&''67#3267#"&553#"''326@3(1,&#    œ3'& [   ž 8B 5'    'f " }= ÿñëƒ73#3#3#535#535#&'3–AKKcÕ^GGAwƒ%44%?  ÿéñš$73656533#'67#7&'&''r S]P ?e9 ˆ% C<17*i    >'ÿéð—%73533#3#3#&''67#53655#535#)MKKHHb^G G!I FXbIIM…  ("  ÿìï 17&'3673#6732767#"&5'675#'67#¦ {AxU( + A 9<  >*  LI/(?*ÿêÙŸ 73533##5#735#3355##5#*MNNM;;O;;;ƒi00>C(ÿèØ73#735##5##535#:ŠŠbbŠˆˆˆCASS2ÿéî•!%)-733##3#5##5'67#5367#5367#3353535#/¢tv !(AE/BPTZkvv•#" C 0   $\ÿéó¢ %73#53&'&'73#3##5#535#536…SÃX` Dh]]^^gˆ¢  )   $$ÿéï #'73533#3#3#3#5##535#535#535#35#/GGGMMeeHKddLLG“ J K|6PÉ› 73#735#35#6““kkkk›K- ) +ÿéÖŸ"(733#"''3255##5335#35#7&'7'6uM  ƒJ6ƒƒƒƒ  ‚ Ÿ*s  0Œ'<^  ÿèð“373#67&'#"''32655'67&''67&''67#.¤H  $% /A F0,6 9)#" -%>“   +0 #% !  ÿéí“#'7#'66553#3#67&'#67''3#X £¤O   D  zz:.# %G6   ;8 {ÿèõ›#473533533#3#5##535#35#3'66733267#"&5(-...!p!-A../?<&   ) ˆL::L1-+!$   ÿæòœ73#3#535635#&'''6·2@‡/Få3F2EES" !"@*'œ %Z`%=   [ÿéß73#3#5##537#35#35#[„7=[.8[[[[DJ ÿéñ  -7'2'6'&''&'3533#&'#5'67#À ñ¤%+7&'3673267#"&''67''67&'v5',7 , 7  ! °  ¤  -'+ +    ÿèô™!A733#3&''67&'767#53'3#3#3276767#"&55#'665#›330     CqKKe %  G3™     *M  R/+ ')ô¦'+/73533533#3#3#&'#'67#535#535#35#35#-%2&&D. !!W& (C%92222›  !0 ÿéì—873353#5#'67#535#73#3#"''3255#&''67##537#7-Oƒ66  $  5;‡$4®B-"<d  O  !k|ÿèô˜273353#5#'65#535#73533#3#&'#5'67#535#"  =-P011:-  &50‰.¯F '$"(ML#  ÿéìŸ 057#5'673#535#535##5##53&''67&'#367B  %/pn\UU^‰|m "* *%  Ÿ†j '$D  >        ÿèó¢'+/5;73533533#3#3#&'#'67#535#535#35#35#&'&'+&4++11F9 '%=0 (5A**&94444)$''DAAC“  2*   ÿéì™ %7<73#535#535#'&'&'#5##5'673&''67&'#367eljXQQZ,  Õv=j !)(#   ™D        "      ÿèðª$*GKOSW736732767#"''677&''67&'3##"''3255##5#53535335#33535#35#F:(*))83* 1¨    PQ==Q<==Q<<¢) !  4    :9  9  ) ÿçñ¬#)/7373#33#53537#35#35#35#35#'67&'+MHKG$Û<Itttttttt( %`$%$#  ee & # # #       ÿèø›=C767'7&''5'665567&'67'7''5'66556&'m     0…      3P  ›y ƒ!3+ )3, Z3:_| ˆ!3+ &4, $&ÿçö¨.26:73533533##5##5#3#3267#"&55#'667#735#35#35#0%4$$4%§. & 1 (",)+€€€€€€ž  h   K *,VÿçêŸ *73#535#535##5##53&''67&'767#gijYRRXƒo_  %$  HŸD  @!"     ÿèò¦)-1573533533#3#3#&'#'677#5367#535#35#35#35#,(0++%AaUBLM ;K[I$(:00#yyyyœ I '# I+ (  ÿêò¦ ,0AGM7&'73'67'3'67#&'&''63##53##"''325''67&'¿M?, .G A$    ,PPT¾W   # % s! !k F   4(  '%'     ÿåòª159=AEIP7#535#5#53535333##3#3#&''67&'67#53'35#33535#33535#33567#`=RIIKKTg„3 !%+%&L 2" 8I77K9„77K9@@TBC H5''    b! 8 F  ÿéò¥/37;A73#33#&'#"''3267#'67#5'67#535367#35#35#35#3&'#/ NQ .   5 A 4 # $38<yyyyyye H¥L   "   L# $ # %ÿèñ™ !);@73#535#535#3353#5#'665#535##5##5#53&''67&67#ljiWOOXQ  5,Ñg _ "((  + ™D  "1¯G   (     ÿèé $,073'73#'3353#5#'67#535#73#3##53#=#j1  8K 9-Ukkjj rN‰ #1¬D4 (E CB  ÿèéš%)1573353#5#'67#535#73#33#537#537#35##5##535# 6+Oh42†!$*$DBBB„1±G6 *?'97C C( ÿæóš&,28>D7367'675#53#5&''675'675#&'7&''67'67'6+L >Q/, 0:/9 +.!#":n $7 ;9 .F HJ 4b eš:  H           9     *  ÿéð§ -15973##7#53737337#37#33#&'7#'67#735#35#35#Ñ"$ž!#10H00G33‹¥ $%D , $(§  Y   @ # # ÿéò¢"*.26G7&''333267#"&5''67&'3#53535#3353353##"''3255#z #  )$ ¢ ã##5"%¢¸P U¢        &"""0   ÿéõ¨'+/DJP73533533#3#3#&'#'67#535#535#35#35#3533##"''3255#'67&',#<##!!>A, 3 3/ (:=""#6<<<<111  1  ] œ    !   ) :& #     ÿêô *.26:>B73673#&'#5##5'67#53&'735'635&'35#35#35#35#È K 3J*( € 0&L. CUA5^#G55G99G55G99    MN  Z  , ÿäí¢%-59>DJPV7'6553&'7'67333#"''3265'3'673&'73737&'''67&''4': UH      V& 59& $mt‚ g  Y  #.+  !4 Q     #   ÿëæ¡*06<B73#35#535#53#3#"''3265#'67#56&''&'''67&'m !77ƒ::DJ7373#67&'##"''3255#5'67&'767#3&'#35#35#'67&',< R6   @   B   ,'X !pppp x ”  8  8   + ( !   ÿéé¥#'+D73&'73#3#3#3#5'65#5#5#3353#"''3255##5##77GGMMMMW¿ UBDDDDN)P  )O(¤    4    (  .ÿèô¥ 3773#735#3353353#'67#53#67&'67'535#-¤¤0©ÕÕ, -%1¡F ! S  ||¥/*N))  +   E  ÿéò¢#'+?73#3#&'#5'67#535#53635#35#35#'3353#5#'67#535#Ÿ80@0  +;.#LLLLLLe 9-¢S   21  S !   8$2°F6 *ÿçóŸEc73673267#"&5733'67#3#33#"&''67335#53&'767#3#3#&''67#537#'6+  P[ * %%  "!   /(  >O8*-# ).Ÿ   $    # 4 N%       ÿçë®!6<@DHLRX73&'7'7##"''3255#'6'3#3#7'75#535#'63#735#35#35#'67&'D    [K ").+d ]¬¬„„„„„„ 7 0Z))('®   # !    U<   ÿêöªCTX\73#3#53&'#53&'37#733#3#3#3#3#;667##"&5535##"''3255##535#35#G* l( #JKKHHGGGGDD .  HH  77777ª  3 *  )    i V  #n,ÿæè¬48<@DJP73#3#353#5335#535#'6'3#3#67'75#535#3#735#35#35#'67&'B#//d00 hU"'+$"¢¢}}}}}} & "g%"$$¬        :U< ! "   $gÖÇ 735#53#535#)˜š¯²˜ `&UéÇ7#32767#"&5535Ж8D NF‚ÇB  [ƒñÏ73533##"''32655#&'ƒ> >  £,,_ Z 6ðÑ+3773673#3#5347#53&'5#35#"&55#'67#3327535#W , GR;³8OAF7! !eÑ  ff - 8   D ÿí—Î 9733533#537'6'&'3673#3#67'75#535#53&'5!€'O  `  &900";F7..6Î:::3 ?   0ÿèï\7&&';*X2 .\*\JO ÿèóÐ $73#'63#"''32657&'''6N˜£-A Di %Ð ,‚ _)0 2'5$ + ÿèóÐ#)7'673'673#"''32657&'''6E&˜  Q Di %–#*3 ‚ _)0 2'5$ +ÿêëÏ0733673#5##53'&'3#3#67&'7''67#v  2®a0   %Ép38  FPBÏ39&(;, M$   # ÿéöÐ28<@FL73673#67&'##"''3255#5'67&'767#3&'#35#35#'67&'QmG    :   A    F?U jjjj$ "ƒ·     :-  );    $1/)  ÿêòÐ8>73733#67676732667#"&5'675#'667#7&'/œv!+.&6=*3C " 5+ .‘ ¥++!     $ $  EHC>>  s'í½73#3#3#535#535#xp.**3z3''.½*44* ÿéôÏ ;73533##5#3533533##5##5#3#3267#"&55#'667#YXXY+c//c+ÚC$/%% >»$$3 9#%  ]óÍ "(048<73#'63#53#3#'#335357&'3#53535#35#35#Ä"'#LJ$$J  – #"Í  4g)7   -666%%%%%ÿèàÄ 7#'66553#5#3ÌŽ"·ŽŽl B5 2"]gT2 ÿéôÃ7'66553#5#&'7#3B#¯6ORJ‡‡i C3 0#]hD(/PG43ÿëõz73333267##"&''#'67#536rA  -B 8*+z P " EC6 _ÿïôs73673267#"&5_:2 7B/ :*s+) %  8ÿíõ&7773267#"&55'75'75'6Ñ $(PR]_ *  4@C472O      ,ÿêö"7367&'#"''325'3'67#‡ ! 2 JC3 ./  5D  X8,+ÿéìr 73#"''3267#3#735#+Á®ooIIrd%PD Bÿæïr73##53#67&'7&''6Vƒƒ#7­^,. ?Fr-"  ?ÿèé† 73#5##53&'&'''66• GzC>#& 9 +† .- ;5== <ÿçî‘73533#3#5##535#35#ÿòô…733533533##5#3#5#53#3X"##J•e""$$$$66I\#Cÿéèy 7#5##535335#33535#335è}HH44H5}44H5d{ {-H>ÿêëŒ %73#53&'3673#3##5#535#53&'G B *.PHHEEJ)Œ #  && óÆ733##"''3255#53567#R##  -- =Æ< 8?ÿèí„'/37#"''3254'7##53##"''32655##53#=#  Fh   G8„' +Š›o kXTO &&7ÿèòŠ173#3#'67#53475#53673#3##5#535#536i $ ] ''Š *  ==8ÿéõˆ#.7'63533533533##5#3#5#5#'#5'6` !9asZV ˆ''''??O`...A YE:ÿéê26:73#3#"''3255#7'7&''75##535#535#'235#335ß#+EEQ  = -719LBB!%R6//B2 /6  " BFM735333##3#3#&''67'7#537#535#5#5;5#33535#33535#33567#E?EEJas 4##7 #) &4*D?,,?3r,,?3x22E79 E•'     '5 =jÿæó(733533#3#5333#33#"&''67ƒ**3y&++ '   )5  &Cÿèç˜"*.273673#53'35#&'735'6#5##535#35#p( )¤& 88  @5 ,mmmmm˜ BB ?$  $$  /P P % jÿèõ›&*.473#3#3&''67&''67#5'635#35#67#ƒY``BC #"   AAAA  7›>    9 ) $ 6  sÿæïŒ!9?733673#&'#5'67#53&'733#&''67'67#53667#§ %  B " %  '  Œ   1    .iÿèô˜#48<73#&'#5'67#537'23'#35##"''3255##53#735#Ø C P +0 + ..V  U::˜    2 8 % %MQ9r ( T2'D 8'9Ä«73673#353#5335#53&'Y  ;"|#=  ªJ;LL;J ÿéí… 7#'66553#3##5#535#í· %šEOOKKA…7/" !@%77ÿåㆠ73'66'3#735#53#5#535#T# 2XUVjaaU†O 79Y#"Ž#ÿðñM73533#3#535#,JNNgàeJ2ÿçô•CI73&'33#673267#"''67&'#7#"''32655'75#535'67&'w8DA  $ ( ;(* 077" 5r  •  *$     cÿéñÆ #733#537#537#37#37#3353#5#533up Ž"+-*2/#k"Æe"S"  =gXXXXi:ƒ  $$ $ÿéõš $73#67&'#7'53&'3535}FE V":7%! K1‚‚‚š X  4/  ‘# ÿèô#173'67#'63533#67'675#73&''66ŒQ  B o &.( (0 &  !&&3 9 ($!+ ÿåô#'+/73#3#3#3##5#535#535#535#5##5#35#35#Ê..\ffbbZ**—*)))=**""'ÿèäŒ,7#"''3255##53673#353#5335#53&'ä  ¡D   "= z <$Œ‹  t’¤   -01- ÿæóœ5<73#&'#5'67#535'23#&''67&'67#53667#Ñ %.gL!0 ;'"8 *#JcLW{) D)$-H <%" 9I) Kœ L     3  ÿéï"473533#&'#5'67#7&'''6&''6767&'$!!   ¶!(B *+#q  OS%./71 < 00  ÿèå†.277'7655#'65535#35#7#"''3255#'65535#35#s 0 ////´  86666†  ! &+B*=K! '*C*=ÿçä‘ !'-73#"''3265'3#735#35#35#73#'67&'Ñ   ·iiCCCCCCtlC  ‘‹ ƒ|W55Ii      ÿæõ›EJ7#67327#"''67&'#37#53#3&''67'67#'66553533'767ï<    k \+4   % |  †+ + +.4   ) "B U  ÿéó‘07&'3533#&'#5'67#73#3#3#535#535#©  …$    "]}611<@114‘   PK ##((# ÿï~73533533##5##5#35#35# / /%////zxx""V"ÿïñ¡373673#3#3#3#3#535#'67#5367#537#53&'X3:oglŠ…BR¶P= *@J  š    -0'  ÿéõ 17;?EK73673#67&'##"''3255#5'67&'767#3&'#35#35#'67&'Ka>    8   C  ;8Q hhhh # !ƒŽ   /  .  % #      7ï—!J7#53#3#67'5#'67#'736573655#53#3#3267#"&55'67#'B,`"& %   O*a%)&     †         S0îÒ,047373#'677#3#3#535##"''3255##535#35#fVa   W$4{5!a  IIIIIÆ     ; LÿèôŽ !=K7#'66553'67#'6'&'73#353#'67#5335#5363&''65é´ ˆ2% M8' # "5= #  # 2Ž;2& "E  "   ', ,'  %ÿéò˜%7;?73#3#3##5#535#53&'#53&'367#'3#3#5##53635#35#³."4++++3!+ +h)BF2 //22˜ '' F9 :F ˜ 4i ÿéø›048=AEK733#67327#"''67&'#7#5'275#53&35#35#675#'3#735#7&'©20     --.  šy>>>>>``<<¬  ›  ?I8 ) , ‚0  ÿèí¢!%)B73&'73#3#3#3#5'65#5#5#3353#"''3255##5##6>QSLLLLY WBBBBBM)R  *P&¢    >    (  -ÿèñÐ 6LZ73#5##536#5'67#53&'735#'273673#&3673#&'#'67#3353353#5#p_”C , 87 2Ž_hR: E N=P?>¤ÐfUUfX         *''2 ÿèõŸFf73673267#"&5733'67#3#33#"&''655#53&'767#3#3#&''67#5365#'6# )  % ic' (("#   .7  L]=(+  $), Ÿ    %   !, J  (        ÿçòš .DJNRZ^73&'73#'67#"''32654''67&''67&'36533#&''67#7&'3#3##53#=#NQ,           ?  |@@AA@‚  '  5    ($'#!"@9  $ D ??  ÿèö›)-15W]c7&''3673&'73#3#3#3##5'675#5#35#7673267#"''67&''7'3'&'''6Ñ  }  #$+((((-`  ¾6      E 8 ›  &     _3   g !   %0.-    ÿéëµ!%)FLP73&'73#3#3#3#5'65#5#5##"''3255#'#5'67##53&'35#<8 VSIIIIU¾TAAAAA¬    j  IWEJJ³     9   <  ( "  BQ& ~ÿéò–7#53#3#5##533'>&'¬'m3*2 ; †_OO_"5  Tÿë÷Ï,MSW[_r733#3'7#73267#"&55'75#'6553673265#"''67&''7'37&'3#3#735#276777'67&'{''-       t     cFF@@ % Ï       G=- .7R%*( - '6HD4  Z ) !     ÿéî£#'3T7#3#3#7'2753635#536735#35#73#535#535##5#3#"''3255##5##535##5mDD""%21  &2233TdeTPPSq#*  *$“+ +  )&0a EL?  ;& 99,;†ÿèñ˜ '73#735#35#3533##5#'67#535'6Œ\\8888  ˜B( # %%11  dÿçòÑ"BF^d73673#53&'3#3#5335#35#73&'73#3#3##5#535#53&'#37#3#&''67'67#53667#–)* '):.  *M * ( # )+Ñ   + *aGD  W    )  ÿçõ¦ 59=AY_73#735#'3#735##367#533#7#5'635#'65535#35#75#73#&''67&''667#Š[[99[[99Á¿B9N $5%%%%%%\5      !¦( ( ! 19*! (;D  V      Sÿé¿Ï.26:JX^733#3'67#'65533267#"&55'7533#3#735##"''3255##53673##5#7&'{--4 B  *    GGAA""8  /   Ï LA. 19V    &! 7 &=J$   ÿðêÄ 7&'67&'67&'6GVXÄ7(/3 ;2066(.4 :2/77(.3 :00ÿêÜÊ 73#'3'6573#È›"LÊÞÙYP2 0ES¹ ÿæâÏ !73'6573#'3#7&'''67&'73 *—O/  €  M  ÏsH.(;sæáܪ%+ -$4 #*$* ,# ÿêõS733267#"&5'3'6673#®   y <SJ  L2)  "*b#–ÜÑ 7&'67&'67&'6E O N Ñ   ÿññÁ 73#3#535#Î^hâf\Áªª%ÿññÆ 7#3#3#535#ì³  ¸ÌŒŒÆ-T.Õ.ÿöòÅ %73#3#535#'67&''67&Ñ`gáf]¡  –  Å©©\$0I$$0I$"ÿîðÄ73#5#3276767#"&5535#"±†=%  PIšÄoX! &  q;ÿðïÁ73#5#32652667##"&55335#¸ƒ2 N-ƒ¤ÁrO- ‹!<$ÿòñÁ73267#"'&553#55#38:I PD ®††]M # ¶q Q>ÿïòÁ73#5#3265267##"&57#335#¿—9 S0UAAVBÁr M ) ¨AAA7ÿíãT73#3267#"&5535#Dy 27 A<ylT5-hòË'+73267#"&553'#33267#"&553'#3™)% Z44¢)% Z44  M;+  M;+"`ÞÏ73#35#535#53#56j%==”@@DX¼*Ï eaJëÎ 673533#3#3#'67#5367#5355#7#"''3254'7##5-//*,7> "  )#&-Ó  0À "  $fwÿéîÑ<733533##5#53533#37#3#5#3#"''3255##5##535##5u0##™ ///B006PG  52EOÑ((!-2  II:L.?ôÏ/3;73533533533533#3267#"&55##5#'67#5##5##5#))  @'  x³µ '' .0 ó¬!7367#53#3#&'#'67#735#35#J-ŒGw6 &%7"- %4:ffff\EE !G %  ø¥ 73#3#&'#'67#5367#735#35#2œ]‡5'-H) ) 1B*vvvv¥I  , ' RÿéôÏ4:>BV7#'6553&'73533#3#535#3533##"''3255#&''3#735#276767'67&'ô~A>9B  ?:: ' ¼MA2 2=Z '%%l  g1(    eÿéöÏ!37;L73#&''6#"'673#&3#67&'7&''735#35#7##53#"''325}% U )g?,   `;   Ï     Z-   o8#¡r ÿéí¾73#3##5#535# ÀVccccV¾DkkDÿêðÅ73#3##5#535#'6'&'ÇXeegg[¦   ÅdQQd ) "$ $ÿètÄ73#3#'67#5365#b')*) #'('Ä9 M"A4ÿçîÏ-73673#3#'67#535#73#3##5#535#536% % 0-00, 2/22$$$ ¥7;& "27<7__7sÿè÷Ñ 7&''63#3##5#535#¬" ']&//00$Ñ   ,&JJ&+ÿéãË7&''67'6767767&'¹BN,)$('!$&6;=1 I(0 #6$A6$%[/ qÿíç½73#"''32765#qv  a½ 0.jÿéëÏ (E73353353#5#77&'7''67'6767767&'7''67'67676ONÃJ    o     ²§ÄħÉ ;&  % 42=$  % 40ÿèõÑ9Vt734733&'33&'73#67327#"''67&'#&''67#7676767'7&''67'67&''67'67676767&'..  ( T  ( ) 6" ),™  #  W "'  H(ab'     #    $-k +  '   ,8ÿëî›73533#&'#5'67#CDJ@. *) +;t''89ca3  67ÿèìž$73533#3&''67&'77667#535#CGOOB!' 2#. )  v;G…'       ;ÿèî!73#3##"''32655'67#'735#IŸ)// ';?%G Db*? -'#&*?ÿêîš73##5#'6556Í 2Aˆ4@Gš ]] ,'!$NBÿéê–%733'67##"''3255#53&'767#M D  6   FJ m–C  >  0ÿéò”#7367#53#3#3267#"&55#'67#B?:“DS;  E =;]B HK;@ÿéî¡"73673#3533#3##5#535#'67#C/^i4::IIRRL#‰  %%?ÿôó‰7&'3673#7&'=h5´  ‰))-&}9EB5‚%..&4ÿìñ¢,073#"''3265#3#3276767#"&55'635co dKA&  G4.¢N8="  Z%Gÿçíž733#3#5##5335#XXMs:&ssž eeD1Kÿèß• 7#5##535335#33535#35#ßl??++?-l++?--z’’7$$$\%%%3ÿèó£ $*735333##&''67#53655#535#33535F>D<; >: 33;HH>R002'($0) ' 1ÿëôœ(7367533#7'6773673267#"&5F 0: _&   x‘5F ˜@ =  3ÿèï¤ &7#5'673533##"''32655#&'f  #M M  ¤„a /((_ Z  6ÿçî™17&'32767#"&55'675#'667#5373#6¾  )!   3)+lF™  ?  AG2;&%49ÿéîŸ 7#5'673533#&'#5'67#g  ,3*  #Ÿ‚d '&&2-``*11ÿèô¢%*73533533##5#5#3&''67&'#367<&=&&c&v=/• /9#%0 - &(("   1ÿîóŸ)73533#3#535#7&''6'&''6CCJJYÂUC| `  4kk  w "+ !7ÿèð¦=73533#3673#33##"''3255#53567#'67#5367#535#K0,, ,< 4EE  LL0) 8 ]@0š      8ÿçò¡=B73533#7#"''3255'675#73533#3&''67&'#535#67;  I)++'    )) ‚%4  (+ *      .4ÿéò¥#'+73533#3#3##5#535#535#35#33535#335?LMMBBSSWWBBL00D/s00D/š UU13)ÿêó¤97&'3673#67676732765#"&''75#'67#°  d'w]% ,. $23% &8#. " + 2 , $¤ "      !cO2,D.ÿèôŸ473#3#535#535'667#'7#5333#"''67&'×00*c&**.k $#(?!">?8C  Ÿ&((#R '(-  ?ÿëéœ$,073#3#5##535#5#35#"&55#'655#3327535#?ª8/v05`/v  ZvvvœŒ ŒP    `9ÿéõ¤3;73533#3#535#'67&'#3&''67&''667#K?DDR±M? ! ]"!+O+6&", ' + C–&         6ÿéñ£%273533#&'#5'675#&''67&''6CGKK#2 .) 3!G l  Ž5+"CA"&9   !  <ÿèí§"',73#3##5#5367#5335#335367#33535|U1??_ +%++=,i#*<2: !§]&& ]'; & =ÿéï¡#'73533533#3#535#35##5##535#35#H#0##.².#600[`````6\ \!04ÿìö¦*48<@D73673#&'#327667##"&55#5'67#3533&'#35#33535#335@7 [- 7  & 9  '(!% & &&8$\&&8$   F   A ,32ÿèòž%+73533533##5#5#&'''67&''&':(;,,a(v;\  qf    }!!!!::(((  "4ÿêñ¢"'73533533##5#5#'6553#&'7#3=&8))^&q8‡/ , 8#5``’S $6 #% 5ÿçïŸ(73#3655335#535#53#&''67#56u +/!!"6=3 <; :6œ\\i!%$f6ÿéêŸ  &,73#"''325'3#735#35#35#73#'67&'Ö  —UU......Y] ?  Ÿš  „];;Vy   <ÿéö˜+=B73#67&'7''735#35#7'665333#"&55#53&''67&67#."$ % %#+33((0)BI­   5AA1 +Aÿéï¦37#67&'7&''53'735357#"''3254'7##5‘<   ***p  '•_2  Ÿ &>67 ²5ÿèò¦/473#35335#535#53#3&''67&'#535#5667#r ""51##(;DC$-$&2 - HH;X¦ HHP K‹ &ÿéò²#'+17=C73533533#3#3#"''3265#7#535#335335&''&'''674'&9)9€•—   ›+99K)'  B  6—7 4 >e   ?ÿèô§ $7<T73#53635#35#7#'665333#"&5#53&''67&67#'367326767#"&5Z$N****| ; - R   "w#" § NN ),)(  /!         Aÿéó™B7#67'7&''5353573#3#33267#"&55'67#'7367#Œ8   &&&V  # ! ,™`7    ¦'76  %" .)*ÿçô¥J73#&''67&''667#'3533#3#3#3#"''3267#'67#535#535#¨>   #o $$",/    % ¥ :! "%*(/ (87ÿèï¬#'F73#53'#"''32654'7##53#735#367#"''3255'7567#p&b(  #bQQ--Z  , >¬  0 3¥¶+ (   4ÿèñ§#'+/HM735333##3#535#5#5;5#33535#33535#3353673#&''67'67#67#I>FFJ¢E>,,?2q,,?2w22E78o$ $$8(/ )f B ((7 $     :ÿêô¤ "5K7&''6'#"''3254'7##5367#53&'733#3#67&'7&''67#¬  )!  G5 C( f wA  )- ¤  ( , ±V    3ÿèö¡ $*06<B73#5'675#'37&''675'675#&'7&''6'67'6™M ;ZK,/ 0-#- + )9j "585 'LM> 2b c¡O =      B       9ÿéó¤-1R73533533533533#3267#"&55##5#'67#5##5#3#"''3255##5##535##5?   6 [b=7  %!37“   ## *,  ::/?*.ÿéð§"&<I7#3#'6553&'75##5#35#3353353673267#"&5'67'533ë6/ŽG1+   4 )“1/% '0G #!(     F 5ÿçí#'+1773#3#3#535#535#735#33535#3355#5#'67&'E™#((2·/%% 00B1s00B1"111 # Y% #I, ( -!   3ÿëó¥$*.2D73533##"''3255#'3533#3#535#&''3#735#7677'67&'ž0 0h***#[$*~  h]]99 0;~''i  e'(2'   8ÿîò©#)/?73#3#3#535#535#735#33535#335&'''63533#3#535#G—CEEP¯MCCB00B1s00B1 O***TºS*©@  ( ! I   ,ÿéõ£4:@73533533#3#535#35#35#35#73##5#'66556'67&'8 # f ######Ž  ?  ( <  ‘RR22e pp3* +6.€    6ÿèò¤#3AGM7&'3#3#67'75#535#5'673'67#'63&''65'6'&'h  :"" '1*## "T4 (    $0 6¤  / 2   .&" 0   9ÿêé¥#7;A73533#3#3##5#535#535#35#35#7#"''3255#'65535#35#;###""''" #----˜   # !!"!”NN.,W– #( )2K/L:ÿéö¥28>BF73#&''67&''667#'33#"''3255##537'6'&'3#735#¶0        X' @+- A  ..¥ 0# ' !02p  [x‰+    BC% 2ÿçõ¥!%)-17=CI73#3#3#535#535'65##5##5#35#35#35#'67&''&''&'Z†»u&'f –    ¥!   +!!!!!!1 6   8ÿèõ¨(Pg76767&'33#"&55#'6553&''33#3#"''3267#735#5'67&'767#67#53&''67&'¨       3TJ/3   6 ,   6Q =Q  ¥    3, 0  s    3ÿèð¨#'+/5;73533533#3#3#535#535#5#35#33535#335'67&'A"7))0UE›DM'"l711C2u11C2^ ,&U" !š  KK ; )     3ÿéó¨$*08<@7&'#5'63&'3#73&'7#33533'67335#5##535#35#”&. ^ 6 ; >šš       `````¨    6    .GG # ,ÿêñ£ ,2:>73&'73#'6553'#373#3##5#535#536'&'#5##535#™ TDM''W &##$3  $3- (28>-..0Z[9(8ÿéñ¤'/37;73533#3#535#&''67&''6#5##535#3#735#AJIIS¹SJ  h +yyyXX44™ ,,    3[[D5 $ 1ÿéð§!'+/48Lf733#"''3255##5#'655'6367#35#33535#73573#"''3265#'67#3533#3##5#535#'6Y"   ,U     !!&& § x !4# .8 Y/$ 6 ((  2ÿèô® 473'73#3#735#3#735#3#&'#5'67#535'2™™ssSS//2’’·T  P* h ® N0! 4     4ÿçï¡/37;RY73#&'7#'67#735#35#35#73#&'7#'67#735#35#35#373#&''67'67#67#?L   ++++++HP   ------u?d" :$ ;'2 1g :¡P  8  :P  8  6       .ÿéò¦ "(.FLRX^733#5'6367#35#33535#3357'6'&'3#3#3##5#535#535#&'''67&''4'T+O   / [  & U"%%!!  D @  ¦  XN 56_   11T  3ÿèû«/37;AQW]73653#3#5367#35#335335'3#7#5'75#35#35#75#3&'33267#"&5''67&'Œ'+.-a!#   ¡I l       `  › @@=5n'#xHJ  +  / 5ÿçõ¬ =AEIMQcgk7&'67&'67&'673&'73#3#3#3##5'65#5#35#'3#735#3267#"&553'#37#3L   )  (  +@#xQQ// &" \4$¬         y #++Q( U   B/! 1ÿçñ¦#W[_cgk73#73##5##53#5##5&'7&'#3#673267#"&55#3#7'5#'6553'75##5#35#335335=OOZSS '¨,5 g 66.0    2((% G !!!2¦!%%$ &   *    6# "3  3ÿíõ¦'+/37MScio73733#3#537#35#335335'3##5#535#35#35#35#3#'3#3#67'75#535#&''33267#"&57&'''6‰&(*([!$   œL7 5ddP5 ‹     F  K ™  :: 71¥U@ % ' "     "   &kíÎ73#3#5335'6Þ((1w HÎ3;wd~ÿèñÌ733533##5#'655#53IJ66J8 /::ÌTTT{{H.); ÿéóÏ73533533##5##5#35# 1\11\1E\\œ3333  qqÿçòÄ73#3##5#'67#53655#335#À'66H 62 =?,@FÄFooN# B /1 FråÐ7&''6767'ª LU)6<º" .+'ZëÈ7#32767#"&5535Ò—8DPE„ÈA  X^ëÎ73#67'7&''67#53&'„Z€38GO@fÎ      ]ïÃ73#3#3#535#535#ÄYOOeÞeNNWÃKïÏ$73353#5#'67#535#73533#3#535#% B7R6660p-6Ì"|' ""..ÿéöÎ7327#"&''7&537&'åh : E UV$ “7E+:LB&&?7ˆJ73#ooJÿûa 73#'6bbm5ACaÿèãÅ73#3#"''2667#735#µš¯4²–¡ÅK)G"0O%ÿôïÆ73#3#"''3267#735#3#!³—« ­ ’ŸÝÝÆA4 C¬ÿéìÐ#'-73673#3#"''3267##5#735#3355#7&'o  Ð B6 VJ*$C &Leÿè÷Ï!&73353#3&''67&'#535#53367#¥22 !& & 20 > Ï?3E'    "E3lÿéîÊ7=C767#735#53#3#"''327'6'67#735#53#3#"''327'67&''&'ÕOCG[DM  $*1OP CG[DM  $*2b  b  4BA\("  BA[)"  1    `ÿæôÑ)-1767&'7'3#7&'7&''675#535'635#335˜"% 66# 5B"445!!3$Ñ"  K#  %Kn''' ÿèˆÑ073533#3#535##5##53#3#3#"''327#735# 433&`&4zUEE\FM  O DJ  ( ! , $* WÿêóÑ,048J73673#53&'3##'3265'#"''3255##535#35#73#3##'3267#'67#„ " %–$f  2  """""C[‘ 6 : 0 4Ñ  (L EN  _ $ !>#3 , "ÿòÛº 73#5#535#535#&µ¥¥——¡ºÈB>ÿòíË 733#537#'77#Z t 8ÚŒz†hË <@@ÿéôl%7367&'#"''3255'67'&'z$ +0   (04+Jl+  #&  "  ÿèóm &73767&'#"''3265'&''6t #<   :  ?-$ 7k  "3F Q ÿêòn"8E73#3#&''67#5365#'673673265#"&5'33#67'd0!  !K     n     "  )  c1 \ë7#5##5ë°##w0ï„$*77677'7&'#5'67'67&'''6*   () r  "      )   ÿéôÐ:@DHN73&533#676767327#"''67&''67''67&'#7&'3#735#'6 ML  # &  €¸  ˜QQ++G,6;ª   $7!     8   HJ&F  X šÏ733#67'5#53i  ÏFN  ]?ÿí¬Î 73353353#3#7'5#'655L  QOOH ½/@@/A @  ;%# "Jÿþ¡Î 73353353#3#3#3#535#535#P  OU! V#!Â3??3DGÿýŸÏ #73353353#3##53#3#3#535#53N Q@@ R "V"Â(55(8!Lÿé¬Ï*.273&'73#7&'7''67##"''3255##535#35#L%'3 #  T   +++++¸    @f  (|#3=ÿì Ï /73#53635#35#3'73#3#"''3267#'67#j!M ))))$"3/   ÏPP )05  4 &1Dÿë¯Ï ;AG73353353#3#276767&'7&'#"''3255'67'67#&'''6OVX*       K6  Â++1 , &  S  Kÿê¦Ï %)73353353#3&'73#3#3##5##535#K[#!YMMMMM(((Ä** 2    B B'>ÿçøÌ ?^73#735#35#367#5335#53353353#353#3#&'#&''67#367&'#"''3255'67Uˆˆeeee&502;)+=7\h$ :  $T    ',!Ì>& ! _            ÿëôÌ#)/7&'36732667#"&55'67''67&'m 3(0>   &" #,² Ì ,_,_ m1"% j90 1+,3 5*ÿò€ 7&'33267#"&57&'''6Z     F  Q €%F  E # :ÿïöš"7&'33267#"&57&''6†   &k  x  šh $ i(0 1'2")ÿëºd%7&'3327667##"&5''67&'f   "    dA # ?%  FâÓ73#"''3267#'67#'67#'6LŠ   2,  :4 "ÓV =7*$-2%(GðÏ73673#&'#'67#&'RbJ9BL CLX­0@A1)   EñÎ 73&''65'3&''65›#)+ 5^  0Î#9'' .( % $5PÿîŸÎ7373&''67&'67#67#R$    £+J.  $'E )-ZBíÈ73533##"''32655#&'Z_!! _  ­> 9 9ÔÐ733#535#535#5'6367#T O6ª—––Ž 1F CÐ  ] ! GðÑ)73533&'73##5#3'66#"&55332[;  "a[%  ´  ±  WW$ 3/AñÐ 87#5'67#"''3267#53276767#"&55'753753G  &ª   " %93 ÐgQ 8 730  1$3HÍÐ 73#53635#7&'¥ -šVStt   ÐVV\2C  9ôÎ-373533##"''32655#'67#53&''67&'&'{E   EK G] ! !s  ® H C*     EôÐ !7#5'635'273#3#535#A  $HDD %MMC’=HÐ^E  "   DöÈ%+73267#"&55#'6553#7'75#4'Î 0gX$&.'"•Èd   V)! 00D I@åÏ"&73&''67&'67#5367#73#735#@2  ' ' # PQQ,,Ï    ?8b?CêÄ"767#53#3#"''3255##5##5##5iZÔd` +$$—  > )6666BT ÿêóÏ#06<B73533533#3#&'#'67#535#35#3#"''3257&'''67&'2B44?=& .9/(><2EBB    Xld  ¶$ &'$$$HY  ?" # $ AèÏ73533#3#535#35#33535#335]aaN¬L]#::L:†::L:½YY555íÐ 7#5'673533#&'#5'67#?  %%?D=,#" )8ÐlN ' &!%JH**F šº73##53#67&'7''6X;; H  º95 JÿèôÇ $7#'6655&'36533#&''67#ïx u  J)30( / 5)ÇSE4 2#_! ' %1F 48HMÿé­Á7#5##53'>&'¨/!   Áš‰Š›'O0&  #*0 aÿêòÏ '73&'73#&''67&'7673#5#533a?>‘]    !p]¬   ‘ }k 1óÒ$)/57&'#3##"''3255#535#5'63&''67&'~26 ,^^   YY. K]& )m&$Ò       @  FõÐ$:@7#"''32654''67&''67&'767367&''66''6\   "   T   $ ,#'  Ð !      "    &.$# Iÿé©Ð73#&'#5'67#535'6ž    'Ð, if#/& @ñÒ&,273#7#'6'#5'63#"''325''67&'€cV  /  $j $^ Ò  $iL % >  $ 3Ïm"7&'33267#"&57&''6z   Xf m5 ;' DïÎ+73533#&'#5'67#73##5#'66556)++  #Ì #/X*  8² > $  =ôÌ.4:733#3##"''3255#5373&''67&'767#&'''6?**40  2/F^ "  I  = Ì-  ($2   (  XEìÐ 73533#3#735#X1QQC†``@K) 4ñ©173'67#&''67#3267#"&553#"''326=7RG.  Ÿ. *$ R   © 5*  :L)  ÿìõÍ#'+1EKQ73533533#3#&'#'67#535#35#35#35#&'33276767#"&57&'''6&d)).7! -D. (6+&9dddddd1  " ; ~‰¾M M.-* +  %  Aÿè›Ï73533#&'#5'67#V   ž11 wb(5F[FêÓ 73#"''3267#'67#'67#'6yd   ! &!  Ó VB8*%.2& )@ÿëšÊ73##5#'66556  0   'Ê192 7E9'íÏ"&*/73533#3#&''75#535#35#33535#335'#6]__L Rc_LL]#::N8†::N8)Á N N ,,+  ÿìôe *06<B7&''&'33267#"&5'332767#"&57'6''67&''&'¹bb   q   Z  m  Ì  ` e   G  MG  @$ $    @ïÎ=73533#7#5'75#'673#"''32765#'67#'67#'6" .oX  9 5 "   Ä -' % 'V  6F8)  RÿèÉ73#3#"''3267#735#R<$(   (")ÉJ'M#3K&>ïÑ$7'673#3#3#535335###5'6J%#2…911>™!:  )Ñ %>>S I: -,Íy 73#735#33535#335-  11E3x11E3yM.,_ÿïïÆ(.47#3#53533#3#&''67#53655#'6'&'ëy} (((37     ).(P 9Ƴ×0    @âÏ"&73533#&'#5'67#73#735#35#35#,''  !*obb======² ?A$%‚[:9 -ôÐ'-157373#3#3#&'#5'67#5367#537#3&'#35#35#Uchaj…,! – ,>4>O3gP qqqqÄ   /2 B & GÿéôÒ <73#"''3265#'6#55#353567#533##"''3255#pr j \UD33hXh…BB  XÒR: == d   7å¨73673#3#5'67#35#I m~ |• #7;pp’   9' 88ñÐ  177'67&'73##5'67&'73##"''3255#'6C! C:NNX  8=\   , Ð     K9 "  5  1  6óÏ9=B73#&''67&''667#'#3#327#"&'#67'535&'# A    %'%'$ ! A#Ï (      $3$#  †6  .òÑ048<7#673265#"''67&'#'65534'33&'73#3#735#ìA      ev  ¥[[OO++º&$ ./' %7  "6Pÿëðz73#3#"''32765#'67#53&'©>\R C $ +&Bz 9 (;  7òÐ"49AE73533#3#535#733#"&55#'667#53&''67&67#'#5##53# 4..$a)4É    Z   ( ,L __½  T     %%+2õÏ1SY_7676767&'7&'#"''3255'67'67'667#5367#"''327655'67&'''6Ö !   !     E€ ?V     AÏ  %  "    " 1 *(    +ÿíô+ !7&''&''33267#"&5''6×  ;    ( +   " &  6ëÌ#'+/5;7&'733#5##5##53&'767#5#'#35#'35'&''6) B„!@.*6  gy.**B.>*z /Ì    k""k  9  1  #  )òÑ $6HM73#3#"''3267#'655635#35#733#"&55#'6673&''67&'#367q!+JKO   < 5#9999§  b     ÑD   P*2 $ B"  ( H     =íÑI73#67677&'7&''67'67#67677&'7&''67'67#53&'736ª <+  %2 &,[   $2 &,0: < Ñ  &  '     ÿéö£ -39?73#3#&'#'67#537#735#35#3#"''325''67&'7&',¦Rz6( /?!+ "4K =€€€€+  U  9  £E &  ) % @9  '   4òÏ#'+?73533#3#3##5#535#535#35#33535#33573##5#'6556333,,1144..3/I/w )G.à  C  C & " Q RR,# #>Hÿé¥Ï#'+73533#3#3##5#535#535#35#33535#335J$%% ##&&$ / ¹_++_9=|ìÐ73533#3#535#'63#735#&&)k/ VV00É"" KF$;óÏ/HNT73533&'73#67&'#"''32655'675#73#&''67&''667#&'1 .       "1ŠA    %€  ·     " !* %         +ïÏC73533#3#3#35#535#535#53533#3#3#3#535#535#535#535#535#+))$$**],,&&**++$$--»¨¤¤©#00&&+Ä          E      4öÏ*D7'67&''67&''6#5'6733#33#"&''67B$ "L  J y  &i77+-  Ï     "    H7  (  .ÿêõg /573#735#33535#335&'7&''33267#"&5''6G™™00B1s00B1> P d  (!  gC) %            1ôÏ#'->DJ73533##"''32655#'6553'#33#7&'3##"''3255#&'''6? ?` jEE9JJo  f[$ %K  2 °R N," !*>, "    ÿèòÒ $(,06<Bin7#3#3'67#'6553&'75##5#35#335335&'''67&''33267##3&''67&''67&567#òE<¹¾ ªZ +,,,?+(R 2 W   "e39#'4 . 2Nà *   B4 4=]  6          9  6ïÐ '37;7&'''673'67#'6'&''67&''6'3#735#Z %}= 1L  $}%   &…RR..Ð      $6 ÿèðË%+RW]73#33#5##53537#35#35#35#&'7&''33267#"'3&''67&''67&567#''6ÜoUµ=Z.7 [  m 'r"4E,(5 +! 1\.  Ë C%%C !            : E  ‚<ñÎ73533533##5#5#5#‚- SP---¯aa1Nÿò¶Ï*73533#3#535#3#735#676767'7&'R'**"U 'WW00  5)  ¹56(z7ìÏ 73#"''3267'675#'6&'œE  ( 39  ÏY  )  7ôÏ2?L73533#&'#5'675#7&'36533#&''67#'&''67&''6100  1Á  @'.* $  "%&e   N   ¿4 *+!/! 2)$3       %ôÐ !&*.I73#53&'73#&''67&''667'3#735#367#"''3255'7567#Q/w2fD    °[[77b .  25 JÐ *     %"' !   MÿéôÑ!N73#&'#'6#'673#&3533#3#"''3255#&'#5'675##535#k- g  ,u@CC@  -* %! ,*<@Ñ   '  ) 9:"&-? ,ôÏ7;?C73#&''67&''667'33#27#5'75#5367#35#35#75#£D    ¶W ,,KD666666Ï*     %"* DK-+- ‡=éÑ 73#53635#35#35#«0b;;;;;;Ñ ~~ 298rÿýÊb7#"''3255#'65535#35#Ê  ) ''''bP  $$ ( yÿúÕj73#&''67&'767#53&'¡&      8!j        Gÿé£Ð $*73&'73#3##"''3255#735#&'''6Q RA &  )  ³ EG  D#<  (îÒ (,04873#5##53'3533#3#3##5#535#535#3#735#335335‚d¸dGNOOKKeeaaJJN««!!1!"Ò %& (     =/ 4ôÏ3IMQ73#&''67&''667'3533533##5##5#3#"''32767#'63#735#¨>      ÄS   I <<Ï %      !C * * Hÿè¤Ï 173#53635#35#3#3#"''3265#'667#53&'r"J&&&&-+    Ï NN +-%  2 "&KÿîòÏ9=AEI73533533##5##5#3#3#3#3#535#535#535#535'235#33535#335Q%-((-%‰ EE::<-4"E6~Ð577#"''32654''67&''67''67&'77&''6f     (, # #.Ð  $      0ÿëó­!%)4:@RX73&'73#3#3#3#5'65#5#5#'#5'6&'7&''3326767#"&5''6~ *+%%%%,v 6&&&&&,  G  U  g , ª @n\Bb     "   8öÏ&OU73533#&'#5'67#'3533##5'67#767#533'7##"''3255'67#53&'&'¥    –  d-A       ±'DD-h;*  5       J*ôÐ,0Q73533533533533#3265#"&55##5#'67#5##5#3#"''3255##5##535##5J   1 U\7;    )"42Á      ..$31ñÏ%+AGMS733533#3#3#7'75#535#53&'#53367#73533##"''32655#''6'&'&'6  6--47A6..6' 1V7   7\—  Ï$$$     &  Q L-    /L.ëÎ(,8E733533##3#"''3255##5##535#5#53#3&''67&''&''67&'h?)G   31E)R??  6  Î  E  1DDIY  0   Kÿë·Î(INTZ767&'767#53#"''3267#'&5'56'675#535#5'67'#3#6'3&''6'&'s  6     M+5$$#  !!20  #0Î,  ; %  D½#   !P  ;    1öÏ $+1<@T73353#53373#&''67&''667#''6#5'673#3#3#3#535#535#mVH3         ‚    $JJU"#Y$!Ï#$ %    2 ! N9    #ôÍ0EIMQU[agm7676767&'7&'#"''3255'67'67'6'3##"''3255#53535#35#35#35#'67&'''6'&'ä  %   $ 7A ,  3 33333333  ¾ 5 #  Í  " / *  W% "W           /E‚X73#/SSX',um7&'5#!mtu73#735#UU--uY3(ÿë–$733#3##"''3255#53'67&'Z++0+  72 L  –E  @  ÿêöÉ ?73#3#537#35#35#35#3'33&'73#67327#"''67&'#ÝkY²D](ŒŒŒŒŒŒ(CF+x   %2= 9( MÉ ee * ) ' .     ÿéòÊH73#33#5##53537#35#35#35#67327#"''67&''7&'37&'7ÜiR»=_0~~~~~~–`   '.@ ;) JB- Ê L&&L % " " ,        ÿéòÏ28>FJN733#67327#"''67&'#53&'#53&'73#3&367#7&'#5##535#35#Ÿ;:     ™&93,X4  7FFFFFÏ-" &$$$ '"  $$0^r s)@ ÿ襉#'+1773#3#3#535#535#735#33535#3355#35#'67&'}(•$%%6#Y%%6#%%% @ ‰C    ( % '     8ÿéñk736533#&''6767#DCLD> <& %@S -0   ÿé~É73#'6655635#t !+CE 5"0/É N4!5D8l(Bÿêçd $7#"''3255##5##5##535#35#35#ç   00 dc  ++--5w0Lÿêéq73#5##5353335#‘Pn3X‰nnML L;GCÿæëh7#"''3255##53#735#ë  ‚,KK''hj  Sn€&>;ÿéòw$73#67&'67'5'67#53'Ž FM <  )4B w  ":0  .  6ÿèèi)/573#"''3255'675#73#"''3255'675#&'7&'@I %6TT ")AG b il  $l  $   KÿèºÎ73533#67#"''3255'75#P+++   )0+ž004 @  5  :g ¢È 767'56›È   žmÿçôÊ %7##53#"''3267#3&''67&67#Œ u  Mi  $3 awà5"D6%     "`ÿéôÏ $7#5##53&'7#'65533267#"&5èY3(%F  ²=**= I:7 ,8"q MŸÐ7&''67'67676767&'Ž  M .#:7 B$ HÿêõÏ 7733"&''67&''667#73265#"&55#'655b&-972   i ÏK6  7C$2$m ‚7@!@?XÿùñÍ7&'73#5363#3#„  T *…GOtt™™Í  \6 NõÐ#73533533#3#&'#'67#535#35#1A11<6! &!A, #8>1DAA»  `ÿìñÏ 37#5##53&'7&'''6333267##"&5477#ça: & g8 ! '6E®**   ")  ( RôÏ !7&'7'6'&'3#&'#'67#x  W y Ü7# ,=/ " :Ï   ' $# IÿêôÏ 3733##"''3255#53'&'&''333#"&'&'75#  66X  I  :* (' 0 "Ï1f  a) Ee    ULÿêóÏ.73533#&''655#'&'333#"&''75#$** )$"  ) '& /  !™66( *$4A Fe   UUÿèòÐ$(7367'673#&'#'67#3'6673#Z0;2O, #"  &#  8“ +(-2( #,h_ÿèôÎ"&*73#3##5#535#535'235#35#35#35#ã  BB99<5""5"W""5"L  ¾`  9<K _ÿèïÓ!'373#"''3267#3#"''3267#536&'3353353#•A   Ikj7aÓ 7! (MR >MM   NN>>§A    ' # M    UÿçõÆ $(,07<@7&''67#53#3'#5##5'6735#33535#33567''35#Ž  LH  H!##5$Y##5$L &HH@ JJ @ >p+ :  5 (P„Ñ#'+73533#3#3##5#535#535#35#33535#335100**//44**1*B*Ç  <   < " " Kÿê±Ï")/5107#"''3255&'#5'#535375#7675#7'6'&'§ '& D  >  ˆŠ #bj+0žGG"9C N   GôÓ!(,0J73#53'73#&''67&''667#'3#735#37#"''3255'7567#Q0w2h>    "ƒYY99b,  47 IÓ         !   wÏ`73#3#3#535#535#zR"X# `Kÿé¥Ð(,073533533#3#535#35##"''3255##535#35#NZ!/    '''''·oA&  &  444=**=4""4"^**<*Ñ #$$    2 B  C U~ òÏ-273533#3#3#3#3##5#535#535#53&'#535#367#…(--20((00//))1/(&.¼  :Oÿè¥Ï 073#53635#35#3#3#"''3265#'665#53&'u"I%%%%+)   Ï NN +-% 2 " !Kÿé÷Ç$59=73#"''3255##53535#335#'&'333#"&''75#73#735#å    I 11 <  " ,- 6  M-- ÇI`  LcrII9$, MU  G3 IÿèõÐ '+/?7&''6'3533#3#3##5#535#535#35#35#73#3##5#535#à  k! !%%%%C@!!Ð "Z''Z<:"FF"RÍ#'+/37335#535#535#53533#3#3#353#735#33535#33544''11//))66d(A(j 33 LKÿé®Ï(,073533533##5##5#3#"''3267#'63#735#K8  - 00º o\   M,Eÿë§Ï"9?73533##5'67#7&'7'6&'3&''67'7#5367#P!##   H   & ! ¦))3 4    4     0 `ñÑ !'+/3773#'6'#3#3#53535357&'3#735#335335˜LS '""&e==q 'jj   Ñ  *i. 0ÿéîV"73#3##"''3255#535#535'2« CCbb  ccJJ*1V      @ÿë”Ï573673267#"&53#3#&''67#537#'6P  +   !  Ï         lÿÿÚy $73&''67&''6673#735#Š4    9MM**y    2.KÿéôÏ,1@FJa73&'73673#3#3#&''67#5365#535#5#35#"&55#'67#333535#7#"''32654'7##5N  '*!   %)%!8;   3;;;“  ´     ^    ^ 6   > s?!! CËÜUÿéöÏ$59=N73#&'#'6#'673#&3#67'7&''735#35#7##53#"''325r+ ]  -qC1  mA Ï       Z.  o8#¡r TÿéòÑ-:KOSW73#&''673#&''63673#53&'3#"''325'##53#"''3255#3#373#q(  T(   2  +ž(d  H F  !Ñ      'a  &x_  I:LRÿø–Î73533#3#535##5##535#R><¯##IX\7' NÿçõÏ-159=AELdk737#535#5#53535333##3#3&''67&'7#735#33535#33535#3356773#&''67&''667#"P# %'&   -1#$  0*      8 +   +    ) G< ¨@) - #P)!‚ ðÑ &6:73&'73#3#"''3255##53&'#367#3533#3#535#35#‚*-  D0"7½  u `t…  0  // . ÿéóÐ)?RhŒ7&''67&'763533#&'#5'67#73533#&'#5'67#67&''67&'3673#&'#'67#3#3##"''3255#535#535#'2   v       7    RRv:" .59 +=“BBcc   bb@@ #Ð    %  $$   /       OÿéôÐCHY_e73533533##5##5#&'#5'67&'77'767#'6733&'73'673##"''3255#'67&'S%*((*%„  A       # 24 $ p|7   2  bà  M         H- *  WÿèïË >B7#5##535#3#735#3353353#3#67&'7'5'67#735#ïttt ``   Ukk\(  ::Ëâ ãÈ· + ( &     =ÿèöÐ/5IMQhn73#3#5#53&'3#735#3&''67&'67#53667#'#"''3255#'65535#35#'66533267#"&55&7# KŠ|ŽK5ŒŒhh&          i +   Ð  B) !   3  5Z  )(+" !1Y - MÿèöÐ SW[g7#5##53&'73533533#3#3#&'#67&'67'5'67#5'67#535#535#5#35#3&'73&'#ên?D* ,  0  # #)H!# & ½       3      4 KÿéöÑ MQU[_7#5##53&'73533533#3#3#'#3#33#"''675#5'67#535#535#5#35#3&'#35#õHG1&*88 Q  / &.K?' HH¿%&          '    &$ @ÿéôÑ"&3Im7#3#'6553'75##5#35#33533567'53373673267#"&5#5'67#53&'73533'673#&ð/)~>+S      $ #/#   , ¾ ' E? 6BO   3 ,     D&'     TÿçöÐ /8ANTZ`f7#5##53&'7&'''63#35#535#53#56367'7367'73327#"&'&'7&'&'7&'èp:     ))d++.@ˆ   :  7 KE ,E½)*      =9FF SG S! %"3        LÿéîÏ )-15FY]73353353#3&'73#3#3#3#5'67#35#5##"''3255##5'673&'7&'#735#[+'‹":92222:‰ =,,,,,z  p'  *  B Ê!   /    > +CR.   GÿéõÐ%;K[73#67#53533#'#5''6553&'#5'67#53533#&33#3#3##'353#5#535#535#¦?…    B@     '''&&**E$))""$Ð >    % @2 3;Y L(&     ^ h  Iÿé ÏI73'73#''7&'76#3353#3#"''3255#67&'7''67##537#I" W4   ++'     º       66DK  8  SbGÿé£Ï48<@73533533##3#3#3#&''67#5365#535#535#5#5#35#335K &'    !4  ¼ 0  0 < HÿèôÐ!<@DHou{73#&'#'673#&'#'63#3#&'#'677#5367#735#35#35#&'#"''3255'67'677767'&'''6t" N- MwE`)#- ,SSSSSSL    < Ð      E 0   D          KÿéòÐ<AZ^bz~‚733#67&'##"''32655'274''67''67#537#'77#3533#67'7&''275#735#335'3533#7'7&''275#735#335{L+J      !-(')+ 4ZHTA'  "  †  '  Ð          x+   +  ÿèñÏ"73533#3&''67&'#535#67ceeN)$3:+/?;&$Oc9!'®!!'0  1':-'bóÌ $(6<73#535#535#3#3##"''3255#535#735#'3#7'675#&'sqr_\\^7E  gg##U=   ÌD  <1    B  ÿæêÐ733#3&''67&'#5367n\\Q%"38(*6 5$B#Ð#$2    .'$ ÿèÜÏ73#&''67&''6667#S} %.*!/.# UÏB+$ 3*,ÿè‡ÎB767&''67&'373#367#"''3255'7567#'67#5367#  0 .7 7  26 )   &Ë     ?  !     ÿé…Å"&733#27#5'75#5367#35#35#75#R "&,A=000000Åe&#p DBE ÿçˆÐ)-17#53673#3#3#"''3267#'667#53&75#35C)!-&)I? . >$@@bV  V  + #  = ÿë‘Ï/373533533##5##5#3#"''3267#3##5'635#  M  A9+ » n)T DML"ÿèˆÎ";A73533##5'67#7&'7'6&'3673&''67&'67#367400 +Y  N'-  # 2 ¤**. 7   4  2     GóÐ;?C73#&''67&''667#'3533#3#&'#5'67#535#35#335¢?     &“322)"  ,3,Ð$     1  %  10ÿè‘Ñ!%)-K73533&'73#3#5##5##535#35#33535#35#3#3#"''3267#'67#53&'78-.7.J.3MC   4  ":¿  PQ & % ($ (ÿéŒÎ+17733#3#5##5335'673#&'#5'67#7'6'&'D445V2/4*1*0,  ".^ ?  Î '%]' *:88     ÿçòÓ#?CGKQ733#5##&''67##5'6367#3#3#&''67&''67#735#35#35#667#Z` 6G7!  B 0 g [ ³y  ,7/(F 1# !"M_Ó  %    /S    ; @  ÿêôr !.;7#'6553533#&'#5'675#&''6'&''6ïÀKNN&8 6$. 7$K†  g   r!-) !*2!   &$       ÿçñÎ73&'73#&''67&'#367g  a'# $; 8-*><))%;%% ¥ &8$(=6! 7ÿèÎd73353#5#'6535#/w|ywd|. )  ÿèÚd #73'6673#'3#3##5#&'''6) vaa s00] > d:.+1vuCC     [zÏ73&'73#&''67&'767#**   Eº     ÿìôˆ)-159AEIM73#3#35335#535#535#533#5##535635#3#3#735#3#53535#35#35#C %Y$.º-::,,(( U*è)ssssssˆ  >> ?  6:3  ): :ÿéñÍ73##5#'66556Û F\«<[)bÍ )……A81VÿçìÎ 73#&'#5&'75#'66556Ø F]¬H& " P# cÎ *2 BK  *)3-$xÿéëu73##5#'6556­ 3C©>XIu DD#  $* ÿï€Ç"&*7#53#3#67'675#535#53#3753'355#m2  0; 2 ;\kCA "ACk0/y!!!!!ÿìŸË6@[v767767'7''67'67676767'7''67'67'33#3#76777'74''67'6767774'7''67'67;     3    mwwo‚*   3   ¬        ]]O       ÿêèp 7&'&'   8& %5p6tÿéô…73567#533##"''3255#t8F^44  8G9 6mÿèò’73##5#'6556Ý %/^,6’[[ +& !#HoÿèõŽ$73##"''3255#'67#53535#&'á 666  ŽM1 .' MM<mÿëó%7'67773267#"&55'75'7š // 79DF $*-&)n  $kÿèïÐ *73#'63533#3#"''3255##5##535#‰Yb  244/  ,2Ð )M  6ffOadÿéó #7'6553'#33267#"&5536‘lDD $ Y86 ,686%#   L hÿèõ™73#3#&''67#5365#'6”K.95 , (1 2 36 ™ *)(, ÿéî–"(733#"''3255##5335#35#7'6'&'¬+   G-GGGGJ A  –0i +|!2Z   nÿèò®&*.736533#&''67#3##"''3255#3#735#‡$*-  ! „   _ ??š  +N  K4cÿçõ›%+73533533#3#535#35#35#35#&'''6r/†&//////-" #  SS12(    kÿé÷  06<73#3#535#5#35#3353353#3##"''3255#'67&'vv$!r"#B!![ff ‚4  ;U   22 #,      hÿéõ¥/37;?73#&'3#5##535'67#53&'735'273635#33535#35#Ë(" "0L0 " #//  @/L/Š  V W      ], cÿéõ©"&,48<7&'#5'63&'3#735#&'735'6#5##535#35#ª @ .+ 5zz$$ /"   FFFFF©   8  (CC ! \ÿêöÐ EK]73#'63&'73673#67'#"''32655'67''67&''67#'&'333#"&''75#~hp "  %  !     !  $&%.  Ð *            "F  9^ÿéóÎ ;AG73#'633#535673#3#35335#533#335#535#535#&'''6€^f P"    ' Î  oc ..8ADq   ÿèòÃ$73#3#32767#"&55#'67#5367#Ä\mT - PIUZTÃ^ dM0,AÿéóÂ'73#3#32767#"&55#'67#'7367#ÃQfN* PKG<^Â$T! ZD.*74-$iÿçöÄ)73#3##'67#'7367#33267#"&5}t)-8-)7@Ä&C3+:6'fC &  ÿùwÐ '73#53635#35#3267#"&55369+X 11118 '$ Ð \\ 4:3 A,ÿéÓÄ 7#5##535#35#ÓÄÛÛYF¢I"ÿï6¿73#"¿Ð1ˆ 7##55#35YYFFˆs‡1ÿççd 767'563#"''32765##5i #$"". *¥  <d 5  QE $`rnñÏ73533533#3#535#35#3B55=â;3GBBµ!!!!ÿèî]73#3#67&'7&''67#*ªªÛ„4=  PO#?]   ÿçñh%73#3#"''32765#'67#'67#'67#á” :6 - (!"5hD #-!") HòÏ *7333#"''67&''667#73&'#<7 I$P&'$  % +U" Ï $     &4)ÿé¹0 73#'3'66¥W0GG bÿéìo73533#"''3267#'67#x!@,:3!VM6B7ÿõòV 73533533#7&'7'6PNä$  ¬ OOOO]    ZóÇ%)73#67&'7''6'67&'7''63#ÓÓ’   %)]   %)!ææÇ       &jðÇ 73#3#535#35#'6'&'Ê@KàH=P''` “  Ç9999   ÿçôu"&7#'6553#3#67&'#67''3#RÈ´¸U   L œœ++44(   :* e ÿéó‘ $*73&'73#3##"''3255#735#'67&' hiæ¬H  P‡‡ # &~w   3&  #(  PÿéžÏ73533#&'#5'67#V  ¡..zc )8ÿéë^ 7#5##535#35#7#5##535#35#u88888Â;;;;;^u u,E>u u,E ÿéô†$+377353&'33#"''67&''667##5##535#;6  $R#*$   ,“xxx† >      >@ @& ÿèòt 773#&''67&''667#'3#3#67'753675#šH     .…e' 1= ,t#     %# B?R OçÓ $(73#3#&''67#5365#'673#735#2@'-/' ) /3 gZZ22Ó    S0LòÏ8<A73#&''67&''667#'#3#327#"&'#67'535&'#¢B     ((&&" % E$Ï     "  . t 2 2ÿëò­-59=73533#&'#5'67#73533#&'#5'67##5##535#35#9$    a$    Ammmmm˜  '&   '( @\ \"0UóË/?73#7&'7&''735#35#73#3#'67#'7367#33267#"&5^L/ ' ::::Zh(05    .8  ËC    T # (    4   ÿêõ¦"&,0473#3#&'#5##5'67#5367#735#35#3&'#35#35#*¨Y 4" n 0C8„„„„d B nnnn¦C  > ? ( % D  ' F êÌ *.2673#735#35#3&'73#3#3#3##5'65#5#35#Xˆˆbbbb#160000:w 9+++++ÌG+ %     F    Sÿè¡Ñ 073#53&'3#735#367#"''3255'7567#wH>>D    +Ñ  431  WóÓ )5E73#53635#35#73#3#'67#'7367#7'533733267#"&5;.a====Yi(05    /WF,( KE Ó99 (    E  )   2ÿèï²5=AE73#&'#5'67#535'6'3#&'#5'67#535'6#5##535#35#Ú#"   '4   "&({ppppp²  *)  *'  jX X -bâÌ!%)7#"''3255#'65535#35#'3#735#35#â  D AABAtJJ&&&&ÌT   $%+2U14ÿèñ|8O7#67'7&''53'73535''67'67'67767277#"''3254'67##5¤6 $$$I1 %    ® lO  z ;   E*  z‹Iÿè¦Ï 173#53635#35#3#3#"''3265#'667#53&'r"J&&&&/*    !Ï NN +-%  2 " ! ÿæ÷Ë RVZ^b73#3#53'#735#35#3#35#53#3#3#3#67&'7'5'67#535#535#535#735#35#5#35#(´SdáiKZ6]6==55Da    N 5# 5)[C55==499j<<666Ë6  2     !     1"ÿõÞ·7#5##535#3#Þ”””·ÂÁœ‰:VäÐ 73#"''3267#'67#'67#'6G•  ! 81 !=7!#Ð C',"#(  ÿéêz"(733#"''32765#&''67#'633#L œ I$ =/|z U" 4    ) RóÏ#'+/73533533#3#535#5#35#33533535#335335 M'LL;Â:M‡';((;'(((;'(ÁOO-QïÐ73533#3#535#35#33535#335dffWÀUd!CCWD›CCWD SS .1Fæz 73#735#335335ÍÍ((:.+z4aàÏ73673#53&'35#33535#335Q )  4Á2 EEYCœEEYCÏ  RR 40\àÒ#73673#53&'35#&'735'6Q *  5Á2 EE  JC&  Ð WW Z5  55  OóÏ;73533#3#&''67#5365#73533##3#&''67#5367#'$$*-  "(-'p'%%/* ! " #  $+'¼          JóÇC73#3#7'5#'67#'737#73#3#3267#"&55#'67#'7365#a'* 1 )! (je&. 2 ' ,Ç !   .'#  &% ÿèîÐ"&*73673#3#"''3255##5'67#35#35#Lx‚  p,BCpppp´ €  5}$+IAUêÑ'+073#767'5#53&'7#"''3255#'65535#35#= *G)# *¾ @ ;;=<Ñ 6 ?`   "."/ ÿéõÏ.26:@DH7'67#535#53533533#3#&'#"''3255##735#35#35#&'#35#35#9%2+&&d)).5   jddddddh JjjjjI : : G  %Á !! * * …WéÊ7#"''3255#'65535#35#é   4 3333ÊZ   /, ÿéóÏ73533#3#&'#5'67#535#$QSS]P%8 ;$$9 < P^Q©&&%79hh8  3% ÿéõÏ73533#3#&'#5'67#535#dee[O$< ;&#: :"LZd¨''&26gg6!3& ÿéôÐ73533#&'3##5#535'667#``Q$8 ;%9988#: 5Q£--H!'KW11UF*> ÿéðÏ (73533##5#7&'3'66#"&55332bggb™a  ´  œ33  E  GA ,0 fbÿèíÎ73533#&'#5'67#7&'cdX#5 7""5 8 W™“;;G %F‡†B&(AJ  \ÿéòÈ $(73#3##"''3255##5#535#53535#35#ß  GGGGGÈ?*7  2PP*??,i*>ÿè¿< 7&'&'g%* ,'@8 8=<  ÿêÔO73533#&'#5'67#B9,!2 5 - +3= "77 VÿéðÏ73#5##5#'665335#53533#3Ø!  6699!„‚tB7   $&DÌS7?%5A!>615gÿèòƒ73533#&'#5'67#WZG!5 :$!5 1Dd1;ea50gÿèðÏ&73533533##5##5##53#"''3255##g!!!!"| 7µ@X BzaÿùòÍ7&'73#5363#3#‹ N '}B Imm‘‘Í  \6Oÿÿ®73&''67&'767#Z7    $®<' &ZÿèõÏ%)/73##"''3255#'67#535'673#35#&'ã  H  ckGG  ‹L(  #& !E . L; ÿçùÏ.4K73533#3&533#67327#"&''67&'#535#7&'3533#&'#5'67#400=A@    " Ž<4²  £511  (2¶&' (%%7&+ b  8?!/KäÏ 733#3#5335#35#oaaQ¥@,}}}}Ï VV"0>éË*A767#53&''27&'67#53&''27'767#53&''27&'D'! € - "&<& Ka  w Kb ¶    9       SçÏ $73#5'677'673'67#&'&'P !7EJ A8 c  Ï|%   % <-  :ÿéòq &,27&''6367&'#"''3265'&''6})= 77(9 M  " "0    .  , ) -q  '    :   ÿîòt )7&''6'&''63533#3#535#¸ $x #WWWhähWt ! ,CCMÿç¤Ï73533#3#3#'67#5365#535#`!  ¥** , ! Uÿè Ï73#5#'67#535#533Œ  .&ÏæYE9TAEÿê¡Ç"(7#53#"''3267#'675#5367#5;5#365#hK   ´¥ ,2 %)g]ÿêï` 73533##"''3255#'67&'i755  7\  N7  3 !  Rÿè÷Ï ,73353#533'67&'#53#"''3267#'66Ÿ&…&$#P !*m  .7Ï1&88&+ 'GF/8 ÿèÑf73'67#&''6m e)Œ ‚#a   0f >.  X‹Í73#&'#5'67#535'2x 00  (61Í  !.ÿéóX73267#"&55#'665&'µ  J*XQ " C)&  !1!TÿçöÉ &7&''667#535#535#53#6''6Ù,8 "$2^YY]r-VX +7 //f   ÿéóÒ?GKO73#&'3533##3#&'#5'67#535#5#535335'67#53&'&'7#65##5#|g3  0''ChV!5 9$!72 RfC%%0 AdCB ,900Ò   !  23!  ) HMÿìöÍ "(8>7&'''667&'7''6&'#'6733267#"&57&'Ã/   ).$  4 "_  Í1 0.*  +& 7  8 ÿéõÏ#'+A73533533#3#&'#'67#535#35#35#35#3533#&'#5'67#%i&&,2 $!L+ &4*%8iiiiii;>*( )#-( )Ä J  J., ;!;:  ÿéïÏ#G73533#3#5#&'#5'675##535##5#&'#5'675##535#53533#cddL95& !.%5 <'=PcÅ;.7 -,$8 >'=PccccÅ  '  ( q1   ), 0  Uÿè÷Ð +177&''6'3#3#"''32765#'655#53&'&'&'à  3,'   S  Ð &!!$0%d# >J/ 0F-f. G{Î7&'73#'65535#C!I54º @ !+/KÿèôËBG7#"''3255#'65535#35#7#"''3255#3&''67'&'##567#—     &=  4ËÈ  :1) 6Aa=,h+ o9 $I 3   váž NðË573#7#5'275#35#35#75#767#53&''67&'u5" #111111d J`   ËH N.. -)   ;ôž#73&'7&'#"''3267#'67#5'6aw2-   5I ?. 0ž  $ '    cñÏ-73533#&'#5'67#73533#&'#5'67#,%% 'n(//   #º  -0 +/ Bÿê²Ï !7'673&3#"''32767#'67#l 0E  & Ï7 %())-*\JU"KdÿéêÇ )7#5#;5#35#'673'67#&ê~HG E % S< ÇLL****&  ; Iÿé¡Ð 73#3#&''67#535#'6g+ !Ð' ( (51 $Pÿé©Ä73#7#5'75#35#35#675#PY    Ĉ.*• U$`'Fÿé¶Î "7'67&''67#7&''6q 1 &  &2  Î/   p #(x™  . $! }QñÏ73#&''67&'767#'6˜J     - Ï     Fÿê©Ç+767#533'67##"''32655'67#53&'j 9Q      -® o L) (1  ÿéó[!73'67#3#33#"&''675#Ð D55<421 $`[  ( ASÿèôÈ .73#735#3353353#3#"''32765#'67#53&'e‡‡%,>ZQ   A & .!;ÈJ(((((> : +< QïÐ #)73#53635#35#'&'7'6&'''6y'W2222CÈk!Ð ff3DE *  TïÏ,73533#&'#5'67#73533#&'#5'67#,&& %l)/,   µ 3:'8;‡ʘ 73#735#3#735#‹::CC ˜8=< Fÿé‘Î73&'73&'#5'67#W     #"­   ie +2QÿèìÇ )-177'66553'#3'6'33#"''3255##5335#35#'&' ZZ ')  ;%;;;;*C6 0$^:(  j ,"3Q  ÿéƒÎ273533#3#535##5##53#3533#&'#5'67#/00,h(/sNDD)++  &½  )#'!  )-=ìÑ!-173#3#&''67#535#'63#53#3'35:3#'   *0 eWjhULL9Ñ     D|3"mÿèøÏ !7&''63533#&'#5'67#¬ ! ,&* #$Ï "%""?''//_L !-Lÿé¥Ð#'73#"''3255'67#5353635#35#35#y   * $/Ð · )&s7A9KÿæôÑ%C7#'6553&'73#3#535#535'6333#"''67&'767#'7#ó†B2 D$V, *,%/ »PC2 2>[   &))" '2   'HÿêöÏ$NTZ7'6'367#"''3255'67567#676767&'7'#"''3255'67'6&'''6à , .uA      -_     ";  4 Ï+N B< 4   E >T # MÿçöÐ"&273#3#&'#'67#537#53635#35#3533##5#–?7K) $* "$/+"PPPP !! ÐT '%T ,2o%%SÿéõÐ9B73&'73673#3#3#535#535#367&'#"''325'3'67#b%"=22A<33<<   $  A7% #±  M     9(„òÏ#'+73533#3#3##5#535#535#35#33535#335ˆ+++'',,//((+)>)»ZZ28<òÏ#'+?73533#3#3##5#535#535#35#33535#33573##5#'6556433,,1155//4/I/w )G-Ä  >  > $ ! K MM'! ;TÿéóÏ 6L73#53635#35#73#3#3265#"&55'67#'7367#3673267#"&5jB:O  ' &K    Ï [[4;A%Y  )%&?80&`     _'ðÇ "&*73#3#535#5#35#"&55#'733567#35#_‘0'~$.O#Z EZZZÇ{{K# )! W EöÏ6<BT73533#3#535#335333267#"&55#&''67&'77#'67&'3533#67'75#(((/p/(r$     X  A @(&&0;0(à ;/*         HÿêøÏ'7=CU735333267#"&55#&''67&'77#'3533#3#535#'67&'3533#67'75#Ÿ    OQ  0  , $,"£,,6&$$)#8J%+5 ($, 1 WÿèòÑ #)/573#53635#35#'63533##5#7&''67&'–>v"OOOOZwHAAH 1"D ÑSS .1+  B73533#3#&''67#535#73#3267#"&55#'67#735#35#35##""(*  "%(#bk   % GGGGGG¼    X   > ! " FñÑ *E73#53635#35#76777'7''67'6767767'7''67'67yAI    ¤     Ñnn 7J/ # 0 # EÿèõÐ ")-=AE7#5'673&''67&''667#3#7##53##'326=#35l  K3  &5]*M  **Ð!¢v 9<      ˜ *uc ?  BôÏ+?R73533#&'#5'67#73533#&'#5'67#'&''67&'76&''67&'76  ‰ !             ²  D6 " DA"-   9     ‚ êÉ$(,04733#"''3255##5##53&'767#35#35#35#35#ƒc!  *  I***É { ++.  G>SO÷Í!'-37&'73&'#"''32765#'667#'6'&''6k -V  . !  - %  Í   &  /J $$      ÿèóe'-173533#&'#5'67#73##"''3255###535#"     ![‰ bM0R <7M  H4 ?#WÿéõÏ+2N73533533##5#3&''67&''67#5#67#3533#3#3##5#535#535#Z!1##1 P (   !- =&7<<88DDBB337     *  @     SÿíôÐ!;73#&'#'6#'673#&3&'73#3#3#535#535#u) \ ,r;<@::G¡F55:Ð   !*  %''%Iÿé«Ð)/767&''67&'3533#&'#5'67#7&'_        >Ë    c$$  @>"3  WÿèúV767&''6''6£  +1 K* V # #) E @ÿêôÇ)-Gb7367#"''3255'67567#'66553'#3357#533##"''3255#3567#533##"''3255#jC    1 —qqh:Lh -5  :: )<   ™4  * /#^.8   A  •÷Ï*073267#"''67&'#67'53&533#67&'Ý    !"! {'  " "6[ z%e  PÿïõÐ.6>BFJ73&'73#67&'7&''67#3#733267#"&5'3'663#53535#35#35#WC@N  280<,  V  z£#&¾     244  !*===+++++\ÿéóÏ">BF73#&'#'6#'673#&3#"''32765#3#5'65#35#y' Y(Vc  VGQ @---Ï       c N SF/"Mÿè¬Ç"&7367#533#67#5'75#35#35#75#S).C  Ÿ s"|JMÿéóÑ %)-1H^73#'63533533533533#3#535#35#35#35#3533#&'#5'67#73533#&'#5'67#=£² Û",,.Ž,%$  %q&/%# Ñ   %>  99 @7u Ó]73#3#3#535#535#xY$&^&#]SÿêòÒKPV7#53&'73#3367&'#7'5'67'67&''67'67&''667#67#ƒ(> @YN 7,   ,  "! - % (J$8­   -         ; @öÐ !'-=MSY_e7&'''6733267#"&57&'&'7&'33265#"&5'33267#"&57&'''67'67&'u ;( " -!‰  {     p  CJ  s  c  Ð    # %     %   )#   )    >ôÐ$*.S73533#3673#3#5'675367#535#35#35#'#"''32654''67&''67&'76t%  "5 5h  92%D=DD8      Å   H) J " s +      _ÿéóÏ(.4<Y7367&''66'367&''667'6''6#5##533265#"&55#3##5#535#À   D    0A‰j\ "$$Ï     %    :()#G :,, Pÿå÷Ï#'+/5;73533533##5#5#3#3#535#35#33535#335'67&'X2 Yd21™E8ƒ8A%%8%]%%8%I (!J  ¾  TT .2'    Rÿé«Ï#73533#3#3##5#535#535#35#35#T!  && !))))¹[%%[=; YÿèîÈ #'+73#735#35##5##535#35#7#5##535#35#mppHHHH‚ÈX563x x-I>y y.I[;ïÐ #/7'2'6'&''&'#53#3#533#535#535#à3K=0  */0r/B”?5zyeeefÐ      9 Eÿë©Ñ .73#5335#35#3&'73#3#"''3267#'655#q!J((((!%4-   ÑSS"143 $ *ZÿîóÈ!%973#27#5'635#35#35#75#73#735#3#3#3#535#535#ZT 2 @88cŒ<22A˜E66>ÈI P0/IiEg~òÏ,7#5'67#53533#&'#5'67#53533#&¿ &.( €&//      J‡Í#'+/37335#535#535#53533#3#3#353#735#33535#33544''11..((55c'?'b 66 Q„ ëÇ!%73#"''3255##53535#335#3#735#à E 3 -"".. ÇJ` MbqJJ:%48  IòÒ1MQ73#&''67'767#'6'3533533##5##5#3#"''32765#3#5'635#¤? $ŠN   C8< Ò     @ % & @ÿê½È 06<73#3#535#5#35#3353353#3##"''3255#'67&'Qk c;    NZZ k,  , P  È99*7.  +   NÿêõÑ/5CI73673#3#3#535#535#53&'3'67#'6'&'3&''66''6†  =77B<55=$ *B 5 , S  $ 6 Ð  i          WQñÐ #)73#53635#35#'&'7'6&'''6žA5 Š   KÐ dd 3FD  ) IÿîöÑ $(,04873673#&'#3#5'67#3&'#3#735#3#735#73#735#W,T)" n…˜ " T  ZZ7733-33º  z‹  () #338ÿèôÑ *@QUY73#'6'3&'73#3#"''3267#'665#36533#&''67#3##"''3255#3#735#¥AH  M !#    S   d H66Ñ i#U28=L    'H E 4]ÿçôÐ ,28RVZ73#5##53&'&'3673267#"''67''67&'3533#67&'7&''675#735#335§9h<    $ o  e588 k>+ MMMMMM; "  (BZM ?# )@ÑQ  Q ! 1   "    õÉ048<@EI73#3#3#'#3265#"&55'67#5367#535#5#35#3353353'##3‚q!39  0 &   '( #@   7,  É 4    $ 4 $I  ^ÿíóÎ#'+/3733533##5##5#53#3#53#735#3#735#73#735#€+""+""r|}+NN**"11,11Î&„¨) (2  2 Éc 73#735#3#735#‚CC!!JJ))c( #-^ÿéöÏ!37;L73#&''6#'673#&3#67&'7&''735#35#7##53#"''325w* W +k@.   g>   Ï      Z-   o8#¡r  ô…)047'67&''67353&'3#"''"3#767#35#-!  #?  ? 6!š¨. 3 „„?  # #=4 HÿëõÐ9^u73#67&'767#533#3#"''32767#735#5''6553&'6767'33#"&55#'6653&'3&''67&'767#¬=„  %7 # &  A*       " 9   %Ð ? .*- @1 2:Y&      n     QÿèñÍBGKO73#&''673#&''63533673#3#5##5'67#535#67#5#5#s%K,!  B(" #7MH )41(E ,HHHÍ    ,   W J  C TÿéóÐ/<LPTX73#&'#'673#&'#'63673#53&'3#"''325'#"''3255##535#35#73#i,  O2  + #,˜#e  1  #####BÐ        ,g  ]e *y .*UGÿéôÏ4:>BS7#'6553&'73533#3#535#3533##"''3255#&''3#735#7677'7&'ôˆFDAH   E@@   #+¼MA2 2 +CR.   OÿçòÏ ?DHLPch7&'7'6'33533#3#3#3#27#5'75#535#535#53&'#5337#35#35#75#73&''67&'#367q  u H6$#=66FP! E77> 5$3!!!!!!9B     Ï      A K    \+- *    AÿéöÏ]aei73533533##5##5#3353533&'73#67375#"''7#53#3#367&'#'67#'67#535#35#35#5#R&(--(& Q      47A  A  ¿ #)  1"3( ) u/ I@5) &%) !36MÿçôÊ #'+/37;djp73#735#33535#3353#735#33535#33573#735#33535#335'67'67676767'7&'#"''3257&'''6d{{&&6%[&&6%|JJ+MM-F    !  %  & < Ê6 :" $:" T          MÿêôÑ9=E]aeƒ‡7#'733#67&'##"'''27&''67&''67#53'3732653533#27'7''275#735#33573533#27&'7&''275#735#335ÁLM@    &&,* 7_2C"  X $   $  £ #        W % -     -    ÿéóÍ&<NRVZ^tƒ‡Œ’73533#&'#5'67#7&''67&'73533#&'#5'67#&''7'763#735#3353353533##"''32655#'#''53535&'#7&'    |            kÉÉ-->*,OG G  &" 999'q  »  !        &-/ 0 ,=   X  $0  TÿìòË#'+/37;GS`73#3#5##5##535#3#'3#3#73#3#735#73#735#73#735#3#3#535#&''67&''6`‡;F55F;S''E$$''H((Y++%++$,,s>EžF>   \  Ë 0!11!0 # +  +  + '..    :ÿé©Ð#AGKO73533533##5##5#3#735#73#735#3&'73#3#3#3##5'65#5#35#F(( #(( 0 C (Á  11$ L   ÿéŠÐ $(,73'72655##5##5##5353335#335335P:+:e ¤!ƒ +33==E˜Mc00000 ÿëÏ1FLR7&'#5'6&'3#735#3#"''3255'675#73#"''3255'675#&'7&'U  H )9 XX44 5   $=4   #3  K  Ï    *%\   \      ÿè“É)=Qbfu{73''67'767#73&''67&'767#3&''67&'767#73&''67'767#3#3#5##5365#5#35#"&55#'67#333535#A    /C@    -CA     /C@     -E…-&V(-H 'V BVVVÉ   +      * ZZ . 8  ÿóóÏ733#3#53533„TT[æ'<ÏImžž ÿñóÂ73#3#3#535335#ÒZSSbæ&6dÂCU‚‚« ÿîõÎ(733#7'7537736732667#"&5Q%%$8EE  !'  ÎE`  ¡½L e ÿèõÏ"473&'33#3267#"'&'#7&'3#33#67'7537BA  Á  ™dd1,,=L“!<@''(RJ 4#3 ZWÿéñh 73#7&'''6'66yJh! "† 9n BFhHB  $ 0 ÿéá€!+73533#&'#5'67#7&'7'673#5#533<::2  /  i  )®šX((,, 6   o ÿçõ‘/>D7#67327#"''67&'#'6553'33&'73#67'675#'6ò;       r…¨b' = (       "-$0- #-6  "- 8 >  ÿêõ->DJ7#67327#"''67&'#'6553'33'73##"''3255#'67&'ò;       r… ªb&   )   N  )   1$0- #-6   "H  E 3ÿïó¬-=73533#&'#5'67#73533#&'#5'67#3#535335339#     a$   SÀ"#F”  -+  -,j//<0ÿîô°7G73#&'#5'67#535'6'3#&'#5'67#535'63#53533533á'    +5!     )=MÀ%*=° /+  *'”++9ÿîoÏ#'73#3#3#67'75375#53635#35#8$<< .. ! ))))Ï3 3 86As ,RÿéìÃ73#3'67#&''67#×p c&+A w'X 7PÃ< & ` $; ÿèõ¾173#6732667#"&55#3'67#&''67#âL$ $+ A> ] O0 #-¾F I  ©t-![  /;ÿèðÇ$)733#"&55#'6653&''67&'#367»(, U ²#%5:.,: 4& )!!Ç9  ,"  *h    ÿè|Ï!%73#3#"''3267#'655635#35#r !,FGJ7 5"3333Ï W 7 !' r<A5 ÿêƒÐ(.4767&''67&'3533##"''3255#&'''6   -&&   -W  9È      SP  K  ) ÿéŽÆ!%+173533533#3#'6553'#335#35#'67&'-e mHHJ% 8  Š!# 4>^<+f##:  ÿè…Ð873533#3#535##5##53#3533#7#5'75#'67#53100$_'1sN+4<!#25* ¼  ( "  ÿéˆÏ#'+3773533#3#3##5#535#535#35#33535#335#5##535#044,,3344--0-G-EEE  G  G ) ) JF F* ÿèÐ,2873#35#535#53#563533#&'#5'67#7'6'&'9A0g2,,  (Z?  Ð [VŠ))  .0 7   ÿíôK $7#53#3#537&''6'&''6xcØbiçkD  u  :<9      ÿéóÏ!*.2DIgmq‚†Š73533#3#535#733#"&55#'665'6553'#3#5#7#53&''67&67#3#&'#5'67#5367'23&'#35##"''3255##53#735#122)d*1½  n `(j^  *,9,z ,G1S(]KZZ‘   ž-ddDDÈ    O %     '& )8  ÿìðÆ 7733##7#7#57#337#37#37#* ¤œ o66K4T66C<9mYYnXGGGGYFFF ÿèóy#(-273#3##"''3265#'67#7#53735#3377##67#ÚF  F=:N=?=y,  ,,, J ÿèôÒ/dhmr733#5'6367#35#3673267#"&5'733#&'#3267#"&55'67#5'67'53337#367#335PW7© &JKL% + * TBS?   $&!? 79 HGO K4Ò #         '   # ! *3 # yçË 733#3#5335#š::-a!;;Ë'XXF4ÿéôÍ&9=AE7773267#"&55'75'75'6'3#67#5'675#35#35#75#Ø /18:  '*$'" 0—g $ #""""""Í%&3  6&" ‹1-•""W$`&!ÿìîZ)767673267#"&55'75'75'6Â#'*!N3(-1 ) 4("%J>A9RZ       g ðÏ&,273533#67&'#"''3255'675#7&'&'l4<< !     4^ =  ¨''"  !   :7  7 féÐ !73#53&'&'73#5363#735#¦4w. A"ƒM Fee??Ð  %  6E# ÿèód%E73267#"&55'75'75'277''277767'5'75'7æ4  ".- (*.- $&.0 $' #*     (     aõÆ /573#735#33535#335&'7&''33267#"&5''6vkk-G-  7  A   Æ`7>- 0  , P ðÍHLP7335#535#535#535#535#535333##3#3#3"&''67&'767#'7#3535a-  # ! !$$ 0*  bÀ!         "* _çÏ"&*.4735#53533533#3#3#'67#537#75#35#35#&'j%1>C + ! +3.L%NNNN6 ¡ I $ I ( B  aêÐ!'+/373#3#535#53635#'&''6'&'3#735#35#¶&*2‰%C R  W  ccAAAAÐ ''G'/  . 6O.1 ]ëÓ $(,04107'6733#736735#33535#3353#3#735#35#m $1 t 88!!1"S!!1"iƒƒ eeDDDD¥ ;H$  !?' ! ]éÓ $*06<@DH107'6733#736735#33535#335'67&''4'7&'3#735#35#m $1 t 88!!1"S!!1"[ KQYeeDDDD¥ ;H$          ?' ! $ÿèòÎ#)73#327#"&'#67'56&'&'Î "#MK)  6M YHK  Î&-6( !C6X  ÄO#9Y $ÿéóÆ %7#3#327#"&'#67'535&'#ßELH - U)%2 “BMÆK"%0.A  Í%%Y!ÿêlP73'66X,(P,) #ÿçŒM 73'6673#8@M-( ")bÿí¥Y 73#5#533533’z)*BU K8PPÿê»i 7'67&'3#"''3267#'67#C YD_ $+&i  '2 + ÿé©i 73533##5#735#33535#335<<<<++=*g++=*ZQ 0/ÿè¼u$*73&''67&''667#&'&'FF ),". ) !/ : ! =* )Ï< ( -*)=` ¼5M':ÿèõÑ-37&'3533#67&'#"''32655'675#&'± _b[ * B +49._!Ñ  %%# %$!Sk <#"< Šnµ¢7&'š  ¢ LÿêöÂ73327#"'&5#3533##5#O{  g&&&&Â__,~G>>kkYÿóí¶7#5##535#3#íjjj``¶ÃàŒ; ÿèöÏ,6I7367&'#"''325'33#5#'6675##533'67#3327267##"&5ª  s'2'D(  ,) >%Ï>  &:  ¡!8& z.EB );A&0*[   D ’Ï733#67'5#53Z$$  ÏFO \2ÿêšÏ73533#"''32765#'6655#O'   ¤++Œ) "bIJB>C šÊ767'7''67'6767  ! –C* *#:6!KÿçìÄ 7#5##53#"''32665#7333#ìt2`   b \•mmÄ12LS# &YJ@ÿê‰Ï 73533#67#"''3255'675#B      ¥**2 I  <:@ÿéŠÏ 7#5'673#f  ϰ‚2’Fÿéö™73533#&'#5'67#TCF9% &*+6r''89fe5  4FÿéµÃ &73533##"''3255#'655#75#7&'FN )N) `ccO M;# =RRAPÿéñÏ '7#5##53&'73533#3##5#535#'6íuD799EEHH# ³5##5  #$$(<<( I‡¼ 7#5##55#35‡,¼±¸J9966_ÿéòj73733#&''67#q*;3 / +9 4(K'*)'OÿèìÈ 17#5##535#3533#3#3#"''3267##5#535#535#ìwww "--**1   ##"Èàà¿­$99Fÿïõ[733533#3#53g 66H¯!GEY(0ÿéªÅ$(73533#"''3255##5##5'6553'#3_    [66ƒO  9jjU?%"MMB0DÿçôÊ #73#735#35#3#3#&''67#5367#Xˆˆ````“CQD3 6 C 9 ?E<ÊX545 '! 9ÿê­Î/73533#3#3#"''3255##5##535#535#'6W)),,( &-- Ê G  2__K[ 8ÿèˆÉ7#"''3255#'65535#35#ˆ ÉÉ ?0) *6v9&c*JÿêðÆ #73#735#33535#335#53##5#'66`€€##7#Z##7#U,¥%,Æb9@QQQ% ‹ÿèõÐ 7&''6&'&'·  & !%Ð $"$$<.^ÿèòi73533#&'#5'67#m390 " "%Q#&JO'!LJçÏ 73#"''3267#'67#'67#'6wf    3-&  Ï P88# /'  ÿéõt"E7367&'#"''3255'67#53'367&'#"''3255'67#53¦    " ##a    % ! 0t  %4  1%"'    0  ;*!CÿïðÎ#733533##5##5#5333#3#53533r-))-''%;;E­!Î+1AeeIÿèôÎ'733#3##5#53533'67&''66Ÿ22=EI"3 p  :2 26Î <<;;#     1ÿèíÊ #)/73'6573#'3533#7&'#5'67#7'6'&'O!Šo+,,    %W  A  ÊlH. ,=lá…[[ RM"-[! LÿëôÐ!'733#3#53533'6'&''67&'Ÿ::A¨"8 ^6$ (C Ð&BB  *BÿéóÌ 67'2'6'&''&'3533#3#&''67#5365#Þ ??IA5 5> : Ì  !   1 # )(! VÿèïÐ !%)-73#5##53&'#5##5##535335#33535#335¡ArA])'9:'':)c'':)Ð .. Gr 55t*CbTíÇ 7#3#3#535#êthhw‹UUÇ2sA<ÿëÍ273533#3#5##535#367#"''3255'7567#F!!%7%D  ' .¹ : %  MÿêõÏ%+/73533533##5##5#3##"''32655###535#M),++,)    rZ;((¶!m h< G+Dÿô„¾ 7##55#3535#„--¾¶Ê6%%$$\&BÿéôÏ*0673533#&'#5'67#3#3##"''3255#'67&'LGI< ! ' '=~~¥G  J!m¾ +)<4  1 >ÿé„Ï73533#7#"''3255'675#@    ¥**0 G  99;ÿêÏ73#3#'67#53655#535'6†  !Ï- 2 &'NÿèôÒ *.273#53&'3673#53&'#"''3255##535#35#¡?”= %(¦.w  `````Ò  *    5g  'y!0<ÿîõÐ '+/37&'''63#"''3267#'67#3#53535#35#35#Ã: f *0 +v¹(+Ð % 7#0#J@@@/////?ÿéóÏ/3733#3#3##5#535#535#533#3#5##5'67#35#•BB99JJII33>>DžceQ %&/QQÏg J 2 AMÿéòÐ373&'73##5##5#'67&'3#3#"''3267#735#R@B0, r tr €qy¼ ::;;    +0'1EÿðóÅ #73#735#35#3533533#7'6'&'Weeee&;:®— r  Åb:>‰VVVV^   :ÿé’Á7#5##53'>&'*   Áš‰Š›'O0&  ",0 7ÿé¢Ð %+17&''63#3##"''3255#535#'67&'k  !9!! ## I  Ð%J G:# FÿéóÇA7#67&'7''5353573#3#33267#"&55'67#'7367#‡/ X "   #. +Çx9   Á$$4"">% D  ,#!&>8/&>ÿèõÐ 973#5##53'&'''6&'67'7''5'66556žFyD+'! t  $     UÐ )'(  A'+LY  f)"  &!:ÿí£Î  73353353#3#67'5#'655H  MSSH ½,==,=C  @ %"  Eÿí‡Ï73#3#5##53635#5#_//Ï J_È E&++JÿéíÆ =7#5##535#3#67&'#"''3265'67&''67&''67#í~~~g+    "  'ÆÝ ݰ       CÿèñÏ=CI73533#3#5##535#'67'677767&'7&'#"''32657&'''6OBIIIyCBI%0**) %   )=  »)(}    ! -    AÿïòÈ =M73#&''67'67676767'7&''67'67676767'3533#3#535#Rœœ= !  c    ‡D@@M±PDÈI  .   -ADÿè€Ç7#"''3254'7##5€ ÇG#'EÎßyÿêõd 73533##"''3255#'67&'„,-- , P  S?  < ' EÿèóÏ-1573353353#3#535#3533#67&'7&''675#75##5#[%%8H¢G8;<< DH&&;w)'È#**!2=<  aÿéöÏ%+KQ73673#3#&'#'67#5367#7'6'&'367&'#"''3255'67'&'r+6;R#  $ &%a I  0      Ÿ   >     j.        GÿêòÈ '+7#5##5'67&'3#3#535##5##535#ïy: + +D!N„:H F8…aaaÈ&'    ";G G,AÿéŠÏ735#535#53533#3#3##5#AD&! !&IIKÿòòÏ/573533533##5##5##5##535#535#53#3#3#7&'K+'..'+¤{H55-n/66I£x  ¸0 0†!!0 AÿëôÐ *.N7#5##53&'733#3&''67'767#53'3#3#3276767#"&55#'665#ï{F!  * X>> N 4% ¸((  "    $M R1' %)?ÿêõÏ-EK73533#&'#5'67#73533#&'#5'67#3267#"&55#'667&'O    P$     *   : # ³  ,0 '#2* RI! <%"  , <ÿèôÓ 6:73#53&''67&'3#67&'67'5'67#735#™ G A# %S# "Iy/  9  2(TTÓ  & ;   : % 'FÿéöÑ */<BH73#5##53&'33#3#5373&''67&'#3673#"''325''67&'™ Hw?"S6G   g  D  Ñ ), 5*;'#/!#0B  9#Bÿé÷Ï#CI73533##5'67#&'&''6367&'#"''32655'67'&'P@FF& '4g  () )+ , ;   %   '-!!  º-"     )     uÿë÷Ð 17&''6'''633#33#"&''673Î  /   %%  "   Ð%3 )6 - !D 2ÿéñÅ +17=C7'66553'#33#3#"''3255##5##535#&''&'&''&'b ˜qqk‰?:  (%78_-G-,C2 /"[5$ _  Jbbfw+        @ÿë€È73#3#"''32767#535#@>&(  (&,ÈK(H" 0J)5ÿéöÉ$(9=A7#3#67&'#67'5#'66553##"''3255##535#35#쇇=  <   $ggo   PPPPPÉ# ) ("E6 3"`NS  "h ' >ÿïòÏ,<73533#&'#5'67#73533#&'#5'67#3533#3#535#M  O#      N???N±O?¯  A;' %B>#m>ÿçõÐ 37;?7'2'6'&''&'3#32767#"&55#'67#735#35#35#Û >O°O;Ï *+&    ==ÿéÐ#73533#3#3##5#535#535#35#35#B#%%""((#++++¼Y--Y977ÿé¢Ð %+17&''63#3##"''3255#535#'67&'k  !9!! ## I  Ð%J G:# FÿéœÏ#'+73533#3#3##5#535#535#35#33535#335H!!! ## ! - ¸]((]9=@ÿéñÆ%+17=73#3#3#535335#3##'3267#733&''&'''67&'O F< ! ;_ ;;;;Ð      ).b !( y$%tX  BKÿçôÎDJP73533533##5##5##5##567&'7&'#"''3255'67'677'67&'P"+''+"œxe**#   >  '  c »**#  )  "  A   9ÿçòÐ+/37?EK73533533##5##5#333###5#535#535#5335#35#3#'3'667'67&'L"3++3"D;;66CC55((((.|  $E  ¿  ^^  , &UT'  ?ÿø†Ê767'67'6767'6t$   "$¢6  !-'j CÿèöÒ0EKQ7&'#5'63'3#735#3#"''3255'675#73#"''3255'675#&''&'  $, K 9. .wwPP$H !'6QH #6  J Ò  #) 'V   V        9ÿê Ñ .73&'73#3#735##"''3255'7567#53B#!Z JJ##?  *. ;T½ 4^   cÿüÐv73#&''67&'767#53'¡'  !  @*v       jÐ`73#3#3#535#535#la&##)f*##(`FÿêíÐ $(04873#3#&''67#5365#'673#735##5##535#35#d1$&   )-  T==!^^^^^Ð       W5Xii%:@SôÏ%+73673#3#&'#'67#5367#7'6'&'Q>CJ]) #())96{ W  °   0  AÿéŸÏ#73533#3#3##5#535#535#35#35#F && ##&&  ,,,,ºZ,,Z478ÿé‰Ð73#&'#5'67#535'6      Ð,  fa$.&CÿêòÏ+:>B73533#&'#5'67#73533#&'#5'67###'3255##55#35M    O#     F bubbº  /, 0. H]  (u .ÿèóÈ (C_7'66553'#333##"''3255#5357#33##"''3255#53567#'367#"''3255'6757#] žxxfn9;  <<M=D    -KA    *˜4E6 3#`0   :     LÿèëÉ 9=7#5##535#3733#537#3353#3#3##5#'735#535#735#ë{{{+n%"F`!##%%) ,,->>Éá áÅ´ &&    4ÿìóÇ-39I[73#"''3255#'665#'3#"''3255#'667#'6''633#3#53533'33#7'75367žP  \P    c  V  }b\)1 ÇS >'$ &S >'$ !! <,II[ GC@ÿýžÏ #73353353#3##53#3#3#535#53IUDD#X#%\%Â(55(8!AÿéŸÐ+/37''67#53&'73#67&'#"''3255##535#35#‡  (#/   (((((¢    2k )€$66ÿè¢Ç $(7367#533#67#5'275#35#35#75#<11G   ! ! Ÿ  s!|JM@ÿè¤Ï%+73533533#3#535#35#35#35#&'''6B c"!   ±mmBC0  JÿêôÇ#'+/373#3#3#5##535#535#5#735+335#33535#35#Jª6//-t/006a,>11E/t11E//Ç9f g9eee&K7<ÿéÎ7'6'67#d #Î-b !( xEÿÿƒÎ 73#5##5365#5#_Î ¤ ®R22D33iÿõÒb73533#&'#5'67#k(,,  "S 26 qÃ` 73#735#35#qRR,,,,`Z687ÿèôÏ.26O733#3'7#73267#"&55'75#'665533#735#3#3#&''67#5365#Ž??O =,.  #&+ >ggCCw3B8', 6- 5;2Ï      I:/ +QE( #@ÿéõÐ#0@73533#3#3##5#535#535#35#35#7&''63#3##5#535#B  %%%%f  F%%##¼Y--Y97n)&MM&Eÿóòx %73#3#535#&''67&''6R–AK­NA a  xaa   %   ÿêíR#7367&'#"''325'3'67#y  6!   N@9-*R    #$  :1 #FÿæôÊ#/D73#3#5##5##535#3#73#3#'3#7&''63&'767#53&'Q“?H58KA**K((''L**< "+ )'!) 2&1 "3h>Ê ,##- '       .ÿ餯"&,273533533#3#'6553'#335#35#'67&'Y   Q ]77:   /  Š!#  5=^<+f##: >ÿê Ñ(.4:73&'73#3#3##"''3255#535#53&'#367#&'''6I ! %   $ % #  -¹  @  <*\    8ÿëñÑ,048>NTZ7&''33#67327#"''67&'#'65533#3#735#&''33267#"&57&'''6Ô  21     FW<5522  %mz Ñ #  !$-$!  @ 37, / } òÏ,173533#3#3#3#3##5#535#535#53'#535#37#„),,21))11..))1 0)' /¼ : |ïÈ"&73#"''3255##53535#335#3#735#ã  O54##44ÈKa  MaqKK:(77 8ÿéôÏ159>BFL733#673267#"''67&'#7#5'75#53&35#35#675#'3#735#7&'±%%      %+ vU.....MM))|  Ï+ #,   0R&#\!C38š8 Cÿó¾ 7#5##535#35#35#¾ÅË6$Z$]'PŸíÏ73533533##5##5#P&$,,$&Á:ÿéöÐ#'+TZ`735#53533533#3#&'#'67#735#35#5#'67'677767&'7&'#"''3257&'''6C!K!/ $/& '4KKKKKK:    + B z; ;A # " ]           @ÿé’Ð#73533#3#3##5#535#535#35#35#C %%%%¼Y--Y97>ÿî¯Î 8733533#53'&'7'63#3#7'75#535#53&'736_ _` &!!*+3'!!% Î:::1 6   >ÿêòÐIOUek73&'73673#676767&'7&''67'67#676767'7''67'67#&'7&''332767#"&5''6J%  +  ( !C "O L  X$0  ³    *   +   r  + -:ÿé Ñ473533#3#535##5##53#&'#5'67#535'6F%##!S %Z7?  !¾*''   /-?ÿéöÏ#PX\`73533#3#7'5#'67#535#'635#'673533#3#3267#"&55#'67##5##535#35#U   ' P  #   AeeeeeË & "     5d d$6EÿêñÏ&,2:T]7367&''65'367&''657'6''6#5##5367&'#"''325'3'67#½    R   8  P  ¢†N   )  ?:/$%Ï             @00   !  7(  =ÿçôÑ #'+/5;7#5##53&'7'6553'#3#5#3#735#35#35#'67&'ðJE,, # "      eÒq73#3#535#535'635#½// T#--+00q  ..  W ÿéóz.28CPV7&'733533##3#"''3255##5##535#5#53#3&'''67'7&''67&'''6"U:((&H   52E& M::¢s  V  … z   A  -CCHX          9ÿ鉯 73#735#35#35#'67&'CAA   4 Æ£rOM5 Dÿè€Ç7#"''3254'7##5€ ÇG#'EÎßMÿéî)73#7&'7&''735#35#7##53#"''325MI7!  %%%%}$G V*   h3!†˜j BÿèðÒ 6<BHN7##3#"''3265#'67#5#53'735#535#535#673&''&'''67&'ðY o  n  F=_**,9y&(    3-¿+DA* D+  P   B    ;ÿî÷Ñ$7INT\`dh73#'3255#'67#5353635#&'733#"&55#'6553&''67&'#367&'3#53535#35#35#g         Q    g€³)*Ñk $ 4 ?#  #     >       8777&&&&&DÿéôÐ 8@DHLP73#5##53&'3673#'#5##5'67#53&'735'63&'#535#35#35#35#žGyCB6# Z '2;+\ $$6$$6$$6$$Ð "%  Q P  ]..BÿëºÎ(JOU[767&'767#53#"''3267#'&''56&'#3#67'675#535#5'63&''6'&'n ;    %  %%0;)) &9 ' 6 Î,  ; %" DE  !#   =   6ÿè¡Ï973533#3#535##5##53#3#&'#5'67#535'6A&((#R&_>55>&&  $'*   $    +)9ÿêžÏ).4:73#3#3##"''32655#535#53&'#53&'367#'67&'n     !!&     C  Ï F AHj   CÿéôÐ#0Lag73533#3#3##5#535#535#35#35#7&''637&'#"''3255'675#73#"''3255'675#&'Cb  "'      0'     ,  ¼Y--Y97m   *!e )  6ˆ (  7  6ÿèöÐ/6JNSjo73#3#5#53&'3#735#3''67&'67#53667#'#"''3255#'65535#35#'66733267#"&55&7#œM€’N6ll(         l ,   Ð  B) !  4  7Z  )(+! !1Y - @ÿè‘Ð(,073533#3#3#535#535##"''3255##535#35#DO G  #####Á    Hi  *"25ÿèóÏW[_73533533##5##5#35333##35#53353#5##535##5#3#5#'6753353#35#535#535#33535D(9**9(;>>4&%43' #2;;LL;M+++Ä   2 "s"+ 99 * 5!2   KZòÏ&,2:7367&''66'367&''667'6''6#5##5Á   R   :  N  ›€Ï          6&'AÿèôÏ06HY]a73673#3#3#535#'67#'#"''3254'7##5&'333#"&'&'75#7#"''3255##535#35#›,31D  ! L"# %t  """""¼   G#'EÎß 4_ # Q R  i * 6ÿëôÐ!%)-?EK73533#3#535#735#335'&'3#735#35#35#'333#"&''75#'67&'{*,,5z2**z  7ffAAAAAAP& 04 >"  `  6 Ç )  0X> " ! 6c  UB   9ÿîôÏ5Y733#3'67#&''673767#53&'''67&'33533#3#3#3#535#535#535#53k ;2,    D 8L    '55..22>¸B33,,11Ï  / #      9ll  4ÿèœÎ-73#&'#5'67#535'267'5#'655‰ #"    & " Î  )) w6 5 '# " ]õÐ:?EKP73#&''67'767#'6'3#33#3##5#7#537'63'7#35#5#'#3'§@     + oQZRQ    Ð      &    ;ÿê©ÍCIO73533#3#535##5##53#676767'7'#"''3255'67'67&'''6B())"U"(^>55       ! .  Á   $  %     4   MÿéïÏ'-3;?CKO7367&''667367&''66''67'6#5##53#735##5##535#r   N    gQJzggAAb___Ï               6-./-99!CÿêvÄ73#3#"''3267#535#C1    ÄG+M5N$ 5ÿçñÊ -;AEW]73#735#335335367&'''6553#6673#"''3265''673#'37&''66''6Jžž-T   ¨–T  kP9    Ê2E     ) &+B: q k Y)     6ÿé¯Ñ  .;7'67&3#3#735#73#735#'67&7'67&s ' 5;;** ++ ,  . µ 99S #   #  Aÿåõ~#'+1773#3#3#535#535#735#33535#3355#35#'67&'VŠ&&0´0''((9-f((9-000 U ~A    ' $ &       ?ÿæóÌ #7;?CGKOU[73#5'675#'3#5'675#&''&'3#3#3#535#535#735#33535#3355#35#'67&'M!;RL ;^  M  &&3´/$$**<-i**<-...  Z ÌE  E     -@    & " &     ?ÿèôÐ.4HLPTX\`fl73533#3'33#673265#"''67&'#535#7&'3#3#3#535#535#735#33535#3355#35#'67&'I(((0+*   u0(”‡fv)B)6 Á->$5- 'O?A    ' ' '  !   _ÿñÐ~"(,273533#3#&'#5'67#535#35#&'735'6a/00))   ")/ &  u  6  $( 6 4   @UôÑ$+06<UZ733#3##"''327#7#537'673#36'7##3#&'7#7'673#&''67&767_F  E ? . Y 0      ·      #      9ÿéôÈ#:BFJN73#3#5##5##535#3#73#3#'3#3533#&'#5'67#7#5##535#35#35#QšDM;8JD,,J1166O11   +++++++È %33% & <:#w w-.^ÿðЂ#'+573#67&'#"''3255#53635#35#3'67#,"  %8888) ‚9     39  "  ?ÿïóÉ #'+/37;K73#735#33535#3353#735#33535#33573#735#33535#3353533#3#535#Uˆˆ''8(`''8(‚JJ  *  JJ * EEEP´PEÉD(( &F),)F),1 IÿïòÏ,048>FJNR73533533##5##5##3673#'#3#535#35#5#7&'3#53535#35#35#N'.((.'Y$) U11f + © *)     e+*  +,,,BÿëœÎ !%8<@7&'67&'67&'63#735##3267#"&5535335R  #  % ;EE%%     K q<XB%z  Jk & '==&!.Ð       !!   "!        ,+60   !   .ôz 7&''&'''67&'Í  YF  z"   ! ' ®èÁ73#ÐÐÁ%hÙË 735#53#535#-—²´Ÿ—¤cUÓÑ73'67#&'&''6k_*‘ ‡$L     6ÑC3   '0çÏ 733#3#5335#qbbS±J6‰‰Ï!PP=*cÿùñÍ7&'73#5363#3#  M &{A HkkŽŽÍ  \6 ,õÑ 7#5'6#5'67#53533#&D  &u) ,3@E8+&Ñ rZ%a_/ *%%$ #WæË7365#53#3##5#'67#7#34$®!--F (0‹ACœ 11+/ %fÐ 73533#7#"''32655'675#% %§))!" &&óË"'+733##3#5'67#5367#5367#3353535##±y’¡ #4IO?RMSZp{{Ë## ! " L!  : VVVVVÎ " ;        +P  !e %  &6Ê73'65#ÊH9# !/ïÏ%)/3973#3#3#3#535#535#535#535'235#&'735'6Ú (1ddTTUUeÝdWWSSffR]F@@DA" Ï  ?    ?  c    Vÿðò] 73&'73#3673#53&'`7=‰$   ,œ- N† êÈ$(,04733#"''3255##5##53&'767#35#35#35#35#ˆ^   .  H)))Èu **-†  H: ;öÏ*C7'67&''67&''6#5'6733#33#"&''67B$ !M  J y  &i77,-   Ï     !     E4  ' õÑ,CJ73533#3#3#3#"''3267#'67#535#535#73#&''67&''667#100,-0D@   0  !4+,1‘B  &¾ + #0 %($ "=óÑ,?EK767&''6''6367&''657367&''65''67'6| # M#@ l:     )k    $‰  m  Ñ     " 1           !óÏ!7;?73533533##5#5#3#5'675#5373267#"&5536'3#735#?;@@c?Ž;& **ª    s<<¿$$b     KO-|ÿýÍo7#"''3255#'65535#35#Í   &  %%%%oY  ))+wÿýØu73#&''67&'767#53&'¨(   7#u        LóÇ #'+/73#535#535#335#3357#3#3#55#35#5#`a! 266&)l/;;Ç{4T4{!#7r×j 7&'33267#"&5''67&'¢   Vj 2  +%ÿéÛ\73#735##5##535#5––qq”‘‘‘\/ )99  >óÐ 17=AEIM73#53&''367&''667367&''66''67'6'3#3#3#735#L?  ™  °  ›  PAAAAAAÐ  *     0A     2#  ' :ïÇ4h73#67&'#"''32655'67&''67&'#'67#73#67&'#"''32655'67&''67&''67#d*      " $md*     !  $Ç                   GÿéöÎ1V\b73533#3#67&'#"''3255#'655#535#73533#3##"''3255#'655#535#'67&'U   R Wž± G  o#?) $8#s  oB+ (:> 9îÏ)-15973#35335#535#535#533#5##53567335#3#3#735#1$Y!. · 66((&& •eed)*\  2V -  õœ5;AS73533#3#535#73533327#"&55#''67&'765#'67&'3533#67'75#(''/r1(m(     V  B <#%%/:0#‘   :&)      yÔw%73'67#'6673#35#535#53#“4 %   6(Vw  "  ? Oÿé÷Ñ!:>BZ^b73533#67&'7&''275#735#3353533#7&'7&''675#735#335'3533#67'7''675#735#335b677 7I#"6$$6%*  !  Œ"  Á5]88  3ó£+;K73533#'#5'67#73533#&'#5'67#3#5#535#535#53733#3#3##8$!!    \"(       <<88;;&AA??DDœ    # +R    QÿíóË#'+/37;GUb73#3#5##5##535#3#'3#3#'3#3#735#73#735#73#735#3#3#535#&''67&''6`‡;F55F;U!!D""D))J((..',,&--r@H¢G<  `  Ë /!22!/ " *  *  * %,,      ÿèóÐkosw{–73#3#35337#537#535#533#5#3#&'#5'67#535#3#&'73#&'#'67#5367#5'67#535##53'635#3#3#735#67&''66''6G"Z! 2(      J  - 'K0 -F    (099++..  6584$!  Ð  II G%         %BE;  |     GÿçöÐ6Mp„Š•›§73#3#353#5335#535#'63533#&'#5'675##5'67#53533#&#5#&'7#33'735&'753#5#5&''67&'767'6'''6'6'67'533Œ   8:     ^' XN       G Yv   % %m:IAÐ           " , 70!           "   ( ÿêòÏ7&&'#5'6556Ô ""aÏEO$$UN¾¼EA838X ÿéïÐ@E7'23'73673#5##53'3673#3&''67'&&''67#67Õ Lo\3     ¤& 8…  *:(%1 ' !.D!Ð    ()C      '!  ÿêðÑ 06;AGMS7'2'6'&''&'33#"''32765#'65537#37#&''67&'#4'× Np]Q>  0œ "   § "ot ’  m[  Ñ    %@ ! 0?% 0 $  ÿéóÎ#'=OSW]7'23&'73673#53&'35#3353353533##"''32655#'#67&'7&''535357&'â W|h=,(¾&&8((IE E L  * 9999  Î   22 3;? ; I  oÿéîÆ 7'67&'&''67&'76S &)r""')5 8,#B ="Æ 1&'&$8 )$*$ ÿèõÏ 17'67&'&''67&'763#"''3267##5#\)&k $ %",/ >)!L :$fž L)Ï  !     @< $__ ÿîõÏ 48<7'67&'&''67&'76#3276767#"&55#;5#\* &k $ &"-/ D&+@ 8#22&!Q@F2244Ï         ;D  b"" ÿé÷È+=Obv7#53#3&'7'#"''3255##5##5'673&''67'767&''67'76&''67&'767&''67&'76ucÙbC !  EA ! 8     ^    R   _    ¶   „   £             5        ÿéÀÏ73#5#'67#535#533¬G; 40ŒjVÏæVF4(P= ÿéåÍ733533#3#5#'65.JE£|j#Ì<==(lY6# *=VÿèôÒ6:>BFJ735#'6553&'73#3&'73#3#"''3255##5##535#'35#35#33535#335|15;6.5/  -1cc/N/w-B1 2=Z  3 Y   o 3q/SìÏ736533#&''67##5##5&MPT0+//, 7EƱ¿  2%)fÿéòÑ )73#5##53&'33##"''3255#53567#ª:^6V;;  == @Ñ .. C; 7JîÒ.573#67673#5#&''67##5367'67#53&'&'#6ƒa{ $W 7B6a #& E_<",Ò   )  * ` 5ÿéðž 673#7'6'&'&'''63533#3##5#535#'6ŠX!!„p  /"#$IIRRVV1 žC6        \‘Ï73#&'#5'67#535'6ƒ11  )6,9Ï  !'~XëÏ73#"''32765#'67#'6œ@  ) # ÏH *-"  ÿéôk573533#7#5'75#'673533#3##5#535#'6%9w))//66h)%   %%  MôÏ%+>73533#3#535#73533##"''32655#&'3533#67'675#)**1v1)t? ?  }-,,:=-à   = 8    1ÿéõ«+E73533#&'#5'67#'3533#&'#5'67#3533#3##5#535#'6”!%  Z     'IIUUZZ3 ™  (* ! <   1ÿçñI73533#3##5#535#'6U+CCQQ[[9 I  IîÎ!&;7#53#3#''75#53'35#35#35##7&'3#3#"''3267#735#¢'`'/ /9400<</µM8= @ 5;¡-- *  *B  c4#/ cÿèôÈ "7HLPe73#735#33533567&'7&''673267#"&5536#"''3255##535#35#73267#"&5536g„„(a  r    +     l    È7*      4'Z  $o +    = WîÐ!%)GKOS73&'73#3#3#3#5'65#5#3573&'73#3#3#3#5'65#5#35/  ^*M  ^ )Ð    A   \    @   BõÑ"',0Kchy73#3265#"&55'67#536365#335367#335'3#&'#5'67#535'23&''7&'67#53667#74''6767'¢3,    ! ,D)d(!"  ","+.   $ $¯  Ñ B'  B# $ 3     ;   "    QÿéöÏ!%5FJPVns73#3#5367#53&'7365#5#35'33#7'753773#3267#"&5735#'67&''3&''67&''667À'B+F' 9 . M) V  k 12 )%   # ÏUU =  A<7C5  #L           ¡ÖÏ7&'²Ï¦§ÓÑ7&'¸  Ñ `ÿêõÐ "(7#5##53&'73533##"''3255#&'í_3Q[&&  [#  ¶22  C[  V  TÿéˆÐ 73'65'3#v%"Ð…<& "4b†Tÿþ—Ê7&'37'5#p  + Ê 3j  p ÿèói "57&'7&'36533#&''67#73533#&''67#g  z  ²)*, !''n$5+ ' ( % $#i   %""$(&!NÿéòÍ%28>7'673'675#53#3#"''3267#73#"''3257&'''6¨B  g1!   $_  ,  3— 5! &L'J 7L   ^#%'"1 Lÿê²Î.73533#3#3#"''3255##5##535#535#'6e ##&&$ !&&ÊG  2__K[ _ÿéêÇ )7#5#;5#35#'673'67#&êƒKJ "H ' V@ÇLL****#  < Lÿë¿737#"''3255'7567#P@     +¿% O C7Kÿê¦Ï 73'73#3#3##5##535#K# "[ FFFFC  ° U U8&Tÿí“Ð73#3#5##53635#5#q,-Ð I^È E'Ž++Pÿé¢Ï#'+73533#3#3##5#535#535#35#33535#335Q! ""!  (  ¹_++_9=DðÐ,I73533#3#3#3#"''3265#'67#535#535#73#&''67'767#'6(00)).=9  -  !.$$(ŠD    + Ä              KÿìªÐ$*/7#"''3255##5##53537'6'&'&'''¦ & :  E "  Šˆ tŒŒŽžFF7   L"))!.Eÿé¡Ï 073#53635#35#3#3#"''3265#'665#53&'qC """".,    Ï RR +0" 5 $ !" ÿéË #'/373#735#73#735#3#735#33535#3353##53#=#88188Nmm-G-f„„sMË--(J, & '=::ÿè¬Ð/37;L`733#3'67#'655332767#"&55'7533#3#735##"''3255##53&'73673##5#FCCTq0A4 $'ss ``==X   P  Ð L?1 19V     (  4 #>J   GÿëzË73#3#"''32765#535#O&   ËK"WòÎ /73#735#35#3#3##'3255#'67#'67#'67#gxxRRRR)¡hg   %   "Î:$$     tïÍ#'73&'73#3#3#3#5'65#5#35— !c /Í  l &")_ÿêôÇ#'+/373#3#3#5##535#535#5#735+335#33535#35#_•/**)d)**.S%8))<(d))<((Ç9f g9eee&K7Gÿë¨Í/373533533##5##5#3#"''3267#3##5'635#R2   '$  º m+Y F FN(OÿíôÉ'-HNT73#3#3#535#535#'3#3#3#535#535#&'36732767#"&''67''67&'§BGLBG@ *     €  ÉX  4*4" 9   Dÿé¬Ñ"&*.M73533&'73#3#5##5##535#35#33535#3353#3#"''3267#'67#53&'Q"  ($!"!5!'83 % &½  Z X ' )*  "%ÿîîÏ)-159S73#35337#537#537#533#5##53'67335#3#3#735#3#3#3&'73#535#535#1Z1´ 88,,,, J§MGG(#ÕbDDH™dd`))Y 0S  ' G >ôÌ+<M]k7'#"''3255##5##5'6735#53#3&'''7&'767''7&'76&''7'767''7'76®## EB$ :cÜfCD    \    N    ]    ¹ H  9OOLV            ƒ òÐ06:73#3#"''3255#3#3#535#535##53&'#53&'367#35#½-  7, "Ð  x  b//u† 5 o;ôË)>P`o73#3'7&'#"''3255##5##5'6735#'3#3#"''327#735#&''67'77''67'76''67'7'&''67'7Z“@'     ((  "AH>'/  /%,|    >        4    Ë  N EZZZ` 41&3%       LÿéîÏ(.26T\`73353353#3#3#3#3#5'673'7##35#5##"''3255#&'#5'67##5&'7#35#[+'@9<3333<‰   AD*++++z  # B  c   Ê! /     > +  CR%   FÿçöÏ$(=AEKQW]c73533#3#535#3'67#3#3#535#3#3533##"''3255#'3#735#&''67&'7&''&'SGFF=Œ=G  o+D–@2¤¤J7  7C;;MG Z  > F  Ç      -    Dÿè»Ð+/37HZ733#3'7#'65533267#"&55'7533#3#735##"''3255##53'73673##5#w((3 E"%   GGCC##: 1   Ð  L?1 29V     (  7  (>J    ÿçóÏ$7&&'67&'7&''5'6556È" &%SÏHQ&%YP© $ ³+^= 7\8‡$õÏ#736533#3#&''67#5367#'6Ÿ *,  +.   %øÍ&*73#"''#3267#"&5533265#'6#3žE  & 3; (ÍO  \85 ) IûÏRX7"'655677&'7&''73#67&'##"''32655'67&''67&''67#&'9 0"    Em1       "   &  ´,% "#* S   o    !      zòÏ#7335#53533#353#3267#"&55#€//00, )“-::/C  !TöÏ,07=73533#3#535#7'6'6#3#27'63&'#735#2767#7'6533(h-5 (&'#,*œh 2=DD    5 -Ä      &  !  ÿé’}733533##5##5#53#3#3'00C0000|jj"ÿéßÏ7#5##5##535335#33535#35#ßB?SS??SB•??SBB­•@@”""9&&&^%%%ÿíôÏ!%)-7#327267##"&55##53535##5#35335ÒS  2 =Q??==?®ƒ    ' !!8%%%%%%%% ÿèæÓ!%)-73#"''32767#'6##55#'#33535#D› ”  ${po$%%%%$$Ó Ÿ1.k  #r‹/ÿêðÏ +73533#735#33535#3353#3#"''3267#7#&OS¶;;O?Ž;;O?¹áž •-ÁW51.3%âÍ 7'6'&''&'ÐM  5 Í )   cåÏ%77'7&''5633#"''3267#'67#i($   ,5g  #% Ï /   L= $1$ :÷Ñ&7&'3#&'#'67#5367'6767'¨ €8$ +"@$& /F %/4Å  #ÿèôn #*7&'''673&''67&''6367#¯$"`% !1b,. 44+?6% 0 Zn          ÿêõÊ'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335#¼T)//Yffhh]!,,)TAAU@•AAU@}))=)ÊU   21Y IõÑ#*067&'#3##"''3255#535#5'63&'#'67&'ƒ04 0XX   \\4 NP (,f( &Ñ      7    ÿèôÆ#'+17735#53#3#3#535#735#33535#335#35#'67&'4'·(55<â>4!==Q>==Q>(AAA &. )f3# "1YVV[4#+    ÿíîs7#5##53#53535#35#35#í±¸"Û"oooooos,,WW * ) ÿíñÐ#'+/37;?G735333##3#3#535#535#535#535#33535#5#;5##;5#'3353##SMMSSdÝeYYSSggSg:::>,,++,,++rªÑÄ        S??  ;;M ÿíðË #'+/373#3#735#33535#3353#3#735#33535#3353#ÙÙµµ==P?==P?·à൵==P?==P?µÞÞË B( $ #C) # $ ÿéóÐ)Fcimquy73&533&'73#67327#"&''67&'#7&''67'67676767&'7&''67'67676767&'##535#33535#335 s  )"Z     xV %   %  QT)A)e.=?,!!  *J  !  !LP ]!. ÿèóÏ37;EOYaeimq75#535#535#535#53533#33##3#33#"&''673535'&'67&'67&'6#5##535#33535#35#‹ &&,,%%--22* *** ! 6²   *   )   ='=': :#$ t#g   Kw w,HÿêîÌ %+3;?CG73#735#33535#335&'7'6'67&'#5##53#53535#35#35#+««88L8„88L8¡2" !0Ä '.)H #66E7% $5b¶¸"× mmmmmmÌA( #       ((EE  ÿé_È'75#53#3#"''3267#73533#67'75#F5H/8  ;  =`&K@Y ÿéôÀ#73'67#3#33#"&''675#Ó  HUU:2;/ %`À DK#=P0 ÿêõÏ59=73533#33##3#33#"&''675#535#535#535#3535fhhRRUU-#CC  #KKZZHHfz>>>¾$%& :#$ÿçòÏ#'I73533#3#5##535#3#735#33535#3353'67#3#33#"''675#XYYa®`X11D2v11D2¤Î F66"/)u  (^Ä  %% &F+ & %    *Kÿêõ¢73&''67#'6ƒA " !"W6  #¢*"% U  (Yÿéê• 73#5#533533Ö}),lƒr_‰‰PÿññŒ7353#3#3#5#P~juun‚GE20CKÿéï7'6675#53#3#"''32765‹+#™cR  D?-(#Q .Uÿèê‘"7#'67#533#"''32767#'67#'6„!4#Sy$)_   4.$ IU -;&"0&]ÿîôŽ7#3276767#"&55#;5#âq $A28$$&&ŽV/  Š33^ÿêôœ%767#3#3267#"&'#67'7&'^P(%41  2 BŽ  !0.)A `(Iÿèô˜(733#"&55#'6653&''67&'767#Ç! 1  |$# +#, % b˜%  L&    Dÿçî #7#'66553533#"''32765#'67#îz "5   "-&!=1( %G9P/A7Oÿíñ£ )7&''6#3267#"&553#"''326!( &$' 46;/  4$ a   £ "8?  T*Hÿêõ“*7327#"&547#'655''67&'76×OJ    “')),(=>.+ !,P%  Iÿòó¡7&'35#535#53#3#3#—  =K66<”D;;Kª¡  ‘(''(Nÿìö¡(,73#"''3265#3#3267#"&55'6#3re Y@5 #/  914!!¡V8 >#  W %<ÿéò¢*.7533'67#3&''67'&'767#'665535#—= )3!# (" %  X ** !*     1% #D3!Rÿéñ™73533533##5##5#35#35#RGG*GGGG|€ €%%a);ÿìò'737533#7'6773673267#"&5P,7 Y   wp”6I —:  F  Rÿðñ›73533533533##5#3#5#5#REwŠqp##++++FF[m444Oÿêó¥ 7&''6'6'67'66!( (# $ 6' 1 52 *? D= /Z 5;¥%4 Jÿëóž#7'2333"&&#"'663267#53&'Û 6O@ /:2!.-2e;ž$   Eÿðó“ 73#53535#35#35#Ú®SSSSSS“‘‘1OOHÿèôŸ73#3#&''67#5365#'6y`7B>3 /? = =A Ÿ +/)* Nÿèêž 73#"''32765#'6##535#qn   b W=**ž rP ? L.Xÿèí™73#5##5353335# Gg4MggibaO_.9ÿéìž$(73533#"''32767#'6655#7#5##535#P'  2 œ}!!l GZ 4/$¡ ¢ƒrLÿêì£ '73&'73#67&'7&''67'67676NEBžp/,&, >= -" ‹  @   $ Nÿêîž73#3#3##5#'6wlUIIPP ž-‡ Kÿðñ73#3#3#535335#Y=99E¦!?/5[[wPÿïó–7'67#53&3#3#535#¥ * P]v  #g…;FœC7W '  &&Xÿèé”7#"''3255##53#3#735#é  j!MMGG##”—  š«#?Lÿéð£"&*73#"''3255##5'67#53673#35#35#ƒa  P "*[cPPPPff *]     +1Oÿèñ¤(7'673'67#&'673'67#&p ' @$\ Q#;! 9,+)l b(, p  3 % C! <0 Iÿéó£<7367#535#53533#3673#33##"''3255#5357#'67#]. UB''!! (7 'CC  QQ$%S    Yÿéë˜"&*.2733#"''3255##5##53&'767#35#35#35#35#^ƒ:  .,4  c,,>..>,,>..˜  j  $$*‚  @6=ÿìó¡0673533#6767673265#"&''75#'67#7&'O!gF  $% !+' ": 1 j  ‚       d`%!S0 Eÿéó– 73#3#5##535'67#35#7&'OšB>g=( 4AggO!–FQ Q0~!S^ÿèæ¡"(733#"''3255##5335#35#7'6'&'–<  d8&ddddc[  ¡1p  -‡&7b    Cÿèò§5;7&''6767&'&'''6&''673&''6767¿8?#& 8% )L#+" ,* œ   & M   - Oÿêê§$(,047'3533#3#"''3255##5##535#35#33535#335À fCEE>  +(ÿìó¢%+173533#3#535#&'33267#"&57&'''6PBGG@;BI  %l  u  ‹3 0 6   Dÿðó¡)73533#3#535#7&''67&''6T=>>N¯M=  a   4mmu!*Iÿéó™!7#53#33#537#535##53#=#})”WIª*I8Yˆ''[ ED >ÿìõž !'73#'&'&'''6'&''6''6­K …  9 5 J ISžhd  %    7'  Gÿéï 573533533##5##5##5##53673#"''3267#'67#O%)**)% v(=  -9 / "'&,  7 $1 "Gÿéô£!%)-273533#3&''67&'#535#735#33535#33567Z;::8# ) "- ' =;))<(d))<(U “P    /.< Gÿéõ¢"',7333#&''67#535367#'65##67#€;(?0 72 +3: 0[!¢ 5 &)  5  T##Qÿééœ+/7&'3#"''3255#33#&'#5'67#53'3#r  +]   I %%    #Dœ ‘  z   9>Hÿêë•/387#"''3255#'65535#35#7#"''3255#'65535#35#™   €    •” (& (1H-H=” (' )/H-HIÿéõ,73533#&'#5'67#73533#&'#5'67#S   L!    ~ XS +1(c_!-Kÿéìž'+73#3#&''67#535#'67#5##535#f. %"# ž &   *&  Ÿ ygLÿèõ¡673#&'#5'67#535'63567#533##"''3255#Ó 7A.% ," ,=* 8NJ FaGG  J¡   z   Lÿíö£&26:>B73673#&'#3267#"&55#5'67#'&&'#35335#33535#335U7H.# 3  % 1 )q  11 Q1  B  >     -Hÿêë /<@73533#3#3#"''3255##5##535#535#'673#"''325'3#`""((&  &,,€   œ5  !II:J  ›  …sOÿèò— !73#735#33535#335#53##5#'6^„„$$7'^$$7'Y'£%/'"—P/.@<<+Iÿêò£#',73#3##5#5367#536367#33537#33535F+::[ %-'*<*c"54< $£ U"" U)2# Xÿêð "*.273#327#"'#7'56&5#5##535#35#Ø?7 :1! Kw[[[[[    (  J  =RR* Mÿèî #'+73&'73#3#3#3##5'65#5#35#s%45....6t@+++++    o  )+Mÿêò™&,07#"''3254'7##533##"''3255###535#‹ Bc   F:%™0  1ž¯†  ƒJ W8'Hÿèô 5<73#&'#5'67#535'23673#&''67&'67#67#Ó E3# )% "4E6=K4[$7 , )X-     \       Bÿè÷¡ +177&''6'3#3#"''3267#'655#53&'&'&'Á  >  4*   $\ ¡ ) T1;$ &7" O  "Hÿêô–?73#67&'#"''32654''67&'''67'767&''67#Yˆ:      - 0"    )5– .3       Dÿèõ¡ 57#5'6733#5367#3#3#&''67#5365#'6o -MwH8D'5- #! ' $ /4¡‡i %$ '   @ÿçñ£(73#3655335#535#53#&''67#56} #.281 930-š  NN e!(&^Qÿêì™"&73#"''3255##535335#35#3#735#Ù  u4L""RR00™BU  >[mB" 00/1MÿéðŸ'+733533##5##5#533533#3#5##535#35#q6""6##$HGG;a7H#aaŸ2L ME Dÿíô¢$*:73533#3673#&''677#53655#&'3533#3#535#S;FF  !?0 =1  1=;8;;L«L8•     TIÿèõ¡*0>73#353#'67#5335#53673'67#'6'&'&''66ˆ"  !/ 01# I g  ¡ B3C  C3B (  5+# -Cÿìö 17=CS73533#3#3##5#535#535#73#"''3267#'667#&'&'''6733267#"&5Q RI       N x $"– C,$ N     %  Iÿéóš %+73#735#3353353#''67&'&'''6W)? \   3" šB 7ic       Dÿéõ¢#'-39?73'#"''3255##5'63&'35#35#'&'7'6&'''6”9  S LA SSSS’  =¢ -G  !X. *x    ?ÿéñ® #+/7&''63#'66553&'3535#5##535#“$, ,%&5 6s ;aaaKKK®   D) 9  %: ;#=ÿèó£%8NT73#"''3255#'67#5353635#4'733#"&55#'6553&''67&'767#4'm   %  %%u  H     5,£  31*F P6  )(    K&        :ÿìô¦#'+0A73#3267#"&55'67#536365#33537#335''6767&'~W= #7 =4#,-@+k'+>0¦ X4  (&%X - 6 4  Rÿéì¤%-159=77&'7''563#"''3267#'67##5##535#33535#35#„   )T  ! Ki++=,i++=,,¤#   <2 , "D^ ^"2Jÿéô¡473#35335#535#53#3&''67&'767#535#56ƒ  ),!!!3>6# .$&  j;;žKKU      O9ÿéó¦1A733#3'67#673267#"&55'75#'66553353#3#3#5#MMZ C7  ' $ 2r_oo`s¦     :/%  Bj  Dÿèò§"&,273673#33#535367#5#3535#5#'67&'QA@D;®0>y[[[[[[[  U™ ``%        Cÿíõ±,04873#&'#6732767#"&55'67#53635#35#35#ŠD (0" "( . 9( &%YYYYYY± ^        ^ % & % ?ÿéô¥#'+A7&''3#3#3#3##5'65#5#35#'3&''67&'767#ÌA"M)Z4     !¥   n #&*i3$#  Aÿéó 06<73#3#535#5#35#3353353#3##"''3255#&'''6Ož3*)1Z&&n||¨M  I| S11!,     8ÿèö£ *J73#3#"''32767#'667#53&'73#'63#3#&''67#5365#'6s%$   " E=D 0%     #  £  V 1A$1>   !$%    Eÿéõ/37;?EK73#676767&'7&'#"''3255'67'67#735#33535#335&'''6XŒK  !%)"     +));+f));+ O  K       ,+_   @ÿëö¤"/5FLR73533#&''655#&''6'&''6&'33267#"&57&'''6N@II< 96 J@{   ]  A$ h  u˜ &#&     , ) &  Dÿêõ£ *D7&''6'&''6''6#5'6733#33#"&''673Ð  3   %   X%%  !  £   &   *"bK" 8Gÿæõœ #06<B73#5'675#73#5'675#&'7&'&''6'67'67'6QE4JG68 V &0 .-# 5 %"7(7 1D.X UœA D    #        % Cÿèò§'+/73#3#53'#53&'367#3#3##5#535#735#35#›F$3ª,B"/+‰=PPLL9cccc§ '(B  ) $ Cÿéô¦&+/@FK73'67#&'&''673&'67#3#3##"''3255#'67'f'/ (   T5  =&?CC(‘@   ?  c 0¦ +    ?% &( %   Lÿèç¤"DQ736533#"''32765#'67#73#735##"''3255#&''67##537&''6O$  [==+  .   )A   "–-" 8:P ;  Td *    ;ÿéñœ *06<B7'6553'#33#3#"''3255##5##535#&'7&'&''&'e”ookˆ>9 '"48"  ?   *  n#7) *2J. J 6KKP`        Bÿèò®#'+/IO735333##3#535#5#5;5#33535#33535#3353673#&''67&'67#67#T;@@E—?;((;-h((;-l,,?2‘2f!4 # 3$ $] ;£  (( 9 %    Fÿèô¢,0473533533##5##5#3#3#&''67#5367#735#35#M*+**+* ˆ>QE/95 )6B7dddd“ C  * " Lÿéö§06FLR7367#'6733#535#535#'#"''3254'7##5&''33267#"&57&'''6Ž+"  * ZHCCH  r     K  R  t    G 6+ /£²p    "Gÿçôš%+EL7#5##5##5##53'65'3'65&''&'3673#&''67'67#367è" !iPe F 35c,  (;))*? šA22AA22A         Fÿæð£#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'U $((0L=Š:D( 4$$&&9*c&&9*R ! T ” II I (    >ÿêö§28<@FL73673#67&'##"''3255#5'67&'767#3&'#35#35#'67&'Q;D2   2   2  /.= SSSS  t–   5  3    , ' !    Jÿéô¡3U73&''67&''667#'##'32654'7##53#3#3#3#535#535#'6735#¤3   '  RA##-r2 ¡     & )ž¯C   Eÿéï©'-3;S7367&''66'367&''667'6''6#5##53533#"''3267#'67#Á     S     : P  ‡.D  1> 2,©    7##&0 /  Nÿéêž  $8<A7##535#35#7#"''3255#535#5##"''3255#'65535#35#’2 Š   5####   )((((žCrµ % (Ÿ YC % F  "! $ Dÿèõ¨'Mc76767&'33#"&55#'6553&'33#3#"''327#735#5'67'767#67#53&''67'®        2OF,0  2 )   3M 8L  ¨    ! 3+!0  s    Aÿèò  #'+/73#735#73#735#3#3##5#535#735#33535#335NEE##@DD##\?QQMM;))<-i))<- ..(G  + ) Oÿéîœ %73#735#3#735#'3#735#3353#5#533_}}YY6GG!!kGG!!2.‚/œ/)55*$7 -Dÿëô¦/3E7&'35#535#53#3#3#'35#53#3#7'675#73#67''67&'š(6Bf8 3==     ¦ C++Cb--,  37  Nÿèëž  $(,07##535#35#7#"''3255#535#5##55#35’2 ‹  6$$$$ G5##žCs¶ % (  ZC % OO  Hÿéô© $*26:7&'#5'63'3#735#&'735'6#5##535#35#ž  , G 2 .D‹‹++  6*  #ZZZZZ©     #6    (GG # 9ÿéö°"37;?EK[a7&'#5'6&'3#"''325'#"''3255##55#3573#&'''6733267#"&57&'  &) M 5EU  3   +=++  7 ! ! * q  °     ? :; L 6      =ÿèô£*1:>O7'673353353#73##&''67&''667#'#5'673#67'5#'655^    CU"    r #::8  £'55'5A* #:"qT  -  0  >ÿëõ§"(.4D73'73#3#53&'#3373#735#35#&'''67&''33265#"&5S?B*£(.)]‚‚\\\\6A Œ ` * ™ *B( #         =ÿèô¦ !%;A73#53&'3#5##5'6553'#335#73#3##5#535#536'&'ËNR4 Ce$#. ¦ D Y6<=?.b)I// Iÿèñ¡#+/37;73#3#5##5##535#3#'3#3#'3##5##535#33535#35#Q˜BJ8:LD_''M''M&&L&&‚n//A-n//A--¡ )11+ "  SV ,Hÿèí©=AEIM733533##5##5#53#"''3255#7&'7&''675##535#53#'35#33535#335r-))-**{   7 '/4F8†;9&&9)b&&9)©  n4   9I DD 4 % Rÿé÷£,5;AGM73#35#535#53#56367'733265#"&'367''&'7&'&''&'Š --i//0C!!  s 9  E 0 £   JEQNY*$ *6MW          <ÿèô©!'048@D733#&'#'67#'655'667#3'73#3#3##5##535#|T$  %   TI5:„ ppppsOOO©   2(9' /  ,, ;ÿèó›!%8NTZ73533533#3#'6553'#335#35#733#"&55#'6553&''67&'767#'67&'b   G T002  f   D       0; +  i )2K2#R Y$    J&    -  ;ÿèô¢59=FL7#5##5367#'673'3533#3#&'#5'67#535#35#3353'>&'ë( („     98   oSDCR    !9  269; "5  >ÿéø¯#)AEIM73#&'#5'67#53635#35#35#3&'#"''325##5##5##535#335335€R8)' [ 05'jjjjjj3\   ,¯M M -.  B :ÿèö¦Ed73673267#"&5733'67#3#33#"&''6735#53'767#3#3#&''67#535#'6L  MQ       &. ;E-    ¦     *  &  9P  .    @ÿéó®6BFJV73&'73673#3#3#&'#67'5'67#5367#5365#3&'73&'#35#3567&'M(!(H@BT* `  '1=25@0 MMM +ž   0  J A     Aÿêô¡!%CIO733#5'6367#35#33535#33573#3#3##5#535#535#536'&''6aI  )  P!$$""* !  #,.¡ TJ ,3]**  ‚ Dÿèð® 159J73#&'#'6#'673#&#67'7&''535357##53#"''325b, j   /64  """T"F ®       P#   €z‹^ ?ÿéõ¦ ).8<P73353353#''6'673#&''665&767#'#5'673##53#3#3#535#53p@  m &    n $66AD›** -5 7 -6  & nS  9ÿêó $@P7#'6553#&'#5'67#535'6#5'67#535'673#&3#53533533ïŒO    N     *<—0784 *6G  4    +&&3 ?ÿéò§#BFJN73#3#5##5##535#3#73#3#73#3&'73#3#3#3##5'65#5#35#T‘?L::L@ --M,,M--N++K)AA9999C† A11111§ /!(("0     <    4ÿéö«=AEKQ7'6733#536735#35#35#'3533#3#&'#5'67#535#35#335'67&'µ  &M$,,,,,,k   1  -    ii 2 *,h9 <; 9:Z  :ÿéô§48<@DJP73533#3#3#535#535#'3#&'#5'675#535'63#735#35#35#&'''6‡)++%%2q-!!)    +^^::::::-  œ     \R $DR:     œÿèô—7#5##537#53#3'66&'ê%Q!  r]NL[2* &  5ÿéô¬!%IOU[a733#5'667#35#33535#33573673#3#3##5#535#535#53&'&'''67&''4'_$L ,)   "$$"""  @  = ¬ [Q  &:_ 44 ‚ Dÿêð¤ %+17PV73#735#35#35#73#735#35#35#'67'67&''&'3673#&''67&'7#67#RCC%%%%%%ACC%%%%%%M  Y  ) G 73d# 0 ": )(] 7¤O7  8O7             Hÿé÷«.4:FLRXh7'2#"''32654'7##53#3#535#536'&''&'3#535#535#&'7&'''6733267#"&5ã '9.1  )2t0&@ _bPPPM( ;  V    «1 4©¸   77 /        AÿèðŸ =AEI73#735#35#35#73#735#35#35#3'73#3#3#3##5'65#5#5#SCC######?CC######N'985566B„ A/////ŸN7  8N7    6    Cÿèò© 37;?IMQcgk7&'67&'673&'73#3#3#3##5'6#35#35#'&'63#735##3267#"&5535335R %  H= %  ?HH((?B  $ ©       y +.„   *' #/   @ =ÿèôª#'+[_cgm73&'73#3#3#3##5'65#5#35#'3533533##3#3#3#'67#535#535#535#5#5#35#335&'´>  p ""), "  &6 !  ª   …0+.x*    * 1 P  œÿêó %73#3#5367#35#35#35#'67&'ŸS  G!&&&&&&  (  pp 310#    Dÿéö­ %@DHLPV\bhnt—£73#53&'''67'6727767&'7''67'6727767''3#3#3#735#'&''&'7&''&'''67'6#"''3255#&''67##537&''6:    ~    ]222200   ’  ‚  v  , 8 *E  ­ '                      ?  0    DP     ò´%76767&'3'67#&'” PcY) ?D´   1n (+ X  ÿçéŠ)733#"&55#'66567#53&''67&'¯-0 4/(‹¥  !(1E5%!Š% d    ÿîðŒ 73#3#735#3673#53&'WVV'››uu 3  Aà> ŒA4  "ÿèÞÐ 73#5##53635#35#mf”? 4””””Ð ÆÅ]:‹> ÿçõt!73673#&'#'67#3533##5#R s?* 4 )7 +>(====Y   !"($$ÿéód #7'6'&'3533##5#7&'''6Õ$"”gjjgŽ%$#$0 &(d   :JJ8   ÿéëf #'+73#5##53635#35#73#5##53635#35#86>>>>>†6>>>>>f i i 0:K i i 0:JÿêªÐ)-173#3#3#"''3267#'67#53&'7#53635#35#w" ,&     # "''''ÐP  6 (4 P )0 ÿçòÏ).7533'67#3&''67&'#535#'665567{U =G+ 5" 3 0# 9F B! ¯  00#  &0I;. + SV! ÿí‚Ï-59=A733#3'7#73265#"&55'75#'65537'7535#35#75#;//6 &     &8U $$$$$$Ï     [13eUGU & ) OîÅ73#3##"''3255#535##¼Raa  ggVÅ   QîÅ7#53#&'#5'6xU¼O =+ ,/(0G² ;C ?êÄ!73#3#"''3267##5#735#3355# ¾Vb MV IThCW9Ä6%++48 MóÒ7&'73#536'67&'E   6Ë~S4 +o&& &&Ò  1   BîÐ 7#535#53533#3#67'7&''6XGdRRSSe~>3  FU~   =óÓ47&'67327#"&''67&''7&''7&'37š  _d   %:0 F ^XA?c`Ó  0            UîÏ 73#'6'3#'3#7&'šJQ=0–Ï # -5zpc& JõÏ7&'#5'63&'3#735#}54 &d PN+››wwÏ!    6;óÒ-37&'3533#67&'#"''3255'675#&'­ Œabb  /.   )18*a Ò       &'    BáÌ!%)7#"''3255#'65535#35#'##535#35#á  CAAAA&<))))Ìn   &:&71i u+F*òÏ#)/5;735333##3#535#535#535#33535'67&''&''&'*KLLb×aMMggK_888•·  (  # à      >        %ôÓ &*9?C7&''637#53&'733#3#535#35#5#"&55#'67#75#335#€09 8;%= C;Ž m796TB¹ºÎ;"0 ,j&%$%Ð    ]C $ # =a     ÿçñÏ#)/733#33#53537#535#35#35#35#'67&'{X[F#â&?^aBsssssss* %a%% %&ÏxxA,+#  2ÿéÏa 7#5##535#35#35#Ïwwwwwwwax x ) ,ÿéñw $7'67#7&''6'&''6u b- "F   o Z sg , ! ÿéîÑ048<73673#3#3#3#5##5'67#537#537#53&'35#35#35#[ ,  8f\c~ˆzm);H=DU;mmmmmmÑ  pX  Ž * ) ^ôÐ!&,2733#3##5#5373&''67&'#367'67&':**72/)L]    § N  Ð 22    %    VˆÊ"73#3#327#"&'#67'735#'#g$%! $ CC Ê.  K-ÿéðÐ/37;A73#3#3#3#3##5#535#53&'#535#535#53635#33533567#boVMMg5.T^^__S-4fLLT8*''9%'2GÐ8      8 0u  ÿéóÏ%*.26<B733#3#5##533#&'#5##5'67#3&'35#35#35#7&'''6j\\o³V: C"Dx  C=_)xxxxxx{ u !Ï )(& ]]"// & & s   ÿéÑ#'+/73533#3#535##5##53##5##55#3535#///(d)/nJ;;M;L;;;;;Ä   ($% k l  ( Oÿë¢Ë73533#3#&''67#53655#` ¡**' ( (7$QÿéïÊ ?CG7'6553'#33#3#"''3255#7&'7&''75##535#535#'235#335z]] -**3  "  1**1+˜0D4 4?]2"+> ,AO+ 7Yÿè¯Ç $(7367#533#67#5'275#35#35#75#[',A   Ÿ s!|JNƒË` 73#735#35#ƒHH""""`Z68"mßÌ 73#735#35#35#73#735#35#35#"UU//////TVV//////Ì_C & & D_C & & VÿéóÏ>BFLRX7''67'6767767&'73#3#"''3255##5##535#53635#35#'67&''4'“    >!   ((((S 5e-*8n V=  )VVEUV .4Y# ZÿçóÑ#)/M73#3#5##53&'#53635#35#35#&'''63#3#"''3267#'667#53'ŽF3>k>+ MMMMMM; "  (BZM ?# )@ÑQ  Q ! 1   "   ÿéñf#9=AEJ73733#33#53537#35#35#35#35#'7537#53733#36'35#35#35#5#6‚.'*%o+22222222$57+.'*%H22222222X II K  E2 kÿïÛ3:>BG7367#533#673#&''67''67#5'75#67#35#35#675#l2     J 7 ^  . !   K(- ÿéíÆ*733'67##"''32655'67#53&'767#*¶*#G ? %F G"\j% “Æ &h W>&)7  ÿééÌ):NR733'67##"''3255#'67#53&'767##"''3255##5'673&'7&'#735#*©J  8   '; 3!NZ  й   0 B  ^::Ì     _Z  C`r9  ,ÿéóÏ73#3#&''67#5367#'6L ŠQ`[K G W T X]0$Ï;>2#!1  %ÿéó† 73#3#&''667#5365#'6GˆLcWB ET %* \b4 †   ,)  KéÏ73533#3#3##5#535#535#YZZOO__]]OOY¾S œÏ73767'5'7k  Ï:Y  cfÿéöÏ)7367&'#"''325'&'3'67#¥   & 3  !Ï?$ --$0N  » 5L&:eÿïõÐ 7&''63#3#535#¦$ "# +e(;‰8'Ð **- (7NN ÿéõÐ048<BF73533533#3#&'#3#5##5'67#5'67#535#35#35#35#&'#35#%c$$+3 c n^ &  %81%8ccccccn I ^^à F ;& F * ) 4 BLQñÏ"&+7533'7#3&''67&'#'65535#67Ÿ=(*  "$  %%  ¿      #"%$  \éÐ &73#53635#35#'3#3#7'75#535#¦3i CCCCyY#!!%*3(!!#Ð\\-8= NóÏ/37;?73##5#'66556#3533#3#3##5#535#535#35#33535#335ç *L 3´044,,))33,,0-G-Ï@@- $ 9   9   Nÿé¦Ï,73533#3#3#3#"''3265#'675#535#535#]$&   µ@ '464ÿéõ¨+?C73533#&'#5'67#'3533#&'#5'67#3#3#5##5'67#35#”!%  Z     ·m qe #01ee™ '& !  8E3< P‡Ð 73533#3#535#'6553'35335211)e*2  dRÇ   Q /!VÿèôÉ!%6:>7#3#67&'#7'5#'6553##"''3255##535#35#íqv6  2  ZZ_  AAAAAÉ#  ) ("F6 7?aNS  "h ' _ÿéòÍ!77&'7#3#3#535#'&''63533#&'#5'67#v ‚H??HZ--: #  ?=3"  4Í  1qB   0 86ˆ Êb 73#735#35#ˆBBbW35-ÿéõ³8LP73#&'#5'67#535'673#&'#5'67#535'63#3#5##5'67#35#†   %({#     (‹½t vi  !/1ii³#"    !"   e?0 6Wÿè¨Ï -73#53&'3#735#37#"''3255'7567#‚G@@C   +Ï  330  Oÿê©Ð 073#53635#35#3&'73#3#"''3267#'67#xD####+$    ÐPP *06 9 !)6 ÿíÔL73#3#5##5'67#35#+©i }v *$ vvL>-6ÿëÍH73#3#5##5'67#35#9‹Y wj %jjH<. 6]¤ñÒ73533533##5##5#]!,##,!Â[ÿéôÐEJ[ag73533533##5##5#&'#5'67&'767&'767#'6733&'73'673##"''3255#'67&'b $%%$ x   B     # 3+ iu0   2 \à  H        ! H- *  gÿçòË +159=AGM7#3#3#535#35#5#73&''67&'#37673#735#35#35#'67&'«H!!7B    quuOOOOOO  DË ) a & & M     S[@ ! !     ÿé÷Ñ&=Ryƒ7''67'763533#&'#5'67#73533#&'#5'67#''67&'763673#&'#3#5##5'67#5'67#3&'#35#”      z             wRt7$ S um %  );B` 6 mmÑ       '&   )-    2  <-   JXÿèóÎ%+1bhn7367&''66'367&''667'6''6#5#676767'7'#"''3255'67'67##5&'''6È    J   4H‹D  $    " %l = Î      :(    %   )a    SÿéòÏ159=AGMShn73533533##5##5#3533&'73#3#5##5##535#5#'#35#'35'&'&''673533##"''3255#&']"'&&'"#.  1*).X*)L    L  L À    D E "  E     *' %    SÿéôÈ#:BFJN73#3#5##5##535#3#'3#3#73#3533#&'#5'67#7#5##535#35#35#e†9B0/A;T""A""%%D''^    """""""È -66+ &   :5(w w-. ÿéóÁ 73#3##"''3255#&'''6%¶¶Úb   d¢$#_#Á-l  i$(+$ 5%8ÿë¾Ð73&'73&'#5'67#G+ ' 9$N²  gf B ÿèöÐ/4EKQ733&'33&'#5'67#&'&''67673##"''3255#&'''6=4h%E  {L)   y ¯Æ[   X" U + %Ð. #:  <    p/ , TñÓ 73#53&'3#735#3#735#‡bãhK²²ŒŒ__;;Ó "V4$  SìÑ#):E73#3#3#67'35375#535#'6''6##53#"''325'#5'6^:!%%""03((   ²=   ¢ Ñ  #"+   ^pQ 8 ;)Jÿé Í!'<7#53533#&'#5'67&'7'6&'3533#&''65#g!     ?  7""   "ˆ55  # P `     !ÿéäÒ&7#"''3255#67&'7&''67##537ä  L (-<U¬¥  ;"  $+  #<°Ã& ÿéèÎ59=73#3#"''3255#67&'7&''275##535#535'235#335Õ '/JJ_  K  0?FZJJ(.^866J6Î>N  7  Ug>LÿçíÒ $K73&'73#&''67'763353##"''32655#67&'7''67##537b `Û—  # & x’·Å  \   .37U»       11CJ 3   Qc ÿéòÐ *T[7'#5'63&'3&'&'''7&'763353#3#"''3255#&''67##5367#67'7#~/4  O(:%" %?4   &n‡Qd   . +/ +JE9  Ð    !    ((:: $   >P5  ÿéõÐ7'673#&'#5'67#53uUhW *.fYA>#9 7"Vf± .B!'?y}C'$@ÿèçQ7#533#"''3267#7#'6Y0 <  @ .G ?@2 H ÿèñË.2673#33##&'#5'67#535#535#535#535'235#35#Ô UddO:!3 8&!: 3!>RddRRaaKX <<<<Ë!! #AA!c1PñÑ 73&'73#3#735#3#735#fe⬬‡‡bb>>à X: $ kÿéïÐ #'+7'2'6'&''&'#5##535#35#'3#å 3J=5 *    €444448Ð /0OA~dÿéôÏ%=EIM73673'73#3267#"&55#'67#36732767#"'&5#5##535#35#h- +    )  %2+ 08 " 2- xPPPPP·       -   T T+ ÿèñF7#3#&'#5'67#535'6² %dH", 9&$6 $%Db QF   )+  ÿèˆÏ773533#3#535##5##53#3#&'#5'67#535'6 255,j*2vPFFK&11  .2!0À* "  $( Rÿì÷Ï%+;A73533#3#535#35#33535#335&'#'6733267#"&57&'e9@@7}49""4%Y""4%0  6   #b ¾VV54&   0 6 Xÿè÷Ñ#)/573#67'6775#53635#35#&'''6'67'6›@6 "@  2%UUUUWF \ +N R8 1` bÑ L" ! ,L (+"   &  ( 0ÿéõ¦,H73533#&'#5'67#73533#&'#5'67#3#&'#5'67#535'2=   W!%    C 'SE031 18ÿèö| 73653333267##"&547#'67##AK   6 LF =W2"  )?0ÿçát736533#"''32765#'667#Mc P. +"JZ  S 4&#ÿêË|73'67#&''6g \#~ tU    1|M?    ! ÿèáu73#3#"''3267#735##¯—© ¬ ”›u8':ÿñï™ 7'67&'3#3#535#c / 2V*$")l»TcØaS™ 788ÿêï|!73533533#3##5#'67#535#5#/?00<<A , ! 7:/‚?d 66  ÿïô…&733#353#5#3267#"&55#5335#53scc99 )  4%J6]]…, ;  2 ,ÿéõx73673#&''67#7&'_h`N M 3& GY S19*37 ÿêér'767'5'75373#"''32765#'667#q," "%5m  (X0  :%"`  >1. **ÿéá|73#3#3##5'6U€xnnoo'|  h-ÿéÓk 7#5##535#35#35#Ó~~~~~~~k‚ ‚$43ÿèðw!7'6333"&&#"'663367#53'Õ YgjK:1B,A@ 1-ŠSw   ÿíõ‚)-73#"''3265#3#32767#"&55'635C „ i_4JS@ !L‚F06  E!ÿêéz9736533#"''32767#'67#&''67'67676767&'8   &! %- )c [5*,>& # /"ÿèèw'73#3#"''3255#&''67##5365#Ô^Z  I% " 1BZcw R  <Yj ÿèôt 7&'67&'7''5'6556Ä  - 4   )#XtC#PU    `*%!/ ÿéä„7335#53353353#5#353#5# BO;;;F°4/;7$11%?;+G ÿçæƒ'73'67'56767657#"''3255##5bL 3  +' $%„  2]$: R 6 2P  8s†ÿîï†73533#3#535#3533#3#535#&RRRbÙdRTXXdÝfTt=ÿèï„ 7'673#3#353#5#5335#535J  †Occ:;ff` ); 1)-<Û…7&''6767&'°BJ(*-s #ÿéí"73533#3#535#'6#5##535#E*OO_Ûh7 ž………‡  BF G* ÿéó~ $)-733##3#5##5'67#5367#537#3353535#/£!!{’y !"?D(;X\anyy~; -   O ÿèò–9737#535#53533#3673#33##"''3255#5357#'67#*=lX1100/K8SS ^^%=(- M       #ÿêá#73533#3##5#535#735#33535#35#2CIIXXRRC00D6ˆ>>RDD~599[ÿéæ%)7#53#3#"''3255#&''67##53'35#w>=]  N  =W(ggL55=  '  CUÿéÝ)73'67#'63#35#535#53#5##56hP  K" 3 '<<’<<>R’,  b \ ÿçä‰ '7'6553'#3335#53353353#353#5#6½——‘7@-.A8•W/+ $*H2"L!%%!1 ÿèî˜17735#53533#3'67#&'3&'736533#'67#&'`TTUU`  º> 60 $biWF\Ž(" 'e    '  ÿèæ€"&73#"''3255##53535#335#3#735#Ì   ©\&nHH66nnJJ€8G  2O`88(  )- ÿéñ†+173533#3#535#'&'&'3533#3#535#''6Y8;;J£F8) G=@@MªJ= t    ' "ÿèí‰!9?733#&'#5'67#537'6'&'3673#&''67'7#367u[H2;$, '#CV=  _*Mw4C )#%D / 2=X+‰      O     ÿéå‰ $(>73#"''3255#'67#5353635#35#35#73#3#"''3267#735#I(   5 *@999999TV>H J ;C‰|   Q$ ' & F51 5 ÿçó‹%+1773673#3#3#535#535#53&''67&'7&''&'U ( 6ZPPeÞdOOZ6  H  ]  ‰  e    ,NÍŽ 7'2'6'&''&'Á ?ZKE 3  %  Ž       ÿéõ‡'+@FL73&''67&''667#'#5'673#73533##"''3255#'67&'ˆK&   - 9 ]  !977   9 Z‡   qX b&       ÿçö@F767'7&''5'665567&'57'7''5#'66556&'n    3Š       8L  \ g-$ #+%&+#J_  l-& $+& "ÿçìœ#)/73733#33#53537#35#35#35#35#'67&'%QNQJ×CNzzzzzzzz& "c& $‰ VV !     ÿçñ’#'+17=73#3#3#"''3&'73267#5363535'67&''&'sMޱ±«   ª@0zzz c    ’ ; ( h G     ÿæõš-159=AEL735333##3#3#''27'7#537#535#5#5;5#33535#33535#33567#)KQQZo„1 M Y%N."42C:TK99K?Š99K?‘@@RFA KŒ$   $0 ;ÿèî‹'+/3B776553'67'56'3#7#5'275#35#35#75#7##53##'265¤ )  yW  ¨9  ‹L>>-e^!g<?FŠ›_ iÿæõ{!%73#3267#"&55#'67#735#35#35#yg   ( "CCCCCC{a  % C) ' ÿèó‰,0AGM73'67#'6'3533#3#535#3&''667'3#3##"''3255#'67&'¡@ 3…333,i+3™% &Žbb v1  3  S ‰   +!        ÿéö“3V73&''67&''667#'#"''3254'7##53#3#3#3#535#535#'6735#‡M!+"$#   ='   bV"6633A•A,,& !“    & (ž>       ÿçöy!%<73#3267#"&55#'67#735#35#35#'3#3#67'675375#zf    . '@@@@@@x^" ,5*y` # C & % A$ GDUrìž73533#3#535#-GPPdØ`G‘   ÿèõ–(1:@FL73#35#535#53#56&'733267#"'367'7367'7&'&'7&'l &??•DDFX¹,   ¡$T'& N _ –   C=I   & YGRH R      ÿçô”'+/GM7#5373#3#3#"''3267#'667#5375#3573#&''67&''667#\bh733#33#"''3255#67&'7&''67##535335#&''67#'3#&'#5'67#535'2'6'&'Ÿ88/   .   #B  & ""   &*!  4  •  7= (  BR77(    0+  ;B)   ZìÏ73#767#53&''67&''3#M: Rj  XÏuR     #^…Aí‡735#53533#3##5#'00##&&*j   ÿéòÑ'73##"''32655#'6'3##5#'6™N   ZB'  Ñ ‹(+>««()ÿèæ…!73#"''32765#'67#'67#'6K  JH"@< $…d&BD3.91% 'ÿéò}"7#5##53'66533267#"&5Ìs?/84(   + }gUTf.2 ('$* &ÿéçˆ733#3#5##5335#ijjZ‰C/‰‰ˆ^ ^@-&ÿçÜ} 7#53#5##575#'#3355#:¶>R><<<pp44: ÿéàŒ 7#5##535335#33535#335à˜UUAAUC˜AAUCqˆˆ4!!!T!!!!ÿéã‚ !7#5##535#67#53''67&'ã››› _w 2% ‚™ ™~l(   ÿóï 73&'73#&'73#536!WVÅ-  y @܆g    ! ÿìò(,73#"''3265#'6#32767#"&5535>‘  ˆ u[2E  R?GM2:  Vÿèã€73#"''3255#3##53#=#'¼  ¨™™)uM€}  fK DC  ÿéñˆ %7#5'673533##"''3255#&'E  !1^##  ^$  ˆ rW R  M   ÿéó‡73533#&'3##5#535'67#\[G!4 :$4455(4 3"Hn)7<##95*ÿðî} 7#55#353#Ο‹ww§ÛÛ}gg*?ÿæéˆ#)7#'676753673#"''3267##5'6'35b2 &!+"(,] H!? : =1 !*KJ%*  ÿéè"&73#3#"''3267##5'67#735#33535#&¶P\ E!@ ?H ORf<“C?8/G?%8=ÿéë†73#3#3##5#'6J–xhhqq(†'v ÿèõ‡1673673&''67&'67#67#7#53&''67&67# 0     "O b  ! " /l 4     " "3     ÿéæŠ73#5'673#"''3266535#Bu{ ™! ‘SSe B;% i%*5Cÿéî–'7&''6767&'3533533##5#'67#©JS(14 ‡8J22J2 )8’ !  K@@' ÿæä†"&73733#"''32765#'667#7#5##535#.  Ì...md  A/1.(‰‰dQÿèñ}73##"''32655#3#735#â% ©kkCC}h cF  ÿéóˆ73#3#&''67#5367#'6CŠMi\$6 =%V Jci6 ˆ !,-#  ÿïó73533533533##5#3#5#5# %-0((X-¨¼%ª0]##$$11H[ ÿéò37&'67327#"&''67&''7''7&'37¢  Sc  "65 7/ `[DC_]  2         ÿéí…/73733&'73#673267#"&''675#'67#@@  +R "  $  83 œ  “|[[HHŒi*V Tb!ÿçä…$(7373&''67&'67#67#7#5##535##2   % "¦...n7     )"0Š ŠmZ ÿéó&,73265#"&55#'6553#67'75#&'Ò5dW#&1 '!  t " h0'67C Iÿéè†%)73533#7#"''32655'75#7#5##535#&%% $ $,&Î===l% Ž Žq^ÿèôœ.267'67333##5##"''3255#535#535#53673535L +" S+< DDccBd<<‘£  ÿéò#'+173#3#&''67&'767#535#35#33535#335ÞePS /KQ83&  MPd(< :$(6 @)[[8 } Š.'"99#&.        ÿéóš!%*.73#3533##5#53'67#536365#335367#335naiKKKˆ#-B3?@S>‘3k "0 &  (D31B0   3  N!   ARÿêò’7&''6767&'#5##535#¾  9B%%' 3]]]„ (! CMM4"ÿèôŽ +177&''6'3#3#"''32765#'655#53&'&'&'¬  &P#<3     ,r   Ž% J 1 / =  ! ÿêó£(.R7&'673267#"''67&''7&'7&'673267#"''677&''7&'7ž Pa   1A H WK  nj   #2C 1$^Q £       9        mÿïò 7#3#5#"''3255##5##5353ímr…}  $|¡*4  NNW“X+;;t2) (0)< 6 ,  ÿéñ 48<73533#67#"''3255'675#73533533##5##5#35#35#!     !Y77%7777s)  %xx##T ÿèó– FL7&'7'6#3267#"&55'67#5367#53673#3#&'#"''3257&'#:  •  Y .9 A; 5IFPfoƒ1   H –  g% +      &ÿêó’ !-73#735#35#3267#"&5536'33#7'&²²ŠŠŠŠ§ %+  )%œAA;'# ’O/+-     <  ÿéó— #@73#5##53'3'667##&''6#3267#"&553#"''326c²a*1&0+$% "—3 +% [  — %( & '1#   >U. ÿéó™'-735#53533#3#3#535##5##5'66&''OYYXXMMiæiO­‡S1= 9+2-0/s     $5%*:  ÿíê&,27#3#53533#3#&''67#53655#&'7'6峸Ë)=??ME$ $'( #5D=e£$        ÿéò“05I73533#7#"''3255'675#73&''67&'#3673533#3##5#535#    ^p'&   U,--::::,v .  $")    Dÿèá $7&''67#53#3'67'#;5#35#\  .7¸ji&ˆ |!$""##m##0   ?? 6 'O ÿéó›#+177333###5#535#535#5335#35#3#'3'667'67&'uPPMMffMM<<<<=   /V  › WW .&PP$   ÿéó“,073533533##5##5#3673#3#5##5'67#35#>C88C>V qwk +DGkk„!  G 5 < ÿêó—.26:73673#53&'3#"''3265'#"''3255##535#35#73#N 9Dæ=   T  88888i— )c Za  &w!.,RÿéŒ"(733#"''3255##5335#35#'&'7'6H0   N0NNNN  d  /`  %u"0Y   ÿéâŠ*7#677'7&''535357#"''3255##5{J$ 888y  +ŠZ2    —$5p  Y¡Eó$*7#'65533267#"&5'3#7'675#&'½.R  ¤R %-…  0 8!# KÿéóŽ *733#5367#3#3#&''67#5365#'6arh] h;I= 4 6 <5 =D%Ž #     ÿêï #)73#'#5##55#3535#7&'''6'6£<)<)))))§  < SL CfY ”&:T" 8 ÿé…Ž73533533##5##5#35#35# 00%0000rw w!!Y% ÿçõš!+/37'#67&'7#7'5'63'73&'3535~58 ;   01 E/! D64(uuuš  @      h     ÿéóœ #;A7'6'&'333#&'##5#'67#53373#&''67&'67#67#µ  l  A`F4A'2 *#E_gR  }=H*%'D 2  Bx :œ   ! B    .óš"73533#3#&''67#535#&'7#6!TSSj4 L\AhT” K?Œ   /  ÿêêœLU73#"''3265#353#3#"''3265#353#'67#5335#'67'67#5'66525#3H“  Y!;  ™  W)> ?-,&.  ( $0& œ8 :        ÿéì‘+17=C75#53#3#"''3267#775#53#3#"''3267#7&'7&''67'6`G[DL   Q µHZDO   T q { 0 &* (+q0K60/K506         ò’ )-7#"''325567#5367&'3'67#3#•   u–  5˜R: 1:››g '     /!2Nÿéò•(,073533#3#3#535#535##"''3255##535#35#W@AA99H¤I99@Ž  bbbbb‡    :? S ÿêô— !(,AGM7#5'6&''673&''6767#3#73533##"''3255#'67&'9  b  "A  &' ~<>>   <c  —€` &    %  k(       ÿéò˜ $673#3#&'#'67#5367#735#35#35#67&'7&''61žYƒ9" +A' 9K.xxxxxx)  /5˜Z   ? # # 7   Yÿéñ› %+17&''63#3##"''3255#535#'67&'ž $ #"' . S 77   44 ^›  )  %,   ÿéï›673#3#5##53635#3573#3#"''3255##5##535#9'DG4114z40  ,3› >J œ 6LdE  .eeL^Mñ™$*7'66533267#"&55'3#67'75#&'– H šR!&/%‚ ‰. ".  #    %@ä• 73#'6'3#'3#7&'–@H;-—  •  LFB   ÿçí™-5973'73#7#"''32654'7##5373#53&'#5##535#, 2uÔ  )e   ‚b@@@„ * .’¥  5I I.ÿèì  K73&'73#&''67&'763353#3#"''3255#67'7''67##537#d^Ù–    uŒWj  `  &+ .LF     ##48  "  ;L ÿéï˜'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335#¹S)**S``__P''*R??SA”??SA**>)˜F    * " F Jó‘273#67&'#"''32655'67&''67''67#SšB $   #/ 2(' & !A‘           ÿéó–&,28>73#3#3#3#3##'32667#7#535335#&''&'''67&'#Â`PPn§—›¬ ® *'+OŠ    I 7  –    /4"i      GóŸ873&''67&''667#3533#3#3##5#535#535#‘C &%4*  #1 =;9<<66BB@@449Ÿ    *       ÿêó¢ 1=CIO7&''677'&''6767''&''6767'&''6'67'67'6¨ 8>%=0 ! V#'  $/9 89)9 N. "> @= -U WG :l ož              "   ÿìó48<@F73#3#&'#"''3255#3267#"&55'67#5367#735#35#35#3&'#*ª]8!   W +7 ?6 0F6„„„„„„_AH     & 3 9  ÿéí™#):E73675#535#'673#3#3#67'7''67#"''3255##5#5'6Q))  1 /%   É   v 85C  ™ s ^–¨( _G Yà‘ 73#735#335335 ÀÀ''9(&‘8ÿéðœ"&*0EK73533#3#''275#535#35#33535#335&'#63533##"''3255#&' VYYR Q]1+SSV@@T@”@@T@ /˜¤++   ¤: ’ 9   9     ÿåîœ#'-373533#3#3#535#535#3#735#35#35#'67&''NRRMMeÛbJJN§§+ &a(&%'—  2O9   ÿéóŽ(.9733#3#3#33#"&''6735#53533''6#5'6 669944*, E[# $ !Ž  ,?++8 " VDÿçôœ (,J7#5##53&'733#3&''67'767#53'3#3#32767#"&55#'667#ìµf **0  =pKKe &< F3&&     !7  =$" W ð˜73533#3#535#'63#735#w55@™G&uuOO”  <7 ÿìôœ#'+;73533533#3#&'#'67#535#35#35#35#3533#3#535##a$$,3 *F- #2,#5aaaaaa,--V¼R, @ @ & & .   ÿçñ.26:>BFL735333##3#3#&''67'67#537#535#5#5;5#33535#33535#33567#)LNNWtˆ/ H -&&M /!4 0>4TL::N;‰::N;@@TCC J—%    %4 > ÿéñ•26>BF73533#7#"''3255'675#73533533#3#535#35##5##535#35#   T!$Œ!-!!LMMMMMy" .  "'2W W . ÿçõš"&<H7#3#'6553&'75##5#35#3353353267#"&5536'33#7'íE:°X))));)( (  "†662" Ž4. '-E"#+   2   |ÿèõ™73'67#'6&''6›E 5 " 2™  $+(/  ÿèô &*.:73&'73#'67#5#53533###67''35#35#67&'__×/60£ T # ~~~~O!  60Œ j    e '     ÿèõ™#);73#3#&'#'67#537#735#35#35#'67&''6767&'+¬b„8% 1B' +C 1„„„„„„  %*g7='! ™Q 9   7    ÿçòš*06:@7'6'#"''3255#3#3#535#535#'655'6##535#7'6×( &0  !FÃ+ )T.™0 /š  Ž  x    8@">@) 3;# $ ÿèõ›7;?733#533#3#3#67&'67'5'67#535#535#5#35#ueÕ^XÉ#22#M    H!  9G#22"“___›     .      ÿèð˜*06<73##5#'665563533#&'#5'67#7'6'&''33#ß %I-#     I 3Ui˜ !^^D (4,/22 *2> „;ñœ%+17&'73#"''3267#'67#'&'7&'''6'62 DJ7373#67&'##"''3255#5'67&'767#3&'#35#35#'67&'W kH     A   G     GEO !uuuu # { ‹   1  1  & &     ÿèô• #'+/73#735#73#735#3#3##5#535#735#33535#335ZZ88^ZZ88x¸RjjiiR??S@“??S@•--&F  * $ K²E 73#735#35#KggBBBBEE* ' 8ÿìÆN73#&''67&'767#53&'…: '  a?N       ÿèñž#'-373533#3#535#735#3353#735#35#35#&'''6(MPPiãgM::M=œ­­‡‡‡‡‡‡c,# "*4 9 4–$ 2O8   ÿéô™!%6:>73#&'#5'67#5367'23'#35##"''3255##53#735#Ä"+w9$ y'9OBQP4UUŒ  ,hhDD™    4 3 9I' ÿïñ–*.2A767#533&'76767&'#5'67&'3#735#3673#53'0  BX <    'N( ””ll/;Ô=z          (3$    ÿçô›#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'.H44>iP´Qk<.@HH!>>Q>>>Q>p . 3e&& &'  JJ J) "    ÿèó˜'+?CIO73267#"&553'#33267#"&553'#33533533#3#535#35#'67&'0 &" X445! +$ Y55­)F((>æ=);FF+ (d,&))i  :/  :0 <   #    ÿèêš#)/G7367&''657367&''65''67'63533#"''3267#'67#E   *k    )ˆ o c6\  HK?5š             P / /  :ô–+L73#3##3267#"&55'677#'73655#'3#3#7'5#'67#'73655#†b!&    ! /l_ % $  ,–             ÿèðDHL735333##35#53353#5##535##5#3#5#'6653353#35#535#535#33535(MSSE5##5ED6*  1COOccM_@@@•(  f' 22 '  ,(   ÿçõ™26>B73&''67&''667#'3#3#67'75375#735##5##535#œ> !    /†R+5 %..¹<<<™       ;" JFPLI I- ÿéò’7=A73#&''67#3#&'#5##5'67#535#&''67#3&'35#"»   #f?& r )>g%   D c Orr’   /6 4 /    ? @ ÿèô˜$(-C73#3##5#5367#53637#335367#33535'33533#3#5#'65£=((R%$1$T/', <. ˜O$$ O (- X&,, R@( #6ÿçõ˜ (,0@7&''6'3533#3#3##5#535#535#35#35#73#3##5#535#¯ $Š*//&$--..&$*7777cQ----˜ I  I ) ) 66ÿèñŸ"+/3;?107'655'6733#&'#'7727#3'73#3#3##5##535#8 6([ 1 , AT JQ³————™tttk5+# ")/  &    (( ÿèö˜#',@DHLRX7533'7#3&&''67&'#'65535#67#'3533533#3#535#35#35#35#'67&'°) "    ) #¡' i"''''''9 † '    /$ %,B0UUKK-.%   ÿéê› '+/377&'7'6'33#5##533#735##5##535#33535#35#@ ‡ ?a¯`7]]‰Œ;;O=Œ;;O==›   ++) "MM ( Vë’!%73#"''3255##53535#335#3#735#Õ  m;G))GG''’7E 0DU77& )' ÿèb™ 73533#7#"''32655'675#   y "/ #( ÿçõ˜"&2A7&'#5'63&'3#735#'3#735#&''67&''6z36 { M c 6VV11wVV00  u   ˜   44&      ÿéð¢/<AEIMQU733##&'#5##5'67#535#'6553'73#3'3&'#35#535#767#353533535335¦/!" $ )5Uc23¯5((.eDJb  &..$   ) *.G   @    ÿéìš3GOSW[_7&''56767&''3533#67#"''3255'75#73#"''3267#'67##5##535#33535#35#“    m    "ŽF   B[$$5&[$$5&&{  > $!.  " '*1 2  %@W W, ÿçôž6:>GM7#5##5367#'673'3533#3#&'#5'67#535#35#3353'665&'ç92#  .½,**$$  %,&K@ fSCAQ  7  -275 1 2î— "(73#'6'#3#3#535#35#5#7&'£?G ' 'n""BB""‰ —    ( a ' (    ÿèö–17=73#3#35335#533#335#535#535#533#5356&'''6K))))7++++2%%$$':ìj*&)(?, (– ##,B>kb}    ÿéñ¢ J73#53&'3#735##5##53#67&'#"''3255'67''67&''67#gÚ^=  zz«¶¢P  #&   ,BB/)7 3)) +2¢           ÿëòŸ?F73533#3#535#3#735##5##53#&'3#3#535#535#'67#&'#6hhhS½Vh©©††±¶§ QQeÝdPP$$…9Aš     ÿéì˜#CGKO7675#53#5'7&'7675#53#5'7&'3&'73#3#3#3##5'65#5#35#<I\"'I\"Y2ROEEEESª !WDDDDD„ C   C "   B    ÿéð$(=EIO73533#3#535#3'67#3#3#535#3#3533##"''3255#'#5##535#&' T\\P­JT Ú Æ FXÁVGßßeK   K111g  —      11   ÿéñ˜&:>FJN73533#3#3#&'#5'67#535#535#73533533#3#535#35##5##535#35#$%%!!))   ))!!$h ~(DDDDDD‰  02 2W W . ÿéñŸ ,@DHLRX7'673'3&'73#3#"''32765#'655#3533533#3#535#35#35#35#&'''6  Rß&#/+  l+~#+++++++#    @'  6?' /C ;; " #    ÿèö˜$*>BFn73673#3#&'#'67#5367#7'6'&''#"''3255#'65535#35#3267&'#"''32655'67&'767k19>K  &**f I   s    u   0  ’ $&.Z0I!        ÿéôš(.4<@DHLR73673#&'#5'67#53&'735#'2'&'&'##53#'#;5##;5#''6×  .#.( *?m  À_…8''''''''p š          nPP?  * "  ÿèôœNRVZ^bfk73#&''67&''667#'35333##3#3&''67'67#5367#535#5#5;5#33535#33535#33567«:     ‘++ +.79 "!".+ ,E,G.6 œ +  ! (!   !0,ÿèõ›NSY735#53533#3'33#673265#"''67&'#3#3#3#7'75#535#535#535#275#7&'@4400B75     1&&##''#@E/))$$&&/A „  n   --%   .        ZY:  ÿéöœ$*>BFpv|73673#3#&'#'67#537#7'6'&''#"''3255#'65535#35#&'#"''3255'67'6767767&'&'''6k09?K  ' ))f I   £     8  |      -   ’ $&.Z0I            ÿêõœ#TZ`f7&'3#3#7'675#535#5'635#533#67&'#"''32655'675#535#&''6'&'?  =###*3!! "VGJ]3     4VG  3œ  - / :    #    ÿéó¡)MSv|‚7&''&'3#3#7'675#535#5'67673267#"''67&''7&'7&'67327#"''67&''7&'7#'6'&'¯ f  =###*3!! "·B   F=   $I3¡   - /        8   #       ÿèñ˜HLPTZ73533#7#"''3255'675#73#3#3#3#3##5#535#53&'#535#535#735#335335367#   Qƒ922<3==>>19..7%A!-y" .  "'//      ` ÿèóž=AEKQ7367#'6733#735#35#35#'3533#3#&'#5'67#535#35#335'67&'‡7'  . b>>>>>>†,**$$  %,&B  :k \B $ $ ]7  -275I   ÿëö›@QUY73&'73#3#53'#367#733#3#3#3#3#3267#"&5535##"''3255##535#35#)+r)#PTTMNJJJJFF$ -' NM ;;;;;Œ   '    ^ Q d & ÿèç˜ $BLV7#"''3255#535#5#'##535#35#3533#3#&'#5'67#535#3&'735#336735ç   F4444&J7777:::4/  (3:  "4  ˜•  S<,A+%%##$$,?š          *,  .       ZX ÿèôž"&*.GKOS7&'#5'63&'3#735#73#735#73#735##"''3255##5##5##535#335335|91 h QO@99599699$  &%%%%7%&ž   & & & !4  J ÿîóœ$JNRVZ`f7&'3#3#67'675#535#5'673#3#3#3#535#535#535#535#'235#33535#335'6'&'?  =##)1!! "¯,55--118€600--223 .J.{3œ  - /   ?  ?  G "    Gÿþï-^733#3'67#73267#"&55'75#'65533#67&'##'3255'67''67&''67#ŒGGM B12 $  7 €6     #%"  -       ,& "36           Nÿþñ¥ $(,I73#3#5#&'#'7##53&'#53635#35#35#3&'73#3#"''327#'67#•:2D L3*TTTTTT?9WR   F  !%¥;     ;7    ÿéñœ6ISm‡?67&'7''67'6776767&'7''67'6773##5#'6556'33#3#?7&'7''67'67777'7''67'67x      ?      Ÿ  : )¹rrm€,      /      …            hhL U-BJA         ÿçö¤,QUY]agm7'673533#3#3267#"&55#'67#535#'67#535#'673533#3#67'3#735#35#35#'67&'— '  *^ * ' $ "¥¥# #) &_%%#%ˆ             L6 ÿèñ¡ )-15Gx73&'73#73&'73#3#3#3##5'65#5#35#'&''67'76#3353#3#"''3255#67&'7&''67##5367#+/nŠ"!M )J    ;>%3   '  +(    x%)+]   $$4= '   @Q ÿéê˜ (HNRV\bh73#735#335335777'7''67'6773&'73#3#3#3##5'65#5#35#'&'''67&'#¹¹&&7'&™  &  P "*$$$$,] */  2  * ˜.=        G      ÿéö¡*.3JO_cgk73'73#3#5#3#735##"''3255#'65535#35#73267#"&55&''6555#'3#&'#'67#735#35#35#ahº¬¿®®ˆˆ   ±    ! eA   !!!!!!• ! H  $ # +@    %)#E  1 ÿèô›#'+/37;?C[_cgms7'#5'6&'73#3#537#35#35#35#'3#735#73#735#73#735##"''3255##5##5##535#335335'67&'JB +1  Uf+)W(555555’"" "" ""    4 3 ›   kk +,-2$ $ $ 7 J     ÿêòÐ .B73#53635#3533673#&'#5'67#53&'3#3#"''3267#7#fi¿?2™™&   ,*  /=å¡• ™ .Ðoo fK     \$ !KâÑ 673#53635#3673#&'#5'67#53&'735#'2qcÄK>ŸŸ†-! !1;ÑwwmU       ŠóÑ73533#3#535#'63#735#ž'f,LL&&Ç '' NE!3Tï¤!'-73533##5'67#'3533##5'67#&''&'™!""   ^!""  ¢  Q  •2# 2#       EóÑ ,04P73#53&'33653353#3673#3#5'67#35#35#73673#3##5#535#53&'¹)f'–2KL^  ::;;v  /((&&.Ñ    %$J+ 6 J    moÐ 7&'7&''68 "  ­ (,pmÏ73353353#353#5335#"["Å!!'$$vjñÉ73&''67&'#367zh    É      sòÏ&73533#&'#5'67#733267#"&50++  ,{  ½   $A aÿéõu)/57676767'7&'#"''3255#'67'67&'''6Œ #'.   *, = V ' "  @   bïÏ"47&''6767'&''6767&''&''6767&'ªCL%+/8 %( ^ %) Ê   -        ÿéõÐ#'+V\b73533533#3#&'#'67#535#35#35#35#67&'7&'#"''3255'67'67676&'''6'l""'<( 0<1 ';-':llllllZ(31(   #&3& M ! Å =  = $ # 0       :   \yÐ7&'73#'65535#C"N 99¼ 6 #%\ÿèôÎ"+377'67333#"'&''67&767#7#53#5##535#w  & ,     M CCC‡  . ,     .i&?VV5#iDõÊ 7&'''667&'7&''6Ê-  &*Ê0 0.+  TÿéôÏ $*073&'#73#33#537#'67#'6&'&'t "[31 a:# 6  d   Ï- ¢Ý'xx4/GL%  % aÿô™¾ 7##55#3535#™&&¾¶Ê6%%%%^(0ÿèí«1agm735#535#53533#3#3##5#73#"''3267#'655#&'#"''3255#'67#'673276767&'&'''6=  !!  ]Q    , "# * ,)< F  $n      D: "" U     "  Tÿó¨Å%7#53#67&'7''63533#7'75#rI   #+#³'  G" & \wÓ"+73#"''3255#&'#'67#5353635#&'#D'    1 ÓN    (, ÿéŒÎEKQ73533#3#535##5##53#676767'7&'#"''3255'67'67#&'''63771q-3xTH"   . D  3  Á   %     #    B     `ÿèôÏ$*TZ`73673#3#&'#'67#5367#7'6'&'&'#"''3255'67'6776767'&'''6n/7<M    +)d D  [       ! 3  ¬  5 }$   +    ÿéyÈ $*073##"''3255#53535#35#35#35#&'''6m +   ---------8  5 Èt@  =t * ) *(  òÏ#'+73533#3#3##5#535#535#35#33535#335'''%%((**$$'%8%»ZZ283ÿéñ¥!'-W]c73533##5'67#'3533##5'67#&''&'7&'7&'#"''3255'67'6766&'''6™"!!   ^"!!  £  Q  C"/K   #" J  —0" 0"      %       5   •ÿé÷Ð'+/7&'3#7&'7''75#535'6767'35#335Þ   "('    »L!#L($~***fÿçöÉ 9?73#735#35#35#3'67'6767367&'3267#"&5'&'pvvPPPPPP/      6  É`D ( & $%< &      ^   YÿèøÓ6:@FL73533#3&533#67327#"''67&'#7'675#535#75#7&''6'&'d'*)   (0&$ X  %>· (H)0.!  "6e m˜iL] N„Ñ#'+73533#3#3##5#535#535#35#33535#335100**//44**1*B*Ç  <   < " Zÿé­Ð(,073533533#3#535#35##"''3255##535#35#_  S )  !!!!!·(t  0  0  Kÿéé›0HLPV\b7#"''3255##5##57767&'74''67'6773533#7'74''675#735#335&'''674'é  NK,    ?    V $ !››  †––¡²;  9 <Vÿè§Ï 173#53635#35#3#3#"''3265#'667#53&'x E!!!!''    Ï NN +-%  2 " "O,õÑ3:733#535#535#'6367#73#&''67&''667#t# @/../ J-       Ñ a  3*    !6bÿîôÊ $?\y733#3#76777&'7''67'676777&'7''67'6767677&'7&''67'6767677&'7&''67'67b|||Žh   G   7  G  Ê^]»     !   z     ‹ òÏ#'73533#3#535#735#335#3#535#35'%%*g,'& >BT,,0à (  B- 0i9QÿéˆÏ 7#5'6tϵŒ$ ÿè÷Ÿ!%PV\1073#3#&'#'67#5367#735#35#35#27767&'7&'#"''3255#'67'67&'''6-¦\2# 0B' ,C1‚‚‚‚‚‚8 '$3    !!  9  O ŸH   2 ;        '   UÿèôÉ !%)-28>DT7#'6553#3#3#535#535#735#33535#335'67&''&'7&'3533#3#535#ñyc)**2t0))()A)N a -,9,++5€9,ÉTF6 6@a:  # I      WÿéðÏ)-15S[_73353353#3#3#3#3#5'673&'7##35#5##"''3255#'#5'67##5&'7#35#e'#;47////8‚   >>%%%%%r    ?  ^  Ê! /    > +  CR%   Bÿì¾Ð767'67'67676'6¤"'&,7%#%3?AŸ<#  &?;#h^ÿèôÎ"*267'67333#"''67&7767#7#53#5##535#x  &+2   L! CCC‡  . 0     /j%?VV5#Zÿô•¾ 7##55#3535#•))¾¶Ê6%%%%^(RÿçòÑ#'+/373#'6553&'3#3#3#535#535#735#33535#335³4v?b(++1x5++((>(Ñ MA1 2;Y 4_7=Wÿü—Ï733#3#535#53##535#o<&'Ï#YL W;*‚ ñÏ#'73533#3#535#735#335#3#535#35#‹'%%-o0''FK]4499 +   D**bFOÿè¤Ï 073#53635#35#3#3#"''3265#'665#53&'u!H$$$$*(    Ï NN +-% 2" ![êË%+7#5##53#5##53'6673'66&'7&'w2Å2I" n! U | ËJ88JJ88J$#  $#       <‰Ï 73533#3#535#'6553'#3#5#011(d)0b(à   T 0"NˆÑ#'+/37335#535#535#53533#3#3#353#735#33535#33511%%..++&&22a(=(h  3 3  O iÿéñÌ #'+/3BI73#735#35#3#3#5##5##535#3#73#3#73#3#3#&''67#'7#6sssPPPP|5:*)95<J**J**Gqq ˆ -3 #d (Ì;$ !  '++'      ÿéð© 7'67&'3#3##5#535#e # "JoÃWddggX©    "'@@'ÿéÑx7'673'67#&C )f%/J ‚"\5& % ; ÿêík 73##5'67#&'Ûc#7?!\“& !$kn[$$ÿèÜ}"7&'73#"''3265'3#'367'5#@• ;t7 %}  q ZR;H  Fÿèô~"7&'67&'7&''5'6556Í  + 2  ,a~H %U\ " h-' #1ÿîñ73#3#3#535#535#53&'y ]`TTgâgTT`] '' ÿîõ{ 73#53535#35#35#Ê+è*kkkkkk{zz*?> ÿèê,733'67##"''32655#'67#53&'767#&´& R  9 &B= Vf ‹  5 0- ÿçíŠ!73533#3#67&'7&''67#535#"NQQg{25 "IQH`Nm   ÿíí73533#3#535#3533#3#535#$QRRcØaQSXXdÚbSo;ÿéï 27'2'6'&''&'33##"''3255#53567#× Lm[NB  /  ¨#[b   ii        ÿéõ,7#5'67#53533#&73533#&'#5'67#S $)'' %)'  $6MN(0>&#$TN'0 ÿëö”(26:>B73673#&'#3267#"&55##5'67#3533&'#35#33535#335Fu8, D " .'2 *7:%10 22D0t22D0…D   F  '-ÿéóƒ733#3#3##'353#5#535#535#ŽNNGGRR}NPPHHNƒ%„˜&ÿèó‡*73533#3#535#73&'#'3533#7'75#133;†71” “0339=J;0y2  QB ÿèï„-?D[767#53&''67&''67#53&''67&'#53&''67&67#'67#53&''67&' Kb   i Lc   sb   ! 1 ˆ Lc   o          =        ÿïò#733#33#53537#535#35#35#35#v^`J"ã#@]^Iyyyyyyy kk 9  % & ÿé’Œ 73#53&'3#3##5##535#T4€5$kkkkkDDDŒ +  9 9!ï‰!7#535#53533#3#67&'7&''6[JeGGKKez6-BQH     ÿéÞ’$,048<7677'7''7#53#"''3267#'6#5##535#33535#35#+ &+   z`   # AŒ<Œ<>„  !   /. &WW .ÿéñ‰ #)-5973&'73#73533##"''32655#3#7&'3##5##535#60z‚:  :uddˆwddc;;;u  W R  7 9 ÿéí‹"&*5;73'73#3#3#3##5'65#5#35#'37&'#''6$  &.(())1h 8$$$$$S    Š   X #m  €…"  já– 7&'6'&'6'&'6Ð 9 = –     ÿéò#'->DJ73533##"''32655#'6553'#33#7&'3##"''3255#&'''6—4   4foMM>IIl  b[' "K  6  r] X0% &,C/ #   ÿèï'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335$¸S***S``__P((*Q??SA”??SA**>*B      ( $ B ÿçæŽ -37JP7#'6655367&''6673#"''3265''673#'367&''66''6æ± L   ! g  „  fF   "   Ž:1& "E      r h  Y)       ÿèã”#+/373&'73673#73&'735#336735#5##535#35#2.9ÇGY€€€€€„>    9R R ) ÿçç” $59=CIO767'7&''67'6767673#735##"''3255##535#35#&''4'''6X  %   )ffBB\  OOOOO(    ,  -*W  #l )  ÿéõË<@DHLPTXb73#3#3#3#&'#"''3255##5##5'67#5367#535#535#735#3353355#35#35#35#3533&'#Å0;;]‚1#  1.  ,A3!77/((:*(.AAA"ƒƒƒƒ -. EË+  ;   ##" ;   %   @ ÿéì“$(,IOU[73&'73#3#3#3##5'65#5#35#'7&'7&''67'67676&''4'''6 )$$$$*[ .9# $       “   _&&f) R ÿèó•'CMQU[agvz€7'67'677767&'7'#"''325'&''67'6776767&'73&'73#3#3#&'7&'''67'#5##53635#'&'à      u    C;;;; £À —  ? 97- , 6 Z   -+     8   ÿèôÊ '73#'3#5#53733##3533#3##5#535#w199d66…RSSiijjRÊIII    == ÿêôY7'67#'673&0B o/Y *!a9 A &     TïË %)733##3#5'67#5367#537#3353535#&¬zŒœ )?D0DW[_jttË+    @ ÿæõ^#)/73'67#&''67#'6'&'&''6€W '7 6  < B   8 ^ 0 &3      ÿéïW!7#'67#5367#535#53#3#3#&„S<R_NNQ¸SOPhS:G    ÿçôÒ%uy73673#3#3#535#535#53&'&''3'33#673265#"&''677&'#&'7#3#3#"''3267#7#5'67#535'635`-8]RRdÚbPP\@v >?A?   (   -4   3   %;&4" Ò      W            > ÿèôx773673#3#3#3#&'#'67#5367#535#535#53&'N =  5`RRhjfN:H#N;GSacQQ`6x          TÿéóÒ#'+/37_djp7#3#3'67#&'#'66553&'75##5#35#33533533265##3&''67&''67&567#''67&'ò'$qu# * <(D<       *   O   à *   C5 1#]  :      8 D 4ÿèò¥#Ko73673#3#3##5#535#535#53&'#53&'73673#3#3#'67#5347#5373673#3#3##5#535#535#53&'r%+E::KKII==C% # $!), !^ #%%$$#¥      n      (   ÿëêÆ)/573#"''3255'675#73#"''3255'675#&'7&'b + 4!Nqc + 5 NW  ƒ  Æ¿3[¿3[    ÿçóx 7&''6'63'67'6}47 8:-5 @5 + *<(N IDB;_x      #   ÿéêy#'+73&'73#3#3#3##5'65#5#35#D8LOEEEEQ£ %R?????y W ! ÿéðw".73#&''67#&''67#53&'3533##5#‚\-  N  '.^`heehw        S$$ ÿêòz*077#53&'#53&'73#3#3#&''67'7#5367367#67#bUB!UV! ?| ~1"$*#&@-35C8N(C<       J  ÿèó†#'+/37#5##53533#3#3##5#535#535#35#33535#335î¹MPPNNllhhLLM::L:†::L:†##CC" " uÿèõÐ 27#5'6733#535#'67#535#'673#3#&•&7 M0%   +  Ð¹Š +*-˜   "jÿéõÏ 5;A7&''63#"''3255'675#73#"''3255'675#&'7&'¬ $ .1 ;5 #8 M Ï! .ƒ & 2‚ ' 1    ÿèvÐ &273673#3#'67#537#735#35#&'33##5#53)%2:   % 4444+ º  O /-@   ))tÿëõÏ#'+1A73533#3#3##5#535#535#35#33535#335'&'333#"''75#   ""##  / Y# '*   »XX3:]Hf W ÿéóÐ;?73533673#'67#535#67###5'673#"''32765#35#$E8 A^7I 5+]ZEi4/N -n i  ::¼  \3 5  !P 1 " ÿèóÏ.3;?73533673#673#"''3267#5'67#535#67##5##535#'@E 7W+Q)1W†….6-bY@n@PPP¾  J4% f? ?%ÿîîV%73#&'3#3#535#535'67#67&'# ¾VVeÜcQQ$% *+-5D V      ÿéóÎ%735#53533#3#3#&'#5'67#535#*KVVVVMMdX$: 9%$7:#UaKˆ+.SS,(€ÿæìÈ 7#3#5##535#35#åQXD>>DDÈTi âB0«7 ÿéóÆ73#7#5'75#35#35#675#Ý&(LW+';hhhh9/hÆ„31!!V"[ÿêðw7#5'75#53#'35#35#5#î''®zffffffXP>3/zðÒ 7'67&''67&® .}1  ¤ !(  (  TæÈ $73#7#5'75#35#35#75#73#735#w (.%//////^RR,,ÈE M,- ?T2 ÿçôÉ5;A73#63#5'75#35#35#75#67&'#5'6'6'6p  $+"//////‰ &" =&!&]?  !/ / 1ÉB K +.     (BX  4ÿøÎq73#67#5'275#35#35#675#7“ 29 %FFFF'Fq?J ( , dæÐ"&73#3#&''67#537#'673#735#3C&/2 # % /6 gTT00Ð      K)iDõÊ 7&'''667&'7&''6Ê-  &*Ê0 0.+  cÿéöÎ:R7676767&'74''67'67676767'74''67'6736533533##5#'67#{    9    i#""$"š ." . "s ??9'xHáÎ 73#53635#7&'Ê i:5CCÎUU[2B  DƒÏ!73533#3#535#'6553'#37353..'d+3  c9Æ   O , \ôÏ )A7'67&''6'67&'#5'6333#33#"''67Á  ‘ N  ?   $a::!N   ¯  +    3&    ÿémÈ .73##5#535#35#35#35#35#53#3#67'675#^ D $$$$$$: ! ÈÏqM-.OÿèóÏ735333###5#535#535#33535,GNNKKeeG[:::²35OO"2"" ÿçóÏ'+17735333###5#535#535#335353'6573#'&'''6)KMMLLffK_999£%  >  ¾()qq(76.c\ $ ÿæõÏCGK735333##35#53353#5##535##5#3#5#'6753353#35#535#535#33535#QXXI4 !5ID3" 0CQQiiQcEEEÅ  7 $‰+$4 DD 4$ @"# 7  qòÐ,37&'73#'65535#73#&''67&''667#@'P;;mB      ,Â4 & (    ÿèïÑ $(73#3#5#53&'#"''3255##535#35#„`¨¤"gg  ~~~~~Ñ +Yq  /Š&6#ÿéÜÏ"(733#"''3255##5335#35#7'6'&'uO ŠO;ŠŠŠŠ†  Ï;  <«/Jw  'ÿéÝÉ!73#735##"''32655##55#351¢¢zz˜  Ž¢ŽŽÉE@u +Œ( ÿéçÏ%)-73#'66553&'#3#"''3255##535#35#‰S° Yažž  yyyyyÏ 8$>0 -V #"n  +†%7pëÑ73#67&'7&''67#53&'†Z~37JSBfÑ       ÿéñÓ6:>7&''67&'763673#3#"''3255##5'67#35#35#Ä ))40 "*,)&šR w†~  z !"A>zzzzÓ     > d  '^!22kÿêôÌ 7&'''63533##5#Ä!5885Ì6 9 8 #J..XXléÏ73#'3#73&''67&'767#K-Y`  !   IÏa[SS    aÿêòÏ"(735337&'#"''32765#'6655#'6o%.    $  ¥**;!N hJKA= % sïÏ #73#5'675#5373673267#"&5\%("FF." #(  !ÏY      ÿê–x!.7#"''3255#&''67##5353&''6–  %   #:  li  T   q 6   `ÿö­Ï!7#535#53533#3#67&'7&''6x  S5##5. % (ÿèô®.2673##53#367&'#7'#"''3255##535#35#A–– #½H H*'   ooooo®  +   S  !h ' gÿéôÐ0487'673&''67&767#"''3255##535#35#ˆ A  &'     AAAAA“ $     I`  &u /[ÿéöÅ '17'66553'#3367&'#"''325'3'67# zTT"    .' „#C5 !/$^A/"  &&0  Y 9.9ÿèï® %GT7#5'673533##"''3255#&'#"''3255#&''67##5365&''6e  M M  a   ;   2L .® ;,     /R  =  Wg )   \ÿéôÐ17=CG73673#3#&'3#"''3267#737#'67#537#3&'7'6'&'3#k)9@P#    Y)A  !'<  M  UU¦   3 &! V ¨dÿé÷Ï"BG73533##5'67#&'&''6367&'#"''3255'67'&'o377 (W ! "! -   # º-    *      Sÿí³Ï'73533#3#535#3#735#7677'7&'Z  H HH!! *3¹9;3 fÿèóÐ 6>B73#53&'3673#5#3#"''3255##5##535##53&'#5##535#­8‚6 #-7  $.'%`GGGÐ %    ''"2nI J,dÿéôÏ+8D73533533##5##5#3&'73#&''67&''63533##5#d--83 J  X=??=½#      %   ,,,ôÐ,0473673#3#3#535#'67##"''3255##55#35Œ;BB!'X   `   .@..½   CN   a 2ÿéì±"&*5EIM73'73#3#3#3##5'65#5#5#'#5'6#"''3255##535#35#z44++++1k 5(((((- — vvvvv°   .  O C+OJ ^ " TÿëõÇ$59=73#"''3255##535335#35#'&'333#"''675#3#735#ã   C # .6  $,, 64 R++ÇJ_ KdsJ%%;;1Il^7  P‰Ì !%+17'6553'#33533533#3#535#35#&'''6-fDD? [    ¥ ,+*'       _ÿì¨Î'73533#3#535#3#735#7677'7&'b?CC 'º9<6 QÿêöÏLPTX73533533##5##5##673265#"''7#53#3#367&'#'6553533&'735#35#5#W%($$(%•!   8@K ]  ^  ¿ +1"" * u. #?8A!?@  D23\ÿéóÏ !:>BFL7#5##53&'73533533##5##5#3#3267#"&55#'67#735#35#35#&'êb9Fr#  + %KKKKKKK   ½ % Y   ' ? " #   ÿéõ!%)-1EIOfl73#735#3#3#&'#5'67#535#735#33535#335'#"''3255#'65535#35#7'65533267#"&554',¤¤}}@     #  9    ‰<  +&6    " `  )),'$* **[ TRÿéùÏ^bfj73533533##5##5#33534'33&'73#673265#"''7#53#3#37&'#'67#'65#535#35#35#5#Z!'**'! O    32 ?   >  ¿ #) ,4(  y0 +=@6( '%. ' 59 GïÐ $(X\`dj73&'73#3#3#3#5'6353535'3533533##3#3#3#'67#5365#535#535#5#5#35#335&'Ÿ !#b  ¬*))--8>!  %0))''P* ' Ð  D  Z      #6 ÿôêÅ 73#53#3#'#33535[ËÈYKJGGG’’HÑ(U}(//B..ÿòôà #'+/73#535#535#335#3357#3#3#55#35#5#aa2::”) (m1>>ÃÑ/S***KQ**²@(9')4)'PK?0 -%;0I81 ©ƒ3I$wÿéñ”73#735##5##535#7#5##535#‹WW11i”:8bbC2bbC2 ÿéöÈ #'+/DHP73#535#535#335#3357#3#3#55#35#5#3673#&'#'67#3#'3'66`c#233„"%d+33†Qm8' / , ; );‡G  Èl,L,l -!   88  ÿèóV73673&'73#&'#'67# `/  +[@JN =U5   0+ ÿéó^ '7'67##7&''6'&''6u b-*G  o   ? YR        ÿíòÐ?F73533#3#535#3#735##5##53#&'3#3#535#535#'67#&'#6 iiiU¾Vi¬¬††³¸¨ RRgßePP$%%‰ 1EÇ   & !''        ÿéóÏ%73#35335#535#53#&''67#56\00AC332FT G MO PO#Æ !{v$x0..'qÿèât735#535#53#5##56732œCCBVœ0#)D'""  |  SáÌ73#35#535#53#56m!)BBœFFBVÄ/ÌrmÿéëÏ*06<B73#35#535#53#3#"''32765#'67#56&''&''&'''6n!99‰BBDVz •  &&Z      ÏfG )b’   ÿééÏ26:>B73#35#535#53#563#3#"''3267#'67#5367#735#33535#335o !*CCFFBUÂ//ÂYd  VL ;LZUDDWCšDDWCÏ    OHRH & # + (  ÿéòÐBHN735#'67#5373#3533#3#35#535#535#533#535673#3#35#'67&'Y#"  ( C####"5å""""M#, (m$ ""g  !…    8     ÿèòÏ17=73#3#35335#533#335#535#535#533#5356'67&'H!!!!0*00+4%%%%$7å +(h+% ((Í ::GSW"“‡¥    'ÿéØL73533#3##5#535#C344NNOO3=## ÿéë¬"&*D73#3#3#3#5'673&'5#5#353#35#535#53#5##56‚ STLLLLZ 6 BDDD !*EE—??DW—0¬   2#!   NJ ÿîòÏ)-159AEIM73#3#35335#535#535#533#5##535635#3#3#735#3#53535#35#35#E &W& !2 ³ 055**** P*æ+kkkkkkÏ  ]][&&SYP # >RR & '  ÿéóÏ3J7'23#5##536'&''&'3'67#&''673533#3##5#'735#à TxdK ,µ—:  .  5a P ( "V1&&+*4$1Ï(*    6[ ?   +++'+ÿéîÐAEQ]dh736733#3#5#&'3#3##5#'7#535'67##53&'67#537#3353&'67#3&'67#&'#635#)9Y ! WW^^S b )/ 0D2GQn< 6 ;9 4 1 &JC9  +   + I  % : ÿéóÐ $(,0D[73#3#3#535#535'635#35#35#5##5##5#3'67#&''673533#3##5#'735#@  !!Ä##  p/,w 4` N ) #U1&&+*4#1Ð  &? G-   ""d‹óÑ 73#&'#'673#&'#'6}$ J'  Ñ     ÿéêÐ!73353#'67#53373353353##5#:')$$J*(Їex. &xeee‡‡exKK ÿéó{76767&''67&'@- %#8 9+*B >&,w8!<     ; ÿéó7327#"&''7&537&'éi / :\['c ($30*  !!8   ÿêòÏ#735#535#53533533533#3#3##5# i],8888,]hhi4) \ll\*77*ÿéâ‡73#3#"''3267#735#,¨“£¢”‡</ =ÿóò73533#3#535#VXXiägVT--::#ÿíî73#3267#"&5535##®“:B HD“›J0 " D'ÿòîŒ73#3#5#53&'„ ]¤›¯!dŒUh  ÿéò‚73567#533##"''3255# nx•"ff    n< - )ÿéíÏ573353353##5#3353353##5#'3353#'67#53365)9>RM_()K+ & $É&,,)<%>LL=P11^3 >Q& P= ÿéðŽ73533#3#&''67#53655#'NQRdXE IQ HU[Nw  &41# ÿêó‘$733#353#3267#"&55#5335#53v\\:N "  .)O;]]‘;(:   ":(; ÿéòƒ#7367#53#3#3267#"&55#'67#WL½]oS  ) M BQR9  ?B3 ÿéò 73#'63#3327#"&'#7§° ““¨”  ((-#/ÿêò”$)733#"&55#'665#53&''67&67#¶). P¡ $7@-,9 5$0 _”$    ^     ÿéô˜73#&''67&'#53&'67„ ], ((>B./7 9' %m(% ˜&!    , -%"ÿêï‰ 73'67#'6'6767&E…  v  FJ2X M‰   1&" 0 ÿéò 7'67#73#3#/ ) 4‚‚¢¢@ ).t\ ÿéîƒ73##5'67#&'ÚW$9N&l”##ƒwb""- ÿêòƒ373327267##"&5'#"''3255'67567#536•  $   Tkƒw  F0 'ÿéáš73#5#'6553&'#3„PR\šO(! #+6 ," ÿéì&733'67##"''32655#53&'767#%»+$O  J iq ” 7 3  "ÿéò“%767'5673#3265#"&''3&'4* ]T ''TO % / SN$::  ‡!!+&1ÿéõŒ !7'67&'3#"''32765#'67#W4 0h'(&(a• C D = (Œ $(.J #>1 ÿéâ•#7#"''3255#&''67##53653â  H! - 2?Uzx  a -‘   ÿïó~ #7&'7&'''67332667#"&5~  _” 0   % ~ *0 /+;' /(X!  ÿéô–"735#53533#3&''67&'#367&QggccG$%4=,.D<% #!%S! !ÿèó‘ %7#5'673673265#"&55'67S  /E(!/$ / ‘xb %(: !5  0  ÿèæ…!73#"''32765#'67#'67#'6K  JH"@< $…d&BD3.91% 'ÿéò›7365#535333#&''67#75#cMML]?H"M A\³8F<'89 +) ÿóòƒ733#3#53533yQQeæ/*ƒ(BZZ ÿéó‚73#3#67&'7&''67#!¹¹æ|7@ ! QR)R‚, ! $ ÿèë73##5#'6556Í CY­=\"_ ZZ,'!$FÿééÒ)S73#"''32765#353#'67#53365#'63#"''32765#353#'67#533655#'6H  N!<: &*  " ™  P&=F 3*#2 Ò I ))  %YJ +( ( ÿèñ"73#3##"''32655'67#'735#Ð-66 2QK+fp.9 2,&. ÿêó{ 73&''65'3&''65¡+&1 @_ $6{3.'$,3" ) ': ÿêó˜ 7&'#53##7&'z  _æs5! ˜ 4oaÿéé™%73533#3#3#"''3267##5#535#535#W[[SSb  NWWHHW„/ AA ÿéì‡ "7#'65536733#"''3267#'67#ì´'/V  E+ & +‡9.$ $,B6 F"+8,ÿêï '7#'6655#3267#"&553#"''326è« ŽH '.  85o  ;1$ $E:L a3ÿéò†#7#5##53'665332767#"&5Ìu?073)  ( †m[Zl25 +*'.  ÿéò“7'63533#&&'#67'5#¼!- +‘8šcB )0$ 8“ (==6&%?  J ÿìò )7&''6#3267#"&553#"''326v4: 87!C LQX"@ J/€  "%$0; R,ÿõì† 73#5##53&'3#‚]°dZØØ† ;)*< w ÿéôˆ!'736733#"''32765#'67#&'''6OE6U NK¿  ¢ n  B1 AZJ    ÿëó—173'67#&''67#3267#"&553#"''326;7_ O ' "£4(% \   — k%O   ( l E ÿéó› $(,73##"''3255##5#53535335#33535#335Ø  ‹PP<8.ÿéò'767&'7&''6'3#3#"''3267#735#¬# ** {O8D  H5;_& ', 8R;7 9 ÿéó™#73#&'#'67#5353533655#335Ò [B HJ BXKK38K9};$4*;;  )ÿéë73#3#3##5#'6J–xhhqq(*|  ÿéô  &,73&''67&''6767#&'&'jT+4 ?2 : 0# 6 M3- 00NE JI      E     ÿéó–"73533#3#&''67#5365#'6=+PPg^H KQ IV^4  '2.#  ÿìó˜  &7'67&'3#"''32657&'''6~-9 @5/8 6; Dj z#- V A & (* ÿæð‹733##5##5#53533#335#²**g%%gggggg‹w v"4! ÿéóŽ73#3##5#535#&'7'6ÆYhhiiX   ” ŽB==B    ÿéó˜ &,2736733#3##"''327#67#767#7&'67#7&' ©  ˜¶' ]‚+# !X!""-( Y(   ÿéñ %7#5'673533##"''3255#&'E  !1^##  ^$   x[ W  R   ÿéó”!7&'67&'7''5#'6556Ó  ( .    !c”Y(.ew &  …+4+&*=ÿéâ7335#53353353#5#353#5#GP=;;F´65C=+99+EC5M ÿéó›17&'#673267#"&''67&'#'6553&'3Ä 4R     ) '$ M \›   +312 ÿæä•%)736533#"''32765#'667#7#5##535#%- #Ö...y  g K571/””mZ ÿêó—&,7&'3673#3&''67&''67#67#ÅŸF‡Œp.."&3- # 6@‚ U!—       "'/J ÿéó‚)733#67'7537736732667#"&5L!!2?A& .   ‚*3d_u1 4!  ÿéó™73533#3#&'#5'67#535#]__[N$8 8&#9 7#KZ]…(-LM*&SÿóîŒ73533#3#535#SCDD=Ž=C\00CC ÿëñÏ&*.73#5#53733##'673#"''326653#735#UFF@HHR!—  vvPPÏ7 #Y5 :5G# ÿñó•7'67#53&3#3#535#—4Qs.‹§ %" *—±PeÞeM\, ''ÿéìŒ2736533&'73#673267#"&55'675#'67#CC  *S    " !8 2@n 3 &)   @O$ Bÿèäž!'+7#3#"''3267#53673#"''326'&'3#¬e ›,M   >  Iššv78%W  (  Fÿéòa7#53327#"&'#3##5#53X%‹ >11AAN6-&*9 22 ÿéó£)77&'3&533#67327#"''67&'#3533#'67#È  ¥tRR " % u/+,2 )-£   . %  ' 6.$$*ÿéëŽ!767'56737#"''3255##5-#"0 -) &(Gw  9?)  x  Ip  XŒŸÿéî#+73#3#5##535#35#35#"&55#'67#5#32ÜI=Ÿ=I\$$>Ÿ$* "+Ÿ*z zv Hÿéò73533#&'#5'67#RBH=' && -8l##03a[."- ÿ鋊73#3'67#&''67#t79C@/  #)Š I<  & ÿéó–!73#735#3525#53#3#&''67#/¢¢}}3fN²QjZ=G!W O^–5Z #  ÿîï›73533#3#535#3533#3#535#$RQQbØbRUVVeÞeU‚Fÿéë‘!73533#67&'7&''675#735#335+KII SY00K77K5sD#  $ ÿéó™$*73'67#'6'&'3&''66''6y` R ?t!0 .=,!S™   ' 0,)+ (!" ÿéí‘73#'66556#5##535#Û Ha±±  nFfff‘0( (1+OR S5#Zÿðñ‘73#3#5#53&'®6ni}K‘\o ÿéóœ$73533#3#&'#5'67#535#'6</RReW%6 9%#8 8#Wd: –!")JG% !  ÿéò“97&''67'67676767'7''67'67676767&'f ',  $ … (,!! %' '1,E  '1, E ÿçã’%)7373&''67&'67#67#7#5##535##3   $ "¥///y<"    / (3” ”vdÿéòœ07#53&'73#67&'7&'3267#"&55'67'6_Kg[u03 $#&% A : .#t    8 <<.ÿéëÏ%;K733653353#'67#73353353##5#33653353#'67#73353353##5#/   n*)n1   n*)¾0 7& 0B  B1BB1C,0 6% 0B B0;;0B"" ÿéóŠ&,73265#"&55#'6553#7'675#&'Ò5dW# &1 !  Š #& s3!*;;K P ÿé Ï)-73533533##5##5#3#3##5#'67#535#35#!&!!&!} $" "$/##¶#'MM/%'''fÿéóˆ73#3##"''3255#pyy &  TˆF  Cÿéî 73#3#"''3255##5##5##537#Þe h  .,)Pb"Y  BSSSS\o"ÿèð¡ &-7#5##53&'7373#&''67&'7#367é®b€J ‚0 '# 2*= :?U  ˆ**  6   $ ÿéó—*73#&''67&''667#'3#5'5367Q"$ " 2F —0 &&(ª? cZ Kÿïï73#3#535#535'2Ý #IID—AIIC.55, ÿéò 073673##5'67#33##"''3255#53567#I|‡ .>[l@@  II PŒ dS ! $ !  ÿéö¡(,73#3#5#53&'3'66733267#"&5'3#„_­ž±h5 ! s   7¡ 1Z)  8  :N ÿéï™!%73673#3##5#'67#535#53&'5#I7  .0;;B9 /8=22 i>™&AA(& R&& ÿêí˜4O736733#"''3265#'67#36533#"''32765#'67#734733#"''32665#'67#!Jb  VF<A '-  (%t!1   "'Œ(' = <  " = "ÿéò˜%+73533#3#&'#'67#53655#&'7'6&PRSjVGJK @Q[P" ˆ ‚(,     ÿèó˜$(7367'273#&'#'67#3'6673#R!%RQ #*nB2 AD7D=!Nb   # HÿéíŸ '73#5##53&'3#3##"''32655#535#^³c> Daa  ggIŸ &&8# ÿèç*.37#"''32654'7##5#"''3255#'65535#35#o   *É B????(,’¤ $!<<,E ÿìï‰ &?67'67'6773#3#535#'6/# '0 8, +/ /062x*0("ÿé÷— &7&''6'#5##535#&'3'67#ª# " % 26‚ -|C 8c—  ~ „_M(3 !ÿèð¡/73533#3#5##535#3567#533##"''3255#_]]a°a_gr–#ee  g ++ \   ÿêæ—-373#"''3267'6765#'63533#67'75#7&'‰Q  )16-H o&/ ‰  — h-  //5 ;    ÿèó¡#(.47&'#3##"''3255#535#5'63&''67&'}29 *TT  QQ. JW#"€¡   0  -  M ÿçó¤49767'7&''6&'''673&''67&''667p*. IJ1M(! #'I#"= Z!24'/> 9( 6¤           ÿñï… %73#3#535#&''67&''6!¾UeßfU  ~   …pp /   ÿèò¤@7&'3#3533#"''3255##5##5'67#5367'67&'76Ê  ") ‡‘ .P  <3 )9F#.($¤   2  >>76  Nÿñô– 73#53&'3#536'&'£;‘@78¦XD  –  /3%0(")*"ÿèïœ&*.2673533&'73#3#"''3255##5##535#35#33535#335d: eQ  >=Pd'==Q>==Q>‡ e  %%&}46Jÿèõ‘$)733#"&55#'6653&''67&'#367È# 1  ‹- *#. ) # ‘&  M      ÿè’73#&'#5'67#535'6‚ 11  (469’KJ%ÿçñ‘#73#5#'67#535#5333533#3#535#TB:'3883s-3‘¨A' "6$//KKTÿêî‘73#3#3##5#'6yhVNNOO ‘,~ Rÿêõ’ 73#7&'''6'6š9 Kc'[ \’m_$ %) !" 6Zÿèñ 73#7&'''6'6¡6  D `$c ZfX $ :Eÿèô“ 7#5#'67##535333267#"&5å+Q H(<   v/L1+A/-B  ÿèà‹73#735##53#=#/  zzÀ˜‹?€UU ÿéäŽ7#5##535#357'67&'35#ä¡‘"¡#D %88Ž¥ ¤Q9xx97 c(ÿéô!73533#&'#5'67##5##535#[\Q ?A!$8 4!Gµ|||Š!  &18'BMM3! ÿéô #'+73533#3#3##5#535#535#35#33535#335dccVVjjkkTTd#AAUB—AAUB OO +- ÿéó %73#53&'3673#3##5#535#53&'€WË^5Di[[[[iB  /  **  ÿéò™ %*.733##3#5##5'67#537#5367#3353535#!®##t€  $2 HN@SKPWv€€™## F3  # a ÿéó•373#3#5335'2'3333#"''67&'767#'7#á 11:~=J$QJCU    +&0•'L:V0   #"ÿéô’473#3#535#535'667#'7#5333#"''67&'Ø 770q.66(>… *%4M%MHAQ  ’!!!O  *   ÿçô“)-73#&''67&''667#'#5'673#‘P$ (   1Z  $“.  %2}Y + kÿñíž+73533#3#535#7&''67&''6!TQQdÜdT '|  #2lls !&  ÿçõ /73#5##53&'3#3#3276767#"&55#'67#`±^7——ÔC 3 'J AA ++2) .:  * ÿéò§ #'7&''67&'33#5##5367#35#05 35.9 A49Š )‚f r ‚‚§ &%   F G F ÿèñŸ67'67#535'273#&'##533#"''3267#7#'67#4 /$Pe#(SS "(gM", 8$% 1 5 : A ;#>     ' 3%DñŸ73&'73#3#5#eg¯œ¯ ‡   2ÿêñ”$*.73#3#5##5365#33535#"&55#'67#333535#áPA >K^!_ . $''r(   ” ƒ ](Ufÿïñ 733#537#537#33737#um ‹1+;.,Ž8222|8*ÿéÕ¡"(733#"''3255##5335#35#7'6'&'vK  ƒK7ƒƒƒƒ…{¡1o  .‡$8d    )ÿéò "&73#67&'#7'53&'3535|GD S!74$ G-~~~  [  51  —$ ÿèó™'-37'233##"''3255#53567#536'&''&'Ô Mo\I $``  qq‡‚ 9+™        ÿçô˜FL73&'33#673267#"&''67&'#67#"''3255'75#535'67&'{ ,?DB    ) ' B  1335u˜  !      ÿéó˜ 73#3#&''67#5367#735#35#)¬Nm[H SUHW`J‡‡‡‡˜X $# 44ÿçé’ -73#735#33535#335373#"''3267#'67# ÀÀBBVB˜BBVB¸`b "R2( DX’R102 -  Iÿé÷73533#&'#5'67#Y<B8) )' ,2n""55c]-".ÿèð .73'67#'63533#7'75#7&''66‚V  G f %-#Š/ -1'  # ++6 9+'"*ÿëö™"(:73#3533#3##5#535#'67#536'&'333#"'&'75#‡OY 22<<EE7 (Z  1 %>' …H6  <#%  H $$=  eÿçñ‰736533#&''67#7&'i1?7 1*.00d  b7 00! :9 ÿñëŠ!7#5##535#535#53#3#3&'73#ë­_HHEŸGII" (ÓŠ,,‡""  ÿèëœ(.27#5##5#3#"''3267#53673#"''32'&'3#ë­žkœ œ/P  <  Q¡¡œ,,>+4 L  # <ÿéô—<B767767'67'673#5#3267#"&55#5335#53533#3'6+ #* ‘ ! 05588c(03^*% @ # *5$66   ÿ阘$*73533#3##'2655##5'675##535#&';994   * 4;^ ˆ( n7,=Q   ÿåóŸ #@73#5##53&'3'67#&''67#3267#"&553#"''326„\¯a17 [ K*   £6" -# \  Ÿ &) (V"=   D Z.ÿèî¤(,073533#3#3#535#535##"''3255##535#35#\^^VVeÜcTT\À  ˆˆˆˆˆ˜     >N b ' ÿìm• 73#5##53635#35#<&/////• ‡ ‹A X'dÿîôŽ 73#53#3'35w}ŠwllY E3!! ÿéó“0573#7#5'75#35#35#675#7#53&''67&67#ä~&+%.....Z d  ! 0“_#k=C&3   ÿãï/573533#3#5##535#35#'3673&''67&'67#367v155+=&1==ƒ(   . u [[ U#=7      $aÿñò‘ 73&'73#3#536'&'k37` .‘M7z  1%/*&(*%ÿëô–4735#533#67&'#"''32655'675#&'#535#2ƒ‰œ#`  # :%   +49-4 ¡ƒsC     ÿéó’#'73533#3#&'#5'67#535#'##535#n166>1 $ %.:12{'-JF%$o…]K"ÿçó— .73#735#35#33#67'73267#"&5536#²²‹‹‹‹DD$!, º #, " .&—O/+'" L   Aÿèó˜!%+7&'73##"''32655#&'3#75#''6'4¦!   r0HPP=*3 ˜  w r  ? &$"ÿéᜠ%)-157&'67&'6'&'6#5##535#33535#35#…   U  ˆ  ´™CCVC™CCVCCœ   6h h$:ÿéò';?C7#"''3267#3&''67&'767##5##"''3255#'65535#35#ã   A[      F   *****(/&     P£‡ )-W*Bkÿèë’ 7#5##535335#33535#35#ëX66""6"X""6""u‹ 6$$$\'''ÿél˜73533#7&'#5'67#%!!    #{ cQ!,ÿîôŸ&*.2673#3#3#3#535#535#535#535'25##5#35#335Ö '/a'00(b[ÉZc+//(`%*Z6'&&&:'ŸF+ÿèð› -7'2'6'&''&'3533#&'#5'67#Ù Nr^H =  .  ddW$5 7$!7 3!S›       , &@C& ÿèô•#DL73533#7#"''3255'75#7&'3673#3&''67&''67#67#"   $"¶  JTXM$"  + #:r##.  &"2  )    #9. rÿíé—73#"''32765#'67#'6–G   73  — ` FB0,7!ÿçõŸ#4:7#5'6733#'6'367##3535#33267#"&57&'vI )]4S a X.U R 6::>>   %!, .5 A2f 6%  +  Aÿêô˜$(-7533'67#3&''67&'#'665535#67›=  &4"$"  "&&„  %    ,$ "@2 1ÿêê–#)37367&'#"''3255'6757#&''3353#5#2$ $&   % ..w !­Á–      (  ^^y ÿëô›)-M73#"''3265#3#3267#"&55'6#3'3533#67#"''3255'675# ^ U B8 #,  5/1&&”  ›J4 :! U *B!!$/  %)ÿçõ +27#3#3#535#35#5#73&''67&&'#3267|!!! f AA [f       ;! 2 LM!!Œ L   '.,ÿèó¢;AGM7'67#5367#53673#3#&'#"''3255#3267#"&57&'#7'6'&'< 5GEOgp…2   Y .9  C;| H s  ~  ,      (< g   ÿèò”,73533#7&'#5'67#73##5#'66556(%%     %Æ $0b#,  8x `T +, !YY&$ (1* ÿèð¦05;7#'6553&'73#3267#"&'#67'5#56&'&'ð´ QA 72  ? H7<  +83 *5<    '$ + [+ / ÿæó¤ 2873#53&'3673#53&'3673#&''67&'7#367‚YÉZ 8 9Ú93H†7! ,&F '/=T ¤ "  4       ÿèó§ !%73#53&'3673#53&'#5##535#„UÅZ >Aæ<’{{{§  &  >O O1ÿèí¥ !%73#5##53&'3#3#5##5'67#35#…S Z\Ùy ‡y 0G=yy¥ ((:M > N ÿîñ#'+73#3#3#3#3#535#535#535#535#35#335ÖaRRZZQQgáfPPZZRRa"??S?2  20KÿèæŽ 73#"''32765#'67##5##535#\Š   </ ) #ŠcccŽ3 3 $EN O4"ÿçð–#'+/73#3#3#3##5#535#535#535#5##5#35#335Í##WffggV"",---A,–&&) ÿéò•#A7&'67&'7&''5'66556#"''3255'67567#53Ý  !   BU  ?X•Y-1bu  €2+ '2*=6 -  ÿèô¦3:73533#3#535#'67&''3&''67&''667# VSScÝfV. ' s&$ $%.T : >**; 2# 6M–#          ÿñó¤*/7&'#3#3673#53&'735#535#5'63&'37 2MM-Þ4  NN6 @g(¤  *   * ÿí÷¦*48<@D73673#'#3256767#"&55#5'67#3533&'#35#33535#335K v?0J #11H 0:6+. 044F8~44F8‘  =   > ,/ÿéã—/7#"''3255##53673#53&'3#3#5#53&'ã  ¢E   "57`Yk;—•  ~œ®   % &ÿéô¨&:7373#3#3#&'#'67#5367#537#3533#3##5#535#Uagdmˆ5%0K' .@ 7AO..,,OOOO.˜  % Qÿèô” +177&''6'3#3#"''32767#'655#53&'&'&'¬  %Q#<3    +t   ”  & M $3! "0 >  #Jÿïñ† 73#53535#35#35#×§IIIIII†……,HH ÿçå§%)-7'66553&'73'#3#"''3255##535#35#6 WTœœ rrrrra4' %G  /U  "j )  ÿéö,73533#&'#5'67#73533#&'#5'67#/%%  !-m)2(  &rYQ#,/.dX+6 ÿéô–.4:733#3##"''3255#5373&''67&'767#&'''6?**40  2/F^& *  H  = –B  =.<&! #6   ÿçï™%+73533533#3#535#35#35#35#'67&'h)Ý'0hhhhhh !('b%# $%ˆQQ10&   ÿèç¤373#"''32765#'63#3#353#5335#535#'67 §  Ÿ ^6KK#€&MM# ¤y, _ !&&! ÿéñ¥#(-73#3533##5#532677#5335#335367#335w X_ /OO% @J7AAU>“:@TD¥Y ## Y#5 ÿéð'7#3#3#3#67&'#67'5#535Öˆˆ‰‰¦d  $ V-!* "   44 @Z ÿêö.2773267#"&553'#37#3'#"''3255#'65535#35#Š(  3,sC/p  % ""#"8/  ŠWE333D‰  ! *4:)@  ÿéó•$173533#&'#5'675#&''67&''6[]]+? ;$*3 A(["  †2,&@?(*2  '   ÿèã‘%)-7#"''3255#'65535#35#'#5##535#35#ã DAABA(*****‘  ! (/H.IOƒ Œ5#T!Pÿèð’73#3##5#535#'6'&'\ˆ;GGEE9t Y  ’M99M   ÿèàœ)73'67#'63#35#535#53#5##56iY R<" ==”??BU”)œ   rj ÿéõ¨48<73533#33##3#33#"&''675#535#535#535#3535\^^MMTT-#EA  %LLggKK\p:::š    .    ÿèñ›$(,73&'73#3#3#3##5'65#5#5#F7JPFFFFX®  (Q?CCCC–   e '(( ÿçô«<73'73#&'''6767&'7&'3267#"&55'67'6 h içŸ" V"!=&+   ) ? 7 +•  &   0  42% ÿéó–!%73#3##5#'67#535#735#35#35#5#)°'AA=0 &?B&ŠŠŠŠŠŠc<–d&& G ' & +ÿèï”*733#3#5##5335#'##'2655##5##5353 ;;/; ;; $”%_ _C1E` KgxÿèÜ’ $7&''67#53#3'67'#;5#35#R   -4·m l&ˆ {" ##%%m$$/   ?? 5 &R ÿéé–0497#"''3255#'65535#35#7#"''3255#'65535#35#y  31111´  31111–‘$A@.I J‘$@@.I Iÿëö¤)-73#"''32765#3#3267#"&55'635#qe  Y C; * 5.))¤Y 9<)  Z !:ÿèë˜ 7#5##53#735##5##535#ë­"‘‘kk‘‘‘‘˜,,"86G G)ÿçë“28>7#5##5&'#"''3255#'67'6767767&'&'''6믧   )*(("&#38I& ! O $ “,,9 '  !    %  3   ÿæñ£'+177333###5#535#535#5335#35#3'6673#''67&'qUUPPbbPPBBBB^   tV £  ]] 1&(!  !SK ÿèëŸ$(,04973#3#"''3255#&''275##535#735#33535#335#67+ªLb   5CJ^J77K8ƒ77K8ŸP D  /  IZ /.=ÿçå™.26<73#3#"''3255#&''275##535#535'235#33567'7Ø (0JJ[   />FYIIR]<77K88 ™ 0=  (  AQ0 :=ÿç‘‘ 73#735#35#35#'67&'llGGGGGG @‘}Y56(     ÿèæ›"&73#"''3255##53535#335#3#735#Ì  ©^&rLL::nnJJ›CX  A^pCC2"06ÿꘔ"(733#"''3255##5335#35#7'6'&'L/   M0MMMMW T  ”0c  'z!1_    ÿèôœ(73#3655335#535#53#&''67#56\00=F001EPFIQ GJ#•AAd ).  #`Nÿéö›%)73&''67&''667##5##535#‚M! ( + & $  ?XLLL›     EJ J. ÿék–7#"''3255#'65535#35#k  )))))–– &)0]0K ÿìõ“  -7&''673#53535#35#35#'&''68 &®•CCCCCCO (“   &’’2 OO,  ":æ©7&''6767&'3#735#¬" MX+14 rªª††£  -1 ÿéì 37;73#"''32765#3#5'635#'#"''3255#'65535#35#ŒV JBC) #####  r* [ IG Y'H“ ')/[,Gÿçô¦:AY`73673#&''67'67#67#3673#&''67&'67#67#'3&''67'67#53667#D|.  -,< 0 / 6tE(E  $  9'u2  ! $ –    >       8  5  0ó¡ 7'67&'3#"''3267#'67#b$6 /Z)3 0.N‡  2= 1'¡   + ( ÿêó–$*<73533##"''3255#'3533#3#535#&'3533#67'75#‡? ?l'((/q/'„  w+**3@1+o''Y  U#   ÿêñ”'-397676767'7''67'6773#3#535#&'#'674'- #  %, ?m08z/*=  2f +  llP  ÿèöš 57#5'6733#535#3#3#&''67#53565#'6=  #*¬nnANB-4? 7>E% šƒg $#"&     ÿéô¨ 673#5##53&'&'''63673&'73#&'#'67#| _´c*. ,. + -8a- %U@ J1% @W¨ (($    *   - !ÿèð›#(-173533673#3#5##5'67537#535#67#5#5#2=) C\Xn(`_=[ #=gnn‹  ` E  D"ÿçé ,0473#3#"''3265#&''67#33#5'67#735#35#*¯w ’ B   % : h{ % ŠŠŠŠ M D-   #/.+ ÿéé™'1;I73533#"''32765#'65#'3#&'67&'67&'63#67'75#‡2  +&www   0   1   Vv51=2/{g K\$ R,   6 ÿèó’073#7#5'75#35#35#75#'3#3'2667#735#mb$::::::‚Q3@ '"A 2>’d lAAd<## < ÿêê©4:?CGKO73#"''32765#3#3#"''3255##5##535#5'6&'7##5#35#33535#3357§ ? I@   -(;Bs + ((;-h((;-©  h X  ##$l    9+ ÿïô¡&*.27&'3#535'67#53673&'#&'35#35#35# 9 æ <IRi0  %%8""4''x) 32! A.   6$$$$$ ÿêï›,H73533#3#5##535#3533#"''32665#'67##"''3255'7567#535557\75„1  6 1,    8; =WŽ   n!=(Z$ Q?  ÿìñ£ +/373#5##5335#35#7#5#327267##"&55353350#&&&&&»H  + £ ––8&b+Vh 3 •7777 ÿçó<736533533##5#'67# C<???7+?* //+ ÿçõ¢!'?F767'7''67#'6'#5'6&'3&''67&''667#†$% ", % 1  #ƒ!&K% .% ,$ %)@¢  # ‚i"       ÿæõžFK7#67327#"''67&'#37#53#3&''67'67#'66553533&'767ï<    k \+4   % } €  ‡- + ,-4   ) "B V Fì› 73#3#535#5#35#335335×F:À:E(8&&8(&›66%(ö273'67#&''67#3267#"&553#"''325@8RI1 ¤1!,% V 5*  4 H' ÿé÷› &C7#5##53533##"''3255#'3#&''3#3267#"&55#'675#í´m=  =^QQs  qk!5 =1(#›$$50  + 1  7/( Jö•$*7'66533267#"&55'3#67'675#&'Ž T ªT!(.!† …+ . " !   ÿêó§-5?E7&'#673267#"''67&'#'655353#5##53'>&'Î  ,6      p‚ 0!6  § + '2  *5:/% &,B"L=?N0  ÿèð›,067#5##53#3#5##5365#5#35#"&55#'67#3#7335ð¹²5:•<9j<•' !% &iiX!›$$ rs  [)   -<  ÿèö› $7JO73#3#"''3267#'655635#35#733#"&55#'667#53&&''67&67#q ",GHJ9 5#5555«     e  $ 2› E *  Y/5 % A#  ^   gÿéô›$*73533#3#535#3533##"''3255#&'n444?;4[   [  =-  *  Zÿè÷ !%73#67&'#67'53&'3535œ46  I 5WWW  U   09  ˜!!ÿèî§!%I73&''67&'7#53667#73#735#3#3##"''3255#535#535'28;  #  ,IXX33. !)RR`` jj[[%)T§   - %>2     yÿèó”7'67#535#535333#&'35± $'!!-2 (' #(:g ( ÿéõ)/5;A73#73#3##"''3255#73##"''3255#'67&'7'67&'ZZo]]yj)   /qo/   -_ P  7T  Q  NR  O *  )  ! !>ÿìóž #7#5'673#53&'3#536'&'o !Y+s4. &|D4žd '+ 07)0/*+.(ÿéë£ ,28<73#"''32765#'6'3&'73#67'76'&'##535#‹V  K n# Y>  '1/ $  «.£o X  0$ /*#,,$@O/Uÿéô˜#(.47&'#3##"''3255#535#5'63&''67&'§# #44   22& .L [˜  *  '  F   Dÿêô–"'-37&'#3##"''3255#535#5'63&'&'''6™#+ &EE   GG.7K <L– (  % H  ÿêó§-;?7#673267#"''67&'#'6553533&'733#3##5335#ë8    r„ ‹**%D 22-"/ !*2;3% '.E  6 A' ÿèñž"37;73533#3#3#535#535#'#5'6#"''3255##535#35#V?AA99H¤H88?  #´  aaaaa‘     €b (,F  Z ! kÿìñ“ 73#53535#35#35#á†>>>>>>“••2 PR"ÿèó¢-38=C7##53#5#33#3265#"&55#'67#5'667#367#335&'[5Ùr S >G " *  4( >= 0<H 4;ND 11    *$8<$$7*a$$7*€!!$2  (( k  **.ƒ03Qÿéñ¥%)-1573533'73#3#"''3255##5##535#35#33535#335QC%  K@  .-?C--?.m--?.Œ l  **+ƒ36 ÿêõ› )>DJP7'67&'676767&'7&''67'67#53#"''3267#'66&'#'674'D %* ˆ " #* \`    0 /=  2›-!(-/ -  !3M6?  ÿéï¥59=AEI73&'73673#33##&'#5##5'67#535#535#535#5#35335353354F4N9,'$!# %%1EE11Cx!!&[!&‘ 199- ÿçôŸ=73#'67'676553&'&'3#3#&''665#5365#'6‘KŸ!QZ  ac:E@4 2? '"‡8,0  " (oo MM    ÿéöŸ/LRX7676767&'7'#"''3255'67'67'6'367#"''3255'7567#'67&'Ú ( &*#    3  G›O$  # 9ffŸ *  -  '   ? 8c   ÿçî›#)7#5##53#3#53&'#735#35#'67&'í´!–CaÜe;pppp ' "q$#›**I, )B   ÿéð¬'/37;?7676767&'7&'#'67'67#53&'73##5##535#33535#35#T  67P' WW,Jdc~v@@R>@@R>>v        ?V V-ÿéñ¢ 2GMS7&'''67&''6767&'3#"''3255'675#73#"''3255'675#&'7&'ª!& $'G 0*b-3xa !(,#Nqc !(,$OU   ¢        0S   S    .î¢!73533#3#&''67#535#&'#6'PPPd2AM;dPŠ7 8“  4 ÿêñ¤ AH7&''6'&''6#535#53533#3#3&''67&''6#326½   {   ?gMMMMgŠ{%#1C+*6 -" &ud&¤    M,,     ;ìª.37353373#6732767#"'&55'67#535#67##B? :]$C8 =H 5/ :A (,%NUBg.Ÿ         ÿçô›>D767&'7''5'665567&'67&'7''5#'66556&'y       7‰     7Q›w   }!5, (4, FGINv  ~"6+ *5,'),% ÿéó¤#'<B7#3#67&'#67'5#'6553#3533##"''3255#&'賸L    B. &w**   w& ¤#  % (1. $/WS     ÿçó« 15973#53&'33##67&'67'5'67#5#5;5#35#ƒaÜe?$$>   M   3#2%%wwww« (   6   !   )  ÿéôš#'+;73533#3#3##5#535#535#35#33535#33573#3##5#535#011**4433))0+C+"_'..,,& F F,( M6OO6Jÿéò  $73'73#3673#53&'#5##535#V8C‘(#0¨-pYYYŠ   :JJ2!"íž73&'73673#3#3#535#535#0 5 4ZRRcÙbQQZ  "ÿíò¬#/E73#5363'67&'7#367335&'7'53373673267#"&5p _ºB58  :'# B$ $+  '!¬ WWL     55 7  D     ÿèî¦.;73#'66553&'533#3#535#535&''67&''6„^¹ W JJX¼QAA h ¦ =3' %G) 6P  !   ÿéñ™%)-F73#3#5##535#5#35#"&55#'733565#35#75#53#3267#"'"&55t$E#AE  9E EE¦@S? !™‰ ‰M+$]>2U=! T)Aç• 73#'6'3#'3#7&'šAI :-‹  • LFB   ÿ왜!%+733#5'667#5#'#335#35#'6:;j . +N-08EGœ UJ !%,ÿèì¨ L73&'73#&''67&'763353#3#"''3255#67&'7&''67##537#e^Ù–    uŒWj  `  &* /LF–    %%6;  % >O ÿæñ’$4>D733'67##"''3255#53&'767##5##537#53#3'6656&'\$   %-  BÕG(1t1 H %’  B  >  ZIJ[!2 &   ÿïô‘(-167#5#&'#3#3#53&'#535#5'67##53&7##35#íK18 1J>Þ3 J2 =)Li\ 3*‘)    )! `  ÿèó¢.26<@7'67#5367#53#3#&'3#'32665#7337#'35#35#&'#3#L #4F7¤Vy>* !)  ‚ DQ ~~~~g 0 5‚‚;  ;;    Y ! >7bÿéòŸ&-48<7'67&''673'#"''3255##767#''&'35#35#v  G  =/ 6 ? ====F    K  ƒ  )  &  ÿêóžJd73&''67&''667#'67#533'67##"''32655'67#53&'36533#"''32765#'67#–G   ) 9 q  E\   )2 V&2   "/ )$ž       H 4&%E6 'ÿèö¤#'+/39K733#"''3255##5##53'767#35#35#35#35#'&'333#"''675#`ƒ/  ,*8 ` **<,,<**<,,  1 %;IRJ ¤  ` !!"p 9 ,X  .X   Iÿèö¢<N7&'73#67&'#"''32654''67&''67&''67#333#"''675#( 3ŸB %  !, /%$ # &C=1 %;IRJ ¢          X   Iÿèö§$6R73&''67&''667#'&'333#"''675#33533#3#3##5#535#535#‰E  '$2( )  ?Z  1 %;IRJ N88833FFFF338§       .X   I     ÿèö¢!%)-1C7&'73533#3#3##5#535#535#35#33535#335'333#"''675#( 8AAA::FFGG88A&&9(a&&9(¾1 %;IRJ ¢    C  C ( % X   IKÿêö›57&''67&''633#33#"&''67{  N "88+-  " ›   (  ,/ Gÿéó’(733533#3#5333#33#"&''67l44?™,99%4# !‡-8  &Fÿèò¡"&73673#3##5#'67#5365#53&'5#|  & ''2, %$' % M0¡'DD0$!Z''ÿðì— 7#3#53#735#3#735#73#735#äµ½Ð>ppII-KK##EII##—…§/,11ÿéð«"&*/DJ73533#3#''275#535#35#33535#335'#63533##"''3255#&'cddR Q^1+SSc#@@T@”@@T@0™¤++   ¤: ¢  >  > " !    ÿéòœ#'+3773&'73#3#3#3##5'65#5#35#'#5##535#Š").''''2h1#####/œ   j $((l~„_N\ÿéò¡#'+73&'73#3#3#3##5'65#5#35#ˆ$)/((((3j3$$$$$¡  o ))ÿéîŸ"(9D73#3#3#7'75375#535#'6''67#"''3255##5#5'6f2_+++ Ì  x Ÿ74@   v a‘£$ ]Fÿéöœ7=CT73533#3#535#73533327#"&55#''67&'767#'67&'3533#7'75#())0p.(m*   R  > >*(((/9/*ŠL(7.: ##        ÿèõœ$*06<B7&''675'675#53673#5'675#&'7&''6'67'6}3: 79$B 8!")-$K^ \HBq #2 .>(RNH:ztk     53I    =      ! ÿèï¢'+/37;?73#3533#3#3##5#535#535#535335#735#33535#33535#335#¹S***S``__P((*R??SA”??SA**>*¢J      - ' L  ÿèî¦ '+/73#5##53'#5'673#3#5##537#35#35#„a¶d3 *6=S'7SSSS¦ -- (fI  %f f9:ÿêí¤ 08<73#53&'#"''32654'7##53673#53&'#5##535#N2x0´  -h `@@@¤  / 1™«    5L L/ÿéë -159=CI73#67767'7&'#"''3255#'67'67#735#33535#335&'''6#·v #*0D#   )(  )??S>‘??S> S$ ! G        , )a   JÿçõŸ3973533#3#&'#'67#535#3&''67&''667#T>@@K 0 !H>(J% -#+ $  - <‘  3       ÿçî•&8<@73#3#3267#"&55'67#'7367#'3#67&'7&''735#35#}k&1/  # / # 2dUB ! ////•; " +*!\0  t: ÿéñ¡ 06:73#3#535#5#35#3353353#3##"''3255#'67'ÕE9½7C}'8%%8''¡¨¨âe   j>" {@=¡ 00 +       ÿèó§3773#53''67&'3#67&'7'5'67#735#ƒcÚa* &r(& '(e–= M$2"  -#)qq§ !    4   5    ÿéô– &67367&''6573#735#35#''63#3##5#535#2   ';~~WWWWg  U8@@??5–0  '9;I*( $ && ÿéö¤4:@FL7&'733#3##"''3255#5373&''67&'767#'&''67&'''6) G ($  '#=K   6‚ o  3  ¤  A  <.?&!  !  ) '% #" ! ÿèó—!%5C73533#3#&'#5'67#535#35#33573'67#'6&''66///($  (/(3> 0   ! % Š 8 7788> '!, ÿçõ¦"&<H7#3#'6553&'75##5#35#3353353267#"&5536'33#7'íE:°Y))));)( ( "†662" ’5/" '0G "$-   5  ÿéõ   $6;CG73#53&'33#"&55#'6653#3##53&''67&67#'#5##535#<%^#© %  uNNNNsk " !# " 3?***   )  +      B D+ ÿéó™ C73#735#335335#673265#"''67&'#&''6553'33&'7 ¿¿&&8&'#Y   #!M \* ™;=         *   õ¡ $(733##3#5'67#5367#537#3353535#¸x Œ¡ $5NUEXNSYs{{¡ 1"     H ÿèí¤ /473#735#35#3#735#33533533&''27&'7#367+««…………&ÏÏ**>,.µ²=-.;-# +3¤>&/(    ÿéö ,0Q73533533533533#3267#"&55##5#'67#5##5#3#"''3255##5##535##5$ &&   D! !| }RK  92EMŒ    !!  %"  55'7& ÿéò­.6:>B733#3'7#73267#"&55'75#'665533#53535#35#35#mNNldPR + 8#$&+ Le Âaaaaaa­     >2( $FKII $ "  ÿçï©#)/5;73#'6553&'3533533##5#5#&'''67&'7&'€ [»[5%7--[%n7b  x ;  A  © 51, $-G<))   ÿéòš#'->DJ73533##"''32655#'6553'#33#7&'3##"''3255#&'''6—5   5isPPEPPs  ha' (R  :  {f a4& (/G1!' $  ÿèó˜,DK735#53533#3#3#3#"''3267#'67#535#73#&''67&''667#,//11++/GD  3 3,ŠF   )k  * #0= /  "ÿèô–!)-1573533#&'#5'67#7'6'&''#5##535#35#35#h;=/ !3q S  $$$$$$$X>>#"'TL)'L   ‘ ”(>=ÿæõª/37;?CGL735333##3#3#&''67'67#537#535#5#5;5#33535#33535#33567#)MNNVn„0 N 0(&N4$< 3C:UM::N;‰::N;AAUB? K ¢'     ' " 8 C kÿëó!'73&''67&''667&'&'’E      :  3. 10     A     ÿêò¢,1BHN733&'73&'#'67#&'&''6673##"''3255#&'''6:3 LL yG#    w ¦¶P   R„! !O% !¢    +    N$ !    ÿéó .CI73'67#&'&''6'3353#5#'67#535#3533##"''3255#&'›=XN3    f 7.J`  `     6 )   )/®F2 ' #  ÿéíª ,28F73#5##53&'&''3673267#"&''67''67&'3353#5#533€ \´d 1"'4 , 7!ª  K=¡=ª **  '   )   8#9 0&-Û© )73#53635#3&''67&'767#'67#oaµ=2I 3    -  0©kk cI       ÿéñ«#)/5;73#3#3#"''3267#5363535&'''67&''&'mZš¶¶± °</†††  vd    «D  2 x  T   ÿéé  PU7#5##535#'6'&'3673#3#&'#"''327#3267#"&55'67#5367#'#é«««ƒ W   6DKW       /  +#   ,.m / ··£“         $  & ÿéí¨ !%)/57#5##53&'73#3#535#35#33535#335'67&'í´d_£HJ¨JG66J6€66J6e+ (h'" $%–$$  OO ,."   ÿéñ048<@73##5#'665563533#3#3##5#535#535#35#33535#335å *K!  2´/00)),,22))/+B+ gg-' )4, QQ/1ÿèóž&,28>73#3#3#3#3##'32767#7#535335#&''&'''67&'ÒbPPm§—š© ª (&*^˜    H 8  ž    17%o    ÿçò¡%:LQW]767&''67'733#"&55#'6653533##"''3255#73&''67&'#367&'''6%  !À    …-++   -v_      i  7 ˜       '   N6  3      ÿçò— &-1;AG7&''673#&''67&''667#3#'767'&'#&'O(p?    #yDDRiD  —     " ""A  :ÿçô¤ +/O73#5##53&'33#3''67&'767#53'3#3#3276767#"&55#'667#„_´d)**/    >oKKe &  G4¤ &&(     ";  @%# ÿèî+/3=C7&'73#3##'32765#&''67#'67#735#35#37'5#33#7 ByPf /    SSSSg1 RQc FE (    * % \  Z* =ë£573#"''3265#'67#'6'3#&'#5'67#535'2—F      "   &- *£ =#*   !"  ÿéì¥&/59?EKQW7333#"''3265#'6553&'7'23'677&'37#67#&''&''4'''6Ø  ž! ^(d 6D (4pv~†‚    ¥ !/ 0/ +    71        ÿéôŸ+V73533#3##'6655#&'#5'675##535#73533#3##'3255#&'#5'675##535#***)    &*m+//(    $(+- -  19&0A,  '35"0A ÿéò¢'/37;?73673#&'#5'67#53&'735'2#5##535#33535#35#Ô &-#,R!5 :#$9 /'P+#S[]ƒ77K8ƒ77K88¢   [XX!.1ÿôÈJ "7&'&'''6733267#"&5€  E  c  !  J   + ÿèô¢ #'+/73#735#73#735#3#3##5#535#735#33535#335[[77\[[77x¸RjjiiR??S@“??S@¢//*L  . * ÿéó¦ +/373#3#535#5#35#3353353#3##5#535#735#35#ÙE9Á9E‚+9''9+&¢©KiillJ¦ )) %B  ' $  ï¦"&*73&'73#3#3#3##5'65#5#5#;8 QSIIII[°  TAAAAA£  K  @ÿéõ© 159=7&'#5'6&'3#"''325'#"''3255##535#35#73#–$1 ^ 1JU 6  '''''I©    U  NV  $m * 'F ÿèô¨$(=A73#&'#5'67#5367'2&'#35#33255##53#"''#735#Å $-w;( y+=O!Q81UU h eDD¨    1 ;& '@P<   ÿéëž $8<A7#"''3255#535#5#'##535#35##"''3255#'6555#35ë  M9999+M9999„  5C33ž›  UA % 3Atµ % $O  %%  †ÿéôš &7#"''3267#3&''67&'##567#æ  ;U     A $š)3)    [±}  ÿçò£!77&'7#3#3#535#'&''63533#&'#5'67#1 Äuhh{VVW 5  $edT$4 8%$8 2%S£   ' ]5     #  22 ÿçõ¡48@D73&''67&''667#'3#3#67'6753675#735##5##535#œ>     /†R+5$..¹<<<¡      =$ NJUPL L/ÿèò« 0J73533#3#535#3533#7'75#73533#3#535#3#3267#"&55#'67#!VUUcÙcV$&&(,7,$k%&&/m*%f¿; $+ @9 1    +  * $ í§"&*.73533#3#&''75#535#35#33535#335'#___L   RdcLL_&99L9…99L9 'œ  D  D % $ #  ÿéô¥ 073#735#3#735#73#735#3#3#3#"''3267#'7#5––nn0^^::d[[77{¸¸ç¡–‘/¥( ' '    ÿçñ¤)-1O7&'3673#3"'6267##5'67#735#3355#'3#&'#5'67#535'6‘  G  39  '$ %+ +0C2!""   )++¤  4C959]  KH ÿçõž !%)?73#735#35#3#7#5'75#35#35#75#73&''67&'767#+ªªƒƒƒƒ1æ} (.$222222S`    Kž@( ! ;D & ',      ÿçð§@GKOU[7367676767&'7'#"''3255'67'67''67&'67#5367#73#735#&'''6:7   (%,/>   *,&  $ +K[[77"!R 0*§           ( #=y   ÿèïª #'+/5;73533##5#3533533#3#535#35#35#35#35#'67&'"UUUU2U33­2DUU‡‡‡‡‡‡$ *-,e&% &'œ   [[ % # #     ÿäñ«#'-373533#3#535#735#3353#735#35#35#&'''6(NNNgãhN;;O;›­­‡‡‡‡‡‡c+# #)4 2 3¡ ' 7U<    ÿéî¥5L7&'&''2#5##53673'67#&''635#53533#3##5#'Ü ,8% am«”}( R A  "S &00))**6¥   )!$ I1   !!  ÿêó873#673"&&'#"''32655'67''67&''67#m& )65/   " & ! &1   '$'  ÿéðœ"&*L7'673&'73#3#3#3##75#5#35#'3#3##"''3255'67#'735#~  "&+%%%%-`2 |\   ! !"4]    l((s'A  8,%! 'ÿëe 7'6'6'6J( ") #" + &    + ÿèõ™ ;I7#'655&'73'67#'6'3#353#5#'67#5335#5363&''65ì»2l2 % ( *$  $7>( 4™A5) +1J    "))9 "1 )&+ %î¤!%)-173#3#3#535#535'65##5##5#35#35#35#8ŸÛ ’/0¤!""  *!!!!!!4"""""nÿéò¡)/5767&'7'#"''3255'67'67676&'''6Æ     B Œ/  7  1" T  ÿèî¨DHL735333##35#53353#5##535##5#3#5#'6653353#35#535#535#33535'POOC5##5CC4&  1BRRggPc<<< +  j& 44'  !- +   ÿéì *06<B73#35#535#53#3#"''3265#'67#56&''&''&'''6n%<<@@BTŸ  Ÿ *e    # O:  Kr   wÿëê—"(733#"''3255##5335#35#7'6'&'¥2 I+IIIIH  J  —2c  'z!1]    ÿèñ¡#'+@7&'3673#3##5#535#735#33535#33573##5#'665565 ? *1122*+C+p 'M  /¡   T$$22I bb,' )5, ÿèõ !%)8?L7'#67'535'63&'73&'3535'3'67&''667#67&'£$ Q  +"  ???&F   p  ,  D$m   b r(  '  F ÿåó¤#0D7#53#3#5##5##533#73#3#73#'&''667#53&'73&'vZÈZdQReH==g<0/• (%%(   7    Tð• /7#3#3##535#73#535#67#53&''67&'•01111;DD22  3F    •8'1C   ÿéï£ +IMQU73#53&'#'67'67'67676767673'73#3#3#3##5'65#5#35#…_Ûe5 &  .&-))((0d , £ ^ '  $A  X  ÿéò™6:>BH73#735#73#67327#"''67&'#7#5'75#53&'35#35#75#7&' ^^99xCA      #Xa555555˜  ™+     ,AHR ( + | ÿæð‘"6:@F7#3#3#3#67'7&''67#53533533#3#535#5335#'67&'vB;;;;A-  $' %n"x E  ‘    \-->-C    ÿéñ¡'+/R735333##3#3##5#535#535#535#535#33535'#3#3#3#67&'7''67#535z(/ /33;;66,,))22(;f=9999@. "" •  $$ 8 ` ÿêï¤#+/37;7#53#3#5##5##533#73#3#73##5##535#33535#35#vZÈZeRQdH==g<"   . (H%   " &1. &.RM    ÿéó¤!'OTZ`7'63&'73673#5##53&'&''33267#"'3&''67&''67&567#7&'''6ÙVlh? 5   ' "­*H #( 1 r%,;/,; /#  )6_f  † ¤    !#       9 I    ÿæõ¤0;?P7'673353353#73#&''67&'767#'6#5'673#67'5#'6651 'Sl2      v   !SSF  ¤  --.<4 )  bO+ ' " ÿéù¯$*08<@7&'#5'63&'3#73&'7#33533'67335#5##535#35#ƒ2; (`! C: O¼¼      {{{{{¯    6    3II &  ÿêõ§<KQ733#3#53533#67327#"''67&'#'65534'33'73#67'675#'6zYYcã.*x:    s„ ¦c' > *  §  !"    %(# #,   ( '   ÿ颣!%+17=733#5'667#35#33535#335&'''67&''4'6=r 60/L/  \Q  £ RE "4&   ÿèñ¨<S7#67&'7&''53&'73535#'67'67'672767767#"''32654'7##5¤6 $$$J0    ¬  ‘a/    )N$# / P7 :¡²ÿéõ¤!'Vj7'2733267#"&5''6'&''&'33#"''3255#7&'7&''67##53&'767#67#53''67' 4K>W  (&(  .   . " c0 2E   ¤ • ! ‹   S @    Zi Q     ÿêóª#)/5H73'73#3#53&'#37#3#735#35#&'7&'''6733272767#"&5XW*Bâ?$E8J5¦¦€€€€Fe  ›%  9(™   #?'         ÿéóœ,28PU73#&'#5'67#535'63533#3#535#&'''63&''67&''667]   !#'8,11=…6,W ; ": ")"  % œ OJ#!       ÿîóª #'+/373#3#735#33535#3353#3#735#33535#3353#Îβ²<7&'73#"''3255##53535#335#333#"''675#3#735#( ¶   dAD//j1 %;IRJ kCC##¢  :G 3GW::* X   I ' ÿéé¤ )-97#5##535#3533#3#535#3##5'67#735#67&'é«««433C˜C4r@ NN4 ¤»»¦• &*     ÿèö¢37I7&'3533#3#3#3#3##5#535#535#53&'#535#37#333#"''675#( ==<«? %P?žU= ! ! ,\7()WLMV*!  ÿéò¥#)-16:Ni733#"''3255##5#'655'6367#35#33535#73573#"''3267#'67#3533#3##5#535#'64,   %"&<&f   & ""''11¥ x "" !'3 18Z," 0''   ÿèö£#37;M73533#3&''67&'#535#67'3533#3#535#3#735#76767'7&'…*11*    )*  É2,,+i,2 cc??  2?Œ-      /I,4(      ÿéó’#<733533#3#3#3#535#535#535#53'3#3'667#&''67#(($$**0•1**##&&~]-,#  ’ŽŽ.7*  & ÿèï¯#'<BHNT73#3#'6553&'5##5#35#3353353#'62667#73&'#&'''67&'„aG;´[&),,,>)(€œ ’0   C  4 ¯ , 9+ +4N' 8  1   Iÿçó¨<73&'73#3#'6553&'#33673533#3#3#535#535#'6e6? '{%*7..))4…=++ • *%# !;  1  ÿêñ¡',AGM73&'73#3#3##"''3255#535#53'#67#73##5#'66556'67&'+/2,,  **0B%¤ +M"  4Ÿ O   &  "=cc.( *5-k  ÿçï§%)-15;AGM73#3#3#3#535#535#535#535'235#33535#335&'''67&''&'Ö '.eeNNXXeÞeYYOOffT\?<73#53635#35#7'6'&'&'''63533#&'#5'67#z&V 0000rª © h !edS%2 8%!; 4"R© WW)69      +  45ÿ莟"9@73533##5'67#7&'7'6&'3&''67'67#53667#744 .  Y 2  #    % }""$  0   *      /  ÿèó§$(,059=73#3673#3#5##5'67#535#535#735#33533567#35#35#Åb= ,P,b‚8.b_FFP));+(5;>‚‚‚‚§/ M <  F7 ' ÿèð¤%)/39?EKQ73#3#3#3#535#535#535#535'235#&'735'6&'''67&''&'Ú (1ddTTUUeÝdWWSSffR^G@@   DA" 1 –}  (  ¤33P  M      ÿéñš!'-LR73533##"''32655#'33533#537'6'&'373#3#7'75#535#53&'7&'”7   7^ ~'L _  &!6--46A6..6†  u%%` [6)))$   /  ÿçöž7&'333#"'&'75#(  2 %;IRJ!ž  ,X  I ÿéñ® "(.6:>BS7#5##53'7&''33267#"&57&'''63#53535#3353353##"''3255#íµ` $! *$‚   µâ""4&%·Û` hœ!!            )  ÿèó©$=EIO73533#3#535#3'67#3#3#535#3#3##"''3255#535##5##535#&' WYYM­MWÝ Ë¢HXÁVGæ   NN·b111d   ¡       44 ÿèî£#D7#53#3#5##5##533#73#3#73#3#3#"''3255##5##5##537#uYÈ[eSQcG==g<D73533#3#535#3#735##5##53#'3#3#535#535#'67#'#6hhhU½Th««……¯·§ PPeÞfQQ%%‚/ =§ " ##    ÿéôœ-?Rfy73#3&'7&'#"''32655##5##5'6735#''67&'767&''67&'76&''67&'767&''67&'76Úc?   A@ % 5cO    Y    M    Z    œg \sswz  .      (          ÿçô¡Ij73673267#"&5767#533'67#3#33#"&''66535#53&'3#3#&''67#537#'6" )  &  Of #((!#   0?f:(+  #(,¡           $ I        ÿèð 4JPV73#63#5'75#35#35#675#73&''67&'767#67&'#5'6'6'6t  (.#55555Wb  !  LB%*  -4G[. '*) $5 6 2 ;  #9    C   %G     ‰ÿèóŸ73'67#'6'667&¦: -  "Ÿ  "V!,.. ÿéòª#'+W\b73533533#3#&'#'67#535#35#35#35##'67#'67676767&'7&'#"''3257&'''6r$6 .?- '5$2rrrrrr5%%#  ('9    /? M +(¢5    5   X        ÿéä  &*.2:>73#735#3353353&'73#73#"''325'3#'3#3##5##535#ÉÉ,,>(+¿<<¾  '‹rroonJJJ 21f  VT= 00 ÿèô° 48<_73#5##53'3533533#3#3#&'#'67#535#535#35#35#3#3##"''3255#535#535'2„b³bF(4((&&E+ !P* !/B''(:4444G FF\\   [[DD".°  #       ÿèô¡17=73#3#35335#533#335#535#535#533#5356'67&'R%%%%1&**'0##$$&9ç(%n&" $$ --6DFrh‚      ÿéóž&:>FJN73533#3#3#&'#5'67#535#535#73533533#3#535#35##5##535#35#$%%!!))   ))!!$f€+CCCCCCŽ  135] ]"1ÿçì¢ #BFJN73#5'675#73#5'675#&'7&'3&'73#3#3#3##5'65#5#35#\"',$In\"&IOY3ROEEEESª "VDDDDD¢H  H      *     E    8î¢ "(73#'6'#3#3#535#35#5#7&'ŸBI  ) +r##DD##‰ ¢ *f,+  ÿîñª#)/5;CGKO735333##3#535#535#535#33535'67&''&'7&'3#53535#35#35#(NGGeÞeOOccNb555    fMCÞ!!3$$6        5      ))) ÿçô¤JNRV73353'33&'73#673267#"''67#53#3#367&'#'67#'65#535#7#33535s -    KN a +%d--"(   0%8 w/ H?5( %%/ ' !ÿèò°">BFJO7#5#&''67##5'673#7#3#33&''67&''67#735#35#35#67#ßA)    ; 5H@ £da "-A+1<2   "&||||||?OŒ$    'B  03 ÿèï #'+HN73#3##'2765#&''67#'67#735#35#'3#&'#5'67#535'633#wkEZ(    GGGG)##   '()7EW GH *   * ( + QK"mÿéñ !%IO733#5'6367#35#33535#33573673#3#3##5#535#535#53&''6;*_ " &;&2  ,((00++##(9- D  V@ *8Z .. ~  ÿèîž&NRVZ^73533#3#3#&'#5'67#535#535#73#3#"''3255#7&'7''75##535#735#33535#335"##&&    %&"dn.9   &  2-.I.Ž  12T <  & CU 20ÿëö£#'+<J]7&'3533#3#&'#5'67#535#35#33573'67#'63&''65'333#"&'&'75#% 1"""    " )/$   ­. %>K T.' £   4  +(  4 39  $W H ÿèñ©.26:>BH[ag733#3#"&55'75#'6553'67#732763#735#33535#335&''3;267##"&57&'''6pKKh .1-08Ni XCE$ ‘,,?+j,,?+2  #  3 p  } ©  <3' '/F!4       ÿèõ ?DWin73&'73#3#67&'#"''32655'67''67''67#53'#67#733#"&55#'6653&''67&'#367),1      '  #?#š  a     Š             9.  "!O     ÿçì«#'+/5;73533#3#535#3#735#3353353#735#35#35#'67&'```N°N`ÑÑ,,@,+­®®ˆˆˆˆˆˆ#!)(h$# #%¡ $ I4 ÿçôª4:@QUck73533#3#535#73533327#"&'#''67&'765#'67&'3533#7'75#3#3#''67#&'7#6)**0u2)q    U 8>)))03?1) ­­â4FO<  K 0¡ %%+-                ÿéö§-26<N73#3#"''3255#3#3#535#535##53'#53'67#35#'&'333#"&''75#ŸN#! -&&?##+#'B+6h  1 %BF`fl73673#3#&'#'67#5367#7'6'&''#"''3255#'65535#35#367&'#"''325'&''6h3;@M  " %!--i J   r    |  2 › ('2^2!N"     .   ÿèï¨ *DZ73#53635#35#727767'7''67'677767'7''67'673533#&'#5'67#z@H     Ÿ     %edO2 6#8 0Q¨ \\-:'  (  ]   0.  ÿéò®%;_7#'6553&'7#5'67#53533#&'3533#&'#5'67#3#3##"''3255#535#535'2ñÁ_4   !% Ÿ   ¥!)CCVV   WWEE#'QžC6, ,2L9    '   $      ÿìï¬7;?CGK73#3#673267#"&55#3#67'5#'66553&'5##5#35#335335ƒaE<;   ' =// V&'(((;')¬  ,   +  7 5( 'J(  Fÿéô£'/37;?73673#&'#5'67#53'735#'2##53#'#;5##;5#×  0#.' ,?5_…8''''''''£      ¦SSC ÿçó£.26:>BFLfm737#535#5#53535333##3#3&''67'7#735#33535#33535#3356773#&''67&''667#$#3..,,0?:  (/I/N!!4= A<       '*&&  l7 0Š # & )' ÿèó!'7;?E7&'73#3#535#5#35#335335&'3#3##5#535#735#35#''6'.¤3-š.2_,,¹DŽ?RROO<hhhh/   **    :  # '$ " ÿêí­7;?CY73#5#&'7#3#"''3255'67#53537'67##53&'35#35#35#73#3#"''3267#735#} _4 6 &   7.I" ,^9888888[XEM M AF­    j   D O =0+ 0 &ó¦#'->DJ73533##"''32655#'6553'#33#7&'3##"''3275#'67&'“;  ;hqMMATTv  mb' *  I  < 7# "3&      ÿêé£ 59Z`fl767&'7''5673#"''3265'3#"''3255#'67#3#''#3#67'675#535#5'63&'#'6'&'G    ¤   wC    OQ 33:I!33 50 2>£    3   •-  uR     -    ÿèõª8<AFK[73#'67'6753&'&'73#3267#"&55'67#53637#335367#33567'7''6”T® Xd oX:"9 6/ *,=-i$':2   ª ?4) #  M H* +$H$*    ÿéð"&*.2673533#&'#5'67#7#3#53#735#3#735#73#735#    Üvx‹-LL))// )-- }   Y_!,1ް. +88ÿéõž&AQ7#67#535'673#&'#5''655#5'67#535'673#&3#53533533î¿#*# !   «  $*#!%  7TÄ *CžC    +) %0TR#!     ,$$0 ÿéð¢ */37;?GK73#53&'3533673#3#5##5'67#535#67#35#35#'3#3##5##535#;&^"P$  0<> 4/$? >>>>yLLLLK%%%¢     ` I E7UE E) ÿéðž %)-`73533673#3#5##5'67#535#67#35#35#'3#67'#"''32655'67&''67''67#€! .89/,!: 9999†Z"     "  #  ` I  E7ƒ        ÿèï¨ -159=EIO73#53&'73#3##'2765#&''67#'67#735#35#3#3##5##535#733#7 $]"PkEZ'   GGGGqLLLLL)))LEW¨ GH *   * ( E G* ÿéë¥  $BFJN7##535#35#7#"''3255#535#5#3&'73#3#3#3##5'65#5#35#tM9999Ä   M9999G 41++++2m :(((((¥Bz¼ $ (£  \B $    =   ÿèø¡ #)?7&'73#735#&'33#735#73#735#'673533#&'#5'67#.DiiCC\>FF""DGG##‰ !NPA( , ) &?¡  -  ++ )&$  0/  ÿèö¥ %)-1AV\b73#53&'3#3267#"&55#'667#735#35#35#'3673#53&'3533##"''3255#'67&'D(d&Rd  ??????dn0%%   0  Q  ¥ q) , Q-.0   8 -  *    ÿèñŸ#'7=AEIOU73533#3#&'#5'67#535#35#335'6733#767#35#35#35#'67&'),,$$   $)%& .a1" ======  :• ? 03 ?? ! cc  **    ÿèñ¡GKOSX73533#7#"''3255'75#73#3#3#3#3##5#535#53&'#535#535#735#33533537#  O‹?88C  9DDAA3<009(E!.‚&5  *,,0      d ÿíð£#'+/37#53#3#3#535#53'3#735#73#735#3#735#73#735#vdÞffffÞdddVLL((cLL((‡LL((cLL((’ABB6+ + C,, ÿéõ§ #)/5;JY_e{7&''673326767#"&57&'&'7&'#&'7&''33267#"&5'33267#"&5''67'63533#&'#5'67#w ='  /!‰  }  ‚  @ ‡  ;   o     s  rdgN"/ :&!?7L§                    %  +,   ÿéõ!%)-8I`7'6733#5367#'635#33535#33573##5'673##"''3255#3653#&''67#7 B(^0 %:%==x  ŠD    j,,/   $&  DD 8 ( J bOV S4     ÿíò®048<@DLPTX733#3'67#732767#"&55'75#'665533#735#33535#3353#53535#35#35#pNNh XFH&" 11')2 K(ŽŽ--=-j--=-Å0/®         <2' #D>4   ÿéø£ $@FLRX733#5'667#35#33535#33573#&'#5'67#535'6&'''67&''4'/0` )#'<'{ ,#  &.(4C  N  G £ RC  "4]+*\W%&w   ÿèî¢ ".6HM73#735#335335#5##5#5'673#535#535##5##5#53&''67&67#-¨¨""2!!+¶1 #+nm[WW\‡z% m *(  ! 1 ¢& !UB /  *   ÿéõ  $08<@DJPV7&''67'6767677&'73#735#&''63#53535#35#35#&'''674'Y # %-llHH"  K “ "#j3(N%" 0SP3   8AAA11111   ÿét¡ 733#3#53533367'67''6>$g >  ¡..& ? 1 ÿèï«#):EIZ`f73#3#3#67'35375#535#'6''6##53#"''325'#5'63#3##"''3255#'67&'d7!%%""03)) " °<     ¬¬Þf   f> ,&w" «    "    L]@ * /! 9      ÿæõ«%;OS73#'6553&'3533#&'#5'67#'3533#&'#5'67#3#3#5##5'67#35#[¿a!%   Z      ·nnf  !/0ff«C7+ *4L)  !     -;* 1 ÿé÷  $@FLRX733#5'667#35#33535#335'3#&'#5'67#535'6&'''67&''4'‹<n 7/.J.t#""  $&+¤Y O   RE  !4U NC %s   ÿêó° 49O73#3#53635#35#73#3#3##5#535#53'#53&'67#3533#&'#5'67#8&BEV 1155Œ/#7//..5/$•eeS&/ 8%#8 .(S°--h$IS + N.. ÿèó­ QUY73&'73#3#735#73#735#'67#535#535#53533533#3#3#67&'67'75#35#__ÖTT00STT00R6S@..55755--?Z   K"  S777ž" " v      +  Sÿéð¤%7INcx~„7#3#53#3#3#&''67#5365#'6733#"&55#'6653&''67&'#3673#"''3255'675#73#"''3255'675#&'7&'?Xji21"  " Ÿ " Y   ³c  $-3%Qlc  $,1%Rbs—C ]        *   0B   B     ÿéó£ #AGMSY_733#5'667#35#33535#33573#3#3##5#535#535#536'&'&'''67&''4'+3_ ,%'<'d/((22,,##+>,  N  F £  RB   "4^ //  ~  ÿèó£48<@QUY_e73&'73#67&'7''67#'3533533#3#3#5#535#35#35#35#7##'32655##55#35'&'''6ƒ+0@  *. v,\Yk $,,,,,,¹   <N< k4     š22/22 8 £  5"% 11%      ÿéö©"(.:FLRbh7'2'#"''32654'7##5'6'&''&'#53#3#533#535#535#&'''6733267#"&57&'à5M?H  ¿ ) /3~:C”@7|{jiik7 0    "h  ©1 4©¹   5  +          ÿéó¡)=EIMQ73533#&''67#3#535#&''67#'3353#5#'67#535##5##535#3#735#a=9  B™D  G1(ÒdddEE!!˜    --   ,5¸I1%YYD4 # 3ò  %+1773#735#35#35#73#735#35#35#&'7&'''67'6[[777777`[[777777C { Ž  ~  N7   8N7          „ÿòñŸ73&'73#3#3#535#535#†*)+**.m,&&*ˆ  ,55, ÿéñ§9=BHNTZ`f7'2'3#5##53635#35#767333#"''3265#'65537#37#7&''&'&'''67&'4'Ù 2G;s"&&&&&™   c@EP X%c ? 9§  ‰ ŠC!X&0 4  %/( /Q    h    ÿèô¯"&*.GKOS7&'#5'6&'"3#735#73#735#73#735##"''3255##5##5##535#335335„ 82 hJS855477699%  &%%%%7%&¯   (  (  ( $:  !P  ÿéîŸ#+/7;CG7#53#3#5##5##533#73#3#73##5##535#7#5##535#7#5##535#uYÈ[eRQdG==g<CINy…73#'673#&''67&'767#'63733#3#7#77#'3&'47##3&'#66767&'7&'#"''3255#'67#'6&'''6:IX }9    & V ha#"$& * ;8K& ##   -.!$Y#!!I% "ª           #      1   ÿéð­BFJNRVp73#3#6732673#&'#5'67#53&'7"'5#'6553&'5##5#35#335335#"&55#3#73533'6„`B8=!&  -C$ -1 '=. Y*.///?.' C998  ­ "       !   +8+ +3L"  I%    ÿìsª#'7#3#3#67'75375#536735#35mDD!!21%222˜, , *(1d 8 ÿéë¥ $CGMQW7#"''3255#535#5#'##535#35#3533#3#&'#5'67#535#35#&'735'6ë  M;;;;+L::::>??88 # '-7>%% 2&¥¢  c:,:‚¼ 3  %  3.   ÿèê¡ -:@DY_73#735#335335#'655367&''6673#"''325''673#'&''66536''6ÇÇ**<*+´H    " !n  Š q"  !B ¡+ ()/..    V  P B      ô¤ <B7&'73#735#35##&'3#3#"''3265#'67#'67#'67#'6) C~~ZZZZX 8®yy  ! &    ¤  3   !        ÿçõ¦ $(,048JOU[a7676767'7&''67'6773#735#35#3#735#3353353&''67&'#367'&'''674'(   #  BFW[_dj73&'73#3&533#67327#"''67#53675&'&'#53'#367#5#35'3#7#5'35#35#35#675#7&'b %$   @I c %%ŽP    ¸  ’  "= % NH   G}n# tFJc ÿèø 26;@Eb{‚767'7#"'"&55'67#53673#327675'6'37#335367#335'3#&'#5'67#535'23&''67&'67#53667#Î    $ #8' ;,F*j $$  %+!( +       2   )$$T  T7  M 5 @      M  0  ÿéó¢#'+;?LRW[agms7'673&'73#3#3#3##75#5#35#'3#3#5##535#5#35#"&55#'7335655#35#&'''67&''&'ˆ  %'!!!!(T,ˆj!@9 @   6@ @@Á L E b  Y! `‡ ŠP  " 4"-`     ÿèõ¨"(.48>DTa73#53'#3&'#73#735#335335''6'6'&'73#7&'''6'6767'767&'§BGj  1‹‹'ÁÖ vB *#! 2 >   0¨    „—' !     ( ,    7  #ÿèñ¦ Y]aey73&'73#73&'73#3#3#3##5'#3#"''3255#67'7&''67##5367#5335365#5#35#'&''67&'76(2nˆ #"P %3   '  +(>+G    –   v @ *   CT6%%%)-a    ÿèô¯#'+/3FY^‡“73533#3#3#353#5335#535#535#35#33535#335733#"&55#'6553&''67&'#36766767'7&'#"''3255#'67#'6&'''6355**33h44++3-G-l $ _    t & 5;H&##   -."W# "!I % "¨ *  *-   .      ,       /   ÿéñ­;K[735#'66553'73#3#&'#5'67#535#3#&'#5'67#353#5#535#535#33#3##533?!+ _Y.)   =     1>>001g77@@:}B6+ &K         . c c  ÿèõ¨ #'+17;AGWd73#53&'3533#67'75#73#735#335335'6'&'73#7&'''6'6767'767&'©A”?† %Uƒƒ$n> (  - <   -¨ -//< B'     ( -    7   " ÿéé£ ,INRV\bh73#735#33533567677&'7&''67'6773'73#3#3#3##5'65#5#35#'&'#'67&'"»»&&7'&š "  &  P!(####*\ +.  3  * £0A      N   Iò¯ +?73#53&'67&'#7''7667#5&'#3#"''3267#'67#„cÛc-# 0   HE  $ ¯%   $<  #! %  ÿêö£ GZ_ekqw7''6'67&3'33#673267#"''67'75#535#535#535#7&'#3#3#3#7635#'&'7&'&''6` 8   Xq'&   2<+m&= SÉ  ´$ £      7+ %     T"   SE     !  # &$ #ÿèïD)/5766767&'7'#"''3255#'67#'6&'''6^ % 435811119t  \L5())))™<9"; &"&    < ;   ÿêî— #'73#735#73#735##5##535#7#5##535#8888vÍ—J*J*KR R6&R R6& ÿçô´)-159diyƒ‰73#3#35335#535#535#533#5##535635#3#3#735#3#3#&'#"''3267#'67#5'67#5365#5#35#"&55#'67#333535#3'7#D #\&- º-==--,, L­;A2$%   7D8 . $ @;b;•/ &f+•••_M´   88   869/# 5     5  #.ÿèõf67333#"''67&''667#73265#"&55#'665R,94.F  z  f .    0  &  4ÿêó^&73673###'3255#53&'735'2Û % "S #X$ !%M^"    !3ÿïïE 733533#537'6'&'v<¼C` z  EDDD@ 2ÿîîG73353353#3#535#533p,>¼>+GGG#//3ÿèñZ #733533#537'6'&''67&'r?¼=d|  0% !Y! !Z5553   >   &ÿè«\-73533#&'#5'67#73533#&'#5'67#0   :    L  :6 "   64  ÿé{Í"(.4733##"''3255#5335#35#7'6'&''67&'=%#   %#6666>  ?    J  Í6W>  ;W%5b   ‡   ^ÿéõÏ !'+?EKQW]cio7#5'673#&''67&''667#3#73#3#3#535#535#75#7767535&'35&'''67&''&'  99     & 0N ""&X$  2   ; 8 Ï­Œ).      t>      $  ?      `ôÊ7767#53&''67&'7&'G  Š¥!&7A/*8 0%? ´    oñÐ73353353#3#535#&<?RjâfOÄ((/ ]òÏ'73533#&'#5'675#733267#"&5/**  / · .*$*V  @íÏ73533#7&'7&''75#75##5#&PPP> Se_P <<µ:  ÿïœx73533#67'7''675#735#335522  5>!5""5 a=  ]ÿè¹Ã73#3'67#&''67#dU)'> 2    Ãz/$a   "B ÿéë˜&+/377'6733#"''32765#3#&''75#75#5##5#'#%+ ›   ^A AKOAA& z..hY h T88& &ÿèñ¬6:>73#3#&'#67'5#67#3533#7'7&''275#75##5#A””Ä  N! *‹ 5 cCBB6G^+(C…/1¬ '  ) .0 cÿé¶Ð73#&'#5'675#535'6¬     #Ð, g_)&WòÏ173#3#5335'2'3333#"''67&'767#'7#ã116x4=F#"JC=Z   )%+Ï1"2   _ÿë°Ï73#3#&''67#537#'6u&  Ï1%#;1Nñ¬ &,7&'36732767#"'"''67''67&'j /"%& ,  ©¬  $" (    RóÉ.267#"''3255#'65535#35#3267#"&553'#37#3p 0 ...._$ .) h<)É^   0 -Z?.hÿèôÐ#73533#3##5#535#73#5#53733##v/00====/Ajff">>"qI""˜ÿêòÐ &73#'63567#533##"''3255#·2: ! +?   !Ð %e7 5 ÿè÷Æ48<TX\735#53327#"&'5#3##5#3533#7'7&''275#735#33573533#7'7&''275#735#335CB¹  R==C((( &2(("((( &2((› " + &&77   7   ‡ÿèò¥%7&'73#353#5#'67#53365#536¡  C- #  +< ¥   -.H&@. .uÿèõÑ $(,7&''63533#67'7&''75#735#335µ  * ,,,  ,42,.Ñ  !:E" $!!!X†Ð73533#3#535##5##53#300+k-3tNcc  & #]ÿêóÏ2<@DJP73673#3#&'#67&'7''275#5'67#5367#3533&'35#35#'&'7'6i07=M!) .<+ )*.  1+2  c ¤/ . !  G‡   ÿê÷Ñ/37=D73&'73#&''67&'767#733#&''67#535#'#33655#35# )*    H1*# "" &+1*»     %u*-,%u3""""1 "  LïÐ@FL73#&''67&''667'3533#3##"''3255#'67#535#'67&'ŸC     ²)''+# "/) `  Ð $      + (8  *$  KñÐ+K73533#3#3#3#"''3265#'67#535#535#73#&''67&'767#'6(00)).=8  ,  !.$$(ŠD    * Ä                WåÊ 73#53#3'352³ÅIJ§§”v s 5$ 3ÿèô¾ %).BFJO73#3##5#53267#53635#335367#3355#3533#&''275#735#335&'#xc->>l.%44E3w-1B7- >FG G]+)F22E4(¾ ;  ; !   $ %-  + LèÏ ,0=7&'''673'67#'6'&'3#5'635#7&''6Z $~: / M DW $33x   #Ï       5'2(  NôÒ#)733&''67&'767#'6&'&'Tr"!5E--; .$ 'g &&(''&.,,-Ò    6     IóÕ .DJ73'7&''667#67&''3353#5#'67#535#3533##"''32655#&'¡D\ 1 0    x# @6Q`  ` Õ(    )$&„-$      ÿæù£&*.8<@F73#3#&'#&''275#5'67#5367#735#35#3533&'#35#335&'7#)ª^ …6(  DZ+(F  #1B3††††-. D 33G2 6£@ & " E $ *QëÈ)733'67##"''3255#'67#53&'767#.±#)X <  #@ 9Xc ‹È        iÿëöÊ$*0?EK73#&'##5#'67#535'2'6'&'&''33267#"&57&'''6â 8$    #79)  C:     R  Y Ê*00 (   b8  = !  fÿæõÓ (,048>D7#5'67&'3265#"&''7&'33#735#35#35#'67&'„ U .. "IooIIIIII@ Ó;$     >gH) ( !   _ÿéöÏ7=AEK73&'73#3&'33#673267#"''67#5367&'#53&'#367#35#35#7&'`)(    =F \  j  ²  #.Q/" &$\T ,! Y=dÿõ¸Î(73533#3#535#3#735#7677'7&'d""JII## !) »2;3  ^ÿéôÍ!77&'3#53#3'35'&''63533#&'#5'67#x :M^\KDD2p '  ;<0  ,Í  Nv3#   4 7:!.ÿèöº5BVZ^c7'673'67'3673#353#5#'67#53365#53&'3&''653533#&''275#735#335&'#´ 3 ‰) ! )s   {GK J`+)G44G7(—     -  &   <1  ,`éÑ 73533#''275#735#335&'#6+IO   Mf/.I66H;-Á51 EõÏ28>73533533#3#535#35#35#35#73##5#'6556&'''6,z',,,,,,« )Q# 2^ ( À;; " # PCC. 8c  _ÿïôÇ!%973#63#5'75#35#35#75#73#735#3#3#3#535#535#aS   ;55Yy3))<‹;++2ÇD M-. B_>_ IòÐ!'+/37Ke733##'3255##5#'655'6367#35#33535#33573#"''3267#'67#3533#3##5#535#'65)   %#'>'e   ( ##((11 ÐP   " % D    !     GóÐ>ENR73533533##5##5#3673#&''67&''#"''#5'6767#3265#35#""O C     4 † &L D Ä  '      * " $&% GõÎ#'+/3F]7335#535#535#53533#3#3#353#735#33535#335733#"&55#'6653&''67&'7367#44''11..((55e)@)f   S"  =b  5 5  U;   9  CïÑ9O7#&''53&'73535'#''67'67'676776767#"''3254'7##5£  &&& #7      ¦  ¾D  h   ):;  !4   !n} ÿåö‹"&<PTZ`73#735#3533#7'7''675#75##5#7#'6553265#"&5'#"''3255#'65535#35#74',¤¤~~  2  h<   ‹* 13  !$) ))Y _Y  )((  ?ôÏ48<@DHN733533#3#3#"''3255#&''275##535#535#53#335#33535#335#67&KCAA!Kb   5FM_L >>UCCc::L9…::L9Ï3&    +93(  =õÏ(,048HNT73533&'73#673265#"''67&'#'3#735#35#35#736533#'67#&'''6gD  5       FRJJ''''''@    ¸     #$lK,,     )õÑ)@Rf7&''67&'763533#&'#5'67#73533#&'#5'67#&''67'76373#&'#'67#’    y    !!         tR t5# -3< .?Ñ       ""   '(     1   LòÐ"&*IN73367353#3673#3#5'67#35#35#73&'73#3#3##5#535#53'#33676 IL^  77::W+,/,,++/$È   #!@ & 2 Z   CïÐ'+73533#3#535##5##53#3#5'67#35#fffR·SfÜ·¤t‚Ÿ  !{{Ç   #%%$  \ÿèôÏW[_73533533##5##5#35333##35#53353#5##535##5#3#5#'6753353#35#535#535#33535d+""+ 022& &(  '00>>0BÄ   2 "s"+ 99* 4! 2    EçÓ8FJ767#"''32655'67&''67&''67&'767&''673#"''3265'3#y   )9<*&4 1'!)   @ˆ ,Ó  !        l aX cÿéôÈ:LQf{‡733#"&55#'667##3#53#3#&''67#5347#'63&''67&'#3673#"''3255'675#73#"''3255'675#&'7&'ã    86F     /@   r@   .E@   .; L È    Rp          7Q   Q      1ÿèõ¾ %).BFJPdhlr73#3##5#53267#53635#335367#3355#3533#&''275#735#335&'#673533#&''275#735#335&'#6xc->>l/%44E3w-1B7- J"" !*"# '"# !*"" ¾ ;  ; !   $ %,*;,* %ôÐ%)-26:?RVZ`73533#'3#''275#535'275#735#335&'#35#335'7#73533#''275#735#335&'7#(OM 8F( '1**/,O==O;/e* 4+, '3++ Æ -   '  '  & 6 &7 (  (_ÿéðÏ(,04RZ^73353353#3#3#3#3#5'673&'7##35#5##"''3255#&'#5'67##5&'7#35#k#!8 14,,,,5{   <<#####l   =  Y Ê! .    > +  CR%    ?÷Ë?FJNR7#'67#'7#53#3#7''67#3573#3#3267#"&55'67#'7#67#353#735#35#P ! j(0[i(0*    *x¯¯‰‰‰‰ž   &   1=& AïÏ#3773533#3#3#5##535#535#35#3353#3#5'67#35#accOOf¸bNNa&;;O<•¤s€Ÿ  %{{È "##"0 #  FöÑ#(,04X^d7&''373#3#3#3##5'67'5#5#35#767327#"''67&''7&'3'&'''6Ò ~ +((((-` # !!!!!¾6    F 7  Ñ    K Q   "   ?ëÏ;~7&''67'67676767&'7&''67'67676767&'73#5#535#67767'7&''67'67#676767'7&''67'67#53_ "'   p "' $ÇÇ5     !'" K    "'" ó            !2            ÿöõÏ 733#5353635#35#35#pgê= 3$$7##6$$Ï   °Qÿê¨À73#3##5#535#UM##!!ÀJhhJAÿé­Î73533#&'#5'67#7&'P"   Hš44 zt1$BC Fÿð¨Ì 7'673#53#3#67'5#53e   ,1E"" ##˜  ( 5 EÿéEÎ7'6#5'64  Î "‚bJÿî²Í#73533533#3#535#5#&'''6Rh5%  %™444499999 # Iÿ驯!73#33#537#537#35##5##535#NR'' `/---Æ5$P$IWW7&Aÿé¸Ï*.373533#3##535#35#7#"''3255#'665535#35#A"d   ¤++*Sb*l1mÇ I7* 1$_6']'Cÿé·Ñ 673733#537#35#3#735##"''3255##5##535#53#R#f#+WW33L &/t3À "-0F  33%5  Bÿê°Ï"8733#5367#'635#33535#3353653#&''67#g*^. %:%R,*, $'Ï  WW E54     <ÿé¸Ê ?CGK73#735#35#35#73#735#35#35#3&'73#3#3#3##5'65#5#35#L//*009'("""")U -Ê^C*,A^C*,   H  ÿë÷Ï47'67#535#535#53533#3#3#67&'#67'E 4NhVV____VVh] + U ' .  !L <   ÿêïž 67&'''6767'7'67&'67'5'67'6©' !%M%(=-$ ) " L   4$+#ž !   ? ,  (   ÿë÷œ(,0733##67&'27'5'67#5#5;5#35#.¡%%H*P+0%  3$5""{{{{œ##    K '  (  #4'Oا 733##5#5335#35#vOOOO<<C7#533'67#67&'7'5'67'3255#'67#53&'67#W*ª? 0  ,L$ (  <+ !6 /OU;R      5    !$ =ðÑ $7#53&'73#67&'7&'#'63#735#`Pgdˆ J) " ST'©©‚‚¯    (5hÿìñÐ #73#'63#"''3257&'''6†ah ,   4  GÐ & ~  Y)*-',% &ÿèð¬BH73'67&''667#367&'7'5'67'67&''667#\[Mb" 1  KL8$&  @" 2" 4#%#1. ( Q 2¬&        7       _ÿëªÍ73''67&'67#5367#~     ÍK* $#c!1& ÿð“|&73&'73#67'5'67#67&'81=  !+A  g  7  0 _ÿé¤Ï7'6#5'6  Ï  f"'?îÓ#73#3#3#"''3267#5363535dWŒ´´«   ª2&zzzÓ<   k   ÿëò§/37;?73#3#3#67&'67'5'67#535#535#735#33535#335*¬LWWcX   G%  *(MdWWL::N9‡::N9§C   =      ) %  ÿéò¤27'67#5673#35#535#53#67&'#67'H .!0)#77778LB $L    WZ   < $   ÿéâe $7#"''3255##5'67&'3#735#â  šG  C ;WW//ed  Mj|   1ÿçò¢59=73#735##3267#67&'#7'5'67&&5535335'©©„„¤¯7Q  >    E$ + -&FE¢' $(   +       5 SïÏ$73353#5#'67#535#73533#3#535#% B7R6660p-6Ì v% ))‰óÐ"73#3533#3##5#535#'67#536°7< ""((00, Ð ##''WÿéóÐ273#'6553&'3#3533#3##5#535#'67#536² 0m< 29 !!((33+ ÐH># ´   *Ð  &&!1   j XK ?ðÊ!%)73#3#&'#5'67#535#735#33535#335$·RdC &8*#; 1$KaR??R?‘??R?ÊH    , & Bñ¦ *73#56737'673#&'#5'67#53/6( 1/ %2lS#  $ )ó°059>C73#67'7&''67#32767#"&55#'67#53365#335367#335Zl     %0"D 6=0@AS:Œ8/! !! ",Í    6           - 83ÿèô¨EIMZ7'67#5'67#535#535#53533533#3#3#'#67&'#67'75#35#&'##3&'7L /* '4>##''0%%%%@7*5   >  J000U;2        1   ‘ 8  .ím 7'6'&'73#7&'''6Ô$"‘P')(''5 .,m)  TÿéóÑ,048<7#'66553&'73533#3#3##5#535#535#35#33535#335òt =9-00))00//''-)@)¼M@2 -"Y %  VV 04‡òÏ#'+73533#3#3##5#535#535#35#33535#335‰)**((--++&&)'='½YY37ÿéôÏ(733#3#5353333#33#"&''673¹""%g      Ï!!??, ?  1ö¬6<BU73533#3#535#73533327#"&55#&''67'765#'67&'3533#67'675#*''1v2*s&      YA 7  0; £   %&         Cï¦ '+73#567373#3#&'#5'67#535#735#0;P(9a&5&  $1);;jT:#       ÿèó§ FJN73#735#73#735#'67#535#535#53533533#3#3#67&'7'75#35# VV//UYY44U 4%T?,,55:77//Bm %P)$ V:::§) ) ˆ        8  d  zÿÿÌd7#"''3255#'65535#35#Ì   $  ####dO   #$ $ \ÿèóÏ#'+9=A7'655#53533#&53#3#5367#35#35#'3#3#5367#35#35#¦'=AABB2 .54h63&% &9RR /– MM,0HLL,/Qÿê©Ï(.4:73#3#3##"''3255#535#53&'#53&'367#'67&'    =Ï F  AH W    VÿéôÎ-3GKOSW[_ek73533#3'33#673265#"''67&'#535#7&'3#3#3#535#535#735#33535#3355#35#'67&']"$$)$$   d("‚qWe"5" 2 Á  ++4#"8)! W =C  ) '(     Yÿé÷Í`735673#3#35335#533#335#535#535#533#&'#673#3##"''3255#535#535''67#^  '!  4 **<<  @@++   nP   (6 6  V      OÿéñÏFLdhlrx73533533##5##5##"''3255##5&'75''67'6763775##567&'73533#27&'7''75#735#335'67&'O0 -- 0¢  8      8( -    e      ‹— #    J¢³[ '8 8GÿêôÏ*?R‹7&''67'763533#7&'#5'67#'3533#'#5'67#&''67'76373#&'#673#3##"''3255#535#535"''67#¥      e    U    Q7 Q) "" ))99   ??,,  'Ï      %+  *      7         YÿçõÎ1S[mqˆ73533533##5##5#3533#3#&'7#'67#535#73533327#"'''67&'765#547#3533#67'75#3#3#''67#67&'7#Z"++"    !N       i %tt“ /5 (+)à           "      bìÈ 73#3#535#5#35#335335ØE9À;G(9''9(%È??.ÿçól"7333"&&#"'63267#53&''2Õ (0N%=4,A=! &@—V#&Zl  ÿèïi73#3##5#535#735#35#0¡GeeggF{{{{iK  . (  ÿèö’'+/FL73#3#3#"''3265#'67#53&'#53635#35#73#&''67&''667#A1-7H<   / ""2$>>>>rC    (’>" > #.$      ÿèõÈ#'73#3267#"&55#'667#735#35#35#-¥/ $  / #'*& *}}}}}}È•+   1!#hDDáÑ 7'2'6'&''&'× Mo\OC  3 Ñ    ÿçó‡"&73#3267#"&55#'67#735#35#35#8’* " . #% 8#kkkkkk‡m  L, *  ÿ逯$*735#53#3##5#367&''66''61(a'..12  ' "  ™ ,   &' lòÐ "(73#'6'#3#3#535#35#5#7&'§@G -&&,r FF ™Ð  "& ' ^ & &   Zîƒ7#5##5()OÿèõÎ/6@P7'673353353#3673#&''67&''65#67#'#5'67'5#'655g<;     5\ d O   Î( 0AA0@(8Z , ": #= ‡l%;  B $$ " lòÑ $(,04873#&'#'6'#3#3#535353573#735#335335•O& '!!&e==AjjÑ  & \   -  ÿê”Ð ;?CGKO73#5##53&'3673#&'3#5##5'67#53&'735#'23535#35#35#35#R1Y64  2 -G !+)  ,,,Ð #"'   V L [+-!wÚÏ 7'2#6'&''&'Ð IiXF2  0 Ï  upìÑ 73#'6&'— LV ' Ñ    ÿéòz7#5##5'66333267#"&5Ãc<67 5/ " -zZHGY!-3  +&  vÿéôÑ 17'67333#"''32765#'667#'667#'67#—  JhYG    $:¤   U3()  !!‚ÿéóÄ.73#"''3267#'67#3533#3##5#535#'6†h   % ##((11Ä6 -!> 11 xÿéôÐ:73673#3#3#535#535#53&'3533#3##5#535#'6ž  0**1v2--3++0055Ï   i&&  ÿè‡Ï>CGKPT73533#3#535##5##53#33#"''3255##5#'655'67#37#35#33535#735500(g,5xSE'(     '='Á  %%& J    "  ÿêÝn#(,059733#"''3255##5#'667'67#35#33535#735RS4 :<   )PK66I:…87K:nM '   $  YõÒ-3_c73673267##3#3#&''67#53'67&565#733'67#3#33#"''6735#53&'7#367"& @ )"   ' $]f **< 25Ï      .C   ! + fÿèóÐ %AEIMR7#5#&''67##5'673#67#3#33&''67&''67#735#35#35#67#ñ#     <1 l@@#"  HHHHHH% 5 ©$  ,P   8   = kÿéïÌ)-15T\`73353353#3#3#3#3#5'673'7##35#5##"''3255#&'#5'67##5&'7#35#u2,,&&&&-p   ?8a  4 T Ç   /    > * !  AQ#  ÿéôÐ 73&'73#3#3##5##535# jgç¶¶¶¶²‰‰‰²  V V6# ÿèíÑ+159AE733#&'#'67#3'73#'6655'6367#3#3##5##535#` PG' 8  #RN¶  , \ M žžšsssÑ     9* )HN  > ># ÿéõÐ !-15=A7&''&'73#&'#'67#5363&'73&'#3#3##5##535#z / ‹ 2/! ¤ , l71 O žžžžŸzzzÐ      A '  ? ?#8ÿöË~ 73'73#3#3#3#735#8=C“oooonnJJl     . ÿèõÐ#'+7;?GK73533533#3#&'#'67#535#35#35#35#&'#3&'73#3##5##535#'h''-4 ›  "0-':hhhhhhn V 5U’’’’¡‰‰‰Æ ?  ? % % -   -- _ÿïöÐ#+/3773&'7&'#3#"''3267#7#5'63#53535#35#35#ƒ N  4@D  m ! Ï ) ' ! r:::(((((]ÿéòÐ#)1573'67#'6'&'3&''66''6#5##535#£@  5 $  O ( ! % 4  pGGGÐ         /XV6$\ÿéòÐ'37;CG73&'73673673#3#'#'67#537#3&'73&'3#3##5##535#f   BP  k  )+.  JnnnnrQQQ¯       /  44 ;ôÒ 59=73#5##53&'3533533#3#3#&'#'67#535#535#35#35#„a·dD$4''..C3%+F+ %1=,,$74444Ò%%$     !  6ôÉ#'+/73#3#3#&'#'67#535#535#735#35#5#35#!¹*44=1" +L* -7--)’’’’iBBBÉ9       "  "  _ÿèðÈ$(173&'73673#3##5#535#'6553'#33#53'€  0))((-  WW*f(H   ''1!>y8' Uÿé¤Ð#'73#"''3255'67#5353635#35#35#}   1  ######Ð ¹  /j 286]‰Ï 73533#3#535#'6553'#3#5#111(d*1 a(Æ  E (‡òÏ#'+73533#3#3##5#535#535#35#33535#335Š***&&,,--&&*&:&¼ZZ38TÿéœÉ73#&'#5'67#535'6Ž    É' gd #!WñÍ,048<73#3#"''3267#535##53#3#&''75#53'35#35#35##7L45 33;-l.4 3>:33LL##4$$ Í- & - $$ %  % 9  Uÿè¬Ç"&7367#533#7#5'75#35#35#75#Y''=   Ÿ r#|JMWÿìôÇ,28K[73#"''3265#'6767#'3#"''3265#'667#'6''6'67537533#6733#3#53533­D   LD     PKC")  0Q  ÇP9(% "O8(% !"   † IESJ+HHVÿè«Ï /73#53&'3#735#367#"''3255'7567#ƒJCCJ   1Ï  330  vÿöÈ^7#"''255#'65535#35#È  %  ""#"^R   , ' \‡Ò$(,7#53673#3#3#"''327#'65#5375#35C($-)0H?    / !6'??˜..     $ Xÿð¢Î"73#35#535#53#56#53#7'7q $!H D$Î jd)  ÿéðÒ#,6:>BFNRZ^73673#3#3##5#535#535#53&'3#53'73#53&'3#'3#3#73##5##535#7#5##535#R 5 5`UUggeeTT^5"["‘$\"MM~MMMM~MM0---¾---Ò    ‰‰  W   #  00 0 1…òÏ#'73533#3#535#735#335#3#535#35‹)''-m/)( AEW//3à (   @, 0h8#ÿçÛj 73'73#3#3##5##535##PT¸œœœœ£†††Z    /0 YÿèìL'-373#"''255'675#73#"''3255'675#&'7&'^D   2IE  3@ P LP   P      [ÿéöÏ7CIOag73533#3#3##5#535#535#73533#3#3##5#535#535#3#535#535#&'7&''3336767#"&5''6cKEoppo@ B  N $           GC  9     ! `ÿèöÐ 6>BFJN73#5##53&'3673#&'#5'67#53&'735'2##53#'#;5##;5#¬8`9= (&# )20Nr.  Ð !#)   £ UUF RóÓ'8OSW7'6736733#537#35#73##5'673##"''3255##535#53#3#3##5#'735#5#3 /& l# C33„ ?  g1*Z$$$$,66Ó   >- / ,$    '-eÿí Î 73&'73#3#3##5##535#e;22336­ QW:* YÿéöÑ"(.:FLRbh7'2'#"'#532654'7#7'6'&'#&'#53#3#533#535#535#&'7&''33267#"&5''6Ý /&(j  S"(^%!VVDBBD%  :  A    Ñ <7ß—@     " A 5     "   ^ÿæðÑ3<EKQW]733673#5##53&'733#735#3#3#3#535#535#73'735#33735'67&''&''&'ž n   *eeCC866@=557   &8  g  x Ð   # 4     U        Mÿè¼Ï/37;L`733#3'67#'6553326565#"&55'7533#3#735##"''3255##53&'73673##5#u117 E  -    JJDD""7 0   Ï M=2 .K!   Tÿè®Ï#'+/5;73533#3#535#3#735#3353353#735#35#35#'67&'U###N#ZZ   ENN****** 'Ä   "+&X> ! !     Eÿñ¾Î7&'367'5#m I !5Î6} yFÿèõÏ#)1573'67#'6'&'&''66''6#5##535#—I  <  %  S% # * 9 PPPÏ  ' !  -[[8&RÿïóÐ$*26:>7&'36732765#"''67''67&'3#53535#35#35#“ &   z  ¡$#Ð  74 ?   = UAAA/////UÿêðÑ+/37I73673#53&'3##'3265'##'2655##535#35#73#3##'3267#'67#‚ "%–%e  2  #####C[‘ 5 : / 5Ñ   (L CL ] % >#3 , Kÿð®Ï2873733#3#"''3255##537#3#3##5#535#536'&'K+&(' 9#)8  ²}  iŠš,   z òÏ#'73533#3#535#735#335#3#535#35‚,++2x4,, KPb99>à (  B- 0i9rÿêòÇ'733265#"&55#3#3#'67#535#535#w_Çà  µ*&6! ,&*màÏ #73533533#735#33533535#3353359';Á'':''›'':''¾Q0/ ÿðóÐ/48<L733&'73&'#5'67#&'&''667#3#735#3673#53&'86b% I p B)     *xžžvv 4=Û<Ð  !,     -    I9*    héÏC7335#535#535#53533#3#3#353#5335#535#535#53533#3#3#3vÔÏU PbbP ÿéòg673#67&'#"''32654''67&''67&''67#Hl* #!&  ,<?.(6 4*"" (%%g       5ÿéòW473#67&'#"''32655'67&''67'"'67#>ªI      &2 5* + )!&3GW         ÿéñ£B73#735##5##53#67&'#"''32655'674''67''67#1  {{©¶!¢R %&  .?E,)7 4*) .4£( "!"    !      ÿë‰ÏN73533#3#535##5##53#3#67&'#"''32655'67&''67&''67#211+h*2sOAAj)    $' '   $          +ÔÁ3f73#67'#"''32654''67''67&''67#'3#67&'#"''32655'67''67&''67#‘=       _?          Á               ÿçðÈ !'73#3#535#3#735#35#35#'67&' ¿WhßcT±±‰‰‰‰‰‰' :2^&+ -)È1rP.-% yôÏ73267#"''7&'77&'æM "&k\  ³     '  yõÐ!73&'7&'#"''3267#'67#7'6In &/  9F 9 !/ *­  2 {ïÑ '7#5'6736732767#"&55'67I   &B)$'. # -"Ñ 8&     eõÐ 7&''63&'73'67#/7 92+> Q)C 0  tÐ"   }ôÉ 73##7#53737337#3#7#Ö"$¤ #3/01F3É  |óÐ73533#3#3#535#535#\^^PPjæhNN\Ä      ÿéïÑ#'-37'655673533#3#5355#5#35#&'''65lO LfQVVF™@ErrrrrS" #!*(%“J3-')}   pp/ $    ÿêöÏ!%)-17=73'33#3267#"'&'#7&''3#3#735#35#35#&'''6 •=<  –ÀkkvvQQQQQQ8% ¡..G* -X;  0nO + ,$    |êÏ73533533533##5#3#5#5#"4..Y"œ¯”4Á $4 xóÏ&733#7'753773673267#"&5F**-7;J" )'Ï 0/@   {ôÐ73533#3#535#735#335%PRRméjP==O?à -   ÿæô«#'-3736733#'#5'67#3&'#35#35#35#'67&'J ~5%› *:?g Awwwwww $*+]"" "#’ JN  0 % %    ÿçì‚ 73#735#35#35#&'''6-§§€€€€€€`($ &&=, (‚tS/0%     vôÔ'7&''#5'67327#"&''7&'3¯ `  $¼G   *@9Ô   <*    \íÏ&*.3873533533#3#"''327##5#'67#735#3353355##67#E&88G   2>+  5EX&%7(" +  , '  zèÐ'767&'7''563#"''3255#'67#k !# # )@b  !# Ð&  A5 #0  qèÐ7373#"''3267#'67#73#735#)2   ! * ! %}WW//¾/ . > yòÐ 73533##5#3533533##5##5#"URRU2^//^2¿   sîÒ 7#5'635'673#3#535#@  %IL.$KKA;IÒ:' {íÉ 73#3#535#5#35#335335ÚD;È;D‚+;((;+'É00 ÿèì£ &,273#673#5'675#35#35#35#7'6'67&'5”?+! &5R¤8-A ,',-\(% '&£  ^O B $ % g z     YõÏ$)/73533#&'&'#5'67&''67#67#75#]\ % <%*5 *  %‡ -'!      " fîÏ773533#3#&''67#5365#73533#3#&''67#537#'&&+/  # ! '.'r(&&+/  #-'À         4ÿéòµ159>BFJ736733##&'#&'7#'67#5'67#537#5367#335353'#35#35#35#G<H    9# $5=7KBHN73&'73#3#3#3#5'65#5#5#'#5'63#735#35#35#'67&'v"23..//3 ;++++++ ““oooooo #X#"!"¶  (   I ?& BS;     ÿåö‹ -AEKQW]73#735#3#735#35#35#7#'6553265#"&5'#"''3255#'65535#35#74''67&',¤¤~~<<d  <   žQ '  ‹* &P9 )#( )(Y _Y  )(( 1    gôÐ #'+17=L73533##5#735#335'#3#3#535#35#5#7&'7&'''6733267#"&5†))))*^e##CC##’   5  N     Ç *   ' ] % $       MÿèõÏ7=IMQU7#673265#"''67&'#'67#'65#535#53353537&'3#53#3#'#33535ò    A  R) 37  ²M$:& !' /IK=0 +(, #I81  ©ƒ1H $ ÿäó` %+1773#735#35#35#73#735#35#35#'67&'7'67&'``<<<<<<]dd@@@@@@d 4 X 8 `V< " >V= " !         0ÿæô¸!,28>DHLPTZ`73#3#3#"''3267#533535'#5'6'67&''&'7&'3#735#35#35#'67&'–@`ooi i NNNv(   Q"&R““qqqqqq! $( 3D&&%$¸+   J $ K4:       ?+ añË73#767#53&''67&''3#N5Xo $  [ËfI   #W6ÿçñ®!7#5##5367#5373#3'67&'Úa5W[LPZ P$ %pUBDW  #]  góÏ 7'67&'3#"''3267#'67#\!/ +j%, -&X‡  > 9 . Ï   (# xÿúòÄ 73#5##53&'3#´+I0)zzÄH68J±bñÐ733533##5#3#5#53533#3g122X"™¬##"D11Ð!!.@k}Ð767&'7&''56k !# " )Ð 1    L“wå¿73#735#“RR,,¿H&K_ïË7'673#3#535#53‘1F8 KK?;FF°ÿèêÏ+3;A73533#&''67#3#5##535#&''67##5##5'66&' VY   '`¯a!  !§i@/5 0**) )+¹   0)+0   PC25F!&   ,ÿãóµ',17=C7367333##&'#5##5'67#5367#537#33535&'#3'67&'F<<)  R (HO9K16< - V M!¡ (%()    / =   ÿéô·-15;CI7&'#5##5'67#535#535#53533533#3#3'35#35#&'#'66&'·! b *3>))!!,##,,@,,,,I 5 &.6 3) /*-,Y ,%'+     - ' - !  :ÿçò¶#'+6>FL73&'73#3#3#3##5'65#5#35#'#5'6#5##5'66&'Š +-))**0e 5#####,  ‹c:). +$(" !%¶    =   P  R=X6&(8  QõÑ$N7'673533#3#67'5#'67#5353'673533#3#3267#"&55#'67#535.   $  2I&&.#   $ -¨ '    #  ÿåö‹%9=CRX73#735##'6553265#"&5'#5##5##"''3255#'65535#35#73&''6574',¤¤~~Ž< 4    K S‹* 6$) ))Y _F78GY  )((   pÿèöÐ(06<73&''67&''667#35#53#3##5##53'67&' 8       -&2!Z&5zl9%G >!Ð      U 8((8;   ÿèòÏ%+173533#3##"''32655#'665#535#'67&'#RTTiG ,#! IgR¥ ·#h cC524#E . "!& &"mæÏ736533#"''32665#'67#}6  #,¥S5095=(SßÏ 73#5'5367Ë ÏÁ5  ~q•îË 73&'#•) Ë, uƒ ñ½73#3##5#535#ˆe*..--(½:RR:„êÌ 73353#533­fÌ£ƒ•”‚wìÏ!73#"''3267'6765#'6&'—I$*/'?   Ï )%  uôÎ 73#7&'''6'6«-  8J F BÎ{b" $5Ar óÏ!735333#'67#53655#335&'‚#+? * # #(#6 ¯ C/!  1Rn îÎ#(73673#"''3267##5'67#'672735¬.    $ Î-7 "\< + "=,kìà 73#53535#35#35#Ù111111Ù™3!RT#{èÅ73#"''3267#'67#3#735#i   %& aa;;ÅB +;0SL({æÏ73353353#353#5335#*k(º4II4FN2DF4N~ õÐ(.7#673267#"''67&'#67'53'37&'ê+         - §"+#0\  ))&  mäÐ733#535#535#5367#'6ž 5 aNGGJ+ + !Ð p  w òÏ73533#3#535##5##535#w366.l,3m<<<³CS S5#oôÎ#73533#3#&'#5'67#535#'6**//  "&/ Ä## @@!"  s ðÆ)/573#"''3255'675#73#"''3255'675#&'7&'{5  #<9  '1  P  Ƨ 0 D§ 2 D    k ñÎ$*73'67#'6'&'&''66''6°9 *  #  H   * Î  #" 6 + '""höÏ)/7367&'3267#"&5'3'67'67'&'´    $)"   Ï2   6  ¦b9$ ' 4d èÏ %)73#"''3265'3#3'67#&''67#3#Ö  jG#4 )   MϨ –_$H  5nw ñÇ 73#735#35#3#3##5#535#bb;;;;j+3344,ÇM.,,((móÎ(73533#3#535#7&''6'''6|*,,68*W I S{{%/ '{ ïÌ"(733#"''3255##535#5#7'6'&'¬+  G-,GGGN  K  Ì8p  0†$!v   jôÑ &,7&''63#3#3#535#535#&'7'6´ # ) N--66--  [ Ñ   44+  eëÐ*0673#"''3267#'63533#&'#5'67#7&'7'6ŒS  J  '!!  @Ѐ3q @11 49  !5   píÐ!%)73&'73#3#3#3#5'65#5#35•"!!!!#g -Ð w ,.còÇ773#7#5'275#35#35#675#767#53&''67&'eN   < -@    Ç{!ƒO S;:  fëÐ@V73#"''3265#'6336553353#3#"''3265#'67'67#336553353#'67#†Z U# T  Q  & 'ÐA'  D)  A" qîÏ#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'x1*g*4,+C+9 9 ½LLQ * !  kõÏ!%6:>73#&'#5'67#5367'2&'#35##"''3255##53#735#Û -? P !0(3",,R  R 77Ï  : E 0EV( e ñÏ 0I73533#3#535#3533#7'75#73533#3#535#3#3265#"&55#'67#{,//8~4, ?E=y%   ' Á  -   (   ) m ñÐ!%)/5;A73&'73#3#3#3#5'65#5#5#&'''67&'7&'Ž$'####(n -"""""Q  T .-Ï L!! eóÊ .73#735#3#735#73#735##53533#&'#5'6~dd@@88399(08;;  $Ê-)-.A  &,f îË ">BFJ75#53#5'675#53#5'6'&'7&'3'73#3#3#3#5'65#5#35•(9 R(: L J +..''''.w 3%%%%£N  N  !   )   >  góÏ(MU`f7'673533#3#265#"&55#'67#535#'673533#3#67'5#'67#535#5##53'6652&'¶   K    [C*9  ®         F>./?$   j÷Í#Oaeim73533#3#7'5#'67#535#'635#'673533#3#32765#"&55#'67#3#&'7#'67#735#35#35#w     ?       :n  .  JJJJJJÌ            #R    9   cõÕ )-7#5'673#&''67&'767#'6'3#D  %eM '   2  3ÕJ6        MOÿé®Ñ"73#3#&''67#53655#'6s-  # Ñ&* &7& #YÿèôÍ &,7'655673#3#5##537733'67&'„@. 34,6*< 4‡*?4 15c VFHX+L[  ÿéö«@DHMQ73533533#3#3#&'#3#33#"''675#5'67#535#535#5#35#3&'#35#-'1&&&&A3( &2>##'j111[ =hh         $    %(VîÏ#'+>73533#3#3##5#535#535#35#33535#33573##5#'6556///((--00++/+D+y )H .Æ 55?66 /ŒóÏ#'+73533#3#3##5#535#535#35#33535#335‘&((%%**++&&&'<'¼ZZ39Yÿé¨Ð#)73'73#3##"''3255#735#&'''6[ M?  %%³ EG  D#< kÿèéŒ#'73533#3#5##5##535#735#33535#335t+//8&"4+-Q""4&{0 ? ## @ R‰ òÏ+173533#3#3#3#3##5#535#535#53'#535#367#$'',+$$++))$$+*$$'¼: UÿêóÐ<@D733533##5##5#533533#3673#3#5##5'675367#535#35#35#€-!!-*## 4 AG 93*GGGGÏ.  ` I  X4Oÿë¬Ï&*.73#3#3#"''3265#'67#53'7#53635#35#z +$     #!!!!ÏO4%6 O */ ÿèôÑ37;?CGLfj733533#3#3#"''3255#''275##535#535#53#335#33535#335#7&3#3#3#"''675#735#KCAA!Mb  # 1?L^J >>UCCc88J;…88J;#o›DQQi)s +EwwÑ  4   $24  )  &    VÿéõÐ &*.2Ia73#'635#53533533533533#3#7#3'#3'#33'67#&''673533#3##5#'735#yoz •s !%#,   ?"# "Ð P' 5)   ]ÿçôÐ&FJNRV733533##5##5#53&'3##'3255#3&'73#3#3#3##5'65#5#35#'3#„".."''  )_ N? %3Ï  ˜  „    U  ROÿê´Ï+/>DH73&'73673#3#3#&''67#537#535#5#35#"&55#'67#333535#W $(   ! $("16   -666´     ^   ^ 6     > RÿéôÏ4:>BT7#'6553&'73533#3#535#3533##"''3255#&''3#735#76767'67&'ô€C@<C  A<<  !( ¼M@3 1>Z '%%l  g1(  XÿèðÏ6B]v7&''67'6776767'7''67'6776767'73#5#535#53''67'6767767'7''67'677767'     O     ††ƒƒM     Q     ™  "   " :æ`D  " %   # OóÑ(9PTX736733#537#35#''673##5'673##"''3255##5#'7#535#53#3#3'35#5#O!& m'!C •00…  ”; ,.3+\ ##'R::É    C3 1 .=    3-tÿöØy"&*73&'73#3#3#3##5'65#5#35#C &x    K ‚ ïÈ159=AGK73#3#3#&'#3267#"&55'67#5367#535#5#35#3353353&'##3†c)0 -"   #$8    -'È2  $ # 2$J RÿèöÐ %+06<@DHL^c73&'73#'3&''6673&''667'6''6''67'673#3#3#735#3&''67&'#367’ ."    c    %  c + &&%%-- ?~ $#/*# » !4  0>. 0"( , *   Ið± 4973#3#53635#35#73&'73#3#3##5#535#53'#67#8'?@R --..M./%622..5!B ±' &X! > 8      OÿéóÐ'+RZ^b73533533##5##5#3533533#3#535#35#'3533#3#3#&'#5'67#535#535##5##535#35#[#-$$-#EU g    •'''''Á ' 928Z [!0 ^ÿèùÔ /5BJRX^d73#5##53&''67&'3#35#535#53#56&'73327#"'&'37'737''&'&'7&'¤:k= :  ''^((,>‚;  l 9      D   Ô         B=I  )")8H   SH   S      TÿçøÒ#6HLRXov73&'73673#3#537#35#35#35#'33#67'7536773327#"&553'#3'67&''3&''67&''667#[.  'D3F@+  f * e  ^ 5 ? " ,!  ! 6»    NN !   9 >: C, 0         \ÿçóÎ!%)/37VZ^b733533##5##5#53##'32655#535#5#'##535#35#3&'73#3#3#3##5'65#5#35#‚+""+&&n  2 3"""" F (Í   © cA # 2A|½ #    ?    ZÿèóÇ48<@7#67673&'73#3#3#3##5'#5'6555#5#35#ò{  A  bÇA+$(  n  kt 5, 7>`h,,ZÿéùÒ;?CGMSci7#67673&'73#3#3#3##5'#5''6553'75#5#35#&'7&''33267#"&5''6òz =  A7  @  À="  H F=D2 6;\  D$      # _ÿçðÑ +AEIMQW]7#5##53&'73#3#353#5335#535#'6'3#3#7'675#535#3#735#35#35#&'''6ðm=& A   @5 qqMMMMMM;( À         ;T= !    ÿéóÏ#'+73533#3#3##5#535#535#35#33535#335cggUUkkggQQc&==QA’==QA¼d$$d<>ÿçì; 7'6'&''67&'Ê "'„% #L&14M4$ "2;       ÿêö¯37;?C73533&'#'67#53673#&'#3#3##5#535#535#35#33535#335;;6:2 &E  w6) ;KKffffKK;88L9…88L9p       >  > $ ÿéí†#'+73533#3#3##5#535#535#35#33535#335;<;;HHccffJJ<77J577J5y  F  F & & ÿé™#'+73533#3#3##5#535#535#35#33535#3356991133;;//60N0  E  E % %  ÿçó©159=A736733#&'#'67#3533#3#3##5#535#535#35#33535#335? ‡3" +J& &-8::LLggggLL8::N9‡::N9–     @  @ % " vïÏ;73533#3#&''67#5367#73533#3#&''67#5365#'""'&     +'k$**5+ $  ##À       ÿèóÑ=AEIMSY73#3#35#535#535#53533#3#3#35#535#535#533#535635#33535#335'67&'GG''""%%&&""((G1æ/$6$I( %v))Ñ   E  E ! “‹@' \   ÿéˆÏ7;?CG73533#3#535##5##53#3533#3#3##5#535#535#35#33535#335433*j-4ySHH1..++1166,,1-G-Æ    ::  òÏ#'+73533#3#3##5#535#535#35#33535#335“%%%""''((##%$4$¼ZZ38 ÿé¯Ï#'+FW[_73533#3#3##5#535#535#35#33535#33573&'73#67'7&''67##"''3255##535#35#  '  (    H   """""»^))^<<[   Af  .} 1^ÿéóÇ 'B^7'6553'#3357#533##"''3255#3567#533##"''3255#'#"''3255'7567#53€\\V,7U #, ,33     4 —3F5 6?_0 7  A      \„Ð#'+/373533#3#3#353#5335#535#535#35#33535#335 444++11d33,,4-H-È /  /^ÿïºÐ 9733533#53'&'7'63&'73673#3#67'75#535#yN  L D  '-$Ï:;;2X  ÿèñq#'+73533#3#3##5#535#535#35#33535#335:=<>Q=Ž>>Q=e  ;  ; " ! ÿçôb#'+GKOSW73533#3#3##5#535#535#35#33535#33573533#3#3##5#535#535#35#33535#335///((,,11((/&=&,//))3300)),)@)\77  877  -ôÐ59=AE_ekqw}ƒ7&''67#'736767&'73533#3#3##5#535#535#35#33535#3357&''67#'73767&'&''&'7&'''6'&'''6I    "!!"  *  N      Œw–  2- )5  E  E & )   0&& ÿæôÐ!73#3533#3##5#535#'67#536j v<JJbbqqS:DÐ"** 77 "ÿæòI,767#53&''67&'767#53&''67&'/ E[   r  Kb  0          ÿç|!733#7#5'75#'67#5373#3P%%'<@1 #:C R#   ]ïÎ:73533#3#&''67#5367#73533#3#&''67#5365#'!"''   $+'k$)*5-! %   ##»          jëÏ73#5#535#535#53733#3#3##bNNBBJJ(JJCCNNÏd     7ðÐ!8PVZ735#'67#53673#3533#3##5#767'67'67676676767'67'67'673#T%' '. %‡$   ´ "   !$uEEc Z!"  #W ^ÿé­Î+/373&'73#67'7&''67##"''3255##535#35#^ (  G    ´    =d  .} 0 ÿèóÐ %73&'73#3&'73673#3##5#535#\ WÉB  9 @hUUXXj¯ +  #??#ÿéuÅ 7#'655#3#5##535#p? ?--ÅO*4!KK+2mmF4GÿéšÏ73533#"''3267#'655#_  %% £,,…w"S3 1H"Fÿë¦Ð(.47'67'67676767&'7'##'3257&'''6p     '  - N'!3#  S > "# ZÿêšÌ 73#53&'3#3##5##535#y@ >>>>=Ì @U U7%)ÿê÷œ73##53#67&'#67'H ,ÅU 'P# œ.  )HW @ôÊ"&7#3#67&'#67'5#'6553#ä«´[    N %‰‰Ê+ -'  1%22 ÿèòÏ #GK73533533#735#33533535#335335#3#67&'#67'5#'66553#":(:Ã'':(''':('½ÀS    D%  #à I- ' && -)  5$ 8eké~73#e„„~UïÏ 73533##5#UBDDBŠEEdd\%äÌ 73353#533–&ˆ&Ì”wЇtHîÏ $73#'6333267##"&5477#whr  f;  (8BÏ 1 & 0NöÇ73327#"&'5#3##5#535#T}1++**$ÇQ((*<&@>;UU;JîË-7#"''3267#53276767##"&55'753753à  " 2 «M(MHO R+&3.[ ðÎ733##"''32655#53&'¯--   TT;Î'm h'!"LíÇ7#53#3#"''32765#'65u#›fU  @))´%[  0A)&6Né 7'66553'#3} €XXv5( 'JL9&U"íÆ73#3#3#535#535#YŽ=77C˜A88=Æ.==.MìÏ$733#353#3267#"&55#5335#53’DD&:! 7#EEÏC3E' ,E3CYìË 77'56#"''3255##5•! !r %Ër € jž±RíÈ73#3#67&'7&''67#ett›R&( 3:2È+2 $ 0MðÏ "73&'73#3267#"&55#'655UA <‘q   /"ªP B" ('ZíÅ"735#53#3##"''32655'67#'t ATŠ"$$   1.>ª44A :, #RðÎ735733#&''67#7&'Z8DE'%%1 ;8k  ˜56"-%#/DE KðÄ73##5'67#&'W”9/"EjÄ †h#=,SêÐ7&'3#&''67&'767#™  /” - / `Ð$,   %[ çÏ7#5##5##535335#35#ç)';;'';))§k@@ j((J777O ðÎ!73533533#3##5#'67#535#35#V#$((++%"(*#7$$¥))))+EE- #+++QèÏ%73533#3#3#"''3267##5#535#535#R>DD99C  .??22>¶2 AAQ èÐ!73#3533#3##5#535#'67#53‰OV $44;;HH9 !)Ð !!&&M߯ 7#5#'665535#&'ÜO OO&!%Æh4( 'LE2S%##bèÏ 73533#3#735#b.DD:|TTr]+Z4JóÈ #7'6553'#33673265#"&5r‡ccN% %+ ! ,ŠG#ED>,#  "  KðË73533533533##5#3#5#5#KDvŠv++..--HH[n555DöÏ 473#'6##'3267#5;267##"&55'753753noy } $   = Ï <962  6!]éÇ7#"''3255##53#735#é  d%AAÇ  …¤·,Z5GíÏ"&73533#"''32765#'6655#7#5##535#Q&  & œ¬##v! J["32%© ªŠxLîÏ$*7'673'673#"''325''67&'x   j >   ( k  ¡ "'  i  P, $"") *"]áÎ 73533#735#33535#335]97„%%9#\%%9#§''‹O(((d)))bâÐ 73#5365#35#”@€*=XXXÐ šš L..F3P ìÏ&73533#3#&''67#53655#'6t55?D&* 2@G# È'' "%#"  M ìÍ73#3#3##5#'6yiUJJLL Í "* 'D òÈ "73&'#'3'67#&''6° G-  5  ÈCbº >+'L     "N ðÏ73533##5'67#7&'&'W>@@':u  ¤++„f3!<<  E$+ -#QïÍ!73533#3#67&'7&''67#535#]9>>ER#% 385E9«""* ! (JòÅ7'67#53&3#3#535#¡ , NRk !%au3B”>.‡& ((XéÄ 73#735#3#735#X‘‘iiCCĦ€R0[çÅ7#"''3255##53#3#735#ç  dPPBBÅž  †¡´%F&KòÏ"&*7#"''3255##5'67#53673#35#35#æ  P #2Vb PPPPh  *n   #0SðÏ%73#3##5#'67#535#5365#'&' "((.% T .   Ï*EE+*Q**e  H ôÑ!'-7&'3##"''32655#'6765#'67&'¥9—0   (    Ñ "n i9' >' $ " QñÈ '73#3#535#33535#"&55#'567#33275Q 6-’,1D?j   Q È‚‚ˆ 17 (,3PìÎ73533#3#535#3#735#PDDD9†9DwwOO´?L&G äÊ '+73#"''3265'3#3'67#&''67#3#Ñ   Z.+B 5    ]ʤ ˜ d&J  6uFáÏ!%73#"''32765#3##5'635#35#w^  SC6  ####ÏvYY ^ 77KñÏ "(.73'67'6773&'3267#"&57'6'&'€6 , &    3 n  Ïb8$+KN=  –   ^æÐ73#"''3255##5363#735#’I  `( <<Ð Œ  t‘¤,W4[ãÏ"(733#"''3255##5335#35#'&'7'6•8  Z6"ZZZZ x Ï5r  ,‹':g   NëÅ $(735#53#3#75#35#"&55#'67#333535#W,55+ŠN*c Kcccœ……R!" !aI ôÌ573#&'#5'67#535'2#533#"''3267#7#'66Ø  E6# (& $7D5@n '   , ( Ì  r+  NðÆ773#67&'#"''32655'67&'5'67&''67#W9 ' ,## %  )>Æ        N óÐ.47&'3533#67&'#"''32655'675#&'Ç  `>DD     " )>  Ð %%2( #1  I êÐ*.273673#3'3267##5'67#735#53&'355#z !8F1% &/5># _Ñ 6 32 TîÇ !-73#&'67&'6'&'63#3#535#Y••  k  "  <‹@F˜@9Ç      <$$EóÏ9?7367&''667'#"''32654''67&''67&'76'6µ  4          Ï4  &- 96( 3      " PðÓ 73&'73#3#3#3#735#PB F ‚‚‚‚XXµ ?ZéÉ#'+/3733#"''3255##5##53&'767#35#35#35#35#ZŒ5  +)?  j))=++=))=++É q ((+„   E7NìÇ73#33#537#537#35#3#735#T–RFž($15>81‚‚\\Ç,?=?IòÏ273533#7#"''32655'75#73##5#'6556P  "– ">)®!!&5 ) ,, "gg 1+ &)OVëÆ73#735#3#3#3#535#535#`||VV†;44D•?339Æ@;LñÏ73533#3#535#'63#735#t88F¥L$ ~~XXÌ OD!KèÑ:767'7&''6&'''63&''67&'767#'6‹!  4:!D8 %=   *" 7 %Ñ          F óÒ773&''67&''667#3533#3#3##5#535#535#‚K )!#0'  %  C'<??77FFBB33<Ò      CO îÏ#'+73533#3#3##5#535#535#35#33535#335PEEE;;GGFF;;E((:(b((:(¾WW33QòÈ$*073##"''3255##53##'25655##5&'7&'Q¡¡G  ” !)aÈ~  g„–~ g†˜*K öÐ26:@735333##67&'#"''3255'675#535#535#33535&'`4::     #(55II4F'''l Á""     #%  KïÆ'-37&'#"''3255#535#535#533#6'&''6Î    Gs\\fzHZ  /  (m    GB    PçÉ$(,7#"''3255#'6553533#3#535#3#735#ç  b!U!FF&&É¢  ‹C:) ,3M(23EïÒ!%)73&'73#3#3#3#5'65#5#35u+ 0911119‹ >,,,,Ò q &/OîÏ+73533#3#535#'67&'3533#3#535#_655C—@6 ]X566D™A5½*    #N îÎ4973#&'#5'67#535'23#&''67&'67#5367#Ò C2 %# .A/:[# . % '1#- Î  Q     - BôÏ#)9733#'67#5367#'6367#335&''33267#"&5r?2B0 (.=6  #)<*     Ï A0#A  K4  & P çÉ!%7#3'67#&''67#5#;5#35#çMJ\SB   ,VTÉH @2  H$$$$LïÍ)-73533533##5##5#'67#53673#3#735#Q!3$$3!$  '2;LU TiBB¼^    L'GðÎ!%)73#3#535#'66556535#35#35#á 6;;.j)8  T !FFFFFFÎrr=3 .<2#C1/M ïÆ 27'66553'#335#535#53&'73673#3#3##5#t ‡aa_3((. 0))443“ 6* 'L3"l   EðÏ)E73&'73#3#"''3267#'655#73#'63567#533##"''3255#J+&   c8? % %;  %° O"?=& ';0  Q  * 'VëÈ"&73#"''3255##53535#335#3#735#Ö   mAH//HH$$ÈH[  D\nHH7&55E ëÉ%)-373#3#"''3265#&''67#'67#735#35#33#_Of  .   " %ZZZZCUÉJL3   - ) P"M ñÏ-373533#3#3#3#3##5#535#535#53&'#535#367#W>>>H!&B99EEEE99B"H>2*>¾  7 PôÑ;7'67#&'&''6733#3#353#5335#535#'6t `:   %L>[7DD"'HH u %   ''(  UêÍ'+/37;767&'7&''563#"''3267#'67#3#735#33535#335…    +Q    Aˆˆ&&8)a&&8)Í(   D4 $0&JR21BøÎ-LRX767767'7'#"''3255'67'67'6367#"''3255'67567#&'''6á      8€E    0˜  3 Î (  5 .= 4* e   KêÈ %+73#735#3353353#''67&'&'''6UŒŒ(<Z5ÈF#####;mh     HïÏ#'73533#3#535#735#335#3#535#35#X;88H§K;'';$nr†ZZ^^à +   ?, ,b C JïÌ 77'2'6'&'7&''673#3#353#5#5335#535× 9RD< _  ?   dE73533#3#&'#5'67#535#35#33573#&''67''667#I###    !#" ..    ¼> 78>?"""A$! 0  PïÏ#'+/37;73533533#3#535#5#35#33533535#3353353#735#35#P100'Ž)1[**i*tWWWWà  FF  ( 'E) ' EðÐ#)/5;73#3533533##5#'6553&'5#&'''67&'7&'¨;€'LC*'A  R  -0Ð  .. 2& '.Eo G ôÈO7#'7655#'65535#35#73#67&'#"''32655'67&''67&''67#Œ   0Z&       !È   !$ %.Y4#W$W        M óÏ.2:S73533533533533#33265#"&55##5#'67#5##5##5#"''3255##5##5353P    0 RTtˆ  -º   $$ ''+(  ::,<LíÌ#0=73533533##5##5#3533#3#535#7&''67&''6L"4$$4"6::FœC6  \   ¾`KK\    L òÑ-2=AHLR73673#3#3##"''3255#535#5365#53&'3535#"&55#567#333535#&' "(90!!   ssi08+'=l  "N lll  Ñ   U   U 8    7 5 M ïÏ 0J73533#3#535#3533#7'75#73533#3#535#3#3267#"&55#'67#e044?‹:0 ( Q!PQ˜0  - (( /   )  ! JñÈ37;?CIM73#3#3#&'#3267#"&55'6765#537#535#5#35#3353353&'##3O3+HZ  P )  2* "30*2Z((SH13==È .  + (  . AM ðÌ)-AEKP73#3265#"&5735#'#326565#"&55353533533#3#535#35#'67' G7   &&5   %.!(%%-£*!3(( K /Ì/  &0  ES &   J éË(9?EIM73'767#533'67##"''3255#'67##"''3255##5'67&'3#735#O<  `1   - $7–   h/  3 (@@¨       $S  ?Td   ( IðÏ#'-373533#3#535#735#3353#735#35#35#'67&'X9<Ç(   :W> " !   C ïÐ-`733#3'67#73267#"&55'75#'65533#267&'#"''32655'67&5'67&''67#‰JJP?46  %$ !8}=   #&   $Ð       ='& %LA           JîÏ ,9F73#&''673#&''63#3#535#&''6'67&j(  P/   MŠ>GœC: `   Ï     #QQ     &  CòÏ -L73#53635#35#73#&''67'767#'63#3#"''3267#'67#53&'nL ))))V1       4&8,    +Ï II '-='   &0%P ïÏ6:>BFJ733533##5##5#53#"''3255#''75##535#53#'35#33535#335'#u-))-%%w   %-(.A9‡<8&&8)a&&8) Ï  k9  $ 8H CC 2 % A AñÑ=CGKQUi733673533#3##5#535#'#"''3255##5#'655'6367#35#33535#73573#"''3265#'67#f   ""      *  L  ÑB%%  4 33 !)(  ,; ^.$ M ïÑ Y73#5##53&''67&'3673#67&'#"''32654''67&''67&''67#53&' CzE  F *)D      "14%-+ #9+Ñ             F ñÈ &*773#735#3353353#3#7'5'67#735#67&'X‰‰%†¨¨{A # #!WW2   !$È3. ,     #    MíÑ !%)73#53&'3#735#3#735#3#735#35#3#œH B2ŠŠbbDD!!+wwSSSS!››Ñ %A ' ,5!AôÌ"&*.>767&'76'3'67'767#3#3#735#3673#53&'Ô  6uB6 -*@@yySS  )—$ Ê4.  " 2&   C ÷Ë"(9JZj73#3#"''3255##5##535#&'''6&''67'7'&''67'7''7&'7'''7&'7PE@    ..@FpB # e    8    F    7    Ë} h€€~  *         &  KðÓ"(.2673#3#5##53&'#53635#35#35#'67&'3#735#†L?IF1(aaaaaa 4E€€\\ÓN N   0 .L ðÒ"(.J7#53673#3#5##53'35#35#35#'67&'3&'73#3#"''327#'67#“1&=2E~L#RRRRRR  <U? 8WR  C  $~FF:-       P ñÑ !%6<IQZ`fl7&'6'&'6'&'63#735#67&''7'&'733265#"&'37''367'7&'&'7&'Ï  '  +  jj   R 47  U .   >  Ñ     !F$  .  ! ##); F7B     LôÒ#'+/3_e7&##5'67&''673'67''5#'#33535#33#67&'##'3255#&'#537#537#'6»"†     NJ  R)''''))M„E    ! xcfs3 &©&%  !        3  EìÉ#'+IMQU[ag73#76767'7''67'67#735#3353353&'73#3#3#3#5'65#5#5#'&''&'''6P—      ,4T %#   É1  "   % P C ñË#6:>BFJVl73#73##5##53#5##5&'7&'#3#'6553&'75##5#35#33533567'53373673267#"&5KPPULL $–&1 ] 30(ƒ D.X3 "     Ë#$$# ) . 7 0    ’ÕÑ 7&'6'&'67&'6 y N Ñ    ÿö”Ê 7'7537537'6'&'Ž7G +   W  % ·³±­;/ .6.88. ÿò”Ï"4767&''67&'373#'67#&''6767&'*   " 1 8?!)d %*Î     L 4! ',  2, ÿê£Å573#7#5'75#35#35#75#767#53&''67&'o  B -?    Å($˜$$[%`$69mÿêöÎ !%8<@7&'67&'67&'63#735#3267#"&553'#37#3‹ 3  6 \jjFF)  3*o?.Î    4,b W:* ÿæ™È )373#735#35#35#'33#&'6'&'67&'64XX4444445s†G      i   ÈaF & & :b   ]ÿó©Ð &73#53635#35#3673267#"&5tE   Ð bb 5>4     ÿæ˜Ï#37;?C73533533##5##5#3#735#73#735#3#3##5#535#735#33535#335 ( (88688Su2999900O0  --&L  . * ÿð¡É#+/7;CG73#3#5##5##535#3#73#3#73##53#=##53#=##53#=#w4@..@2 !!>""C&&C%%G+ e) 3+É*;;,0 ]bZ 11]Z 11^Z 11 ÿé—Ï '+/3DJPTX73353353#3'73#3#3#3#5'63#35#5##"''3255##5&'''63#735#" y/2++++3u 2!!!!!g  ]O   ::Ê   /    ? ,CR   ! eôÏ 7&''63&'73'67#€14 65*: A? 8  vÏ    yêÑ &73'67#&''6'3#5'67'&'Ÿ=S K6  %>"%  Ñ2 $  V  (  n­Ï73533#3##535#35#n'¥***Sb*k0oÿíôÏ!)-157#5#'67##535333267#"&53#53535#35#35#ë1- . …   º.!(1/'(  LLL;;;;;˜ îÎ"73533#&'#5'67#7'6'&'   ?0   MM9=%LlÿïóÏ 473533533##5##5#'67&3#3#3#535#535#q##= + EO((1t0''¶'   qÿðôÒ#'+73#3#5'67#53635#3#53535#35#35#§=EEY  &33L €    Ò:&  X9LLL:::::oÿïõÑ)-5=AEI7#53&'73#67'7&''633265#"&5'3#'3'663#53535#35#35#œ&03>  +08   ` †  ¬    !  #43 'AAA11111 rÿêòÈ#+/7;CG73#3#5##5##535#3#'3#3#'3##5##535#7#5##535#7#5##535#{p/6$&8/I:9%%E&& C C È .??. (  l lO?l lO?l lO?fÿéõÏ%;QW]7#'6553&'73533#'#5'67#'3533#'#5'67#3533#&'#5'67#7'6'&'óo ;  6   --"   !W 6»Q96 -7a %    Z!! +( /   ÿæõÔ)-159FK\bfˆ73#3#35335#535#535#533#5##535635#3#3#735#3#3#5365#5#35#"&55#'67#333535#3&'7&'#"''327#'67#5'6C $^'!0Ã->>55.. Oµ>D¾>=g<š2   #h-ššš o (   8A 31 .Ô  AA ?#$9=6 * ??! +    ’êÎ 7'67&'Z),c' ##Î bìÐ 73#'6'3#'3#7&'–NW =/” Ð  !$^WR Gÿô±Ð#)/7&'3#3#7'75#535#5'6'6'&'z  =""(+6*%% !4>  Ð= A  dvÿéóÊ.373#367&''66''63&''67&'#367zrr1   %!#  h      Ê    #L    \ëÐ 273#"''3267'67&'775#'63533#67'75#ŽQ  #  !F m#)1(#ÐF      " '[ÿé²Î73#&'#5'67#535'6©   'Î ) r_!+$d~É 7#3#3#535#35#5#~g AA É)e*) WÐ 733#3#533#7&'''67..7t*0  6  Ð 97    O`òÏ,73533#3#3267#"&55#'67#535#'6o77D/   - ')E&Ï      oÿéóÏ'/373533533##5##5#3#"''3267#'67##5##535#o++w  ,* $'sJJJ»9 "/$EP R7&iÿêóÐ;AG73533#3#5##535#'67'6776767'7&'#"''3257&'''6p4557\647   "    '1 ·)'x     1  !   HPòÒ-187#53&'73#&''6&'7#633267#"&5'3#''66€&=?"6=S + !   *&%  ²      "+*&  S÷Ò)-BHN73&''27&''667#'#5'673#73533##"''3255#'67&'‡P &%  FL  A?? A&R Ò    XA V*     Xÿè®Ð&,2767&''67&'3533##"''3255#'67&'h        9  Ë    XT Q   ŠòÌ#'+73533#3#3##5#535#535#35#33535#335Œ())%%--**##(#6#»XX48/ÿíô\ +7&''63#3#3673#53&'735#535#Œ(5<-!- 4_&HH&»&EE&\           F‰Ï 73533#3#535#'6553'#3#5#011(d)0b(Å   M .\ÿë’È73#3#"''3267#535#\4!   !"ÈK(H" ;J)bÿéöÐ "O73#'673#'6&''&'3533#3#"''3255#&'#5'675##535#"( H%+$85;;8  &' " (!35Ð      ) $9: $.?Zÿé¬Ð(,073533533#3#535#35##"''3255##535#35#^ R+   #####¶ . ) ** ÇI`  LcrII9$93  iÿêòÎ!'-39?V\7&'7&''67&'76'3353#7&'7&'&''67&'3&''67&''667#© %   MW} E   N+A  "   4Î        LM^H   "          VÿïºÐ 9733533#53'&'7'63&'73673#3#7'675#535#uS  U H  "%'- Ï:;;2X   QïÏ#'+/8BKW73533#3#3##5#535#535#35#33535#33573#&'67&'67&'63#3#535#/++''))11((/)?)ee '  *  DX$,i+"Ç :   :  :       $ añÑ "(,04873#'6'#3#3#53535357&'3#735#335335˜KS '""&e==q 'jj   Ñ +h / 0†óÏ#'73533#3#535#735#335#3#53535#%&&.m.%$ @EV//33à (  B, -fJ\ÿéóÏ*17Hd73533533##5##5#3&''67&''667#'&'333#"''75#73533#3#3##5#535#535#`$%&&%$F/     $1!''0/ +%%%&&%%%Á      1T F      ÿéôe).Y^7&'#3#3673#53'735#535#5'63&'''#3#7677'7&'735#535#5'63&'² ** m ,, &,  f &&  09 )) ";e               `ÿéõÏ159=AGMShn73533533##5##5#3533&'73#3#5##5##535#5#'#35#'35'&'&''673533##"''3255#&'i #### !+ .('+R'%F  G G À    D E "  E     *' %    ^ÿéóÐ MQU[_7#5##53&'73533533#3#3#'#3#33#"''6735#5'67#535#535#5#35#3&'#35#íj:9*#  %--D  &  "(> 5 ;;¿'(        '     )$fÿéðÏ(,04S[_73353353#3#3#3#3#5'673&'7##35#5##"''3255#&'#5'67##5&'7#35#r"6 .1****2u   :9!!!!!f   : U  Ê! ,    ? ,  CR%   YÿéöÐ]aei733533##5##5#53&'3353533#673265#"''67#53#3#367&'#'65#'67#535#35#35#5#ƒ&%%&$$] s K    .0 ;  <  Ð  '$ E. ( s+ G@4* )-!  22^ÿîóÍ #'+/37;K73#735#33535#3353#735#33535#33573#735#33535#3353533#3#535#orr/N/mAA  !  BB  !  y999B•A9ÍF* ( %K-0+K-04 HŠÏBH73533533673#3#3#35#535#53#5673#35#535#53'#53&'367#   111&j /// *%Î     - 40  -  'Wÿé´Á7#5##53'>&'¯,   Áš‰Š›'O0&  #*0 ‚ÿÿÕ•73#3##5#'655#535#35#‡K •+GG)  +++‹Ç 73#735#35#‹<<pBP"lÿéëÇ &7#5#;5#35#'673'67#&ëxDC A0 M8 ÇLL****‚% 2 ; Uÿë¤Ì73##5#'66556š . "Ì %††=3 3C8_DéÏ 73#"''3267#'67#'67#'6ˆW   /)"  Ï R::' !3)  _ÿéóÏ ;7&''63#3#735#3#3##"''3255#535#535#'2¥ " " " 0(( hhFFX 300;;   ==448Ï  )     Xÿè¦Ï /73#53&'3#735#37#"''3255'7567#IDDD    +Ï  330  kÿèéŒ#'73533#3#5##5##535#735#33535#335t+//8&"4+-Q""4&{0 ? ## @ RZÿë’È73#3#"''3267#535#Z6 "  " $ÈK(I!6J)ÿéðÈ(7#3#3#3#67&'#677'5#535ÜŽ„„„„Ÿb  &R / 5/) #(È  PM   VlÿêìÎ73533#&'#67'5#7'64–]D M# 4¯#3 -s[[? N\  lm +F-·?73#Fqq?9Ãd 7&''6w&  % 8d:Ã` 73#3#3#@||oo ‰‰`9ÿñÅa73#3##5#535#Dv1<<<<1a44@ Àc 73353#533v"€"cH9KK97ÿðÅh73#3##5#'67#535#5#Bz""%" !N$h55& 5Ìz 73#53&'3267#"&55#'6659ˆ:3   )  z (*  1ÿöÊs 73&'73#3#"''3267#'>5#6D :YO  >))[  . -ÿ÷Ãv73673#'67#&''6767';/EK1 ((g +0 e (& ,):Æ`73#3#3#535#535#Eu0--<Œ<..1`1Åv&7773267#"&55'75'75'6§68CE  ) 7:,/ÿï¾h 7##53#5##75#'#33535#u%€%7%%%%%%% UU /Z=ÿð¿w"73&'73#3#"''3255##5##535#=5994  "17d .  BB1A6ÿîÈk73#3##5#535#&'7'6@}4????5V  k.--. ;ÿóÈi73##"''3255#3#735#;   c BBiK  G/8ÿêÈx%7''6767'3533533##5#'67#-2  V#$##&% p   :..+1ÿüÐy#)7&'3673267#"''67''67&'€  & #   ~  y   7+ 3  5 6Ée73#3#3&'73#535#535#;‰>55 “>009e 1ÿïÐx!%73&''67&''667#3#735#fG '*  ) 8%jjDDx    .50ÿôÌs27&''#5'6767327#"''67&''7&'3¨   C  u/     s   ^F  #  =ÿøÇu 733#67'7&''275#5335#35#v22  /=44!!!5 u:  :)Gÿé¿}$7#67'53&'73535&'76¶]  - 1KKK  $iC$  r      BÿþÂn 73#735#3#735#KkkEE€€ZZn/.3„Õa 7'67&®   /4/ÿñÎ|'159=A73#&'#3265#"&55#5'677#5363533&'#35#33535#335xB * * !1  ,E,| 3  / *  ! 8ÿïÄ|"&*73#3#&''67&'767#53&'7#735#35#Hr8:# ' _:/NNNN|;    % 3ÿý¿w%73'67#'6673#35#535#53#bA  8 ! %%Y''';w  #    C+ÿðÔt,2873#3#"''3267#'667#53&'7&''6&'&'X*&    [      t  9 %) (      @ÿíÈz#'+73#327#"'#7'56'#55#35³ 4- 3. C,gtbPPz       ; 1?? 3ÿïÉy%)-373'33&'73#67327#"''67&'#3#735#'64M 4      O@@+$&f  % " 1( 8ÿéÇ#973673#5##53&'7'23&'767#53&''67'¹ #  k @"& ) D\  )  !! &  7     5ÿéÁƒ!%).73#3#3&''67&'7#535#735#35#35#67#Cw:<>:>>o0)55;ÿïÉ~ $73#3#53&'#53&'367#3#735#35#‚6&Ž$6*$jjEEEE~ ) $E* '1ÿðÌs%+7&'73#3#535#535'635#'&''6F ,,"W",,!/33@   s  55h6    5ÿéÉy!'+173533#3#&'#5'67#535#35#&'735'67>BB7. ! &+4>"" 0%n  7  **7 1  1ÿðÇ{!%)73533673#3#5'67#535#67#35#35#E*! 46c#87*E @@@@m   J6    6,8ÿêȈ$(,047373#33#&'7#'67#535367#5#3535#5#=:7<8/ (  &)5jOOOOOOO} O  O 1ÿêÅ"&*735#53673#3#&'#5'67#735#35#35#7@2*82<0 % #. RRRRRR!Q  Q  $ Q  >ÿðÂ| &73353353#3#3#735#3673#53&'F! s llKK"„!u &  6ÿðÈ{"*.2673533#3#&''67#535#&'7#23#53535#35#35#F/11>$ 17'9/T H ’ #"o      # &&&.ÿðÔu1?73'67#'6'3673#353#'67#53365#53'&''66˜/ ! Q  ""  $ o   u     -  - !  3ÿêÄq!%+17=7#3#3#3#"''3267#55#5#5#&'''67&''4'½1))))8  n6%%%%%GQF q .T        0ÿñÅ6:>B73533#3#&''67#5365#73#3267#"&55#'67#735#35#35#7 @J  ((((((j     !V"  %& = " " 8ÿðÈy+/73533673#5##53&'3#3#3#535#535#735#U  l Z$339622$88v   ""('   /ÿðÑ8<@E73#&''67&''667#'367#533#63#5'635#35#35#675#—/       m*);  9           = G ' * .ÿïÌŒ-AGM7&'#5'6'3#735#3#"''3255'675#73#"''3255'675#&'7&'|"! H 19!qqMM$D  4JD  4< S Œ    8   8       5ÿéÊv #'+/73#735#73#735#3#3##5#535#735#33535#3359@@ =AA!!W8BBAA7%%7&]%%7&v# # 7" 9ÿêdž&*.26733673#5##53&'733#735##5##535#35#35#35#v  j  "XX77YU!!3""3!!3""† (( $ DD # 6ÿìÉ~ 2673#735#3353353#3#67&'67'5'67#735#A~~!u’’t1     #&RR~%  !   /ÿóÉ…;AG73533#3#3#3#3#3#"''75#5335#535#535#53&'#535#367#'&'c(''.*&&--/30 #'**&&)/(&F   z   2?   , EP¹c73#Ettc;ÄŽ 73#3#3#Dxxpp ‰‰Ž O"­73#735#O^^66_9?¿‘7#53#3#3#535#53t/r/++7€5**"&&<ÿüÀ§%735#53533#3#3#"''3267##5#535#F+0066//=   )55+n+>>8ÿ÷¤733##5'67#53&'u77 *8.  ¤%vg0 .( < ÄŸ7373#'67#67'7&''6C+>C&F  "&… :$$,-   R­ 7#55#35­[H55ww2 !!=ÿþ¼£7&'3#&''67&'767#}  (y% #R£  !  ; ħ 73&'73#3267#"&55#'655A53|\   $ ‹  F >  :É™ !7&'&''33267#"&5''6~  C  <   ™ H G' Hÿõ½“ 7#53##5#;5##;5#x0u2-ff8*@ÿòÁ¨"7##5##535#53&'73#3#"''325¤.575:0   P^^@Q > >ÿö˜7'75#53#7#55#5#75—Vz,,,,[V&#7á*73533#&''65#'&'333#"'&'75#h%%     # 9 (* }$$   . -?  1<½¡7'7&''275#53533#535#35#ž,:-----&#AA!2I ·œ 73#735#3#735#SYY55nnHHœ?=C!4É 27&''#5'6767327#"''67&''7&'3§  > q/    pS   %  5ÿþϦ $73&''67&''667#3#735#f? & $!&   !  4ffBB¦       K>Lÿö¹¨%73&'73#67'735#35#67&'L*%Q  ????  #‘  T1 p3(  ?ÿöÁ¤167'23#5##536'&''&'3&''67&'#367² -@5* _V  T     ¤ ##    ;   HÿõĦ$(,073#327#"&&''#67'56&53#735#35#§.(    . 2 aa====¦    J :M-- ;µ§$7'673'6735#535#53#5673a  @  >L#5p€  T^[  1ÿ÷Σ,2873#3#"''3267#'667#53&'7&''6&'&']%"    Q      £  J46 ,7  !'  6ÿì¦!'+173533#3#&'#5'67#535#35#&'735'6<;882&  !%2;  .   ’ D;:D B'  ''   6 ÆŸ &,73#3#535#535'635#'&'&''6³ (( P&& $,,4   Ÿ<<}a    $ 9Æ«!)-157#535#53533#3#67&'7&''63#53535#35#35#j*7,,,,8@  ,1^r      /// ;ÿòĨ!%+173673#33#53537#35#35#35#35#'67&'E-6<4‰(<<<<<<<< @ ˜WW      7ÿøÊ©/5C73#67#'6'3#753#5'67'53765#536'&'&''66›# $    !' _  ©   '7% .$ '  6 %7ÿøÈ¡8<@D7'673#&''67&'767#5367#533#7#5'77#335#75#ž %      g +';   )s )2    # I!Q0gÿéóÐ73533#3#353#5#5335#535#p266>> e;;2¦**$W@\ P?W$ZÿóòÆ&,73#3#"''3255#&''65##535#33#fŒ9.    +A †˜Æu  `  )|&ŠXÿéóÐ 47&''6367#53&'733#3#67'7&''67#¡& $ # 3= P. $ v ŠJ!  /5*Ð !W        YÿïôÐ?73&''67&''667#35#53#3#3#3#535#535#'6F  $( #   8"Y#7722?–C//'Ð     P YÿïóÐ!73#35#535#53#563#3#535#”$$\&&%9„…:AšE7Ð rh‚,,} îÎ!%)73673#3#"''3255##5'67#35#35#†4=H   0  #0000³  j  )q :4MÿíóÐ77'67#5373#3#3#535'67#5373#3#3#535‚  # !+KRW1;Š<# ,!+KRW1;Š<   t   NÿéóÐ"(.473533##"''3255#735#35#7'67&''67&'j211   1QQQQ [B b†JJU0 -23r  Ž }îÐA73&'73673#67&'#"''32655'67&''67&''67#… +        "«             u óÐ-1573673#3#3#535#'67##53#"''32=#5#‚?GH &^&   $W   222À ‰bQ +  VÿêðÏ 159=CIOU73#7&'''63#3#3#3#"''3265#5'65#5#5#&'''67&''&'•, : [ R2....8  pG&&&&&B  L F  Ï9,      0 G(        ÿéuÏ*0673533#&'#5'67#3#3##"''3255#&'''6**    !UU e(  *T  5  ¼  $# 6=  9  ÿéóÐ%)-73&'73#3#3#3##5'65#5#35#H=  HPFFFFW° )SCEEEEÏ !!"‡ 0&!2!!4"ÿêòÐ#'+/5;73&'73#3#3#3##5'675363535357&'''6µ *GI>LDDDDPª >)[FFFFF8n ¯  zB9 F##°  \ÿéð¯#'+73&'73#3#3#3##5'65#5#35#! $*$$$$+b!5$$$$$¯   x ("+,2ÿéï#'+73&'73#3#3#3##5'65#5#35#\. BD====H‘H77777   W!#˜ñÏ73#5#53733##VGG@HHÏ7 ÿéæ>73353#"''3255##5## N'Q  +N'>&&= *''Eÿèí¨<@DH77676767'67'67'6773&'73#3#3#3##5'65#5#35#(   = + N  &+####+c5%%%%%l (F$ &$)   u !"**ÿéê› .26:73#735#'3#735#3'73#3#3#3##5'65#5#35#Š\\88‚]]775UQGGGGU«UCCCCC›//$    I    ÿí†Ï !%8<@7&'67&'67&'63#735#3267#"&553'#37#3& 0   0  PYY55!-& f>,Ï       2.d U:* ÿéîÓ*26:>Oae7'67#53367353#3#3#3#3#5'67&'7##35#5##"''3255##5'673'7&'#735#. 1PZ QSIIIIZÃa 9AAAAA¬  §3  ;  `<<•      7     > *CR.    ÿçõh#'+IMQU73&'73#3#3#3##5'65#5#35#73'73#3#3#3##5'65#5#35#- O )h"&!!!!*Y*g   F  [  A  "ÿéÛN 73#5#535#535##¸§§žž¦Ne  ÿçõd#73&'7&'#"''3267#'67#5'6T m 9  : M D '2b% *3  $  ÿéóa#73#&'#'67#5353533655#335ÕX;FRA]ML6:L=T( &( ( (  ÿæñl  7&''6&'67#53&'|/8 56*8 L& g‚!-l   5   ÿéóa73533533##5##5#35#35# *h,,h*>hhhhOTT< ÿêód)-73#"''3265#3#32767#"&55'6358   „h]1M  Y? Jd;-   4  ÿéîd)733'67##"''32655#'67#53'767##·B9 "B 9!T[ —d   ( $#  ÿçóx773&''27&'767#'636733#"''3267#'67#Uo!2F*)>"/ c 'ES E; (7x      B!   ÿéón 73&'73#3#3##5##535# eiæ ¥¥¥¥¥]   00 ÿéõc473#3#535#535'2'3333#"''67&'767#'7#Ò<<3u/88)4‹B ZC=a    )c      ÿéóe$(7#3#&'#67'5#'665567#'3#é¶¶ "R  †= U‘‘e#  0( 1" 3T 3Uÿéï` 73533#3#"''3255##5##535#UCDD<  )&9CT - ;;0Aÿïï[73#3#3#535#35#'6'&'1žžÈCMÞK?R W ‚  [////    ÿèìl#'+73&'73#3#3#3##5'65#5#35#:;TSHHHHV­ YCCCCCi  H ÿéów4973&'73#3#53&'7367#3673#&''67'67#67#\U6=Û8@‰J†8 &) /))L = ; ;| F g .     ÿéó`&,287&''6767&''3#3#"''327#735#'&'&''6Û$$}C/1  1+1(  - #*88  C. (+       _ÿéód733#3#5##5335#ŒTTGc-ccdG G. ÿêö`,73533#&'#5'67#73533#&'#5'67#,)) "t&.%  N  7A#ED Yÿéëk7#"''3255##53#3#735#ë  lVVNN,,kk Vq‚ . ÿéâa"&*73533#&'#5'67#7#5##535#35#35#*%%  "ÏDDDDDDDO  7> " t t *,ÿêæW #7#5##535#7#5##535#7#5##535#RpsWmmN=mmN=mmN=ÿéöh .77&''6'3&'73#7&''7&'7676773'67#²  *Œ($`¢4*5   .Z# Bh     2 #ÿéçz!%73#735#3#&'7#'67#735#35#35#.¡¡{{°7$# '' , !/ ( ;ŠŠŠŠŠŠz! H    3   ÿéès )159=A7567&'7&'773#"''3255#'67##5##535#33535#35#6   / Rf + %"Y“??QB“??QBB>*   $  +II (ÿéór =7#5##53#3#67&'#"''32655'67&''67''67#ä¥#††(×h  ).   2? B3,6 5+2.Hr""          ÿêòt39?7'63533#&'#5'67#73533#&'#5'67#7'6'6Û! !º   J   „% #0 .t   G@  HB   ÿêõpGa73&''67&''667#'67#533'67##"''32655'67#53&'36533#"''3265#'67#•G    + 8o B[#   &0 S'2   "/ '#p       . $ -(    ÿéòq#'->DJ73533##"''32655#'6553'#33#7&'3##"''3255#&'''6—4   4foMM>IIl  bY$ #K  7  [F A' $7)        ÿèív $(F73&'73#7#"''32654'7##53#735#367#537#"''3255'758‚Ü  (jjGG Rp $  ?i! #u†# 2    ÿéòo (.4:@7'6'&'3#3#535#535'67'67'&''&''&''6à>NKq ¸ #IIA”@II=A2 2G * o  #          ÿéåq #04875#53#5'675#53#5'6'&''&'3#5##53635#35#`K]%.N`!)  j WT‹F9‹‹‹‹P9  :     GG! # ÿçóx#'+17735#53#3#3#535#735#33535#335#35#'67&'4&¶+99@ã>4 ??R@’??R@*CCC '/ *e3$ "12 <<   ?   ÿéíx"&1>D7&'73#3#"''3265#'67#735#35#367'5#&''633#;  GnBX  U  LLLLo5  $  *?Px  :4   # J  E   Tÿîów'+/373533533#3#&'7#'67#3#5#535#35#35#35#\F+  $  !uˆ&FFFFFFn 4   "04    ÿîòu)6:@767#533&'76767&'#5'7&'3#3#53&'#735#367#*  C[ G   b" # ” <Ó:pp6J]       )  ,  ÿéót26GKO73#&''67&''667#'3533533#3#535#35##"''3255##535#35#¤=      &–|(?  =====t        B T  ÿéòm59AE73&''67&''6267#'3#3#67'275375#735##5##535#’A !!  6}Q-7"--¯666m     3 /-899 9!ÿéö€3V73&''67&''667#'#"''3254'7##53#3#3#3#535#535#'6735#‰L +"%$  <&   aV"6633A•B--' "€    " #}6      ÿèøs7;?DHL7&''33#67327#"''67&'#7#5'35#53&35#35#675#'3#735#ß$2/    .-/ šy>>>>>``<OSW73&'73#3#53'#37#733#3#3#3#3#3267#"&5535##"''3255##535#35#*+r(%QUUMNKKKKGG$ -' NM ;;;;;o       MA  R ÿíòq #0<73#735#73#735#73#735#3#3#535#&''67&''6<<;::<<<¥Ò^gæla-  ~ q(  (  ( $22       Bÿêîr %AQ7#'6553#&'#5'67#535'673#&'#5'67#535'63#53533533ì‰O   Y    8Œ+r1) &8               V  ÿéï~!@DHLRX^d73#3#3#"''267#533535'3&'73#3#3#3##5'65#5#35#&''&'''674'¤2P\\Z  Z ???£H%› $"~2 ([ )  P        ÿéï~!MSW[agms73#3#3#"''267#533535'#5#3&'73#3#3#3##5'67##53675#5#35#7&''&'''674'¤2P\\Z  Z ???Y&  I 'ž  &"~2 ([   B <            ÿèóÏ(,073533#3#3#535#535##53#"''3255'#335#\^^VVjæhTT\%¯  O88O;À’5u]  / ÿèóÏ(,073533#3#3#535#535##"''3255##535#35#\^^VVjæhTT\À  ‡‡‡‡‡ÀR]  &u / ÿéòÏ73#5#535#535#53733#3#3##ZMMAAAA5GG>>OOÏå0+*''*+1 ZòÐ73533#3#535#'63#735#<.YYiåh> ±±‹‹Ð  9,5ÿéó£-=M73533#7&'#5'67#73533#&'#5'67#35#535#5353#5#733#3#3##;     W"&   ]?::;;?cCCAAFF–        "" y mW 2ÿéóµ"&7;?OSW[_c736533#&''67#7&''3#735#35##"''3255##535#35#3#3#5##537#35#35#35#35#35#œ&"   A  ‘UU4444I   ;;;;;Ád]‰>JuQ??????—  .  *. ;' GI=)))BÿéôÐ!EIMQ73&''67&''667#3#73533533##3#3##5#535#535#5#5#35#335‹I' ( *>R2!88AABB99#_2&&9$Ð    —i  (  (  0 mÿèôÏ'C733533##5##5#533673##5'67#33##"''3255#53567#Ž  $EK   3C ""  && ,Ï4  nS * '   eóÑ"-?QV73#"''3255#&'7#'67#5353635#&'7#733#"&55#'665#53&''67&67#<.     7  ¦    c  ## - ÑI  (.    =  aÿê±Ð /73'73#3#735#367#"''3255'67567#b O@@G     2¹  31   SÿèòÈ159=AGKQd73#3#3#&'#3265#"&55'67#5367#535#5#35#3353353&'##3'&'333#"&'&'75#‡e*1 -#   %%9    /)S  ('1  È2  $  "2$J ‡QY   K ]†Ð733#3'67#&''673E..*!K B9      Ð  *   ÿéöÑ ;Ag7&''67&''63'33#673265#"''67&'#7&'37533#3#3#7'675#535#535#536  J _˜87    šÀ  ƒ**''++>B''$$&&Ñ     70''""$!?B  =vt XòÏ (<73#53&'67#5&'67&'67''3#"''3265#'67#€dßf   A"   " ‹J  Ï    +,   $ 5/! ÿé…Ñ +/?EI7'67&367#53&'733#3#5##535#5#35#"&55#'665#333535#M $ N9 ?" ! F!$= F   8 FFF·  5    dd5  =  ÿèƒÐ47333533##5#'67#535'67#&'&''6A2.  ?*    Ð 5%%BB)!6     ÿéxo 73#3##"''3255#&'''6XX k+ -X  9 o9  6  ! KÑ 7&''6&'3'67#@ %M  7Ñ    ÿñÇ %73#735#35#'75327537'6'&'[[5555N/:!R Ça8=y SPOLE ÿì€Î"(8>7#53533#&'#5'67'6'&'&'3653#'67#&'3#,// I @  WK-14 *  )K //  #Q    b    #  TñÏ&*.28>D733#3#67'675#5353373#3#537#35#35#35#''6'67&'C&* B /7w40h&1EEEEEEi  † /Ï  %$%DD     –ñÇ!735#53#3##"''32655'67#'ª 3Y   !®!//H 2œ!ïÎ 73533#3#735#œ$$ O((yU'X6ƒìÌ &*73#"''325'3#3'67&''67#67#73#Ý  U>&    *̦  šY#  1=3s‹ðÉ 073#735#35#3#3#"''3265#'67#'67#'67#›JJ((((b<>   &      ÉC) % $;#, #  —òÏ473#35335#535#53#3&''67&'767#535#56®  $!    ?!% Ê PPU        N’ôÏ(,048<767&'767#53#"''3255#'7&''563#735#33535#335±   2  YY$8$Ï ) A 0*  EWS03ƒòÉ #/5;A75#53#5'6'5#53#5'67&''&'&''6'67'67'6Ü. *. 0   -   6   " " !* " ŸII   (         ! ôÈ 06<73#3#535#5#35#3353353#3##"''3255#'67&'Žb]6    HUU g)  , D È11$. ' $   ÿçrÐ1FLR736533#&''67#7&'3533#''655#73533#&''67#7&''&'#&)    G<   2     * & ¯  /  ~   #   )0    ƒõÎ!'<Q7&'36533#&''67#&'7&''33#&''67#53#3533#&''67#×  @'*,  !#/ =   E   Î     +          …õÐ17;?EK73673#67&'##"''3255#5'67&'767#3&'#35#35#&'''6‹",   " %%%%/ * ¼   -% #,   ' & !    …ôÇ'-FLR73#3#3#535#535#73#3#3#535#535#&'3673267#"&''67''67&'‡. / 4-/         V  ÇE  * , ‹ñÏ373#35335#535#53#3&''67&'767#535#56§ #,*     N)*È VVU    Q ÿîÐ"8LR736533#&''67#7&'&'3533#&''655#73533#''67#'&'*,/  #&Q   Z  7   ²    .  W     "  )-  v òÍ,?EK767&''6''6367&''67'367&''67''67'6°   1 ;    :     =  Í      / ?   0   -      ÿçõÑ6AEIV73673#3#3#&'#367'5'67#5367#537#53&'#3'73&3535&'76U= 3pkrˆ+z#  1@;DR7jR32 kggg  $5 Ñ    @ _  U       aðÑ &,287&''6'3#3'67##&''67#3'67'67'6´  %†`24%+ > (    !% *,0 - 0Ñ   #        \ÿé¶Ï !7'67&'#5'67&''6|  '   $  Ï )  ! |_   ' '% #‹ÿèõÇ )733#5367#3#3#&''67#535#'6œFf=3=!(&   ! (*Ç 4 #" Oç±!%)G73&'73#3#3#3#5'65#5#5#'27676767'67'67'67(/****1s . N   C$ ±   . ,%     aòÏ)-15I^733#3'67#732727#"&55'65535#'3#735#3#3#"''3267#7#3267#"&55#'65Ÿ77; &   'pJJ&&b;8  ; Æ   Ï      '#      ÿçôÌ +GKOY]ags7#'655&''3#735#35#36533#'67#5##53'#67'5'675#353&'73&'35357&'67&'ñÁÀ   •TT3333K(*5W 1+ z /!55(.2'.hhh  " %'ÌUF7 7?a  )   4 @-* @2 : !d  l  Sÿí£Î(,073533533#3#535#35##"''3255##535#35#X  O  )    ²8g (z"1kêÐ"&73#3#5367#53&'73635#35#35#Á#61j$4"   2BBBBBBÎ zz  V55kÿê¢Ð 7#5'6  Ч 'oÿéóÆ37;73&'''67&'#367#67&'7&''275##535335#335zl!     + -<,,,Æ   R?   "O.nÿéïÏ/3733#3#3##5#535#535#533#3#5##5'67#35#©00))3333))002xCG7 !)77Ï g I + A ÿçõªCGKQUY]cio73533533#3#3#&'#3#3#3##'3267#&'7#5'67#535#535#35#35#3&'#5#5#5#'67&''&'-!=%%$$@9$ 6AA@@\  '   u  (2<!3====ZB"55555  ]  ¢    & <  !      còÏ!7733#3#67'675#'67#53533'#"''3254'7##5 //@= 3Y2   D  Ï     !!"  Wg ]ÿéóÏ?EIMQW]ci7'#3#3#3#"''3267#5'67#537#53&'73673673#3&'#5#5#5#&''&'''674'Ï ((((7 g *+  =J) @2  )ƒ    . B               ÿçéY $(,28>7#3#3#3#"''3267#&'7#55#5#5#'67&''&'Í=??GGY   " {K77777  h Y  " J       mÿéõÇ (Ea7'6553'#333##"''3255#5357##"''3255'7567#5373567#533##"''3255#Ž vRRHO %%  ++7%  / * ˜4F5 4@_/ _    _ÿë«Ï 073#53&'3#735#367#"''3255'67567#…L ==@     (Ï  -50  gÿêõÏEKOS73533#3'33#673265#"''67'75#535#53#3#6767&'#535#7&'3#735#p((  $H R"m  _CC»44/2!    %C   =+ fÿéðÇ#9AEIM73#3#5##5##535#3#73#3#73#3533#'#5'67#7#5##535#35#35#rw29'(:3=C C!!P   }Ç /55 0 &  <4w w,. jÿéðÏ (,04DR[_73353353#3&'73#3#3#3#5'67#35#5##"''#5'#5673&'75#&'325#35#u!w*+''''-r 5"""""b 2 "VV 5Ê!  .    >   )R%      ÿéñ\!%?CGKQW]ciou{7#3#3#3#"''3267#55#5#5#7#3#3#3#"''3267#55#5#5#&'7&'''67'6'&'7&''&'7&'}&!!!!(  V.Å&!!!!(  V.@ | «  w  = } {~\   (G:   (G             cñÏ06733#3#67'675#53533'#"''3254'7##5'6ž//@< 3Y(AB  g  Ï   !!"  Wg3   ÿêòª;?CHL73533533#3#3#&'3#"''3267#737#5'67#535#535#35#35#3'#3#/%2%%%%B- (  ŒNX #0@%%%72222fF3€€Ÿ     .     ' *?aÿéóÇ (Ea7'6553'#333##"''3255#5357##"''3255'757#5363567#533##"''3255#ƒ~YYNU ''  --<( !2 -  ˜4F5 5?_/ _    ‘ òÏ!%)73673#3#"''3255##5'67#5#5#˜,3 7  !  A!!!³ k  ,p ;"rÿéóÏ=CY73533533##5##5#3#673265#"&55#3'67&''67#67#3533533##5#'67#w  r!         ½      ; ,   # H** fÿçôÎ!26:L73673#3#3#535#'67#'&'#"''3255##55#35'333#"'&'75#”4::!M   |  '8''m&$ )+ ½    HN  a  !U EÿèíÑ"&*.27#53&'73#3#"''3255##537#335#35#3#735#@-aa-)  «*kWWWWWWWppJJ¬ P]  HctP 006ÿéò@73#3267#"&55#'667#ÜH & -+)B@) 0 ÿìõR*737537#"''327#53267#"'&55'717R  <77D$4C #L )-*&  ' ÿêóO $(73#3##"''3255##5#535#53535#35#Ø   ŠŠŠŠŠO   * ÿçòS$7#5#'67##536733267#"&5âM 2/ N=U "  . E*& .+ % ÿéàS73#"''3267#'67##5##535#Ç  RN<HÆ“““S $77 ÿîóP73##5'67#&'3#ÛS "?O#m†/*-,ƒååP/"  $ ÿèó[(-73673&'73#3&''67&''67#67#FJ  Šw"# /''2 '-<]H      ,  ÿéóV $(,73##"''3255##5#53535335#33535#335Ù  ŒNO;;O=Œ;;O=L4 4  %  ÿêõg,073#"''3265#3#;6767##"&55'635HŠ  h`1,U* ( Mg7 "*  4ÿéïl#',7533'67#3&''67&'#'65535#67#ƒXB:#+ 1%$*)JJTS_  ! !0%<  ÿéôT73#7#5'75#35#35#75#Ú',.¥,%8iiiiiiT6 ? " &UÿéóU73533#&'#5'67#^:=," &! +> "?>#ÿèól973&''67&''667#3533#3#3##5#535#535#\n&.?133&$ + \)LJJRR^^__TTLl   ,    ÿîóX +7&''67&''63533#3#535#@ $ƒ  %–WXXiähWX     #66ÿèçm )-73#"''3265'3#&'#5'67#535'63#Õ T51  &48'6Omk _33Mÿèîl !'-73#5##53'3##53##"''325''67&'‰\¶kAB_Ð^  ' % "r# ""l %$ (      ÿêê`0487#"''3255#'65535#35#7#"''3255#'65535#35#{  75555¶  75555`^  **+ 6^  **+ ÿçíc+/373533#3#5##535#5#7#"''3255#'6555#350.."7'0S7Á  <L::NA A7QV  ((  ÿêäh ,04873#"''3265'35#53533#3#&'#5'67#735#33573#Ñ  ¶5>>::33!  ".""5 $he =   )  "   J ÿéô[0673267&''65'3#&'#5'67#535'6'6«  " & 4>(#   (./D  [' #%  )'    $ðv/732767#"&55'67#535#53533#32673#Íz ,5 A8.*#KF//22 8 ?c9J      ÿéòm59=AEI73673#33##&'#5##5'67#535#535#535#53&'5#3533535335X7AL9+& %&& "(5II55F=G&&'_&'l    &&    ÿæòv"&,273673#33#535367#35#35#35#35#&'''6]VZQâGY ‡‡‡‡‡‡‡‡b))((H ) &l J J  ÿçðl  &,7#5##53'73#3#535635#&'''6ë¬g& 8EŽ4Là&N:GGZ&% &&A* &a!! /3   ÿçór-15733533##5##5#533#3#&'#'67#5367#735#35#R?;;?BB%¨Km_;H#G 6L`K„„„„q2  ÿçóh(,9D733533##3#"''3255##5##535#5#53#3&'7&''67'7''6GR662`  NI[200dRR_    h    h 4 "44:H  ;        ÿèñt -573#735#35#3#735#335335#53&''27&7#327)®®ŠŠŠŠ"ÎÎ--?.+™²$5+0@/#ka t-# *    ÿèàu!)-173673#53'3'735#336735#5##535#35#^9*À5DV€€€€€t55+    /@@  ÿåïg $*0673#3#537#35#35#35#''6'6'6&'''6dŠ>5t+8PPPPPP1 .& .* 71 "  gNNN         ÿæôm 4873#735#3353353#3#67&'#67'5'67#735#$··##5&&¼ææª=   N   ††m!  !    ÿçô€ %-157'#'63&'3#73&'735#336735#5##535#35#‡+8«K AaÆÆ" HZ  ŒŒŒŒŒ€   -    (43ÿèì !%)-39?73#5##53&'3#673#5'675#35#35#35#7'6'67&'‡`´d?‘>+" !)A¢7,?~~~~~~ *+',.V*%''  @5*C T  ÿèó}  $/7;AGSZagm7&''6'&''6'&''63#73'67'727#3353&'7&'73327#"'37'737''&'7&'  5  5  ½½!6&v…"MQeV2  œ/9 N-:/V}  2      :) 2) "   ÿéõƒ FJNRV[73#53&'3#35#53#3#3#3#&'367'5'67#535#535#535#735#35#5#35#67WÖjXW7V2??55D" "H$  6,_D66@@.44f33777-  ƒ     &       *  .ÿïÒs9=AF73#&''67&''667#'33#7#5'75#5367#35#35#675#*       e<  2-s        )  6@& # ' +ÿôÐ;CGX7#3#267#"&55##535#535#5335##535#535#5335#53673535#3567&''7&'Ê177* 4&--'5 4&..'5 4%  0kK(   |A     %     ee %))   OáÏ!'-37&'7&''67&'76'3353#7&''&'&'?, €ŸÅžbNÏ   ]]oY    !  ÿéóÐ4JRXj†Œ’˜¤73#3#353#5335#535#'63533#&'#5'67#'3533#&'#5'67##5##5&'7&''67&'76'37&'3&'735&'753#7'6'6'6'33#7'n, G   B  œ  äÀG $    C (  m® +%" + .! 6 8§NNO1+ Ð     "   " 9$$       ;;        ;ÿèêo ).73#3#735###53#"''3255#3##5#53367#;¯¯ff ¯    **$#o $ -6E6  $  róË!I7#53#3#67'5#'67#'73657#53#3#32767#"&55'67#'7365F/f%*   %  n+e(-&      ¼          ‡ðÏ#73533#3&''67&'767#535#‡+++!    E%+®!!!!    !ïË73##5#'6556à $E  ,Ë  ii/ E#‚ôÏ73533#3#&'#5'67#535#‰&$$+!    !-&¯ $&SSƒ ïÎ(.7#67327#"''67&'#67'53537&'í-     ( ­%"("  ,0a }!! ƒòÏ%+733#"''3255#'65535#5#'&'7'6±"  1 $111  _  Ï4u %J&'~   wìÌ!%)73&'73#3#3#3#5'65#35#5#œ ^ ,Ì  d"+HðÌ%+73533533#3#535#35#35#35#'67&'‚%q"%%%%%%9  ¸XX55+  † ëÅ 07#"''3255##536735#&'#53&'73#3#ë  B#B (Å   Qn¹: *  U€óÅ573#3#"''3255#67&'7&'#5#67&'7'#535#€s/+       ,2Å‚ l;  !' +=  "(-˜íÐ L73#53&'&''67&'763353#3#"''3255#67&'7''67##5367#»*l/    8=*1  %   $$Ð       ,,;?  ,  AQ ~òÈ 06<73#3#535#5#35#3353353#3##"''3255#'67&'~s# l"@ Tbbr/ 1 G  È77(4 !    1ÿè÷¨+_dins73533#&'#5'67#'3533#&'#5'67#3#67&'7''67#32767#"'"&55#'67#536367#335367#335”!&    Z     IS!    .8 -0:-14D;~(-?B         !@   !   $' @  # wõÎ8PUmr73733&'33'73#67327#"''677&'#&''67#7''67'6776767'7''67'6776767'x -     (      X      _!NV          E          {òÐ-F733#3'7#75373267#"&55'65533353673#535&'7«..3 F     %   ]  Ð      & !3K;;    'ÿèö²#'8<@jnsx|‚736533&'73#&''67#'3#735#35##"''3255##535#35#3#''67#32767#"&55'67#53635#335367#3357'7#—  $ [SS3333I ;;;;;s  "( KC;55H803F; –    +++ 62     !2  YóÐ#'+?EKQ73533#3#3##5#535#535#35#33535#33573##5#'66556'&'&''6?'++%%''&&##'$9$Z 8$¯  "  Ç 4  4===+ !      KÿçôÏ&,159=AEKQW]7'673&'33#5'67'67&767#3735#33535#335'3#7&'''67&'7&'ƒ > $,(s    3 ).1O1‹–  _  05œ    D9    : & & t›  hÿéºÍ73#&'#5'67#535'6±   (Í) i\")% ÿæ÷Ð.<AEIMQW]ci7#'67#5367#537#53&'73673#3#3#&'33#5'637#35#33535#335'67&''&'7&'§B8 %8K.        nÿéóÎ )157'67333#"''67&767#7#53&#5##535#…  #&.   C :::… - -    /i# LUU5#bÿè÷Ð +177&''6'3#3#"''32767#'655#53&'&'&'Æ  -($   L Ð $!$1%g  @L- 0G-g,kÿý À 7#5##535#35# À¹ ÃM<Œ?gÿêœÎ73#3#5##53635#5#y$$ Î MW ÄM-++`ÿé Ï73&'73&'#5'67#e  '° ) iZ ?dÿìòÏ#'+1B73533#3#3##5#535#535#35#33535#335'&'333#"&''75#“%##!!((&&!!% / [  #&!+  ¼ZZ48\Gd  U`ñÐ+CI73533#3#3#3#"''3265#'67#535#535#73#&''67&''667#(00)).=8  -  !.$$(ŠC    +Ç           @ÿç­Ï !%)-17=CI73353353##53#33#5'637#35#33535#335&'''67&''&'NUT,$W   #5# B ? Â,, 0 G3  ! )        œÿé÷Ï39?73&''67&''667#3533##"''3255#&'''6¹%     !  !G  +  Ï     !  BB ?  ^óË>73#67&'7&''735#35#73#3#3267#"&55'67#'7367#XF#5555Ti#-'    % 5Ë?J ! &      Œ õÂ573#67&'#"''32655'67&''67&''67#b&        )         h‘ïÑ73#&''6'3#&''6½& 7! Ñ     kÿèóÏ@LPT73673#3#3#&'#67&'7#67'5'67#535#535#53&'3&'73&'#3535– 4..6        5--3 $888Î    7    Z    q   ÿðô!%)7#5'673'3675#'#33535#3#Õ¢ 3FH A(6000066wàà_QA!   /.pÿø¤´ 7#5##535#35#¤´² ¼I8ƒ:7ÿêò¶!'-3973#3#3#"''267#5363535&''&'#'674'€Gw““Ž ,ddd   >  2¶ G  9 #y  R /ÿ꿬#'-39?73#3#3#3#"''3267#5365#3535&''&'''674'@y93Xddh   g$-FFF   1  +¬> 2 n   K    ÿêŒÏ8767'7675#53533#"''32765#'67''67'67676A    *    Œ=" "@,,Ž &dx/  +!74  läÏ &*73#"''325'3#3'67#&''67#73#Ñ   À†KD!P E ;  &’ÏF  = '   1=„¸ 73#67'75#C> %¸j r pßÐ#73&''67'7#5367#73#735#>8  & %& ,USS++Ð  $ > |èÏ !7'67#73#3#535#535'6'  £ FF@=EE S› 0Q    5ÿê„Ì1073533#&'#5'67#:   ž..yd#-= ÿì€Ä"2873#3267#"&5535#&'&''33265#"&5''6ZG ,GG3  .  1    Ä?3j  8  :" ÿéŠÊ"6:?73''67&'#53#"''3255#7#'#"''3255#'65535#35#^)   8    (  m/  \á: &~!}  42%'UV=-i,ÿéxÌ 67'2'6'&''&''67#53655#53533#3#&k '7.'     2  "&)$$!!*, Ì  !  ˆ! ÿë“Ï"573533#&'#5'67#7&'&'333#"&'&'75#>  @ I  &$ ( ¥**eU"-65  @e   U oïÏ067367&''66'3#&'#5'67#535'6'6­   % <)"  +.#1G  Ï  $      wñÏ#)/5;73#3#3#"''3267#53635#35&''&'''674'£2ISSV  V777 ( %ÏF  9 &x %  T  ÿé“Ï)-273533#3##535#35#7#"''3255#'6555#35%j   &¥***Sb*l1nÆ =/( 4@_9''+ ÿéÎ@733533##5##5#5333'67##"''32655'67#53&'767#*b"      &=  IÎ-  E 8%!   ÿê}Î 067#5##53&'7&'''636533#&''67#7&'}I-  */0 #&(W  ·)+     4&1 oëÏ'+0735#53533#3#735#7#"''3255#'65535#35#'0022&]::Á   <::::¨   , 3G  !! !  [òÑ:@FL73&'73#3#"''3267#'667#&''67'6767677&'&'4'#'6r74PE   3  %)  &    ¿  +        ÿäóÒ HLP[_clrx~7#5##53&'73533533#3#3#&'#3#3#"''&'7#5'67#535#535#35#35#3673&'#35353267'67&''&'íµda'3++%%B0# —´´©   „ %2=""':3333? C ……… © f¿$$    !   C  &7      tÿí¥Ï73#3##53635#35# !! Ï HRÆE'•2nÿéóÏ %)-39?E73#'63#3#3#"''3267#53635#35&'''67&''&'P[ 5Tbb^   ]BBB =  9 Ï    B  / r % M   qíÑE73#6777'7''67'67#6777&'7''67'67#53&'736ª 8/  + &.Y  !, &.*7 > Ñ                ÿéÏ>BFLRX73533#3#535##5##5#53#3#3#3#"''3267#&'7#5363535&'''67&'944.m/9{Z+T)4QbbY    A @@@  ' "Ä   &3 $ Y=      ÿé‡Ð6;AG73533533##5##5#'#3##"''3255#535#5'63&''67&'4 ** // )5M ¹   3 /  P    ÿé…Ð"&273#3#&'#'67#537#53635#35#3533##5#<-&9   % 4444 ÐQ   Q +1g++ ÿèÅ "&373#735#35##3#67'5#'6553#&'76gg@@@@UXY=  KKC   ÅD* & ''.  ; $&K   ÿé…Ð);73#&''6'3#&''63#534'76767'7&'V  8 7,v5   0;! Ð   "   +  +"' *" %yïÓ!%)-17'673&'73#3#3#3#75#5#5#'3#735#r  %.0++++4}8'''''n@@¤  6 >F' jòÐ"&@H73533#3#&'#5'67#535#35#33573##&''67&''6267#222**  !+2+1B      (Ç !  ! (    7gó¶#3A73673#353#'67#53367#53&'73'67#'63&''66O +(  )j5*   ¶          eñÓFLRX^d7&''67'67676767&'7'#"''3255'67'67676767&'&'7&''&'7'6''6l &."  "   k  †  ‰  \  m  ³                     oõÏ(59=73533533##5#5#3673265#"&5'3#5'75#533#735# C6GG\CŒ6Q    }*%%#KK))É     +9  & (ÿùib7#"''3255#'65535#35#i bU   /+(ÿúog73533#'#5'67#*   U  -1 dÿé­Ï /73#53&'3#735#37#"''3255'7567#ˆF??A     *Ï  330   ÿåö–)-1H\`flrx~73#735#3#3#3#"''327&'765#53635357#'65533267#"&5'#"''3255#'65535#35#74''67&''4',¤¤~~0!3999 :%%%B6  €     c  )  –% - # P)2 0/j qk  00!2  :    7ÿé›Ì 1E7'6'6'&'&'''67'67777&'3533#&''67#’'/.     M #    ;#$&  " ' Ì   :   1   còÒ%)-HO7#5373#3#3#"''327#'67#53&75#3573#&''67&''6667#C(%-)0H?    / "7(??2A    %# ›, ,      %    *  ÿé‹Ï*.26O733#3'67#73265#"&55'65535#3#735#'67#537#53#3#&A..5"     + NN++  !&"S (,Ï     ):0 ,9S'( [    _ñÍ"G73533#&'#5'67#73#735#35#3#3#"''3265#'67#'67#'67#$    ]rrQQQQ”jd         º  //!*         eôÑ#-AGKOSW767#"''32654''67&''67'3&'73#736533#&''67#7&'3#3#3#735#%        ;"!TX ; CCDDDD$$Ì      ! "%    ÿèñÏ16;GMQ73#&'#"''3267#3#"''3267#5'67#5353735#'#36#3673&&'3#Ë#>+   a    3G"@ B8)2, "/(O‹‹¿*  *2 @ * *    !  <hìÑ-1767'67'67276'67'67'676763#Ò +5 \*3  NØØ¿     =eõÏF73533#7#"''3255'75#733327#"&'5#&''67&'767#53&    $*&~*      ¹   '/        ;ÿê—Ì73533#&'#5'67#F   ž.. }m++?=„¸73#67'675#C> % ¸j r ÿé‰Ï)-273533#3##535#35#7#"''3255#'6555#35 &g    &¥***Sb*l1rÊ ?3& 7?a<***2ÿêì°=AEISY]7#5'673&'73#3#3#3#3#"''3265#3#"''3267#5375#5#5#'#5'6&'3#|  /,''''/]M   d‹   Œ*4#####, 1=~~V*  &:A   M A- ] (5íÏ.BHTX\`73#3#3#535#'63'735&'75#&'7#67&''67&'&''#3#3#535#35#5#ŒQ:==9o&  *  '     [44Ï \\" s       b8,DD ÿèóÐ"&3J73#3#'6553&'5##5#35#33533533#67'73267#"&5536ŠZ=9µ\(,+++=,%’44"   $!Ð >>/ 2=Y7-6%  Q  L  ˆÙÑ73'267#'6ii8Œ/T] 7Ñ % )ÿíòF 73#53535#35#35#ÔÉjjjjjjFJJ $ # /ÿêðD73#&'#5'67#535'2Ò &TD18/ 2FS"JD "   +ÿîóG73#3#3#535#535#53&'TUNN^ÈWIIOOG    (ÿçòZ+/573#&''67#53&''7#633267#"&5'3#'3'6S( CK8S< 7 *   /.* #Z &   ,*  +ÿåïN&7#3#3#67'5#'655673&'èž••| f   :N   *%%8  %,ÿêõO-73#35#535#53#326767#"&55#'67#56y 77~778J5 ' ; / .%O  ;  6†òÎ+73533#&'#5'67#73533#&'#5'67#*+*  #s'/&             0ÿéòS$,487353&'33#"''67&''667##5##535#X0   G   ( tttS *     ,, ;ÿéæP &7#5##535#3#&'#5'67#535'2懇‡m(60 +5)/PggSF       ~êÌ#73#73##5##53#5##5&'7&'bbnee3É3H | Ì 2##21""1  *ÿèõT.26:7#673267#"''67&'#'6553&533&'73#3#735#ï5     Zj ‰IIDD$$F  "    % 5ÿéôN +07#3#3##535#73#535##53&''67&67#ŠDAA@@22PUUCC [    *N$ b " +    5ÿéóO%)-173#3#"''3267#535#73#7#5'75#35#35#75#5A/5   5./LpP 333333O) % 7? # % +ÿèôU $(>D73#"''3255#'67#5353635#35#35#73533##"''32655#&'a%   ) ,666666M2  2  UP  6& 1 , &ÿéôu #'+/373#3#735#33535#3353#3#735#33535#3353#/Ãà ££88J588J5¡ÈÈ ªª;;M9†;;M9«ÌÌu ) ) 5ÿêõ¤,H73533#&'#5'67#'3533#&'#5'67#'#'67'67676767'”!%   Z     Œ ?@" )-9 ‘ )'   !  \    & 5ÿéõ¤,2C73533#&'#5'67#'3533#&'#5'67#'6767'7&''6”!%   Z     A#%5#&8?/‘ )'   !  7 (  5ÿíõ¬+Q73533#&'#5'67#73533#&'#5'67#773267#"&55'75'75'6:     Z!%  9"%MO_` " -#BE8;8N    #  .       5ÿéõ¨+/3;?73533#&'#5'67#'3533#&'#5'67#3#735##5##535#”!%  Z      ““mmŒ………›         /,+9 9 0ÿéõ¨+=AEJ[`73533#&'#5'67#'3533#&'#5'67#3#7#5'675#35#35#675#7#53&''67&67#”!%  Z     ·b"& %%%%%K O    " œ        0<F ' )      6ÿæò¬+KOSW[ag73533#&'#5'67#'3533#&'#5'67#3533#3533#3#535#535335#35#35#35#35#&'''6” "      Y     FGG))—))F,FFttttttY 8 $             CC      ÿéðÏ#'+1773533533##5#5#3#3#735#33535#335'67&'4K55s4“KKáá­­99L9…99L9j 3 /b*% ''¾ T22$     ÿéóÐ#'+/5;73533533#3#3#535#535#35#5#'#335#35#'67&'0F22=iM­Kh;0DFFg977777L991 3 /b*% ''º^^]&+    ÿèëš#'+/5;73533533#3#3#535#535#35#35#33535#335'67&'4#)$$DaJ¨JaB#7))+66J6€66J6` . 0W&% &&Ž  HH E *     ÿçòu#'+/5;73533533#3#3#535#535#5#35#33535#335'67&')';((ChO®LjC't;$99L<ˆ99L   X 36p°Ð7''67'67676767&'¤     M .#:5 =( >ÿé©Ï #'-17=CIO73353353#3#3#3#3#535#535#735#&'735'6&''&'''67&'G`\\\'&&+c+$$(  "   -  )Ç$=       Q     ÿçóÍ 0AEI]afjou{‡7#'6553#735#35#7&'36533#&''67#'#"''3255##55#5#3#3#3#535#535#73'#335337335'67&'7&'7&'ð¿RR3333 8*#    9I999£HFFVÀYHHJ … 8A=ÍVG7 7@a(     , 7$   E        ÿíöÆ"&*.26:7#3#327267##"&55#535#55#7355#355#5#735àGGG ; EEDn !4q1n4q111n4Æ9c  d9ǵ¬µ5)ÿìóÈ $(,0473#3#327667##"&55##535#735#35#33535#335&¥KYY  3 ATG AATFšAATFÈ:` $ s_;rñ’ 7'67&'` "0 8X,'**’   [ñ¡ 73#735#33535#3353#%³³AAQ@‘AAQ@¸ââ¡3 _ïÌ #'73#735#'3#735#3#735#33535#3353#„YY77}YY66¬¬<2 Z !t* , $ ÿéôf"(047353&'3#"''67&''667##5##535#9=  CG*+" -2 €€€f 4     (11 ÿéò« 2EJPV767#5&'67&'67''3#"''3265#'65#3353#5##5#'6735#&'''6n    A"    ‹J ‰<;‰‰f  ;«   )& " 2*"4 r:77'5      ÿéò« 2UZ`767#5&'67&'67''3#"''3265#'65#'667#'6753353#5#67&'35#'6n    A"    ‹J j & ;‰<   [‰‰ «   )& " 2*"‹ +5r>  @  #ð® 3BG767#5&'7&'7'563#"''3267#'67#3353#5#'6635#m  ƒ     !´L  Š’  ‹®   $%  $ 0$, >   ÿçô¯3CGKOSW]c767'567&'67#5&''3#"''3267#'67#3353#5#'65735#3#735#35#35#'67&'Å     _    MK   " ““““ssOOOOOO A›  )  -       ! i1 '$ E2    ÿæó®4cgk767'567&'67#5&'#53#"''3255#'63353#5#3#3#3#3#535#535#535#535#'67735#35#à !  `    8H   " š7**%%,,1˜5))$$((2ššBš -   2    &  ‡]  EB`K!ÿè¾O 73#'3'65ªd'%Odc/%ÿèÞm#+/73#535#535#535#53533533#3#3'3'6573#š)…( ""%% %—£    gg  R)3! *(x FóÏ.2EKOSfkqv733#3'67#73267#"&553#'65535#3533#&''67#7&'3#735###'3255##5##53&'#3367335IAAE @()    qq  2 t)!    = œ[[??V #  Ï    % "2""#$* *. 6  &"ÿéái 7'67&73#5#533{& 7«—6!+7t iWÿêô\)-MTt{ŠŽ’£§«73&'73#3#53'#367#73&'73#3#53'#37#'33#3#3#3#3#"&5535##32733#3#3#3#3#"&5535##32'#"''35##535#35#7#"''3255##535#35#  7  `  8  N###$ $#' K$$## ##( £ ™ R        ;>d    ;>64  A4 A ÿéóÏ"&*CGKO7&'#5'63'3#735#73#735#73#735##"''3255##5##5##535#335335€ 45 e PF%T66288477&  (%###6%(Ï   *2220H  !!!!+_# ÿéóÏ#'+73533#3#3##5#535#535#35#33535#335dffTTjjhhRRd&>>R@’>>R@¼d$$d;>zîÊ 73#3#535#5#35#335335ÙD6À6Aƒ04""40#Ê 44 "GÿéìÆ &*.73#5##5353535##3#"''3255##535#35#Õ0OO  IIIIIÆ?""?? !e  '}#4ÿéäÏ#'73533#3#5##5##535#735#33535#335'NPPZFFZN::O<—FF[F¹EV//Z{!!!ÿêæÐ!73#"''3267#'6#5##535#K ™ ’ )fFFFЊ&v$1`f?, ÿëøÓBGMQUYm733#3#;267##"&55##535#535#5335##535#535#5335#5'667#5#7355#35&''67&'76_Q1CGG  : @0>>/?>.==.>B 5XRR0e/d7    Ó  -Z    5  % ®Ÿ–Ÿ4<<       ÿëøÓBGMQUYm733#3#;267##"&55##535#535#5335##535#535#5335#5'667#5#7355#35&''67&'76_Q1CGG  : @0>>/?>.==.>B 5XRR0e/d7    Ó  -Z    5  % ®Ÿ–Ÿ4<<      JåÏ573533#3#67#5'675#535#73#"''3267#'667#)''""$$)n`  # ¼T=/' $' ÿïøÐ %+7&''63#3#3673#535#535#&'~-= 65.> Qz5ZZ :ßeZZ1  Ð%-+%"";;"=ÿéçƒ 73#3##"''3255#'67&'Cvv+Ï] ^1yƒ<  9 •ÿçõÂ#)/73#"''3267#'67#3#735#35#35#'67&' R    II%%%%%% 5  Â( 0nM/."     ÿçõÏ048>RVZ^bhn7#'67'6753533533#3#'#5'67#535#35#335'&'73#"''3267#'67#3#735#35#35#'67&'ó¶ YU     h —N    MM,,,,,,  , ÂRC4 ,*  ` +9=< 9:># *bF ' '    ÿéï•?CGKQW77&'7&'#5'67&'67673673#3#3#3##5'65#5#35#&'''6Z!'    <(,&&&&.b 2!!!!!*  9  ƒ+B?  #   f && ÿèït?CGKQW767'7&'#5'67&'67673673#3#3#3##5'65#5#35#'&'''6\     @%)####*[ 1!!!!!+  9  l# :7      R  fÿêôÇ%)-15;A73#6767&'7&'#5'67&'#'67#735#33535#335&'''6ox= !'$ $ $2 R2  @ÇP   CA 00v    ÿéøÏ!%)-1G7'67#5353367&'#73#735#33535#3353533#&'#5'67#/ #0     +%%'j EE nKK¡  !)e+* ÿè^Ï7353367&'#5'67#  !.®!!$  hc =\ÿóóÏ73533#3#536'&'h6:„g1—Q<¤++ G4=?5591 ÿéóÐ *.2H7#'655353#7&'767&''7535335#35#7#"''3254'7##5óÃ`<  " ****›   '¼M@2 3;Y+].     &9?78ž°ÿï~Ï7#7'7''7535335#35#yI+   ' %%6666·hB" ±+D ÿéõÏ$273533#&'#5'675#&''6'&''6aaa*@ <$'7 @*a¤  w µ<@3][1:?  $ !Aÿê÷Ñ "7&''63#3#"''3255##5#–$/ .$!+ 8 aaˆ 3.Ñ %'*'%: $TTÿçëÐ'-3M7367&''66'367&''66''67'63673#"''3267#'67#­   g    jfE\  LC 9>Ð     !     r 8!5 %HÿéóÐ1=AEIMd733#3'67#6753673267#"&55'655333##5#5;5#33535#33533##'3267#'67#536•>>I r & %:hh *D*0< - . # (2Ð     ,>/ /8TJ!      GÿëõÐ048<@DLPTX733#3'67#753673267#"&55'65533#735#33535#3353#53535#35#35#BBS p&.1ll,J, ‘!#Ð    *>. /8SH<$ ! !$$$ ÿìöÏ048<@DLPTX733#3#67#'655332767#"'&55'7533#735#33535#3353#53535#35#35#jbbrªKcZ )% 25 +-0’’//@.n//@. Ì 2##4 Ï   I84 +5X     +?' ! #%%% ÿíò®+/37;?CKOSW733#3'67#73267#"&55'665535#3#735#33535#3353#53535#35#35#pNNhYFH %%.12 K2ŽŽ-->,j-->,Å00®      "2' #E #4   ÿèíÐ3\`dhl733#3'67#6732767#"'"&5'675#'6655333##3#"''3265#'6765#'#5367#5#5;5#33535#335t]]eQ$ #$ 0 3> S-˜DR F= #  (GA00B2t00B2Ð      I=/ +!SH "   !  ÿéõh26>B73&''67&''667#'3#3#7'75375#735##5##535#’A #   7zR"-8"..¯666h    0)(237 7! .óÑ $*06<733#5'667#35#33535#335&'7&'''67&'UQ4³ 2L G;;O>;;O>) K  ŸE ÑM< +"         uòÑ37;?73&''67&''667#'3#3#67'635375#735#3#735#™> " ( 0 W!!!,6%55][[;;Ñ   "  ! * ]ÿéóÏ.287#"''32655'675#537#'733#67&'37#&'±    'AQAH+=   !C; ;  >; %8 6  ŠT  ÿéóÐ.26>DHN7#'733#67&'#"''3'3255'675#53'37'3#3##5#'673#7&'À9A$9      "2F2µFF \%$<.  Š7 8  .9  %8&ŒŒ9% !2UN  ÿéóÐ-1RX^d7#'733#67&'#"''53255'675#53'3767&'7&'#5'67&'676&'&'''6¾;C&;      4H4 {   5  2  Š7 8  .:  &8:! UP&"9   ÿëô™'+17737#'733#67&'#"''32655#737#&''6‡jm:]   9%   c7cb% H&02S +(  ++ :0 A   ÿéóÐ-1>Z`f7#'733#67&'#"''53255'675#53'37''67&3#3#677'675#535#&'&'¾;C&;      #4H4 Ž" 3< "+##\  N Š7 8  .:  &8     D  ÿæóÐ!%3K7#3533533#'665535335#33533567'7533732767#"&5536ë¶+,9µ [[++=,%}"+ 6U %¼>@/ 0"[V[% P   N  ÿìgÌ 73#3#3#3##5##535#MM\\ HHHHJ&&&ÌS U4! (õÐ'/?PTX73533#733#3#3#3#3#"&5535##326'3673#53&'#"''3255##535#35#(-hrUUMNOOOOO*' MM]L ²tX  ;;;;;Ä   &   Y Zw  &I \ # [ïÃ73#3#3#535#535#ÄYOOeÞeNNWÃÿé÷› (0@QUY733#3#3#3#3#"&5535##326'3533#3673#53&'#"''3255##535#35#‡UUMMNNNNN*( MN]J Ì),htV   ;;;;;›  )   ` b’   )O  c ' IöÐ'9?PTX733#3#3#3#3#3267#"&5535#'3533#3#53&'#367##"''3255##535#35#†VVNNOOOOJJ#,& LMn'+r'#> ?????Ð #      H  9 LÿéìÏ &7#5##53533533#3##5#535#'6ê®`E-HH``dd8 ·9&&9& %%&;;&  ÿêî\)-73#3#5##5'67#35#'3#3#5##5'67#35#…i9 =* &**—i9 <* &**\M .B7M .B -ës #'73#735#33535#33573#735#33535#335dd'@'"cc&?&sF)) *F))  ÿèñ¥26:>BFJQ735333##3#3#&''67&'67#5367#535#5#5;5#33535#33535#33567#I>FFJ_q# %#8% ;I-E>$$,,?2q,,?2w22E78 D‘ %   % 4 = 5ÿçôÐ#'-7'655673#3533#&''67'35&'b P: 9Kƒƒ6A;1 24 4 2p 1'! 26d  5  &($!](  1ÿéðÅ'+17=C73#3#"''3255##5##535#'66553'#3&''&'&''&'`A=  +(:< ›ss 1   J 1   _  Jbbfw B3 0"[5$\        ÿëìÉ%)-15;A73#6767&'7&'#5#'67&'67#735#33535#335&'''6$·c "48F& ! ))8==Q>==Q># !!O' $ÉV  % 54 44{      ÿëkÎ$*767'7'#5'67&'676&'''6Q   3  ­:! VP&"^  \ÿêòÄ$,73#3#"''3255#&''67##535#33##gŠ7,    -B ƒƒÄu  `' (|$Š ÿëmÎ$*767'7'#5'67&'676&'''6Q   3  ­9" UO&"_   ÿèôÏ48<@DHLTX^d73533#3#535#'3#3#73#735#3265#"&55#'67#3#3#73#735#35#35#'#5##535#&'''6b>BB:5>QGGUU\‡‡c   dBBBBZxxTTTTTT+–" Ç  6   Q: O Q1#   EóÑ +F73#53635#35#77'7''67&'676''67&'67677&'zAh    ‚  Ñ mm4K30  '  . ÿìaÉ 73#3#3#3##5##535#HHVV EEEECÉO Q1 ÿéòg $73#53535#3353353##"''3255#ÙÔ""5!%¹åf lg$$$1   >ïÏ.31073&''67&'67#53667#73&''67&'#367</ ! % !) "R` Ï     J:-!    9ñÏ#)/5;73533#6767&'7&''67&'67#&'7'6'67&'gdi  $ '. c  »…”¶ &         ÿèôÇ '+1773#735#33535#3353533533#3#535#5#'67&'$ºº@@T@”@@T@²2A88?â<2‡A &. )f3# "1ÇZ56:    ÿëê”!'-7'#5'67&''676767&'&'''6¼  (+  $ 39@3 $ !"I ' "_ B@ ' 3    ÿèóÓ@FLS767&'7''667'767'6767&'7'&''67''6'67'67'66e$&  ;B        6 C'Q +#` 3 55 -R VG 9m AGÓ         '#   &    )  . ÿïñª'+/?73533533#3#3#&'#'67#535#535#35#35#3533#3#535#0$2%%((>5$ .8. %1<%%$62222%466]ÅV4– 0> ÿéïÒ ,15973#"''325''67&'3#5##5'7532635#35#35#x   5– 'W (IRr Ò8 * " „ h C02 ÿéò¡373533533533##5#3#5#5#3533#&'#5'67##8,,^#¡´ž8eedS<A !@ 4 O’ ->=   #23 ÿé÷Î )-15=AG73&'#'3#7'63#3#32765#"&55#735#'3#3##5##535#7'6; *ŠHHr  nVVnf   ;@@wDDDDCg. *Î"   N; A* O Q1 2 ÿèõÐ*@F[`767&''67&'73265#"&55#'6553533#&'#5'67#7&'#53&''67&67#   Æ   %}))    P  7 n   % 8 È     B 8 m(( RR# %6  $0     ÿç÷Ç$(7#3#67&'#67'75#'66553#貸T 'P$. &ÇF  )HR WB2 1$`+ ÿéñ›73673#3#5##5'67#35# V z… …v -IAvvz  ] G %^* ÿéòÏ (073533#3#735##5##533267#"&5'3'66fdà$™™tt¥±{   " ;%' $ ½54,-", 2!#ÿéðÇ+<73#3#"''3255##5##535#3&''67#73&''67#ßeY  EEYf'( Z(  Ç–  ~‘‘œ¯H XYòÉ!73&'#"''32765#'67#'6cl    8 2,  É 3H?  ÿéfÏ"7353673#&'#5'67#7&'       ~Q. XV#/S ÿèòÏ!%7#67&'#67'67535335#35#ÖR !% W!1&,9LL„„„„²i  HF  ³*D ÿìeÉ 73#3#3#3##5##535#JJXXFFFFG"""ÉO Q1ÿéŸÈ@DHLP7#3533533##5##5#'6553#3#"''3255#7'675##535#735#33535#335Ÿv_)1    -'%<%È  7C7 5@`<@A - DS' & ÿéñÐ=AEIMQY]ae7#'665535333#3'67#73267#"&55'75#'65533#735#33535#3353#53535#35#35#ð¾ \WWe Q@A&$ '7uu/#R/# ¨()ÁQB4 /"\        ?4( (/G88"  ÿèóÏ *H73#'6#3533#3#"''3267#'655#&&'67'675676ŽV^  v'%1,  ×   %2#Ï  "((^TJ06N1 :4h |   9ÿêòÐ-159=AGMSc733#3#"&55'75#'6553'7#73263#735#33535#335&'7&'''6733267#"&5…EER , "5Y C2 imm-I-%  C a  # Ð   I=/ /8S'?& !       =ÿþ»m 73#3#537#735#35#Fo5B~(%HH ZZm/ 33 O cÿéóÌ8<@DYg73#73##5##53#5##53#73##3533533#'65535335#3353353673265#"&5'67'7533p;;A==}*B $k"j  55#"      Ì / /.. )$$ $-2 8        0  ÿèóÌ8<@D\k73#73##5##53#5##53#73##3533533#'65535335#335335367326767#"&5'67'63533bbnee3É6Jn<»*);³[\**<)'<%$  *B", 2Ì / #21" /  *$$ #.2 8     0  ÿéòÏ(HN73#"''3265#'67#'6&''6367&'#"''32655'67'&'›?      /8 67$A H#   !   !*0#( ÏA*+  ;           $ÿèô²9AEI73#&'#5'67#535'6'3#&'#5'67#535'6#5##535#35#á$      "+7     3636…rrrrr²(#    ! gX X -#ÿîô°7G73#&'#5'67#535'6'3#&'#5'67#535'63#53533533à (  ,7 "    +35JNÄ%)>° /+  *(‘++9_ÿèõÐ *F\73#53635#35#''67&'67767'74''67&'676767'3533#&'#5'67#¥*     n    {;;0 ! $0Ðgg 5G    ,    ( .  9:  <óÒ;?CGKOSY_ek7'#5'67&'676767''&'#5'67&'676767&'73#3#3#3#3#735#'&'7&'''67'6á      ‡      $88 JJ<<<<==!  Ÿ  ·   š   ‘ 1,   % 1,  (E   +         GÿçôÏ28>DJP73'67&''667#67&'736533#&''67#7&'&'''67&''&'p%F  #   =" ! $8    d Y Ï f$   '   '& &3A   š  5ÿäøÆ 7&'&'333#"''75#V- 13 =; $Æ    #\OUÿéòÏ!'073533#3#&'#5'67#535#35#&'76735d=<<4& ( " 4=!! 0  ¸T%)IS/$TW0 # 0CÿäøÌ#'+17I73533#3#3##5#535#535#35#33535#335'&'&'333#"'&'75#„+++((--..''+'='u    * .- 77!»XX36_    !\ O ÿéòÏ!'0PV\73533#3#&'#5'67#535#35#&'76735'67&'7'#5'67&'676&'''6k9992$ $ 09 . …  2  ¸T$)GS/%TW0! 0.9" UO&"^   ÿèöÐ6DHLQ[i767&'74''67&'67677'7&''67&'676'3##5'675#35#35#675#73##533'3353'67#Ÿ      L    Ì]! ±&s %$»0 *   Ê/‘&&\$V22k)"#*( ÿéðÏ;W[_cg73533#3#&''67#5367#73533#3#&''67#5365#3533#3#3##5#535#535#35#33535#335'""'&     +'k$**5+ $  ##k\^^PPiieeOO\ <   - ÿë÷Ï#'+17I73533#3#3##5#535#535#35#33535#335'&'&'333#"&''75#PEEE;;GGFF;;E((:(b((:(¬4 &GÏ:  /  d    < $8) ÿèõÏ #)-39?E73#"''3265'3#3'67&''67#67#73#&'''67&''&'Ò  »t7 8+  "( /^8  —}"  ω {/ $20k,   ÿçóÍ '+P73#"''325'3#3'67&''67#67#73#3533#67&'67'75'67#Ð   ¹t<8K  %! /`ˆcfc  $O!)  =TÍb  Y7 % *H.   :   ÿé÷Î )-15=AG73&'#'3#7'63#3#32765#"&55#735#'3#3##5##535#7'6; *ŠHHr  nVVnf   ;@@wDDDDCg. *Î"   N; A* O Q1 2 ÿéòÏMQUY]a7#35#535#535'6735'673#33##&'#5##5'67#535#'66553535#3533535335ð¾5""//% " $BB*! "" %7 a""L"ÂQ        /::)   .& 1!] Y   0ôÐ 7'67&'3#3'67#~); ?326 6UJJ'• |³#. ! XDõÑ 7&''63#3'67#§& &% *88m  VÑ    ÿèaÃ73#3'67&''67#67#Q*.;     Ãu.. (=M  ÿéò¡?EIMQUY73#33##&'#5##5'67#535#535#535#53&'7#'66553533#'#365#3533535335¸3@3(& $ "%..%%/* 0 Rf5 @$  O v   %//"     ?4) &H !   2ÿéʃ73#3#"''3255##5#Kjj˜ C.ƒ9 #__/ѱ #7&''63#3#"''3255##5#}1 0) +88p   . ±  % :: ÿéòÒ !'-59=AR7#5##5353&''33267#"&57&'''63#53535#3353353##"''3255#î´d !  ,%€Š ¹ã##6%(¸ÚZ   mÃ""       "'''1   ÿé|š%7&'3#5'63#"''3255##5#?  3; #\   "š   4* FF ÿégÏ 73#7&''6.&  1 ÏæÃ ) ÿíîÏ'-3;U7367&''657367&''65''67'6#5##53#3#3&'73#535#535#D   )k    (ˆ  o  _´«OLL' &Ó]HHJÏ             ;++   ÿègÏ'7&'73#3#7'67'767#535#536&< "$)  (Ï.$ ÿépÄ 73##5'75#35#35#675# c $""""""ÄÉ/$$[%W ÿîuÏ '-7'67&3#3#677'675#535#&'@!3?## &)4$$  ®"    C5 ÿéóv'7&'#5'63&'3#"''3255##5#~19 i OS:— B3v   %  55 ÿîòp 6@73#735#73#735#73#735#3#3#535#&''67#&''67#<<;::<<<¥Ò1  æj2    )Á  (p' ' ' " 2    2   2ÿîÏ "7&''63#3#"''3255##5#=  #66a "Ï,+* %5 "YYAÿé©Â73#3'67&''67#767#L]//D   Âz0$ .:M   ÿêa 73#3##5#'673#@@ S   4Â(ŒŒ:$ !2UÿêuÇ!*/373#3#5##535#5#35#"&55#'75#326655#35#g#=7 =  76 ==DZ´i 8' &4 CòÉ73#3#3#535#535#3535#5##3ÖG99NåL88DX#99#88É89a&%% ÿéöÏ >DHLRX7#5##53533673#67&'##"''3255#5'67&'767#3&'#35#35#'67&'ë°a^=S6   @   B  -&Y pppp x ¼,,'  8  8   * ( !   -ÿêò†#7367&'#"''325'3'67#‡  " /  NG$$ -3† 7I  ^B2 ÿéwÏ"7353673#&'#5'67#7&'( '' #  ~Q2 Z_%-S EóÑ +F73#53635#35#77'7''67&'676''67&'67677&'zAh    ‚  Ñ mm4K30  '  . ÿçõÏEKOSY_e7#'67'6753533673#67&'##"''3255#5'67&'767#3&'#35#35#'&''67&'ò° UG;D2   3  1   /.= SSSSV  [ r¼OB2 .(  [&   5  3    , ' h     ÿèõ06<B7&''675'675#'67#53673#5'675#'67#'6'67'6}3: 79$B 8!* 4 & $^ \ #'  (#2 .>(RNH:ztk       64J   F      !  ÿë÷Ê 7&'&'333#"&''75##4 &K!44 6  ¯ ;  '; '% 3   ' ) D  Vÿê§Ï73'67'756776‹    £Q3'"ƒ n FÿèìÐ'/37;?7''756767&'73#"''3267#'67##5##535#33535#35#†  ! %Q   Kg**?(g**?((§ E  0 #E 06 ,Wr q*CaåÑ'7''675677&'73#"''3267#'65#\ %*$#0j% ª H  4 !=%-! ÿërÎ%+767'7'#5'67&'676&'''6W    2  ±># TO&" _   ÿé~Ï!'8>7#5353673#&'#5'67&'&'3653#'665#&'3!*  .   PE*13( &E 0/  #O   c    $   ÿïòÏ 73533#&'''6feß“-!"+8(*2™6659>5 I*4 ÿèŸÆ/5;B737&''67#5'675'67#73#5'675'67#'6'67'6>' ( $ !G: !( &+7 432. JÆH     W    ^  \ÿïòÏ%573533#3#3265#"&55#'67#535#3533#3#535#m,88D( %9,044A•@0µ   $ m  IÿéóÇ 173#3#535#5#35#3353353533#&'#5'67#Yš2*).W))‡EF7%$) &5ÇFF5$$$$$L#FF)"bîÇ 73#3#535#5#35#335335ÙC5À:E‚*9&&9*"Ç??.9óÏ$*06<73533#6767&'7&''67&'67#&'7'6'67&'ifl  " %,  c  »ˆ•¶ (      "   ]ÿïói!73#3533#3#3#535#535#'6|\\7722?–C--'i   fÿéò›&*.473#3#3&''67&''67#5'635#35#67#€Ya_: > $!   AAAA  6› =    8 ) # 5  ÿæéh!7'673#"''3265#'67#'67> +˜  OK#? 6C J19$.* P‹Î73#&'#5'67#535'6ƒ.--  &26:Î () ÿéóÑ5BF7#'67'675353&'73#&'#5'67#535'673#"''325'3#ó´ Xz $$   #$)` &»M?2 *"  b  QN& ™  }iÿéí‰!%)4:7373#3#3#3##5'65#5#35#'37&'#''6~" -0**++3h 7"""""R    ‰  W   "q }!  ÿéòÐ:>BFJ73533#3#3#3#67&'67'275'67#535#535#735#33535#335eeÞ¬O[[gY  H%+-  +)NbUUK99K<‡99K<Ä  C   @    ( %  ÿèdÐ7353367&'#5'67#     $2§))   ed 7ÿóðÇ#73#3#3#535#535#735#33535#335&¶QRReßfWWQ==Q=Ž==Q=ÇxC"""R ÿéóÐUY]as73533#335367373#3#3#3##5'#3#"''3255#7&'7''2767##537#75#5#35#'&''67'76/4wF   !$O *5  ) 0-ªK     ½ 11&*)&"$"I  2  Pb""4$$2"y    @ÿèíÇ!C73#3#"''3267'6765'67#735#73#3#"''3267'6747'67#735#ND,3  $ 4 *2TI,3  #%6 *6Ç:h!    <:i     < ÿèóÐ#'73533#&''67&'#367#5##535#a]%%:D.,: 3&5"xxx¶  Zaa@- ÿéê£$(,048EIM7#373#3#3#3##5'67##535#35#5#5#35#7##'3255#535#5#v 7600007m /8888U$$$$$Ž O====£B   ; xº $ B  Œ¡  YC $  ÿé|Ï $9H7#3#'6553535##5#35#3353353673267#"&5'67'27533tN  %       ¸;:/ 1\$0 3¥¶+ (   ÿêóÀ7#53#3267#"&55#'>L7ØF "3  ­¥ $  ªK#2 '1ÿéöÏ'/BGKSW73533#3#535#73265#"&55#'667#5##5#53&''67&67#'3##5##535#...&`'.Ç    I‚\   -…??K333¿<  /$  (G)+.-      %U U6$HñÒ#'C7373#3#3#3#5'6353535'3533#&''67&'767#! %(####,s"""""ž$&     =Ò G N Xÿé÷ÉIP7#5##53#67&'##"''32654'''67&''67&'767&''67#67&'îe‚            &0&  É&&,  &1Y&G        M  ÿéôÐ,26:73533#'3353#5#53373673##"''3255#7&'3#735#m64~> ; 7N  *   e%  FF º#§€Ÿ ’€Xh  d8  E?NÿéóÏ3973533533##5##5##5'673533##"''3255#&'\/##/(  &9  9  ¶pX "R  N MÿéöÒ!E7&'3673#&'#'67#7&'3#3##"''3255#535#535'2Ÿ  5]  %# +!   Z 22BB   ??11  Ò 0)(B L    )AÇ 7&''6 Ç1 ,)'VÿéñÏ.4873533#3673#&'3#5##5'675367&##535#5#5#k$$$   9C   I9$a@CC·    s W v) 9òË 73&'#''63#'673&'#fJ!>"!RRBSGË('& )$" ÿônÐ73533#7'676'&'%(`D (1#¨(( =- >0.03, ÿëêÅ#)/573#"''3255#73#"''3255#'67'6'67'6b Nqc N:&'Š&'R - -Œ , ,ž¥¾¥  *!! ÿèíGKO7#"''3255#'65535#35#73#3#"''3265#&''67#33#5'67#735#35#_ GkF[  $   ! K]  EEEEŸ .-2a0M@G H0    ,+ ' ÿéö©BGLPT`emŠ7'6733#3#;267##"&55##535#535#5335##535#535#5335#767#5#7355#767567&35&''3#&'#5'67#535'6k "A'00 ' ) ( $$ 'J4 / ?? !!  l     !#|  % M    *   % w )&     PG! ÿéòÏ*.26:>BJN73533#3673#&'3#5##5'67#535#35#35#'3#3#3#3##5##535#y  $  @; &D3 ;;;;}EE ^^MMMMM&&&¶! p ^tB­Q Q3  ÿèôÏ(4:@73533#3#3#33#"&''6535#535##5'753'&'&'"""++""Y6/M6 00"ÔDGB  ²"/  $E S"D<9  zwj  '  F òÉ"7'65533&''67&''37367w#o) %  0%|C#CC&9    (:&&:"BôÏ)-17733#3267#"&55#'67#5367#'635#335&'r?20   3 -(=6  $$8(  Ï A- 03%A  K4   ÿê•Ï,0473533#3673#&'3#5##5'675367#535#3535""  7=  C,===·! r VZ+iÿéôÏ8=737#535#5353373#33##"''3255#53567#'67#767#u =3))! "0 566  >>/ C i  ( %  5 iÿéòÏ%+73533#3#3#3##5#535#5367#535#&'u/00;!877445L\;/¸ 11 .  `ÿèñÑ'+/73#3#3#"''3267#353#5335#5363535–:]nnl ?eIIIÑK C+$()$ˆ  ÿèóÑ"&*FK7&'#3#3#3##5'63&'35#35#7#3&''67&'#'65567<9MA@@@@ ! % ....ÃXV )Ñ P  “ ! < ,r->+  '0D3 4>^Q(!# ÿézÑ!%)7&'#3#3#3##5'63&'35#35#> : NBAAAA " & ////Ñ P  “ = , ÿèòÑ#'3?CG7'#3#3#3##5'63&'35#35#7#5##5353#53#3#5'35#35?2 L@???? # ! ----ÅV4"VCK8008Ñ  P  ” = ,e,,Ä ¢>M jSÿéÐ )-157#5##5353373#3#3#3##5'65#5#35#N1* P ,º-/  d"()ÿÿ ÿèòÑ&ó+îÿÿÿé÷Ð&+ï1ÿÿÿèîÏ&1PÿÿÿíóÏ&1 ÿÿÿéóÐ&÷1ÿÿ ÿëîÐ&(0ŒÿÿÿëîÆ&0(ÿÿÿéóÏ&1cÿÿÿéóÑ&%†1ÿÿÿëîÒ&(1eÿÿÿëóÏ&(0Ëÿÿ ÿéõÐ& ¡ÿÿ ÿêóÐ&11fÿÿÿéõÏ&—*[ÿÿ ÿêóÏ&1*\ÿÿ ÿëóÏ&*]1ÿÿ ÿñôÏ&+ + ÿÿ ÿêòÐ&›šÿÿÿèòÐ&)ã™ÿÿÿèòÐ&œ1pÿÿ ÿéòÐ&™1qÿÿÿéòÐ&œ1rÿÿ ÿéòÐ&™1sÿÿÿíòÐ&žÿÿ ÿéòÐ&œ&(1tÿÿ ÿîóÐ&œ1uÿÿÿïóÒ&ܺÿÿ õÎ&+ð1wÿÿ ÿéóÏ& ëØÿÿ ÿçóÏ&V ëÿÿ ÿéóÏ& ëÙÿÿ ÿèëÏ& ëÚÿÿ ÿéóÏ& ëÐÿÿ ÿëòÇ&*a1xÿÿ ÿéóÏ&%Œ îÿÿ ÿéæÐ& ë+ãÿÿ ÿéôÏ& ì%ÿÿ ÿèöÏ& îïÿÿ ÿéõÏ&¹ îÿÿ ÿéñÏ& îÛÿÿ ÿçõÐ&«1zÿÿ ÿéôÏ&6 ëÿÿ ÿìõÐ& ÿÿ ÿìõÐ&ÿÿ ÿéôÏ&! îÿÿ ÿéôÏ& ëÿÿ ÿéòÏ& ìÿÿ ÿèóÏ& îÿÿ ÿéòÐ& ëÿÿ ÿéêÏ& îãÿÿ ÿéõÐ&äÿÿ ÿéôÏ& îÉÿÿ ÿïõÐ&ÿÿ ÿéëÏ& îÿÿ ÿéóÏ& îŸÿÿ ÿéõÑ& î%ÿÿ ÿéôÏ& ë%Žÿÿ ÿéóÏ& ì*–ÿÿ ÿéòÏ& ë\ÿÿ ÿèõÏ&-ã îÿÿ ÿéòÏ& ë1{ÿÿ ÿéíÐ&Õ îÿÿ ÿéùÏ& î%ÿÿ ÿèõÏ&| ìÿÿ ÿéëÏ&Ì& í1|ÿÿ ÿèøÐ& ë%ÿÿ ÿéëÏ& îºÿÿ ÿéõÏ& î,ÿÿ ÿéçÏ& î%‘ÿÿ ÿéòÏ& î%–ÿÿ ÿéôÏ& ì% ÿÿ ÿèöÏ& ëŸÿÿ ÿéñÏ& î:ÿÿ ÿéõÏ& î%·ÿÿ ÿéôÏ& îÜÿÿ ÿéòÏ& î$—ÿÿ ÿéóÏ& î&vÿÿ ÿçòÏ& î^ÿÿ ÿéðÏ& î*cÿÿ ÿéîÏ&%¸ îÿÿ ÿéøÏ& î%¹ÿÿ ÿéøÐ&%º îÿÿ ÿéòÏ& ëbÿÿ ÿéôÏ& ìLÿÿ ÿèóÏ& î…ÿÿ ÿéòÏ&¸%½ÿÿ ÿèõÏ& îµÿÿ ÿéöÏ& îRÿÿ ÿéóÏ& ëGÿÿ ÿé÷Ï& ì%¾ÿÿ ÿéóÏ& îaÿÿ ÿéõÏ&Û îÿÿ ÿéñÏ& ì-âÿÿ ÿéõÏ& î%¿ÿÿ ÿçõÐ&1}ÿÿ ÿèôÏ&@ ëÿÿ ÿèõÏ&%À ëÿÿ ÿéñÏ&%þ ëÿÿ ÿéõÏ& î%ÿÿÿ ÿçõÏ& î`ÿÿ ÿêõÐ&1~ÿÿ ÿèëÏ&& ëÿÿ ÿéòÐ& ë&ÿÿ ÿéñÏ& ë0•ÿÿ ÿèôÏ& î1ÿÿ ÿèõÏ& î,Žÿÿ ÿéõÏ& ëEÿÿ ÿéóÏ& ì&ÿÿ ÿéëÏ&& ëÿÿ ÿéñÏ& ë1€ÿÿ ÿèöÏ& î&ÿÿ ÿéóÏ& î&ÿÿ ÿéçÑ& ë&ÿÿ ÿéòÏ& î¡ÿÿ ÿçòÏ& î&ÿÿ ÿéóÏ&_ îÿÿ ÿèóÏ& ìÿÿ ÿèõÏ& î*dÿÿ ÿéêÏ& ì{ÿÿ ÿéòÏ& îÝÿÿ ÿéêÏ& ì‰ÿÿ ÿéóÏ&d îÿÿ ÿéòÏ& ì.Ñÿÿ ÿèìÏ&e&&t¿ÿÿ ÿéòÏ& î,ÿÿ ÿéõÏ& ë&ÿÿ ÿéòÐ& îhÿÿ ÿéèÏ& ì& ÿÿ ÿé÷Ï& ì®ÿÿ ÿéòÐ& î¤ÿÿ ÿèòÏ&&  ìÿÿ ÿéòÏ&*e îÿÿ ÿéòÏ&Ü ìÿÿ ÿéóÐ& ëgÿÿ ÿèôÏ& î”ÿÿ ÿéóÏ&  îÿÿ ÿéóÏ& ìÝÿÿ ÿéóÏ& îÞÿÿ ÿçöÏ&` îÿÿ ÿèõÏ& î–ÿÿ ÿéóÏ& ëbÿÿ ÿéòÏ&} îÿÿ ÿéóÏ& ì& ÿÿ ÿéðÏ& î£ÿÿ ÿèñÏ&(, îÿÿ ÿéòÏ& î8ÿÿ ÿéóÏ& î Ëÿÿ ÿéëÏ& î¢ÿÿ ÿèñÏ& í1ÿÿ ÿèõÐ& î& ÿÿ ÿèðÏ& ë&ÿÿ ÿéõÐ& î&å™ÿÿ ÿéóÏ&Á îÿÿ ÿéèÏ& î&ÿÿ ÿéöÏ& îbÿÿ ÿéñÏ& ë¡ÿÿ ÿéúÏ&e`ÿÿ ÿéêÏ&# îÿÿ ÿéõÐ& îaÿÿ ÿéòÏ& îWÿÿ ÿéôÑ&Ü ìÿÿ ÿéòÏ& î*fÿÿ ÿéóÏ& ì¦ÿÿ ÿéõÏ& ìÿÿ ÿéòÏ&+ ëÿÿ ÿéóÏ& îäÿÿ ÿéóÏ& î0Óÿÿ ÿéöÏ&$ îÿÿ ÿéõÏ& · ëÿÿ ÿéõÑ& îŒÿÿ ÿéöÑ&] ëÿÿ ÿé÷Ï& î¥ÿÿ ÿèõÏ& î¨ÿÿ ÿéõÑ&¶& ìÿÿ ÿéõÏ& î9ÿÿ ÿéóÐ& ìxÿÿ ÿèëÏ& í&œàÿÿ ÿéóÏ&÷ ìÿÿ ÿéòÏ& î1‚ÿÿ ÿéòÏ& í1ƒÿÿ ÿéóÏ& î$ÿÿ ÿéôÐ& î ÿÿ ÿè÷Ï& ì5ÿÿ ÿèìÏ& ìÿÿ ÿèõÏ& îÑÿÿ ÿçöÏ& îéÿÿ ÿçìÏ&¸&¬ÿÿ ÿéóÐ& ì&"ÿÿ ÿéöÏ&¸œÿÿ ÿéôÏ& î¾ÿÿ ÿéòÏ& î§ÿÿ ÿèôÏ& î0¼ÿÿ ÿèòÑ& ëÕÿÿ ÿéïÏ& ìÃÿÿ ÿéîÏ& ë.ÿÿ ÿéòÐ& ëÛÿÿ ÿéìÑ& ì¡ÿÿ ÿèïÏ&Å ìÿÿ ÿçõÐ& ë(ÿÿ ÿéôÏ&À ìÿÿ ÿéìÏ&¸0Iÿÿ ÿæöÏ& ìpÿÿ ÿéïÏ& ì½ÿÿ ÿèåÏ& î¾ÿÿ ÿåôÑ& ìÿÿ ÿèíÏ& ë¡ÿÿ ÿéëÏ&à&e&$ÿÿ ÿèöÏ& ì&%ÿÿ ÿèóÏ& ëWÿÿ ÿçóÐ& î&#ÿÿ ÿèóÑ& î&úùÿÿ ÿçöÏ& îÕÿÿ ÿç÷Ï& î&&ÿÿ ÿéõÐ& ì ±ÿÿ ÿèóÏ& ì&'ÿÿ ÿè÷Ï& î&(ÿÿ ÿéòÏ& ì.˜ÿÿ ÿéóÏ& ì&)ÿÿ ÿéíÏ& îvÿÿ ÿèîÏ&¸&*ÿÿ ÿéôÏ& ì0yÿÿ ÿéõÏ&/= ìÿÿ ÿéôÏ&] îÿÿ ÿè÷Ï&¸"äÿÿ ÿèñÏ& ìŒÿÿ ÿæõÏ&-á ìÿÿ ÿéðÏ& ì&+ÿÿ ÿéöÏ& ì&,ÿÿ ÿéøÏ& ¹ íÿÿ ÿéóÏ& ë&-ÿÿ ÿéóÐ& ì&JIÿÿ ÿéòÏ&&. îÿÿ ÿèôÑ& ìXÿÿ ÿéôÏ& î&uÿÿ ÿèöÑ& ë&/ÿÿ ÿíõÌ&ªÿÿ ÿéçÐ&&0 îÿÿ ÿéìÐ& í&ùÿÿ ÿéëÏ& ì&1ÿÿ ÿéòÏ&% îÿÿ ÿéòÏ& î©ÿÿ ÿéóÏ&&2 îÿÿ ÿé÷Ï& ìUÿÿ ÿéóÐ& ì&3ÿÿ ÿéñÐ& î&4ÿÿ ÿéóÏ& î¬ÿÿ ÿéóÐ& ì«ÿÿ ÿéõÐ& î&5ÿÿ ÿéöÏ& î&6ÿÿ ÿåðÏ& î-àÿÿ ÿçõÏ& Ö îÿÿ ÿéóÏ& î&7ÿÿ ÿéóÏ& îÖÿÿ ÿéïÏ& î&8ÿÿ ÿéóÏ&&| îÿÿ ÿéòÏ& î)ÿÿ ÿèðÏ& î0ÿÿ ÿéïÏ&( îÿÿ ÿéñÏ& ì&}ÿÿ ÿéòÐ&õ&¸ùÿÿ ÿéõÏ& ëÈÿÿ ÿéôÑ&ÉWÿÿ ÿéóÐ& í ÿÿ ÿçïÏ& î*gÿÿ ÿéóÐ& î^ÿÿ ÿèôÒ& î_ÿÿ ÿéóÏ& î*åÿÿ ÿéõÏ& í.Rÿÿ ÿéöÏ&¸1„ÿÿ ÿéõÏ& í*hÿÿ ÿéöÏ&*i ìÿÿ ÿèóÐ& ì\ÿÿ ÿèòÏ& ì¯ÿÿ ÿèôÏ&Ç ìÿÿ ÿçóÐ& î,aÿÿ ÿéïÏ& î°ÿÿ ÿèñÏ& í&~ÿÿ ÿéöÏ& ì&ÿÿ ÿéëÏ&î íÿÿ ÿèðÐ&f îÿÿ ÿéòÐ& ì*jÿÿ ÿçóÏ&© ìÿÿ ÿéõÑ&W&KJÿÿ ÿéìÏ&¸îÿÿ ÿéëÏ&%&eàÿÿ ÿèóÏ&Ü îÿÿ ÿéïÏ& ì(@ÿÿ ÿéôÐ&&€ ìÿÿ ÿéõÏ& í¾ÿÿ ÿèîÏ& íÈÿÿ ÿéëÏ&&‚ îÿÿ ÿéóÑ&WVÿÿ ÿéóÏ& î&Èÿÿ ÿèñÏ& î&ƒÿÿ ÿéëÏ& ì&„ÿÿ ÿéôÏ&| ëÿÿ ÿéòÏ& ì&…ÿÿ ÿéôÏ&{ îÿÿ ÿééÏ& ì±ÿÿ ÿèñÏ& î,bÿÿ ÿéôÏ& í&,1…ÿÿ ÿéòÏ& î-äÿÿ ÿéóÐ& ì¯ÿÿ ÿéõÐ& Ê ìÿÿ ÿéóÑ&Q îÿÿ ÿéñÏ& ì­ÿÿ ÿéóÏ& î²ÿÿ ÿéöÏ& ì®ÿÿ ÿéøÏ& ì„ÿÿ ÿéòÏ& î³ÿÿ ÿæöÏ& í”ÿÿ ÿéõÏ& ì.ÿÿ ÿéõÏ&¸&&w1†ÿÿ ÿèóÏ& ì{ÿÿ ÿéõÏ& î&†ÿÿ ÿèòÏ& î*éÿÿ ÿéõÏ&&‡ îÿÿ ÿçðÏ& ìÿÿ ÿéôÏ& C ìÿÿ ÿéôÑ& É ìÿÿ ÿåôÏ&*ú ëÿÿ ÿèñÏ&.Qeÿÿ ÿéòÏ& îrÿÿ ÿéóÏ& ¢&}¸ÿÿ ÿèôÏ&!Þ ìÿÿ ÿéöÐ&"¬ ìÿÿ ÿéòÐ& ì#£ÿÿ ÿéñÏ& î#Éÿÿ ÿéôÏ& î!jÿÿ ÿéôÏ&"Z ìÿÿ ÿéöÏ& í´ÿÿ ÿéîÏ& î&ˆÿÿ ÿéîÐ& í »ÿÿ ÿéíÏ& ì-åÿÿ ÿéòÏ&w îÿÿ ÿéòÏ& ì&‰ÿÿ ÿéñÏ& î"ÿÿ ÿèóÏ& î#@ÿÿ ÿèîÐ& ì0ºÿÿ ÿèôÏ& î!åÿÿ ÿéõÏ& í#‹ÿÿ ÿéõÏ& î#Ùÿÿ ÿéôÏ& ì-ÿÿ ÿéóÏ& î"ÿÿ ÿéóÏ& ì"xÿÿ ÿéôÏ& ì&,ÿÿ ÿèòÏ& î!õÿÿ ÿéïÑ& í!³ÿÿ ÿéôÏ&&Š îÿÿ ÿèõÏ& î@ÿÿ ÿéõÑ& î'ÿÿ ÿçóÏ&&‹ îÿÿ ÿéðÏ& î#Mÿÿ ÿèöÏ&%ĸÿÿ ÿéóÑ& î!Âÿÿ ÿéóÏ& ì&Œÿÿ ÿéóÏ&0reÿÿ ÿéòÏ& î1‡ÿÿ ÿèðÏ& î"wÿÿ ÿéíÏ& ì"ÿÿ ÿéóÐ&"’& ì!8ÿÿ ÿéõÏ& î"Žÿÿ ÿéïÏ& î"Gÿÿ ÿäöÏ& î"oÿÿ ÿéòÐ&^ îÿÿ ÿéôÏ& ì#Ÿÿÿ ÿéóÏ& ì"(ÿÿ ÿèóÏ& î‡ÿÿ ÿéìÏ& í&!ÿÿ ÿéñÏ&¸ hÿÿ ÿéíÏ& í qÿÿ ÿéõÏ&¸#„ÿÿ ÿéõÑ& ì#…ÿÿ ÿèòÐ&¹& ì1ˆÿÿ ÿèõÏ& î#³ÿÿ ÿéòÑ&e#êÿÿ ÿéóÐ& ì!ðÿÿ ÿéíÏ& î1‰ÿÿ ÿéñÑ& î#óÿÿ ÿè÷Ï&$Þ ìÿÿ ÿéóÏ&-Ý îÿÿ ÿéöÏ& ì¶ÿÿ ÿéóÏ& íTÿÿ ÿæõÏ& ì$ÿÿ ÿèôÐ& î,Åÿÿ ÿéìÏ& î"Õÿÿ ÿéïÑ& íBÿÿ ÿçòÏ&&‘ îÿÿ ÿéôÏ& ì-Þÿÿ ÿèôÐ& ìfÿÿ ÿèôÐ&&’ îÿÿ ÿéðÏ&$« îÿÿ ÿèöÒ& î$%ÿÿ ÿéóÐ&$_ îÿÿ ÿéôÏ& ì&,1Šÿÿ ÿéöÑ& î$ÿÿ ÿéòÏ&&“ îÿÿ ÿéëÏ& î$Sÿÿ ÿéñÏ& î# ÿÿ ÿéóÑ& î# ÿÿ ÿéóÐ& î#ÿÿ ÿéòÏ& î$>ÿÿ ÿèðÐ&¸/Lÿÿ ÿéóÏ& ì&°#ÿÿ ÿéóÏ& ì&˜|ÿÿ ÿéòÏ&e-ßÿÿ ÿèñÓ&¸1ÿÿ ÿèóÏ& î&”ÿÿ ÿéöÑ&&• ìÿÿ ÿéíÏ& ì-:ÿÿ ÿéöÐ& ëEÿÿ ÿéôÏ&&,eÿÿ ÿéóÏ& ì)ÿÿ ÿéóÏ& ì&šÿÿ ÿèõÐ& í ÿÿ ÿéòÒ&¸1‹ÿÿ ÿéóÑ&b ìÿÿ ÿèôÐ& ì&œÿÿ ÿéöÏ& ì*æÿÿ ÿçõÐ& î&ÿÿ ÿéóÑ& î&›ÿÿ ÿéòÏ& í& ¢ ¡ÿÿ ÿéòÏ& ì1Œÿÿ ÿéõÏ&4&Ý îÿÿ ÿçõÏ&¸+ ÿÿ ÿéóÏ& ì&¡ÿÿ ÿéóÏ&Ð ìÿÿ ÿéôÏ&Ý& ìÜÿÿ ÿé÷Ï&¸&¢ÿÿ ÿéóÏ& îJÿÿ ÿéöÏ&&¥¸ÿÿ ÿçôÐ& ì&¦ÿÿ ÿéïÏ&è& ó íÿÿ ÿèôÏ& î’ÿÿ ÿéôÐ& î&§ÿÿ ÿéóÏ&Æ ìÿÿ ÿçôÏ& îÄÿÿ ÿéóÒ& ë%æÿÿ ÿéóÏ& ì&£ÿÿ ÿéõÏ&·¸ÿÿ ÿèïÏ&&¨ îÿÿ ÿèõÐ&e&1ÿÿ ÿéôÏ& ízÿÿ ÿéöÏ&¸&%1Žÿÿ ÿéîÏ& ì1ÿÿ ÿéñÏ& í#ëÿÿ ÿéóÏ& ì&©ÿÿ ÿéôÏ& ì&ªÿÿ ÿéòÏ&&«¸ÿÿ ÿèôÏ&¸&¬ÿÿ ÿè÷Ï& í&61ÿÿ ÿéìÑ& îšÿÿ ÿèöÐ&&­ ìÿÿ ÿéëÏ&&®&(L ìÿÿ ÿçêÏ&%ë îÿÿ ÿéöÏ&%ì ìÿÿ ÿèóÏ&¸0Ùÿÿ ÿéóÐ& ìtÿÿ ÿéôÏ& î*Óÿÿ ÿèõÏ&¢1‘ÿÿ ÿéòÏ& ì&¯ÿÿ ÿèóÏ&&° ìÿÿ ÿéìÏ&î& í1’ÿÿ ÿéõÏ&¼ ìÿÿ ÿéøÏ&¸&±ÿÿ ÿéóÏ& ì.äÿÿ ÿçóÏ&¸'ÿÿ ÿéòÏ& í.Ôÿÿ ÿéõÏ& ì1“ÿÿ ÿèôÏ& ì&Éÿÿ ÿéõÑ& ì-îÿÿ ÿèôÐ&½ íÿÿ ÿéðÑ& ì&€1”ÿÿ ÿçôÏ& ì&Êÿÿ ÿéóÒ& ì´ÿÿ ÿéôÑ& í'ˆÿÿ ÿéðÏ& ë'ÿÿ ÿèõÐ&&¸1•ÿÿ ÿéõÏ& ì&Ëÿÿ ÿéõÒ& î&Ìÿÿ ÿé÷Ñ& ì½ÿÿ ÿèõÏ& ì1–ÿÿ ÿèóÑ& ì&Íÿÿ ÿèôÏ& í&ä&,1—ÿÿ ÿçôÑ&¸&Îÿÿ ÿèòÏ&&Ï îÿÿ ÿéñÏ&e&Ðÿÿ ÿéôÏ&1 íÿÿ ÿéóÏ&¸¾ÿÿ ÿéõÑ&¸%vÿÿ ÿéòÐ&)'eÿÿ ÿéóÏ& í&†‡ÿÿ ÿéôÏ& ì¨ÿÿ ÿçðÏ&¸*çÿÿ ÿéñÐ& î)$ÿÿ ÿèñÏ&¸%Oÿÿ ÿç÷Ò& î&Ñÿÿ ÿéòÏ&¸¿ÿÿ ÿéôÐ& ì&Òÿÿ ÿé÷Ï& ë÷ÿÿ ÿçôÐ& î&Óÿÿ ÿéñÐ&-- ìÿÿ ÿéïÏ&e&çæÿÿ ÿçôÏ&e),ÿÿ ÿèøÏ&¸&,c1˜ÿÿ ÿé÷Ï&eÿÿ ÿéðÐ& î1™ÿÿ ÿéöÐ&H îÿÿ ÿéóÏ&e&-1šÿÿ ÿèòÑ& ì&Ôÿÿ ÿéñÑ&¸&Õÿÿ ÿæõÐ& í1›ÿÿ ÿéóÏ&¸&Öÿÿ ÿéóÏ&¸1œÿÿ ÿçòÐ&e&×ÿÿ ÿèôÐ&e&~}ÿÿ ÿæóÑ&¸Tÿÿ ÿéõÏ&e1ÿÿ ÿçòÏ&1&e%iÿÿÿéòÐ&™1ŸÿÿÿçóÑ&ÈðÿÿÿçòÐ&É&™1¤ÿÿÿéõÐ&™ÿÿ ÿéöÏ&!ÿÿ ÿéöÏ&!yÿÿ ÿéöÏ&!! ÿÿ ÿéöÏ&ï!ÿÿ ÿèõÏ&àáÿÿ ÿéöÏ&!Ýÿÿ ÿèõÏ&ÁÂÿÿ ÿéöÏ&! !ÿÿ ÿêøÐ&ê%€ÿÿ ÿçöÏ&ÑÿÿÿéçÇ&/1³ÿÿÿêîÉ&ª&«©ÿÿÿêöÆ&Ä1·ÿÿÿëíÆ&Ä1¹ÿÿÿçîÆ&Ä1ºÿÿ ÿðõÆ&ÞÄÿÿ ÿéòÆ&ÄYÿÿ ÿèòÈ&(& é ìÿÿÿéñÆ&Ä1»ÿÿ ÿèõÆ&Å1¼ÿÿÿèíÆ&Ä1½ÿÿ ÿèòÈ&(& é1¾ÿÿÿéíÆ&Ä"ÿÿÿìíÆ&Ä1¿ÿÿ ÿèéÈ&Ç:ÿÿ ÿéöÏ&ÇÆÿÿ ÿîõÈ&Ç&óÿÿ ÿéëÏ&Ǻÿÿ ÿéöÏ&Ç&ôÿÿÿéñÅ&±&õÿÿ ÿéöÈ&Çñÿÿ ÿéòÐ&Çiÿÿ ÿèõÏ&Ç*dÿÿ ÿçòÐ&Ç&öÿÿ ÿéóÏ&Ç&÷ÿÿ ÿéóÏ&Ç÷ÿÿÿçìÏ&&¬ÿÿ ÿéôÑ&ÇÜÿÿÿéóÑ& ÿÿÿéõÏ&ÿÿÿéëÈ&çÿÿ ÿéôÐ&Ç—ÿÿ ÿéõÏ&.òÿÿ ÿéôÑ&ÇÈÿÿ ÿëôÏ&Ç|ÿÿ ÿéóÏ&²Çÿÿ ÿçëÈ&Ç&sÿÿÿèóÏ&{ÿÿ ÿè÷Ñ&ÏÇÿÿ ÿîóÏ&Ç™ÿÿÿéõÐ&!ÿÿ ÿîõÉ& •Çÿÿ ÿéôÏ&,dÿÿÿé÷Ñ&$#ÿÿÿéðÑ&&€ÿÿÿèóÎ&ƒ&‚ÿÿÿèôÏ&Þ&1ÃÿÿÿèôÒ&&øÿÿ ÿéöÑ&&ùÇÿÿÿéóÎ&&†‡ÿÿ ÿèôÈ&hÿÿ ÿé÷Æ&XTÿÿÿéõÏ&_`ÿÿ ÿé÷Æ&TUÿÿ ÿé÷Æ&TVÿÿ ÿé÷Æ&TWÿÿ ÿéñÒ&-·°ÿÿ ÿé÷Æ&T1Äÿÿ ÿçðÐ&>&;1ÅÿÿÿêõÏ&´&±²ÿÿ ÿé÷Æ&T&zÿÿ ÿéúÏ&µ&¶³ÿÿÿêíÄ&÷öÿÿÿêíÅ&ö1ÉÿÿÿêíÇ&ö1ÊÿÿÿéôÏ&ø1Ëÿÿ ÿçëÏ&&{Èÿÿ ÿéæÏ&Ô¢ÿÿ ÿéëÐ&›Õÿÿ ÿéæÏ&'¢ÿÿÿçæÏ&¢1ÌÿÿÿéæÏ&Ö¢ÿÿÿéëÐ&&ú›ÿÿ ÿéëÎ&›kÿÿÿèæÏ&¢ÿÿÿéëÎ&R›ÿÿ ÿçëÎ& í›ÿÿÿéëÏ&&û›ÿÿ ÿéëÎ&&ü›ÿÿÿéæÏ&§¢ÿÿÿéæÏ&¢&ýÿÿ ÿèæÏ&¢&þÿÿÿéëÎ&&ÿ›ÿÿ ÿéëÐ&'›ÿÿÿèëÏ&›0Åÿÿ ÿèèÎ&óÒÿÿ ÿéëÎ&ß›ÿÿÿèìÏ&¤ÿÿÿéëÎ&›'ÿÿÿèëÏ&'›ÿÿ ÿéæÏ& ¢ÿÿ ÿéìÏ&Ç'ÿÿ ÿéëÑ&f›ÿÿ ÿéæÐ&'¢ÿÿÿéëÏ&£àÿÿÿèëÎ& ›ÿÿ ÿéëÎ&›eÿÿÿéëÎ&›dÿÿ ÿéæÏ&0Æ0Çÿÿ ÿé÷Ï&C0ÿÿ ÿéëÐ&›' ÿÿ ÿèëÐ&Í›ÿÿ ÿéëÎ&› ÿÿ ÿéëÏ&!¯›ÿÿÿéëÎ&!°›ÿÿ ÿéõÐ&ò!­ÿÿÿèëÎ&¤›ÿÿ ÿéëÏ&!®›ÿÿ ÿéæÐ&¢¡ÿÿ ÿéëÑ&Y›ÿÿ ÿéëÏ&›.ãÿÿÿéæÏ&¢.ÖÿÿÿéëÎ&'&›ÿÿ ÿèëÐ&T›ÿÿ ÿéëÐ&›' ÿÿ ÿéëÎ&£›ÿÿÿéæÏ&¢ ÿÿÿéæÏ&!€¢ÿÿ ÿéëÏ&›' ÿÿÿéëÐ&›' ÿÿ ÿèôÑ&' 'ÿÿ ÿéëÏ&!~›ÿÿ ÿéæÏ&¡¢ÿÿ ÿéîÑ&)™ÿÿÿéëÎ&¥›ÿÿ ÿéëÐ&›¢ÿÿ ÿéëÏ&£›ÿÿ ÿéëÎ&›¤ÿÿÿéëÐ& H›ÿÿÿéæÐ&0Ç&]ÿÿÿèëÏ&›*èÿÿÿéìÏ&ÿÿ ÿçëÎ&'›ÿÿÿéëÏ&›'ÿÿÿéëÏ&'›ÿÿ ÿèìÏ& ÙÿÿÿçëÏ&Ý›ÿÿÿèëÎ&'(›ÿÿÿéëÐ& &›ÿÿ ÿéëÐ&,e›ÿÿÿéëÎ&''›ÿÿ ÿéëÎ&›ºÿÿÿéìÏ&$ÑÿÿÿéñÐ&')'*ÿÿ ÿèìÏ&$ÿÿ ÿèìÏ&†ÿÿ ÿéìÏ&#ÚÿÿÿéìÏ&'+ÿÿÿéëÎ&›"ÿÿ ÿéëÏ&˜›ÿÿ ÿéîÐ&0à0áÿÿÿéëÑ&›,fÿÿÿéëÏ&#B›ÿÿÿéëÏ&',›ÿÿ ÿéëÐ&›ÿÿÿéìÏ&0Èÿÿ ÿéëÏ&›*êÿÿ ÿçóÐ&þ1Íÿÿ ÿéëÏ&à-æÿÿ ÿçìÑ&'.ÿÿ ÿéëÎ&›'-ÿÿ ÿéëÐ&›'/ÿÿ ÿéìÏ&*ëÿÿ ÿéëÎ&'0›ÿÿÿèëÏ&'1àÿÿ ÿéëÏ&³›ÿÿ ÿéëÏ&›&1ÎÿÿÿéëÐ&ßàÿÿ ÿéòÑ&É.ÿÿÿéëÎ&›1Ïÿÿ ÿéìÒ&'2ÿÿ ÿéëÎ&'4›ÿÿÿéìÏ&'3ÿÿÿéëÑ&&Á›ÿÿ ÿéìÏ&0æÿÿ ÿçìÑ&%uÿÿÿéîÑ&0á0âÿÿ ÿçëÐ&9›ÿÿÿé÷Ñ&&Â0âÿÿ ÿèëÑ&à'5ÿÿ ÿçëÐ&à'6ÿÿ ÿéëÒ&à1ÐÿÿÿéëÐ&à1Ñÿÿ ÿéóÏ&ê1ÿÿ ÿëèÐ&ëÿÿ ÿéíÏ&ìÆÿÿ ÿæêÏ&í*uÿÿÿèïÑ&NLÿÿ ÿéîÏ&,g ðÿÿÿêïÎ&,hûÿÿ ÿéíÏ&î´ÿÿ ÿéíÏ&î'7ÿÿ ÿéíÏ&ÜîÿÿÿêôÐ&û0‰ÿÿ ÿéîÏ&' ðÿÿ ÿéîÏ&¸ ðÿÿ ÿéîÏ&Œ ðÿÿ ÿæîÏ& ð(+ÿÿ ÿéîÏ&'8 ðÿÿ ÿéïÏ&*î òÿÿ ÿéíÏ&î’ÿÿÿèñÐ&v&÷*ïÿÿÿéëÍ&ÿÿÿéõÏ&!²!±ÿÿ ÿéîÏ& ð¥ÿÿÿéïÏ& ñÿÿ ÿéîÏ&, ðÿÿ ÿéîÐ& ð¢ÿÿÿçõÏ&(&'91Òÿÿ ÿèíÏ&îÁÿÿÿéîÏ&¤ ðÿÿ ÿéîÏ&* ðÿÿÿéïÏ&¥ ñÿÿÿéîÏ& ¯ ðÿÿÿéæÉ&ò ôÿÿ ÿë÷Ï&';':ÿÿ ÿèîÏ&’ ðÿÿ ÿéïÑ&“ ñÿÿ ÿéïÏ&'< ñÿÿ ÿéîÏ& ï ðÿÿÿéïÏ& ñ.ÿÿ ÿéïÏ& ñ!iÿÿÿéïÏ& ñ …ÿÿÿéîÈ& &àáÿÿ ÿéïÏ&] ñÿÿ ÿêóÐ&*ð1Óÿÿ ÿéïÏ&$ ñÿÿ ÿéöÏ&3-çÿÿÿèîÏ&L&å ÿÿ ÿçôÐ&%)1Ôÿÿ ÿéîÏ& ðŠÿÿÿé÷Ï&(.&† õÿÿ ÿèïÏ&*ñ ñÿÿ ÿéïÏ&#“ ñÿÿ ÿéïÐ&Ê ñÿÿÿéïÐ& ò'=ÿÿ ÿéïÐ& ñ1Õÿÿ ÿéïÏ& ò'>ÿÿ ÿéïÑ&'? òÿÿÿêõÎ&í"-ÿÿÿèïÏ&'@ òÿÿ ÿèõÐ&ô&õpÿÿ ÿèïÏ&ó òÿÿ ÿéïÏ& òÿÿÿéïÏ&& óÿÿ ÿèïÑ& ò'Aÿÿ ÿéïÏ& ò*ÿÿ ÿéçÐ&Y_ÿÿ ÿéçÐ&Y^ÿÿ ÿéçÐ&Y`ÿÿ ÿéçÐ&Y1Öÿÿ ÿéçÐ&Yaÿÿ ÿéùÐ&Y1×ÿÿ ÿéçÐ&bYÿÿ ÿéçÐ&Y1Øÿÿ ÿéíÍ&Z\ÿÿ ÿéçÏ&[cÿÿ ÿéçÏ&[dÿÿ ÿéíÍ&Z1Ùÿÿ ÿéíÍ&ëZÿÿ ÿêóÐ&üûÿÿ ÿéíÍ&Z1Úÿÿ ÿéíÍ&Z1Ûÿÿ ÿéóÏ& ëëÿÿ ÿçöÏ&.vÿÿÿòîÇ&âéÿÿÿòîÇ&âêÿÿÿòîÇ&âíÿÿÿòîÇ&â1ÜÿÿÿòîÇ&âéÿÿÿòîÇ&âãÿÿÿòîÇ&âçÿÿÿòîÇ&èâÿÿÿòñÇ&â1ÝÿÿÿòîÇ&â1ÞÿÿÿòôÇ&æ&âåÿÿÿòîÇ&äâÿÿÿòîÇ&â1ßÿÿÿòîÇ&â1àÿÿÿðîÊ&ðñÿÿÿòîÇ&âîÿÿÿòîÇ&â1áÿÿÿòîÇ&â1âÿÿÿòîÇ&â1ãÿÿÿòîÇ&â1äÿÿÿòðÇ&â1åÿÿÿòîÇ&â1æÿÿÿðîÊ&ñòÿÿÿòîÇ&âóÿÿÿòîÇ&â1çÿÿ ÿéõÏ&êÿÿ ÿèòÏ&"0ÿÿ ÿèñÏ&"!ÿÿ ÿèöÏ&"¶ÿÿÿéæÐ&*#+ãÿÿ ÿêëÏ&&SúÿÿÿêëÏ&úÃÿÿÿéêÎ&`1ôÿÿÿéêÐ&`1öÿÿ ÿéëÄ&ÌxÿÿÿéêÀ&*ó`ÿÿ ÿéëÏ&*òÌÿÿÿìõÏ&!±1÷ÿÿ ÿéëÐ&Ìÿÿ ÿéëÐ&¿Ìÿÿ ÿëðË&àáÿÿ ÿéëË&ÍÌÿÿ ÿéõÏ&1øÿÿÿéëÑ&Ì1ùÿÿÿèîÏ&,i/¸ÿÿ ÿèîÇ&Gsÿÿ ÿèîÇ&s1úÿÿ ÿæðÇ&s1ûÿÿ ÿèîÇ&?sÿÿ ÿèîÇ&s1üÿÿ ÿèîÇ&Csÿÿ ÿèîÇ&sÿÿ ÿèòÇ&‘sÿÿ ÿèîÊ&Aÿÿ ÿèòÇ&>sÿÿ ÿèðÇ&s1ýÿÿ ÿèóÇ&s1þÿÿ ÿèîÇ&s1ÿÿÿ ÿèðÇ&Îsÿÿ ÿèîÇ&sHÿÿ ÿèóÊ&A2ÿÿ ÿèòÇ&s! ÿÿ ÿèôÇ&s2ÿÿ ÿèòÇ&Isÿÿ ÿèóÇ&sJÿÿ ÿèóÇ&Ksÿÿ ÿèñÇ&s2ÿÿ ÿèîÇ&s2ÿÿ ÿèîÇ&Nsÿÿ ÿèïÇ&s&MLÿÿ ÿè÷Ê&AOÿÿ ÿçóÇ&s2ÿÿ ÿèôÊ&A2ÿÿ ÿæóÇ&@sÿÿ ÿèòÇ&s2ÿÿ ÿçõÇ&sPÿÿ ÿèòÇ&s2ÿÿ ÿèõÇ&s&—˜ÿÿ ÿèñÇ&sQÿÿ ÿèõÊ&A2ÿÿ ÿèîÊ&A2 ÿÿ ÿèóÊ&A2 ÿÿ ÿéõÏ&ëêÿÿ ÿèõÂ&œÿÿÿèõÏ&œBÿÿ ÿêõÎ&,j'Sÿÿ ÿéõÇ&0Ÿ'SÿÿÿèðÏ&,kïÿÿ ÿèõÐ&'Tœÿÿ ÿéòÏ&¿¾ÿÿ ÿéôÏ&'U4ÿÿÿíìÌ&âãÿÿ ÿéöÏ&™ÿÿÿéèÃ&Ò*.ÿÿÿéêÀ&`*$ÿÿÿéÞÏ&Ç*#ÿÿÿèöÊ&i*%ÿÿÿêóÄ&Ñ*#ÿÿÿíóÊ&ë*2ÿÿÿòîÇ&â2ÿÿÿéòÏ&j*#ÿÿÿçõÁ&Ó*#ÿÿÿè÷Ï&k*.ÿÿÿéíÏ&ì*#ÿÿÿééÃ&Ò*#ÿÿÿêõÂ&¹*2ÿÿÿéðÀ&l*#ÿÿÿîõÐ&m*%ÿÿÿéïÑ&NÿÿÿéîÊ&n*#ÿÿÿéôÆ&o*%ÿÿÿêòÏ&(*#ÿÿÿôöÏ&p*%ÿÿÿìóÌ&q*%ÿÿÿéóÃ&ï*%ÿÿÿêñÍ&s*%ÿÿÿèïÆ&;*#ÿÿÿéòÏ&¬*%ÿÿÿèóÏ&%Á*%ÿÿÿîóÄ&)*2ÿÿ ÿéöÐ&ÿÿ ÿéõÃ&«ÿÿÿèöÑ&Ó*%ÿÿÿéöÏ&*%ÿÿÿìõÍ&,*'ÿÿÿîõÎ&/*2ÿÿÿèöÏ&¡*%ÿÿÿéóÃ& *%ÿÿ ÿéóÇ&0‘*öÿÿÿìõÄ&õ*'ÿÿÿìõÏ&!q*'ÿÿÿéôÏ&Û*'ÿÿÿêñÏ&ú&Q*'ÿÿÿéöÐ&*ô*õÿÿÿéñÍ&ñ*2ÿÿÿéòÐ&±*2ÿÿÿèôÏ&Ê*'ÿÿ ÿèæÐ&0’2ÿÿÿèôÏ&'W*%ÿÿÿèõÏ&*#ÿÿÿèèÐ&/&'X*%ÿÿÿèôÏ&(/*%ÿÿÿéîÐ&'Y*'ÿÿÿéöÏ&B*'ÿÿÿéóÆ&…*/ÿÿÿéõÑ&²*%ÿÿÿìðÏ&{*'ÿÿÿìóÊ&'Z&'[**ÿÿÿéóÏ&%¢*%ÿÿ ÿéôÇ&*÷*õÿÿÿêñÅ&0•*2ÿÿÿêìÐ&*2*ÙÿÿÿèòÆ&0$*/ÿÿÿéõÍ&*2ÿÿ ÿéøÏ&'E'\ÿÿÿéöÏ&/*2ÿÿÿèöÄ&Ó*%ÿÿÿéñÌ&¦*2ÿÿÿèíÏ&£*%ÿÿÿéòÁ&*&. ÿÿÿìõÏ&*%2ÿÿÿéõÏ&¢*2ÿÿÿòñÇ&%þ*'ÿÿÿèñÅ&À*&ÿÿÿèðÂ&& *%ÿÿÿëóÏ&'F**ÿÿÿêìÏ&)þ*#ÿÿÿéóÏ&Ô*%ÿÿÿèõÏ&–*1ÿÿÿéóÅ&'ì*%ÿÿÿêðÇ&Ã*&ÿÿÿèôÂ&Ø*'ÿÿÿçõÏ&Y*'ÿÿÿèòÏ&&*2ÿÿÿêïÏ&(0&***ŠÿÿÿèóÏ&î*#ÿÿÿéõÃ&3*%ÿÿÿéõÏ&*#ÿÿÿêëÇ&*'0ñÿÿÿéòÆ&*3*'ÿÿÿéôÌ&(1ÿÿÿè÷Ï&ñ*%ÿÿÿíòÌ&-**ÿÿÿé÷Ï&S*/ÿÿÿêëÐ&W*2ÿÿÿéóÁ&¶*%ÿÿÿéöÏ&**&2ÿÿÿèìÇ&&*%ÿÿÿõòÆ&*20iÿÿÿéóÅ&&*%ÿÿÿéïÐ&R*#ÿÿÿêóÌ&&*'ÿÿÿõöÄ&Á*%ÿÿÿéóÏ&"W*#ÿÿÿòõÆ&*#ÿÿÿéóÎ&*%ÿÿÿòòÇ&&*'ÿÿÿééÏ&µ*%ÿÿÿíôÐ&?**ÿÿÿèöÎ&***™ÿÿÿéòÏ&**0°ÿÿÿêõÐ&'G*%ÿÿÿéóÐ&U*%ÿÿ ÿéêÐ&÷*uÿÿÿéóÐ&*%0÷ÿÿÿéõÐ&2ÿÿÿéõÐ&* *'ÿÿÿéòÎ&²*'ÿÿÿêóÏ&g&f*'ÿÿ ÿéóÆ&¸·ÿÿÿéñÍ&¡*'ÿÿÿèðÎ&(2*%ÿÿÿêêÏ&+Õ&(3*+ÿÿÿèòÏ&'H*'ÿÿÿíôÏ&'I*/ÿÿÿéõÏ&!*%ÿÿÿêòÏ&S*#ÿÿÿîóÏ&Â*%ÿÿÿöñÎ&**2ÿÿÿéóÇ&Á*#ÿÿÿé÷Ï&+*'ÿÿÿëòÐ&Ù*'ÿÿÿðóÄ&Õ*%ÿÿÿè÷Ï&)*2ÿÿÿèëÏ&­&à**ÿÿ ÿéóÐ&-&ÇÿÿÿéðÏ&¶*%ÿÿÿéôÏ&Z*/ÿÿÿèóÈ&'K&³ÿÿÿèõÍ&©*%ÿÿÿéòÏ&*%0ÕÿÿÿéöÏ&˜*/ÿÿÿéõÐ&\*2ÿÿÿêíÑ&ž*'ÿÿÿééÐ&'J*%ÿÿÿèöÎ&Ö*2ÿÿÿéóÐ&•*'ÿÿÿéóÏ&?*'ÿÿÿéóÏ&x*%ÿÿÿé÷Ì&B*'ÿÿÿòõÅ&Ô*%ÿÿÿéôÏ&N**ÿÿÿéëÉ& ³*'ÿÿÿëòÎ&±*'ÿÿÿéóÏ&K&q*+ÿÿÿéóÇ&Ö*'ÿÿÿéîÈ&.*'ÿÿÿèïÍ&0*'ÿÿÿéîÏ&v*'ÿÿÿèíÏ&*%ÿÿÿïóÏ&*%ÿÿÿéôÑ& ¸*%ÿÿÿéñÐ&ô*/ÿÿÿèíÒ&¾*%ÿÿÿéóÏ&*2-èÿÿÿêöÉ&$*'ÿÿÿïóÈ&*'ÿÿÿññÄ&ß*'ÿÿÿëóÉ&**&ú2 ÿÿÿëôÏ&*'ÿÿÿéòÏ&'N*'ÿÿÿêíÏ&*%.âÿÿÿêóÓ&¹*'ÿÿÿéõÐ&V**ÿÿÿéóÎ&Ø&Ù**ÿÿÿèóÏ&X*'ÿÿÿéõÇ&'O*'ÿÿÿèñÑ&ë*%ÿÿÿçôÏ&Ö*'ÿÿÿèòÐ&Ö*'ÿÿÿëïÏ&º&•**ÿÿÿêóÍ&E*%ÿÿÿæóÆ&Í*%ÿÿÿèóÏ&'P*/ÿÿÿé÷Ï&'Q*'ÿÿÿéòÏ&'R*'ÿÿÿéêÐ&c*2ÿÿÿñóÄ&ç*'ÿÿÿèñÅ&&i&&e*+ÿÿÿéöÆ&&,*/ÿÿÿêóÆ&¸'_ÿÿÿéôÏ&'^*'ÿÿÿêôÏ& *'ÿÿÿéñÏ&0fÿÿÿéóÏ&**0qÿÿÿèôÍ&(8*2ÿÿÿèñÍ&*'ÿÿÿéðÒ&0í*'ÿÿÿéôÈ&/*'ÿÿÿéóÏ&ò*%ÿÿÿæ÷Æ&'b*'ÿÿÿèîÐ&Î*!ÿÿÿêòÏ&*20ŽÿÿÿæîÐ&=*/ÿÿÿèôÆ&é*%ÿÿÿé÷Ñ&*2,ÍÿÿÿçõÑ&*% ÿÿ ÿèóÇ&s2!ÿÿÿëòÆ&'c*%ÿÿÿéôÏ&*'ÿÿÿçõÏ& Õ*'ÿÿÿéõÐ&ã**ÿÿÿéõÊ&**ÿÿÿéìÐ&–&*'ÿÿÿéòÐ&**'ÿÿ ÿéóÐ&Ç2"ÿÿÿðóÏ&*'.—ÿÿÿéóÈ&'d*'ÿÿÿéóÅ&Š*'ÿÿÿñóÇ&*"**ÿÿÿéóÏ&Í*%ÿÿÿéöÇ&”*%ÿÿÿèóÐ&*/2#ÿÿÿìöÎ&*ù2$ÿÿÿèîÐ&*2,lÿÿÿéðÐ&Q*2ÿÿÿëñÏ&­&¬*2ÿÿÿéóÐ&*'*(ÿÿÿêöÏ&`&_*'ÿÿÿéîÁ&**/¸ÿÿÿèøÎ&'±**ÿÿÿèòÏ&²*/ÿÿÿèöÎ&*'»ÿÿ ÿéîÑ&„…ÿÿÿéôÐ&Ÿ**ÿÿÿèïÏ&*1& 2%ÿÿÿéíÃ&°*/ÿÿÿçöÏ& _*2ÿÿÿçõÏ&Þ*&ÿÿÿçòÏ&Ù*'ÿÿÿìöÏ&*''eÿÿÿéóÏ&%Ó*%ÿÿÿéòÐ&*''fÿÿÿìõÑ&Ü&Ý*'ÿÿÿè÷Ð&**2&ÿÿÿéóÏ&&*+ÿÿÿêòÏ&*',mÿÿÿïòÏ&£*'ÿÿÿíòÏ&*/&è2'ÿÿÿèðÇ&, *1ÿÿÿéëÇ&'Û*2ÿÿÿéóÐ&*',nÿÿÿêøÅ&ü**ÿÿÿéòÏ& V*'ÿÿÿéòÏ&¿*'ÿÿÿéöÏ&*1.éÿÿÿéóÀ&*+&~*ÿÿÿéñÎ&*2(AÿÿÿñòÏ&+*'ÿÿÿêóÑ&"f*'ÿÿ ÿéóÏ&­ýÿÿÿéìÊ&f2(ÿÿÿéóÏ&1*'ÿÿÿèóÏ&*2+­ÿÿÿéîÄ&*/*0ÿÿÿéõÏ&2)ÿÿÿèìÏ&'g*'ÿÿÿèôÏ&Û*%ÿÿÿéëÎ&'h*'ÿÿÿèõÆ& Õ**ÿÿÿéìÐ&*1&¿2*ÿÿÿóòÅ&#j*'ÿÿ ÿèõÏ&-2+ÿÿÿéóÐ& I*'ÿÿÿèñÆ&'i*+ÿÿÿéïÏ&*+&[2,ÿÿÿèôÐ&]*%ÿÿÿèõÑ&&*+ÿÿÿêóÐ&*+&b2-ÿÿÿæñÏ&*'*ûÿÿÿëîÐ&**&,o2.ÿÿ ÿéòÏ&, 2/ÿÿÿèðÏ&*+&*ü 8ÿÿÿéóÐ&*'20ÿÿÿéôÏ&€&®*1ÿÿÿéôÑ&9*'ÿÿÿèñÑ&**0—ÿÿÿçòÐ&*'21ÿÿÿéìÑ&!À…ÿÿÿéîÑ&ã**ÿÿÿèóÏ&!ê*'ÿÿÿèöÏ&á&%Ã*+ÿÿÿïóÎ&Ù*'ÿÿÿêôÐ&"¤*'ÿÿÿëîÉ& r*'ÿÿÿèóÆ&#>*'ÿÿÿéóÏ&*'"µÿÿÿéëÏ&!}&à*1ÿÿÿéñÏ&#Ñ*'ÿÿÿé÷Ï&q&r*+ÿÿÿéöÐ&ß**ÿÿÿèóÎ&?**ÿÿ ÿçæÉ&924ÿÿÿéõÏ&.&/**ÿÿÿéîÇ&!#*'ÿÿÿéñÏ&'j*1ÿÿÿéóÑ&X*2ÿÿÿéôÏ&¼*'ÿÿÿçòÇ&'›*'ÿÿÿéõÈ&*%ÿÿÿéïÅ&"G**ÿÿÿèóÏ&â**ÿÿÿéõÏ&"ë*/ÿÿÿéõÏ&£**ÿÿÿéîÈ&&ˆ**ÿÿÿéïÏ&**&[25ÿÿÿèìÉ&à*'ÿÿÿéòÐ&"ö*'ÿÿÿèóÎ&!ö*'ÿÿÿêòÐ&L26ÿÿÿìõÑ&*2"±ÿÿÿèôÏ&$€*/ÿÿÿîòÏ&"*'ÿÿÿéóÏ&!»*'ÿÿÿéõÑ&ä**ÿÿÿéôÏ&!"*'ÿÿÿèòÏ&!æ*/ÿÿÿèõÓ&'œ**ÿÿÿëôÇ&! */ÿÿÿëïÐ&”&•*+ÿÿÿòôÏ&"g**ÿÿÿéòÏ&*'0¢ÿÿÿéëÑ&*ý.ÏÿÿÿéóÐ&!ñ*'ÿÿÿíõÐ&**/ÿÿÿéöÏ&*'ÿÿÿèôÏ&#´*'ÿÿÿéëÑ&.Ï29ÿÿ ÿèóÉ&è2:ÿÿÿèõÐ&T2;ÿÿÿéóÏ&'Þ*2ÿÿÿéòÐ&% *'ÿÿÿêóÉ&*/-éÿÿÿéóÏ&$l*'ÿÿÿèõÐ& */ÿÿÿìôÏ&*'/ÿÿÿêôÏ&*''ßÿÿÿéôÈ&*'1ÿÿÿéïÑ&**-êÿÿÿïôÏ&*'*)ÿÿÿçíË&$ì*+ÿÿÿéñÇ&*2ÿÿÿéóÏ&R*'ÿÿÿêðÑ&*2‡ÿÿÿîõÏ&)i*%ÿÿÿéõÏ&*'#CÿÿÿéóË&'n*'ÿÿÿçóÐ&æ*'ÿÿÿéôÆ&'o*/ÿÿÿèöÏ&% *'ÿÿÿéîÑ&$–*'ÿÿÿçñÏ&#*2ÿÿÿèõÐ&*''pÿÿÿéóÏ&$D*'ÿÿÿéðÆ&*'$ÿÿÿíóÐ&å*/ÿÿÿéõÏ&***oÿÿÿðôÅ&É*2ÿÿÿéïÉ&.þ2<ÿÿÿèóÏ&**2=ÿÿÿçöÐ&*/.ÿÿÿÿèñÏ&*'2>ÿÿ ÿéóÐ&/'qÿÿÿéõÐ&€&*+ÿÿÿêðÏ&$|*'ÿÿÿèôÏ&**$eÿÿÿéòÈ&**/;ÿÿÿèòÐ&**2?ÿÿÿìóÈ&$A*'ÿÿÿèöÐ&**2@ÿÿÿéóÏ&**/ÿÿÿíõÉ&*+&Þ2AÿÿÿéôÉ&*'/9ÿÿÿèõÐ&*+&2BÿÿÿíõÏ&*+&Þ2CÿÿÿéòÏ&**-<ÿÿÿèôÏ&%**'ÿÿÿéõÏ&*+&!ä2DÿÿÿéõÏ&ç&è&é*+ÿÿÿçôÐ&'r**ÿÿÿéîÑ&¹*2ÿÿÿéõÒ&~*1ÿÿÿéëÏ&'s&'t2EÿÿÿéôÑ&*'2Fÿÿÿê÷Ð&°**ÿÿÿéóÏ&¡**ÿÿ ÿçóÏ&'u2GÿÿÿéóÉ&'v**ÿÿÿçóÏ&**+ÿÿÿèôÌ&**2Hÿÿ ÿéöÏ& ‹ÿÿÿé÷Í&'w**ÿÿÿêòÏ&*'/SÿÿÿéîÇ&q*+ÿÿÿòóÇ&&š*+ÿÿÿéðÆ&*'2IÿÿÿèõÐ&'x**ÿÿÿéîÐ&d&efÿÿÿéóÏ&'y*/ÿÿÿéøÑ&'z*1ÿÿÿìôÏ&'{*'ÿÿÿèôÎ&>&’*+ÿÿÿéïÏ& ó&!;*+ÿÿÿèñÏ&$&&e*+ÿÿÿéëÏ&**-ëÿÿÿæïÇ&*+,(ÿÿÿéõÑ&**#}ÿÿÿéóÏ&†**ÿÿÿçóÈ&**-ìÿÿÿéõÈ&**,×ÿÿÿéøÏ&*+&.ý2JÿÿÿèïÎ&&¨*+ÿÿÿéòÏ&%à*+ÿÿÿéõÑ&¼**ÿÿÿèñÈ&*/2KÿÿÿèíÐ&ê&Æ*+ÿÿÿçôÏ&'|*'ÿÿÿéöÏ&*+2LÿÿÿèôÎ&<**ÿÿÿèôÐ&*+&Þ2MÿÿÿéöÐ&ë*+ÿÿÿéôÏ&%é*'ÿÿÿèõÏ&'}**ÿÿÿéòÏ&'~*'ÿÿÿéòÈ&*%ÿÿÿéóÉ&'*'ÿÿÿèñÆ&'€*'ÿÿÿèôË&'**ÿÿÿíóÉ&*'2NÿÿÿéóÒ&%æ*'ÿÿÿéòÏ&#ì*/ÿÿÿèôÈ&**0Øÿÿÿè÷Ì&*+&62OÿÿÿèõÐ&*+&2PÿÿÿçìÇ&%ê*'ÿÿÿêíÑ&'‚*'ÿÿÿêõÏ&%è**ÿÿÿîïÏ&2**ÿÿ ÿêóÊ&'ƒ&'„2QÿÿÿéóÏ&ÿ*/ÿÿÿîöË&%**ÿÿÿêóÐ&&¤*'ÿÿÿèõÊ&Ô*/ÿÿÿéõÏ&*'._ÿÿÿéóÌ&%í**ÿÿÿêóÑ&**.ØÿÿÿèôÐ&**,)ÿÿÿé÷Ñ&&Ã**ÿÿÿêõÏ&*+.üÿÿÿèöÑ&'…**ÿÿÿéñÈ&'*'ÿÿÿéòÏ&**.åÿÿÿçôÏ&'†*/ÿÿÿêöÏ&'‡*1ÿÿÿé÷Ê&ö**ÿÿÿìöÑ&)ô**ÿÿÿïöÏ&**2TÿÿÿèõÐ&*+&2UÿÿÿéõË&¤**ÿÿÿèôÏ&'Š*+ÿÿÿéóÐ&*+/ÿÿÿèôÏ&*/-ÿÿÿéõÔ&'‹**ÿÿÿéðÏ&*12VÿÿÿèöÐ&'Œ*'ÿÿÿéðÏ&**,†ÿÿÿéõÑ&!ä&!Ã*+ÿÿÿéöÐ&*-&2WÿÿÿéðÏ&'**ÿÿÿèôÐ&*+&Þ2XÿÿÿïõÑ&*+-îÿÿÿéòÏ&*1.ÕÿÿÿéòÐ&**&!Ä2YÿÿÿèóÊ&**.æÿÿÿéôÒ&Q**ÿÿÿéñÊ&'Ž**ÿÿÿíôÐ&P**ÿÿÿíõÈ&*+&Þ2ZÿÿÿéôÏ&'**ÿÿÿéòÊ&'*+ÿÿÿèôÏ&í*+ÿÿÿêõÎ&*-&/2[ÿÿÿéôÐ&*'7ÿÿÿçøÒ&Õ**ÿÿÿîôÏ&'‘**ÿÿÿéïÑ&*++ÿÿÿéöÏ&**/ ÿÿÿêóÐ&***,ÿÿÿéõÏ&**.`ÿÿÿèòÏ&**2\ÿÿÿéöÒ&**)øÿÿÿé÷È&÷*+ÿÿÿçõÌ&*+0”ÿÿÿéòÏ&'’**ÿÿÿééÊ&È&ÄÅÿÿÿîñË&%Q**ÿÿÿèôÒ&%*/ÿÿÿèïÏ&*+& 2]ÿÿ ÿéôË&’&“”ÿÿÿçôÐ&*+*þÿÿÿè÷È&R*1ÿÿÿéøÑ&û*/ÿÿÿéöÐ&H*+ÿÿÿéëÊ&*+&&®2_ÿÿÿèøÏ&*+&,c2`ÿÿÿèöÏ&*+&2aÿÿ ÿéóÏ&,~,€ÿÿÿèîÐ&»-ïÿÿÿèñÈ&**,ÀÿÿÿéòÑ&*ÿ+ÿÿÿéîÑ&¿2bÿÿ ÿéõÌ&,2cÿÿÿèòÑ&7*%ÿÿÿèòË&*+,}ÿÿÿéñÑ&%÷**ÿÿÿéòÎ&*+-ðÿÿÿèôÏ&*+2dÿÿÿéóÏ&O*+ÿÿÿéóÏ&*-&šYÿÿÿéóÌ&'“*+ÿÿÿëñË&ÿ& ¤ £ÿÿÿéóÏ&†&)“*-ÿÿ ÿéöÈ&%-$ÉÿÿÿêòÏ&**2eÿÿÿçöÏ&*+2fÿÿÿéóÉ&*+.çÿÿÿçìÑ&ï&îíÿÿÿçõÐ&**‡ÿÿÿéöÏ&*+2gÿÿ ÿéôÏ&,,€ÿÿÿêïÑ&*-&è2hÿÿÿéðÌ&*10åÿÿÿéòÐ&*+2iÿÿÿèïÏ&1*+ÿÿÿééÇ&2jÿÿÿééÇ&2kÿÿÿééÇ&2lÿÿÿééÇ&ÿÿÿééÇ&2mÿÿÿééÇ&zÿÿÿééÇ&2nÿÿÿééÇ&2oÿÿÿéèÇ&2pÿÿÿééÇ&2qÿÿÿééÇ&lÿÿÿééÇ&mÿÿÿééÇ&2rÿÿÿééÇ&nÿÿÿééÇ&oÿÿÿééÇ&2tÿÿÿééÇ&wÿÿÿééÇ&2uÿÿÿééÇ&xÿÿÿééÇ&2vÿÿÿééÇ&yÿÿÿééÇ&ÿÿÿééÇ&zÿÿÿéèÇ&2wÿÿÿéèÇ&&|{ÿÿÿéèÇ&}ÿÿÿéèÇ&2xÿÿÿéèÇ&2yÿÿÿéèÇ&2zÿÿÿéèÇ&ÿÿÿéèÇ&2{ÿÿÿéèÇ&2|ÿÿÿéèÇ&2}ÿÿÿéèÇ&›ÿÿÿéèÇ&‘ÿÿÿéèÇ&2~ÿÿÿéèÇ&2ÿÿÿéèÇ&2€ÿÿÿéèÇ&2ÿÿÿéèÇ&2‚ÿÿÿéèÇ&2ƒÿÿÿéèÇ&2„ÿÿÿéèÇ&2…ÿÿÿéèÇ&2†ÿÿÿéèÇ&2‡ÿÿÿéèÇ&2ˆÿÿÿíòÏ&2½ÿÿÿêóÌ&½ÑÿÿÿñòÄ&2‰ÿÿÿè÷Ï&ðkÿÿ ÿìôÅ&'ž'ÿÿÿéðÌ&ðlÿÿ ÿîõÐ&µmÿÿÿêðÌ&ðÿÿÿî÷Ì&ðÿÿÿìõÌ&ðÿÿ ÿîôÏ&µ·ÿÿÿèíÐ&Åðÿÿ ÿéìÏ&( µÿÿÿéóÌ&ðïÿÿ ÿéêÏ&µ¾ÿÿÿêóÐ&ð¿ÿÿ ÿéëË&µ%3ÿÿ ÿéñÍ&µñÿÿ ÿéóË&µ…ÿÿÿðóÌ&ðßÿÿ ÿèôË&µÿÿ ÿêóÎ&µÀÿÿ ÿèöÑ&µÓÿÿ ÿêìÐ&µ*Ùÿÿ ÿìøÏ&µ#ÿÿÿèòÏ&ð0«ÿÿ ÿéôÏ&Ûµÿÿ ÿðóÏ&›Ùÿÿ ÿèðË&lµÿÿÿéõÑ&ð²ÿÿ ÿéóË&µ ÿÿ ÿéòÏ&¶bÿÿ ÿéöÏ&Bµÿÿ ÿðòÆ&›2ŠÿÿÿñòÏ&2‹ÿÿÿçõÌ&ð!vÿÿ ÿèñË&µÀÿÿ ÿèðË&µ& ÿÿÿêìÏ&ð)þÿÿ ÿéõÐ&µ' ÿÿ ÿðóÏ&›&œšÿÿ ÿèôÏ&µÿÿ ÿèðÐ&'¡µÿÿ ÿéìÏ&µ!wÿÿÿòõÌ&ðÿÿ ÿõöË&µÁÿÿ ÿîóÏ&µÂÿÿ ÿéóÎ&µÿÿ ÿéóË&¶dÿÿ ÿéõÏ&µÿÿ ÿêðË&õÿÿ ÿéòÐ&kµÿÿ ÿõòË&µ,ÿÿ ÿéíË&%ʵÿÿ ÿêöÏ&0®µÿÿ ÿéòÏ&0°µÿÿ ÿéïÐ&& ò2Œÿÿ ÿîòÌ&µ'¢ÿÿ ÿèôË&µØÿÿ ÿéóË&µ¶ÿÿ ÿèôÏ&¶”ÿÿ ÿçóÎ&'£µÿÿ ÿçõÏ&¶‡ÿÿ ÿéòÎ&²µÿÿ ÿêóÌ&µ&ÿÿ ÿóóÐ&¶gÿÿ ÿðóÏ&+å›ÿÿ ÿíóÏ&µ'¦ÿÿ ÿêòÏ&µ(Êÿÿ ÿñòÑ&&I'¥ÿÿ ÿíôÐ&ø¶ÿÿ ÿðòË&›&žŸÿÿ ÿéîË&.µÿÿ ÿéôÏ& ¶ÿÿ ÿðóÎ&›2Žÿÿ ÿéóÐ&¶•ÿÿÿðñÉ&++ÿÿ ÿðòÏ&›ÿÿ ÿé÷Ì&¶Bÿÿ ÿéòÑ&¶&SQÿÿ ÿé÷Ï&+µÿÿ ÿëõÏ&+2ÿÿ ÿéõË&µ'Oÿÿ ÿêõÑ&µŽÿÿ ÿëòÐ&µÙÿÿ ÿéðÏ&¶µÿÿ ÿêöË&µ$ÿÿ ÿðóÑ&H&I›ÿÿ ÿéóË&µÿÿ ÿòõË&µÿÿÿ ÿðóË&µÕÿÿ ÿéôÑ&µ ¸ÿÿ ÿðóË&B›ÿÿ ÿèíÒ&µ¾ÿÿÿñòÆ&Þÿÿ ÿèõÏ&µáÿÿ ÿðõÏ&›2ÿÿ ÿèïÍ&µ0ÿÿ ÿññË&¶ßÿÿ ÿéõÐ&µóÿÿ ÿéôÏ&µ°ÿÿ ÿíôÎ&µ,”ÿÿ ÿéóÎ&¶&ØÙÿÿ ÿéóÏ&µ2‘ÿÿ ÿèóÏ&µ0½ÿÿ ÿéôÐ&µ'§ÿÿ ÿçõÑ&µŽÿÿ ÿèñÐ&&f&&e¶ÿÿ ÿêòÑ&'¨¶ÿÿ ÿîôÐ&è2’ÿÿ ÿðòÏ&˜&›2“ÿÿ ÿêðÏ&µ2”ÿÿ ÿéõÏ&/=¶ÿÿ ÿæ÷Ë&µ'bÿÿ ÿéôÏ&µÿÿ ÿæîÐ&¶=ÿÿ ÿèíË&µ'©ÿÿ ÿéôÑ&'ªµÿÿ ÿñóË&µçÿÿ ÿêôÏ&'«µÿÿ ÿçøÏ&¶:ÿÿ ÿéõË&ÿÿ ÿéñË&µ'¬ÿÿ ÿéõÌ&µ'aÿÿ ÿêòÓ&µiÿÿ ÿéðÒ&µ0íÿÿ ÿñòË&µ0@ÿÿ ÿéöÏ&µ'­ÿÿ ÿéóÏ&&2–ÿÿ ÿéôË&[µÿÿ ÿèìË&µ'®ÿÿ ÿðöÏ&›2—ÿÿ ÿìöÑ&¶ ÿÿ ÿèöÏ&¶<ÿÿ ÿèòÐ&µzÿÿ ÿóòË&µ#jÿÿ ÿìõÐ& Êÿÿ ÿéóÏ&µ1ÿÿ ÿéôÏ&'¯µÿÿ ÿéóÏ&µ'°ÿÿ ÿçðË&µÿÿ ÿéóÑ&µ!ÿÿ ÿèõÒ&¶ ÿÿ ÿéöÏ&Iÿÿ ÿèôÏ&µÛÿÿ ÿíòÏ&+¶ÿÿ ÿéñÎ&(Aµÿÿ ÿéöÏ&.Sÿÿ ÿèøÎ&'±¶ÿÿ ÿéëÎ&¶'hÿÿ ÿòòÎ&µrÿÿ ÿïòÏ&£¶ÿÿÿéøÏ&'²ÿÿÿ ÿéøÏ&ÿÀÿÿ ÿéìË&µÿÿ ÿéòÐ&µ%Ðÿÿ ÿêóÑ&"fµÿÿ ÿéôÏ&ÿµÿÿ ÿéóË&µŸÿÿ ÿéïË&¶(@ÿÿ ÿêõË&µ/ÿÿ ÿçöÏ& _µÿÿ ÿðòÇ&›0Ïÿÿ ÿéôÐ&¶Ÿÿÿ ÿéíË&'³µÿÿ ÿéòÐ&µ'fÿÿ ÿðòÇ&#k›ÿÿ ÿèíË&&ÇÆÿÿ ÿéîË&¶èÿÿ ÿìôÎ&,¶ÿÿ ÿèôÏ&'صÿÿ ÿìôË&¶'´ÿÿÿíòÐ&à 4ÿÿ ÿéòË&¶.Lÿÿ ÿîôÑ&y&èzÿÿ ÿðôË&¶ÿÿ ÿéíË&5µÿÿ ÿéõÏ&:¶ÿÿ ÿéîË&µ!#ÿÿ ÿèõÎ&¶@ÿÿ ÿé÷Ï&¶&rqÿÿ ÿîôÏ&$a&'µèÿÿ ÿéîË&¶ sÿÿ ÿéñË&µ"ÿÿ ÿñôÐ&&Ú#fÿÿ ÿè÷Ë&¶"Cÿÿ ÿéîË&&ˆ¶ÿÿ ÿéôÏ&&Øÿÿ ÿïóÎ&µÙÿÿ ÿéöÏ&¶ÿÿ ÿìõÑ&'¶ÿÿ ÿêôË&µ3ÿÿ ÿïñË&¶#ÉÿÿÿéôÏ&Á4ÿÿ ÿðòÉ&›2šÿÿ ÿéëË&µ þÿÿ ÿçõË&Yµÿÿ ÿéóÏ&¶Íÿÿ ÿéñÏ&µ)‚ÿÿ ÿéóÑ&µXÿÿ ÿêõË&¶:ÿÿ ÿîôÏ&¶!^ÿÿ ÿéõË&¶ pÿÿ ÿîôÐ&…& èÿÿ ÿòòË&J&¶2›ÿÿ ÿéöÐ&ßÿÿ ÿéòË&¶wÿÿ ÿîôÈ&„&è2œÿÿ ÿêñË&J&¶2ÿÿ ÿîôÊ&è2žÿÿ ÿéöÒ&/E¶ÿÿ ÿéñÑ&µ#ôÿÿÿíòÏ&Þ&ßàÿÿ ÿêîË&µ#{ÿÿ ÿéõÏ&32Ÿÿÿ ÿéöÏ&Nµÿÿ ÿîòÏ&Lµÿÿ ÿðòÑ&›&¿Àÿÿ ÿéóÐ&${&Mÿÿ ÿèóË& áµÿÿ ÿéõÏ&µ#Cÿÿ ÿéõÏ&¶*oÿÿ ÿîôÐ&ð&è2 ÿÿ ÿéôÑ&¶Ðÿÿ ÿéòÐ&¶% ÿÿ ÿéôË&¶2¡ÿÿ ÿéõË&¶$ÿÿ ÿéîÑ&$–¶ÿÿÿïñÑ&G2¢ÿÿ ÿéóÑ&µ'¶ÿÿ ÿçñÏ&µ#ÿÿ ÿîôÏ&è&…2£ÿÿ ÿèõË&¢µÿÿ ÿéðË&µ$ÿÿ ÿéòÏ&¶2¤ÿÿ ÿðôÐ&¶2¥ÿÿ ÿçóÐ&µæÿÿ ÿéôË&ȶÿÿ ÿðôË&¶Îÿÿ ÿéñÏ&¶%ÿÿ ÿîõÑ&…&èÿÿ ÿðòÐ&›&  ÿÿ ÿéóÑ&bÿÿ ÿéíÏ&-:ÿÿ ÿçðÒ&¼2¦ÿÿ ÿêôÑ&'·ÿÿ ÿîôÏ&è2§ÿÿ ÿéòÐ&Ç2¨ÿÿ ÿéöÏ&µNÿÿ ÿéóÏ&¶+ÿÿ ÿèôÐ&¶'¸ÿÿ ÿîôÏ&'¹èÿÿ ÿçôÐ&µ1ÿÿ ÿèôË&.™ÿÿ ÿéôË&µ&žÿÿ ÿéóË&¶'vÿÿ ÿèöÑ&¶,yÿÿ ÿîôÉ&é&êèÿÿ ÿéõÏ&,„¶ÿÿ ÿéôÑ&n¶ÿÿ ÿéïÏ& ó&#Nÿÿ ÿèñÓ&1ÿÿ ÿîöÐ&è0 ÿÿ ÿçõÑ&'ºÿÿ ÿèñÐ&&e&&gÿÿ ÿðòÒ&›sÿÿ ÿïòÏ&$þµÿÿ ÿéîÑ&'»ÿÿ ÿéóÏ&“¶ÿÿ ÿïôÏ&k2©ÿÿ ÿéòÏ&µ-<ÿÿ ÿéíÏ&µ,zÿÿ ÿéõÐ&ê&,{ÿÿ ÿéñÐ&'¼ÿÿ ÿé÷Ë&&ì2ªÿÿ ÿîôÏ&!¨&!§èÿÿ ÿèôÎ&<ÿÿ ÿêíÑ&¶'‚ÿÿ ÿéóÏ&¶'yÿÿ ÿéòË&µÿÿ ÿéóÐ&'½¶ÿÿ ÿêóÐ&&¤¶ÿÿ ÿíóÐ&¶'¾ÿÿ ÿéõÏ&¶'¿ÿÿ ÿîôË&,|èÿÿ ÿéôÐ&'À&,"ÿÿ ÿéóÒ&µ%æÿÿ ÿîôÒ&"ì&!¨èÿÿ ÿìóÑ&"Š&$2«ÿÿ ÿìóÑ&"Š&$2¬ÿÿ ÿîöË&¶%ÿÿ ÿéöÐ&ëÿÿ ÿèöÏ&µ'Áÿÿ ÿéõÏ&¶2­ÿÿ ÿéìË&&î2®ÿÿ ÿèöÑ&¶'Âÿÿ ÿéôÏ&'öÿÿ ÿîõÐ&u&è2¯ÿÿ ÿèõÐ&&2°ÿÿ ÿî÷Ð&C&è2±ÿÿ ÿéôË&¶'Äÿÿ ÿðòÑ&›.ÿÿ ÿîôÍ&è2²ÿÿ ÿîôÐ&œ&è2³ÿÿÿñòÑ&ÿÿ ÿïóÒ&´¶ÿÿ ÿé÷Ð&¶'Åÿÿ ÿèôÏ&¶-ÿÿ ÿêòÏ&.š¶ÿÿ ÿêøÐ&+æÿÿ ÿèõÐ&µ¢ÿÿ ÿíôÐ&P¶ÿÿ ÿîôÏ&è2´ÿÿ ÿíóÏ&.uÿÿ ÿìõÊ&$2µÿÿ ÿéòÏ&0Ãÿÿ ÿéïÑ&¶+ÿÿ ÿéðË&¶%óÿÿ ÿîôÏ&'‘ÿÿ ÿîôË&%jèÿÿ ÿèôÒ&%¶ÿÿ ÿéøÑ&û¶ÿÿ ÿèïË&&ô2¶ÿÿ ÿéïÍ&2·ÿÿ ÿëôÏ&Ü&2¸ÿÿ ÿèòÐ&¶.aÿÿ ÿìöÐ&$.›ÿÿ ÿè÷Ë&Rÿÿ ÿçõÏ&#&!2¹ÿÿ ÿéñÑ&¶%÷ÿÿ ÿêóË&2ºÿÿ ÿéóË&.Gÿÿ ÿîôÉ&&¹&&¸èÿÿ ÿéôÍ&2»ÿÿ ÿèôÏ&  ÿÿ ÿéíÏ&+Kÿÿ ÿçðÐ&+2¾ÿÿÿëëÏ&'Æ2¿ÿÿÿêòÏ&'Æ2ÀÿÿÿððÐ&+2ÁÿÿÿïïÏ&+ 2Âÿÿ ÿéñË&¶$ZÿÿÿïîÏ&V2Ãÿÿ ÿéóÐ&+ 2Äÿÿ ÿëóÏ& û úÿÿ ÿéóÒ&¶%æÿÿÿèïÑ&MNÿÿÿêòÏ&øðÿÿÿèñÑ&PQÿÿÿêëÏ&”úÿÿÿìóÎ&”'ÇÿÿÿéëÎ&”Ìÿÿ ÿèðÉ&+è2Ïÿÿ ÿéòÐ&™2Ðÿÿ ÿèïÏ&¸ÿÿ ÿèìÏ&ÿÿ ÿèïÏ&|ÿÿ ÿéôÐ&+ç2Õÿÿ ÿéôÐ&+ç2×ÿÿ ÿéôÐ&+ç2Ùÿÿ ÿçôÐ&+ç2Úÿÿ ÿéòÄ&}Kÿÿ ÿïõÐ&&2Ûÿÿ ÿëôÐ&¾2Ýÿÿ ÿèôÐ&¾2Þÿÿ ÿèõÏ&&º+éÿÿ ÿïôÐ&¾2áÿÿ ÿéóÏ&& ÿÿ ÿçôÐ&*‹¾ÿÿ ÿéóÏ&ñ ÿÿ ÿéòÏ&K2ãÿÿ ÿèôÐ&¾2äÿÿ ÿéòÏ& 2åÿÿ ÿçôÑ&+ê2æÿÿ ÿèõÐ&&2çÿÿ ÿéóÐ& J ÿÿ ÿèôÐ&¾2èÿÿ ÿéõÐ&&%ÿÿ ÿèõÇ&§2éÿÿ ÿçôÒ&+ê2êÿÿ ÿçôÒ&+ê2ëÿÿ ÿéòÏ&  ÿÿ ÿìôÐ&¾2ìÿÿ ÿêöÐ&‡2íÿÿ ÿèöÐ&‡2îÿÿ ÿéòÐ&j ÿÿ ÿéõÑ&+ë2ðÿÿ ÿéòÉ&Á& 2ñÿÿ ÿçôÒ&+ê-ñÿÿ ÿéòÏ&1'ÿÿ ÿèõÏ&%œÿÿ ÿèìÏ&(Þÿÿ ÿèóÏ& #ÿÿ ÿèóÏ&&%ÿÿ ÿèôÏ&·(ÿÿ ÿèôÏ&#üÿÿ ÿèóÏ&#ýÿÿ ÿèôÏ&‡oÿÿ ÿèêÏ&(¾ÿÿ ÿèöÏ&þ2òÿÿÿèôÏ&üÿÿ ÿèìÏ&#Yÿÿ ÿèéÎ&'È'Éÿÿ ÿè÷Ï&%ÿÿ ÿèòÏ&+Ãÿÿ ÿèóÏ&(Èÿÿ ÿèóÐ&  ÿÿ ÿèëÏ&-ò%ÿÿ ÿèïÏ&#;ÿÿ ÿèñÏ&‡®ÿÿ ÿèôÏ&(ÿÿ ÿèöÏ&(¡ÿÿ ÿèõÏ&‡Rÿÿ ÿèòÏ&‡&yÿÿ ÿèìÏ&‡(¾ÿÿ ÿèõÏ&#ÿÿ ÿèõÏ&`#ÿÿ ÿèöÑ&‡­ÿÿ ÿçõÏ&(!vÿÿ ÿèôÏ&((/ÿÿ ÿèòÍ&2óÿÿ ÿèôÏ&üKÿÿ ÿèóÏ&()ÿÿ ÿèîÏ&ð#ÿÿ ÿèóÏ&‡!rÿÿ ÿèôÏ&‡Úÿÿ ÿèõÏ&‡ÿÿ ÿèñÏ&(8ÿÿ ÿçóÎ&¤¥ÿÿ ÿèôÏ&%:ÿÿ ÿèöÏ&Þ(ÿÿ ÿèóÐ&#…ÿÿ ÿèöÏ&(Þÿÿ ÿèôÏ&‡…ÿÿ ÿèëÏ&('Ìÿÿ ÿèòÏ&‡Îÿÿ ÿèòÏ&('Êÿÿ ÿèëÏ&‡)ÿÿÿ ÿèêÏ&‡jÿÿ ÿèöÏ&(äÿÿ ÿèîÏ&*Xÿÿ ÿèóÑ&-ó Kÿÿ ÿèóÏ&‡'Ëÿÿ ÿèóÏ&(Ôÿÿ ÿèõÏ&('Íÿÿ ÿèöÏ&'Î(ÿÿ ÿè÷Ï&*ÿÿ ÿèïÐ&#Rÿÿ ÿèòÏ&'Ïÿÿ ÿèóÐ&‡'Ðÿÿ ÿèëÐ&*Wÿÿ ÿèôÏ&!m(ÿÿ ÿèóÏ&#ÿÿ ÿèôÏ&‡ÿÿ ÿèóÑ& K2ôÿÿ ÿçõÏ&¦‡ÿÿ ÿèïÏ&]‡ÿÿ ÿèïÏ&‡'Ñÿÿ ÿèòÐ&#0öÿÿ ÿèòÏ&&*ÿÿ ÿèöÏ&*¢ÿÿ ÿèöÏ&±#ÿÿ ÿèöÏ&‡ÿÿ ÿèõÏ&(ÿÿ ÿèóÏ&‡ÿÿ ÿèòÏ&*.Òÿÿ ÿèóÏ&ˆ‡ÿÿ ÿèóÐ&· Kÿÿ ÿèóÏ&(Áÿÿ ÿèõÏ&*Ïÿÿ ÿèóÏ&‡æÿÿ ÿèôÐ&*&@?ÿÿ ÿè÷Ï&(Eÿÿ ÿèìÏ&a‡ÿÿ ÿèóÐ&"é Kÿÿ ÿèöÏ&(—ÿÿ ÿèóÏ&‡0Öÿÿ ÿèíÒ&*¾ÿÿ ÿèóÏ&‡gÿÿ ÿèôÐ&(Pÿÿ ÿèóÏ&(ÿÿ ÿèòÏ&‡Xÿÿ ÿèôÐ&*š2õÿÿ ÿè÷Ï&)(ÿÿ ÿèóÓ&*¹ÿÿ ÿçóÐ&Õ*Œÿÿ ÿèëÏ&‡Æÿÿ ÿèóÏ&‡Çÿÿ ÿçóÑ&È#ÿÿ ÿèõÏ&(Ôÿÿ ÿèõÐ&ó*ÿÿ ÿèóÏ&(0½ÿÿ ÿèêÏ&(µÿÿ ÿèóÍ&¨&© Kÿÿ ÿçúÐ&_*Œÿÿ ÿèôÑ&* ¸ÿÿ ÿèòÏ&‡{ÿÿ ÿèóÏ&(æÿÿ ÿèòÐ&(Ùÿÿ ÿèóÏ&*âÿÿ ÿèìÏ&‡aÿÿ ÿèîÏ&‡ÿÿ ÿèõÑ&(2ÿÿ ÿèôÏ&*`ÿÿ ÿèòÏ& ÿÿ ÿçöÐ&ø*Œÿÿ ÿéõÏ&-ô2öÿÿ ÿèóÏ&(~ÿÿ ÿèñÏ&(àÿÿ ÿèõÏ&*¼ÿÿ ÿèöÏ&(áÿÿ ÿèòÏ&ðÿÿ ÿèóÏ&‡'ÿÿ ÿèñÏ&(Lÿÿ ÿèóÏ&(ëÿÿ ÿçôÐ&*Œ0Ýÿÿ ÿèóÏ& K0Êÿÿ ÿçóÐ&Ó*Œÿÿ ÿèôÏ&( ®ÿÿ ÿèòÏ&('Òÿÿ ÿçòÐ&%>*Œÿÿ ÿèõÐ&L‡ÿÿ ÿçòÐ&¨*Œÿÿ ÿèëÏ&‡-õÿÿ ÿèôÏ&(,sÿÿ ÿçñÐ&&e&&h*Œÿÿ ÿèñÏ&(Žÿÿ ÿèéÏ&‡ÿÿ ÿè÷Ï&*'Óÿÿ ÿèóÐ&(Œÿÿ ÿèöÏ&*'Ôÿÿ ÿèøÑ&* ÿÿ ÿèôÏ&(ÿÿ ÿèòÏ&‡'Õÿÿ ÿèôÏ&‡2÷ÿÿ ÿçòÏ&(¨ÿÿ ÿèìÏ&*'®ÿÿ ÿçëÐ&–&à*Œÿÿ ÿèíÏ&*&Ó2øÿÿ ÿçõÐ&*Œ.3ÿÿÿèòÇ&2ùÿÿ ÿçòÐ&£*Œÿÿ ÿèöÏ&‡'Öÿÿ ÿçóÐ&-ö&}*Œÿÿ ÿèîÏ&‡±ÿÿ ÿçôÐ&'×*Œÿÿ ÿçóÐ&"%&**Œÿÿ ÿèïÐ&‡xÿÿ ÿèõÑ&*Oÿÿ ÿèõÐ&‡#¡ÿÿÿèòÐ&•&2úÿÿ ÿèñÏ&*(Aÿÿ ÿèôÏ&*'Øÿÿ ÿçöÐ&"H*Œÿÿ ÿç÷Ð&*Œ+)ÿÿ ÿçöÐ&*Œ.Wÿÿ ÿèóÏ&‡&Çÿÿ ÿè÷Ï&(1ÿÿ ÿèõÑ&‰(ÿÿ ÿèôÏ&(Ûÿÿ ÿèóÐ& Kÿÿ ÿèóÏ&(,ÿÿ ÿèöÏ&* ÿÿ ÿèöÏ&( `ÿÿ ÿèõÏ&*'Ùÿÿ ÿèôÐ&‡'Úÿÿ ÿèôÏ&*Yÿÿ ÿèóÈ& K0Íÿÿ ÿçôÑ&9*Œÿÿ ÿèòÏ&*¿ÿÿ ÿèîÏ&*éÿÿ ÿèñÐ&‡gÿÿ ÿèóÏ&#)ÿÿ ÿçëÐ&'Û*Œÿÿ ÿèòÏ&‡ Wÿÿ ÿçóÐ&Ÿ*Œÿÿ ÿèóÏ&‡'ÿÿ ÿçóÐ&/ø*Œÿÿ ÿèõÏ&&bcÿÿ ÿèòÏ&‡,tÿÿ ÿèòÏ&(#jÿÿ ÿçõÐ&¨*ŒÿÿÿèòË&2ûÿÿ ÿèôÏ&*Òÿÿ ÿèñÐ&‡2üÿÿ ÿèðÑ&*/ƒÿÿ ÿçõÏ&*Yÿÿ ÿèòÏ&&Ú#aÿÿ ÿèóÏ&*"µÿÿ ÿèñÏ&‡'Üÿÿ ÿçöÐ& ‹*Œÿÿ ÿèñÏ&*$[ÿÿ ÿèõÏ&(#Iÿÿ ÿèôÏ&(!•ÿÿ ÿçòÐ&#¥*Œÿÿ ÿèöÏ&‡"_ÿÿ ÿèõÏ&'݇ÿÿ ÿèóÏ&*Íÿÿ ÿèóÏ&(ˆÿÿÿèòÉ&É&Êÿÿ ÿè÷Ï&"c(ÿÿ ÿèõÑ&‡1ÿÿ ÿèòÏ&‡"Fÿÿ ÿèôÏ&*!ëÿÿ ÿèòÏ&*"ÿÿ ÿçïÐ& ÿ*Œÿÿ ÿçòÐ&"¥*Œÿÿ ÿèóÏ&‡ fÿÿ ÿèòÐ&"Êÿÿ ÿèóÏ&("ÿÿ ÿèõÏ&(°ÿÿ ÿèìÏ& †‡ÿÿ ÿè÷Ï&¥(ÿÿ ÿçïÐ&*Œ0¹ÿÿ ÿèëÏ&‡"*ÿÿ ÿèîÏ&*!#ÿÿ ÿçíÐ&Æ&")*Œÿÿ ÿçôÐ&É*Œÿÿ ÿèöÏ&*"Äÿÿ ÿèöÏ&*ÿÿ ÿèòÐ&*#íÿÿ ÿèîÑ&(%®ÿÿ ÿèóÏ&('Þÿÿ ÿèóÏ&‡,uÿÿ ÿçõÑ&$‰*Œÿÿ ÿèòÏ&‡$Áÿÿ ÿçôÏ&32ýÿÿ ÿèöÐ&*Vÿÿ ÿèôÏ&(üÿÿ ÿçòÏ&(2þÿÿ ÿèñÏ&*%ÿÿ ÿçóÐ&÷&*Œ2ÿÿÿ ÿèòÑ&&¸&ÿÿ ÿçõÐ&*Œÿÿ ÿèñÏ&("Öÿÿ ÿçôÐ&$2*Œÿÿ ÿèôÑ&(Œÿÿ ÿèõÏ&*$nÿÿ ÿèõÑ&(—ÿÿ ÿèòÏ&‡0¤ÿÿ ÿç÷Ð&Ë*Œÿÿ ÿèöÏ&*Nÿÿ ÿèóÏ& á*ÿÿ ÿèóÏ&&  Kÿÿ ÿçôÐ&$…*Œÿÿ ÿèôÏ&*'ßÿÿ ÿèïÏ&*+ÿÿ ÿèõÐ&(ÿÿ ÿèóÏ&‡$¸ÿÿ ÿçóÐ&,&*Œ3ÿÿ ÿçóÐ&/*Œÿÿ ÿèòÐ&*/Mÿÿ ÿçôÐ&*Œ3ÿÿ ÿèóÏ&(†ÿÿ ÿèôÏ&#~*ÿÿ ÿèôÏ&*'àÿÿ ÿèõÐ&0L ­ÿÿ ÿèôÏ&(%ÞÿÿÿèóË&k&3ÿÿ ÿçôÑ&n*Œÿÿ ÿçöÑ&|*Œÿÿ ÿçôÒ&*£ÿÿ ÿèóÏ&*$ùÿÿ ÿçóÐ&ÿ&"Ï3ÿÿ ÿèîÑ&*¹ÿÿ ÿèôÏ&3ÿÿ ÿèñÏ&(-÷ÿÿ ÿèóÏ&*+ÿÿ ÿèñÏ&*Øÿÿ ÿç÷Ð&°*Œÿÿ ÿèôÏ& ­& ´,ÿÿ ÿè÷Ï&‡ÿÿ ÿèöÏ&(Nÿÿ ÿçöÐ&Ò*Œÿÿ ÿçðÑ&(pÿÿ ÿèóÏ&*#ÿÿ ÿèñÑ&*'áÿÿÿèôÏ&9ÿÿ ÿèóÐ&*/_ÿÿ ÿçöÐ&.#*Œÿÿ ÿçõÐ&%è*Œÿÿ ÿçóÑ&,&"%*Œÿÿ ÿèóÐ&'â*ÿÿ ÿçòÏ&*%âÿÿ ÿèëÏ&*&+ì3ÿÿ ÿèîÏ&*&ï3ÿÿ ÿçôÐ&'ã*Œÿÿ ÿçòÐ&´*Œÿÿ ÿèöÏ&(ÿÿ ÿçöÐ&F*Œÿÿ ÿèõÍ&+*3ÿÿ ÿèôÏ&*'äÿÿ ÿçôÏ&*'åÿÿ ÿçôÐ&%(*Œÿÿ ÿèõÏ&(šÿÿ ÿèòÏ&*ÿÿ ÿèõÏ&*%åÿÿ ÿèòÏ&(üÿÿ ÿèöÑ&*&Äÿÿ ÿçóÐ&÷&*Œ3ÿÿ ÿèöÏ&,&%M3 ÿÿ ÿèòÑ&.ÿÿ ÿèõÓ&(Sÿÿ ÿèõÏ&'ç*ÿÿ ÿçóÑ&,v*Œÿÿ ÿèøÏ&*'æÿÿ ÿèôÓ&*3 ÿÿ ÿçòÐ&*Œ3 ÿÿ ÿèøÏ&¡(ÿÿ ÿèôÏ&*%òÿÿ ÿèõÑ&*. ÿÿ ÿèôÒ&Q*ÿÿ ÿçõÐ&*Œ3 ÿÿ ÿèòÏ&‡ðÿÿ ÿçóÐ&%õ*Œÿÿ ÿçôÐ&%ô*Œÿÿ ÿçóÐ&*Œ3 ÿÿ ÿçóÑ&(¡ÿÿ ÿèðÏ&*%óÿÿ ÿçöÐ&'è*Œÿÿ ÿçñÊ&A3ÿÿ ÿèñÏ&*(PÿÿÿèòÉ&Ïÿÿ ÿëðÐ&-ø&-ù3ÿÿ ÿåöÓ&¨3ÿÿ ÿèòÐ&*8ÿÿ ÿçõÐ&*Œ3ÿÿ ÿèõÐ&*3ÿÿ ÿèïÏ& ­& 3ÿÿ ÿèõÏ&*3ÿÿ ÿçöÏ& ­& ¬ ´ÿÿ ÿçôÐ&+(*Œÿÿ ÿçðÐ&*Œ3ÿÿ ÿèòÑ&‡-ÿÿ ÿèõÏ& ­+,ÿÿ ÿèôÏ&,3ÿÿ ÿèðÏ&*3ÿÿ ÿçóÐ&*l*Œÿÿ ÿçóÓ&#…ÿÿ ÿçõÐ&-@*Œÿÿ ÿèðÏ&,0åÿÿ ÿêòÏ&03ÿÿ ÿéôÆ&ðoÿÿÿèïÑ&G3ÿÿ ÿéóÏ&ð>ÿÿÿéóÑ&-ú3ÿÿ ÿéóÏ&53ÿÿ ÿèõÏ&ðÿÿ ÿîóÇ&6 öÿÿ ÿêôÐ&ðøÿÿ ÿéóÏ&5ÿÿ ÿè÷Ï&ðñÿÿ ÿéóÐ&40Šÿÿ ÿéóÑ&.Ï3ÿÿ ÿéôÐ&ð7ÿÿ ÿéóÏ&5zÿÿ ÿêñÏ&ð{ÿÿÿèóÂ&~&yxÿÿ ÿéõÑ&ðOÿÿÿèøÒ&(Zÿÿÿ ÿèóÊ&E3ÿÿ ÿêòÅ&ð#lÿÿ ÿéóÑ&3ÿÿ ÿéóÏ&ÿÿ ÿæóÐ&þ3 ÿÿ ÿéóÑ&ÿÿ ÿéðÊ&ð%óÿÿ ÿêôÏ&,w%ôÿÿ ÿéôÐ&,3!ÿÿ ÿéóÑ&,&3"ÿÿ ÿéóÒ&,xÿÿÿéíÑ&03#ÿÿÿñíÑ&0/ÿÿÿéõÑ&GìÿÿÿéíÑ&GîÿÿÿéñÑ&03$ÿÿÿèïÑ&G¾ÿÿ ÿéôÑ&G3%ÿÿÿëïÑ&03&ÿÿÿéòÑ&G3'ÿÿ ÿéíÑ&ÓGÿÿÿìòÑ&ÔGÿÿÿëðÑ&Õ0ÿÿ ÿéîÑ&GÖÿÿÿêòÑ&G3(ÿÿÿèíÑ&G3)ÿÿÿéíÑ&G3*ÿÿÿéíÑ&G3+ÿÿÿèðÑ&G3,ÿÿ ÿðõÑ&GÞÿÿÿñíÑ&03-ÿÿÿéñÑ&G3.ÿÿÿéðÑ&G3/ÿÿ ÿìïÑ&G30ÿÿÿêíÑ&G31ÿÿ ÿèóÑ&G€ÿÿÿòîÑ&GÖÿÿÿïòÑ&GHÿÿ ÿéíÑ&G|ÿÿÿóíÑ&GËÿÿÿîíÑ&ÌGÿÿ ÿè÷Ñ&IGÿÿÿêíÑ&GãÿÿÿèíÑ&G32ÿÿ ÿèïÑ&G;ÿÿÿéîÑ&G33ÿÿÿéíÑ&G#ÿÿÿéóÑ&G34ÿÿÿéïÑ&G35ÿÿ ÿçóÑ&G&#36ÿÿÿéíÑ&G37ÿÿÿèðÑ&G38ÿÿÿéíÑ&G39ÿÿ ÿéóÑ&GVÿÿÿèõÑ&G3:ÿÿ ÿæòÑ&G3;ÿÿ ÿéíÑ&G&T3<ÿÿ ÿéñÑ&G3=ÿÿÿèóÑ&G3>ÿÿ ÿéôÑ&G3?ÿÿÿéôÑ&G3@ÿÿ ÿéôÑ&G3AÿÿÿçíÑ&G3BÿÿÿêñÑ&G&æ3CÿÿÿèôÑ&G3Dÿÿ ÿêíÑ&äGÿÿÿçíÑ&GãÿÿÿëôÑ&&â3EÿÿÿéíÑ&G" ÿÿ ÿîóÑ& ø&GÙÿÿ ÿéìÑ&3FÿÿÿèôÑ&G3Gÿÿ ÿéíÑ&G3Hÿÿ ÿèóÑ&G3IÿÿÿéíÑ&G tÿÿÿéòÑ&G"ÿÿÿéíÑ&G3JÿÿÿèðÑ&3KÿÿÿçñÑ&3Lÿÿ ÿèøÑ&3MÿÿÿçöÑ&3Nÿÿ ÿçìÑ&&3OÿÿÿèòÑ&3Pÿÿ ÿêòÑ&3QÿÿÿåòÑ&3Rÿÿ ÿéòÑ&3SÿÿÿèñÑ&G3Tÿÿ ÿèíÑ&G3Uÿÿ ÿèíÑ&G3Vÿÿ ÿæóÑ&G3WÿÿÿéðÑ&3XÿÿÿéòÑ&G3Yÿÿ ÿéõÑ&3Zÿÿ ÿêôÑ&G3[ÿÿÿäíÑ&G3\ÿÿÿëíÑ&G3]ÿÿÿéóÑ&G3^ÿÿ ÿéöÑ&G3_ÿÿÿéìÑ&3`ÿÿÿèôÑ&3aÿÿ ÿéòÑ&3bÿÿÿçóÑ&G3cÿÿÿçíÑ&-û3dÿÿÿêöÑ&-ü3eÿÿÿæíÑ&-ü3fÿÿ ÿêòÏ&(ÿÿÿéîÇ&,3gÿÿÿéîÇ&,3hÿÿ ÿêóÏ&'éÿÿ ÿêóÏ&‚ÿÿ ÿéóÐ&Öÿÿ ÿéöÏ&!3iÿÿ ÿéóÒ&0Þÿÿ ÿéõÒ&K,‚ÿÿ ÿéóÏ&|}ÿÿÿéðÑ&-ý3jÿÿ ÿéóÏ&}%ÿÿÿéóÏ&}3kÿÿÿçóÑ&tuÿÿÿèïÏ&@3lÿÿ ÿéõÐ&hÿÿ ÿéîÇ&ÜÝÿÿ ÿéóÍ&ÿÿ ÿñòÍ&Aÿÿ ÿèöÏ&B&CDÿÿ ÿçöÏ&"vÿÿ ÿïõÐ&"0Ðÿÿ ÿêòÏ&,»ÿÿ ÿêòÏ&,3rÿÿ ÿêóÏ&,¢ÿÿ ÿéñÎ&!g!hÿÿ ÿéõÏ&:<ÿÿ ÿéñÎ&!h#&ÿÿ ÿéñÐ&!h$1ÿÿ ÿéóÎ&!h3tÿÿ ÿèõÇ&+Ö3wÿÿ ÿèôÇ&+Ö3xÿÿ ÿèõÉ&:3yÿÿ ÿèöÉ&:3zÿÿ ÿèìÉ&:3{ÿÿ ÿèòÉ&:ÿÿ ÿæïÉ&:3|ÿÿ ÿèëÉ&:3}ÿÿ ÿçîÉ&:3~ÿÿ ÿèëÉ&:3ÿÿ ÿèëÉ&:&»ÿÿ ÿèëÉ&:3€ÿÿ ÿèôÉ&83ÿÿ ÿèëÉ&:3‚ÿÿ ÿèïÉ&8*ÿÿ ÿèëÉ&8Šÿÿ ÿèòÉ&89ÿÿ ÿèöÉ&;:ÿÿ ÿèñÉ&8<ÿÿ ÿèõÉ&8&>=ÿÿ ÿèëÉ&8?ÿÿ ÿèëÉ&@Aÿÿ ÿçõÍ&#™#˜ÿÿ ÿèëÉ&83ƒÿÿ ÿéóÉ&,3„ÿÿ ÿèíÉ&A3…ÿÿ ÿèòÉ&83†ÿÿ ÿèõÉ&83‡ÿÿ ÿèðÉ& L8ÿÿ ÿèëÉ&B3ˆÿÿ ÿèìÉ&A(ÿÿ ÿèòÉ&B#¶ÿÿ ÿèñÊ&E3‰ÿÿ ÿæóÉ&C&A3Šÿÿ ÿèëÉ&B3‹ÿÿ ÿèõÊ&E&F3Œÿÿ ÿæïÉ&>&A3ÿÿ ÿèóÉ&C&DBÿÿ ÿçñÊ&F&GEÿÿ ÿèôÊ&F&E3Žÿÿ ÿèñÊ&E3ÿÿ ÿèìË&+×3ÿÿ ÿæðË&+×3‘ÿÿ ÿéôÐ&+ÛäÿÿÿéçÏ&+Ú+ØÿÿÿêåÏ&+Ù+ØÿÿÿêòÎ&žÿÿÿî÷Ë&žÿÿÿêìË&žœÿÿÿéõË&´žÿÿÿéëÏ&a'ëÿÿÿéðÏ&ž-þÿÿÿçâÏ&¤3”ÿÿÿìðÏ&¤3•ÿÿÿéõË&ž`ÿÿÿéñË&žyÿÿÿìðÏ&žgÿÿÿéïÅ&3/ÿÿÿéóË&ž‡ÿÿÿèõÏ&eˆÿÿÿéôË&žÿÿÿéöË&ÞžÿÿÿèõÏ&žÿÿ ÿéóÏ&¤ÿÿÿèöÑ&ž­ÿÿÿêóË&!ržÿÿ ÿéóÏ&3Þÿÿ ÿèôÏ&£¤ÿÿÿòôË&ž…ÿÿÿéäÏ&e3–ÿÿÿèôË&äžÿÿ ÿèôÌ&-ÿ($ÿÿ ÿçöÏ&e)ÙÿÿÿîñÏ&“¤ÿÿÿéïÏ&)ØeÿÿÿêöÏ&ž±ÿÿÿòôË&žžÿÿÿéçÇ&/3˜ÿÿÿéóÏ&e)ÛÿÿÿêìÐ&ž-¯ÿÿÿéòÐ&ž&òóÿÿÿèóÏ&ŸÿÿÿððÏ&)Úeÿÿ ÿéâÏ&}eÿÿÿòõË&žÿÿ ÿèîÏ&.¤ÿÿÿèíÏ&vŒÿÿÿéëÏ&ž)ÿÿÿÿèéË&/0ÑÿÿÿçõÏ&ž¦ÿÿÿððÏ&žiÿÿÿõòË&ž-©ÿÿÿéïÏ&Ÿ&!I óÿÿ ÿèòÐ&)Ü&>%œÿÿÿéóÏ&)Ý3ÿÿÿéóÏ&žÿÿÿéèÐ&%žžÿÿÿéóË&ž'ìÿÿÿéíÏ&e3™ÿÿ ÿæöÏ&eZÿÿÿèóÏ&žîÿÿÿéóË&žÿÿÿêîÏ&.eÿÿÿéóÏ&žÿÿÿåãÏ&e3šÿÿÿêâÏ&)Þ¤ÿÿÿææÏ&e ÿÿÿéðË&ž*ÖÿÿÿéòÐ&ž,ÿÿÿé÷Ñ&ŸÞÿÿÿèõÏ&eßÿÿÿéõÐ&žÿÿ ÿéõÏ&Œ‚ÿÿ&ÿèÜÑ&£¢ÿÿÿêíÑ&ŸŸÿÿÿðóË&ž&ÿÿÿéôÏ&DŒÿÿÿêòË&žÄÿÿÿéôÐ&ž™ÿÿÿéìË&ažÿÿÿè÷Ï&ž7ÿÿÿëòÏ&YžÿÿÿèóÏ&ž0¾ÿÿÿêõÑ&2ŸÿÿÿòõË&ÜžÿÿÿéóÐ&0ÑNÿÿ ÿðöÏ&e&´3›ÿÿ ÿäâÏ&e&ª«ÿÿ ÿçôÏ&Œÿÿ ÿéìÏ&|ŒÿÿÿéñÏ&ž±ÿÿÿæöÏ&Ÿ³ÿÿÿèöÏ&áŸÿÿÿéóÑ&ž"ÿÿÿéíÑ&ˆ3ÿÿÿé÷Ï&žcÿÿÿçôÏ&Œ3œÿÿÿéïÌ&ŸWÿÿÿêóÒ&Ÿ0ìÿÿÿéêÐ&ž–ÿÿÿéòË&žÿÿ ÿæöÏ&'íÿÿÿéôÏ&žÿÿ ÿéñÐ&n3ÿÿÿèôË&žrÿÿÿéòÐ&/ŸÿÿÿêòÏ&Œ3žÿÿÿçøÏ&Ÿ?ÿÿ ÿêóÒ&âçÿÿÿæöË&žAÿÿÿçõÑ&Ÿ ÿÿÿçõÏ&Ÿ ØÿÿÿéóË&žýÿÿÿéõÏ&Œ3Ÿÿÿ ÿèôÏ&e3 ÿÿÿéïÐ&ž,9ÿÿÿéöÏ&žÿÿÿñóÐ&žÉÿÿÿéìÏ&ŒPÿÿ ÿåôÏ&Œ3¡ÿÿÿéðË&ž»ÿÿÿéóÏ&Ÿ'îÿÿÿéóÎ&ž&ÇÿÿÿéôÏ&ž'ïÿÿÿèòÏ&Œ,ƒÿÿÿéñÏ&Œnÿÿ ÿéðÏ&eˆÿÿÿéôË&ž,ÿÿ ÿéðÏ&Œ,ÿÿÿèäÏ&Œ3¢ÿÿÿéøÏ&Ÿ ÿÿ ÿéôÏ&Œ ÿÿÿèöÏ&'ðžÿÿÿéîË&Ÿ, ÿÿÿéóÏ&ž'ÿÿÿêóÑ&Ÿ%%ÿÿ ÿïóÏ&e˜ÿÿÿéôÏ&Ÿ ÿÿÿéôÑ&žÿÿÿæóÏ&3£ÿÿÿèòÒ&/žÿÿÿéóÎ&ž)ÿÿÿìöÏ&Ÿ'ñÿÿ ÿéïÏ&e3¤ÿÿÿèóÏ&Ÿ,ÿÿ ÿèåÏ&e3¥ÿÿÿçôÏ&Œ 9ÿÿÿéãÏ&ŒêÿÿÿéðÐ&ž# ÿÿÿçäÏ&Œ3¦ÿÿÿìõÑ&ž1ÿÿÿéöÏ&ŸÇÿÿ ÿæõÏ&Œ3§ÿÿÿçõË&ž!0ÿÿÿéòÏ&feÿÿÿéóÏ&ž&ŽÿÿÿèõË&žxÿÿÿéñÑ&žÿÿ ÿèðÏ&Œ"ÂÿÿÿéóË&žóÿÿÿêòÏ&Œ&"+€ÿÿÿçòË&žÿÿÿêõË&žÿÿ ÿéóÏ&e3¨ÿÿÿïóÎ&žÿÿ ÿéòÏ&Œ0}ÿÿÿè÷Ï&Ÿ ÿÿ ÿèðÏ&!Œÿÿ ÿèóÐ&=&>ÿÿÿêòÐ&Ÿ!´ÿÿÿæôÍ&$ÒŸÿÿÿçìË&!žÿÿ ÿèóÏ&Œ& ¹3©ÿÿÿëðË&ž uÿÿ ÿçúÏ&ŒhÿÿÿéðË&’žÿÿÿêëÇ&ßæÿÿÿôëÏ&eàÿÿÿéöË&Ÿ#ÍÿÿÿéóÏ&Ÿ#Þÿÿ ÿéóÏ&œ&›ŒÿÿÿçóÏ&Œ#‡ÿÿÿêîÏ&Œ+ÿÿÿèöÏ&#²žÿÿ ÿêóÓ&á&èéÿÿÿèöÒ&Ÿ$&ÿÿÿèòÐ&Ÿ$ÿÿÿéòÏ&Ÿ.ÿÿÿéïÐ&ž%ÿÿÿçñÏ&Ÿ#ÿÿÿéñÏ&%ÿÿÿèóÐ&ŸtÿÿÿèõÏ&Œ#õÿÿÿéðÑ&Ÿ$•ÿÿÿíòÐ&ž2ÿÿÿé÷Ð&$ŸÿÿÿëõÑ&Ÿ/ÿÿÿïñÏ&3ªÿÿÿéöÒ&/ŸÿÿÿèðË&wŸÿÿÿêöÐ&Ÿ*ÿÿÿèòÏ&Œ3«ÿÿÿé÷Í&žÿÿÿéôÒ&žÿÿÿéóÏ&Ÿ0ÿÿ ÿèöÏ&'òÿÿÿèõÏ&i&hŒÿÿÿéòË&Ÿ/‰ÿÿÿçõÏ&Ÿ0›ÿÿÿéôÒ&Ÿ'óÿÿÿéñÏ&Œ3¬ÿÿÿèóÏ&ž{ÿÿÿòóË&#`ŸÿÿÿéðÏ&'ôŒÿÿÿéðÏ&e&‰3­ÿÿÿéðÏ&e&ЉÿÿÿéòÏ&žÿÿÿèòÏ&gÿÿÿéîË&Ÿ%ÛÿÿÿéöÏ&Œ&Ò3®ÿÿÿêîÑ&ž'ÿÿÿêòÏ&üŸÿÿ ÿèóÏ&Œ& ¹3¯ÿÿÿéöÏ&'õŸÿÿÿèïÎ&Ÿ'öÿÿÿéôÎ&Ÿ*Ñÿÿ ÿéõÏ&3°ÿÿÿéïÏ&@&3±ÿÿÿîöË&ŸÿÿÿêîÒ&ç&!¨3²ÿÿÿéóÒ&žiÿÿÿéóÏ&Ÿ'÷ÿÿÿèôÏ&Œ3³ÿÿÿèôÎ&ž'øÿÿÿéôË&žØÿÿÿéíÑ&3,‡ÿÿÿçõÏ&'ùžÿÿÿéðÏ&,ˆÿÿÿèôÐ&'úŸÿÿÿéòÏ&Œ3´ÿÿÿé÷Ñ&Ÿ&Åÿÿ ÿéøÏ&3µÿÿÿéöÐ&'ü'ûÿÿÿéðÎ&Ÿ,…ÿÿ ÿèíÏ&3¶ÿÿÿéòË&Ÿ.ÿÿÿèõÏ&3¸ÿÿÿêõÏ&Ÿ,ŠÿÿÿéóÏ&Ÿ0ÄÿÿÿèóÏ&Œ&[\ÿÿÿéõÎ&,‹Ÿÿÿ ÿçòÏ&Œ3¹ÿÿ ÿèöÏ&Œ3ºÿÿÿéëÏ&*3»ÿÿÿëöÏ&'ýÿÿ ÿèòÏ&&/3¼ÿÿÿéðÏ&Ÿ/ÿÿÿë÷Ï&'ü3½ÿÿÿèòÑ&Ÿ7ÿÿ ÿéîÏ&3¾ÿÿ ÿèôÏ&Œ‹ÿÿÿéõÏ&ŽÿÿÿéñÏ&Ÿ'þÿÿÿçñÏ&%&3¿ÿÿÿçõÐ&Ÿ'ÿÿÿ ÿêóÑ&ç,ŒÿÿÿçõÏ&& ¦ ¥ÿÿ ÿçõÏ&/& ¥ÿÿÿçòÑ&Ÿ3Àÿÿ ÿçõÏ&+®3Áÿÿÿé÷Ï&+¯&'ü3Âÿÿ ÿêõÏ&+Â3Æÿÿ ÿëôÉ&\uÿÿÿèñÑ&(3Çÿÿ ÿêñÀ&ÅÆÿÿ ÿèôÁ&€ÿÿ ÿèöÐ&%&ÿÿ ÿèöÐ&;§ÿÿ ÿìóÌ&T,ÿÿ ÿíõÐ&ò3Ïÿÿ ÿèóË&+°3ÐÿÿÿéóÏ&ÑjÿÿÿééÐ&ÿÿÿèöÏ&÷ÿÿÿéðÏ&ÿÿÿéõÏ&÷ÿÿÿéìÐ&ÿÿ ÿéðÑ&¶·ÿÿÿèôÏ&÷!ÿÿÿéêÏ&÷ÿÿÿèõÏ&÷ÿÿÿéôÐ&0‰ÿÿÿèóÏ&÷ÿÿÿéêÐ&MjÿÿÿéòÏ&jNÿÿÿçòÐ&÷PÿÿÿèîÒ&+±­ÿÿÿéòÏ&÷(-ÿÿ"ÿéßÐ&‹ÿÿÿçôÏ&÷%ÌÿÿÿéíÏ&òÿÿ"ÿéßÏ&3ÑÿÿÿéóÏ&å÷ÿÿÿéôÑ&÷àÿÿ ÿéõÐ&+³ñÿÿÿéêÐ&0‹ÿÿÿéëÐ&¤¦ÿÿÿåðÏ&÷¢ÿÿÿéôÏ&÷bÿÿÿéêÐ&÷–ÿÿÿéòÐ&(¥ÿÿÿéëÎ&3ÒÿÿÿéñÏ&ÿÿÿéôÏ&÷*ÿÿÿèõÏ&÷(ÿÿÿçöÒ&÷fÿÿÿéôÏ&+²3ÔÿÿÿéõÐ&ý‹ÿÿÿèóÏ&(÷ÿÿÿéîÏ&÷ãÿÿÿéìÏ&ý †ÿÿÿéóÏ&÷6ÿÿÿèóÐ&p&@YÿÿÿéóÏ&÷ fÿÿÿèõÏ&j^ÿÿ ÿéóÈ&(&+´3ÕÿÿÿéóÐ&÷!ŠÿÿÿéõÏ&ýÿÿÿéîÏ&÷" ÿÿ ÿéòÐ&8gÿÿÿéòÏ&ý1ÿÿ ÿéòÑ&¸&(y8ÿÿÿéöÏ&ý$OÿÿÿéóÏ&ý$¸ÿÿÿèóÏ& â÷ÿÿÿéõÑ&ý—ÿÿÿçõÑ&xýÿÿÿéôÏ&p%Þÿÿ ÿéøÏ&k&+´3ÖÿÿÿéîÏ&poÿÿÿèõÐ&÷(ÿÿÿéöÏ&ý%,ÿÿÿéôÒ&ý'óÿÿÿéóÏ&ý(ÿÿÿéòÏ&pÿÿÿéóÐ&ý* ÿÿÿéöÏ&pFÿÿÿéöÐ&p.#ÿÿÿéòÏ&ýüÿÿÿéóÏ&ý´ÿÿÿéôÏ&98ÿÿÿéôÐ&8ùÿÿ ÿéòÑ&.8ÿÿÿéøÏ&ý¡ÿÿÿéóÒ&pÄÿÿÿèöÐ&ý'ÿÿÿéñÏ&ý(ÿÿÿéðÐ&h2ÿÿÿéóÏ&p0ÄÿÿÿéõÏ&÷ËÿÿÿéôÏ&p3×ÿÿÿéöÏ&ý3ØÿÿÿèõÐ&/ýÿÿÿèóÄ&!,3Ûÿÿ ÿè÷Ñ&¥3Ýÿÿ ÿíçÐ&,’3ßÿÿÿéíÏ&_îÿÿ ÿèðÐ&ü1ÿÿ ÿèíÐ&ü2ÿÿ ÿéóÐ&Æ ÿÿ ÿéòÐ&Æ3ÿÿ ÿèíÐ&ü4ÿÿ ÿéïÐ&ýÆÿÿ ÿéðÐ&0Æÿÿ ÿèñÐ&þÇÿÿ ÿéíÐ&Çÿÿÿ ÿéîÐ&Æ3âÿÿ ÿèíÐ&Æ3ãÿÿ ÿèîÐ&Æ3äÿÿ ÿéîÐ&Æ3åÿÿ ÿéíÐ&Æ3æÿÿ ÿæíÐ&Æùÿÿ ÿéòÐ&Æ3çÿÿ ÿéîÐ&Æ3èÿÿ ÿèóÐ&ü3éÿÿ ÿéðÐ&Æ•ÿÿ ÿéñÐ&Ç3êÿÿ ÿçíÐ&Æ3ëÿÿ ÿèíÐ&ü3ìÿÿ ÿèóÐ&Æ3íÿÿ ÿéôÐ&Æ3îÿÿ ÿèïÐ&Ç3ïÿÿ ÿçîÐ&ü3ðÿÿ ÿéòÐ&Æ/uÿÿ ÿéïÐ&Æ·ÿÿ ÿéòÐ&'Æÿÿ ÿèôÐ&ÆCÿÿ ÿèíÐ&ÆHÿÿ ÿéîÐ&Æ3ñÿÿ ÿèôÐ&Æ3òÿÿ ÿéóÐ&Æ3óÿÿ ÿèðÐ&Æ3ôÿÿ ÿçòÐ&Æ3õÿÿ ÿéòÐ&Ç3öÿÿ ÿéóÐ&Æ3÷ÿÿ ÿèôÐ&Ç3øÿÿ ÿéíÐ&Æ3ùÿÿ ÿèïÐ&Æàÿÿ ÿéõÐ&Æ3úÿÿ ÿéñÐ&Ç3ûÿÿ ÿèíÐ&Æ3üÿÿ ÿéïÐ&Æ3ýÿÿ ÿéöÐ&Ç3þÿÿ ÿèòÐ&Ç3ÿÿÿ ÿéôÑ&$Jÿÿ ÿéñÐ&Æ4ÿÿ ÿçïÐ&Æ4ÿÿ ÿéíÐ&Ç4ÿÿ ÿéíÐ&Çqÿÿ ÿéòÐ&$<Çÿÿ ÿéöÐ&Ç4ÿÿ ÿéíÐ&Ç%ÿÿ ÿé÷Ð&Ç#öÿÿ ÿéíÐ&Ç4ÿÿ ÿéòÐ&Ç4ÿÿ ÿèõÑ&$4ÿÿ ÿéïÐ&Ç4ÿÿ ÿèòÐ&Ç4ÿÿ ÿéòÐ&Ç4 ÿÿ ÿçõÐ&Ç& ¥ §ÿÿ ÿèôÐ&Ç4 ÿÿ ÿéóÐ&Ç4 ÿÿ ÿéðÑ&$$ÿÿÿ ÿçôÐ&Ç4 ÿÿ ÿèðÑ&$4 ÿÿ ÿèñÐ&Ç4ÿÿ ÿéôÐ&Ç4ÿÿ ÿèöÐ&Ç4ÿÿ ÿéóÐ&Ç4ÿÿ ÿéðÐ&Ç4ÿÿ ÿçíÐ&Ç4ÿÿ ÿéóÐ&Ç4ÿÿ ÿéòÑ&$4ÿÿ ÿéðÑ&*&)$ÿÿ ÿéõÐ&Ç4ÿÿ ÿèòÐ&Ç4ÿÿ ÿéíÐ&Ç4ÿÿ ÿéöÐ&Ç4ÿÿ ÿçõÐ&Ç4ÿÿ ÿèõÑ&$4ÿÿ ÿèðÑ&$4ÿÿ ÿéóÐ&Ç4ÿÿ ÿéñÐ&Ç4ÿÿ ÿéñÐ&Ç4ÿÿ ÿéðÐ&Ç4 ÿÿ ÿèôÑ&$4!ÿÿ ÿåòÑ&$4"ÿÿ ÿéóÑ&$œÿÿ ÿçïÐ&Ç4#ÿÿ ÿéòÐ&Ç4$ÿÿ ÿèûÑ&$4%ÿÿ ÿçõÑ&$4&ÿÿ ÿçñÑ&$4'ÿÿ ÿéõÐ&Ç4(ÿÿ ÿèôÎ&%@4)ÿÿ ÿèôÎ&%B%@ÿÿÿéöÏ&%AÿÿÿéöÏ&%A"ÿÿÿéöÆ&%A!ÿÿÿéöÆ&%A ÿÿ ÿêóÐ&+µ4-ÿÿ ÿçóÈ&M4.ÿÿ ÿçóÎ&M4/ÿÿ ÿçóÃ&M40ÿÿ ÿçóÏ&öÙÿÿ ÿçóÏ&ñöÿÿ ÿçóÏ&ö41ÿÿ ÿçôÏ&9öÿÿÿçòÏ&+¶43ÿÿÿçòÏ&+¶44ÿÿ ÿèôÏ& FÿÿÿéôÐ& ¦ÿÿÿéØÏ&ø ýÿÿÿèôÏ&ß þÿÿÿêôÏ&· üÿÿÿêõÇ&¸ ÿÿÿÿèõÍ& ü0îÿÿÿêóÆ&Á üÿÿÿè÷Ï& ÿ49ÿÿÿéòÎ& ü²ÿÿÿèóÏ& ÿîÿÿÿèîÏ&X üÿÿÿéóÏ& üÔÿÿÿè÷Ï&ñ üÿÿÿéêÆ&j ÿÿÿÿèóÐ&0ƒÿÿÿêõÆ& ÿ%"ÿÿÿéóÇ& ÿÁÿÿ ÿèõÐ&LÿÿÿèîÐ&úÿÿÿéêÐ& ÿcÿÿÿêòÆ&ʨÿÿÿêóÑ& ü"fÿÿÿèõÉ&+ üÿÿÿêôÏ& üYÿÿÿæôÑ& ü4;ÿÿÿéíÉ&ÉÊÿÿÿéôÎ& üÒÿÿÿèóÈ& ü,ÿÿÿèòÇ&o&ÿÿÿéóÑ& üjÿÿ ÿèôÑ&ÿ4<ÿÿÿéòÊ&#þ üÿÿÿéôÉ&Ê/9ÿÿÿêôÆ&Ê#~ÿÿÿêóÑ&Ê4=ÿÿÿéôÑ&ûÿÿÿéòÈ&ÊÿÿÿçòÏ&Ê%âÿÿÿêôÈ& ÿ ÿÿÿéõË&¤ÿÿÿé÷É&üÿÿ ÿèñÒ&,xÿÿÿéðÎ&ÃÿÿÿéêÏ&,“ÿÿÿéôÏ&+º4@ÿÿÿèóÉ&+»4AÿÿÿêòÏ&+¹4Bÿÿ ÿéóÒ&+·&14CÿÿÿçñÉ&+¸&+½&+¾+¼ÿÿÿçñÒ&+·&+¸&+½+¾ÿÿÿçðÒ&+·&+¸&+½4Dÿÿ ÿéõÍ&Ü&ÿÿ ÿéõÍ&m&ÿÿ ÿéõÎ&&(ÿÿÿéóÏ&$#ÿÿ ÿè÷Ê&('ÿÿÿè÷Ï&'.êÿÿ ÿêõÏ&%&ÿÿÿè÷Ê&'(ÿÿ ÿè÷Ð&‹'ÿÿ ÿéõÍ&&( ÿÿ ÿèëÏ& Ã( ÿÿ ÿèóÏ& Éÿÿ ÿèðÏ& Ã×ÿÿ ÿèóÏ& Ã&xÿÿ ÿèôÏ& Ã(·ÿÿ ÿéíÐ&+À&&4Fÿÿ ÿèôÐ&&ÿÿ ÿèôÏ& Ôÿÿ ÿçõÐ&‡&ÿÿ ÿéòÏ&8öÿÿ ÿéóÏ&ö Âÿÿ ÿèôÏ& Éÿÿ ÿèòÏ& ÃÝÿÿ ÿèôÏ& Ã%Dÿÿ ÿèõÏ& Ã%"ÿÿ ÿèóÐ& ÃIÿÿ ÿèóÏ& ÃÖÿÿ ÿêíÑ&&žÿÿ ÿèöÏ& Ã$ÿÿ ÿèðÏ& øÿÿ ÿéêÐ&&#ÿÿ ÿéöÐ&õÃÿÿ ÿèöÐ&&Âÿÿ ÿéõÐ&&ãÿÿ ÿêòÐ&&%ÿÿ ÿèóÏ& ÃÍÿÿ ÿèõÐ& Ä Ãÿÿ ÿèöÏ& Ãùÿÿ ÿèõÑ& Ãýÿÿ ÿèóÏ& Ãþÿÿ ÿéóÐ&ö]ÿÿ ÿèõÏ& ÃZÿÿ ÿèôÏ&ÿ Ãÿÿ ÿèìÐ&ø Ãÿÿ ÿèôÐ&öôÿÿ ÿèëÏ& Ã&ÿÿ ÿèóÏ& Ã&ÿÿ ÿèðÏ&õ&ûúÿÿ ÿèñÏ& Ã"ÿÿ ÿéöÏ&õ´ÿÿ ÿêõÑ&&'ÿÿ ÿèôÐ&ö!„ÿÿ ÿèóÏ&öZÿÿ ÿéîÐ& »õÿÿ ÿéîÑ&&$–ÿÿ ÿéòÐ&&&“ÿÿ ÿéôÏ&õ&,4Gÿÿ ÿèôÐ&föÿÿ ÿèôÐ&/.&ÿÿ ÿê÷Ð&&.ÿÿ ÿèõÐ&&õ4Hÿÿ ÿéôÏ&õ&,4Iÿÿ ÿèóÏ&øùÿÿ ÿéòÏ&.öÿÿ ÿèõÐ&õ&4Jÿÿ ÿéõÒ&ö&Ìÿÿ ÿéôÏ&õ&,4Kÿÿ ÿèõÐ&õ&4Lÿÿ ÿèõÐ&õ&4Mÿÿ ÿéóÐ&õ+ÿÿ ÿéñÑ&&%÷ÿÿ ÿçøÏ&ö4Nÿÿ ÿéóÏ&iØÿÿ ÿéèÏ&AÒÿÿ ÿîõÅ&[ÿÿ ÿîõÇ&æ[ÿÿ ÿéóÏ&Ÿ@ÿÿ ÿïóÏ&^]ÿÿ ÿïòÅ&^`ÿÿÿçòÏ&+¶4Pÿÿ ÿéòÏ&Aÿÿ ÿé÷Ï&Aÿÿ ÿéòÏ&7ÿÿ ÿïòÏ&+Á^ÿÿ ÿïòÏ&^+Âÿÿ ÿéóÏ&Aÿÿ ÿéöÐ&Æ4Qÿÿ ÿïöÐ&^ÿÿ ÿïòÐ&( ÿÿ ÿéëÏ&7 ÿÿ ÿèóÏ&…7ÿÿ ÿéòÏ&@¬ÿÿÿéõÒ&[4Rÿÿ ÿéòÏ&m7ÿÿ ÿéöÏ&Þiÿÿ ÿéóÏ&&x@ÿÿ ÿéöÏ&BAÿÿ ÿéìÐ&7ÿÿ ÿèõÏ&iÿÿ ÿèôÏ&7ÿÿ ÿéöÏ&A&ÿÿ ÿéôÏ&@"ÿÿ ÿéøÏ&7#ÿÿ ÿèöÑ&Ó@ÿÿ ÿîõÑ&ê[ÿÿ ÿéìÏ&'@ÿÿ ÿéóÏ&i)ÿÿ ÿéõÑ&²iÿÿ ÿéñÏ&iñÿÿ ÿîõÓ&[4Sÿÿ ÿéõÐ&+0ïÿÿ ÿîõÏ&Þ§ÿÿ ÿéõÏ&Û7ÿÿ ÿîõÏ&[4Tÿÿ ÿîõÎ&[4Uÿÿ ÿéòÏ&@. ÿÿ ÿéôÏ&@…ÿÿ ÿèõÏ&i0îÿÿ ÿéóÏ&9'Fÿÿ ÿéôÐ&–?ÿÿ ÿéêÏ&ijÿÿ ÿéõÏ&9cÿÿ ÿéòÏ&@,ÿÿ ÿéóÐ&U@ÿÿ ÿîõÏ&!¬[ÿÿ ÿçöÏ&–`ÿÿ ÿéëÐ&@Wÿÿ ÿèóÏ&@+-ÿÿ ÿîõÐ&0ˆ[ÿÿ ÿéöÏ&&–4Vÿÿ ÿéôÏ&‰@ÿÿ ÿéèÐ&i%žÿÿ ÿèòÏ&@+.ÿÿ ÿéóÏ&iÿÿ ÿéòÏ&+/@ÿÿ ÿéòÏ&@Ýÿÿ ÿéöÏ&@Áÿÿ ÿçõÏ&9‡ÿÿ ÿîõÄ&&¼[ÿÿ ÿéëÏ&@»ÿÿ ÿîõÏ&¦§ÿÿ ÿéòÐ&@kÿÿ ÿèõÏ&@+0ÿÿ ÿîõÐ&[&I4Wÿÿ ÿëõÐ&„4Xÿÿ ÿéóÏ&@dÿÿ ÿéôÏ&9%Dÿÿ ÿîõÑ&,‘[ÿÿ ÿéðÏ&@Ãÿÿ ÿé÷Ï&;iÿÿ ÿéòÏ&90°ÿÿ ÿéëÏ&90ðÿÿ ÿé÷Ï&@+2ÿÿ ÿéïÏ&9& ò(0ÿÿ ÿéòÏ&@*eÿÿ ÿîõÐ&*[ÿÿ ÿéôÏ&%Ë7ÿÿ ÿéõÏ&@3ÿÿ ÿçõÐ&+1@ÿÿ ÿéõÏ&–¥ÿÿ ÿîõÑ&§4Yÿÿ ÿîõÐ&§4Zÿÿ ÿéõÐ&– ´ÿÿ ÿîõÐ&§4[ÿÿ ÿîõÎ&[4\ÿÿ ÿéðÏ&@+3ÿÿ ÿèîÏ&iÿÿ ÿîõÐ&[4]ÿÿ ÿéîÑ&9+ÿÿ ÿéóÐ&iKÿÿ ÿéóÏ&90Óÿÿ ÿéòÏ&±@ÿÿ ÿéòÏ&iŽÿÿ ÿéóÏ&9ÿÿ ÿéðÏ&@ÿÿ ÿéñÏ&9!ÿÿ ÿîõÑ&ˆ[ÿÿ ÿé÷Ï&B@ÿÿ ÿé÷Ï&@+ÿÿ ÿîöÈ&[4^ÿÿ ÿéõÏ&ÿAÿÿ ÿéóÏ&@Öÿÿ ÿèôÐ&Piÿÿ ÿîõÏ&[4_ÿÿ ÿé÷Ï&@'ÿÿ ÿîõÐ&Å[ÿÿ ÿëõÏ&ƒ„ÿÿ ÿéêÏ&#–ÿÿ ÿîõÏ&§&ÿÿ ÿè÷Ï&@)ÿÿ ÿéîÏ&–vÿÿ ÿéòÏ&U@ÿÿ ÿèöÏ&9@ÿÿ ÿîõÏ&-&,[ÿÿ ÿéôÏ&9Àÿÿ ÿéöÎ&86ÿÿ ÿèíÒ&@¾ÿÿ ÿîõÄ&[4`ÿÿ ÿéöÏ&$@ÿÿ ÿîõÆ&f§ÿÿ ÿéõÐ&7\ÿÿ ÿéîÏ&9.ÿÿ ÿéõÏ&– ·ÿÿ ÿéöÑ&“9ÿÿ ÿîõÒ&Χÿÿ ÿéôÑ&@ ¸ÿÿ ÿèõÏ&á7ÿÿ ÿîõË&§Bÿÿ ÿîõÏ&§4bÿÿ ÿîõÆ&[âÿÿÿîõÐ&§4cÿÿ ÿéïÏ&–& ò4dÿÿ ÿèôÏ&@4eÿÿ ÿéôÏ&@,”ÿÿ ÿéëÏ&–&à4fÿÿ ÿéòÏ&@4gÿÿ ÿéóÏ&©9ÿÿÿêòÈ&€,•ÿÿ ÿèíÏ&9'©ÿÿ ÿéêÏ&i(9ÿÿ ÿéîÏ&9Þÿÿ ÿéêÐ&c@ÿÿ ÿéôÐ&7ÿÿ ÿëõÒ&„4hÿÿ ÿéõÐ&ã–ÿÿ ÿéôÏ&.09ÿÿ ÿîöÍ&,–[ÿÿ ÿîõÏ&[0gÿÿ ÿéõÐ&9. ÿÿ ÿéïÏ&–&8ÿÿ ÿéôÏ&7/ÿÿ ÿéóÏ&E@ÿÿ ÿîõÐ&[4iÿÿ ÿéòÏ&7'cÿÿ ÿéõÐ&–‚ÿÿ ÿéòÐ&@*ÿÿ ÿéôÏ&– ÿÿ ÿéôÐ&+(4ÿÿ ÿéùÏ&70ÿÿ ÿéôÑ&9'ªÿÿ ÿéòÏ&0@@ÿÿ ÿéóÏ&7çÿÿ ÿéóÏ&@Šÿÿ ÿëõÏ&ð&ñ„ÿÿ ÿéôÏ&7'«ÿÿ ÿëõÏ&x„ÿÿ ÿëõÐ&‚„ÿÿ ÿèõÑ&@`ÿÿ ÿéìÐ&&–4jÿÿ ÿîõÒ&§4kÿÿ ÿéîÏ&×7ÿÿ ÿìôÏ&%gÿÿ ÿìôÈ&gÿÿ ÿéõÏ&@*4ÿÿ ÿéíÐ&Ô&9Õÿÿ ÿéõÑ&ý9ÿÿ ÿéóÐ&–]ÿÿ ÿîõÐ&[ JÿÿÿêòÒ&.€ÿÿ ÿéóÏ&A1ÿÿ ÿèõÏ&i2ÿÿÿéìÊ&f4lÿÿ ÿçõÏ&Þ9ÿÿ ÿèõÏ& 9ÿÿÿêòÒ&€hÿÿ ÿèðÐ&7iÿÿ ÿéòÏ&9¿ÿÿ ÿéòÏ&9 Xÿÿ ÿéõÏ&9Ýÿÿ ÿéóÐ&7Èÿÿ ÿé÷Ï&9 ÿÿ ÿéøÏ&– ÿÿ ÿîõÎ&§4mÿÿ ÿéôÏ&A(mÿÿ ÿîõÌ&§4nÿÿ ÿéóÏ&–²ÿÿ ÿéëÏ&9&ÿÿ ÿéóÑ&@"fÿÿ ÿéõÏ&/@ÿÿ ÿîõÐ&ð&§4oÿÿ ÿéôÏ&@Zÿÿ ÿéñÐ&++ÿÿ ÿîõÑ&§&4pÿÿ ÿéõÏ&š–ÿÿ ÿèóÏ&–&.è4rÿÿ ÿë÷Ï&=„ÿÿ ÿéõÐ&i%ªÿÿ ÿèôÏ&@Ûÿÿ ÿéíÏ&i¾ÿÿ ÿèíÏ&9,—ÿÿ ÿèõÏ& Ý9ÿÿ ÿéõÓ&9&Ý4sÿÿ ÿéóÏ&@*5ÿÿ ÿéóÏ&@%Óÿÿ ÿéìÐ&9øÿÿ ÿéöÏ&>&%4tÿÿ ÿéôÐ&9ŸÿÿÿêòÏ&€4uÿÿ ÿîõÇ&§#mÿÿ ÿìôÏ&+44vÿÿ ÿîõÎ&§4wÿÿ ÿèõÏ&–&,˜4xÿÿ ÿéðÐ&@ ÿÿ ÿçïÏ&@*gÿÿ ÿèøÐ&– .ÿÿ ÿîõÑ&[4yÿÿ ÿìôÓ&g&0“4zÿÿ ÿéïÏ&94{ÿÿ ÿèôÏ&–&Þ 8ÿÿ ÿéôÏ&@Òÿÿ ÿçñÏ&9/Jÿÿ ÿéñÏ&@"‹ÿÿ ÿéïÏ&7Áÿÿ ÿéóÏ&@!ÿÿ ÿîõÏ&§4|ÿÿ ÿèóÏ&9âÿÿ ÿèóÏ&?9ÿÿ ÿéõÑ&9'ÿÿ ÿìôÐ&g4}ÿÿ ÿéôÒ&94~ÿÿ ÿëõÏ&l&„4ÿÿ ÿéóÏ&@7ÿÿ ÿéëÏ&!&–àÿÿ ÿèîÐ&–0ºÿÿ ÿéõÏ&9#Ìÿÿ ÿéñÏ&@"ÿÿ ÿèöÏ&%Ã&>áÿÿ ÿîõÐ&§0þÿÿ ÿéòÏ&9"ÿÿ ÿèóÏ&9#@ÿÿ ÿéñÏ&9!<ÿÿ ÿîõÐ&§4€ÿÿ ÿêöÐ&#ˆ€ÿÿ ÿéöÏ&–#‰ÿÿ ÿéíÏ&5iÿÿ ÿèòÏ&9Ÿÿÿ ÿëõÏ&„4ÿÿ ÿèöÐ&A!…ÿÿ ÿìôÒ&[gÿÿ ÿéïÏ&9"Gÿÿ ÿéêÏ&9Iÿÿ ÿéñÏ&7"Dÿÿ ÿçõÏ&Yiÿÿ ÿéòÑ&@+ÿÿ ÿéôÏ&93ÿÿ ÿéóÏ&@Ùÿÿ ÿéôÐ&9"£ÿÿÿêòÇ& v€ÿÿÿéõÐ&G&hFÿÿ ÿéïÏ&_–ÿÿ ÿéñÏ&–#Éÿÿ ÿëõÑ&„4‚ÿÿ ÿéôÏ&9Îÿÿ ÿéöÏ&–"ÿÿ ÿéðÏ&J&@4ƒÿÿ ÿéóÐ&!ñ9ÿÿ ÿéðÏ&9"ÿÿ ÿéñÑ&9#ôÿÿ ÿëõÐ&„4„ÿÿ ÿéôÏ&@1ÿÿ ÿéõÏ&–.ÿÿ ÿîõÑ&¿&[Àÿÿ ÿéòÏ&7'mÿÿ ÿéøÒ&,™7ÿÿ ÿéòÏ&@$Pÿÿ ÿéïÏ&9#'ÿÿ ÿèöÒ&–$%ÿÿ ÿéïÑ&–-êÿÿ ÿéòÏ&9Lÿÿ ÿëõÏ&„4…ÿÿ ÿéóÑ&@'¶ÿÿ ÿéöÏ&9$tÿÿ ÿéöÏ&–$hÿÿ ÿêôÈ&É4†ÿÿ ÿèôÐ&9*6ÿÿÿêòÈ&&~€ÿÿ ÿëõÌ&„4‡ÿÿ ÿéõÏ&9$ÿÿ ÿéôÏ&@"„ÿÿ ÿèóÏ&7$“ÿÿ ÿêòÑ&€4ˆÿÿ ÿîõÑ&§4‰ÿÿ ÿéñÏ&9,ðÿÿ ÿèõÐ&9'pÿÿÿêòÒ&/ë€ÿÿ ÿèöÏ&9ÿÿ ÿéõÏ&@ÿÿ ÿçóÐ&@æÿÿ ÿèóÏ&A áÿÿ ÿéòÏ&@/;ÿÿ ÿéóÏ&9¡ÿÿ ÿéóÏ&9'vÿÿ ÿéöÏ&9%+ÿÿ ÿéöÏ&n4Šÿÿ ÿéîÏ&–qÿÿ ÿçõÑ&9'ºÿÿ ÿëõÏ&„4‹ÿÿ ÿèôÏ&>&Þ4Œÿÿ ÿéòÏ&@.ÿÿ ÿìôÊ&$øgÿÿ ÿéôÑ&–*7ÿÿ ÿéïÏ&>& ó!fÿÿ ÿèôÐ&–'¸ÿÿ ÿéóÏ&9Jÿÿ ÿèôÏ&9,Öÿÿ ÿëõÏ&v„ÿÿ ÿéõÐ&Þ&@4ÿÿ ÿîõÏ&§4Žÿÿ ÿìôÏ&g4ÿÿ ÿéõÏ&œ–ÿÿ ÿéôÏ&@#~ÿÿ ÿëöÏ&„4ÿÿ ÿéòÏ&@$þÿÿ ÿêõÐ&˜4‘ÿÿ ÿéóÑ&7(Gÿÿ ÿêôÏ&€4’ÿÿ ÿéóÏ&@+ÿÿ ÿéòÏ&@ Þÿÿ ÿéõÏ&–%Úÿÿ ÿéíÏ&9:ÿÿ ÿèñÓ&–*8ÿÿ ÿçöÑ&–*9ÿÿ ÿëöÐ&„0 ÿÿ ÿçóÏ&@+ÿÿ ÿëõÐ&„ÿÿ ÿéõÒ&–~ÿÿ ÿîõÐ&§4”ÿÿ ÿé÷Ï&–'wÿÿ ÿéöÑ&9%Øÿÿ ÿìõÑ&gÄÿÿ ÿëõÎ&h&„4–ÿÿ ÿé÷Ï&–&n4—ÿÿ ÿêòÏ&$a&$`€ÿÿ ÿëõÏ&„úÿÿ ÿëõÏ&„&j4˜ÿÿ ÿèõÏ&9'}ÿÿ ÿéíÑ&9'‚ÿÿ ÿéôÏ&9*Òÿÿ ÿêòÈ&"Ø&"×€ÿÿ ÿçôÏ&'|+ÿÿ ÿéóÐ&º@ÿÿ ÿéöÐ&ž&4+ÿÿ ÿîõÏ&§4™ÿÿ ÿéòÏ&@'~ÿÿÿêóÏ&S.ÿÿ ÿéòÏ&@ÿÿ ÿéóÏ&9'ÿÿ ÿìôÐ&g4šÿÿ ÿèóÏ&–&°ÿÿ ÿéôÑ&–4›ÿÿ ÿèôÏ&–<ÿÿ ÿèöÐ&–'Œÿÿ ÿéóÐ&–'¾ÿÿ ÿêôÏ&€4œÿÿ ÿëõÑ&„&h4ÿÿ ÿéîÏ&–&0b4žÿÿ ÿéîÏ&9&0b4Ÿÿÿ ÿéóÏ&@*:ÿÿ ÿéôÏ&9'ãÿÿ ÿéöÐ&ë–ÿÿ ÿèôÏ&>&º&»¹ÿÿ ÿçìÏ&9%êÿÿ ÿè÷Ð&6&–4 ÿÿ ÿìôÒ&g4¡ÿÿ ÿéóÏ&*<9ÿÿ ÿéøÏ&–*;ÿÿ ÿîõÑ&§.ÿÿ ÿéöÑ&–)ôÿÿ ÿéõÏ&9.ÿÿ ÿéöÑ&7&Äÿÿ ÿéòÐ&0¥9ÿÿ ÿëõÏ&„4¢ÿÿ ÿéôÑ&9/"ÿÿ ÿèõÐ&–&4£ÿÿ ÿéõÏ&@¤ÿÿ ÿéòÏ&–4¤ÿÿ ÿìôÐ&%&g4¥ÿÿ ÿèôÏ&9-ÿÿ ÿé÷Ï&9öÿÿ ÿë÷Ð&„&C4¦ÿÿ ÿéöÐ&?>ÿÿ ÿéóÑ&$4§ÿÿ ÿèöÑ&9'…ÿÿ ÿîöÏ&§4¨ÿÿ ÿéñÏ&–)ÿÿ ÿè÷Ð&–+5ÿÿ ÿéõÐ&. 9ÿÿ ÿëõÏ&…&„„ÿÿ ÿçóÐ&<& ª «ÿÿ ÿèôÐ&(ˆ9ÿÿ ÿëõÏ&„&jiÿÿ ÿêôÐ&…&€4©ÿÿ ÿéñÏ&9FÿÿÿêòÏ&€4ªÿÿ ÿçøÒ&9Õÿÿ ÿêòÏ&…&€4«ÿÿ ÿéòÏ&–0Ãÿÿ ÿéöÏ&–/ ÿÿ ÿéòÏ&–*=ÿÿ ÿéôÒ&9Qÿÿ ÿèôÏ&/D>ÿÿ ÿèõÑ&(+ÿÿ ÿé÷Ï&9÷ÿÿ ÿèòÏ&%[9ÿÿ ÿèôÒ&9%ÿÿ ÿçõÏ&90”ÿÿ ÿèïÏ&>& 4¬ÿÿ ÿéõÏ&@+6ÿÿ ÿëöÏ&„4­ÿÿ ÿéõÏ&56ÿÿ ÿéóÐ&§9ÿÿ ÿçõÐ&=<ÿÿ ÿèðÐ&–. ÿÿ ÿìôÍ&g4®ÿÿ ÿéñÑ&9%÷ÿÿ ÿéôÏ&>++ÿÿ ÿèôÏ&>,šÿÿ ÿéòÏ&–*>ÿÿ ÿéóÏ&–Oÿÿ ÿéóÏ&9'“ÿÿ ÿëóÏ&3&ÿÿ ÿëõÒ&„,›ÿÿÿêòÏ&U€ÿÿ ÿæóÑ&>Tÿÿ ÿéðÏ&ÖÿÿÿêïÒ&SRÿÿ ÿìôÒ&1gÿÿ ÿèõÒ&“4¯ÿÿ ÿèõÒ&“4°ÿÿ ÿéôÏ&.ÿÿ ÿéöÐ&UVÿÿ ÿèúÐ&T4±ÿÿ ÿèóÏ&XKÿÿ ÿéòÐ&âZÿÿÿèóÏ&YXÿÿÿéõÐ&5[ÿÿ ÿéõÏ&-ô4²ÿÿÿèóÏ&\Xÿÿ ÿéòÐ&âáÿÿ ÿéòÐ&]âÿÿÿéõÐ&^5ÿÿ ÿêóÐ&4<ÿÿ ÿéõÐ&:5ÿÿ ÿéòÐ&‘âÿÿ ÿéõÐ&5_ÿÿ ÿéõÐ&5aÿÿ ÿéôÐ&=>ÿÿÿèöÏ&ghÿÿ ÿéòÐ&bâÿÿÿéõÐ&5cÿÿ ÿéóÐ&;<ÿÿÿéõÐ&d5ÿÿÿéõÐ&e5ÿÿ ÿéõÐ&*?5ÿÿÿéõÐ&f5ÿÿ ÿéõÐ&i5ÿÿ ÿèöÏ&. 4¶ÿÿ ÿéòÐ&*@(½ÿÿ ÿéñÐ&ü4·ÿÿ ÿçòÐ&ýþÿÿ ÿçóÐ&ýÿÿÿ ÿèóÏ&ÿÿ ÿéòÌ&0­4¸ÿÿ ÿèçÏ&4¹ÿÿ ÿèéÏ&4ºÿÿ ÿæëÏ&4»ÿÿ ÿèòÏ&4¼ÿÿ ÿèèÏ&4½ÿÿ ÿéòÐ&ÿÿ ÿèïÏ& Mÿÿ ÿèôÏ&áÿÿ ÿéðÏ&þœÿÿ ÿéèÐ&ëþÿÿ ÿéëÏ&úþÿÿ ÿèöÏ&-ïÿÿ ÿéóÏ&Ñ-ÿÿ ÿéìÏ&Þÿÿ ÿéôÏ&þ6ÿÿ ÿéóÏ&-ýÿÿ ÿéôÏ&-( ÿÿ ÿéìÏ&-( ÿÿ ÿéóÏ&È-ÿÿ ÿéðÏ&lÿÿ ÿéóÏ&-&ÿÿ ÿèõÏ&-šÿÿ ÿéôÏ&„·ÿÿ ÿéòÏ&-ÿÿ ÿéçÏ&þ*Aÿÿ ÿéõÏ&-³ÿÿ ÿéòÏ&-(ÿÿ ÿéóÏ&- ÿÿ ÿéòÏ&(ÿÿ ÿéìÏ&(ÿÿ ÿéóÐ&¿-ÿÿ ÿèíÏ&Óÿÿ ÿéêÏ&,“-ÿÿ ÿéëÏ&„%3ÿÿ ÿéóÏ&)„ÿÿ ÿéôÏ&„Ûÿÿ ÿéóÏ&-ßÿÿ ÿéóÏ&5ÿÿ ÿéóÏ&‰-ÿÿ ÿèöÑ&Óÿÿ ÿéóÏ&Àÿÿ ÿèöÏ& ÿÿ ÿéöÏ&„/ÿÿ ÿéòÏ&(%ÿÿÿéõÏ&ÂÿÿÿèôÏ&Âÿÿ ÿéõÑ&²ÿÿ ÿèòÏ&0$ÿÿ ÿéòÏ&ºÿÿ ÿéôÏ&.-ÿÿ ÿèõÏ&ÿÿ ÿèõÏ&Ëÿÿ ÿéôÏ&wÿÿ ÿéìÐ&„ÿÿ ÿèôÏ&(/ÿÿ ÿéõÏ&R-ÿÿ ÿéíÏ&ô-ÿÿ ÿééÏ&*Bÿÿ ÿéöÏ&B.7ÿÿ ÿéõÏ&„õÿÿ ÿéôÏ&"ÿÿ ÿçõÏ&!vÿÿ ÿéöÏ&Þÿÿ ÿèðÏ&„&ú4¿ÿÿ ÿéñÏ&„8ÿÿ ÿé÷Ï&*Cÿÿ ÿéõÏ&Ûÿÿ ÿèóÏ&*Dÿÿ ÿéõÏ&-‘ÿÿÿéòÐ&±ÿÿ ÿéñÏ&-ñÿÿ ÿéòÏ&„. ÿÿ ÿéõÐ&&ïðÿÿÿéòÏ&ÂAÿÿ ÿèöÏ&-+8ÿÿ ÿéôÏ&+7ÿÿ ÿéôÏ&…ÿÿ ÿéôÏ&Fÿÿ ÿéóÏ&„'Fÿÿ ÿéëÏ&-(Áÿÿ ÿçôÏ&-4Àÿÿ ÿéôÏ&%Ëÿÿ ÿéóÏ&-ÿÿ ÿéóÏ&/'ÿÿ ÿèòÏ&+..7ÿÿ ÿèôÏ&ÿÿ ÿéòÐ&kÿÿ ÿéôÏ&4Áÿÿ ÿèöÐ&Âÿÿ ÿéòÏ&ÝÿÿÿéöÏ&Â%!ÿÿ ÿéôÐ&?ÿÿ ÿéðÏ&Ãÿÿ ÿéóÏ&+ÿÿ ÿèóÏ&-îÿÿ ÿèõÏ&+ÿÿ ÿéôÏ&-+ÿÿ ÿéõÏ&-kÿÿ ÿéïÐ&Rÿÿ ÿèìÏ&&ÿÿ ÿéëÏ&»ÿÿ ÿéóÏ&"Wÿÿ ÿéóÏ&)Kÿÿ ÿéòÏ&0°ÿÿ ÿéóÏ&-'Ëÿÿ ÿéöÏ&-äÿÿ ÿçóÏ&-'£ÿÿ ÿèôÏ&„Øÿÿ ÿéóÏ&ÿÿ ÿéóÐ&+9ÿÿ ÿéòÏ&².7ÿÿ ÿèöÐ&/(&ð.7ÿÿ ÿèóÏ&-ÿÿ ÿéèÐ&-%žÿÿ ÿçõÏ&„‡ÿÿÿéóÐ&0ƒ^ÿÿ ÿéíÏ&,Çÿÿ ÿéóÏ&ÿÿ ÿéóÏ&Áÿÿ ÿéòÏ&-Îÿÿ ÿçòÐ&+:ÿÿ ÿéóÐ&/)ÿÿ ÿéïÐ&& ò4Âÿÿ ÿéëÐ&Wÿÿ ÿééÏ&µÿÿ ÿéïÐ&,œÿÿ ÿéêÏ&jÿÿÿéóÎ&,+;ÿÿ ÿéïÏ&+<ÿÿ ÿéòÏ&.Òÿÿ ÿéõÐ&4Ãÿÿ ÿéõÏ&ÿÿ ÿéóÏ&'¦ÿÿ ÿéöÏ&/*ÿÿ ÿéçÏ&+=ÿÿÿéñÏ&Â4Äÿÿ ÿéòÏ&Sÿÿ ÿéôÑ&/sÿÿ ÿéðÏ&„+3ÿÿ ÿéõÏ&~-ÿÿ ÿéõÏ&„ ·ÿÿ ÿéõÏ&sÿÿ ÿéòÏ&„0Õÿÿ ÿéöÏ&Uÿÿ ÿéòÐ&q&<ÿÿ ÿèïÏ&0ÿÿ ÿèõÐ&/,4Åÿÿ ÿèõÐ&L/,ÿÿ ÿéöÑ&“ÿÿ ÿéôÏ&P.7ÿÿ ÿéòÏ&¨ÿÿ ÿéóÏ&ÿÿ ÿèîÏ&ÿÿ ÿéñÏ&$.7ÿÿ ÿéõÏ&Šÿÿ ÿèöÏ&+ÿÿÿèõÏ&Âáÿÿ ÿçôÐ&%ÿÿ ÿéôÑ& ¸ÿÿÿéôÑ&íÍÿÿ ÿé÷Ï&õÿÿ ÿéóÐ&-Kÿÿ ÿéóÏ&„ÿÿÿéóÏ&ÕÂÿÿ ÿéðÏ&-ÿÿÿéðÏ&^&ÿÿÿèóÏ&Â0½ÿÿ ÿéðÏ&Íÿÿ ÿéõÐ&„\ÿÿ ÿèôÐ&Pÿÿ ÿèõÏ&,ž.7ÿÿ ÿéîÏ&.„ÿÿÿéðÐ&0†^ÿÿ ÿé÷Ï&BÿÿÿéòÐ&ÂÙÿÿ ÿéôÏ&­ÿÿ ÿéòÏ&+ÿÿ ÿéñÏ&4Æÿÿ ÿèôÏ&/,4ÇÿÿÿéõÏ&Í&ÉÊÿÿÿèòÐ&úËÿÿ ÿéôÏ&.74Èÿÿ ÿéóÏ&.74Éÿÿ ÿæöÏ&pÿÿ ÿéôÏ&„ÿÿ ÿéíÏ&-éÿÿ ÿèòÐ&.74Êÿÿ ÿéóÑ&!.7ÿÿ ÿèñÑ&„ëÿÿ ÿéóÏ&©ÿÿ ÿéïÏ&,ÿÿ ÿéôÏ&ÿÿ ÿéôÐ&ÿÿ ÿèñÏ&&i&&e.7ÿÿ ÿéóÏ&.7.—ÿÿ ÿéôÏ& ÿÿ ÿæ÷Ï&„(¿ÿÿ ÿè÷Ï&&(.7ÿÿÿéóÏ&^0Éÿÿ ÿéòÏ&%ÿÿ ÿéõÐ&ƒÿÿ ÿèñÏ&%Ïÿÿ ÿéòÏ&©ÿÿ ÿéòÏ&'cÿÿ ÿéôÏ&%=.7ÿÿ ÿéõÏ&.7ÿÿÿèñÏ&ÂŽÿÿ ÿéôÐ&(4ÿÿ ÿçõÏ& Õÿÿ ÿèôÏ&4Ëÿÿ ÿéôÏ&%$ÿÿÿéóÏ&EÂÿÿ ÿéóÏ&Š„ÿÿ ÿéôÏ&ì.7ÿÿ ÿéóÏ&(5ÿÿ ÿèíÏ&'©ÿÿ ÿéîÏ&Þÿÿ ÿéòÏ&„'Rÿÿ ÿéõÐ&ã.7ÿÿ ÿéóÏ&(6ÿÿ ÿéóÏ&(7ÿÿÿèôÏ&Â(8ÿÿ ÿèìÐ&&ÿÿ ÿéôÏ&/ÿÿ ÿéêÐ&cÿÿ ÿéõÏ&.ÿÿ ÿéêÏ&(9ÿÿ ÿçöÏ&4Ìÿÿ ÿéíÏ&?ÿÿ ÿéðÒ&0íÿÿ ÿçõÑ&Žÿÿ ÿéóÏ&Àÿÿ ÿéôÑ&'ª„ÿÿ ÿéóÏ&(:ÿÿ ÿéóÏ&ìÿÿ ÿéöÐ&4Íÿÿ ÿèîÐ&,Ÿ.7ÿÿÿéôÏ&Â[ÿÿ ÿéõÏ&+>ÿÿ ÿéõÐ&®ÿÿ ÿèïÓ&-4Îÿÿ ÿéöÏ&"H„ÿÿ ÿèøÏ&'±.7ÿÿ ÿèõÑ&&.7ÿÿ ÿçõÏ&Þÿÿ ÿéîÏ&.70bÿÿ ÿèóÐ&(<ÿÿ ÿéñÏ&¼ÿÿ ÿéëÏ&(&à.7ÿÿ ÿéõÏ&/ÿÿ ÿèðÏ&, ÿÿÿéõÐ&Â%ªÿÿ ÿçóÏ&©.7ÿÿ ÿéòÏ&£.7ÿÿ ÿèóÏ&„,¡ÿÿ ÿé÷Ï&Kÿÿ ÿéõÏ&„ @ÿÿ ÿéõÑ& ÿÿ ÿèõÑ&‰ÿÿÿéóÏ&1Âÿÿ ÿéõÏ&„Ýÿÿ ÿéõÐ&&!ä4Ïÿÿ ÿèõÏ&2.7ÿÿÿéðÐ& ÿÿ ÿéóÏ&Ÿÿÿ ÿéóÏ& ÿÿ ÿéóÏ&(=ÿÿ ÿèõÏ& Ý.7ÿÿ ÿéñÏ&..7ÿÿÿéòÏ& Vÿÿ ÿéòÐ&%ÐÿÿÿéôÏ&Â(mÿÿ ÿéóÏ&„(>ÿÿ ÿèìÏ&(?.7ÿÿ ÿéíÏ&%ÕÿÿÿèöÏ&»ÿÿ ÿéóÐ& I.7ÿÿÿéôÈ&Í0Íÿÿ ÿéõÏ&d.7ÿÿ ÿéòÏ&#jÿÿ ÿéïÏ&„(@ÿÿ ÿéòÒ&¢.7ÿÿ ÿé÷Ð&&ýìÿÿÿèöÏ& `Âÿÿ ÿèöÏ&<ÿÿ ÿèôÏ&Ûÿÿ ÿéôÑ&9ÿÿÿéôÏ&ÂYÿÿ ÿéñÏ&„(Aÿÿ ÿéòÏ&.L.7ÿÿÿéôÑ&Ï&ÐÍÿÿ ÿéíÏ&É„ÿÿ ÿéòÏ&„,mÿÿ ÿéòÏ&+ÿÿ ÿéôÐ&Ÿÿÿ ÿéöÏ&'e.7ÿÿ ÿéóÏ&%Óÿÿ ÿéóÏ&.5.7ÿÿ ÿéîÏ&¿ÿÿ ÿèöÏ& .7ÿÿ ÿéíÐ&,¢ÿÿ ÿéóÐ&,nÿÿ ÿéòÎ&á&âÑÿÿ ÿéóÏ&Ó&ÒÔÿÿ ÿéëÏ&Ðÿÿ ÿçðÑ&‡ÿÿ ÿéíÏ&Ñÿÿ ÿèõÒ&„/-ÿÿ ÿèñÐ&×&&eÿÿ ÿçòÑ&Óÿÿ ÿèøÐ& +.7ÿÿ ÿéôÏ&„4Ðÿÿ ÿçñÏ&/J.7ÿÿ ÿéñÏ&,£ÿÿ ÿéõÏ&"ë.7ÿÿ ÿéõÏ&:.7ÿÿ ÿéôÐ&&.7ÿÿ ÿéòÐ&#¥ÿÿ ÿéöÏ&#‰.7ÿÿ ÿéôÌ&Í4Ñÿÿ ÿéõÏ&"z.7ÿÿ ÿéóÏ&"µ.7ÿÿ ÿéíÏ&/›.7ÿÿ ÿéôÏ&#J.7ÿÿ ÿéëÏ&„" ÿÿ ÿèóÏ&#@.7ÿÿ ÿéöÏ&„",ÿÿ ÿéöÏ&,¤.7ÿÿ ÿéòÏ&„"ÿÿ ÿéòÏ&0¢ÿÿ ÿéñÏ&„"ÿÿ ÿèóÏ&!ö.7ÿÿ ÿéöÐ&ç&,êÿÿ ÿéóÏ&Ùÿÿ ÿäöÏ&„"oÿÿ ÿèóÏ&Z.7ÿÿ ÿéõÑ&'ÿÿ ÿèïÐ&„0¹ÿÿ ÿçõÏ&„Yÿÿ ÿéõÏ&£ÿÿ ÿèóÏ&!ê.7ÿÿ ÿéôÏ&¼.7ÿÿ ÿéóÑ&„Xÿÿ ÿéñÏ&„$Zÿÿ ÿéñÏ&#É.7ÿÿ ÿéõÏ&#Ù.7ÿÿ ÿèóÏ&â.7ÿÿ ÿéîÏ&/¸.7ÿÿ ÿéîÑ&ã.7ÿÿÿéôÐ&Ð&Í4Òÿÿ ÿéðÑ&/ƒÿÿ ÿéôÏ&-.7ÿÿ ÿèöÐ&&á%ÃÿÿÿéôÐ&Í"Êÿÿ ÿéñÏ&"Dÿÿ ÿéóÏ&!ÿÿ ÿéóÐ&&ÿÿ ÿéôÏ&!^ÿÿÿéôÏ&Ð&Í4Óÿÿ ÿèóÏ&?ÿÿ ÿéôÏ&„!"ÿÿ ÿèòÏ&„Ÿÿÿ ÿéôÏ&.70{ÿÿ ÿèñÏ&&e&(C.7ÿÿ ÿèóÏ&„!÷ÿÿ ÿéôÏ&„"hÿÿ ÿéóÏ&„#°ÿÿ ÿéóÏ&„(Bÿÿ ÿéóÐ&0–ÿÿ ÿéöÐ&(D&%ÿÿ ÿéóÐ&oÿÿ ÿéíÐ&Õ&.74Ôÿÿ ÿèôÏ&#´.7ÿÿ ÿéóÏ&4Õÿÿ ÿèôÐ&,Åÿÿ ÿéðÏ&$¬.7ÿÿ ÿéîÑ&+ÿÿ ÿè÷Ï&$ß.7ÿÿ ÿéõÏ&„$Êÿÿ ÿèõÏ&„¢ÿÿ ÿéóÏ&.74Öÿÿ ÿéöÏ&$tÿÿ ÿéòÏ&.6.7ÿÿ ÿéîÑ&$–.7ÿÿ ÿéóÐ&åÿÿ ÿéôÏ&"„.7ÿÿÿéõÏ&Â)iÿÿ ÿèòÏ&;.7ÿÿ ÿéîÐ&„#Áÿÿ ÿéóÏ&$D.7ÿÿ ÿéïÑ&-ê.7ÿÿ ÿèõÐ&'p.7ÿÿ ÿèöÏ&% .7ÿÿ ÿéòÐ&„% ÿÿ ÿéóÐ&&,Ä,¥ÿÿ ÿçíÐ&$ìÿÿ ÿé÷Ï&„&ì#vÿÿ ÿéðÏ&#wÿÿ ÿéóÐ&#z.7ÿÿ ÿéôÏ&*)ÿÿ ÿéöÑ&#u&â.7ÿÿ ÿèïÏ&„+ÿÿ ÿéóÏ&#|ÿÿ ÿéîÏ&#{.7ÿÿ ÿéôÑ&Ð.7ÿÿ ÿèôÑ&#x#yÿÿ ÿçõÐ&&&  ÿÿ ÿéõÏ&„#Cÿÿ ÿéõÏ&„$ÿÿ ÿèóÏ&„$“ÿÿÿéóÏ&ÂMÿÿ ÿéðÑ&‡ÿÿ ÿéôÑ&4×ÿÿÿéõÏ&Âÿÿ ÿèõÐ& ÿÿ ÿçóÐ&æÿÿ ÿéðÏ&$.7ÿÿ ÿèòÐ&Ýÿÿ ÿéóÏ&R.7ÿÿ ÿéîÏ&$‘„ÿÿ ÿéòÑ&á&â4ØÿÿÿçñÏ&Â#ÿÿ ÿéóÏ&$Aÿÿ ÿèôÏ&„4Ùÿÿ ÿéôÏ&1ÿÿ ÿéòÏ&/;.7ÿÿ ÿéõÑ&„&†4Úÿÿ ÿæïÏ&.74Ûÿÿ ÿéòÏ&'m.7ÿÿ ÿèòÐ&„/Mÿÿ ÿéóÏ&)’&)“.7ÿÿ ÿèôÐ&(&.74Üÿÿ ÿéôÐ&.8.7ÿÿ ÿé÷Ï&„(Eÿÿ ÿéöÐ&E.7ÿÿ ÿéîÏ&q.7ÿÿ ÿéòÏ&w.7ÿÿ ÿéôÐ&.ûÿÿ ÿéôÑ&.9.7ÿÿ ÿéîÑ&„¹ÿÿ ÿéõÏ&„4Ýÿÿ ÿéðÑ&(Fÿÿ ÿèôÏ&,Ö.7ÿÿ ÿéôÑ&'·.7ÿÿ ÿéôÏ&„'àÿÿ ÿçóÏ&+ÿÿ ÿéöÑ&%Øÿÿ ÿçîÐ&4Þÿÿ ÿéóÑ&(G.7ÿÿ ÿçõÐ&&ÏÐÿÿ ÿéòÏ&..7ÿÿ ÿèôÏ&„/.ÿÿ ÿéõÑ&$4ßÿÿ ÿéõÐ&&)ñ4àÿÿ ÿèöÑ&,y.7ÿÿ ÿèöÐ&„(HÿÿÿéôÐ&Í&#\+ÿÿ ÿéöÐ&Í0 ÿÿÿéöÏ&Í4áÿÿ ÿèôÐ&&Þ4âÿÿ ÿéôÏ&#~ÿÿ ÿéòÏ&,¦.7ÿÿ ÿéõÒ&~.7ÿÿ ÿéóÏ&+ÿÿ ÿéõÑ&„#€ÿÿ ÿéöÏ&%+ÿÿÿéõÏ&j4ãÿÿ ÿéíÏ&:ÿÿ ÿçõÑ&'º.7ÿÿ ÿéóÏ&„'vÿÿ ÿéöÏ&.7ÿÿ ÿçõÏ&4äÿÿÿèôÑ&k&#x4åÿÿ ÿæïÏ&,(.7ÿÿ ÿèõÏ&Ô.7ÿÿ ÿéóÐ&&÷4æÿÿ ÿèïÏ&(I.7ÿÿÿèôÓ&(J4çÿÿ ÿéëÐ&&&®(Lÿÿ ÿéîÏ&.7&0b4èÿÿ ÿçôÏ&(Kÿÿ ÿéóÏ&%íÿÿ ÿéîÏ&„/!ÿÿ ÿèôÏ&(Mÿÿ ÿèõÐ&&4éÿÿ ÿèôÏ&<.7ÿÿ ÿèôÐ&&Þ4êÿÿ ÿèõÐ&&.74ëÿÿ ÿçòÏ&%â.7ÿÿ ÿéöÑ&/Ž.7ÿÿ ÿéóÒ&„%æÿÿ ÿèõÐ&ì.7ÿÿ ÿéöÏ&%.7ÿÿ ÿéòÏ&„#îÿÿ ÿéóÐ&'¾ÿÿ ÿèõÏ&'}.7ÿÿ ÿéôÐ&ê&,§ÿÿ ÿéóÏ&„'ÿÿ ÿéòÏ&„ÿÿ ÿèõÐ&&4ìÿÿ ÿèõÏ&(N.7ÿÿ ÿèöÏ&,¨„ÿÿ ÿéôÐ&(Oÿÿ ÿéöÐ&ëÿÿ ÿèôÐ&//ÿÿ ÿéõÏ&'¿.7ÿÿ ÿéõÏ&.7,×ÿÿ ÿèôÏ&’ÿÿ ÿéõÑ&&,Ù ÿÿ ÿéóÐ&&¤ÿÿ ÿéõÐ&!ä&4íÿÿ ÿéòÐ&%..7ÿÿ ÿéóÐ&&4îÿÿ ÿèôÐ&,).7ÿÿ ÿéòÏ&.:.7ÿÿ ÿèóÑ&.74ïÿÿ ÿéõÐ&&Þ4ðÿÿ ÿéôÑ&/".7ÿÿ ÿèõÐ&&.74ñÿÿ ÿé÷Ï&.74òÿÿ ÿé÷Ñ&&Ã.7ÿÿ ÿèõÐ&4óÿÿ ÿéóÐ&/ÿÿ ÿéðÐ&0¶ÿÿ ÿçôÏ&„-Oÿÿ ÿéòÐ&,©.7ÿÿ ÿéóÒ&´.7ÿÿ ÿéôÏ&'Ä.7ÿÿ ÿéñÏ&'.7ÿÿÿèôÍ&k&#x4ôÿÿ ÿéðÏ&'.7ÿÿ ÿé÷Ï&ö.7ÿÿ ÿéôÐ&Í,ªÿÿ ÿéóÐ&&÷4õÿÿ ÿéõÏ&„¤ÿÿ ÿéõÏ&/#.7ÿÿ ÿéòÐ&.70¦ÿÿ ÿéðÏ&,†„ÿÿ ÿéòÐ&.Óÿÿ ÿéôÐ&Í.ÿÿ ÿèöÑ&'….7ÿÿ ÿèôÏ&-.7ÿÿ ÿéöÏ&/Þ.7ÿÿ ÿèõÐ&&4öÿÿ ÿçøÒ&Õ.7ÿÿ ÿéñÏ&(P.7ÿÿ ÿéóÏ&Êÿÿ ÿéòÏ&0Ã.7ÿÿÿéòÐ&Â8ÿÿÿéôÑ&Í4÷ÿÿ ÿé÷Ð&.;ÿÿ ÿéöÐ&.<4øÿÿ ÿèôÐ&$à&$áÿÿ ÿéðÏ&„%óÿÿ ÿèôÐ&/Dÿÿ ÿéóÐ&&‡4ùÿÿ ÿéôÏ&„'ÿÿ ÿçôÑ&(Q.7ÿÿ ÿéôÒ&Q.7ÿÿ ÿèïÐ&&ô4úÿÿ ÿéôÐ&4ûÿÿ ÿéöÏ&.74üÿÿ ÿèôÒ&%.7ÿÿ ÿéòÑ&.74ýÿÿ ÿçñÐ&& ©4þÿÿ ÿç÷Ò&(R.7ÿÿ ÿèôÐ&/£ÿÿ ÿçõÐ&4ÿÿÿ ÿéöÒ&)ø.7ÿÿ ÿèóÐ&@ÿÿ ÿçõÏ&.70”ÿÿ ÿéõÑ&&Þ5ÿÿ ÿèõÑ&(.7ÿÿ ÿéôÐ&.75ÿÿ ÿéòÐ&)÷.7ÿÿ ÿèóÐ&?&=.7ÿÿ ÿèóÐ&>&¡.7ÿÿ ÿèòÐ&)0.7ÿÿ ÿèñÏ&,À.7ÿÿ ÿèïÏ&.75ÿÿ ÿèöÐ&5ÿÿ ÿéøÑ&û.7ÿÿ ÿéöÐ&H.7ÿÿ ÿèöÐ&.75ÿÿ ÿçôÐ&0ÿÿ ÿéöÑ&5ÿÿ ÿéíÏ&£.7ÿÿ ÿé÷Ð&;ÿÿ ÿèòÏ&,}.7ÿÿ ÿéôÑ&.75ÿÿ ÿéñÑ&%÷.7ÿÿ ÿèòÑ&(Sÿÿ ÿçöÐ&5ÿÿ ÿéîÏ&.75 ÿÿ ÿéóÏ&(T.7ÿÿ ÿéõÐ&.75 ÿÿ ÿéòÐ&&.,5 ÿÿ ÿçõÐ&‡.7ÿÿ ÿèôÓ&…#xÿÿ ÿéòÐ&&.,5 ÿÿ ÿèôÐ&.75 ÿÿ ÿéóÐ&&Öÿÿ ÿçñÑ&%ø.7ÿÿ ÿéôÒ&.Aÿÿ ÿéðÐ&Ãÿÿ ÿæóÐ&.=ÿÿ ÿéòÐ&.75ÿÿ ÿèïÐ&1ÿÿÿèõÏ&(U(Vÿÿ ÿéóÏ&«5ÿÿÿèõÏ&Bÿÿ ÿèôÏ&)ÿÿ ÿèõÏ&AÿÿÿèõÏ&ÿÿ ÿèõÐ&Æ(Wÿÿ ÿèõÏ&,­Pÿÿ ÿèõÏ&Q-ÿÿ ÿèõÏ&(X-ÿÿÿéöÏ&NÿÿÿèôÏ&çOÿÿ ÿèôÏ&+‘ÿÿ ÿéöÑ&äÿÿ ÿèôÏ&oÿÿ ÿèôÏ&•ÿÿ ÿéóÎ&+?.Bÿÿ ÿèôÏ&nÿÿ ÿéöÐ&LÿÿÿèõÏ&-5ÿÿ ÿèôÐ&+çÿÿ ÿèõÐ&T-ÿÿ ÿèõÏ&a-ÿÿ ÿèôÏ&ç(Yÿÿ ÿèõÏ&- °ÿÿ ÿèõÏ&-ÿÿ ÿèôÏ&ÿÿ ÿèõÏ&-,=ÿÿ ÿèõÐ&,«-ÿÿ ÿèõÐ&,¬,­ÿÿ ÿèôÑ& çÿÿÿèôÏ&”æÿÿÿèôÏ&÷æÿÿ ÿèõÏ&-5ÿÿ ÿèõÏ&.C-ÿÿ ÿéöÏ&|ÿÿÿçõÏ&âãÿÿÿèõÒ&(Z-ÿÿÿéóÐ&$(Vÿÿ ÿèõÐ&-([ÿÿ ÿèôÏ& Úçÿÿ ÿçõÐ&-5ÿÿ ÿèôÏ&ç5ÿÿ ÿèôÏ&ç"ÿÿÿéóÐ&#$ÿÿÿèõÏ&-5ÿÿÿèóÐ&% $ÿÿÿèôÏ&æ(\ÿÿ ÿíóÐ&*5ÿÿÿèôÑ&æ(]ÿÿÿèõÐ&&ÿÿÿèôÑ&ç5ÿÿ ÿçôÏ&(ÄæÿÿÿèôÏ&ç5ÿÿÿéóÐ&$™ÿÿ ÿéóÐ&$(ÿÿ ÿèôÑ&æ,¯ÿÿ ÿèôÏ&,®æÿÿ ÿéóÎ&+?+„ÿÿ ÿèôÏ&,°æÿÿÿèôÑ&æ0äÿÿÿçôÑ&ûûÿÿ ÿêôÒ&/5ÿÿ ÿèõÐ&'&(&ÿÿ ÿéöÐ&5Áÿÿ ÿèöÐ&Á5ÿÿ ÿéöÐ&ÂÁÿÿ ÿéõÐ&¢)ÿÿ ÿèöÐ&Á5ÿÿ ÿèôÐ&ÿÿ ÿêôÏ&&øÿÿ ÿèïÐ&¢0¹ÿÿÿçíÑ&“”ÿÿ ÿçöÐ&&,²5 ÿÿÿéíÍ&“–ÿÿ ÿìõÑ&—5!ÿÿ ÿèøÏ&M•ÿÿ ÿèöÐ&BCÿÿ ÿéøÐ&LMÿÿÿéðÉ&&W,³ÿÿÿèöÐ&C,±ÿÿ ÿéöÏ&C]ÿÿ ÿéöÏ&$3Cÿÿ ÿèöÐ&´¥ÿÿ ÿéøÏ&M+šÿÿÿéõÏ&,Ã5$ÿÿ ÿéòÏ&K0­ÿÿ ÿêóÎ&¸}ÿÿ ÿêóÊ&»!rÿÿ ÿéóÏ& Í}ÿÿÿêóÏ&(Ã}ÿÿ ÿêóÏ&(Â}ÿÿ ÿèóÏ&}±ÿÿ ÿéóÑ&|}ÿÿ ÿêóË&}5%ÿÿ ÿêóÎ&}%ÿÿ ÿéðÍ& Ç#7ÿÿÿèôË&Þ5&ÿÿ ÿèôÌ&Þ/$ÿÿ ÿé÷Ï&w&§¹ÿÿ ÿéôÐ&w&º5'ÿÿ ÿéöÏ&y,éÿÿ ÿéôÏ&w&§5(ÿÿ ÿèòÏ&&y5)ÿÿ ÿèõÏ&y&5*ÿÿ ÿéóÏ&y&5+ÿÿ ÿéõÏ&yxÿÿ ÿèïÐ&y5,ÿÿ ÿèöÏ&w0mÿÿ ÿéôÏ&w&ÿÿ ÿéöÏ&]&yÿÿ ÿéóÐ&y&=5-ÿÿ ÿèõÏ&y&5.ÿÿ ÿçóÏ&D&yÿÿ ÿéõÐ&<&w=ÿÿ ÿéòÏ&y&5/ÿÿ ÿèòÏ&y&­50ÿÿ ÿçõÏ&y&­51ÿÿ ÿéòÏ&yüÿÿ ÿé÷Ñ&y&.E52ÿÿ ÿéõÑ&y&.E53ÿÿ ÿèõÑ&!©&.E54ÿÿ ÿèöÐ&!©55ÿÿ ÿèóÎ&!©56ÿÿÿçöÄ&U59ÿÿÿêöÐ&.F5:ÿÿ"ÿéèÃ&(¬5<ÿÿ ÿéçÏ&[5=ÿÿ ÿéõÏ& ¯Hÿÿ ÿéõÏ&òñÿÿ ÿèõÇ&IóÿÿÿéóÄ&V¨ÿÿÿéðÇ&ILÿÿ ÿéòÆ&KJÿÿÿéìÎ&Y–ÿÿÿéðÀ&lTÿÿ ÿè߯&)ÜJÿÿÿêòÏ&(–ÿÿÿêóÐ&¿0ªÿÿÿóôÂ&wVÿÿ ÿèôÆ&JÿÿÿéõÍ&TRÿÿÿìøÏ&V#ÿÿÿéòÏ&¬TÿÿÿêìÐ&*ÙVÿÿÿççÇ&I5>ÿÿ ÿéðÇ&w&ÿvÿÿÿèõÏ&‘0ªÿÿÿèóÆ&R…ÿÿ*ÿëïÇ&I3ÿÿÿêïÇ&¨§ÿÿÿêëÏ&0ª(ÁÿÿÿèòÏ&0ª0«ÿÿ ÿçôÇ&wªÿÿ ÿéõÃ&«òÿÿÿéáÇ&I(ÀÿÿÿéíÂ&ô–ÿÿÿéëÉ&%“%’ÿÿÿèìÐ&%”ÿÿÿéôÎ&TÚÿÿÿèöÑ&ÓTÿÿÿìðÏ&{VÿÿÿéñÏ&ò5?ÿÿÿéñÍ&ñRÿÿÿèîÇ&I5@ÿÿÿçñÇ&¨5AÿÿÿéòÏ&“5BÿÿÿéôÂ&T%ËÿÿÿêöÏ&R0®ÿÿÿéóÏ&VÔÿÿÿééÏ&TµÿÿÿçõÏ&DYÿÿ ÿéôÇ& ƒ&¨5Cÿÿÿé÷Ï&RSÿÿÿéóÐ&UTÿÿÿêëÐ&VWÿÿÿéêÄ&Tjÿÿ ÿéìÇ& €&¨5Dÿÿ ÿïóÇ&|wÿÿÿðòÇ&I,µÿÿÿéòÏ&D0°ÿÿÿèõÏ&R+0ÿÿÿçåÇ&¨,¶ÿÿÿêðÇ&RÃÿÿ ÿé÷Ñ&MNÿÿÿéõÐ&/&* ÿÿÿèðÈ&,· ÿÿ ÿçêÇ&¨&  €ÿÿ ÿîöÅ&æ0hÿÿÿõòÆ&J5EÿÿÿêõÏ&RÿÿÿéôÇ&*IÿÿÿéóÐ&TKÿÿ ÿéñÇ&ëwÿÿÿé÷Ï&R+ÿÿÿòõÅ&TÔÿÿÿéõÐ&Tóÿÿ ÿèóÇ&%”5FÿÿÿðóÄ&TÕÿÿÿéðÇ&ò5GÿÿÿèíÒ&¾VÿÿÿèîÈ& ½ÿÿÿèãÇ&¨¼ÿÿÿéóÇ&VÖÿÿÿëôÏ&RÿÿÿéôÐ&UVÿÿÿéíÉ&«ªÿÿÿéóÊ&T¬ÿÿÿé÷Ñ&V,ÍÿÿÿçõÑ&R ÿÿÿêøÑ& RÿÿÿéñÆ&TòÿÿÿééÉ&ª,¸ÿÿÿéòÐ&D*ÿÿ ÿçöÇ&¨<ÿÿÿéðÒ&0íVÿÿÿéñÏ&0eòÿÿÿéóÅ&VŠÿÿÿçõÑ&RŽÿÿÿéõÐ&RƒÿÿÿêóÍ&ETÿÿ ÿçôÈ& 5HÿÿÿêõÐ&R,ÂÿÿÿçôÏ&ªDÿÿÿéòÏ&V YÿÿÿéóÏ&V1ÿÿ ÿéóÉ&ª5IÿÿÿéóÏ&G&'`5JÿÿÿèôÏ&ÛTÿÿÿçöÏ&R _ÿÿ ÿéïÎ&òÜÿÿÿéóÏ&V(=ÿÿÿéëÇ&I5Kÿÿ ÿéôÉ&ª5Lÿÿ ÿèòÇ&¨5MÿÿÿéìÇ&Rÿÿ ÿéçÓ&ò5NÿÿÿìöÏ&D'eÿÿÿéöÏ&R"HÿÿÿëôÏ&RZÿÿÿéóÏ&D&f,¹ÿÿÿèóÎ&R%ÖÿÿÿéñÐ& :“ÿÿ ÿèòÇ&¨ NÿÿÿîòÏ&V"ÿÿÿéöÐ&,º&ç,êÿÿÿéöÄ&G Œÿÿ ÿéòË&ä,»ÿÿÿéóÇ&V!ÿÿÿèõÈ&TxÿÿÿéòÏ&“5OÿÿÿéõÍ&/&"zÿÿÿéðÈ&V’ÿÿÿè÷Ï&!ßRÿÿÿéòÐ&V"öÿÿÿéóÏ&V"¶ÿÿÿéõÏ&R:ÿÿÿèòÌ&RŸÿÿÿéóÑ&VXÿÿÿçõÉ&YVÿÿÿéöÎ&V"YÿÿÿèóÇ& áVÿÿÿîòÏ&LDÿÿÿéóË&%äÿÿÿéõÏ&D*oÿÿÿçõÏ&"!0ÿÿ ÿèòÇ&s5PÿÿÿéóÏ&/&/ÿÿÿîóË&,¼5QÿÿÿéöÏ&G+!ÿÿÿéòÏ& ÞDÿÿ ÿéòÐ&“0øÿÿ ÿêõÏ&l5RÿÿÿèôÏ&%*VÿÿÿêöÐ&,½EÿÿÿîóÊ&G$÷ÿÿÿéôÑ&VnÿÿÿêòÏ&D/Sÿÿÿê÷Ð&°GÿÿÿéóÏ&D+ÿÿÿéôÏ&D'ãÿÿ ÿëôÌ&u5SÿÿÿéòÈ&DÿÿÿéóÉ&D)PÿÿÿéôÏ&“9ÿÿÿéôÎ&D%'ÿÿÿèôÑ&G&,5TÿÿÿéõÏ&VšÿÿÿîïÏ&G2ÿÿÿîóÓ&,¼5UÿÿÿéóÏ&G†ÿÿ ÿèïÇ&s5VÿÿÿæòË&äãÿÿÿíóÐ&D'¾ÿÿÿèôÎ&G<ÿÿÿèôÐ&G,¾ÿÿÿéóÉ&D'ÿÿÿïêÌ&Ê5WÿÿÿèñÈ& 5XÿÿÿèõÐ&G&5YÿÿÿèôÏ&G'ŠÿÿÿéðÊ&D%óÿÿÿçôÇ&R€ÿÿÿéñÏ&GFÿÿÿèõÐ&V¢ÿÿÿéóÊ&GÊÿÿÿéõÈ&G%cÿÿÿéòÉ&,¿RÿÿÿèôÒ&%‚/&ÿÿÿçôÐ&G+(ÿÿÿèñÈ&G,ÀÿÿÿèôÏ&G%öÿÿÿéöÐ&HGÿÿÿéóÒ&@-ñÿÿÿêóÌ&G*lÿÿÿçñÑ&G%øÿÿÿéóË&.G,ºÿÿÿéäÐ&ò5\ÿÿ ÿéêÇ&w5]ÿÿ ÿéóÏ&“5^ÿÿÿéïÐ&“5_ÿÿ ÿéóÇ&w×ÿÿÿèðÉ&ª& 5`ÿÿÿéàÏ&ò5aÿÿÿèàÒ&%”5bÿÿÿéóÏ&ò5cÿÿ ÿéóÈ&  ÿÿ ÿéóÇ&“5dÿÿÿéöÏ&"ÛÿÿÿéðÐ&,Á’ÿÿ ÿéôÉ&õ çÿÿ ÿéôÉ&14ÿÿ ÿçõÏ&Yÿÿ ÿéëÏ&õ´ÿÿ ÿéìÐ&30ÿÿÿ ÿèìÎ&õ|ÿÿ ÿé÷Ì&3Eÿÿ ÿéöÎ&õØÿÿ ÿèõÐ&õLÿÿÿèêÏ&I ÿÿ ÿçõÑ&3 ÿÿÿïðÑ&-(5fÿÿ ÿèêÏ& Iÿÿ ÿèêÏ&°±ÿÿ ÿèõÏ&!àÿÿ ÿéöË&3#ÍÿÿÿïðÊ&-(&Ì5hÿÿ ÿèóÏ&-Nÿÿ ÿèñÏ&(ÿÿÿèöÐ&HÄÿÿ ÿéòÏ&ÿ2ÿÿÿèöÏ&¸iÿÿ ÿéëÏ&ÿúÿÿ ÿèôÈ&ÙÿÿÿéèÏ&Ò¸ÿÿ ÿéíÏ&îÿÿ ÿéôÏ&º&ÿÿÿéõÏ&¸¹ÿÿ ÿéßÏ&˜ÿÿ ÿéóÏ&MÿÿÿéîÏ&¸*ÿÿÿéóÏ&ѸÿÿÿêîÑ&Ûÿÿ ÿè÷Ï&ºkÿÿ ÿêõÏ&ñôÿÿÿçõÏ&¸ÓÿÿÿéðÏ&¸ÂÿÿÿéóÏ&¸&ÿÿÿéðÏ&¸ÿÿÿèõÏ&¸šÿÿ ÿéõÏ&õÿÿ ÿèöÏ&º‚ÿÿÿéõÏ&¸³ÿÿ ÿéôÏ&oÿÿ ÿéóÐ&~5ÿÿ ÿéõÏ&ÿÿ ÿéòÏ&ÿÿ ÿéòÏ&º(ÿÿÿéìÏ&¸Yÿÿ ÿé÷Ï&ºÿÿ ÿéôÏ&º( ÿÿ ÿèôÏ&”+ÃÿÿÿéóÏ&¸ÿÿ ÿéòÏ&ºÿÿÿéõÏ&¸yÿÿÿéöÏ&¸ÿÿÿé÷Ï&¸ÿÿÿéóÏ&¸ÈÿÿÿêóÑ&Vôÿÿ ÿñõÏ&ÿÿ ÿéêÏ&¾ºÿÿÿèóÏ&¸+ÅÿÿÿéõÏ&+ĸÿÿÿéíÏ&¸%9ÿÿÿèïÏ&;¸ÿÿ ÿèôÏ&º(/ÿÿÿéöÏ&Þ¸ÿÿ ÿéòÐ&º±ÿÿ ÿéóÏ&º ÿÿ ÿêôÏ&+ÆLÿÿ ÿèôÆ&JÙÿÿ ÿéõÏ&)ÕòÿÿÿéõÑ&¸²ÿÿ ÿéòÏ&¬ÿÿ ÿéòÏ&ººÿÿ ÿéõÏ&ºõÿÿ ÿéðÏ&+"ºÿÿ ÿéñÏ&º&ú/Õÿÿ ÿéõÏ&/ºÿÿÿéóÏ&¸1ÿÿ ÿéñÏ&º8ÿÿÿéóÐ&&¸ÿÿ ÿéòÏ&º&yÿÿ ÿéóÏ&ºÀÿÿ ÿéóÏ&º‰ÿÿ ÿéìÐ&º*ÙÿÿÿéìÏ&¸Òÿÿ ÿéôÏ&ºÿÿ ÿéõÏ&nºÿÿ ÿéõÏ&º,ÿÿ ÿéôÏ&ºwÿÿ ÿèòÏ&º0«ÿÿÿéôÏ&¸Úÿÿ ÿéóÏ&º!sÿÿ ÿéöÏ&/ ÿÿ ÿéòÏ& 5nÿÿÿéóÏ&¸!rÿÿÿéôÏ&¸)ÖÿÿÿéñÏ&¸)×ÿÿÿéõÏ&¸‘ÿÿ ÿèöÑ&ÓºÿÿÿèôÏ&¸!ÿÿ ÿéõÏ&…ÿÿ ÿèíÏ&º£ÿÿ ÿèòÏ&º0$ÿÿÿèõÏ&¸ÿÿ ÿèõÏ&ÿÿ ÿèöÏ&ºŸÿÿ ÿçõÏ&º!vÿÿÿéöÏ&¸iÿÿ ÿéñÏ&©ÿÿ ÿéôÏ&º…ÿÿ ÿèöÏ&‰5oÿÿ ÿèñÏ&ºÀÿÿÿéëÏ&¸(Áÿÿ ÿæõÏ&º)IÿÿÿèõÏ&¸ÿÿÿåñÐ&~šÿÿ ÿéóÏ&º,$ÿÿ ÿçöÏ&+dÿÿ ÿêßÒ&°5pÿÿ ÿéõÏ&ºÿÿ ÿéóÏ&ºÿÿ ÿéóÏ&ºÿÿ ÿèóÏ&èlÿÿÿçôÏ&¸%Ìÿÿ ÿéíÏ&º.Hÿÿ ÿéóÏ&&ÿÿ ÿèôÐ&”0Œÿÿ ÿéìÏ& Îÿÿ ÿéëÐ&Wºÿÿ ÿéôÐ&øÿÿÿéõÏ&k¸ÿÿ ÿéóÏ&ºQÿÿ ÿéðÏ&º5qÿÿ ÿèóÏ&ºÿÿ ÿéóÏ&ºÂÿÿ ÿéöÏ&,éÿÿ ÿçõÏ&Yÿÿ ÿéôÏ&%Ëÿÿ ÿéðÏ&ºÃÿÿÿéóÐ&¸)vÿÿÿèóÏ&¸ÿÿÿéôÏ&¸+ÿÿ ÿéõÏ&!ÿÿ ÿèôÑ&Ù¨ÿÿ ÿéêÏ&(oÿÿ ÿéöÏ&%! ÿÿ ÿéóÏ&º&/Õÿÿ ÿéèÐ&º%žÿÿ ÿèóÐ&è5rÿÿ ÿéóÏ&º™ÿÿ ÿèôÎ&”&˜—ÿÿ ÿèôÐ&•&–”ÿÿ ÿèóÉ&è5sÿÿ ÿéñÏ& Ãÿÿ ÿèìÏ&º&ÿÿ ÿéëÏ&º»ÿÿ ÿéìÏ&!wÿÿ ÿéóÏ&ºÁÿÿ ÿçóÏ&º'£ÿÿÿéóÐ&¸Uÿÿ ÿèòÏ&º&ÿÿÿéòÏ&¸Sÿÿ ÿèôÏ&º”ÿÿ ÿèõÏ&+ºÿÿ ÿéòÏ&ÝÿÿÿññÐ&,Æ~ÿÿ ÿéöÏ&ºÁÿÿ ÿè÷Ï&ºñÿÿ ÿéîÏ& &õ5tÿÿ ÿéïÐ& &!o òÿÿÿéòÏ&0°0²ÿÿ ÿçòÐ&ºPÿÿ ÿééÏ&ºµÿÿ ÿéóÏ&º¶ÿÿÿèñÐ&~4ÿÿ ÿéóÏ&º'Ëÿÿ ÿé÷Ï&ºÿÿ ÿéïÏ& /¶ÿÿ ÿèôÏ&,%”ÿÿÿéõÏ&¡0²ÿÿ ÿéíÏ&º0òÿÿ ÿéõÏ&3ºÿÿ ÿéòÏ&º0jÿÿ ÿéíÏ&º,ÇÿÿÿîòÐ&~5uÿÿ ÿéóÏ&º'ÿÿ ÿéòÏ&ººÿÿ ÿéôÏ&‰ÿÿ ÿèñÏ&º,&ÿÿ ÿéôÏ&º5vÿÿ ÿéïÐ&h&[5wÿÿ ÿèôÏ& Øÿÿ ÿæñÏ&5xÿÿÿèòÑ&.Ï5yÿÿÿèòÏ&0²0´ÿÿ ÿèôÏ&º)€ÿÿ ÿèõÏ&»ÿÿ ÿèðÏ&º5zÿÿ ÿéóÏ&'¦ÿÿ ÿéóÏ&º)ÿÿ ÿéòÏ&º(Êÿÿ ÿéõÏ&º ÿÿ ÿéòÏ&º5{ÿÿÿéóÏ&&0²5|ÿÿ ÿéíÑ&ºŸÿÿ ÿéöÑ&“ÿÿ ÿèóÏ&è&ÿÿ ÿéóÏ&Öÿÿ ÿèîÏ&ºÿÿ ÿèöÏ& Öÿÿ ÿéõÏ&Šºÿÿ ÿéóÏ&xºÿÿ ÿèôÈ&Ùçÿÿ ÿéóÐ&ãºÿÿ ÿèôÐ&>&=èÿÿ ÿèõÏ&º©ÿÿ ÿéóÏ&ºÿÿ ÿèôÏ&” ÿÿ ÿéìÏ&,Èhÿÿ ÿéòÏ& ÿÿÿéïÏ&,0²ÿÿ ÿéöÏ& –ÿÿ ÿéôÏ&Qÿÿ ÿéòÏ&ºÅÿÿÿéòÏ&¸0ÿÿ ÿéòÏ&{ºÿÿ ÿèïÏ&1ºÿÿ ÿéóÏ& ÿÿ ÿéòÏ&ºXÿÿ ÿèõÏ&5}ÿÿ ÿèïÏ&h&¦ ÿÿ ÿéóÏ&º¹ÿÿ ÿéôÐ&7ºÿÿ ÿéöÏ&$ÿÿÿéðÏ&¸ÿÿ ÿéõÏ& ºÿÿ ÿéõÐ&ºÿÿ ÿèôÏ&”ðÿÿ ÿèôÏ&Ø”ÿÿÿéóÏ&Ø&Ù0²ÿÿ ÿéóÏ&ºÿÿ ÿé÷Ï& Bÿÿ ÿé÷Ï&+ÿÿ ÿéõÑ&Žÿÿ ÿéóÏ&ÿÿ ÿèóÏ&Zèÿÿ ÿèóÏ&º0½ÿÿ ÿéõÐ&úòÿÿ ÿè÷Ï&)ÿÿ ÿèóÏ&è5ÿÿ ÿéõÐ&óÿÿ ÿéóÏ&ºÕÿÿÿèñÏ&Ä&&e0²ÿÿ ÿéîÏ& .ÿÿ ÿèôË&Ø5€ÿÿ ÿèôÍ&×Ùÿÿ ÿéõÏ&ºÿÿÿ ÿéòÏ&0ÕÿÿÿéìÏ&¸Òÿÿ ÿèòÐ&Öÿÿ ÿéóÏ& -ÿÿ ÿéóÏ&hÙÿÿ ÿéôÒ&ÿÿ ÿéñÏ&àÿÿ ÿèõÏ&¼ÿÿ ÿåðÏ&º£ÿÿ ÿéíÏ&ºéÿÿ ÿéôÏ&º,”ÿÿ ÿèöÏ& áÿÿ ÿéôÐ& Uÿÿ ÿèóÏ&Vÿÿ ÿèóÏ&è5ÿÿ ÿéóÑ&ºÔÿÿ ÿéöÏ&&`_ÿÿ ÿè÷Ï&º'Óÿÿ ÿéóÏ&,ɺÿÿ ÿéòÏ& 0@ÿÿÿéòÏ&¸©ÿÿ ÿéóÏ&º,Êÿÿ ÿéóÐ&º³ÿÿ ÿèñÏ&Žÿÿ ÿèíÏ& '©ÿÿ ÿéíÏ&?ÿÿ ÿéòÐ&*ÿÿÿèõÐ&¸Lÿÿ ÿéôÏ& %$ÿÿÿéòÐ&ç5‚ÿÿÿîòÐ&ç5ƒÿÿ ÿéòÏ&*Çÿÿ ÿéôÏ&º/ÿÿ ÿéùÏ&0ºÿÿ ÿèôÐ&•&(”ÿÿ ÿéóÏ&(5ÿÿ ÿéôÏ& %=ÿÿ ÿéõÐ& „ÿÿÿçñÏ&&e&0²5„ÿÿ ÿæðÏ&ºÎÿÿ ÿèôÏ&,Ì& 5…ÿÿ ÿèóÏ&è0fÿÿÿééÏ&¸ÿÿ ÿéöÐ&(lÿÿ ÿéñÏ&º&­¬ÿÿ ÿéóÏ&ºEÿÿ ÿéóÏ&ÿÿ ÿèöÏ& &K%Ãÿÿ ÿé÷Ñ&,Íÿÿ ÿéóÏ&*ºÿÿ ÿéóÏ& îÿÿ ÿèôÏ&ºéÿÿ ÿæ÷Ï&(¿ÿÿÿèñÏ&&&e5†ÿÿ ÿçõÏ& Øÿÿ ÿêõÐ&[&K5‡ÿÿÿéòÒ&ÊËÿÿ ÿèêÏ&ºÌÿÿ ÿéõÏ&º’ÿÿ ÿéêÐ&ºcÿÿ ÿèõÏ& /?ÿÿÿè÷Ï&0²5ˆÿÿ ÿèõÏ&b&c5‰ÿÿ ÿéóÏ& Šÿÿ ÿèôÏ&³&”5Šÿÿ ÿéóÏ&ºëÿÿÿéôÏ&¸õÿÿ ÿéöÏ&”ÿÿ ÿéóÏ&'ºÿÿ ÿçõÑ& ÿÿ ÿèñÏ&%Ϻÿÿ ÿèóÐ&ºŒÿÿ ÿéôÐ& .Kÿÿ ÿéîÏ&ßÿÿÿéôÐ&0²ÿÿ ÿèôÐ&º>ÿÿÿéõÏ&0²ÿÿ ÿéõÏ&b&c5‹ÿÿ ÿèóÏ&ºÓÿÿ ÿéóÏ&º%Òÿÿ ÿéõÏ&b&caÿÿ ÿéóÏ&+ÿÿ ÿéõÏ&)zºÿÿ ÿçöÏ&º5Œÿÿ ÿèôÏ& /0ÿÿ ÿéóÏ&  ÿÿ ÿéöÏ&5Žÿÿ ÿéóÏ&º(=ÿÿ ÿèïÏ&ºwÿÿ ÿèöÏ&»ºÿÿ ÿéóÏ&º+Nÿÿ ÿéôÏ&º(mÿÿ ÿéóÏ&.Mÿÿ ÿéòÏ&ºÿÿ ÿèôÐ&”ÿÿ ÿéóÐ&º Oÿÿ ÿé÷Ï& (;ÿÿ ÿéòÐ&%Ðÿÿ ÿéôÐ&'Úºÿÿ ÿéõÑ& ýÿÿ ÿèõÏ&2ÿÿÿéõÐ&,Î,Ïÿÿ ÿéíÏ& Éÿÿ ÿè÷Ð& 5‘ÿÿ ÿéîÏ& èÿÿ ÿéîÏ&ìÿÿ ÿèõÒ& ÿÿ ÿèôÏ&ÖØÿÿ ÿéïÏ&%­ÿÿ ÿé÷Ï&Kÿÿ ÿéóÏ&%Óÿÿ ÿéóÑ& !ÿÿ ÿçõÓ&)@ÿÿ ÿèôÐ&#f&è5’ÿÿÿçìÏ&/10²ÿÿ ÿèôÏ&ºÛÿÿ ÿèöÏ& <ÿÿ ÿéõÐ&º%ªÿÿ ÿéöÐ&~&€ÿÿ ÿéõÑ&º ÿÿÿéòÏ&£0²ÿÿ ÿèôÏ&'Ø ÿÿ ÿäôÏ&àÿÿ ÿéöÏ& ׺ÿÿÿèôÏ&0²5“ÿÿ ÿéõÏ& /ÿÿ ÿéóÏ&'îÿÿ ÿéõÏ& .3ÿÿ ÿèóË&è5”ÿÿ ÿéòÏ&º Yÿÿ ÿèðÐ& iÿÿ ÿèôÏ&k&Ø5•ÿÿ ÿçõÏ&b&c+Ìÿÿ ÿèõÏ&.N5–ÿÿ ÿéöÏ&"Hÿÿ ÿéóÑ&"fÿÿ ÿéóÏ&,Ðÿÿ ÿéóÏ&º&Çÿÿ ÿéëÏ&¾ºÿÿÿçðÏ&¸ÿÿ ÿéîÏ&ºþÿÿ ÿèòÏ&.ÿÿ ÿéôÏ&ºYÿÿ ÿéóÐ&ɺÿÿ ÿéòÏ& rÿÿ ÿéôÐ& Ÿÿÿ ÿéòÏ&#jÿÿ ÿéñÏ&¼ºÿÿ ÿéôÏ&'¯ºÿÿÿéöÏ&.Uÿÿ ÿéøÏ&ü ÿÿ ÿéðÐ&º# ÿÿ ÿèõÏ&,Ñ&h5—ÿÿ ÿéôÑ&9 ÿÿ ÿéîÏ&º±ÿÿ ÿéîÏ& ïÿÿ ÿéöÏ& '­ÿÿ ÿéôÐ&  (ÿÿ ÿèöÏ&%«ÿÿ ÿèôÐ&Ø 4ÿÿÿéëÏ&0²&à(ÿÿ ÿéíÏ& Ñÿÿ ÿçõÏ&¨ÿÿ ÿéêÏ&º5˜ÿÿ ÿéìÐ&h&¿5™ÿÿ ÿéùÏ& .Pÿÿ ÿèõÒ&.Oÿÿ ÿéóÐ&  ÿÿ ÿéñÏ& ,£ÿÿÿéòÏ&~&}0²ÿÿ ÿèóÏ&ˆºÿÿÿèñÏ&&e&0²5šÿÿ ÿéóÐ& "÷ÿÿ ÿèóÏ&#;ÿÿÿèöÏ&#&˜0²ÿÿÿéöÏ& Œ0²ÿÿ ÿéöÏ& #ÎÿÿÿéöÐ&ß0²ÿÿ ÿéöÐ&h&ç,êÿÿ ÿéóÏ& ÙÿÿÿéñÏ&#É0²ÿÿÿéòÏ&/&5›ÿÿ ÿéõÏ& "îÿÿ ÿéöÏ& "Yÿÿ ÿéòÏ&.Xÿÿ ÿéôÐ& "¤ÿÿ ÿéôÏ&"hÿÿ ÿèïÐ&º0¹ÿÿ ÿéíÏ&5ºÿÿ ÿéñÏ&º$[ÿÿ ÿéñÏ&'ܺÿÿ ÿçõÏ&YÿÿÿèïÏ& ±& 0²ÿÿ ÿèòÏ& !æÿÿ ÿéóÏ&!ÿÿ ÿéõÐ&/ ÿÿÿéõÏ&"z0²ÿÿ ÿéöÏ&",ÿÿ ÿéõÏ&: ÿÿÿéôÏ&#ž0²ÿÿ ÿéñÏ&º)‚ÿÿÿéîÏ&/¸0²ÿÿ ÿéôÏ&0{hÿÿ ÿèóÏ&è&Ú5œÿÿÿèõÏ&,Ñ&0²5ÿÿ ÿéõÏ&c&b5žÿÿ ÿéóÏ&.Yºÿÿ ÿéîÏ&h&KJÿÿ ÿéõÏ& :ÿÿ ÿèôÏ&5Ÿÿÿ ÿéðÑ& /ƒÿÿ ÿéóÏ& "µÿÿÿéõÑ&ä0²ÿÿÿéôÐ&&0²ÿÿ ÿéëÏ& þÿÿ ÿèòÏ& Ÿÿÿ ÿéòÏ&"žÿÿ ÿèóÐ& gºÿÿ ÿèôÏ&q&"å ÿÿ ÿèõÏ&º°ÿÿ ÿäöÏ&ºýÿÿ ÿéðÏ&’ÿÿÿéóÏ&#­+ÿÿ ÿèòÏ&)hÿÿ ÿèõÐ&º,Òÿÿ ÿéöÏ& 01ÿÿ ÿé÷Ï&"cÿÿ ÿéïÑ&!Áÿÿ ÿéñÏ& ÿÿ ÿèóÒ& /Òÿÿ ÿéòÐ&º<ÿÿÿèöÏ&á&%Ã0²ÿÿÿéóÏ&30²ÿÿ ÿéõÏ&#Iÿÿ ÿéõÑ&º"±ÿÿ ÿèôÏ& #´ÿÿ ÿèóÐ&è5 ÿÿ ÿéôÐ&#XºÿÿÿéñÏ&#­%×ÿÿ ÿéóÐ&Hÿÿ ÿéõÏ&hœÿÿÿèïÏ&+#5¡ÿÿÿéóÐ&0–0²ÿÿ ÿéöÏ& ÿÿ ÿéòÏ&º!¿ÿÿ ÿéíÐ& &Õ5¢ÿÿÿéõÏ&!”0²ÿÿ ÿéïÏ&h&,'5£ÿÿ ÿèìÏ&º5¤ÿÿ ÿéóÏ& -éÿÿ ÿéóÏ&º$Íÿÿ ÿéõÏ&$uÿÿ ÿéóÐ&/†ÿÿÿèñÑ&0—0²ÿÿ ÿéöÏ& Nÿÿ ÿèôÎ&ÿ5¥ÿÿ ÿéðÏ&#w ÿÿ ÿèôÑ&Ø5¦ÿÿ ÿéõÏ&#CÿÿÿéòÏ&,Ó0²ÿÿ ÿèõÏ& $nÿÿ ÿéðÑ&$•ÿÿ ÿè÷Ï& Ëÿÿ ÿèóÏ& áºÿÿ ÿéôÏ& 'ßÿÿÿéòÏ&'m0²ÿÿ ÿéôÏ& .Dÿÿ ÿéöÏ&º$Oÿÿ ÿèøÏ&¦5§ÿÿ ÿéòÏ&/4ÿÿ ÿéîÏ& $‘ÿÿ ÿèôÐ& $ñÿÿ ÿéñÏ&ÿÿÿéóÐ&/60²ÿÿ ÿéóÏ&$Ⱥÿÿ ÿéóÐ& &/â5¨ÿÿ ÿèôÏ&”& ÿÿÿéóÐ&L&M0²ÿÿ ÿéóÏ&$Cºÿÿ ÿé÷Ñ&0± ÿÿ ÿéõÏ&ºÿÿÿæôÑ&0²5©ÿÿ ÿéñÏ& %ÿÿ ÿéöÐ&Vÿÿ ÿèôÐ&$ÿÿ ÿéðÏ&º$­ÿÿ ÿéóÏ&$›ÿÿ ÿéîÏ&$Tÿÿ ÿéõÏ&)iºÿÿ ÿèôÐ&ºÿÿ ÿéóÏ&Mºÿÿ ÿéòÏ&L ÿÿ ÿéòÐ& % ÿÿÿéöÏ&5ªÿÿ ÿèóÑ&¸&ºèÿÿ ÿèóÏ&$“ÿÿÿéóÏ&#¬#­ÿÿ ÿéóÑ& '¶ÿÿÿéóÏ&$„0²ÿÿ ÿèôÑ&¿&ÀØÿÿ ÿèôÐ& ,Åÿÿ ÿéôÐ& 0oÿÿÿèõÐ& 0²ÿÿ ÿéïÏ&+$ ÿÿ ÿèõÐ&ÿÿ ÿéôÑ&Œÿÿ ÿéôÏ&1ÿÿ ÿçöÐ& 5«ÿÿ ÿéõÐ&5¬ÿÿ ÿèôÏ&(‚ºÿÿ ÿéóÐ&$0ÿÿ ÿéñÐ&º#Âÿÿ ÿéøÑ& $õÿÿ ÿèòÐ&/Mÿÿ ÿéóÏ& &.-ÿÿ ÿéîÏ&%ÛÿÿÿéõÏ&Þ&0²5­ÿÿ ÿéòÏ& /Sÿÿ ÿèñÓ&(ƒÿÿ ÿèôÏ&Ø5®ÿÿÿèñÑ&&e&%ç0²ÿÿÿéóÏ&5¯ÿÿ ÿéóÏ& +ÿÿÿçõÏ&Ï&Ðÿÿ ÿéõÒ&h~ÿÿ ÿçõÑ&xÿÿ ÿéöÏ&4&º5°ÿÿ ÿèôÏ&h&’>ÿÿ ÿèôÐ&ØjÿÿÿéõÐ&/U0²ÿÿ ÿéîÏ&qhÿÿ ÿèöÏ&Ø5±ÿÿÿéøÏ&5²ÿÿ ÿèòÑ& 5³ÿÿÿèøÏ&,c&0²5´ÿÿ ÿèöÏ&Ø5µÿÿ ÿéóÏ&¡ ÿÿ ÿéôÏ& &žÿÿ ÿéòÏ& $þÿÿ ÿéîÑ&º¹ÿÿ ÿé÷Ð& /Yÿÿ ÿèôÑ&Ø5¶ÿÿÿéöÏ&&  ÿÿ ÿéöÐ&Ehÿÿ ÿéðÐ&º*¸ÿÿÿèõÐ&0³5·ÿÿÿèöÑ&,y0²ÿÿÿèôÐ&'¸0²ÿÿ ÿéôÏ& 5¸ÿÿÿéõÏ&Þ&0²5¹ÿÿ ÿèôÏ&,Õÿÿ ÿèõÐ& 'xÿÿ ÿéôÏ&º'àÿÿÿé÷Ï&,&0²5ºÿÿÿéõÑ&#}0²ÿÿ ÿçôÐ& 1ÿÿ ÿéõÑ& #€ÿÿ ÿçöÐ& &##‚ÿÿ ÿèöÑ&ã5»ÿÿ ÿéóÏ& #ÿÿ ÿéóÏ& ¦ÿÿ ÿéóÏ&º†ÿÿ ÿé÷Ï&ºÿÿ ÿèôÐ&/Z ÿÿ ÿéôÏ&#~ ÿÿ ÿéôÑ& nÿÿ ÿéòÏ& Þÿÿ ÿéöÏ&Nºÿÿ ÿéîÏ&ºÿÿ ÿç÷Ð&$Ýÿÿ ÿéõÏ&5¼ÿÿÿéôÐ&0²5½ÿÿ ÿéôÐ&h&(5¾ÿÿ ÿèôÏ&.ZÿÿÿéóÐ&ë0²ÿÿ ÿçòÏ& %âÿÿÿéõÏ&%Ú0²ÿÿ ÿèúÏ&&¼5¿ÿÿÿéñÐ&'¼0²ÿÿ ÿéïÏ&º4ÿÿÿæïÏ&,(0²ÿÿ ÿéôÏ& /[ÿÿ ÿéöÏ&F ÿÿ ÿéõÏ& %èÿÿÿéõÏ&,×0²ÿÿ ÿéóÐ& &¤ÿÿÿéóÐ&P&/â0²ÿÿÿéóÏ&†0²ÿÿ ÿçôÏ&hÄÿÿÿéôÏ&0²5Àÿÿ ÿéóÒ& %æÿÿÿé÷Ð&&%5Áÿÿ ÿéòÏ&ºÿÿ ÿéõÐ&h5Âÿÿ ÿéóÏ& 5Ãÿÿ ÿèõÐ&h&5ÄÿÿÿçöÏ&/^0²ÿÿÿèôÏ&<0²ÿÿ ÿéôÏ& %'ÿÿÿèõÏ&'}0²ÿÿÿéîÏ&0b&0²5Æÿÿ ÿéòÏ&ºüÿÿ ÿéóÐ&'âºÿÿ ÿéõÏ&á&àßÿÿ ÿéôÏ&'ãÿÿÿèñÏ&70²ÿÿ ÿèðÏ& .\ÿÿÿèõÑ&&%ç0²ÿÿ ÿéïÏ&.[ÿÿ ÿéôÐ& ,Øÿÿ ÿçìÏ& %êÿÿÿéöÏ&%0²ÿÿÿéòÏ&%à0²ÿÿ ÿèõÏ& Ôÿÿ ÿéóÏ&'ÿÿ ÿéóÐ&º ÿÿÿéõÑ&¼0²ÿÿÿéòÒ&0²5Çÿÿ ÿéôÐ& ÿÿÿéõÑ&&,Ù ÿÿÿèöÐ&Ø5Èÿÿ ÿèõÐ&&B5Éÿÿ ÿéóÏ&´ºÿÿ ÿéíÑ& '‚ÿÿ ÿèöÐ&'ÿÿ ÿéóÏ& 5Êÿÿ ÿèõÐ& ,Úÿÿ ÿå÷Ï& 5Ëÿÿ ÿéóÐ&/_ ÿÿÿèïÏ&(I0²ÿÿÿéòÏ&/a0²ÿÿ ÿéõÏ&šÿÿ ÿéöÏ&h&!.]ÿÿ ÿé÷Ð&W&h5ÌÿÿÿèîÏ&0²5ÍÿÿÿèôÐ&,)0²ÿÿÿé÷Ï&"ð&"ï0²ÿÿ ÿéøÏ&¡ÿÿ ÿéðÏ&(„ ÿÿ ÿéõÓ& Sÿÿ ÿé÷Ð& 'Åÿÿ ÿèõÐ&z&&B5Îÿÿ ÿèõÑ&h&5Ïÿÿ ÿéôÏ& (…ÿÿÿéðÏ&,Û0²ÿÿ ÿéóÏ& 5Ðÿÿ ÿéòÏ& .^ÿÿ ÿé÷Ñ&.£ÿÿÿéõÏ&._0²ÿÿÿéòÐ&0¦0²ÿÿ ÿéðÏ& 0µÿÿÿçúÏ&#ß5Ñÿÿ ÿéôÏ&h&)(ÿÿÿéðÏ&'0²ÿÿ ÿèôÍ&Ø&&5ÒÿÿÿéõÏ&Þ&!¦0²ÿÿ ÿèóÑ&è.ÿÿÿéõÏ&.0²ÿÿÿéõÏ&&Þ5ÓÿÿÿéõÔ&'‹0²ÿÿ ÿéóÏ&(‡hÿÿ ÿçóÏ&(†ºÿÿ ÿèôÒ&Ø5Ôÿÿ ÿéôÏ&Øÿÿ ÿéöÑ&&Ä ÿÿ ÿéõÏ&'ç ÿÿÿéõÐ&!œ&Þ0²ÿÿÿèôÐ&%ñ0²ÿÿ ÿèïÏ& &h5Õÿÿ ÿéõÑ&5Öÿÿ ÿèôÐ&(ˆÿÿ ÿé÷Ð& &ì5×ÿÿ ÿéõÏ& .`ÿÿÿéñÏ&F0²ÿÿÿé÷Ð&&EFÿÿÿéóÏ&%õ0²ÿÿ ÿéóÏ&(‰hÿÿ ÿçñÏ& ,+ÿÿ ÿéôÏ&'ÿÿÿéöÑ&0²5Øÿÿ ÿé÷Ï& üÿÿÿéôÒ&Q0²ÿÿÿèôÑ&5Ùÿÿ ÿéðÑ&h,*ÿÿÿéôÐ&P0²ÿÿ ÿéñÏ&0"ÿÿ ÿçôÐ&5ÚÿÿÿéóÏ&Ê0²ÿÿÿéòÏ&0²5ÛÿÿÿçøÒ&Õ0²ÿÿ ÿéóÏ&—&“hÿÿÿéöÐ&&ÿÿ ÿçóÑ& 5Üÿÿ ÿçõÏ&þÿÿ ÿèòÏ&%[ÿÿÿéõÏ&Þ&0²5ÝÿÿÿêñË&(%kÿÿ ÿéóÏ&h%hÿÿÿéöÒ&)ø0²ÿÿ ÿéóÏ&5ÞÿÿÿéîÏ&0b&0²5ßÿÿ ÿéöÏ& 5àÿÿ ÿéôÐ&ã&â5áÿÿ ÿçôÏ&  ÿÿÿéøÐ&–&"ñÿÿÿèóÐ&@ÿÿ ÿéõÐ& 5âÿÿ ÿèñÏ& 5ãÿÿÿçóÏ&&%…÷ÿÿÿéóÐ&0²5äÿÿÿéôÏ&0²5åÿÿ ÿéôÏ&h&25æÿÿÿéøÑ&û0²ÿÿ ÿè÷Ï&hRÿÿ ÿèôÑ&Ø5çÿÿ ÿéûÏ&h&,Ý5èÿÿ ÿéóÏ& ,ÜÿÿÿéøÐ&.b&5éÿÿ ÿèòÐ&.a ÿÿ ÿêôÐ&(5êÿÿÿéöÐ&H0²ÿÿÿèòÐ&)00²ÿÿÿé÷Ï&0²5ëÿÿ ÿèôÏ& 5ìÿÿ ÿéñÏ&h5íÿÿ ÿèòÏ&h,}ÿÿ ÿéõÏ&h+,ÿÿ ÿéñÑ& %÷ÿÿ ÿéóÏ& 5îÿÿ ÿèòÑ& 7ÿÿ ÿéíÏ&£hÿÿÿéùÐ&5ïÿÿÿéîÏ&0²5ðÿÿ ÿçòÏ&h5ñÿÿ ÿéóÏ& Oÿÿ ÿéòÏ& (ŠÿÿÿéöÏ&5òÿÿ ÿéóÏ&h.cÿÿ ÿéóÏ& *lÿÿÿçõÐ&‡0²ÿÿÿêóÒ&(-ñÿÿÿçñÑ&%ø0²ÿÿ ÿæóÐ&h.=ÿÿÿéóÐ&-ÿÿÿéðÏ&0²0åÿÿÿçôÏ&5óÿÿÿéôÑ&0²5ôÿÿÿéòÏ&0²5öÿÿÿéûÐ&&,Ý5÷ÿÿÿéõÑ&±°ÿÿ ÿéõÑ&²ÿÿ ÿéöÏ&´³ÿÿ ÿéöÏ&³µÿÿÿéõÑ&T²ÿÿÿéõÏ&·ƒÿÿ ÿéõÏ&¸áÿÿ ÿéõÐ&¹ƒÿÿÿéõÏ&báÿÿ ÿéõÏ&eƒÿÿ ÿéõÑ&äáÿÿ ÿéõÏ&áxÿÿÿéöÐ&%5øÿÿÿéõÏ&ƒ ÿÿÿéõÏ& ¯áÿÿ ÿéõÑ&,Þáÿÿ ÿéõÐ&(‹áÿÿÿéõÏ&(Vàÿÿ ÿèõÏ&±ƒÿÿÿçõÏ&áâÿÿ ÿèõÏ&à Ûÿÿ ÿéõÑ&¶ÿÿ ÿéõÏ&áºÿÿÿéõÏ&èƒÿÿ ÿéõÏ&á]ÿÿ ÿéõÏ&à‰ÿÿÿéõÏ&á!øÿÿ ÿéõÏ&à –ÿÿÿéöÑ&³!Åÿÿ ÿèõÏ&á(Œÿÿ ÿéöÏ&%#ŠÿÿÿéõÐ&,íàÿÿÿèõÏ&á% ÿÿ ÿèöÏ&$â%ÿÿ ÿéõÏ&$áÿÿÿçõÏ&à#ÿÿ ÿéõÏ&€áÿÿÿéõÏ&™áÿÿ ÿçöÑ&%,ßÿÿÿéôÐ&&Æ'=ÿÿÿéöÏ&%dÿÿ ÿèõÐ&à%‰ÿÿ ÿéõÏ&à(ÿÿ ÿéõÏ&á5ùÿÿÿéõÑ&à0ãÿÿ ÿéöÏ&%(Žÿÿ ÿéõÏ&á Íÿÿ ÿéöÏ&%,àÿÿ ÿèöÏ&%5úÿÿÿéöÏ&S%ÿÿ ÿèõÏ&(ÿÿ ÿéóÐ&*5ÿÿÿ ÿïóÄ&}|ÿÿ ÿéóÐ&(NÿÿÿéòÏ&,á6ÿÿ ÿçõÏ&,â6ÿÿ ÿêõÏ&,â6ÿÿ ÿèóÇ&s6ÿÿÿèôÌ& w0ÿÿ ÿèôÊ&A6ÿÿÿéôÏ&E6ÿÿ ÿåóÊ& ‘ÿÿ ÿåðÏ&g‘ÿÿ ÿåóÐ&‘(°ÿÿ ÿåõË&‘`ÿÿÿçõÇ&UVÿÿ ÿåõÆ&‘ÿÿÿêöÏ&%!1ÿÿÿéöÐ&³1ÿÿ ÿåòÐ&‘0öÿÿ ÿåòÏ&&‘ÿÿ ÿåôÏ&‘ÁÿÿÿêíÑ&Ÿ1ÿÿ ÿåöÏ&‘—ÿÿ ÿåõÏ&‘»ÿÿÿêòÄ&©1ÿÿ ÿåóÐ&‘³ÿÿÿèôÏ& Ù1ÿÿ ÿåòÏ&‘-±ÿÿ ÿåõÏ&(‘ÿÿ ÿåöÈ&‘ÿÿ ÿåðÏ&‘+Uÿÿ ÿå÷Ï&‘Lÿÿ ÿåõÐ&‘#¡ÿÿ ÿåòÎ&‘(‘ÿÿÿêöÏ&'ñ1ÿÿÿçõÓ&)@1ÿÿ ÿåôÏ&'ï‘ÿÿ ÿåôÎ&‘ÔÿÿÿêòÃ&(’1ÿÿ ÿåõÈ&‘$ÿÿ ÿåôÅ&‘Éÿÿ ÿåóÏ&$‘ÿÿÿèòÐ&/M1ÿÿÿéóÏ&01ÿÿÿêóÏ&#_1ÿÿÿéóÑ&(“1ÿÿÿêïÏ&.„1ÿÿ ÿåóÐ&‘ÿÿÿè÷Ï&?&61ÿÿÿêïÏ&41ÿÿÿéòÈ&1ÿÿÿêôÈ& 1ÿÿÿé÷Ñ&&Å1ÿÿÿçóÑ&¡1ÿÿ ÿåõÐ&‘# ÿÿÿéöÏ&(”1ÿÿÿêõÏ&+,1ÿÿÿèõÇ&·Tÿÿ ÿèõÏ&# Tÿÿ ÿèõÍ&(•Uÿÿ ÿèõÏ&T6 ÿÿ ÿèõÐ&T6 ÿÿ ÿèôÏ&(–ÿÿÿ ÿèõÏ&wTÿÿ ÿèôÎ&/gÿÿÿ ÿèöÇ&˜6 ÿÿ ÿèõÏ&(—TÿÿÿèõÏ&(˜TÿÿÿèôÐ&ÿ6 ÿÿÿèöÏ&% ˜ÿÿÿèôÏ&ÿ6 ÿÿ ÿèõÐ&—TÿÿÿèöÇ&™˜ÿÿ ÿèõÐ&T6ÿÿ ÿè÷Ï&&&ÿÿ ÿíôÌ&/h6ÿÿ ÿèóÏ&+ 6ÿÿ ÿéóÏ&ÓÔÿÿ ÿçöÐ&‡(™ÿÿÿéðÐ&ÿÿÿé÷Î&21ÿÿÿì÷Í&pÿÿ&ÿëïÆ&3ÿÿÿçñÐ&45ÿÿÿê÷Ï&67ÿÿ ÿìòÑ&ÍÐÿÿÿìòÐ&ÐÎÿÿ ÿíôÐ&6ÿÿ ÿíôÐ&Ìÿÿÿê÷Ê&F6ÿÿ ÿéùÎ&ïðÿÿ ÿíõÐ&÷Yÿÿ ÿíôÐ&äYÿÿ ÿíôÐ&×YÿÿÿìîÓ&,ã6ÿÿ ÿíôÐ&Y6ÿÿ ÿíôÔ&YZÿÿ ÿíôÐ&Y6ÿÿ ÿèõÏ& Úÿÿ ÿèóÎ&(š6ÿÿ ÿèõÐ& - ,ÿÿÿéõÏ& ‡ÿÿ ÿíõÐ&Y6ÿÿ ÿéõÏ&#ŠÿÿÿéõÏ&"ŒÿÿÿëõÏ&$· -ÿÿÿì÷Ñ&(›6ÿÿ ÿéõÏ&$Uÿÿ ÿçõÑ&,äÿÿ ÿçõÏ&(Äÿÿÿì÷Ñ&(›6ÿÿ ÿéóÐ&&þÿÿ ÿéõÐ&,å -ÿÿ ÿéõÏ&(œÿÿÿêóÐ&[( ÿÿ ÿíôÐ&Y6ÿÿ ÿíôÓ&Y6ÿÿ ÿìõÑ&€ -ÿÿ ÿèõÏ&(ÿÿÿéõÏ&(žÿÿ ÿíôÓ&Y6ÿÿ ÿéõÏ&(Ÿÿÿ ÿéóË&(¡'ìÿÿÿçöÐ&Ø6"ÿÿÿæõÒ&[ÖÿÿÿçöÐ&ØXÿÿÿçöÐ&Ø6#ÿÿÿçöÐ&Ø6$ÿÿÿèõÒ&[ÕÿÿÿéõÒ&[6%ÿÿÿéõÒ&y[ÿÿÿèõÑ&\9ÿÿÿéõÒ&[6&ÿÿÿèõÑ&\6'ÿÿÿéõÒ&[6(ÿÿÿèõÒ&[[ÿÿÿéõÒ&[6)ÿÿÿèõÑ&\6*ÿÿÿæõÒ&[žÿÿÿéõÒ&[ºÿÿÿçõÑ&\6+ÿÿÿéõÒ&[6,ÿÿÿèõÑ&\6-ÿÿÿèõÑ&ª\ÿÿÿéõÒ&#n[ÿÿÿäõÒ&[äÿÿÿèõÑ&\6.ÿÿÿçóÐ&(¢6/ÿÿ ÿèõÑ&\Íÿÿ ÿèõÑ&\$Fÿÿ ÿèëÏ&Ú ÿÿ ÿéôÐ&žáÿÿ ÿéùÎ&  ÿÿ ÿéøÏ& ²áÿÿ ÿêóÍ&ÖÐÿÿ ÿçóÏ& Vÿÿ ÿèöÎ& ïÿÿ ÿéôÐ&+Ûžÿÿ ÿêîÍ&Öõÿÿ ÿéóÍ& ²%Œÿÿ ÿèõÍ& ²&(£65ÿÿ ÿéèÏ& (ÿÿ ÿèçÐ& (¤ÿÿ ÿèøÏ& (ÿÿ ÿèôÍ&Öƒÿÿ ÿèõÏ& (¥ÿÿ ÿèíÏ& (¦ÿÿ ÿéòÐ& ²(§ÿÿ ÿéõÑ&% ÿÿ ÿéêÏ& ²ãÿÿ ÿéóÎ& ¨ÿÿ ÿéðÎ& ¬ÿÿ ÿéòÎ& /jÿÿ ÿêöÍ&Ö66ÿÿ ÿéõÎ& («ÿÿ ÿèóÍ& ²(ªÿÿ ÿêôÍ&ÖÉÿÿ ÿéôÏ& ²(©ÿÿ ÿéðÍ& ²(¨ÿÿ ÿéöÏ& ²pÿÿ ÿéíÍ& ²%2ÿÿ ÿèõÏ& ²µÿÿ ÿèôÎ& ÿÿ ÿéôÎ& +Üÿÿ ÿéèÍ& ²(¬ÿÿ ÿéíÍ& ²67ÿÿ ÿéôÎ& wÿÿ ÿéòÏ&D ÿÿ ÿéìÏ& ²(­ÿÿ ÿèôÏ& ²(®ÿÿ ÿéõÏ& ²–ÿÿ ÿéöÏ& Cÿÿ ÿèóÎ& …ÿÿ ÿéóÎ& Áÿÿ ÿéìÐ& ÿÿ ÿéõÎ& ÿÿ ÿéòÏ&$—Öÿÿ ÿéêÍ& ²)ÿÿ ÿéöÏ& ²&ôÿÿ ÿéóÎ&® ÿÿ ÿéõÐ& ²(¯ÿÿ ÿéôÏ& ²Üÿÿ ÿèïÐ&*,çÿÿ ÿéøÐ& ²%ºÿÿ ÿéóÍ& ²aÿÿ ÿéòÍ& ²(&ÿÿ ÿçõÎ& `ÿÿ ÿéòÍ& ê ²ÿÿ ÿéòÏ&b ²ÿÿ ÿèõÏ& Ìÿÿ ÿéôÏ& ²Áÿÿ ÿéñÍ& ²-âÿÿ ÿéòÏ& mÿÿ ÿêòÏ&×Öÿÿ ÿêõÍ&Ö&óÿÿ ÿéñÏ&Ö&qúÿÿ ÿéìÏ& ²&Ç69ÿÿ ÿé÷Ï&Ö%¾ÿÿ ÿèóÐ& (±ÿÿÿéõÏ&(áòÿÿ ÿêðÍ&Ö(²ÿÿ ÿéðÏ& {ÿÿ ÿéëÏ&Öºÿÿ ÿéõÎ& 8ÿÿ ÿèõÏ& (³ÿÿ ÿéóÎ& (´ÿÿ ÿçòÏ&Ö^ÿÿ ÿèñÏ&(µ ÿÿ ÿèõÐ&(¶,æÿÿ ÿéëÐ& Óÿÿ ÿèôÎ& (·ÿÿ ÿèöÎ& &ÿÿ ÿéðÏ&Ö(¹ÿÿ ÿêñÍ&Ö(ºÿÿ ÿèñÍ&/n ²ÿÿ ÿéõÏ& ²Eÿÿ ÿéóÏ& ²&ÿÿ ÿéëÏ& ²(âÿÿ ÿéêÏ& (»ÿÿ ÿéôÏ&Ö(ãÿÿ ÿéõÏ& ²¤ÿÿ ÿéõÏ&¥ ²ÿÿ ÿéòÎ& Ýÿÿ ÿéñÍ&ÖÃÿÿ ÿêðÏ&Ö£ÿÿ ÿêôÐ&Ö,èÿÿ ÿéòÍ&Ö}ÿÿ ÿèöÐ& Âÿÿ ÿèòÍ& ²*Eÿÿ ÿçòÐ& ²(äÿÿ ÿéòÏ& ²8ÿÿ ÿééÏ& ²(¸ÿÿ ÿéèÍ& ²& ÿÿ ÿéòÐ& ²iÿÿ ÿéêÍ& ²0êÿÿ ÿéòÏ& ²¡ÿÿ ÿéóÏ& bÿÿ ÿéóÎ& +Çÿÿ ÿéêÍ& ²‰ÿÿ ÿé÷Í& ²òÿÿ ÿéçÍ& ²(åÿÿ ÿéëÎ& ¢ÿÿ ÿéóÍ& ²_ÿÿ ÿééÍ&/oÖÿÿ ÿèñÏ& (,ÿÿ ÿéìÏ& ²&¿6:ÿÿ ÿéçÑ& &ÿÿ ÿéóÍ& ²& ÿÿ ÿèõÏ&Ö–ÿÿ ÿéæÏ& ²(æÿÿ ÿéïÏ&Ö&  ñÿÿ ÿéïÏ& ²& ò6;ÿÿ ÿçóÏ&Ö(Æÿÿ ÿéòÍ& ²&õ*Ëÿÿ ÿéóÎ&Öÿÿ ÿéòÏ& ²*eÿÿ ÿéîÏ& ²/¼ÿÿ ÿéêÍ& ²(Åÿÿ ÿéóÍ& ²dÿÿ ÿéòÍ& ²Üÿÿ ÿçóÐ&Ö.dÿÿ ÿèôÏ& ”ÿÿ ÿçóÎ& '£ÿÿ ÿéòÐ& ²¤ÿÿ ÿèõÏ& ²*dÿÿ ÿéôÐ& ?ÿÿ ÿèôÏ& ÿÿ ÿéóÐ& gÿÿ ÿçñÍ& ²Éÿÿ ÿçóÑ&Ö(çÿÿ ÿéóÏ& ² Âÿÿ ÿéòÎ& %Eÿÿ ÿéäÍ& ²(Çÿÿ ÿéóÏ& Ôÿÿ ÿéóÐ&Ö&›šÿÿ ÿéóÏ&Ö&qÿÿ ÿèóÏ& ²ÿÿ ÿéõÍ& ²cÿÿ ÿçöÏ& ²`ÿÿ ÿèîÏ& (Èÿÿ ÿéõÐ& ´ ²ÿÿ ÿèòÄ&+Èÿÿ ÿèóÍ&(èÿÿ ÿéóÏ& ²(éÿÿ ÿéòÏ& (Éÿÿ ÿé÷Í& ²®ÿÿ ÿèöÏ& ² ÿÿ ÿçìÍ& ²6<ÿÿ ÿéóÏ&Ö/rÿÿ ÿéðÍ& ²*Õÿÿ ÿéõÎ& %"ÿÿ ÿçõÐ&( ²ÿÿ ÿéóÏ& ²0Ôÿÿ ÿèòÏ&A ²ÿÿ ÿéêÍ&#Öÿÿ ÿéëÍ&Öcÿÿ ÿéñÐ& ²ÿÿ ÿéóÍ& ²ÿÿ ÿéôÏ& ²Rÿÿ ÿéòÏ& ²*fÿÿ ÿèìÏ&&¥.ôÿÿ ÿéóÍ& ²Îÿÿ ÿééÐ& ²*Fÿÿ ÿéïÍ&ÖÃÿÿ ÿéóÎ& ²&ìíÿÿ ÿéòÐ& ²&MQÿÿ ÿèôË&Ñ.ôÿÿ ÿéóÍ& ²Öÿÿ ÿéóÏ&÷ ²ÿÿ ÿéóÏ& ²ÿÿ ÿéöÏ& ”ÿÿ ÿéóÐ&yÖÿÿ ÿéõÐ& ²aÿÿ ÿèôÏ&Ö0¼ÿÿ ÿéêÍ& ²©ÿÿ ÿè÷Ï& ²5ÿÿ ÿéñÐ& ²Øÿÿ ÿéóÏ&M&K ²ÿÿ ÿéöÐ& ²Ãÿÿ ÿéòÏ&§Öÿÿ ÿèõÍ& ²¨ÿÿ ÿçôÐ&Ö'ÿÿ ÿèïÍ& ²Åÿÿ ÿéôÏ& ²Âÿÿ ÿéøÍ& ²›ÿÿ ÿéòÍ& ²ÿÿ ÿé÷Í&¥ ²ÿÿ ÿèòÏ&&ÿÿ ÿêðÍ&Ö*Gÿÿ ÿéðÍ& ²*Hÿÿ ÿèèÏ& ²vÿÿ ÿèìÍ&.ô0Iÿÿ ÿéóÏ& ²äÿÿ ÿéìÑ& ²¡ÿÿ ÿéíÏ& ²wÿÿ ÿéóÍ& ²)ÿÿ ÿéñÏ& ²ìÿÿ ÿéòÍ& ²×ÿÿ ÿéèÏ& ¶ÿÿ ÿéõÏ& ² ·ÿÿ ÿêóÏ&Ö€ÿÿ ÿéôÑ& ²Üÿÿ ÿéõÍ& ²öÿÿ ÿèõÏ& ²Ñÿÿ ÿéíÏ&­ ²ÿÿ ÿèôÐ& ²oÿÿ ÿèòÐ& ²Ùÿÿ ÿæöÏ&p ²ÿÿ ÿéóÑ& ² ÿÿ ÿèòÏ& ²*IÿÿÿéñÏ&&ÿÿ ÿåôÑ& ²ÿÿ ÿèíÏ&¡ ÿÿ ÿèôÏ& ²’ÿÿ ÿèìÏ&&&$.ôÿÿ ÿèóÏ& ²Wÿÿ ÿçóÐ& ²&#ÿÿ ÿéìÐ&& ²³ÿÿ ÿéóÍ& ²²ÿÿ ÿéóÏ&°&¯Öÿÿ ÿçöÏ& ²Õÿÿ ÿèòÍ&± ²ÿÿ ÿèóÍ& ²Ôÿÿ ÿèóÏ&}&.ô6=ÿÿ ÿèôÑ&X ²ÿÿ ÿéõÍ&+Í ²ÿÿ ÿéöÍ& ²&,ÿÿ ÿèôÏ& ²&æ6>ÿÿ ÿéñÐ& ²&4ÿÿ ÿéôÏ&  ÿÿ ÿéòÍ& ²öÿÿ ÿéõÏ& ²‘ÿÿ ÿéïÐ&/v ²ÿÿ ÿéôÎ& &uÿÿ ÿêðÑ&Ö*Jÿÿ ÿêòÍ&Ö*Kÿÿ ÿéöÐ& ²&š6?ÿÿ ÿéóÍ& ²&:ÿÿ ÿèöÑ& &/ÿÿ ÿéóÍ& ²¬ÿÿ ÿè÷Í& ²"äÿÿ ÿéòÐ& ²*Lÿÿ ÿéóÎ& Šÿÿ ÿéëÐ& ²&ù›ÿÿ ÿé÷Í& ²Uÿÿ ÿé÷Í& ²&n6@ÿÿ ÿéñÏ& ²6Aÿÿ ÿéõÐ& ² ±ÿÿ ÿéóÍ& ²&)ÿÿ ÿçõÏ& ² Öÿÿ ÿèîÏ&N&l.ôÿÿ ÿéìÍ&%; ²ÿÿ ÿéóÐ&«Öÿÿ ÿèñÍ& ²ÿÿ ÿéóÏ& ².eÿÿ ÿæñÎ& êÿÿ ÿéñÎ& ñÿÿ ÿéóÐ& ²êÿÿ ÿéëÍ&à ²ÿÿ ÿéõÐ& ²&5ÿÿ ÿéõÎ& Ùÿÿ ÿèòË&4&.ô6Bÿÿ ÿéòÍ& ²«ÿÿ ÿéçÐ& ²&0ÿÿ ÿéïÎ& ²*Mÿÿ ÿéòÍ&ç&è ²ÿÿ ÿéôÐ&ê& ²šÿÿ ÿéëÍ& ²&1ÿÿ ÿéõÎ&Öéÿÿ ÿèõË&.ôÿÿ ÿéøÏ& ¹ ²ÿÿ ÿèôÏ& ²ëÿÿ ÿéôÍ& ²ìÿÿ ÿééÍ&Ö*Nÿÿ ÿéõÏ& ²/=ÿÿ ÿéïÏ& ²&8ÿÿ ÿêóÏ&Ö&Mjÿÿ ÿéôÐ& ²€ÿÿ ÿèôÐ& ²*˜ÿÿ ÿéòÏ& ²&6Cÿÿ ÿéòÏ& ²)ÿÿ ÿéóÏ&.f ²ÿÿ ÿçîÐ& ².gÿÿ ÿéöÏ&ù ÿÿ ÿèôÐ&Ü&+É.ôÿÿ ÿèìÍ& ²6Dÿÿ ÿèîÍ& ².hÿÿ ÿéòÐ& ²*Oÿÿ ÿéóÐ&Î&Ï ²ÿÿ ÿèìÎ&×& ²Öÿÿ ÿèìÎ&Ø& ²Öÿÿ ÿèöÍ&,ú&.i.ôÿÿ ÿêõÍ&Ö&( 6Eÿÿ ÿéòÐ&Ö*jÿÿ ÿèéÐ&Öjÿÿ ÿéïÏ&ÖÃÿÿ ÿèëÏ&à&.ô6Fÿÿ ÿéôÍ& ²(êÿÿ ÿèõÑ&e.ôÿÿ ÿêóÐ&¯Öÿÿ ÿéöÏ& ²(ëÿÿ ÿéîÍ& ²(ìÿÿ ÿè÷Ñ&ÖÏÿÿ ÿéëÍ& ²îÿÿ ÿéñÍ& ²­ÿÿ ÿèõÑ& ²&ÿÿ ÿêôÏ&Ö|ÿÿ ÿéòÎ&(í ²ÿÿ ÿé÷Ï& ²/õÿÿ ÿêøÍ&Öüÿÿ ÿéóÑ&ÖËÿÿ ÿéóÍ& ²þÿÿ ÿéõÐ& Ê ²ÿÿ ÿêîÎ&Ö0/ÿÿ ÿèóÏ&'—&™.ôÿÿ ÿèôÑ& ²00ÿÿ ÿèñÏ&Ö&ƒÿÿ ÿéïÍ&(@Öÿÿ ÿéõÍ& ².ÿÿ ÿééÎ& ²(îÿÿ ÿèöÏ&.ì.ôÿÿ ÿèëÐ& ²ÿÿ ÿéëÍ& ²&„ÿÿ ÿçôÍ& ²6Gÿÿ ÿééÍ&±Öÿÿ ÿèöÎ&.T.ôÿÿ ÿèõÏ&.ôÿÿ ÿèòÏ&Ö/yÿÿ ÿêôÐ&.lÖÿÿ ÿêñÎ&*PÖÿÿ ÿéòÏ& ²³ÿÿ ÿéíÏ& ²ÿÿÿ ÿèëÏ&(ï.ôÿÿ ÿéóÑ&ÖQÿÿ ÿéõÏ& ²(ðÿÿ ÿèëÏ&à&.ô6Hÿÿ ÿèîÍ& ²Èÿÿ ÿèóË&.k&.ô6Iÿÿ ÿèõÏ&.ó.ôÿÿ ÿçóÏ&© ²ÿÿ ÿéðÍ& ²6Jÿÿ ÿèóÏ& ²Üÿÿ ÿèïÏ& ²?ÿÿ ÿéöÏ& ²®ÿÿ ÿèõÐ&»&.ô6Kÿÿ ÿéóÏ&(ñÖÿÿ ÿêóÏ&Ö™ÿÿ ÿéôÑ& ²Èÿÿ ÿèóÏ&{ ²ÿÿ ÿéøÏ&„Öÿÿ ÿéñÎ& ².jÿÿ ÿéïÏ& ²°ÿÿ ÿèòÏ&&.ô6Lÿÿ ÿéôÐ& ²—ÿÿ ÿéòÐ&Ö(òÿÿ ÿêõÑ&Ö ÿÿ ÿéòÍ&Ö.Lÿÿ ÿèòÏ&¯ ²ÿÿ ÿéóÑ&[ ²ÿÿ ÿêòÏ&Ö&è6Mÿÿ ÿçëË&/z.ôÿÿ ÿéóÏ& ²&ÿÿ ÿêõÍ&Ö&†ÿÿ ÿéóÏ& ²(óÿÿ ÿéöÏ& ²*iÿÿ ÿèôÒ&_ ²ÿÿ ÿèõË& .ôÿÿÿéõÐ&(ô6Nÿÿ ÿêðÎ&Ö6Oÿÿ ÿéôÏ&Ö Eÿÿ ÿéòÏ& ²&‰ÿÿ ÿéóÏ&Ö²ÿÿ ÿéëÍ&Ï ²ÿÿ ÿéñÐ&.mÖÿÿ ÿèôÎ&Ö6Pÿÿ ÿèíË&.ô6Qÿÿ ÿéôÐ& ²6Rÿÿ ÿéõÍ&Ö(õÿÿ ÿèïÏ&Ö(÷ÿÿ ÿèöÏ& ²(öÿÿ ÿèòÏ& 6.ôÿÿ ÿêòÍ&.oÖÿÿ ÿéóÍ& ²6Sÿÿ ÿéñÏ& ².nÿÿ ÿéìÏ& ²&Úÿÿ ÿèïÐ& ²6Tÿÿ ÿèøÐ& ² .ÿÿ ÿéõÏ& ²"¯ÿÿ ÿéòÏ& ²/ÿÿ ÿèõÐ&!.ôÿÿ ÿéóÍ& ²"Bÿÿ ÿéõÏ& ²#„ÿÿ ÿéðÑ& ²!µÿÿ ÿèóÐ&•&è6Uÿÿ ÿèôÏ& ²$ÿÿ ÿéõÍ& ²#‹ÿÿ ÿéöÏ& ²"iÿÿ ÿèïÏ&*Š&.ô6Vÿÿ ÿèòË&#Û.ôÿÿ ÿéìÍ&q ²ÿÿ ÿéðÑ& ² ÿÿ ÿèîÍ& ²#?ÿÿ ÿéóÍ& ²1ÿÿ ÿèõÎ& ²@ÿÿ ÿéìÏ&& ²!ÿÿ ÿèèÍ&Ö"3ÿÿ ÿêõÏ&Ö6Wÿÿ ÿèóÏ&!z.ôÿÿ ÿèóÏ& ²!íÿÿ ÿéôÑ&Å& ²Æÿÿ ÿêòÏ&Ö"Ÿÿÿ ÿèôË&+Ê&+Ë.ôÿÿ ÿéñÎ& "Dÿÿ ÿèòÏ&(ø.ôÿÿ ÿèôÏ& ²!Þÿÿ ÿèòÎ&»&¹&º.ôÿÿ ÿèìÏ&/œ ²ÿÿ ÿèöÏ&_&.ô6Xÿÿ ÿéóÏ&"xÖÿÿ ÿèîÎ&Ö!–ÿÿ ÿêôÏ&!ýÖÿÿ ÿéóÍ&Ö!ÿÿ ÿèôÏ&.ô6Yÿÿ ÿéóÍ& ²"{ÿÿ ÿèõÑ&å&.ô6Zÿÿ ÿèóÏ&.p&.ô6[ÿÿ ÿèçË&!.ôÿÿ ÿéòÏ&Ö×ÿÿ ÿéóÑ& ²!Âÿÿ ÿèôÒ& ²6\ÿÿ ÿèóÏ&l&k.ôÿÿ ÿèõÏ&.q.ôÿÿ ÿéîÐ& ² »ÿÿ ÿèóÏ& ²‡ÿÿ ÿèòË&"J.ôÿÿ ÿéñÍ&Ö$\ÿÿ ÿäöÍ& ²"qÿÿ ÿéõÐ& ²6]ÿÿ ÿéòÐ& ²#£ÿÿ ÿèóÏ&0r.ôÿÿ ÿèëÏ&#¾&#½.ôÿÿ ÿèëÏ&r.ôÿÿ ÿèôÏ&#¼.ôÿÿ ÿèëÎ&#O.ôÿÿ ÿéñÍ&Ö"ÿÿ ÿéôÍ& ²-ÿÿ ÿéñÏ& h ²ÿÿ ÿéõÑ& 'ÿÿ ÿéóÏ&a ²ÿÿ ÿéíÍ& ² qÿÿ ÿéíÍ&Ö"ÿÿ ÿéóÍ&) ²ÿÿ ÿèöÐ&,ê&».ôÿÿ ÿéòÏ&m ²ÿÿ ÿéîÍ& ²Òÿÿ ÿéëÍ&¦ ²ÿÿ ÿéõÍ&Ö":ÿÿ ÿêóÏ&Ö!eÿÿ ÿèöÏ&,ë&%Ã.ôÿÿ ÿêõÍ&Ö •ÿÿ ÿçðÍ& ²"ÿÿ ÿéóÏ& ²6^ÿÿ ÿèòÍ& ²"¦ÿÿ ÿéòÏ& ²"·ÿÿ ÿéðÍ& ²,ìÿÿ ÿéôÐ& ²$†ÿÿ ÿéôÎ& ²"Zÿÿ ÿéóÏ& ²!¼ÿÿ ÿéðÍ& ²! ÿÿ ÿèöÏ&"Å.ôÿÿ ÿéòÐ&Ö6_ÿÿ ÿéóÍ& ²6`ÿÿ ÿéóÏ&K ²ÿÿ ÿèëÏ&!|&à.ôÿÿ ÿçòÏ&Ö"ÿÿ ÿèóÏ&,î&.ô6aÿÿ ÿèöÐ&&.ô6bÿÿ ÿèñÐ&#ï.ôÿÿ ÿèóË&.ô6cÿÿ ÿéöÎ& ²$;ÿÿ ÿéïÍ& ²*Qÿÿ ÿèôÏ&™&(ù.ôÿÿ ÿèòÑ&$.ôÿÿ ÿè÷Ë&Ê.ôÿÿ ÿéóÏ& ²$Çÿÿ ÿèõÐ& ²(úÿÿ ÿéòÎ& ²,ÔÿÿÿéðÑ&ð&€ÿÿ ÿéôÍ& ²$Óÿÿ ÿéòÏ& ²%ÿÿ ÿéóÐ& ²#ÿÿ ÿèõÐ&.ô6dÿÿ ÿéìÏ&Ö=ÿÿ ÿèñÐ&$4.ôÿÿ ÿèðË&"….ôÿÿ ÿèïË&*R.ôÿÿ ÿéòÏ& ²#ÿÿ ÿèóÐ&M&$z.ôÿÿ ÿèõÎ&$K.ôÿÿ ÿèóÏ& !& %.ôÿÿ ÿéìÍ&Ö"Õÿÿ ÿéöÏ& ²¶ÿÿ ÿèôÎ&,&.ô6eÿÿ ÿæõÍ& ²$ÿÿ ÿèôÐ& ²fÿÿ ÿéõÍ& ²Cÿÿ ÿèóÏ&,ï&.ô6fÿÿ ÿçíË&$í.ôÿÿ ÿéðÏ& ²(ûÿÿ ÿèñÐ&$o.ôÿÿ ÿèôÎ&% .ôÿÿ ÿèõÎ& ¢ÿÿ ÿéóÏ& ²$kÿÿ ÿéöÑ& ²$ÿÿ ÿèíË&.ô6gÿÿ ÿèñÏ&Ö6hÿÿ ÿèíÍ& ²(üÿÿ ÿéëÍ& ²$Sÿÿ ÿéòÍ& ²6iÿÿ ÿéôÍ& ²gÿÿ ÿéðÑ& ²#÷ÿÿ ÿèðÏ&&½&&¾.ôÿÿ ÿéñÏ&Ö,ðÿÿ ÿèôÏ&,ñ&.ô6jÿÿ ÿèïÑ&B.ôÿÿ ÿéôÏ& ²*pÿÿ ÿèöÒ& ²$%ÿÿ ÿéòÑ&*S ²ÿÿ ÿéðÍ& ²$ ÿÿ ÿéïÐ& ²(ýÿÿ ÿéòÐ& ²%ÿÿ ÿéïÍ& ²$Qÿÿ ÿéöÏ& ²$iÿÿ ÿèïÐ&(þ.ôÿÿ ÿèöÐ&Ë&Ê&.ô6kÿÿ ÿèóÏ& ²6lÿÿ ÿèòÏ&& ÿÿ ÿéóÏ&$Õ ²ÿÿ ÿéôÏ& ²-Þÿÿ ÿéìÍ& ²#(ÿÿ ÿêóÍ&$Öÿÿ ÿéñÐ&$©Öÿÿ ÿèóÎ& ²$¹ÿÿ ÿéöÏ&36mÿÿ ÿéôÑ& ²/~ÿÿ ÿéôÐ&& ²ÿÿ ÿéòÍ& ²6nÿÿ ÿèöÐ&/¯.ôÿÿ ÿçöÐ& ²,òÿÿ ÿéõÐ& ²$ôÿÿ ÿéñÐ&Ö øÿÿ ÿèôÐ&z&.ô6oÿÿ ÿèõÍ& ²/:ÿÿ ÿéóÏ&Öƒÿÿ ÿêòÏ&Ö6pÿÿ ÿèôÑ&‰&ˆ.ôÿÿ ÿéóÐ&$/ ²ÿÿ ÿçóÐ&ó&÷ ²ÿÿ ÿèðÐ& ²/Lÿÿ ÿèóÏ&|&˜.ôÿÿ ÿéöÐ&Ë& ²&ÊÌÿÿ ÿéöÐ& ²/Vÿÿ ÿéóÍ& ²(ÿÿÿ ÿçñÏ&°&±.ôÿÿ ÿèõÏ&,ó.ôÿÿ ÿéôÐ& ²6qÿÿ ÿçõÑ& ²'ºÿÿ ÿéîÑ&Ö'»ÿÿ ÿéôÑ& ²,ôÿÿ ÿèôÏ&,&.ôÿÿ ÿèñÏ& ²*Tÿÿ ÿèòÐ&µ&´.ôÿÿ ÿçðÑ&¶.ôÿÿ ÿéõÒ& ²¡ÿÿ ÿéõÏ& ²6rÿÿ ÿèñÓ& ²1ÿÿ ÿèôÓ&.ô6sÿÿ ÿèíÏ&).ôÿÿ ÿéôÏ&)ÿÿ ÿèõÒ&)Öÿÿ ÿéóÍ& ²&¡ÿÿ ÿéöÑ& ²6tÿÿ ÿéõÑ& ²)ÿÿ ÿé÷Ï& ²6uÿÿ ÿèöÏ&,ö&,õ.ôÿÿ ÿéöÏ& ²*æÿÿ ÿéôÑ& ²'·ÿÿ ÿçõÏ&+ .ôÿÿ ÿéîÍ& ²)ÿÿ ÿè÷Ð&,ö&.ô6vÿÿ ÿèñË&.ô6wÿÿ ÿèóÏ&S.ôÿÿ ÿèõË&,÷&.ô6xÿÿ ÿèðÑ&h.ôÿÿ ÿèìÏ&).ôÿÿ ÿèóÏ&).ôÿÿ ÿéöÍ& ²6yÿÿ ÿéóÏ& ²)ÿÿ ÿéóÍ& ²&šÿÿ ÿèòÏ&.ô6zÿÿ ÿçõÐ&Ö6{ÿÿ ÿêðÏ&Ö)ÿÿ ÿéöÏ&Ö%+ÿÿ ÿèóÑ&b.ôÿÿ ÿé÷Ð& ²) ÿÿ ÿèôË&Ü&Ý.ôÿÿ ÿçòÏ&.ô6|ÿÿ ÿèõÏ&.ô6}ÿÿ ÿéóÐ&&þÿÿ ÿèõÐ&,ø&.ô6~ÿÿ ÿèõÐ&.ô0]ÿÿ ÿèóÐ&0&'š.ôÿÿ ÿéóÍ&J ²ÿÿ ÿèõÐ& ² ÿÿ ÿèòÐ&#¿.ôÿÿ ÿçòÑ& ²) ÿÿ ÿéôÍ& ²) ÿÿ ÿéíÏ& ²-:ÿÿ ÿçöÏ& ²&%.ôÿÿ ÿèõË&,ù&,ú.ôÿÿ ÿéóÑ& ²&›ÿÿ ÿèôÐ&,&.ô6ÿÿ ÿéõÏ&y ²ÿÿ ÿèñÐ&&e& ²&gÿÿ ÿèôÏ&Þ&.ô6€ÿÿ ÿéñÍ&Ö6ÿÿ ÿèôÐ&&œ.ôÿÿ ÿé÷Î& ²&¢ÿÿ ÿéòÏ& ².rÿÿ ÿéôÑ& ²$Üÿÿ ÿéñÐ&j) ÿÿ ÿéñÍ& ²6‚ÿÿÿéóÏ&„6ƒÿÿ ÿèóÐ&.ô6„ÿÿ ÿéóÐ& ²) ÿÿ ÿçôÎ& ²6…ÿÿ ÿçòÐ&Ö6†ÿÿ ÿèõÐ&&,û.ôÿÿ ÿèóÏ&˜&.ô6‡ÿÿ ÿèóÏ&•&÷.ôÿÿ ÿçêÍ& ²%ëÿÿ ÿèöÏ&%ì.ôÿÿ ÿèõÍ& ²)ÿÿ ÿéôÐ& ²&§ÿÿ ÿèòÐ&).ôÿÿ ÿèîÏ&&&.ôÿÿ ÿéöÐ& ²ëÿÿ ÿéöÏ&0Ú ²ÿÿ ÿéóÏ& ²&©ÿÿ ÿéòÏ& ²%àÿÿ ÿèóË&.ô0Ùÿÿ ÿéôÏ&Ö&ªÿÿ ÿèöÒ&Ö6ˆÿÿ ÿèöÐ&*n&*m.ôÿÿ ÿèñÎ&).ôÿÿ ÿèôÍ&Ö’ÿÿ ÿèôÑ&,&.ô6‰ÿÿ ÿçòÏ& ²)ÿÿ ÿèíË&ð&.ô6Šÿÿ ÿèîË&ñ&.ô6‹ÿÿ ÿéôÏ& ²zÿÿ ÿéìÑ& ²šÿÿ ÿçòÍ&) ²ÿÿ ÿêíÐ&Ö6Œÿÿ ÿèôÏ&&.ô6ÿÿ ÿéòÍ& ²&«ÿÿ ÿèóË&i.ôÿÿ ÿèîÏ&J&.ô6Žÿÿ ÿèóÌ&).ôÿÿ ÿçôÏ&Ä ²ÿÿ ÿèðÐ&,ü&.ô6ÿÿ ÿèñÍ&,ýÖÿÿ ÿèóÏ&#&0.ôÿÿ ÿèñË&).ôÿÿ ÿéóÐ&&Öÿÿ ÿêòÏ&Ö6ÿÿ ÿèóË&.ô6‘ÿÿ ÿèôÎ&,þ.ôÿÿ ÿéóÐ&t ²ÿÿ ÿéóÐ&b ²ÿÿ ÿéôÏ& ²*Óÿÿ ÿèëË&.ô6’ÿÿ ÿèóË&.ô6“ÿÿ ÿéòÏ& ²²ÿÿ ÿèôÏ&,&.ô6”ÿÿ ÿêöÍ&Ö%ÿÿ ÿêòÏ&µÖÿÿ ÿèôÏ&&¬.ôÿÿ ÿèïÎ& ²&¨ÿÿ ÿèôÐ&,&.ô6•ÿÿ ÿèôÎ&,&.ô6–ÿÿ ÿéóÍ& ²)ÿÿ ÿèôÏ&Þ&.ô6—ÿÿ ÿèóÐ& ü&.ô/âÿÿ ÿè÷Ï& ü&'.ôÿÿ ÿèñÍ&Ö8ÿÿ ÿéôÍ& ²6˜ÿÿ ÿèòË&Ç&´.ôÿÿ ÿèòÐ&)&.ô6™ÿÿ ÿèóÎ&&;&.ô6šÿÿ ÿéñÏ&Ö)ÿÿ ÿèîË&ñ&.ô6›ÿÿ ÿèîË&ñ&.ô6œÿÿ ÿçíÑ&).ôÿÿ ÿèôÏ& ²6ÿÿ ÿèøË&&±.ôÿÿ ÿèòË&).ôÿÿ ÿéïÏ& ²)ÿÿ ÿèõÐ&.ô6žÿÿ ÿéñÍ& ²)ÿÿ ÿèóÎ&-.ôÿÿ ÿçñË& ¨& ©.ôÿÿ ÿéóÐ&) ²ÿÿ ÿéôÐ&& ²6ŸÿÿÿêíÑ&6 ÿÿ ÿæôË&.ô6¡ÿÿ ÿèòÏ&).ôÿÿ ÿçõÑ& ²/åÿÿ ÿèòÐ&.ö.ôÿÿ ÿéõÒ&Ö&Ìÿÿ ÿéôÐ& ².õÿÿ ÿé÷Ñ&½ ²ÿÿ ÿèôË&(&.ô6¢ÿÿ ÿéóÏ& ²,ÿÿÿ ÿèöÑ& ²jÿÿ ÿéõÍ& ²&Ëÿÿ ÿèôÑ&Þ&.ô6£ÿÿ ÿêóÒ&´Öÿÿ ÿèñÑ&.ô6¤ÿÿ ÿèóÑ&&Í.ôÿÿ ÿêôÑ&Ö)ÿÿ ÿèòÏ&.Ô.ôÿÿ ÿèòÏ& ²/cÿÿ ÿéôÏ& ²&Ü6¥ÿÿ ÿèóÏ&.ô.äÿÿ ÿèôÏ&ã&å&,.ôÿÿ ÿéðÍ&­ ²ÿÿ ÿèôÑ& ²-ÿÿ ÿçôÏ& ²&Êÿÿ ÿèôË&Ü&.ô6¦ÿÿ ÿèöÐ& ²&­ÿÿ ÿèñÏ&).ôÿÿ ÿèôÏ&.ô6§ÿÿ ÿèóÏ&˜&.ô6¨ÿÿ ÿéòÏ& ²) ÿÿ ÿéõÏ& ².ÿÿ ÿéóÏ&!d/ôÿÿ ÿéôÏ&"& ²6©ÿÿ ÿéìÍ&)! ²ÿÿ ÿéõÍ&)" ²ÿÿ ÿçóÐ& «& ².ôÿÿ ÿèóÏ&Ž& ³.ôÿÿ ÿèøË&)#.ôÿÿ ÿèòÍ& ²&Ïÿÿ ÿéñÐ& ²)$ÿÿ ÿéóÏ& ².sÿÿ ÿèñÏ&)%.ôÿÿ ÿèôÏ&¨.ôÿÿ ÿèöÐ&.ô6ªÿÿ ÿèòÐ&6.ôÿÿ ÿèõÑ&%v.ôÿÿ ÿèñÑ&-.ôÿÿ ÿèñË&&Ð.ôÿÿ ÿèòÍ&.{ ²ÿÿ ÿèöÐ&µ&.ô6«ÿÿ ÿèóÏ&¾.ôÿÿ ÿéõÑ&.t ²ÿÿ ÿèóÐ&.ô&/â6¬ÿÿ ÿèòÐ&.ô6­ÿÿ ÿèõÏ&)&.ôÿÿ ÿèòÐ&)'.ôÿÿ ÿèôÏ&)(.ôÿÿ ÿêóÏ&Ö.uÿÿ ÿèõÐ& !&* .ôÿÿ ÿèóË&)).ôÿÿ ÿèóÐ&˜&—.ôÿÿ ÿçôÑ&Ö&Îÿÿ ÿèôÑ&(&.ô6®ÿÿ ÿèöÏ&.ô6¯ÿÿ ÿèñÏ&.ô6°ÿÿ ÿçôÑ&.ô6±ÿÿ ÿèíË&ð&.ô6²ÿÿ ÿéóÐ&)*6³ÿÿ ÿèõÑ&ë&.ô6´ÿÿ ÿèõÏ&)+&.ô6µÿÿ ÿèóÐ& ²@ÿÿ ÿéôÐ& ²&Òÿÿ ÿéòÍ& ²-ÿÿ ÿçôÍ& ²),ÿÿ ÿèõÑ&)..ôÿÿ ÿéôÐ& ²&6¶ÿÿ ÿéòÏ& ²%Yÿÿ ÿçñÐ& ²)-ÿÿ ÿèôÒ& ²%ƒÿÿ ÿèðÒ& ²6·ÿÿ ÿè÷Ñ&.ô6¸ÿÿ ÿéôÐ& ²6¹ÿÿ ÿèñÐ&--.ôÿÿ ÿèòÐ&%U.ôÿÿ ÿçóÏ&)/.ôÿÿ ÿèïÏ& &.ô6ºÿÿ ÿè÷Ë&%d.ôÿÿ ÿèôÏ&(&.ô6»ÿÿ ÿçñÏ&Ž& ©.ôÿÿ ÿèìË&-.ôÿÿ ÿèòÐ&)1.ôÿÿ ÿéøÑ& ²Êÿÿ ÿèøÏ&,c&.ô6¼ÿÿ ÿèôÐ&.ô6½ÿÿ ÿèöÐ&.ô6¾ÿÿ ÿèôÏ&&$ .ôÿÿ ÿé÷Í& ²ÿÿ ÿèñÑ&#&.ô6¿ÿÿ ÿèóÏ&.ô6Àÿÿ ÿéòÏ&& ²6Áÿÿ ÿèôÏ&.ô6Âÿÿ ÿèôÐ&.ô6Ãÿÿ ÿèôÏ&.ô6Äÿÿ ÿèðÐ& ². ÿÿ ÿèôÏ&2&1.ôÿÿ ÿèöÐ&)2.ôÿÿ ÿçõÐ&)3& ².ôÿÿ ÿçñÎ& ©&.ô6Åÿÿ ÿèõÐ&#T6Æÿÿ ÿèôÍ&(&.ô6Çÿÿ ÿç÷Ì& ª&i.ôÿÿ ÿéïÏ&Ö6Èÿÿ ÿèõË&+Ó&.ô6Éÿÿ ÿçñË&.ô6Êÿÿ ÿèõÑ&&.ô6Ëÿÿ ÿèïÐ&)4.ôÿÿ ÿéòÍ&- ²ÿÿ ÿåõÑ&\& ²6Ìÿÿ ÿæóÍ& ²6Íÿÿ ÿè÷Î&)6.ôÿÿ ÿéõÎ& ²*„ÿÿ ÿèñÑ&)7.ôÿÿ ÿèôÐ&.ô6Îÿÿ ÿèñÑ&)8.ôÿÿ ÿèêË&ò&.ô6Ïÿÿ ÿçôÑ&1&.ô6Ðÿÿ ÿèôË&.ô6Ñÿÿ ÿèêË&ò&.ô6Òÿÿ ÿèòÎ&.v.ôÿÿ ÿéôÏ&)9 ²ÿÿ ÿéóÍ& ²):ÿÿ ÿéóÍ& ²6Óÿÿ ÿéòÏ& ²6Ôÿÿ ÿéòÍ& ²);ÿÿ ÿèóÏ&)“&.ô6Õÿÿ ÿèòË&.ô6Öÿÿ ÿèìÏ&)<.ôÿÿ ÿèóË&&.ôÿÿ ÿèóÏ&.ô6×ÿÿ ÿèóÍ&&Ö.ôÿÿ ÿçòÐ&&×.ôÿÿ ÿèôÐ&}&.ô6Øÿÿ ÿèõÒ&.ô6Ùÿÿ ÿèõÒ&&Œ.ôÿÿ ÿèôÐ&~&}.ôÿÿ ÿèóÒ&.w.ôÿÿ ÿèïÍ& ²&ó6Úÿÿ ÿèöË&&.ôÿÿ ÿèìÌ&.ô6Ûÿÿ ÿèíÌ&.ô6Üÿÿ ÿèòÐ&.>.ôÿÿ ÿèôÐ&-.ôÿÿ ÿçñÑ&)=.ôÿÿ ÿæöÐ&.ô6Ýÿÿ ÿèöÐ&.ô6Þÿÿ ÿæôÒ&#U&#V#Wÿÿ ÿç÷Ë&i&.ô6ßÿÿ ÿèöÑ&.ô6àÿÿ ÿèõÎ&%&%.ôÿÿ ÿçóÐ&.ô6áÿÿÿçöÁ&%Æ6ãÿÿ ÿêóÏ&mÑÿÿ ÿçëÏ&mÈÿÿ ÿêóÏ&mÊÿÿ ÿèóË& 6äÿÿ ÿêõÏ&ymÿÿÿèõÒ&%Ç ÿÿ ÿêóÏ& µ²ÿÿ ÿéìÏ&mYÿÿ ÿèóÐ&Æ ÿÿÿçôÑ&0%Èÿÿ ÿéêÏ&¾ µÿÿ ÿéíÏ&% %9ÿÿ ÿéòÏ& µ&yÿÿ ÿéöÏ&ÕÙÿÿ ÿéóÏ&)ëÿÿ ÿèóÇ& Iÿÿ ÿéõÏ& µRÿÿ ÿêìÏ&m(¾ÿÿ ÿéõÑ& µ²ÿÿ ÿèóÑ&3 ÿÿ ÿèôÏ& µ%Éÿÿ ÿèôÏ&% (/ÿÿ ÿéôÏ&”mÿÿ ÿéöÏ&ëBÿÿ ÿéòÏ& µíÿÿ ÿêõÏ& µÿÿ ÿéñÏ&ñëÿÿ ÿèóÑ& 6åÿÿÿèóÏ&V%Áÿÿ ÿèìÏ&% %Âÿÿ ÿêóÏ& µ'Fÿÿ ÿéòÏ&è% ÿÿ ÿéôÏ&!m% ÿÿ ÿéêÏ&j% ÿÿ ÿçõÏ&‡ µÿÿ ÿéóÏ&ëÔÿÿ ÿéóÏ&Á% ÿÿ ÿêôÐ& µøÿÿ ÿéíÏ&ë%ÊÿÿÿêòÐ&)>LÿÿÿåõÏ&¦ÿÿ ÿéôÏ&ë%Ëÿÿ ÿéöÏ&% %!ÿÿ ÿéõÏ& µ!ÿÿ ÿêóÏ& µ'Ëÿÿ ÿéóÐ& µUÿÿÿêòÏ&L6æÿÿ ÿéòÏ& µÎÿÿ ÿéõÏ&ë/+ÿÿ ÿçôÏ&%Ì µÿÿ ÿéõÏ&ë3ÿÿ ÿêóÏ& µ%Íÿÿ ÿéõÏ&ë ÿÿ ÿéñÏ&% 6çÿÿ ÿéõÏ&% %"ÿÿ ÿéôÏ&Àëÿÿ ÿéóÏ&ë&ØÙÿÿ ÿéöÑ&ë“ÿÿÿêòÍ&L&®¯ÿÿ ÿéðÏ& µ¶ÿÿ ÿéõÑ&O6èÿÿ ÿéóÏ&â% ÿÿ ÿèóË& 6éÿÿ ÿé÷Ï&ëEÿÿ ÿéõÏ&sëÿÿ ÿéóÏ&~% ÿÿ ÿéîÏ&ë.ÿÿ ÿéôÐ&7 µÿÿ ÿèïÏ& µ1ÿÿ ÿéõÐ& µ\ÿÿ ÿéôÑ& ¸ µÿÿ ÿêîÏ&!Ž µÿÿ ÿêõÏ& µÜÿÿ ÿèõÈ&-tÿÿ ÿé÷Ï&í&ìëÿÿ ÿéëÏ&ë ³ÿÿ ÿéòÏ&{% ÿÿÿéóÑ&32ÿÿ ÿéòÐ&ëÙÿÿ ÿêóÏ& µÿÿ ÿéóÏ&“% ÿÿ ÿèõÏ&¼% ÿÿ ÿéôÐ&ëUÿÿ ÿèóÏ& µVÿÿÿåõÏ&ð&ÿÿ ÿç÷Ï&ëÿÿ ÿèõÐ&t&(6êÿÿ ÿéòÐ&% *ÿÿ ÿéóÐ&³% ÿÿ ÿéíÏ&ë%<ÿÿ ÿéðÒ&ë0íÿÿ ÿéòÏ&©% ÿÿ ÿéôÏ&.ù%=ÿÿ ÿéõÏ&’ëÿÿ ÿéõÐ&ëƒÿÿ ÿèõÑ&ópÿÿ ÿèõÐ& µLÿÿ ÿéõÏ&ëÿÿ ÿéöÏ&% %#ÿÿ ÿéôÏ&ë%$ÿÿ ÿç÷Ï&o&nøÿÿ ÿéöÏ&X% ÿÿ ÿéõÏ&ò&óôÿÿ ÿèõË&t6ëÿÿ ÿééÏ& µÿÿ ÿæóÆ&- 6ìÿÿ ÿéôÏ&/øÿÿ ÿéóÏ&ò6íÿÿ ÿçõÑ& % ÿÿ ÿèóÐ&Œ% ÿÿÿêóÏ&L6îÿÿ ÿéóÏ&ëŠÿÿ ÿé÷Ñ& µ,Íÿÿ ÿéîÑ& µ ¶ÿÿ ÿéõÐ&ë®ÿÿ ÿéíÐ&ë&ÙÕÿÿ ÿèñÏ&ë%Ïÿÿ ÿèõÑ&,pÿÿ ÿéòÐ&ë%Ðÿÿ ÿèóÏ&b& %ÑÿÿÿèíÉ&6ïÿÿ ÿéôÏ&% (mÿÿ ÿéóÑ&% %%ÿÿ ÿéóÏ&ë%Óÿÿ ÿéóÏ&ë1ÿÿ ÿéóÐ&ë%Ôÿÿ ÿèõÄ&t6ðÿÿ ÿéöÏ&ë"Hÿÿ ÿèîÏ&ë1ÿÿ ÿçöÐ&ø&)?#‚ÿÿ ÿéòÏ&ë Yÿÿ ÿéíÏ& µ%ÕÿÿÿêóÑ&36ñÿÿ ÿéõÏ&d*ÿÿ ÿéñÏ&O6òÿÿ ÿéôÏ&›&·% ÿÿ ÿèóÏ&ë%Öÿÿ ÿéóÏ&ëÙÿÿÿéòÏ&0ú0üÿÿÿêõÐ&/0üÿÿ ÿéñÏ&ë!aÿÿ ÿèöÏ&ø&#"#!ÿÿ ÿéöÏ& ‹ëÿÿ ÿéóÏ&*!ÿÿ ÿéõÏ&ëØÿÿ ÿéòÏ&ë"žÿÿ ÿêóÏ& µ8ÿÿ ÿéõÑ&% "±ÿÿÿèöÏ&0ü&á%Ãÿÿ ÿèõÐ&#¦tÿÿ ÿè÷Ï&!ßëÿÿ ÿéóÐ&"ø% ÿÿ ÿèóÏ&ˆ% ÿÿÿçóÏ&O- ÿÿ ÿèõÊ&Ï&tÐÿÿ ÿèòÏ&øŸÿÿ ÿéöÐ&ë!ÿÿ ÿéôÏ&ëÿÿ ÿéóÊ&ò6óÿÿ ÿéôÏ&ë6ôÿÿ ÿèïÏ&!ëÿÿ ÿèõÐ&t6õÿÿ ÿèíÏ&"4% ÿÿ ÿèõÏ&ë0ýÿÿ ÿéôÏ&ë0tÿÿÿè÷Ï&å&æ ÿÿ ÿéõÏ&ë#Iÿÿ ÿé÷Ï&ë"cÿÿ ÿéõÏ&ë£ÿÿÿêòÏ&{&L6öÿÿ ÿèõÆ&{&ztÿÿ ÿèóÏ&#;% ÿÿ ÿèõÏ&x% ÿÿ ÿéóÏ& µ&Žÿÿ ÿçõÏ&ëYÿÿ ÿèõÏ&3pÿÿ ÿéñÏ&%×ëÿÿ ÿåõÏ&"Æÿÿ ÿéîÏ&*&JKÿÿ ÿèïÐ&ë0¹ÿÿ ÿéöÏ&ë&Jâÿÿ ÿéôÑ&ËÐÿÿ ÿéóÏ&ø#|ÿÿ ÿéöÏ&ë$Rÿÿ ÿéïÏ&ë6÷ÿÿ ÿé÷Ï&ë$gÿÿ ÿéõÑ&ë$‰ÿÿ ÿéõÏ&ëÿÿ ÿéõÏ&% )iÿÿ ÿéòÐ&ø% ÿÿ ÿèõÊ&Ñ&t&Ò6øÿÿ ÿèõÏ&ë¢ÿÿ ÿèõÒ&t/ìÿÿ ÿèõÏ&p6ùÿÿ ÿèóÏ& áëÿÿ ÿéóÏ&ò&Þÿÿ ÿéöÏ&ëNÿÿ ÿéôÏ&ë1ÿÿ ÿèõÐ& ëÿÿ ÿéñÏ&ë%ÿÿ ÿèõÄ&Ó&Ôtÿÿ ÿéôÏ&ë/9ÿÿ ÿéóÏ&†% ÿÿ ÿêöÑ&Ë%Øÿÿ ÿêôÑ&ø%Ùÿÿ ÿêõÏ&.ù%Úÿÿ ÿèõÑ&Wtÿÿ ÿéîÏ&ë%Ûÿÿ ÿçóÏ&.ù+ÿÿ ÿêôÏ&.ù.ûÿÿ ÿéòÏ&ë&E6úÿÿ ÿêõÏ&*&Þ6ûÿÿ ÿåöÏ&6üÿÿ ÿéöÏ&Õ&»¼ÿÿ ÿèõÐ&/Wëÿÿ ÿèðÏ&*&á%Üÿÿ ÿèõÑ&t6ýÿÿ ÿé÷Ð&ë%Ýÿÿ ÿéôÏ&ë#~ÿÿ ÿèùÏ&è&épÿÿ ÿéõÌ&5&6!ÿÿ ÿéôÏ& µ%Þÿÿ ÿéòÏ&ë”ÿÿ ÿèôÏ&*0ØÿÿÿèñÑ&%ä/ ÿÿ ÿéõÏ&ëšÿÿ ÿçôÏ&ë%ßÿÿ ÿéòÏ&.ù1 ÿÿÿéöÏ&F0üÿÿ ÿçòÏ&ë%âÿÿ ÿéòÏ&ëÿÿ ÿéóÏ&ø†ÿÿ ÿéóÏ&ë%ãÿÿ ÿèõÐ&ëìÿÿÿèôÏ&çèÿÿ ÿèôÒ&éçÿÿ ÿéõÏ&ë%åÿÿÿéóÒ&%æ0üÿÿ ÿêöÏ&*%ÿÿ ÿèõÑ&Ë&%çÿÿ ÿèôÑ&Ø6þÿÿ ÿéõÏ&ë%èÿÿ ÿéôÏ&ë%éÿÿ ÿçìÏ&ë%êÿÿ ÿéôÏ&ë%'ÿÿ ÿèôÏ&ë%(ÿÿ ÿéõÏ&% %&ÿÿ ÿèõÏ&t6ÿÿÿ ÿéóÏ&% %íÿÿ ÿéðÏ&ø&ú7ÿÿ ÿéðÏ&ú&ø7ÿÿ ÿåõÏ&…&"ÿÿÿçõÏ&- - ÿÿ ÿéöÇ&Õ7ÿÿ ÿéîÏ&Ë&0b7ÿÿÿéðÏ&& 7ÿÿ ÿèöÑ&ë%îÿÿ ÿéôÏ&Ø% ÿÿ ÿéóÑ&òÿÿ ÿéòÏ&ë%ïÿÿ ÿé÷Ï&ëöÿÿ ÿéôÐ&ë%ðÿÿ ÿêõÏ&ø&Þ!¦ÿÿÿèôÐ&%ñ0üÿÿ ÿéôÏ&*&)(ÿÿ ÿéñÏ&ë'ÿÿ ÿèóÐ& 7ÿÿ ÿèôÏ&ë%òÿÿ ÿé÷Ñ&ë.£ÿÿ ÿèóÑ&ë&&%ÿÿ ÿéöÒ&ë*€ÿÿ ÿêóÏ&*.øÿÿÿéðÎ&%ó0üÿÿÿåõÇ&7ÿÿ ÿèõÐ&ë¢ÿÿ ÿéôÏ&ë%ôÿÿ ÿéóÏ&ë%õÿÿ ÿèõÐ&+âpÿÿ ÿéóÏ&*Êÿÿ ÿéöÏ&*7ÿÿ ÿêôÐ&*Pÿÿ ÿéöÏ&Õ7ÿÿ ÿêõÐ&*- ÿÿ ÿéñÏ&ë%Rÿÿ ÿé÷Ï&ø÷ÿÿ ÿèõÏ&p&l7 ÿÿ ÿêòÐ&Ë-.ÿÿ ÿèôÑ&ë%„ÿÿ ÿèóÐ&*@ÿÿ ÿéøÑ&ûËÿÿ ÿéðÏ&Ë&ú7 ÿÿ ÿèôÏ&*%öÿÿ ÿéñÑ&ø%÷ÿÿ ÿéöÏ&**…ÿÿ ÿéíÏ&*–ÿÿ ÿéòÏ&ë- ÿÿ ÿé÷Ñ&0û7 ÿÿ ÿéóÏ&*Oÿÿ ÿèóÐ&Ç&‰7 ÿÿ ÿçñÑ&*%øÿÿ ÿæóÐ&*.=ÿÿ ÿêóÏ&*7 ÿÿ ÿçöÐ&*7ÿÿ ÿéöÑ&lkÿÿ ÿæõÏ&ÿÿ ÿéõÏ&U&VWÿÿÿòõÌ&Ðÿÿ ÿèôÏ&%ÉKÿÿ ÿéóÏ&¶$'ÿÿ ÿéóÏ&¹Kÿÿ ÿèöÒ&$'$&ÿÿ ÿéõÏ&$''çÿÿ ÿéòÏ& Âÿÿ ÿèóÏ& ÿÿ ÿéðÏ& |ÿÿ ÿçõÓ&#Œ)@ÿÿ ÿéóÏ& )ÿÿ ÿèöÏ&'! ÿÿ ÿèöÏ&#ŒÇÿÿ ÿèõÏ& ¯ÿÿ ÿéñÑ& $”ÿÿ ÿèôÒ&)A7ÿÿ ÿçôÏ&Å#ŒÿÿÿêìÐ&)D)Cÿÿ ÿéóÏ&xMÿÿ ÿéèÐ&ëxÿÿÿéîÐ&ö%ÿÿ ÿéôÏ&z·ÿÿ ÿéõÏ&xyÿÿÿéíÑ&0%™ÿÿ ÿéìÏ&œ¬ÿÿ ÿéòÏ&z%¡ÿÿ ÿèôÏ&xÿÿ ÿéðÏ&{zÿÿ ÿéóÏ&%š¬ÿÿ ÿèîÏ&¬%›ÿÿÿèòÐ&r&%¤%œÿÿ ÿéóÏ&¬ÿÿ ÿéëÏ&z)ÿÿÿ ÿéóÏ&¬%£ÿÿ ÿèôÏ&%¦ÿÿ ÿéòÏ&¬%§ÿÿÿèîÏ&%¤7ÿÿ ÿèõÐ&ñ%¥ÿÿ ÿéôÏ&`zÿÿ ÿéòÑ&z7ÿÿ ÿéóÐ&zJÿÿ ÿéòÏ&zÒÿÿ ÿèôÏ& 0Ýÿÿ ÿéòÏ&©¬ÿÿÿèîÒ&%¬7ÿÿ ÿéóÏ&¬ýÿÿ ÿéóÏ&zEÿÿ ÿèðÉ&A7ÿÿÿèîÏ&³&%¥7ÿÿÿèîÏ& &%¥7 ÿÿ ÿéóÏ&z&Çÿÿ ÿéïÏ&z%­ÿÿ ÿéòÏ&¬%©ÿÿ ÿéôÏ&%¨7!ÿÿ ÿéõÐ&z%ªÿÿ ÿéóÑ&¬%%ÿÿ ÿèöÏ&z%«ÿÿ ÿçóÏ&¬ÿÿ ÿèöÎ& ‹ ÿÿ ÿèóÏ& 0sÿÿ ÿèôÏ&%¬7"ÿÿ ÿèïÐ&z0¹ÿÿ ÿéôÐ&•&–zÿÿ ÿéõÏ&¬";ÿÿ ÿèòÐ& % ÿÿ ÿéîÑ&z%®ÿÿ ÿéóÐ&z$bÿÿÿèîÏ&ø&%¥ ÿÿ ÿéðÑ&z‡ÿÿ ÿéõÑ&$7#ÿÿ ÿéôÏ&%—&»¼ÿÿ ÿçóÐ&ÿ&þ7$ÿÿ ÿéóÏ&z´ÿÿ ÿéõÏ&z%´ÿÿÿéîÎ&%—7%ÿÿ ÿèöÐ&z%µÿÿ ÿéòÏ&z,¿ÿÿ ÿçôÏ&zÅÿÿ ÿç÷Ò&z±ÿÿ ÿèôÏ&z7&ÿÿ ÿéòÐ&z-/ÿÿ ÿéöÏ&z%eÿÿ ÿèôÏ&)E%öÿÿ ÿèîÐ&%¬7'ÿÿÿéõÑ&%—7(ÿÿ ÿèöÏ& 7)ÿÿ ÿéöÏ&ª7*ÿÿ ÿèïÑ&%»7+ÿÿ ÿéñÐ&nßÿÿ ÿéõÐ&$nÿÿ ÿçøÐ&n%¼ÿÿ ÿéòÐ&n}ÿÿ ÿéóÐ&n¨ÿÿ ÿéõÐ&nmÿÿ ÿèöÏ& ÿÿ ÿéóÐ&n¿ÿÿ ÿèïÐ&n;ÿÿ ÿéòÐ&mnÿÿ ÿéòÐ&obÿÿ ÿéñÐ&p'Bÿÿ ÿéöÐ&oCÿÿ ÿéìÐ&nÿÿ ÿéöÏ&$'ÿÿ ÿèôÐ&oÊÿÿ ÿéôÐ&wnÿÿ ÿéóÐ&o)ÿÿ ÿèóÐ&%Ánÿÿ ÿéñÐ&n®ÿÿ ÿéëÐ&n ÿÿ ÿèðÐ&n& ÿÿ ÿéòÐ&o0iÿÿÿèïÈ&--ÿÿ ÿèôÐ&n,,ÿÿ ÿéóÐ&n%£ÿÿ ÿéôÐ&nøÿÿ ÿèìÐ&n&ÿÿ ÿè÷Ð&ñnÿÿ ÿçõÐ&oYÿÿ ÿéòÐ&o0°ÿÿ ÿéðÐ&oÃÿÿ ÿéóÐ&p&›šÿÿ ÿéëÐ&nWÿÿ ÿçóÐ&n%Ÿÿÿ ÿéòÐ&oÝÿÿ ÿéòÐ&nèÿÿ ÿéèÐ&n%žÿÿ ÿéòÐ&¡oÿÿ ÿéòÐ&nSÿÿ ÿéõÐ&pÿÿÿ ÿéöÐ&o$ÿÿ ÿèôÐ&nPÿÿ ÿéõÐ&o\ÿÿ ÿé÷Ð&oBÿÿ ÿéòÐ&n0Õÿÿ ÿèõÐ&oÏÿÿ ÿéöÐ&oøÿÿ ÿéõÐ&n7,ÿÿ ÿéîÐ&o.ÿÿ ÿéòÐ&o±ÿÿ ÿéöÐ&oŽÿÿ ÿæöÐ&n³ÿÿ ÿéóÐ&p&,ï7-ÿÿ ÿèóÐ&nVÿÿ ÿéóÑ&o!ÿÿ ÿèôÐ&o&]7.ÿÿ ÿéôÐ&o&FEÿÿ ÿéõÐ&pãÿÿ ÿéóÐ&oÿÿ ÿéòÐ&o*ÿÿ ÿééÐ&nÿÿ ÿéóÐ&oìÿÿ ÿçõÐ&o Õÿÿ ÿéòÐ&n0Žÿÿ ÿçõÑ&n ÿÿ ÿèõÐ&nLÿÿ ÿèôÐ&néÿÿ ÿéóÐ&p0qÿÿ ÿéõÐ&pÿÿ ÿéöÐ&p&`_ÿÿ ÿéëÐ&o&–àÿÿ ÿéõÐ&pÈÿÿ ÿèòÐ&p²ÿÿ ÿéôÐ&o'¯ÿÿ ÿçöÐ&o _ÿÿ ÿèóÏ&+Î7/ÿÿ ÿèôÐ&]&aÿÿ ÿéóÐ&o%Óÿÿ ÿéíÐ&o-ÿÿ ÿéôÐ&n(mÿÿÿèôÐ&)F]ÿÿ ÿé÷Ð&n1ÿÿ ÿéòÏ&¿70ÿÿ ÿéîÐ&n±ÿÿ ÿéóÐ&n&Çÿÿ ÿèïÏ&¿& 71ÿÿ ÿéóÐ&¤oÿÿ ÿéòÐ&o >ÿÿ ÿéóÐ&o(=ÿÿ ÿéóÐ&o1ÿÿ ÿèõÑ&&pÿÿ ÿéõÐ&o•ÿÿ ÿéêÐ&o72ÿÿ ÿéîÐ&p&JKÿÿ ÿéõÐ&o#Ìÿÿ ÿéõÐ&o"zÿÿ ÿèóÐ&o#>ÿÿ ÿêõÏ&¿:ÿÿ ÿéîÐ&n!#ÿÿ ÿéóÐ&nÓÿÿ ÿéóÐ&n+ÿÿ ÿéòÐ&o0¢ÿÿ ÿèìÐ&oàÿÿ ÿéõÐ&n"îÿÿÿèôÏ&P"¸ÿÿ ÿèóÐ&nˆÿÿ ÿéôÐ&o!"ÿÿ ÿéôÐ&o#Jÿÿ ÿéðÐ&’nÿÿ ÿéöÐ&o ‹ÿÿ ÿé÷Ð&r&pqÿÿ ÿèïÐ&o0¹ÿÿ ÿéôÐ&&oÿÿ ÿèôÐ&&]ÿÿ ÿèïÐ&o!ÿÿ ÿéôÐ&o"hÿÿ ÿéòÐ&o'mÿÿ ÿéóÏ&¿&-73ÿÿ ÿéõÐ&o$uÿÿ ÿéóÐ&nMÿÿ ÿéóÐ&o$Æÿÿ ÿèöÐ&o% ÿÿ ÿè÷Ð&oËÿÿÿèôÐ&](\ÿÿ ÿêóÏ&¿&+Ï74ÿÿ ÿéñÐ&¿&†75ÿÿ ÿèõÐ&o$nÿÿ ÿèõÐ&o ÿÿ ÿéôÐ&o&žÿÿ ÿèöÑ&o,yÿÿ ÿéôÒ&stÿÿ ÿéöÐ&nNÿÿ ÿéôÑ&onÿÿ ÿèôÏ&¿&Þ76ÿÿÿæñÐ&77ÿÿ ÿèõÐ&pÔÿÿÿæóÏ&+'ÿÿ ÿéóÐ&¿&÷78ÿÿ ÿçòÐ&o%âÿÿ ÿéóÐ&o&¤ÿÿ ÿçêÐ&p%ëÿÿ ÿéóÐ&n´ÿÿ ÿèôÐ&p<ÿÿ ÿéôÐ&o%éÿÿ ÿéòÐ&o&Ÿÿÿ ÿéõÐ&o%åÿÿ ÿèôÐ&& ]ÿÿ ÿéôÐ&p&,79ÿÿ ÿéðÐ&p,†ÿÿ ÿéõÐ&p¤ÿÿ ÿéñÐ&o'ÿÿ ÿéöÐ&p'‡ÿÿ ÿéõÔ&o'‹ÿÿ ÿé÷Ñ&p½ÿÿ ÿéöÐ&?+Ðÿÿ ÿçóÐ& ª& «+Ðÿÿ ÿé÷Ð&püÿÿ ÿèõÐ&o¢ÿÿ ÿéôÒ&pQÿÿ ÿéôÐ&p'ÿÿ ÿéðÐ&o%óÿÿ ÿç÷Ò&p(Rÿÿ ÿçõÐ&p0”ÿÿ ÿèôÑ&o%„ÿÿ ÿèôÏ&P7:ÿÿ ÿçõÐ&¿& ´+ÑÿÿÿèóÐ&+Ï7;ÿÿ ÿéõÏ&¿&+Ó7<ÿÿ ÿéñÑ&p%÷ÿÿ ÿéóÐ&pOÿÿ ÿèôÏ&¿7=ÿÿ ÿéóÐ&p.cÿÿ ÿéóÐ&p.Gÿÿ ÿéòÏ&¿¾ÿÿ ÿéðÐ&pÃÿÿ ÿèõÏ&þ¹ÿÿ ÿíðÏ&þ.ðÿÿÿéòÐ&™&7>ÿÿ ÿéõÏ&xþÿÿÿõîÁ&)G7?ÿÿÿõîÁ&)G7@ÿÿ ÿêóÄ&ÑÀÿÿ ÿêõÂ&À¹ÿÿ ÿñóÂ&Ênÿÿ ÿéìÎ&nYÿÿ ÿèëÐ&À)Hÿÿ ÿéóÄ&&nÿÿ ÿêõÏ&À+Äÿÿ ÿéðÂ&nÂÿÿ ÿî÷Æ&nÿÿ ÿèïÆ&À;ÿÿ ÿéòÏ&¬Àÿÿ ÿéõÍ&Àÿÿ ÿèöÏ&À¡ÿÿ ÿéñÅ&X'Bÿÿ ÿéôÎ&ÀÚÿÿ ÿéôÏ&:nÿÿ ÿéëÉ&n%’ÿÿ ÿéöÏ&Bÿÿ ÿèõÏ&ÀËÿÿ ÿóôÂ&wÀÿÿ ÿéöÃ&ÀÞÿÿ ÿèõÏ&nÿÿ ÿèðÅ&lXÿÿ ÿìõÍ&,ÿÿ ÿèìÏ&À%Âÿÿ ÿéóÃ& ÿÿ ÿæõÇ&)IÀÿÿ ÿçõÏ&^Yÿÿ ÿçôÐ&@&X+Ôÿÿ ÿ÷óÊ&ÀQÿÿ ÿéóÎ&Àÿÿ ÿéóÅ&Àÿÿ ÿéóÏ&Àÿÿ ÿíôÐ&øÀÿÿ ÿéóÏ&ÀÔÿÿÿîîÐ&)J7Aÿÿ ÿèôÏ&ÿÿ ÿíöÌ&1ÿÿ ÿêëÐ&ÀWÿÿ ÿèìÇ&&ÿÿ ÿéêÄ&Àjÿÿ ÿéèÐ&À%žÿÿ ÿéóÂ&À¶ÿÿ ÿèòÏ&X&ÿÿ ÿéïÐ&Rnÿÿ ÿéòÐ&kÀÿÿ ÿòõÆ&nÿÿ ÿêìÏ&+Õ& ¿ÿÿ ÿéóÆ&À)Kÿÿ ÿèòË& Ÿÿÿ ÿéïÏ&X/¶ÿÿ ÿêõË&^5ÿÿ ÿèöÐ&ÀÂÿÿ ÿèîÏ&ÀXÿÿ ÿóôÂ&À&w7Bÿÿ ÿéòÏ&nTÿÿ ÿíóÏ&'¦ÿÿ ÿéóÏ&Àÿÿ ÿèôÐ&ÀPÿÿ ÿéôÏ&XPÿÿ ÿé÷Ï&+Xÿÿ ÿéóÏ&Xâÿÿ ÿèñÐ&'ÿÿ ÿèïÍ&^0ÿÿ ÿéìÉ&Àaÿÿ ÿéòÏ&À{ÿÿ ÿéðÏ&¶ÿÿ ÿêïÆ&Gÿÿ ÿéõÐ&\ÿÿ ÿéöÏ&–ÿÿ ÿêíÑ&žÀÿÿ ÿëóÍ&)Lÿÿ ÿéóÇ&ÀÁÿÿ ÿèíÒ&¾Àÿÿ ÿé÷Ì&Eÿÿ ÿéôÑ& ¸Àÿÿ ÿéóÎ&X&ÙØÿÿ ÿïóÏ&Àÿÿ ÿéóÏ&À'ÿÿ ÿèôÏ&&ÿÿ ÿëúÅ& ^ÿÿ ÿêóË&-ÿÿ ÿéóÊ&X©ÿÿ ÿé÷Ï&X'Qÿÿ ÿñòÇ&À0@ÿÿ ÿèóÐ&ÀŒÿÿ ÿêõÏ& &‡ÿÿ ÿéóÅ&Šÿÿ ÿçøÏ&=ÿÿ ÿéòÃ&*Çÿÿ ÿèôÆ&Àéÿÿ ÿéòÎ&X%>ÿÿ ÿéñÆ&Àòÿÿ ÿëóÆ&À(6ÿÿ ÿé÷Ñ&À,Íÿÿ ÿéóÏ&^0nÿÿ ÿêóÏ&X(5ÿÿ ÿéêÉ&(9ÿÿ ÿèõÐ&ÀLÿÿ ÿñóÄ&Xìÿÿ ÿæôÎ&-ÿÿ ÿéóÐ&³Àÿÿ ÿèôÐ&À>ÿÿ ÿèñÇ& &&e7Cÿÿ ÿéòÐ&X*ÿÿ ÿèõÏ&/>ÿÿ ÿéëÏ&à& 7Dÿÿ ÿêöÐ&X&âIÿÿ ÿéðÐ&ÀQÿÿ ÿçõÑ&Žÿÿ ÿçõÓ&X)@ÿÿ ÿéñÅ&¼Xÿÿ ÿéóÄ&.Mÿÿ ÿéöÈ&7Eÿÿ ÿçôÏ&ªXÿÿ ÿéöÏ&.V ÿÿ ÿêøÅ&Xüÿÿ ÿéòÐ&X%Ðÿÿ ÿéóÑ&!Xÿÿ ÿèòÏ&X²ÿÿ ÿéóÎ&À&Çÿÿ ÿëõÆ&X)Mÿÿ ÿéíÃ&X°ÿÿ ÿèöÎ&X»ÿÿ ÿé÷Î&(;Xÿÿ ÿéöÏ&"HXÿÿ ÿé÷Ä&ŒÀÿÿ ÿéõÑ&ýXÿÿ ÿèðÐ&iXÿÿ ÿèôÏ&ÛXÿÿ ÿéëÇ&À¾ÿÿ ÿéóÐ& OXÿÿ ÿéöÏ& .íÿÿ ÿéñÉ&.ï.îÿÿÿìòÆ&-9ÿÿÿîñÈ&)N-ÿÿ ÿéòÏ& YXÿÿ ÿçóÏ&X&ú-ÿÿ ÿëôÏ&X[ÿÿ ÿéóÇ&!ÿÿ ÿéòÎ&X.Xÿÿ ÿéíÈ& ˆXÿÿ ÿèïÇ&X!ÿÿ ÿéöÎ&X"Yÿÿ ÿîòÏ&À"žÿÿ ÿïóÉ&8Ôÿÿ ÿéöÐ& ßÿÿ ÿéóÐ&X"÷ÿÿ ÿéõÏ&X£ÿÿ ÿéòÐ&<^ÿÿ ÿèòÐ&X7Fÿÿ ÿéòÐ&#£ ÿÿ ÿéõÏ&"îÿÿ ÿçõÉ&Yÿÿ ÿéôÐ&#XXÿÿ ÿéöÄ& ‹Xÿÿ ÿèòÌ&Ÿÿÿ ÿéñÏ&¿Àÿÿ ÿéîÏ&J&K ÿÿ ÿè÷Ï&!ßXÿÿ ÿéöÏ&Xÿÿ ÿèóÏ&Àˆÿÿÿè÷Æ&--ÿÿ ÿéñÏ&%Xÿÿ ÿéöÏ&Nÿÿ ÿêðÏ&$|Àÿÿ ÿêòÏ&)OXÿÿ ÿðôÅ&ÀÉÿÿ ÿèõÏ&$nXÿÿ ÿêðÇ&#wXÿÿÿíëÏ& 7Gÿÿ ÿéñÇ&ÿÿ ÿéôÑ&Рÿÿ ÿéõÆ&$Xÿÿ ÿèñÑ&0— ÿÿ ÿéôÑ&ŒÀÿÿ ÿèôÏ&(‚Xÿÿ ÿèõÐ& Xÿÿ ÿíóÐ&Àåÿÿ ÿêôÅ&"†ÿÿ ÿéòÏ&X'mÿÿ ÿéóÏ& /ÿÿ ÿéôÏ&X7Hÿÿ ÿéóÏ&X+ÿÿ ÿêöÐ& Eÿÿ ÿïóÏ&#_ÿÿÿìóÌ&-&k7Iÿÿ ÿéòÏ&X-<ÿÿ ÿêöÑ&X%Øÿÿ ÿïöÍ&X7Jÿÿ ÿéðÑ& (Fÿÿ ÿéõÑ&X#€ÿÿ ÿé÷Í&X(Eÿÿ ÿéõÐ& 0^ÿÿ ÿèõÐ& &ÿÿ ÿëòÏ&X&ú7Kÿÿ ÿéòÏ&X Þÿÿ ÿéôÑ&Xnÿÿ ÿæïÇ& ,(ÿÿ ÿêõÐ& &-7Lÿÿ ÿîöË& %ÿÿ ÿêíÑ&X'‚ÿÿ ÿéóÌ&X%íÿÿÿìòÏ&ð&-7Mÿÿ ÿéôÏ& *Òÿÿ ÿçìÇ&X%êÿÿ ÿçòÏ&X%âÿÿ ÿêóÐ&X&¤ÿÿ ÿéóÉ&X)Pÿÿ ÿêòÏ&^üÿÿ ÿíõÍ&Þ& 7Nÿÿ ÿêôÇ&X7Oÿÿ ÿèôÐ&Xýÿÿ ÿèõÐ& &7Pÿÿ ÿèôÏ& 'Šÿÿ ÿíòÑ&-.ÿÿ ÿêôÐ& %ðÿÿ ÿèôÏ& -ÿÿ ÿéøÊ&À¡ÿÿ ÿéðÏ&X'ÿÿ ÿíõÇ& &!Þÿÿ ÿéõÔ&X'‹ÿÿ ÿéõË&¤ÿÿ ÿíôÉ& 7Qÿÿ ÿíõÌ& &Þ!¦ÿÿ ÿêôÍ&- ÿÿ ÿîôÏ&X%ôÿÿ ÿéóÑ&÷& 7Rÿÿ ÿçóÑ&¡ÿÿ ÿéóÏ&X%õÿÿ ÿèôÉ&.|Xÿÿ ÿìôÌ&-7Tÿÿ ÿéõÑ&5ÿÿ ÿéøÏ& )Qÿÿ ÿéðÊ&X%óÿÿ ÿéõÏ&X!×ÿÿ ÿíôÏ&X.zÿÿ ÿéóÆ& %hÿÿ ÿèóÐ& @ÿÿ ÿèòÍ&X%[ÿÿ ÿèõÑ&X/üÿÿ ÿíõÐ& &Þ7Uÿÿ ÿéöÐ&H ÿÿ ÿçôÏ&0 ÿÿ ÿèòË&X-ÿÿÿêôË&-7Vÿÿ ÿéñÑ& %÷ÿÿ ÿéîÏ& 7Wÿÿ ÿéóÏ&O ÿÿ ÿçöÏ& 7Xÿÿ ÿçõÐ& ‡ÿÿ ÿèöÐ& &07Yÿÿ ÿçòÏ&(¼ÿÿ ÿçõÏ&¼7[ÿÿ ÿçøÏ&¼7\ÿÿ ÿçøÏ&EüÿÿÿçõÏ&GFÿÿ ÿç÷Í&z)Rÿÿ ÿéóÐ&u&wvÿÿ ÿè÷Ñ&)S)Rÿÿ ÿçûÏ&! 7]ÿÿ ÿéóÎ&xÿÿ ÿêõÄ&)Vÿÿ ÿéóË&xyÿÿ ÿéöÏ&ynÿÿÿèõÏ&›1 ÿÿÿëõÄ&+·ÿÿ ÿéôÆ&x! ÿÿ ÿéóÉ&xïÿÿÿéõÏ&7^ÿÿÿêõÏ&_aÿÿ ÿéöÎ&mnÿÿ ÿêõÑ&*)™ÿÿ ÿèõÏ& 1 ÿÿÿéõÆ&Ýÿÿ ÿéöÑ&)T)UÿÿÿêõÐ&.ÿÿ ÿèöË&.ÝnÿÿÿéöÐ&)Xnÿÿ ÿêöÏ&)Y)Tÿÿ ÿçöÏ&- nÿÿ ÿèöÐ&)W"½ÿÿÿêõÑ&  ÿÿ ÿëõÉ& —+ÿÿÿéõÉ& ˜ÿÿÿçñÏ&& øÿÿ ÿêöÐ&.á)Tÿÿ ÿéöÑ&)[)WÿÿÿêöÄ&)WšÿÿÿçñÏ&&ÿÿ ÿéöÏ&)T)ZÿÿÿêöÏ&.7_ÿÿ ÿêõÎ&%‡0ÿÿÿéõÏ&µ+ÿÿ ÿêöÎ&)\)Wÿÿ ÿêõÑ&..ÿÿ ÿéöÒ&)])WÿÿÿêõÑ&-,ÿÿÿêõÉ&/.ÿÿ ÿèöÐ&0)WÿÿÿçòÏ&+¶7`ÿÿ ÿéóÏ&5&Nÿÿ ÿéöË&nÿÿ ÿêóÎ&³´ÿÿÿéíÒ&)`)^ÿÿ ÿòòÎ&%Fÿÿ ÿêëÎ&-!ÿÿÿêöÎ&)_%GÿÿÿèòÂ&~ÿÿ ÿèåÑ&€ÿÿÿêìÑ&ƒ&‚ÿÿ ÿêâÆ&ÿÿÿèóÂ&qoÿÿÿéíÆ&rÿÿÿèíÐ&FÅÿÿÿèÞÐ&)áÆÿÿÿðóÏ&p´ÿÿ ÿçóÆ&&¿-"ÿÿÿéâÍ&)â7eÿÿÿéìÐ&%5%4ÿÿ ÿéóÐ&ÂÃÿÿÿêïÎ&G*ØÿÿÿêòÎ&F¾ÿÿÿéöÎ&ÄFÿÿÿéõÏ&FEÿÿÿèôÏ&GÿÿÿèöÏ&F¥ÿÿÿéöÏ&{ÿÿ ÿêèÏ& µïÿÿÿèõÏ&(á)àÿÿÿèóÏ&ÿÿÿéåÏ&)ß7fÿÿ ÿè÷Ñ&M7gÿÿÿéöÐ&{³ÿÿÿèðÐ&-1+#ÿÿ ÿéõÐ&ÀÁÿÿÿèôÉ&-07hÿÿ!ÿéÞÐ&-))ßÿÿ ÿè÷Ð&-2äÿÿÿéóÐ&GNÿÿÿéõÐ&ÿÿÿïôÏ&Gôÿÿ ÿêõÈ&ƒ„ÿÿÿé÷Ï&®ÿÿ ÿèõÎ&-3Mÿÿ ÿèõÑ&ä7jÿÿÿêõÏ&GdÿÿÿçõÑ&{ ÿÿ ÿè÷Ñ&äåÿÿÿíîÈ&„7lÿÿÿéôÏ&|{ÿÿÿéöÇ& ×{ÿÿÿéóÎ&&ÇÿÿÿéöÐ&"IÿÿÿîñÏ&!aÿÿÿíóÏ&´ÿÿÿéôÎ&*Ñÿÿ ÿéôÈ& 7rÿÿÿéóÏ&0ÄÿÿÿîòÍ&& ÿÿ ÿèöÏ&?ÿÿ ÿèöÐ&?&ÿÿ ÿéóÐ&ˆ-#ÿÿ ÿèðÑ&‚sÿÿ ÿèðÑ&‚1ÿÿ ÿèðÑ&‚7ÿÿ ÿèðÑ&‚•ÿÿ ÿèðÑ&‚8ÿÿÿèóÒ&9}ÿÿ ÿèõÑ&‚7vÿÿ ÿèðÑ&‚7wÿÿ ÿèñÑ&‚7xÿÿ ÿèðÑ&‚7yÿÿ ÿèðÑ&‚7zÿÿ ÿèöÑ&%ù‚ÿÿ ÿèðÑ&‚7ÿÿ ÿèôÑ&‚7{ÿÿ ÿèòÑ&¦‚ÿÿ ÿèôÑ&‚7|ÿÿÿèóÒ&}:ÿÿ ÿèôÑ&‚7}ÿÿ ÿçðÑ&‚7~ÿÿ ÿèñÑ&‚7ÿÿ ÿèõÑ&‚7€ÿÿ ÿèóÑ&‚7ÿÿ ÿèöÑ&‚7‚ÿÿÿèóÒ&}7ƒÿÿ ÿèñÑ&‚7„ÿÿ ÿèðÑ&§‚ÿÿÿéòÒ&€7…ÿÿ ÿèñÑ&‚7†ÿÿÿèôÒ&}éÿÿ ÿèóÑ&‚7‡ÿÿ ÿèóÑ&‚7ˆÿÿÿèóÒ&}&´ÿÿÿæ÷Ò&}~ÿÿÿèóÒ&}7‰ÿÿ ÿèôÑ&‚7Šÿÿ ÿçðÑ&u‚ÿÿ ÿèðÑ&‚7‹ÿÿ ÿèðÑ&‚7ŒÿÿÿèóÒ&}7ÿÿÿèóÒ&}7Žÿÿ ÿèðÑ&‚7ÿÿÿèóÒ&}ÿÿ ÿèñÑ&‚7ÿÿ ÿèðÑ&‚‘ÿÿ ÿèóÑ&‚7‘ÿÿÿèôÒ&}_ÿÿÿèóÒ&}ÿÿ ÿèðÑ&‚7’ÿÿÿèôÒ&}9ÿÿ ÿèðÑ&‚Ÿÿÿ ÿèðÑ&‚7“ÿÿÿèóÒ&}uÿÿ ÿèñÑ&‚7”ÿÿÿèóÒ&}»ÿÿÿèóÒ&}äÿÿÿèôÒ&}Gÿÿ ÿèðÑ&‚ãÿÿÿèóÒ&}åÿÿ ÿèóÑ&÷‚ÿÿ ÿèóÑ&­‚ÿÿÿèóÒ&}7•ÿÿ ÿèðÑ&‚7–ÿÿÿèóÒ&}7—ÿÿÿèóÒ&}7˜ÿÿ ÿèðÑ&‚7™ÿÿÿèòÒ&€7šÿÿÿèóÒ&}7›ÿÿÿèóÒ&}7œÿÿÿèóÒ&}7ÿÿÿèóÒ&}7žÿÿÿèóÒ&}7ŸÿÿÿèõÒ&}7 ÿÿÿèóÒ&}7¡ÿÿ ÿèôÑ&‚7¢ÿÿ ÿèõÑ&‚7£ÿÿÿèóÒ&}7¤ÿÿ ÿèðÑ&‚7¥ÿÿ ÿèðÑ&k‚ÿÿ ÿèðÑ&ë‚ÿÿÿèóÒ& P}ÿÿÿèúÒ&€ÿÿ ÿèõÑ&‚7¦ÿÿ ÿèðÑ&‚7§ÿÿ ÿèõÑ&‚7¨ÿÿ ÿèñÑ&«‚ÿÿ ÿèöÑ&‚7©ÿÿÿèóÒ&}7ªÿÿ ÿèòÑ&‚7«ÿÿ ÿèòÑ&‚7¬ÿÿ ÿèðÑ&‚7­ÿÿ ÿèðÑ&ë‚ÿÿ ÿèðÑ&‚7®ÿÿÿéòÒ&€7¯ÿÿÿèôÒ&}7°ÿÿÿè÷Ò&}7±ÿÿÿèóÒ&}oÿÿÿèôÒ&}7²ÿÿÿèóÒ&}ÕÿÿÿèóÒ&#}ÿÿÿèóÒ&}#ÿÿÿèõÒ&}7³ÿÿÿéúÒ&€#àÿÿÿèóÒ&}& µ ¶ÿÿÿèóÒ&}"ÿÿÿèóÒ&}4ÿÿÿçóÒ&}7´ÿÿÿèóÒ&}7µÿÿÿçôÒ&}"°ÿÿÿèóÒ&}7¶ÿÿÿçóÒ&} ŽÿÿÿèóÒ&!Æ}ÿÿÿèôÒ&}7·ÿÿÿèôÒ&}#·ÿÿÿèôÒ&}"‡ÿÿÿèõÒ&}7¸ÿÿÿèöÒ&}7¹ÿÿÿèôÒ&}$ŠÿÿÿèóÒ&}7ºÿÿÿéöÒ&€& Ú ÛÿÿÿéõÒ&€ÌÿÿÿèõÒ&}7»ÿÿÿçòÓ&}7¼ÿÿÿèóÒ&€7½ÿÿÿèôÒ&}7¾ÿÿÿèóÒ&}7¿ÿÿ ÿèòÑ&‚#ÿÿ ÿèôÑ&‚7ÀÿÿÿéóÒ&€7ÁÿÿÿèóÒ&}7Âÿÿÿè÷Ò&}#DÿÿÿèõÒ&}7ÃÿÿÿèôÒ&}7ÄÿÿÿèóÒ&}7ÅÿÿÿèöÒ&}7ÆÿÿÿèõÒ&}7ÇÿÿÿéöÒ&€7ÈÿÿÿèõÒ&}7ÉÿÿÿæõÒ&}7ÊÿÿÿèòÒ&€7ËÿÿÿèôÒ&}7ÌÿÿÿèóÒ&}7ÍÿÿÿèóÒ&}7ÎÿÿÿçòÓ&}7ÏÿÿÿèôÒ&}7ÐÿÿÿèôÒ&}%ÿÿÿéöÒ&€7ÑÿÿÿçôÒ&}7ÒÿÿÿæóÒ&}7ÓÿÿÿèöÒ&}7ÔÿÿÿéôÒ&€7ÕÿÿÿçòÓ&}7ÖÿÿÿéòÒ&€7×ÿÿÿçõÓ&}7ØÿÿÿèòÒ&€7ÙÿÿÿèóÒ&}7ÚÿÿÿèôÒ&}7ÛÿÿÿèòÒ&€7ÜÿÿÿèôÒ&}7ÝÿÿÿçöÓ&}7ÞÿÿÿèôÒ&€7ßÿÿÿèõÒ&}7àÿÿÿèôÒ&}7áÿÿÿèòÒ&€7âÿÿÿçòÓ&}7ãÿÿÿè÷Ò&}7äÿÿÿèôÒ&}7åÿÿÿèóÒ&}7æÿÿÿèôÒ&}7çÿÿÿçøÓ&}7èÿÿÿèôÒ&€%wÿÿÿçöÓ&}7éÿÿÿçóÓ&}7êÿÿÿéôÒ&€7ëÿÿÿçòÓ&}7ìÿÿÿéõÒ&€7íÿÿÿèóÒ&}7îÿÿÿçòÓ&}7ïÿÿÿçöÓ&}7ðÿÿÿçôÓ&}7ñÿÿÿæôÒ&}&‘7òÿÿÿçôÓ&}7óÿÿÿçòÓ&}7ôÿÿÿç÷Ó&}7õÿÿÿèóÒ&}7öÿÿÿçòÓ&}7÷ÿÿÿçôÓ&}7øÿÿÿæóÒ&}&‘7ùÿÿÿçöÓ&}7úÿÿ ÿçöÏ&ƒ7üÿÿ ÿîöÏ&ƒ7ýÿÿ ÿçöÏ&ƒ&…„ÿÿÿìðÐ&œ-%ÿÿ'ÿìèÐ&T‹ÿÿÿéðÒ&-$ÿÿ ÿéðÐ&‹ÿÿ ÿêñÐ&ŒÿÿÿéìÏ&Y%6ÿÿ"ÿèòÏ&-&7ÿÿÿïðÐ&-'-(ÿÿÿèõÏ&‘ÿÿÿìöÎ&D-,ÿÿÿçõÏ&’Yÿÿ ÿçõÐ&-)7ÿÿÿÿèôÐ&PÿÿÿéóÏ&æ“ÿÿÿéóÐ&-)8ÿÿÿíôÎ&’,”ÿÿÿé÷Ï&c“ÿÿÿêóÎ&E’ÿÿÿéïÁ&ÿÿÿëõÏ&’’ÿÿ ÿéïÎ&-*ÜÿÿÿîòÏ&L-,ÿÿÿéëÐ&-)8ÿÿÿéòÐ&% -,ÿÿÿèöÒ&îíÿÿÿèõÑ&-+’ÿÿÿêòÏ&’üÿÿÿèõÐ&&-,8ÿÿÿèóÐ&+R-,ÿÿÿêòÐ&¨-.ÿÿÿéòÎ&- -,ÿÿÿçóÐ& ã!,ÿÿ ÿéóÐ&-4ûÿÿ ÿéôÐ&®-5ÿÿÿéôÏ&­®ÿÿ ÿéõÏ&%°†ÿÿÿéõÏ&+¬†ÿÿ ÿéõÏ&† ýÿÿ ÿéõÏ&†! ÿÿÿçôÐ&!! ãÿÿ ÿéõÑ&†%¯ÿÿ ÿéõÏ&†8ÿÿ ÿéõÐ&%±†ÿÿ ÿéõÐ&%²%³ÿÿ ÿîóÅ& ö8ÿÿ ÿîóÅ& ö8ÿÿ ÿîóÄ& ø8ÿÿ ÿîóÐ& ûÿÿ ÿîóÏ&Ù ÷ÿÿ ÿîóÈ&r øÿÿ ÿîóÐ& ÷ÿÿ ÿîóÒ& ö8ÿÿ ÿîóÐ& ø8 ÿÿ ÿîóÐ&$+ ÷ÿÿ ÿîóÓ& ø8 ÿÿ ÿîóÏ& û&ïîÿÿ ÿîóÏ& û8 ÿÿ ÿîõÏ& ø8 ÿÿ ÿîóÏ&ñ&ð øÿÿ ÿîóÏ&ò øÿÿ ÿîóÐ&Å øÿÿ ÿîóÏ&-&, øÿÿ ÿîóÐ&Æ øÿÿ ÿîóÒ&8 ÿÿ ÿîóÑ&‹ øÿÿ ÿîóÐ&•& öÇÿÿ ÿîôË& ùÿÿ ÿîóÐ& ú ÿÿ ÿîóÌ& ø8ÿÿ ÿîóÏ& ù8ÿÿ ÿîóÐ&Ð øÿÿ ÿîõÏ&;&ÿÿ ÿîóÏ&Èÿÿ ÿîôÓ&Ô8ÿÿ ÿîôÏ&Ó& øÒÿÿ ÿîôÏ&…&" úÿÿ ÿîóÒ&Ñ øÿÿ ÿîóÑ& ú8ÿÿÿêóÄ&ÑtÿÿÿéóÄ& ߨÿÿÿéðÀ&tÂÿÿÿðóÏ& ßÿÿÿêòÎ& ßÿÿÿêîÏ&t*ÚÿÿÿééÏ&¸!pÿÿÿìõÏ& à!qÿÿÿêóÊ& ß!rÿÿÿêóÏ& ß!sÿÿÿéôÎ&Ú ßÿÿÿçõÄ& ß!vÿÿÿêðÁ& ß!nÿÿÿèõÏ&‘0 ÿÿÿèôÏ& à(/ÿÿÿëôÏ& à"ÿÿÿíõÍ&n ßÿÿÿòôÇ& ß…ÿÿÿòôÂ& ß!mÿÿÿéïÏ& ß& ó!IÿÿÿéìÏ& ß!wÿÿÿçóÐ& ß%ŸÿÿÿèöÐ& ßÿÿÿéòÐ&t0öÿÿ ÿêîÐ&%H)bÿÿÿé÷Ï&S0¡ÿÿÿêòÏ&tSÿÿÿéóÅ& ß'ìÿÿ ÿéöÐ&2-6ÿÿÿèõÏ& ß+ÿÿÿêðÇ&Ã0¡ÿÿ ÿéôÏ&ƒ2ÿÿÿíöÌ&‡1ÿÿÿéêÄ&j ßÿÿÿê÷Ï&t³ÿÿÿéóÏ& ßÔÿÿÿïóÏ& ß~ÿÿÿéôÏ&0 ]ÿÿÿè÷Ï& à)ÿÿÿéòÆ&0 ßÿÿÿêêÏ&µ ßÿÿÿêíÑ& àžÿÿÿèíÏ& ßÿÿÿïóÈ& ßÿÿ ÿéõÐ&ñ8ÿÿÿèòÐ& ßÖÿÿÿèöÎ&Ö ßÿÿÿé÷Ì&B‡ÿÿÿéðÏ& ß¶ÿÿÿêõÉ& ß~ÿÿÿéòÐ&‡÷ÿÿÿéñÈ&8ÿÿÿéóÑ&‡!ÿÿÿçõÑ&  ßÿÿÿéêÐ&c ßÿÿÿéôÈ&‡/ÿÿÿëõÏ& ß’ÿÿÿèóÐ&Œ0 ÿÿÿééÉ& ßÿÿÿé÷Ï&‡'QÿÿÿêøÑ& 0 ÿÿÿëñÆ& ßLÿÿÿéòÐ& à*ÿÿÿêîÈ& àßÿÿÿéöÏ& ßÿÿÿñõÏ&)z ßÿÿÿèôÏ& àÛÿÿÿéóÏ& à ÿÿÿéöÏ&"H àÿÿÿèôÏ& à'ØÿÿÿçõÏ&Þ0¡ÿÿÿìôÊ&'×0 ÿÿÿéóÏ& ß'°ÿÿÿéóÏ& à¤ÿÿÿéóÏ& à)aÿÿÿéóÏ&1 ßÿÿÿìõÏ&‡'ÙÿÿÿïòÏ&‡£ÿÿÿéôÐ& ߟÿÿÿêôÐ&)b8ÿÿÿéôÏ&'¯ àÿÿÿïñÍ&‡)cÿÿÿêóÐ&‡)dÿÿÿèöÏ& à `ÿÿÿé÷Ä&Œ ßÿÿÿçòÈ&ÇÆÿÿÿèóÏ&+­0 ÿÿÿéñÎ& à(AÿÿÿéëÇ&¾ àÿÿÿéöÏ& àÿÿÿéóÏ&#\&)e8ÿÿÿéóÏ& ß+ÿÿÿéóÊ&"0 ÿÿÿèõÍ& à"|ÿÿ ÿêôÐ&#b&#c)bÿÿÿéõÈ& ß";ÿÿ ÿçõÏ&)f)gÿÿÿèòÍ&)h0¡ÿÿÿéòÏ&‡0¢ÿÿÿè÷Ï&‡&"Î%ýÿÿÿëòÎ&ú&ù‡ÿÿÿéõÏ&‡*oÿÿ ÿèõÑ&T8ÿÿÿçóÐ&‡æÿÿÿìôÎ&‡*qÿÿÿèôÏ&0 0£ÿÿÿêðÑ&‡‡ÿÿ ÿèóÊ&$ÅÿÿÿèóÇ& á àÿÿÿéôÏ&‡‚ÿÿÿéôÑ&‡nÿÿÿéòÏ&tÿÿÿèõÏ&£‡ÿÿÿëîÏ& à)jÿÿÿêöÐ&‡)kÿÿÿçôÐ& ß1ÿÿÿéðÑ&‡)lÿÿÿéòÏ& Þ‡ÿÿÿéóÉ&†‡ÿÿÿðóÏ& à¦ÿÿÿèøË&,c&0¡8ÿÿÿéñÏ&n&M&)nÿÿÿìõÏ& à/ÿÿÿéôÑ&û)eÿÿÿêõÏ&%è‡ÿÿÿêóÐ&‡&¤ÿÿÿéïÊ&0 8ÿÿÿîöË& ßÿÿÿéóÉ& ß%ãÿÿÿèðÎ&.\.xÿÿÿéôÏ&‡'ãÿÿÿèõÐ&‡&8 ÿÿÿèôÏ&‡'äÿÿÿçìÇ&.x%êÿÿÿíóÐ&‡'¾ÿÿÿéöÐ&‡.#ÿÿÿéôÎ&‡%'ÿÿÿçôÏ&‡'|ÿÿÿéîÊ&‡&ï8!ÿÿÿèôÏ&‡%òÿÿÿéöÒ&‡*€ÿÿÿéòÐ&0¡0¥ÿÿÿéöÑ&‡&ÄÿÿÿéòÑ&W)eÿÿ ÿéðÌ&-¹8"ÿÿÿéøÊ& ß¡ÿÿÿèõÐ&‡¢ÿÿÿéñÏ& ß(ÿÿÿçóÑ& ß¡ÿÿÿéóÏ&‡8#ÿÿÿèôÑ&%„0 ÿÿÿèõÑ& à/üÿÿÿçóÑ& à8$ÿÿÿèñÈ&.x,ÀÿÿÿéöÐ&}‡ÿÿÿéñÏ&‡)mÿÿ ÿéðÓ&)n…ÿÿ ÿéñÒ&/ý8%ÿÿÿæðÑ&‡)oÿÿÿèïÉ&ô&.y8&ÿÿÿéðÌ&/Œ0åÿÿ ÿèõÏ&!C)rÿÿ ÿéóÏ&)rÿÿÿéóÐ&ö8*ÿÿ ÿëêÏ&)p*uÿÿ ÿéèÐ&‹&/6ÿÿ ÿéõÏ&Š`ÿÿ ÿëôÏ&‹žÿÿ ÿèöÏ&Šáÿÿ ÿëôÏ&Š&Aÿÿ ÿëôÏ&Šøÿÿ ÿèõÑ&Љÿÿ ÿéõÏ&Š%´ÿÿ ÿêîÑ&Š'ÿÿ ÿéõÏ&Š!×ÿÿ ÿèôÏ&/¢/þÿÿ ÿêõÂ&»ªÿÿ ÿéôÆ&Ã)qÿÿ ÿéóÄ&Ã&ÿÿÿéõ¿&g´ÿÿÿìóÌ&gýÿÿ ÿêòÎ&Ãÿÿ ÿñóÁ&ÃÊÿÿÿñðÎ&g)uÿÿ ÿèöÁ&»ÿÿ ÿêóÐ&¿@ÿÿÿéíÇ&g%9ÿÿ ÿèïÆ&Ã;ÿÿ ÿèôÏ&@(/ÿÿ ÿéóÅ&p»ÿÿÿéöÏ&C)sÿÿ ÿéöÎ&ÃÄÿÿ ÿèîÏ&)t8+ÿÿÿéíÏ&C&+À8,ÿÿ ÿéõÑ&²Ãÿÿ ÿèöÏ&çÿÿÿêôÎ&¿gÿÿ ÿéóÆ&‡»ÿÿÿéñÅ&gyÿÿÿìõÍ&gÿÿ ÿèõÇ&»Uÿÿ ÿéôÅ&ÃÿÿÿéöÏ&giÿÿ ÿéôÐ&Ã*rÿÿÿèðÏ&·Cÿÿ ÿìõÏ&Ãÿÿ ÿæõÇ&@)IÿÿÿçöÇ&Ì+dÿÿÿéóÏ&*s¸ÿÿ ÿéóÐ&ÃUÿÿ ÿñõÆ&Ãÿÿ ÿñòÁ&Ã&ÿÿÿéóÁ&C¶ÿÿ ÿîóÏ&òÿÿÿèóÏ&gîÿÿ ÿèôÏ&63ÿÿÿéòÏ&gNÿÿÿéòÏ&/’CÿÿÿéóÐ&*s0ÒÿÿÿèôÂ&*sÿÿ ÿñóÏ&Ã'ËÿÿÿñóÐ&g)vÿÿÿê÷Ï&g³ÿÿ ÿèôÐ&)t0‰ÿÿ ÿéöÏ&Ã8-ÿÿ ÿéóÅ&ÃÿÿÿçõÏ&FgÿÿÿíôÐ&øCÿÿÿéò¿&Îgÿÿ ÿèóÏ&@ÿÿ ÿèôÏ&Ã)wÿÿ ÿéïÐ&ÃRÿÿÿñòÇ&C)xÿÿ ÿèòÏ&Ã-ºÿÿ ÿèóÅ&»lÿÿ ÿèóÏ&@)tÿÿ ÿïõÐ&Ã8.ÿÿÿêòÏ&g ÿÿ ÿêõÎ&»¹ÿÿ ÿéëÏ&ôÿÿÿéöÏ&˜CÿÿÿïóÏ&*s~ÿÿÿéìÐ&CÝÿÿÿéóÏ&g0Öÿÿ ÿéóÏ&Ãÿÿ ÿêõÑ&»2ÿÿ ÿéõÐ&Ãÿÿ ÿêõÉ&ÃHÿÿÿèïÏ&C&¡ ÿÿÿëóÆ&Cæÿÿ ÿéìÈ&ÃaÿÿÿéòÇ&ÒCÿÿ ÿéöÇ&Ã|ÿÿÿæöÏ&C³ÿÿ ÿæôÏ&Ãÿÿ ÿîòÄ&éÿÿ ÿéêÐ&Öÿÿ ÿêóÍ&ÃEÿÿ ÿèõÐ&ÃLÿÿÿéöÐ&C(lÿÿÿèôÏ&C Ùÿÿ ÿèôÏ&@0Ýÿÿ ÿéóÏ&Ã)yÿÿ ÿèñÏ&0e)tÿÿÿé÷Ï&gcÿÿ ÿèôÐ&>@ÿÿ ÿæöÆ&»AÿÿÿðóÍ&0gÿÿ ÿéíÏ&?Ãÿÿ ÿèôÆ&Ãrÿÿ ÿèóÏ&)t0ÊÿÿÿêîÈ&Cßÿÿ ÿéïÌ&ÃWÿÿ ÿéöÏ&Öÿÿ ÿñòÌ&Ã)ÇÿÿÿéõÏ&*t&.œÿÿ ÿêøÅ&»){ÿÿ ÿèñÈ&0Í)tÿÿÿéíÉ&ÉÌÿÿ ÿïôÏ&Ã)|ÿÿÿñóÐ&gÉÿÿ ÿéóÑ&Ã"ÿÿ ÿéóÏ&Ã'ÿÿÿéöÏ&.í*tÿÿÿéîÇ&ìCÿÿ ÿèñÐ&•&)}80ÿÿÿéôÑ&9Ìÿÿ ÿéëÇ&@¾ÿÿÿé÷Ä&ŒCÿÿÿêòÆ&*sÿÿÿèòÏ&C.ÿÿ ÿéóÏ&ÃÿÿÿèôÐ&*s]ÿÿ ÿéõÐ&ËÿÿÿéõÐ&C)ÿÿ ÿéóÎ&Ã&Çÿÿ ÿéøÏ&à $ÿÿÿéöÏ&C"HÿÿÿçôÏ&CªÿÿÿéïÇ&%­Cÿÿ ÿéõÐ&Ã#¡ÿÿÿåóÏ&-7*sÿÿ ÿè÷Ð&à /ÿÿ ÿèîÉ&-8)}ÿÿÿèõÎ&°*sÿÿÿéðÑ&C/ƒÿÿ ÿèóÏ&Ã/×ÿÿ ÿéñÆ&Ã!Œÿÿ ÿéðÈ&Ã’ÿÿÿèõÏ&g!áÿÿ ÿçíÐ&»:ÿÿ ÿèîÐ&)t81ÿÿ ÿèóÆ&Ã/®ÿÿ ÿèõÈ&Ã^ÿÿÿïóÎ&CÙÿÿÿéôÏ&C&##(ÿÿÿéöÄ& ‹Cÿÿ ÿçõÉ&Ã!0ÿÿ ÿéñÏ&ÂÃÿÿÿïñÏ&Ì,£ÿÿ ÿéöÐ&@!ÿÿÿéïÑ&C!ÁÿÿÿéóÏ&cCÿÿÿñôÏ&C"hÿÿ ÿéóÏ&» fÿÿ ÿîòÏ&Ã" ÿÿÿêðÏ&g$­ÿÿ ÿéòÐ&Ã$Îÿÿ ÿéñÇ&Ã"Ûÿÿ ÿéóÈ&@$ËÿÿÿèóÐ&CDÿÿÿéóÌ&$›Ìÿÿ ÿèòÐ&»$ÿÿÿéðÑ&C$¦ÿÿÿéïÆ&C#'ÿÿ ÿéôÑ&»#øÿÿÿéóË&Ì'nÿÿ ÿíòÐ&»2ÿÿ ÿèóÎ&)~ÃÿÿÿêðÑ&C‡ÿÿÿèôÐ&Cÿÿ ÿèõÐ&@ÿÿ ÿèòÑ&)&¸ºÿÿÿîòÏ&ÌLÿÿÿêôÍ&C/…ÿÿÿîõÏ&C)iÿÿÿëöÐ&C/°ÿÿÿéóÏ&C*ÿÿ ÿèóÏ&)82ÿÿÿèõÐ&Ì&83ÿÿÿéíÏ&C-9ÿÿÿé÷Í&(ECÿÿ ÿèñÏ&Ã*ÿÿÿéñÏ&*&#Q*tÿÿÿèóÐ&Ì*ÿÿÿçõÑ&xCÿÿ ÿéôÇ&Ã)Ëÿÿ ÿèõÐ&Ã(ÿÿ ÿéõÑ&$84ÿÿÿé÷Ð&Ì/±ÿÿÿéòÏ&C-;ÿÿ ÿèóÐ&k&)}85ÿÿÿèôÉ&C86ÿÿÿèôÐ&ýÌÿÿÿéòÍ&C87ÿÿ ÿêïÑ&Ã'#ÿÿÿîöË&CÿÿÿéîÊ&C&ï88ÿÿÿéôÎ&Ì%'ÿÿÿéóÉ&C%ãÿÿÿçòÏ&C%âÿÿÿêòÏ&Cüÿÿ ÿéöÏ&»0ÛÿÿÿèôÎ&%(*tÿÿÿéòÈ&Cÿÿ ÿèõÊ&A89ÿÿÿéöÏ&*s'õÿÿÿéõÏ&CšÿÿÿéõÏ&C%åÿÿÿèõÐ&&*t8:ÿÿÿèöÑ&%î*tÿÿÿèõÐ&&Ì8;ÿÿÿéðË&C0·ÿÿÿéõÏ&/¦Cÿÿ ÿííÑ&8<ÿÿÿéñÏ&C*vÿÿÿèöÐ&C%µÿÿÿîôÈ&C ÿÿÿéòÏ&*t/§ÿÿÿéõÎ&,‹CÿÿÿçóÑ&¡CÿÿÿèöË&Ž*tÿÿÿìôÐ&C*xÿÿ ÿëöÐ&.¬8=ÿÿÿéðÊ&C%óÿÿÿéóÏ&C-=ÿÿÿéòÒ&$v&*t8>ÿÿÿéõÏ&+6ÌÿÿÿéôÐ&C8?ÿÿÿçòË&C8@ÿÿÿèôÑ&Ì%„ÿÿÿéóÆ&%o*tÿÿ ÿéîË&n%tÿÿÿèòÍ&C%[ÿÿÿéòÈ&C->ÿÿÿèóÐ&C)õÿÿÿèòÈ&.¥CÿÿÿèóÎ&*t8BÿÿÿèöÈ&Ì-?ÿÿ ÿéöÐ&¯%tÿÿÿéòÏ&*t8CÿÿÿéôÈ&Ì8DÿÿÿçõÐ&*t‡ÿÿÿéõË&-@*tÿÿ ÿéòÐ&21ÿÿ ÿéìÑ&±Þÿÿ ÿéõÐ&1yÿÿ ÿéìÑ&±Yÿÿ ÿéõÑ&±ÿÿ ÿéðÐ&2ÿÿ ÿéóÑ&±²ÿÿ ÿèöÑ&± ÿÿ ÿéõÑ&`±ÿÿ ÿè÷Ñ&±¬ÿÿ ÿèôÑ&4ÿÿ ÿèñÑ&ñ-Dÿÿ ÿéóÑ&±ßÿÿ ÿéòÑ&±0¬ÿÿ ÿèõÑ&±Uÿÿ ÿéîÑ&4œÿÿ ÿèòÑ&Î-Dÿÿ ÿéóÑ&K-Aÿÿ ÿéòÑ&±(-ÿÿ ÿéêÑ&j4ÿÿ ÿçòÑ&±Pÿÿ ÿéòÑ&²4ÿÿ ÿéõÑ&54ÿÿ ÿéõÑ&±ÿÿ ÿèóÑ&î-Dÿÿ ÿéóÑ&±Uÿÿ ÿéóÑ&±¸ÿÿ ÿéóÑ&±ÿÿ ÿéõÑ&3±ÿÿ ÿèìÑ&!w-DÿÿÿèïÏ&.§.¦ÿÿ ÿéêÑ&4(oÿÿ ÿèôÏ&ƒ4ÿÿ ÿèîÑ&4Xÿÿ ÿéõÑ&±ÿÿÿ ÿéïÑ&4Hÿÿ ÿéðÑ&4¶ÿÿ ÿé÷Ñ&KEÿÿÿëîÈ&µ*}ÿÿ ÿéöÑ&4˜ÿÿ ÿéõÑ&4Žÿÿ ÿèôÑ& ¸-Dÿÿ ÿåðÑ&£-Dÿÿ ÿéóÑ&4Eÿÿ ÿéöÑ&”4ÿÿ ÿè÷Ñ&'Ó-Dÿÿ ÿéôÑ&K.Kÿÿ ÿéôÑ&±|ÿÿ ÿèìÑ&K'®ÿÿ ÿèíÑ&4*ÿÿ ÿèöÑ&4»ÿÿ ÿé÷Ñ&41ÿÿ ÿéóÑ&K1ÿÿ ÿéóÑ&4*|ÿÿ ÿéóÓ&*~8Hÿÿ ÿëõÏ&*}&bcÿÿ ÿèëÑ&¾-Dÿÿ ÿè÷Ñ&Œ-Dÿÿ ÿéôÑ&4Òÿÿ ÿéóÑ&4!ÿÿ ÿéôÑ&4!"ÿÿ ÿéôÑ&4 ™ÿÿ ÿéîÑ&K!#ÿÿ ÿèóÐ&* gÿÿ ÿéíÑ&45ÿÿ ÿèòÑ&4Ÿÿÿ ÿéîÑ&4 xÿÿ ÿéõÑ&4"îÿÿ ÿçõÑ&KYÿÿ ÿéóÑ&4"ÿÿ ÿèóÑ&"ø-Dÿÿ ÿé÷Ñ&4"cÿÿ ÿéöÑ&4",ÿÿ ÿéïÑ&4ÿÿ ÿèòÑ&-C-Dÿÿ ÿçóÑ&4æÿÿÿçîÏ&ì&ê ÿÿ ÿéôÑ&4žÿÿ ÿéóÑ&$›Kÿÿ ÿéñÑ&4ÿÿ ÿéïÑ&4&œ›ÿÿ ÿéîÑ&I&JKÿÿ ÿéóÑ&*~8Iÿÿ ÿèõÑ&š-Dÿÿ ÿèôÑ&ýKÿÿ ÿéòÑ&4ÿÿ ÿéóÑ&4'ÿÿ ÿèöÒ&**€ÿÿ ÿéôÑ&4&!¦úÿÿ ÿéóÑ&4*‚ÿÿ ÿéöÑ&K'èÿÿ ÿéóÑ&-E0Âÿÿ ÿéòÑ&K->ÿÿ ÿéôÑ&K*ƒÿÿ ÿéñÑ&K*†ÿÿ ÿçõÑ&‡-Eÿÿ ÿç÷Ñ&i&-E8Jÿÿ ÿêñÐ&·ÿÿÿèñÐ&·8Pÿÿ ÿèôÐ&ß÷ÿÿ ÿçóÐ&;ÿÿ ÿéóÍ&ýÿÿ ÿéóÍ&&ÿÿ ÿéëÏ&-FÿÿÿéñÐ&¸·ÿÿÿé÷Ð& °%úÿÿÿéîÐ& °œÿÿÿéôÐ& °ÚÿÿÿéõÐ&n °ÿÿÿéôÐ& °”ÿÿÿèôÐ& °(/ÿÿ ÿéõÐ&,-Rÿÿ ÿéôÏ& Òÿÿ ÿé÷Ï&ÿÿ ÿéðÐ&Ã-Rÿÿ ÿéöÐ&!Jÿÿ ÿéëÏ&)ÿÿÿ ÿéõÍ&ÿÿÿéòÐ& °-Gÿÿ ÿçòÐ&Pÿÿ ÿéõÏ&kÿÿ ÿéóÍ&ÿÿ ÿéöÏ&±ÿÿÿèöÐ& °+ÿÿ ÿèóÏ&îÿÿÿéöÐ& °*ÿÿ ÿéôÍ&žÿÿ ÿèîÏ&%›ÿÿÿéòÐ& °0öÿÿ ÿçôÍ&%ÌÿÿÿèîÐ&* °ÿÿ ÿêõÏ& ÿÿ ÿéóÍ&&ÿÿ ÿéóÏ&0ÖÿÿÿéòÐ& °ÚÿÿÿèíÐ& °ÿÿÿéíÐ& °&  ÿÿ ÿéòÐ&*-RÿÿÿèõÐ& °LÿÿÿéóÐ& °³ÿÿÿçõÑ& ° ÿÿÿéöÐ& °ÿÿ ÿèìÍ&ÁÿÿÿéôÐ& °-Hÿÿ ÿèóÐ&Œÿÿ ÿéòÍ&0Aÿÿ ÿéöÐ&(l-Rÿÿ ÿéêÐ&–ÿÿ ÿéôÏ&bÿÿ ÿéóÐ&  "ÿÿ ÿéñÍ&+Mÿÿ ÿéîÐ&è-RÿÿÿéóÐ& °ÿÿÿéõÑ& ° ÿÿ ÿéóÑ&%%ÿÿÿèôÐ& °]ÿÿ ÿèöÎ&»ÿÿ ÿéòÎ&%©ÿÿÿéõÐ&‹-Iÿÿ ÿéîÐ&ì-Rÿÿ ÿèôÐ&'Ø-Rÿÿ ÿé÷Í&1ÿÿ ÿçôÑ&-J8RÿÿÿéëÐ& °¾ÿÿ ÿèöÐ&<-Rÿÿ ÿéöÐ&D!JÿÿÿéóÐ& °"øÿÿ ÿèïÐ&-R0¹ÿÿ ÿéíÍ&5ÿÿÿéôÐ& °!_ÿÿ ÿéöÐ&#Î-RÿÿÿéñÐ& °$]ÿÿÿéóÐ& °"­ÿÿ ÿéïÐ&8Sÿÿ ÿéøÐ&-R/²ÿÿ ÿéöÐ&^-Rÿÿ ÿéôÐ&ž-Rÿÿ ÿèôÐ&(‚-Rÿÿ ÿéóÎ&$¸ÿÿÿéõÑ& °—ÿÿ ÿéôÐ&-R8Tÿÿ ÿèñÔ&% 8Uÿÿ ÿéòÐ&% -Rÿÿ ÿèôÏ&ÿ8Vÿÿ ÿé÷Ð&-R8Wÿÿ ÿéöÐ&N-RÿÿÿéöÐ&û+!ÿÿ ÿè÷Ñ&-R8Xÿÿ ÿçõÑ&-K-Rÿÿ ÿéõÐ&Æ8Yÿÿ ÿèôÐ&.Z-RÿÿÿéõÐ&›ûÿÿ ÿé÷Ð&(E-Rÿÿ ÿéóÐ&-L)åÿÿÿèõÐ&-I&˜ÿÿ ÿéõÏ&z!ÿÿ ÿéöÐ&.I-Rÿÿ ÿéõÒ&.J-Rÿÿ ÿéñÑ&'á-Rÿÿ ÿçòÐ&-M-Rÿÿ ÿèôÐ&ý-RÿÿÿéóÐ&ûºÿÿ ÿèôÐ&%(-Rÿÿ ÿéõÐ&%´-RÿÿÿéõÐ&û%èÿÿ ÿéóÐ&-N-RÿÿÿéõÐ&Þ&û!¦ÿÿ ÿçôÐ&-O-Rÿÿ ÿéõÐ&'ç-RÿÿÿéôÐ&û(…ÿÿ ÿéõÑ&-R. ÿÿ ÿçøÒ&Õ-Rÿÿ ÿçôÏ&-P/»ÿÿ ÿéöÑ&.~-Rÿÿ ÿéôÐ&'-Rÿÿ ÿèôÒ&%‚-Rÿÿ ÿé÷Ò&-Q-RÿÿÿéòÐ&û-.ÿÿ ÿéôÑ&*ƒ-Rÿÿ ÿéòÐ&- -RÿÿÿèîÑ&08ZÿÿÿìîÒ&(­ÿÿÿèöÒ&­8[ÿÿÿçîÒ&­8\ÿÿÿêîÒ&­8]ÿÿÿèëÑ&—8^ÿÿÿñïÑ&G8_ÿÿÿêîÒ&­®ÿÿÿêïÑ&—8`ÿÿ ÿêòÒ&­('ÿÿ ÿéëÑ&—˜ÿÿÿïôÑ&—8aÿÿÿéõÒ&­8bÿÿÿêëÑ&—8cÿÿÿéîÒ&­8dÿÿÿéîÒ&­8eÿÿÿèðÑ&—8fÿÿÿíõÑ&š8gÿÿÿêîÒ&­8hÿÿÿèëÑ&—8iÿÿÿèôÒ&­8jÿÿÿéîÑ&š8kÿÿÿçîÑ&š8lÿÿ ÿêëÑ&+&,—ÿÿÿéòÑ&°&¯šÿÿÿîïÑ&—8mÿÿÿèïÑ&š8nÿÿÿïðÑ&*—ÿÿ ÿîõÒ&­&§8oÿÿ ÿèñÑ&—¦ÿÿÿéôÑ&—ÿÿ ÿéóÑ&Š8pÿÿ ÿéóÑ&Љÿÿ ÿéóÑ&š8qÿÿ ÿèóÑ&Š8rÿÿÿêîÑ&š8sÿÿÿéîÑ&š8tÿÿÿéîÑ&š8uÿÿ ÿçìÔ&68vÿÿÿèõÑ&®‘ÿÿÿéóÏ&A@ÿÿÿéïÑ&pšÿÿÿæòÑ&š&æåÿÿÿèîÑ&‘8wÿÿ ÿèóÑ&Š!ÇÿÿÿèîÑ&š8xÿÿ ÿéñÑ&š8yÿÿÿéïÑ&‘#œÿÿ ÿèöÑ&š#ŽÿÿÿèîÑ&š8zÿÿ ÿéóÑ&Š8{ÿÿ ÿçóÑ&š8|ÿÿÿéîÑ&‘&l8}ÿÿ ÿéõÑ&š8~ÿÿÿéñÑ&š&™˜ÿÿ ÿçöÑ&š8ÿÿÿçìÔ&68€ÿÿÿçñÑ&š8ÿÿÿæõÔ&68‚ÿÿÿèîÑ&‘8ƒÿÿ ÿìôÑ&‘&5gÿÿ ÿæõÑ&å&Š8„ÿÿ ÿèóÑ&Š8…ÿÿÿéöÑ&‘8†ÿÿÿçöÑ&š8‡ÿÿÿåðÔ&6/]ÿÿÿç÷Ô&"8&"98ˆÿÿÿèõÔ&68‰ÿÿÿçôÔ&68ŠÿÿÿçíÔ&"98‹ÿÿÿéúÔ&"98Œÿÿ ÿèîÔ&"98ÿÿ ÿéóÏ&ijÿÿ ÿéóÏ&k ÿÿ ÿèôÏ&lmÿÿ ÿíõÏ&nlÿÿ ÿéôÏ&lÚÿÿÿðòÏ&,µ8Žÿÿ ÿèôÏ&l(/ÿÿ ÿêìÏ&lÿÿ ÿéóÏ&iÿÿ ÿêòÏ&lSÿÿ ÿóóÏ&kjÿÿÿçõÐ&ó-Sÿÿ ÿèñÏ&iDÿÿ ÿéôÏ&l-Tÿÿ ÿçõÑ&Š ÿÿ ÿéòÐ&Š/ÿÿ ÿèöÏ&lÿÿ ÿèøÑ&l-UÿÿÿïòÈ&Ö0Ìÿÿ ÿéóÑ&Š$ÿÿ ÿéðÏ&l’ÿÿ ÿéòÏ&Š#—ÿÿ ÿèóÏ&Šˆÿÿ ÿëöÏ&Šuÿÿ ÿèøÑ&-W-Vÿÿ ÿéóÔ&Œ&W&X8ÿÿ ÿè÷Ñ&-X-Yÿÿ ÿõóÑ& çÿÿ ÿëòÑ&Ô-Zÿÿ ÿèòÑ&³0¨ÿÿ ÿçòÑ&Ô-[ÿÿ ÿñòÑ&Ô-\ÿÿ ÿñóÑ& èÿÿ ÿêóÑ&(0§ÿÿ ÿéòÑ&<0§ÿÿ ÿéòÑ&-]0§ÿÿ ÿéòÑ& éÑÿÿ ÿîòÑ&“0§ÿÿ ÿéòÑ& ºÔÿÿ ÿéòÑ&Ôÿÿ ÿçöÑ&Ôÿÿ ÿèòÑ&O0§ÿÿ ÿéòÑ& ëÕÿÿ ÿèòÑ&Õ8‘ÿÿ ÿêôÑ&0§ÿÿ ÿèôÑ&0¨ÿÿ ÿéóÑ&0¨ÿÿ ÿéòÑ&;0§ÿÿ ÿíòÑ&ÏÕÿÿ ÿéòÑ&Õ8’ÿÿ ÿéòÑ&0¨8“ÿÿ ÿñòÑ&%I0¨ÿÿ ÿçòÑ&0¨8”ÿÿ ÿéòÑ&0¨8•ÿÿ ÿéòÑ&0§8–ÿÿ ÿéòÑ&o éÿÿ ÿóòÑ&Ô8—ÿÿ ÿèòÑ& éÿÿ ÿìòÑ&0§8˜ÿÿ ÿéòÑ&}0§ÿÿ ÿèòÑ&0§8™ÿÿ ÿéòÑ&Õ8šÿÿ ÿéóÑ&0¨8›ÿÿ ÿðòÑ&0¨8œÿÿ ÿæòÑ&0¨8ÿÿ ÿéòÑ& é8žÿÿ ÿæöÑ&Z0¨ÿÿ ÿéòÑ&0§8Ÿÿÿ ÿèõÑ&0§8 ÿÿ ÿèòÑ& évÿÿ ÿéòÑ&0§8¡ÿÿ ÿéòÑ& é8¢ÿÿ ÿæòÑ&0§8£ÿÿ ÿèòÑ&Ô8¤ÿÿ ÿèòÑ&Û&Ú0§ÿÿ ÿéóÑ&Ô8¥ÿÿ ÿìòÑ&-^0§ÿÿ ÿïóÑ&Õ8¦ÿÿ ÿéòÑ&Õ8§ÿÿ ÿçòÑ&Ô&ËÌÿÿ ÿéòÑ&0§8¨ÿÿ ÿèóÑ&ß&K0§ÿÿ ÿîòÑ&0¨8©ÿÿ ÿéôÑ&Õÿÿ ÿêòÑ&å0¨ÿÿ ÿéòÑ& êÿÿ ÿéòÑ&Ë&Õ8ªÿÿ ÿéóÑ&0§8«ÿÿ ÿêòÑ& ê-_ÿÿ ÿèóÑ&§ éÿÿ ÿèòÑ&0§8¬ÿÿ ÿîôÑ&”0¨ÿÿ ÿéòÑ&0§8­ÿÿ ÿçòÑ&Ô8®ÿÿ ÿéóÑ& é&TJÿÿ ÿïòÑ& éÿÿ ÿéóÑ&0¨8¯ÿÿ ÿèòÑ& éªÿÿ ÿèõÑ&ß0¨ÿÿ ÿéóÑ&Ì‹ÿÿ ÿéòÑ&0§8°ÿÿ ÿéòÑ& é*ÿÿ ÿéòÑ&&0§ÿÿÿèôÑ&i8±ÿÿ ÿêòÑ&0§8²ÿÿ ÿéòÑ& é8³ÿÿ ÿèóÑ&0§8´ÿÿ ÿéòÑ&£& é8µÿÿ ÿéòÑ& é8¶ÿÿ ÿéòÑ&0§8·ÿÿ ÿéõÑ& é8¸ÿÿ ÿéõÑ&ô éÿÿ ÿéòÑ& é8¹ÿÿ ÿéóÑ&>0§ÿÿ ÿéòÑ&Ï êÿÿ ÿðòÑ&Ô8ºÿÿ ÿéòÑ&ç& é8»ÿÿ ÿèôÑ&Ô&öõÿÿ ÿéòÑ& é8¼ÿÿ ÿêõÑ&%?0§ÿÿ ÿéõÑ& é Üÿÿ ÿéóÑ& é ÿÿ ÿéòÑ& é&<ÿÿ ÿéóÑ&0§8½ÿÿ ÿèòÑ& é8¾ÿÿ ÿéòÑ&- éÿÿ ÿîòÑ& é8¿ÿÿ ÿéòÑ& é8Àÿÿ ÿèóÑ& é8Áÿÿ ÿñóÑ&0¨8Âÿÿ ÿéòÑ&0§8Ãÿÿ ÿéóÑ&0¨8Äÿÿ ÿéóÑ& é8Åÿÿ ÿéóÑ& é8Æÿÿ ÿìòÑ& é8Çÿÿ ÿéòÑ&ê éÿÿ ÿêòÑ&5& é8Èÿÿ ÿèôÑ&0§8Éÿÿ ÿêóÑ&i8Êÿÿ ÿéòÑ& é&4£ÿÿ ÿêòÑ& ê&t8ËÿÿÿéòÑ&iµÿÿ ÿéóÑ&¥ÌÿÿÿéòÑ&i8Ìÿÿ ÿéõÑ&i8ÍÿÿÿêòÑ&iFÿÿ ÿèòÑ&Û&0§8Îÿÿ ÿéòÑ& é8Ïÿÿ ÿêóÑ&0§8Ðÿÿ ÿéóÑ& ê8ÑÿÿÿéòÑ&iÒÿÿ ÿéòÑ& é8Òÿÿ ÿêòÑ& é&Ýæÿÿ ÿéôÑ& é8Óÿÿ ÿïòÑ& é ÿÿ ÿéòÑ& é8Ôÿÿ ÿèóÑ& ê8Õÿÿ ÿêóÑ& ê8Öÿÿ ÿîòÑ& êÿÿÿéòÑ&ilÿÿ ÿéóÑ& é8×ÿÿ ÿéòÑ& énÿÿ ÿéóÑ&i8Øÿÿ ÿíòÑ& é8Ùÿÿ ÿéòÑ& é8Úÿÿ ÿèòÑ& ê8Ûÿÿ ÿèòÑ& éÖÿÿ ÿéóÑ&Ì8Üÿÿ ÿéóÑ& é8Ýÿÿ ÿêóÑ& é8Þÿÿ ÿéóÑ&T&"æ éÿÿ ÿéòÑ&s éÿÿ ÿéòÑ& ê!ÿÿ ÿéòÑ&"yiÿÿ ÿèòÑ&" éÿÿ ÿèòÑ&5 éÿÿ ÿéòÑ&#Ë éÿÿ ÿéòÑ&«& é8ßÿÿ ÿéòÑ& é8àÿÿ ÿíóÑ&i"²ÿÿ ÿéóÑ&Ü&Ý éÿÿ ÿéòÑ&i"òÿÿ ÿéòÑ&i"¾ÿÿ ÿèôÑ& ê&Ø8áÿÿ ÿéòÑ&5&4 éÿÿÿïòÑ&`iÿÿ ÿéóÑ& é&ç8âÿÿ ÿêòÑ&0§8ãÿÿ ÿèóÑ& é& ¹8äÿÿÿéòÑ&i"ÿÿ ÿçõÑ& ê8åÿÿ ÿéóÑ& é8æÿÿ ÿçòÑ&$ êÿÿ ÿîóÑ& ù&i8çÿÿ ÿêòÑ&i8èÿÿÿéóÑ&%iÿÿ ÿíòÑ& é/3ÿÿ ÿéòÑ& é8éÿÿ ÿèõÑ&p& é8êÿÿ ÿéóÑ&i$5ÿÿ ÿêõÑ& é&ÛÚÿÿ ÿéòÑ&T& é8ëÿÿ ÿêôÑ& ê8ìÿÿ ÿéòÑ&Ì8íÿÿ ÿêóÑ&$iÿÿÿéòÑ&$§iÿÿ ÿéòÑ&"Ù éÿÿ ÿèôÑ& ê$ÿÿÿìòÑ&i/7ÿÿ ÿéòÑ&$¯iÿÿ ÿéòÑ&Ò& é8îÿÿ ÿéòÑ& é8ïÿÿ ÿêòÑ&Ì$ãÿÿÿèôÑ&Ì&#x8ðÿÿ ÿìóÑ&i$öÿÿ ÿîóÑ& ø& é8ñÿÿ ÿçòÑ& é8òÿÿÿèòÑ&Ì8óÿÿÿçòÑ&i/RÿÿÿéòÑ&Ì8ôÿÿ ÿçöÑ& ê&á8õÿÿ ÿéóÑ&Ì8öÿÿÿçöÑ&Ì&á8÷ÿÿ ÿêóÑ&Ì8øÿÿ ÿìóÒ&÷8ùÿÿÿéòÑ&{iÿÿÿçòÑ&i ÿÿ ÿéòÑ&i8úÿÿ ÿèòÑ& é&˜8ûÿÿÿéòÑ&Ì8üÿÿÿåòÑ&Ì8ýÿÿ ÿéóÑ&0§8þÿÿÿèòÑ&inÿÿ ÿèòÑ&œ& é ÿÿ ÿèòÑ&iœÿÿÿçôÑ&i8ÿÿÿ ÿçòÑ& ê0[ÿÿ ÿèóÑ& é&ß9ÿÿ ÿìôÑ&Ì9ÿÿ ÿîóÑ&I& é úÿÿ ÿèóÑ& ¸& é ¹ÿÿÿçòÑ&Ì9ÿÿÿéòÑ&i9ÿÿ ÿçõÑ& é9ÿÿ ÿèõÑ&Ü& é9ÿÿ ÿèôÑ&i9ÿÿ ÿèõÑ&Ì9ÿÿ ÿçòÑ& ê9ÿÿ ÿèõÑ&i9 ÿÿ ÿèòÑ& é9 ÿÿ ÿèôÑ& é&Ø9 ÿÿÿéöÑ&i&$w9 ÿÿ ÿçòÑ&5& é" ÿÿ ÿéõÑ& ê9 ÿÿ ÿèôÑ&i9ÿÿÿèðÒ&÷øÿÿ ÿëóÑ&&ÌŒÿÿÿèòÑ&õ&i9ÿÿÿéòÑ&ö&i9ÿÿÿèòÑ&Ì9ÿÿ ÿéôÑ&i9ÿÿ ÿïòÑ& é9ÿÿ ÿçôÑ&Ì9ÿÿ ÿèóÑ&i9ÿÿÿèòÑ&&i9ÿÿÿéôÑ&@&i9ÿÿ ÿèòÑ&Ì9ÿÿ ÿçõÑ& é9ÿÿ ÿéòÑ& é9ÿÿ ÿèôÑ& ê9ÿÿ ÿçõÑ& é9ÿÿÿèòÑ&Ì9ÿÿÿèöÑ&i9ÿÿÿéòÑ&i9ÿÿ ÿèóÑ& ê&à9 ÿÿÿèöÑ&Ì&$69!ÿÿ ÿçõÑ& ê9"ÿÿ ÿéòÑ&Ì9#ÿÿÿêöÑ&i&$w5ÿÿÿéòÑ&i9$ÿÿ ÿçôÑ& é9%ÿÿ ÿîóÑ& ù&i9&ÿÿ ÿèöÑ& ê9'ÿÿÿéòÑ&i9(ÿÿÿêõÑ& š& ›iÿÿÿëòÒ&÷9)ÿÿÿéòÑ&i9*ÿÿÿéòÑ&Ì9+ÿÿ ÿéòÑ&i9,ÿÿ ÿéòÑ&Ì9-ÿÿ ÿèöÑ& é9.ÿÿ ÿéôÑ&i9/ÿÿÿèôÑ&i90ÿÿÿèõÑ&Ì91ÿÿÿéðÒ&/I÷ÿÿ ÿéöÑ& ê92ÿÿ ÿêõÑ& é93ÿÿ ÿíòÑ&©Ìÿÿ ÿéóÑ& é94ÿÿÿèòÑ&i95ÿÿ ÿèóÑ& é96ÿÿÿëöÑ&i97ÿÿÿèòÑ&i98ÿÿ ÿêõÑ& ê99ÿÿ ÿèôÑ&i9:ÿÿ ÿîóÑ& é9;ÿÿÿçöÑ&á&Ì9<ÿÿÿçöÑ&á&Ì9=ÿÿÿéòÑ&i9>ÿÿÿçöÒ&÷9?ÿÿÿèòÑ&i9@ÿÿ ÿéòÑ&i9Aÿÿ ÿéöÑ&i9Bÿÿ ÿèôÑ&i9Cÿÿ ÿéôÐ&_+Ûÿÿ ÿèóÏ&j•ÿÿ ÿèöÏ&˜/lÿÿ ÿèôÏ&•üÿÿ ÿèõÐ&•¡ÿÿ ÿéóÑ& `ÿÿ ÿèëÏ&•aÿÿ ÿèôÏ&•bÿÿ ÿèîÏ&•ÿÿ ÿèóÏ&•ÿÿ ÿèôÏ&•cÿÿ ÿèòÏ&•dÿÿ ÿéõÒ&efÿÿ ÿéõÏ&˜ÿÿ ÿèòÏ&•¾ÿÿ ÿèðÏ&•gÿÿ ÿèòÏ&•hÿÿ ÿèôÏ&•¿ÿÿ ÿéóÎ&2xÿÿ ÿèöÏ&•iÿÿ ÿèèÐ&+%&/•ÿÿ ÿèôÏ&•¤ÿÿ ÿèìÏ&•(¾ÿÿ ÿèõÏ&•ÿÿ ÿèóÏ&•jÿÿ ÿèôÏ&•žÿÿ ÿèêÐ&•Mÿÿ ÿèõÏ&•kÿÿ ÿèõÏ&•ÿÿ ÿèòÏ&•Nÿÿ ÿéòÏ&-`xÿÿ ÿèóÏ&•lÿÿ ÿèñÏ&•Óÿÿ ÿèìÏ&•aÿÿ ÿéòÑ&x/Óÿÿ ÿèôÏ&½žÿÿÿèòÏ&n&moÿÿ ÿéóÑ&˜Ôÿÿ ÿèñÏ&•ÿÿÿçòÒ&pqÿÿ ÿéòÏ&˜Äÿÿ ÿéôÑ&˜àÿÿ ÿèõÐ&•Lÿÿ ÿèôÏ&•rÿÿ ÿéòÐ&•&(!xÿÿ ÿéóÏ&yxÿÿ ÿæöÏ&•Aÿÿ ÿéóÏ&˜ëÿÿÿéòÑ&0‚9Eÿÿ ÿèòÏ&½.ÿÿ ÿèóÏ&•)ÿÿ ÿèõÏ&•-aÿÿ ÿéõÎ&åÿÿ ÿèõÑ&•Rÿÿ ÿéóÏ&˜'ÿÿ ÿè÷Ï&•1ÿÿ ÿèöÏ&•–ÿÿ ÿè÷Ð&• /ÿÿ ÿèóÏ&•sÿÿ ÿèöÏ&•#Hÿÿ ÿèóÐ&½&@Yÿÿ ÿéñÏ&˜$]ÿÿ ÿèîÏ&„&J#×ÿÿ ÿéòÐ&˜#¢ÿÿ ÿéóÏ&¾½ÿÿ ÿèóÐ&˜tÿÿ ÿéöÏ&˜uÿÿ ÿéöÏ&˜vÿÿ ÿèðÏ&½wÿÿ ÿéóÐ&½$bÿÿ ÿèôÏ&•!ÿÿ ÿèòÏ&˜-Cÿÿ ÿéôÑ&˜$ÿÿ ÿéóÏ&˜$ÿÿ ÿéõÑ&—˜ÿÿ ÿéõÑ&G&½9Fÿÿ ÿèôÐ&‹&Ç9Gÿÿ ÿçõÑ&˜xÿÿ ÿçòÒ&yzÿÿ ÿèóÏ&½{ÿÿ ÿçöÑ&½|ÿÿ ÿèõÏ&˜£ÿÿ ÿéòÏ&˜,ÿÿ ÿèõÏ&½~ÿÿ ÿéòÑ&.ÿÿ ÿçôÏ&˜™ÿÿ ÿèóÐ&•*yÿÿ ÿéñÏ&½0"ÿÿ ÿéïÏ&½ÿÿÿèôÑ&¨9Hÿÿ ÿéòÏ&½->ÿÿ ÿèóÐ&‚&ƒ9Iÿÿ ÿèóÏ&ƒ&‚9Jÿÿ ÿéòÐ&-b½ÿÿ ÿéðÏ&œ›ÿÿ ÿéóÏ&Ñ›ÿÿ ÿéßÏ&Z˜ÿÿ ÿé÷Ï&Zÿÿ ÿèõÏ&šQÿÿ ÿéóÏ&›ÿÿ ÿèíÐ&QÅÿÿ ÿéìÏ&YZÿÿ ÿéòÏ&Zÿÿ ÿéðÏ&´Zÿÿ ÿéòÏ& Ñÿÿ ÿéõÏ&Q›ÿÿ ÿéìÏ&œQÿÿ ÿçöÐ&Áÿÿ ÿéõÏ&RQÿÿ ÿéôÏ&*ÌQÿÿ ÿéîÏ&ð Ñÿÿ ÿéöÏ&Qÿÿ ÿéôÏ&” Ñÿÿ ÿéóÏ&Q1ÿÿ ÿéôÏ&ž›ÿÿ ÿèöÏ&Q§ÿÿ ÿéïÏ&*›ÿÿ ÿéòÏ&º Ñÿÿ ÿéõÏ&žÿÿ ÿéèÐ& Ñ&6/ÿÿ ÿèôÏ&Q(/ÿÿ ÿèôÏ&]mÿÿ ÿéôÏ& Ñ Òÿÿ ÿéóÏ&‡Qÿÿ ÿéôÏ&ÚQÿÿ ÿéöÏ&Z¬ÿÿ ÿéïÏ&Q¬ÿÿ ÿèôÏ&Q!ÿÿ ÿèöÑ& Ñ­ÿÿ ÿçóÏ&Óÿÿ ÿéòÏ&Q0¬ÿÿÿçëÐ&¯®ÿÿÿçñË&°&ª9Kÿÿ ÿéóÏ& Ñ&}/Õÿÿ ÿéòÏ&Q(-ÿÿ ÿçôÏ&ƒªÿÿ ÿéëÏ& Ð)ÿÿÿ ÿçòÏ&ª9LÿÿÿçëÉ&-0ÿÿ ÿéèÏ& ïÿÿ ÿèôÐ&žÐÿÿ ÿéóÏ& ÑQÿÿ ÿéïÐ&R Ñÿÿ ÿéòÏ& ÑSÿÿ ÿéòÏ& ÑTÿÿ ÿéôÏ&Qœÿÿ ÿéîÏ& Ñÿÿ ÿéöÏ& Ñÿÿ ÿéöÏ&ž±ÿÿ ÿéóÐ&¸0Òÿÿ ÿéóÏ& Ѳÿÿ ÿéöÐ& ѳÿÿ ÿéòÐ& Ñ0öÿÿ ÿéëÏ& Ñ´ÿÿ ÿéöÏ&ž,éÿÿ ÿéõÏ&ž·ÿÿ ÿéðÏ&Q.}ÿÿ ÿéõÏ&Qÿÿ ÿéïÏ& Ѹÿÿ ÿèðÏ&ÇZÿÿ ÿéìÏ&Zÿÿ ÿéêÐ&ZMÿÿ ÿèõÏ&Qgÿÿ ÿêõÏ&]¹ÿÿ ÿéòÏ&Qºÿÿ ÿéôÏ& &»/ÿÿ ÿçõÐ&(Qÿÿ ÿéòÏ&Z0×ÿÿ ÿéöÏ&]™ÿÿ ÿèìÏ&¸¼ÿÿ ÿéôÏ&Qôÿÿ ÿèñÏ&D Ñÿÿ ÿéôÏ&~ Ñÿÿ ÿéöÏ&Qóÿÿ ÿè÷Ï& Ñ ÿÿ ÿéõÐ&[&Y9MÿÿÿçíÐ&&ªÿÿ ÿéòÏ&Q¤ÿÿ ÿéôÏ&Q`ÿÿ ÿéõÐ&‹ Ñÿÿ ÿéíÑ& ÑŸÿÿ ÿéóÏ& åÿÿ ÿéôÑ&à Ñÿÿ ÿéìÏ& Ñaÿÿ ÿéöÏ&Aøÿÿ ÿé÷Ï& ѽÿÿ ÿéìÏ&ždÿÿÿéïÏ&19Nÿÿ ÿéõÐ&ùñÿÿÿçëÐ&ª0‡ÿÿ ÿéôÐ&™Qÿÿ ÿéóÏ&Q+ÿÿ ÿéóÏ& Ð'ÿÿ ÿéôÑ&˜ Ñÿÿ ÿéóÐ& Ðzÿÿ ÿèõÏ& ÑZÿÿ ÿéöÐ& ÑvÿÿÿéõÏ&É&ʾÿÿ ÿééÏ& Ñÿÿ ÿéòÐ& ¿ÿÿ ÿêøÑ&¸ ÿÿ ÿéôÐ& ÑÀÿÿ ÿèìÏ& ÑÁÿÿ ÿé÷Ð& Ñ-²ÿÿ ÿèöÏ&\ÿÿ ÿèñÐ&g&&e&jÿÿ ÿéêÐ& Ñ–ÿÿ ÿçõÏ&Qÿÿ ÿéöÏ&¸”ÿÿ ÿæöÏ&AQÿÿ ÿèõÐ&Q•ÿÿ ÿæôÏ&¸-ÿÿ ÿé÷Ï&ZÆÿÿ ÿéôÏ& Ñ,Ëÿÿ ÿéòÏ&j%>ÿÿ ÿèñÏ&žÿÿ ÿéïÏ& Ðáÿÿ ÿéóÐ& Ѳÿÿ ÿéòÏ&© Ðÿÿ ÿéôÏ&üíÿÿ ÿéõÏ&A!ÿÿ ÿéóÏ&—žÿÿ ÿéóÏ&.€¸ÿÿ ÿéóÏ&îAÿÿ ÿéõÑ&]Rÿÿ ÿéöÏ&-z.ñÿÿ ÿéôÏ& )|ÿÿ ÿçõÏ&]+Bÿÿ ÿéõÑ&-g ÿÿ ÿéôÏ&`\ÿÿ ÿéëÏ&¾Aÿÿ ÿìõÐ&g%ªÿÿ ÿêóÑ&¸%%ÿÿ ÿéöÐ& "Iÿÿ ÿéóÏ& Ñ'ÿÿ ÿçöÒ&f Ñÿÿ ÿéñÏ& Ð.ÿÿ ÿéõÐ&‹ Ñÿÿ ÿçòÐ&1&ª9Pÿÿ ÿèíÏ&¸+Cÿÿ ÿéñÐ&X Ñÿÿ ÿéíÏ&¸-iÿÿ ÿèïÏ&¸-hÿÿ ÿéöÏ& Ð ×ÿÿ ÿèõÏ&]-jÿÿ ÿèòÏ&¸.ÿÿ ÿéøÏ&¸ ÿÿ ÿèôÏ&¸9Qÿÿ ÿéóÏ&ž&Çÿÿ ÿéôÑ&QÌÿÿ ÿéóÏ&ž)ÿÿ ÿéòÏ& Zžÿÿ ÿèõÏ& ÑVÿÿ ÿèðÏ& Ñuÿÿ ÿéõÏ& Þÿÿ ÿèóÏ& Ð-dÿÿ ÿèóÏ&Qïÿÿ ÿéôÏ& (mÿÿ ÿêõÌ&-z.3ÿÿ ÿéìÏ&žÿÿ ÿéðÐ& # ÿÿ ÿèñÏ&¸ÿÿÿèñÈ&«0Íÿÿ ÿéôÐ& Ñÿÿ ÿèõÑ&¸‰ÿÿ ÿèöÏ&žhÿÿ ÿëõÏ&]&!9Rÿÿ ÿé÷Ï& Ñ"nÿÿ ÿéóÏ& Ñ6ÿÿ ÿéñÐ&Q-kÿÿ ÿéöÏ& Ñ"mÿÿ ÿéìÏ&tjÿÿ ÿéöÐ&A!ÿÿ ÿéïÏ& !=ÿÿ ÿéöÐ&]#Yÿÿ ÿèòÏ& Ð"@ÿÿ ÿéôÏ&víÿÿ ÿäöÏ&]ýÿÿ ÿéôÏ&g&!1(ÿÿ ÿéôÏ& Ð!_ÿÿ ÿéïÑ&žÿÿ ÿéóÏ&ž*ÿÿ ÿéõÏ&A"îÿÿ ÿèõÏ& аÿÿ ÿë÷Ï&]¥ÿÿ ÿéóÏ& Ñ&Žÿÿ ÿçíÐ&¸:ÿÿ ÿèõÏ& Ó]ÿÿ ÿéôÏ&g9Sÿÿ ÿéòÏ& Ð"Fÿÿ ÿèôÐ&ž!†ÿÿ ÿéóÐ&ž!Šÿÿ ÿéöÏ& Çÿÿ ÿèóÐ&Y& @ÿÿ ÿèöÏ&«&-l9Tÿÿ ÿèðÑ&$9Uÿÿ ÿéõÏ&]Ùÿÿ ÿèôÐ& &@"çÿÿ ÿéñÏ& Ñ!(ÿÿ ÿéóÏ&¸óÿÿ ÿéñÏ& !Œÿÿ ÿèõÐ&«&9Vÿÿ ÿéôÏ& Ð"óÿÿ ÿéñÏ& Ñ$]ÿÿ ÿéöÏ& "7ÿÿ ÿè÷Ñ&A/ÖÿÿÿéîÏ& &ø1ÿÿ ÿêðÏ&g#wÿÿ ÿéòÏ&Q$Jÿÿ ÿéôÐ&A0pÿÿ ÿéôÏ&Ã&úAÿÿ ÿéñÑ&Q$”ÿÿ ÿéóÏ& ÑMÿÿ ÿèïÓ&«&9Wÿÿ ÿçïÏ& -mÿÿ ÿèõÐ&]ÿÿ ÿéòÐ& Ð2ÿÿ ÿè÷Ï&¸Íÿÿ ÿé÷Ï&-n¸ÿÿ ÿéõÏ&Qÿÿ ÿêðÑ&g‡ÿÿ ÿéóÐ& Ñ.“ÿÿ ÿéóÏ& $¸ÿÿ ÿéöÏ& Ñvÿÿ ÿèõÏ&ž$ÿÿ ÿçòÐ&ž-oÿÿ ÿéòÐ& $Îÿÿ ÿéôÏ&üAÿÿÿèôÎ&ÿ9Xÿÿ ÿéïÏ& $ªÿÿ ÿèôÏ&39Yÿÿ ÿéôÏ&í9Zÿÿ ÿéôÏ&A'ßÿÿ ÿèôÏ&¸$rÿÿ ÿéòÏ&f&egÿÿ ÿéöÏ&A-pÿÿ ÿéóÏ&¸.ÿÿ ÿéôÏ&.úAÿÿ ÿéðÐ&j*¸ÿÿ ÿéïÐ&g-…ÿÿ ÿêïÏ&¸.„ÿÿ ÿéõÏ&g&f-qÿÿ ÿèõÑ&g&f-rÿÿ ÿéôÏ&¸)Ëÿÿ ÿéóÏ&¸*ÿÿ ÿéóÒ&.”žÿÿ ÿéôÏ&g%Þÿÿ ÿéöÐ&0 1ÿÿ ÿçõÏ& 0›ÿÿ ÿèõÏ&£ Ðÿÿ ÿéóÏ&¸†ÿÿ ÿêõÏ&]&G9[ÿÿ ÿéñÐ&Ç9\ÿÿ ÿèõÐ&«0Lÿÿ ÿéòÑ&A)Ìÿÿ ÿèõÐ&¸&˜ÿÿ ÿçõÑ&Axÿÿ ÿéòÏ& -sÿÿ ÿèóÐ&«ÿÿ ÿéõÐ&.•¸ÿÿ ÿéíÏ&A-9ÿÿÿèïÌ&«/2ÿÿ ÿéõÑ& Ð*·ÿÿ ÿé÷Ï&žÿÿ ÿéóÏ&-t-ÿÿ ÿé÷Ð&g&}9]ÿÿ ÿçöÏ& 9^ÿÿ ÿèøÓ&«9_ÿÿÿéóÑ&k&-v9`ÿÿ ÿèôÐ&-u Ðÿÿ ÿéòÏ&/¥jÿÿ ÿéóÐ&A+`ÿÿ ÿéóÏ&¸'÷ÿÿ ÿéïÑ&Q'#ÿÿ ÿèöÏ&]-íÿÿ ÿéöÏ&jFÿÿ ÿéòÐ&A*¹ÿÿ ÿèóÐ&«&÷9aÿÿ ÿéôÏ&¸*Ñÿÿ ÿçïÏ&¸-wÿÿ ÿéòÏ&žüÿÿ ÿéôÏ&]* ÿÿ ÿéóÒ&¸iÿÿ ÿéîÏ&ï&j9bÿÿ ÿèôÏ&¸'øÿÿ ÿéñÏ& Ð'ÿÿ ÿèóÏ&«9cÿÿ ÿéòÏ&j%áÿÿ ÿçôÏ& (Kÿÿ ÿêòÐ&¸·ÿÿ ÿèõÏ&g~ÿÿ ÿèòÏ&ž9ÿÿ ÿéôÏ&A.÷ÿÿ ÿéøÏ&Ÿ ÿÿ ÿéöÒ&g*€ÿÿÿèïÒ&«&9dÿÿÿéñÏ&l9eÿÿ ÿéõÏ&]*ºÿÿ ÿéøÏ&¡Aÿÿ ÿèöÐ&«'ûÿÿ ÿèõÐ&«&9fÿÿ ÿéòÐ&¾.ÿÿ ÿêõÓ&¸Sÿÿ ÿé÷Ñ&A.£ÿÿ ÿçôÏ&A-xÿÿ ÿéöÏ&j&â!£ÿÿ ÿéôÏ&]Øÿÿ ÿèöÑ&4&«9gÿÿ ÿéñÏ&¸0"ÿÿ ÿéôÏ&j9hÿÿ ÿçóÑ&¡ ÿÿ ÿéöÏ&j&â9iÿÿ ÿéóÐ&ž*yÿÿ ÿéôÏ&j&-y9jÿÿ ÿèõÐ&A¢ÿÿ ÿè÷Ò&÷9kÿÿ ÿéõÑ& Ð5ÿÿ ÿêñÏ&¸%Sÿÿ ÿéòÏ&´& å æÿÿ ÿç÷Ï&h&ijÿÿ ÿèóÐ&«&?=ÿÿ ÿèôÐ&]*µÿÿ ÿçõÏ&Aþÿÿ ÿçôÏ& ÐÅÿÿÿèïÍ&«ÿÿ ÿêõÏ&-z-{ÿÿ ÿèòÐ&A%Tÿÿ ÿç÷Ï&«&iªÿÿ ÿéóÑ&AÍÿÿ ÿèôÏ&«9lÿÿ ÿèòÏ&g-ÿÿ ÿèòÑ&g7ÿÿ ÿéôÑ& Ñêÿÿ ÿêõÎ&-z+bÿÿ ÿéðÏ&j9mÿÿ ÿçõÐ&«‡ÿÿ ÿéóÏ&j.@ÿÿ ÿéòÏ&A*Ðÿÿ ÿéôÐ&¬¢ÿÿ ÿêòÐ&¸.?ÿÿ ÿéÞÏ&Ç-|ÿÿ ÿéðÏ&,lÿÿ ÿñóÏ&,Èÿÿ ÿêòÏ&,(ÿÿ ÿéóÏ&, ÿÿ ÿîõÐ&m,ÿÿ ÿéìÏ&,Yÿÿ ÿéóÏ&£‰ÿÿ ÿçøÏ&,%¼ÿÿ ÿêóÐ&¿,ÿÿ ÿî÷Ï&,ÿÿ ÿéìÏ&,("ÿÿ ÿéêÏ&,ÿÿ ÿçõÏ&,!vÿÿ ÿìõÏ&,ÿÿ ÿìõÏ&,ÿÿ ÿèôÏ&,(/ÿÿ ÿéëÏ&š,ÿÿ ÿèíÏ&££ÿÿ ÿèöÏ&£Ÿÿÿ ÿìôÏ&,Fÿÿ ÿéôÏ&,Úÿÿ ÿêôÏ&,*¶ÿÿ ÿéõÏ&,Rÿÿ ÿéòÏ&,0¬ÿÿ ÿîóÏ&£)ÿÿ ÿéñÏ&,8ÿÿ ÿèõÏ&,»ÿÿ ÿéöÏ&,ÿÿ ÿ÷óÏ&,Qÿÿ ÿçòÐ&£Pÿÿ ÿêõÏ&£/+ÿÿ ÿòõÏ&,ÿÿ ÿéïÐ&R,ÿÿ ÿëèÏ&ï,ÿÿ ÿéòÏ&,&µÿÿ ÿéõÏ&,!ÿÿ ÿéçÐ&,-}ÿÿ ÿèðÐ&'¡£ÿÿ ÿéòÏ&-0°ÿÿ ÿééÏ&£µÿÿ ÿéêÏ&j,ÿÿ ÿéðÏ&,*Öÿÿ ÿîõÏ&,%"ÿÿ ÿéóÐ&,0÷ÿÿ ÿèñÐ&&e&-&kÿÿ ÿéöÏ&£øÿÿ ÿéóÏ&,0Öÿÿ ÿéõÐ&,óÿÿ ÿèõÏ&¼£ÿÿ ÿéóÏ&-&ÙØÿÿ ÿèóÏ&,Vÿÿ ÿéôÑ& ¸,ÿÿ ÿêíÑ&,Ÿÿÿ ÿéóÐ&,zÿÿ ÿéõÐ&,ÿÿ ÿíöÐ&,ÿÿ ÿèôÐ&,Pÿÿ ÿéóÏ&,'ÿÿ ÿæöÏ&,-~ÿÿ ÿéêÐ&,cÿÿ ÿééÏ&,ÿÿ ÿæôÏ&,-ÿÿ ÿèñÏ&,Žÿÿ ÿêôÏ&,-‚ÿÿ ÿòóÏ&—,ÿÿ ÿèóÐ&,Œÿÿ ÿèïÏ&£-ƒÿÿ ÿéóÏ&,6ÿÿ ÿèôÏ&£'Øÿÿ ÿèöÏ&£%«ÿÿ ÿéóÏ&,&Çÿÿ ÿéóÐ&£ Oÿÿ ÿèòÏ&£ Wÿÿ ÿéìÐ&£øÿÿ ÿëôÏ&,(mÿÿ ÿìöÏ&£-„ÿÿ ÿéõÐ&‹,ÿÿ ÿèïÏ&,wÿÿ ÿéñÏ&,.ÿÿ ÿéíÏ&-Éÿÿ ÿéëÏ&,¾ÿÿ ÿèôÏ&,9oÿÿ ÿìõÐ&£%ªÿÿ ÿéõÑ&£Oÿÿ ÿéôÑ&,Íÿÿ ÿéñÐ&,gÿÿ ÿé÷Ï&,Œÿÿ ÿéöÏ&£ ×ÿÿ ÿéðÐ&£# ÿÿ ÿéïÏ&,!=ÿÿ ÿéíÏ&.&2-ÿÿ ÿéöÐ&£!ÿÿ ÿéòÏ&,"Kÿÿ ÿéóÐ&-0–ÿÿ ÿéóÏ&,"ÿÿ ÿêöÏ&-&-l9pÿÿ ÿäöÏ&,ýÿÿ ÿæòÏ&,!ÿÿÿ ÿì÷Ï&,¥ÿÿ ÿïòÏ&-£ÿÿ ÿèöÏ&-&#"#!ÿÿ ÿèôÐ&,&@"çÿÿ ÿèóÐ&,&@Yÿÿ ÿìôÐ&£0oÿÿ ÿèõÏ&, Óÿÿ ÿéïÑ&,ÿÿ ÿèôÐ&£#¸ÿÿ ÿèïÐ&£0¹ÿÿ ÿéòÏ&+,ÿÿ ÿéõÏ&£"îÿÿ ÿêðÏ&£#wÿÿ ÿêöÏ&,vÿÿ ÿéôÏ&,üÿÿ ÿçóÐ&,&rÿÿ ÿëôÏ&-.ûÿÿ ÿéòÐ&£% ÿÿ ÿçòÑ&£9qÿÿ ÿéðÐ&£*¸ÿÿ ÿîòÏ&,$Iÿÿ ÿèõÐ&,ÿÿ ÿèòÐ&£/Mÿÿ ÿéóÏ&,†ÿÿ ÿéóÏ&,*ÿÿ ÿéôÏ&,)Ëÿÿ ÿæïÏ&-,(ÿÿ ÿéïÐ&£-…ÿÿ ÿé÷Ï&,ÿÿ ÿéõÑ&,*·ÿÿ ÿéóÏ&-&9rÿÿ ÿéôÏ&£* ÿÿ ÿéòÐ&,*¹ÿÿ ÿêîÑ&,'ÿÿ ÿîôÏ&, ÿÿ ÿíõÏ&-&Þ9sÿÿ ÿéøÏ&,¡ÿÿ ÿéõÏ&,*ºÿÿ ÿèõÐ&-&9tÿÿ ÿçôÏ&-0ÿÿ ÿðòÐ&¤ÿÿÿéñÑ&dOÿÿ ÿéôÐ&feÿÿ ÿèñÐ&ehÿÿ ÿèóÐ&çeÿÿ ÿèóÐ&*»ÿÿ ÿçõË&j9uÿÿ ÿçõÏ&j& ÿÿ ÿéóÏ&l&k9vÿÿ ÿçðÑ&qpÿÿ ÿéóÒ&oiÿÿ ÿèôÐ&o*ÿÿÿéòÑ&m&º9wÿÿÿéðÑ&rsÿÿÿéîÉ&ÏlÿÿÿéðË&mnÿÿ ÿéñÐ&o9xÿÿ ÿéóÑ&Îqÿÿ ÿéòÐ&o*¼ÿÿÿéðÆ&Ä9yÿÿÿéÝÈ&9zÿÿÿêíÈ&9{ÿÿÿèÝÈ&9|ÿÿÿèôÈ&9}ÿÿÿîñÈ&9~ÿÿ ÿîõÉ&ï9ÿÿ ÿèêÉ&Á9€ÿÿÿéîÈ&ÿÿ"ÿéêÉ&Á/ÿÿ ÿðóÈ&0ÿÿÿçíÈ&9ÿÿÿííÉ&ï9‚ÿÿ"ÿçÜÊ&1ÿÿÿéïÊ&9ƒÿÿÿéõÉ&ï9„ÿÿ ÿëöÊ&9…ÿÿÿéðÊ& [ÿÿÿéóÉ&ï9†ÿÿÿèóÉ&Á9‡ÿÿÿèïÉ&Á9ˆÿÿÿéóÉ&ÁBÿÿÿïòÊ&9‰ÿÿÿéâÉ&"&Á9ŠÿÿÿèðÉ&*ÎÁÿÿ ÿéñÉ&Á*Ïÿÿ ÿìôÉ&"/&gÁÿÿ ÿèõÉ&Á&p9‹ÿÿÿéïÊ&"ÚÿÿÿéÞÊ&9ŒÿÿÿéñÉ&Á9ÿÿÿéíÉ&Á9Žÿÿ ÿéóÊ&&19ÿÿ ÿéòÊ&9ÿÿÿèïÊ&9‘ÿÿÿçæÊ&9’ÿÿÿèãÊ&9“ÿÿ ÿîôÊ&¹ÿÿ ÿèîÊ&G&=ÿÿÿççÊ&9”ÿÿÿéìÊ&9–ÿÿÿèñÍ&/ /Ÿÿÿ ÿèôÊ&&G!>ÿÿ ÿèñÊ&&G!?ÿÿ ÿèóÊ&9—ÿÿ ÿéôÐ&½¾ÿÿ ÿéòÐ&Å ÿÿÿêôÑ&Å9™ÿÿ ÿèôÏ&¥¿ÿÿÿêòÒ&MLÿÿ ÿèõÏ&¥Uÿÿ ÿçõÏ&¥FÿÿÿçðÏ&ÂÁÿÿ ÿèòÏ&¥Äÿÿ ÿèòÏ&¥%§ÿÿ ÿèõÏ&¥Qÿÿ ÿè÷Ï&¥ÃÿÿÿæõÑ&-‡Åÿÿ ÿèöÏ&ú¥ÿÿ ÿéòË&N9šÿÿ ÿéòÏ&RNÿÿ ÿèòÏ&¥ÿÿ ÿçõÏ&¥ÿÿ ÿçõÑ& -‰ÿÿÿæõÑ&P9›ÿÿ ÿèöÐ&dÆÿÿ ÿèöÏ&dÇÿÿ ÿéóÐ&-ˆ9œÿÿ ÿèðÏ&d’ÿÿ ÿèóÏ&c-‰ÿÿ ÿè÷Ï&-‰Ìÿÿ ÿèòÏ&ü-‰ÿÿ ÿèöÐ&'-Šÿÿ ÿèõÓ&S-Šÿÿ ÿè÷Ñ&&Å-Šÿÿ ÿåöÓ&¨©ÿÿÿèôÑ&-‹9žÿÿ ÿèñÏ&-Š0"ÿÿ ÿèóÒ&-‰9Ÿÿÿ ÿèòÊ&E9 ÿÿ ÿêòÅ&Oÿÿ ÿçóÉ&MWÿÿ ÿéîÏ&LNÿÿÿèðÏ&›.ÿÿ ÿéôÍ&O-Œÿÿ ÿêëÏ&QPÿÿ ÿéòÏ&«ªÿÿÿéìË&SRÿÿ ÿçôË&UTÿÿ ÿèëÎ&VQÿÿ ÿêïÏ&G#éÿÿ ÿêóÐ&ObÿÿÿðòÉ&,µWÿÿ ÿéõÏ&X†ÿÿÿêëÏ&aQÿÿ ÿçóË&R9¢ÿÿ ÿèõÌ&O-Žÿÿ ÿêîÎ&O-ÿÿÿèãÊ&F-ÿÿ ÿèïÏ&G-ŠÿÿÿéóÑ&í Qÿÿ ÿèëÏ&Q ÿÿ ÿè÷Ï&ÿÿ ÿêñÐ&[&YZÿÿÿèóË&R Ýÿÿ ÿêôÏ&O_ÿÿÿéêË&R9£ÿÿÿéðË&R9¤ÿÿÿéïÐ& Qÿÿ ÿéïÇ&:9ÿÿ ÿêòË&R9¥ÿÿÿçòÏ&87ÿÿ ÿçôÒ&#§8ÿÿ ÿèôÊ&;"ÿÿ ÿèìÐ&^"½ÿÿ ÿè÷Ë&X#ÐÿÿÿéøÇ& î ïÿÿ ÿèóÍ&.9¦ÿÿ ÿèõÐ&X9§ÿÿÿéïÇ&:$ ÿÿÿéíÊ&;%ÿÿ ÿéõÏ&¦9¨ÿÿ ÿèëÐ&Q9©ÿÿ ÿéëÉ&äQÿÿÿéîÌ& Q/2ÿÿ ÿéõÏ&X9ªÿÿ ÿéòÏ&X+iÿÿ ÿêìÎ&%ˆ^ÿÿ ÿèìÐ&^%‰ÿÿ ÿéõÏ&-ÿÿ ÿéïÎ&:*ÔÿÿÿçïÌ&.zÿÿÿêìÏ&^]ÿÿ ÿéïË&-‘:ÿÿ ÿéìÏ&-’^ÿÿ ÿèòÏ&ïðÿÿ ÿêóÏ&[ZÿÿÿéñÏ&-“\ÿÿ ÿîñÏ&_9­ÿÿ ÿèóÅ&Æ Kÿÿ ÿéóÅ& ÆÿÿÿéôÌ&ÈÇÿÿÿéóÏ&}Çÿÿ ÿéóÏ&¤Éÿÿ ÿèôÏ&bùÿÿ ÿèõÏ&Eèÿÿ ÿèõÏ&­¹ÿÿ ÿèôÏ&è¤ÿÿ ÿèöÏ&¬­ÿÿ ÿèõÏ&­ÿÿ ÿèòÐ&è0öÿÿ ÿæìÏ&­9¯ÿÿ ÿéìÐ&ÝÎÿÿ ÿèôÏ&ž­ÿÿ ÿè÷Ñ&èçÿÿ ÿéïÐ&Ýßÿÿ ÿéïÐ&ú,9ÿÿ ÿèóÏ&èÿÿ ÿéìÐ&ú‘ÿÿ ÿéðÐ& uúÿÿ ÿèõÐ&ú&ûˆÿÿ ÿéôÐ&úüÿÿ ÿéôÐ&ú$7ÿÿ ÿéñÑ&ú$”ÿÿ ÿçõÐ&ú0›ÿÿ ÿçõÐ&Ý!Uÿÿ ÿçõÐ&Ýþÿÿ ÿèôÐ&ÿÝÿÿ ÿéòÏ&3-”ÿÿ ÿèóÇ&8qÿÿ ÿéðÇ&-”ÿÿ ÿêôÐ&¾9±ÿÿÿêðÒ&-•9²ÿÿ ÿèöÑ&0ž­ÿÿ ÿéõÊ&-–0žÿÿ ÿèôÏ&8-—ÿÿ ÿèôÏ&z0žÿÿ ÿé÷Ï&-˜0žÿÿ ÿèõÏ&-™!«ÿÿ ÿçõÏ&F8ÿÿ ÿéòÆ&-š0žÿÿ ÿéïÏ& ó&!I!¶ÿÿ ÿéïÏ&!«/¹ÿÿÿêðÑ&-«!·ÿÿ ÿéòÆ&&¶0žÿÿ ÿéòÎ&Ä8ÿÿ ÿéòÆ&Ê!«ÿÿ ÿéóÏ&0Ö8ÿÿ ÿèôÇ&&ç8ÿÿ ÿéóÏ&58ÿÿ ÿéöÎ&Ø8ÿÿ ÿïðÈ&-(9³ÿÿ ÿéóÏ&'!«ÿÿ ÿçôÉ&Î9´ÿÿ ÿéóÐ&É!«ÿÿ ÿéöÏ&0è!«ÿÿÿèíÉ&9µÿÿÿêðÐ&!·9¶ÿÿ ÿéõÊ&!«&!9·ÿÿ ÿéôÑ&!«Ìÿÿ ÿéòÐ&!´!¶ÿÿ ÿéõÍ&"‚!«ÿÿ ÿéöÎ&!«9¸ÿÿ ÿéôÏ&!¸8ÿÿ ÿéõÎ&!«&!9¹ÿÿ ÿéôÐ&-ž!«ÿÿ ÿèöÎ&-£!«ÿÿ ÿéòÑ&)Ì!«ÿÿÿéóÐ&#\&-Ÿ+ÿÿ ÿéîÏ&&-Ÿ9ºÿÿÿêôÏ&- 9»ÿÿ ÿé÷Ð&.!«ÿÿ ÿèõÏ&+ß8ÿÿ ÿéðË&®&¯°ÿÿ ÿéöÏ&F-¡ÿÿ ÿéóÒ&Ä!¶ÿÿ ÿéñÐ&-¢!¶ÿÿ ÿéôÏ&.9¼ÿÿ ÿê÷Ò&s-¤ÿÿ ÿåóÏ&‘ÿÿ ÿéóÐ&ˆ‰ÿÿ ÿéóÏ&‰ÿÿ ÿèòÐ&-¥9Àÿÿ ÿéôÉ&1›ÿÿ ÿèíÐ&1+@ÿÿ ÿéõÉ&1´ÿÿ ÿèôÑ&€ÿÿ ÿéòÎ&õÿÿ ÿéõÏ&õ›ÿÿ ÿéìÉ&œõÿÿ ÿéóÏ&1ÿÿ ÿéõÏ&õyÿÿ ÿéóÉ&õÊÿÿ ÿéõÍ&1õÿÿ ÿéóÉ&1&ÿÿ ÿéðÉ&1ÿÿ ÿéíÉ&3%9ÿÿ ÿèõÉ&õUÿÿ ÿèõÏ&õÿÿ ÿèöÑ&Ó3ÿÿ ÿéöÎ&õÄÿÿ ÿéõÉ&õÿÿ ÿéòÏ&õ0¬ÿÿ ÿéõÏ&õÿÿ ÿéôÏ&õ*Ìÿÿ ÿéîÏ&õ°ÿÿ ÿéöÏ&1aÿÿÿéòÏ&-¦-§ÿÿ ÿèôÏ&õmÿÿÿéëÑ&-¨9Åÿÿ ÿéóÊ&!rõÿÿ ÿéõÑ&1¶ÿÿ ÿéôÌ&õ9Çÿÿ ÿèïÏ&3Ùÿÿ ÿéõÏ&õEÿÿ ÿéôÏ&õ—ÿÿÿééÏ&-¨9Èÿÿ ÿéîÏ&õœÿÿ ÿèõÍ&õÿÿ ÿéòÏ&39Éÿÿ ÿéïÐ&õRÿÿ ÿéòÏ&õ(-ÿÿ ÿéõÉ&õêÿÿ ÿéõÏ&wõÿÿ ÿèôÐ&õÐÿÿ ÿéêÐ&M1ÿÿ ÿêìÐ&-®-¯ÿÿÿéïÏ&-¨9Êÿÿ ÿè÷Ï&ñÿÿ ÿéòÐ&õ0öÿÿ ÿèïÏ&õ'Ñÿÿ ÿéëÏ&´-®ÿÿ ÿçôÉ&õ%Ìÿÿ ÿèôÏ&ƒ‚ÿÿ ÿéóÏ&3&}/Õÿÿ ÿèóÏ&õÿÿ ÿéöÐ&3³ÿÿ ÿèóÏ&Ôÿÿ ÿéóÐ&3Uÿÿ ÿéòÉ&õ-©ÿÿ ÿèéÉ&õ/ÿÿ ÿéóÏ&1ÿÿ ÿèóÏ&õîÿÿ ÿéôÐ&3øÿÿ ÿéóÏ&õ"Wÿÿ ÿéêÏ&"X¡ÿÿ ÿéöÏ&3,éÿÿÿéóÇ&-¨-°ÿÿ ÿéöÏ&õ±ÿÿ ÿéóÏ&õ-ªÿÿ ÿéóÏ&õ-¬ÿÿ ÿéñÍ&õ*­ÿÿ ÿéòÏ&1(Ëÿÿ ÿéõÉ&3%"ÿÿÿèóÐ&0ƒ0„ÿÿ ÿéìÉ&õdÿÿ ÿéõÐ&3óÿÿ ÿè÷Ï&õ7ÿÿ ÿéöÌ&õóÿÿ ÿéôÐ&õ7ÿÿ ÿéõÐ&õÿÿ ÿéìÉ&3aÿÿ ÿéóÉ&3&ÿÿ ÿèôÐ&P3ÿÿ ÿéïÏ&3xÿÿ ÿéòÉ&Äõÿÿ ÿèóÏ&30¾ÿÿ ÿéôÎ&õ&»/ÿÿ ÿéóÎ&õåÿÿÿéõÐ&ñ&ò&óôÿÿÿêõÏ&÷9Ëÿÿ ÿéðÌ&-,ÿÿ ÿé÷Ì&E-­ÿÿ ÿéðÏ&õ.ÿÿ ÿèòÑ&ÈÉÿÿ ÿéõÑ&23ÿÿ ÿéôÌ&õ+ÿÿ ÿèòÐ&÷ÿÿ ÿéõÐ&30¯ÿÿ ÿèõÏ&õZÿÿ ÿéóÎ&õ¥ÿÿ ÿéóÑ&õÕÿÿ ÿèôÑ&õ¦ÿÿ ÿéòÐ&3&&*ÿÿ ÿéôÏ&õ…ÿÿ ÿçôÏ&3×ÿÿÿèïÏ&z0„ÿÿ ÿéøÑ&3 ÿÿ ÿéôÏ&õ,Ëÿÿ ÿçõÏ&õÿÿ ÿéòÏ&3-±ÿÿ ÿèïÏ&&[9Ìÿÿ ÿéòÉ&©õÿÿ ÿéóÏ&ôõÿÿ ÿéóÏ&3.–ÿÿ ÿèôÍ&3(8ÿÿ ÿèõÎ&0xÿÿ ÿèõÐ&„ÿÿ ÿèôÊ&A9Íÿÿ ÿèôÉ&.œ3ÿÿ ÿçõÏ&3 Øÿÿ ÿçõÑ& -­ÿÿ ÿéôÑ&W9Îÿÿ ÿèôÏ&õcÿÿ ÿéóÐ&õ³ÿÿ ÿéòÉ&õ0Aÿÿ ÿéóÒ&30ìÿÿ ÿéôÉ&ø3ÿÿ ÿéôÏ&õbÿÿ ÿèöÉ&9Ïÿÿ ÿéíË&3Øÿÿ ÿéîÉ&õ-Bÿÿ ÿéõÏ&3)zÿÿ ÿèõÉ&-aõÿÿ ÿèòÏ&3.ÿÿ ÿéõÐ&õ‹ÿÿ ÿèôÐ&3]ÿÿ ÿéõÐ&3+Lÿÿ ÿéôÏ&3.’ÿÿ ÿçõÏ&3¨ÿÿ ÿèõÑ&3‰ÿÿ ÿéóÏ&õ'ÿÿ ÿéóÏ&1ÿÿ ÿéóÐ&3.ÿÿ ÿéöÏ&3'ñÿÿ ÿéõÑ&3 ÿÿÿèñÈ&É0Íÿÿ ÿèöÉ& ×ÿÿ ÿèðÑ&$9ÐÿÿÿèóÐ&Ä ÿÿ ÿéðÉ&»õÿÿ ÿéóÐ&3 Oÿÿ ÿéóÐ&Éõÿÿ ÿèöÏ&"Hÿÿ ÿéõÑ&3Oÿÿ ÿéôÑ&3Íÿÿ ÿèõÉ&ÿÿ ÿæõÏ&3"dÿÿ ÿéôÏ&3"ôÿÿ ÿéóÐ&3Hÿÿ ÿèöÏ&01ÿÿ ÿéñÉ&õ!Œÿÿ ÿéîÉ&3 xÿÿ ÿéóÑ&3Xÿÿ ÿéóÉ&3Óÿÿ ÿéñÏ&3¿ÿÿ ÿéöÏ&3Çÿÿ ÿéòÏ&3"¹ÿÿ ÿéôÏ&õ!_ÿÿ ÿéõÊ&õÿÿ ÿé÷É&3¥ÿÿ ÿèóÍ&õ!‹ÿÿ ÿçòÉ&3ÿÿÿèôÏ&Ä0tÿÿ ÿèóÉ&3#;ÿÿÿèïÉ&Ä&[ÿÿ ÿèõÐ&3,Òÿÿ ÿèôÏ&&##(ÿÿ ÿéíÉ&53ÿÿ ÿçõÉ&õ!0ÿÿ ÿèðÐ&3!%ÿÿ ÿéöÐ&õ#Zÿÿ ÿèóÐ&!ôÿÿ ÿéòÉ&3"Kÿÿ ÿéôÉ&3Èÿÿ ÿèôÐ&9ÑÿÿÿèöÉ&Ä&Jâÿÿ ÿéðÑ&3$•ÿÿ ÿéïÐ&&ÿÿ ÿéôÉ&3$Eÿÿ ÿéòÎ&3.žÿÿ ÿéóÑ&3&#s#tÿÿ ÿéðÉ&3$ ÿÿ ÿéòÏ&3$Iÿÿ ÿéöÏ&õvÿÿÿéðÏ&ð& ÿÿ ÿéöÒ&3/ÿÿ ÿéóÏ&3,uÿÿ ÿèòÑ&ÿÿ ÿèòÐ&3/Mÿÿ ÿéóÑ&3(“ÿÿ ÿèîÉ&oÿÿ ÿéòÏ&-;3ÿÿ ÿéóÉ&3†ÿÿ ÿèõÉ&~ÿÿ ÿèóÏ&¦ÿÿ ÿèöÏ&Nÿÿ ÿé÷Ï&39Òÿÿ ÿéóÏ&3*ÿÿ ÿéõÐ&3.•ÿÿ ÿé÷Í&3ÿÿ ÿçõÏ&õ0›ÿÿ ÿéóÑ&3&/3ÿÿ ÿèïÉ&4ÿÿ ÿéôÎ&3*Ñÿÿ ÿêóÏ&´-­ÿÿÿè÷Ï&Ä&n9Óÿÿ ÿèôÏ&/\ÿÿ ÿèóÐ&39Ôÿÿ ÿèôÏ&* ÿÿ ÿèøÑ&.Ÿÿÿ ÿèôÎ&%(ÿÿ ÿéòÏ&3üÿÿÿèöÏ&ÄFÿÿ ÿéöÏ&3'õÿÿ ÿéòÐ&3*¹ÿÿ ÿèöÐ&.#ÿÿ ÿèôÏ&9Õÿÿ ÿèóÑ&0š&. 0™ÿÿ ÿèõÐ&&G9Öÿÿ ÿèöÐ&3'ÿÿ ÿéðÑ&$9×ÿÿ ÿèõÓ&SÿÿÿèõÉ&Ä9Øÿÿ ÿèóÒ&Äÿÿ ÿéöÒ&*€3ÿÿ ÿçôÏ&-xÿÿ ÿéóÌ&-&k9Ùÿÿ ÿèôÑ&.¡ÿÿ ÿéòÐ&.ÿÿÿèôÐ&Ä.¢ÿÿ ÿèõÏ&/dÿÿÿèñÉ&Ä'ÿÿ ÿè÷Ñ&.£ÿÿ ÿèðÏ&,4ÿÿ ÿéðÎ&3,…ÿÿ ÿé÷Ñ&&Å3ÿÿ ÿéøÊ&3¡ÿÿ ÿèõÏ&&/‹9Úÿÿ ÿéõÑ&35ÿÿ ÿçóÑ&¡3ÿÿ ÿèõÐ&¢ÿÿ ÿèñÊ&0"ÿÿ ÿéõÏ&3!×ÿÿÿèöÏ&Ä9ÛÿÿÿèòÐ&Ä.¤ÿÿ ÿèóÏ&9Üÿÿ ÿç÷Ò&±3ÿÿÿçôÐ&Ä+(ÿÿ ÿéóÑ&3Îÿÿ ÿèòÉ&.¥ÿÿ ÿéõÓ&§9Ýÿÿ ÿéòË&3.¨ÿÿÿèùÏ&Ä9Þÿÿ ÿèðÓ&„…ÿÿÿèïÐ&†9ßÿÿÿçõÐ&‡ÄÿÿÿèöÌ&®¬ÿÿÿéòÏ&&*Ü9ãÿÿ ÿèôÒ&ÎØÿÿ ÿèóÒ&Î9åÿÿÿéóÒ&Ï9æÿÿ ÿêõÑ&‘.áÿÿ ÿèõÏ&--ÿÿÿéõÐ&.ÿÿ ÿîóÄ&T2ÿÿ ÿçøÏ&1?ÿÿ ÿéóÐ&1$pÿÿÿèâÎ&¤9éÿÿ ÿçóÌ&ö9êÿÿ ÿéöÐ&.«9ïÿÿ ÿéñÏ&n9ðÿÿ ÿéôÏ&n ÒÿÿÿèõÏ&.©.ªÿÿ ÿèïÐ&)*ÿÿÿé÷Î&p.©ÿÿÿèóÏ&ñ.©ÿÿ ÿèóÐ&,+ÿÿ ÿéóÐ&.­,ÿÿ ÿèòÐ&+Vÿÿ ÿéìÑ&Çÿÿ ÿéòÑ&ÿÿ ÿéëÑ&aÿÿ ÿèõÑ&*ÿÿ ÿéõÑ&ÿÿ ÿéóÑ&Ãÿÿ ÿéóÑ&+ÿÿ ÿéöÑ&aÿÿ ÿéóÑ&…ÿÿ ÿèõÑ&Tÿÿ ÿé÷Ñ&ÿÿ ÿéìÑ&(¾ÿÿ ÿéíÑ&.®ÿÿ ÿèôÑ&,ÿÿ ÿéõÑ&-ÿÿ ÿçõÏ&A¦ÿÿ ÿéëÑ&·ÿÿ ÿæïÑ&¸ÿÿ ÿéðÑ&jÿÿ ÿéêÑ&Mÿÿ ÿéðÑ&.}ÿÿ ÿéóÑ&.ÿÿ ÿéòÑ&*¬ÿÿ ÿèéÑ&/ÿÿ ÿéòÑ&(Ëÿÿ ÿèñÑ&8ÿÿ ÿéóÑ&{ÿÿ ÿéðÑ&0ÿÿ ÿéöÑ&Òÿÿ ÿéóÑ&²ÿÿ ÿéôÑ&ÿÿ ÿèìÑ&!Xÿÿ ÿéõÑ&dÿÿ ÿéõÑ& 0wÿÿ ÿèóÑ&Õÿÿ ÿèôÏ&A =ÿÿ ÿèõÑ&A1ÿÿ ÿéóÑ&!›ÿÿ ÿèöÏ&A#Íÿÿ ÿçíÑ&: ÿÿ ÿèéÏ&A ‰ÿÿ ÿèõÏ&A¯ÿÿ ÿéðÑ& $•ÿÿ ÿèòÐ&A2ÿÿ ÿéòÑ& $Jÿÿ ÿèòÏ&A0¤ÿÿ ÿèõÐ&A$(ÿÿ ÿèóÏ&A3ÿÿ ÿçõÏ&A0›ÿÿ ÿéòÑ& 0ÿÿ ÿéïÑ& 4ÿÿ ÿçóÑ& &D9õÿÿ ÿéóÑ&´ ÿÿ ÿèñÏ&A*wÿÿ ÿèòÏ&A.¯ÿÿ ÿèðÑ&,3 ÿÿ ÿèóÐ&A*Äÿÿ ÿèóÐ&A*yÿÿ ÿéñÑ& (ÿÿ ÿéõÑ&%x5ÿÿ ÿéõÒ&.° ÿÿ ÿéóÑ& 6ÿÿ ÿèòÑ&7.±ÿÿ ÿèòÏ&.².±ÿÿ ÿêõÉ&~ÿÿ ÿéõÏ&€ÿÿ ÿéöÐ&uvÿÿ ÿèôÐ&xwÿÿ ÿêôÑ&‚)™ÿÿ ÿéôÐ&yzÿÿÿéôÐ&€zÿÿÿðñÐ&v(ÿÿÿêñÐ&uvÿÿ ÿèõÏ&öõÿÿ ÿéóÏ&õ9÷ÿÿ ÿéðÏ&"õÿÿÿèñÐ&vÏÿÿÿèñÐ&vçÿÿÿéôÐ&v.³ÿÿ ÿêóÐ&v(ÿÿ ÿéóÏ&m9øÿÿÿéðÏ&õ¹ÿÿÿéñÏ&mîÿÿÿéñÏ&m½ÿÿÿéñÏ&m9úÿÿÿóòÏ&õ9ûÿÿÿéñÐ&vdÿÿÿíñÐ&v9üÿÿÿòðÏ&õ9ýÿÿ ÿéòÐ&v9þÿÿÿéñÏ&mHÿÿÿéòÏ&;õÿÿÿéñÐ&v:ÿÿÿêóÏ&m:ÿÿÿèòÏ&Nmÿÿ ÿéòÏ&m:ÿÿÿéöÏ&õIÿÿ ÿéòÏ&Ñ:ÿÿÿêòÏ&Ñ:ÿÿ ÿéôÐ&v:ÿÿÿêñÐ&v:ÿÿ ÿéòÏ&m:ÿÿ ÿéñÏ&m:ÿÿ ÿêòÏ&m: ÿÿ ÿèõÐ&v¨ÿÿÿéñÏ&m: ÿÿ ÿéñÏ&m: ÿÿÿèõÐ&ˆvÿÿ ÿéóÏ&õÿÿÿéòÏ&m: ÿÿ ÿéòÏ&m ðÿÿÿéõÏ&m: ÿÿÿîñÐ&v“ÿÿÿéñÏ&m:ÿÿ ÿïóÏ&õ:ÿÿ ÿéôÐ&v:ÿÿÿèóÏ&m:ÿÿÿéñÐ&v$˜ÿÿÿèñÐ&v:ÿÿÿéòÏ&m:ÿÿÿéñÏ&Ômÿÿ ÿóòÏ&õ:ÿÿ ÿéóÐ&v:ÿÿ ÿèñÏ&m:ÿÿ ÿêôÏ&((mÿÿÿìòÏ&ÑÔÿÿÿèñÏ&Ñ:ÿÿÿéñÐ&ÚvÿÿÿéñÏ&ç&æmÿÿÿêôÐ&vÿÿ ÿêóÏ&õ:ÿÿ ÿéóÐ&%ûvÿÿ ÿêöÏ&?mÿÿ ÿêóÐ&v:ÿÿ ÿéðÏ&õ&!"ÿÿÿéñÏ&m:ÿÿ ÿéñÏ&m:ÿÿÿêñÏ&m:ÿÿÿéòÏ&m:ÿÿ ÿéòÏ&m:ÿÿ ÿìòÏ&m: ÿÿÿõðÏ&õ:!ÿÿ ÿéôÏ&õ:"ÿÿ ÿëóÏ&m:#ÿÿ ÿéóÏ&m:$ÿÿ ÿæöÐ&vZÿÿÿéñÏ&mpÿÿ ÿéñÐ&}vÿÿÿéñÐ&v:%ÿÿÿèñÐ&v)ãÿÿÿéñÐ&v:&ÿÿÿôñÐ&v:'ÿÿÿèñÏ&m:(ÿÿÿéñÏ&m:)ÿÿ ÿíòÏ&Ñ:*ÿÿ ÿéñÏ&m:+ÿÿÿèñÏ&mÿÿÿèñÏ&m:,ÿÿÿïñÏ&m:-ÿÿ ÿñòÐ&v:.ÿÿÿéñÐ&v:/ÿÿ ÿéòÐ&v:0ÿÿÿéñÏ&m&r:1ÿÿ ÿêóÏ&Ñ:2ÿÿÿéñÏ&m:3ÿÿÿéñÐ&v:4ÿÿÿéñÏ&/pmÿÿÿêñÏ&Ñ:5ÿÿ ÿéóÐ&v:6ÿÿÿéòÏ&m:7ÿÿ ÿéóÏ&m:8ÿÿÿéñÏ&m:9ÿÿ ÿéôÏ&Ñ::ÿÿ ÿðõÏ&mÞÿÿ ÿéóÏ&m:;ÿÿ ÿìóÐ&v:<ÿÿÿæñÏ&m:=ÿÿ ÿéóÏ&m:>ÿÿ ÿéóÏ&k:?ÿÿ ÿéñÏ&m:@ÿÿ ÿéóÏ&m:AÿÿÿëñÐ&ÕvÿÿÿèñÏ&vÑÿÿÿéñÐ&v:Bÿÿ ÿéóÐ&v:CÿÿÿêõÏ&m&ÛÞÿÿ ÿæñÏ&m:Dÿÿ ÿéñÏ&mŸÿÿÿæñÏ&m ÿÿ ÿêóÏ&m:Eÿÿ ÿéóÐ&v:Fÿÿ ÿéóÏ&m:GÿÿÿéñÏ&ç&m:Hÿÿ ÿñóÏ&Ñ:JÿÿÿéñÏ&m:KÿÿÿèñÏ&m:Lÿÿ ÿñòÐ&v&AWÿÿÿéòÏ&m& :Mÿÿ ÿèóÏ&l€ÿÿ ÿéñÏ&Ñ·ÿÿÿêñÏ&Ñÿÿ ÿéóÏ&m:NÿÿÿéñÏ&m:OÿÿÿéôÏ&DmÿÿÿéñÏ&Ñ:PÿÿÿðñÏ&+&mÿÿÿéòÏ&Ñ&ç:Qÿÿ ÿéñÏ&m&£:Rÿÿ ÿéóÏ&Ñ:SÿÿÿæñÏ& ÑÿÿÿîñÏ&m:Tÿÿ ÿéóÏ&m‹ÿÿÿéðÏ&õ:Uÿÿ ÿéóÏ&m:Vÿÿ ÿéñÏ&m:WÿÿÿéôÏ&ñmÿÿÿëñÏ&m&5:Xÿÿ ÿêñÏ&mVÿÿÿèóÐ&§vÿÿÿéôÏ&Ñ&çêÿÿÿéóÏ&m:Yÿÿ ÿéòÏ&m:ZÿÿÿëñÐ&5&8vÿÿÿéñÏ&mvÿÿÿéñÏ&ÑeÿÿÿéóÏ&ç&JmÿÿÿçñÏ&m:[ÿÿÿéòÏ&m:\ÿÿÿèñÏ&ªmÿÿ ÿéóÏ&m:^ÿÿ ÿéñÏ&Ñ#®ÿÿÿñòÏ&#¯mÿÿÿèóÏ&ÑÓÿÿ ÿîôÏ&”õÿÿÿçñÏ&ÑÿÿÿèõÐ&vßÿÿ ÿéëÏ&›:_ÿÿÿéóÏ& &m:`ÿÿ ÿéóÏ&mÛÿÿ ÿéñÏ&m&¢£ÿÿÿéñÏ&m:aÿÿÿèñÏ&m:bÿÿÿéóÏ&Ñ:cÿÿÿîñÏ&0ÑÿÿÿéñÏ&m&ç:dÿÿ ÿéòÏ&Ñ:eÿÿÿçòÏ&8mÿÿ ÿéöÏ&m:fÿÿ ÿéñÏ&Ñ:gÿÿ ÿêñÏ&m:hÿÿ ÿìòÏ&Ñ`ÿÿ ÿêñÏ&Ñ&ÿÿÿéòÏ&m:iÿÿÿèñÏ& ÑÿÿÿéòÏ&m+ÿÿ ÿèóÏ&Ñ:jÿÿ ÿéôÐ&[vÿÿÿèñÏ&mìÿÿÿåñÏ&&mÛÿÿÿéñÏ&m:kÿÿ ÿèôÏ&m& ÙÿÿÿéñÏ&ѯÿÿ ÿèòÐ&&vWÿÿÿèñÏ&%¶& mÿÿ ÿèóÐ&v&W ÿÿÿéòÏ&Ñÿÿ ÿèòÏ&mÿÿÿèñÐ&H&vGÿÿÿèñÏ&m:lÿÿÿéñÏ&mýÿÿÿìñÐ&v:mÿÿÿêòÏ&m:nÿÿÿêñÏ&m&¾:oÿÿÿïñÏ&ÑÿÿÿèõÏ&Ñ&t:pÿÿ ÿëõÏ&Ñ&#„ÿÿÿé÷Ï&Ñ:qÿÿÿéñÏ&Ñ&ç§ÿÿÿèñÏ&Ñ:rÿÿÿêñÏ&m:sÿÿÿéõÏ&m&%ü9ÿÿ ÿèóÏ&m:tÿÿ ÿçóÏ&‘mÿÿÿçóÏ&k:uÿÿ ÿèñÏ&Ñ;ÿÿÿññÏ&m:vÿÿ ÿèòÏ&k:wÿÿÿéôÏ&Ñ&ç:xÿÿÿèñÏ&m:yÿÿÿéñÏ&mÞÿÿ ÿçõÏ&Ñ&r:zÿÿ ÿèñÏ&Ñ&£:{ÿÿÿçñÏ&Ñ:|ÿÿÿéñÏ&Ñ&ç:}ÿÿ ÿèôÏ&kˆÿÿÿèôÏ&Ñÿÿ ÿçõÏ&Ñ&r:~ÿÿÿèñÏ&t&Ñ:ÿÿÿèôÏ&Ñ&5:€ÿÿÿèñÏ&m:ÿÿÿèôÏ&kˆÿÿÿéñÏ&Ñ:‚ÿÿÿéôÏ&Ñ:ƒÿÿÿíñÏ&ѵÿÿ ÿéôÏ&Ñ:„ÿÿ ÿéóÏ&m:…ÿÿ ÿéòÏ&l:†ÿÿ ÿéóÏ&Ñ:‡ÿÿÿéôÏ&m:ˆÿÿ ÿçôÏ&m:‰ÿÿÿññÏ&Ñ:ŠÿÿÿçõÏ&m:‹ÿÿ ÿéòÏ&Ñ:Œÿÿ ÿèñÏ&k:ÿÿ ÿçóÏ&Ñ Þÿÿ ÿîõÏ&§&Ñ:ŽÿÿÿêñÏ&Ñ:ÿÿÿéñÏ&Ñ&9:ÿÿÿéñÏ&l:‘ÿÿ ÿçõÏ&lóÿÿÿéòÏ&Ñ:’ÿÿ ÿèóÏ&Ñ:“ÿÿÿçôÏ&Ñ:”ÿÿ ÿéóÏ&Ñ:•ÿÿÿçñÏ&Ñ:–ÿÿÿé÷Ï&m&5:—ÿÿÿèñÐ&v:˜ÿÿ ÿéòÏ&ÑÿÿÿëöÏ&m:™ÿÿÿéõÏ&m:šÿÿÿçñÏ&Ñ:›ÿÿÿéôÏ&m:œÿÿ ÿòòÐ&v*ŽÿÿÿçñÏ&m&9:ÿÿÿéõÏ&9&8mÿÿÿññÏ&m:žÿÿÿèñÏ&l:ŸÿÿÿéôÏ&Ñ: ÿÿ ÿéñÏ&l&æ:¡ÿÿ ÿåóÏ&m:¢ÿÿÿèñÏ&l:£ÿÿÿêñÏ&Ñ&¿:¤ÿÿÿëôÏ&5&Ñ:¥ÿÿ ÿéöÏ&Ñ ÿÿÿèñÏ&Ulÿÿ ÿéóÏ&Ñ:¦ÿÿÿãñÏ&m:§ÿÿÿêòÏ&Š&m:¨ÿÿÿëôÏ&Ñ:©ÿÿÿèñÏ&Ñ ÿÿÿéóÏ&m:ªÿÿÿéñÏ&ÑÒÿÿÿçóÏ&l:«ÿÿÿèóÏ&m:¬ÿÿÿéñÏ&Ñ:­ÿÿÿèñÏ&¯lÿÿÿéòÏ&m:®ÿÿ ÿéòÏ&m #ÿÿÿèñÏ&l²ÿÿÿèñÏ&Ñ&Š:¯ÿÿÿéóÏ&Ñ&:°ÿÿÿîôÏ&k:±ÿÿÿéñÏ&l1 ÿÿÿèñÏ&Ñ:²ÿÿÿèôÏ&m:³ÿÿ ÿéñÏ&Ñ&œ:´ÿÿÿçõÏ&l:µÿÿ ÿçôÏ&Ñ&r:¶ÿÿÿêñÏ&Ñ:·ÿÿ ÿëôÏ&m:¸ÿÿÿçõÏ&m:¹ÿÿÿèóÏ&Ñ:ºÿÿ ÿèòÏ&Ñ:»ÿÿ ÿèñÏ&Ñ:¼ÿÿ ÿæóÏ&Ñ:½ÿÿ ÿèóÏ&Ñ:¾ÿÿÿèñÏ&Ñ:¿ÿÿÿîñÏ&n:ÀÿÿÿèñÏ&5&Ñ:Áÿÿ ÿèñÏ&ÑtÿÿÿçñÏ&Ñ:Âÿÿ ÿéòÏ&Ñ:ÃÿÿÿèôÏ&Ñ:ÄÿÿÿéñÏ&Ñ Rÿÿ ÿñóÏ&m:Åÿÿÿí÷Ï&l:ÆÿÿÿéñÏ&Ñ:ÇÿÿÿéôÏ&l:ÈÿÿÿêñÏ&FÑÿÿÿèôÏ&m:ÉÿÿÿêñÏ&Û&m:Êÿÿ ÿçñÏ&Ñ:Ëÿÿ ÿéöÏ&Ñ:ÌÿÿÿèóÏ&òmÿÿ ÿéôÏ&Ñ:Íÿÿ ÿéóÏ&Ñ ÿÿ ÿéñÏ&4&£ÑÿÿÿçñÏ&Ñ:Îÿÿ ÿéóÏ&Ñqÿÿ ÿèñÏ&l:ÏÿÿÿéñÏ&Ñ:ÐÿÿÿéñÏ&l:Ñÿÿ ÿêöÏ&Ñ:Òÿÿ ÿéóÏ&m:ÓÿÿÿçñÏ&lßÿÿÿèñÏ&m:Ôÿÿ ÿçñÏ&Ñ&r:ÕÿÿÿçñÏ&_žÿÿÿèñÏ&m:Öÿÿ ÿéõÏ&l:×ÿÿ ÿèñÏ&Ñ:Øÿÿ ÿçôÏ&l:ÙÿÿÿîñÏ&lÙÿÿ ÿéóÏ&m Aÿÿ ÿéóÏ&Ñ:ÚÿÿÿèñÏ&Ñ:ÛÿÿÿèñÏ&Ñ:Üÿÿ ÿéñÏ&Ñ:Ýÿÿ ÿçöÏ&Ñ&r:Þÿÿ ÿêõÏ&ÎÑÿÿÿçñÏ&m&  ÿÿÿèñÏ&Ñ:ßÿÿÿçñÏ&Ñ:àÿÿ ÿæñÏ&l:áÿÿÿçñÏ&Ñ&ÑÒÿÿ ÿéôÏ&Ñ"Ìÿÿ ÿéóÏ&Ñ&œ›ÿÿ ÿéõÏ&Ñ"“ÿÿÿèñÏ&l:âÿÿÿçñÏ&Ñ:ãÿÿÿèñÏ&n"vÿÿ ÿéôÏ&ÑÚÿÿÿññÏ&Ñ"¡ÿÿ ÿèòÏ&k"¨ÿÿÿéñÏ&"ºÑÿÿÿçñÏ&Ñ&£:äÿÿÿèñÏ&l:åÿÿ ÿéñÏ&k"[ÿÿÿêñÏ&æ&Ñ:æÿÿ ÿèôÏ&Ñ:çÿÿ ÿéñÏ&"¾ÑÿÿÿéñÏ&l ŠÿÿÿéñÏ&!ÈÑÿÿ ÿêóÏ&n"Òÿÿ ÿçöÏ&Ñ&r:èÿÿ ÿçòÏ&r&qÑÿÿÿéòÏ&t&slÿÿ ÿéôÏ& & lÿÿÿéóÏ&u&vÑÿÿ ÿéñÏ&w&l:éÿÿ ÿìõÏ&Ñ:êÿÿ ÿéöÏ&l"Çÿÿ ÿéôÏ&l#Kÿÿ ÿéôÏ&n&q:ëÿÿ ÿéñÏ&l:ìÿÿÿçôÏ&l:íÿÿÿêñÏ&l" ÿÿ ÿéòÏ&l0~ÿÿ ÿîóÏ&l& ù:îÿÿÿêóÏ&Ñ:ïÿÿ ÿêñÏ&m:ðÿÿ ÿèöÏ&l:ñÿÿÿéôÏ&Ñ:òÿÿÿèñÏ&Ñ:óÿÿ ÿéñÏ&msÿÿÿðñÏ&#RlÿÿÿçñÏ&l:ôÿÿ ÿçôÏ&#›Ñÿÿ ÿéñÏ&l:õÿÿÿèóÏ&Ñ:öÿÿ ÿíóÏ&Ñ"²ÿÿ ÿèñÏ&"Ð&Tlÿÿ ÿêñÏ&l:÷ÿÿ ÿïôÏ&Ñ:øÿÿÿðñÏ&n!cÿÿÿéñÏ&#¨lÿÿÿèñÏ&n"ùÿÿ ÿêñÏ&l:ùÿÿÿèñÏ&#<lÿÿÿìñÏ&l:úÿÿÿëñÏ&l#Øÿÿ ÿçóÏ&l&p:ûÿÿÿéñÏ&Ñ ÿÿ ÿéõÏ&l&#$#%ÿÿ ÿéñÏ&m#Ëÿÿ ÿçõÏ&Ñ:üÿÿ ÿëõÏ&l&"‘„ÿÿ ÿæõÏ&Ñ:ýÿÿ ÿèñÏ&Ñ!ÿÿ ÿçóÏ&l"}ÿÿÿèñÏ&!¹ÑÿÿÿéñÏ&n!$ÿÿÿêòÏ&"+&€mÿÿ ÿèñÏ&l"ÃÿÿÿæòÏ&n"rÿÿÿèòÏ&l&:þÿÿ ÿëöÏ&„&l:ÿÿÿÿéñÏ&l"ÿÿÿé÷Ï&l;ÿÿ ÿçöÏ&Ñ&#;ÿÿ ÿêóÏ&o;ÿÿÿéõÏ&#ÒÑÿÿÿéñÏ&l"ÿÿ ÿéòÏ&l ÿÿÿæñÏ&#¹mÿÿÿéñÏ&Ñ#ðÿÿ ÿçóÏ&ø&rmÿÿÿèñÏ&l;ÿÿÿèõÏ&Ñ#ùÿÿ ÿèöÏ&Ñ;ÿÿÿéôÏ&l&u;ÿÿÿè÷Ï&5&Ñ;ÿÿÿèñÏ&n;ÿÿÿéñÏ&n$ ÿÿ ÿèóÏ&Ñ&t;ÿÿ ÿéõÏ&m; ÿÿ ÿéñÏ&$~lÿÿ ÿçóÏ&l&r; ÿÿÿéñÏ&l; ÿÿ ÿëõÏ&l$‹ÿÿÿèñÏ&$¨lÿÿÿéôÏ&Ñ&Ò; ÿÿÿêôÏ&5&Ñ; ÿÿ ÿêóÏ&o;ÿÿ ÿèñÏ&l;ÿÿ ÿéñÏ&œ&Ñ;ÿÿÿçñÏ&$xkÿÿ ÿïñÏ&l#ÿÿÿèóÏ&n;ÿÿ ÿêñÏ&k;ÿÿ ÿéñÏ&Ñ$®ÿÿ ÿèïÏ& ;ÿÿ ÿçòÏ&Ñ;ÿÿ ÿéñÏ&l;ÿÿ ÿçñÏ&o&r;ÿÿÿèñÏ&Á&Âmÿÿ ÿêõÏ&Ñ;ÿÿ ÿèõÏ&l&qpÿÿÿéñÏ&j;ÿÿ ÿçôÏ&m;ÿÿÿéñÏ&n;ÿÿ ÿéóÏ&l$)ÿÿ ÿìôÏ&l&g;ÿÿÿçñÏ&%lÿÿÿéöÏ&l;ÿÿ ÿçôÏ&l$qÿÿÿçñÏ&l;ÿÿÿéñÏ&l;ÿÿ ÿç÷Ï&Ñ&rBÿÿ ÿéñÏ&kZÿÿÿéñÏ&#)lÿÿ ÿéôÏ&l$ŽÿÿÿéñÏ&n;ÿÿ ÿîóÏ&Ñ& ù; ÿÿÿêñÏ&l;!ÿÿ ÿéñÏ&n&f;"ÿÿ ÿçôÏ&l$ÿÿÿçôÏ&Ñ;#ÿÿ ÿéóÏ&n;$ÿÿ ÿçóÏ&l;%ÿÿ ÿéôÏ&l;&ÿÿÿéòÏ&ç&Ñ;'ÿÿ ÿèõÏ&t&l;(ÿÿÿíòÏ&l;)ÿÿ ÿéõÏ&Ñ&&ÿÿ ÿèñÏ&Ñ;*ÿÿ ÿéóÏ&Ñ&Þüÿÿ ÿéôÏ&l&ŒÿÿÿéñÏ&l;+ÿÿ ÿîóÏ&m& ø;,ÿÿ ÿêñÏ&æ&Ñ;-ÿÿÿèñÏ&l;.ÿÿ ÿæñÏ&Ñ;/ÿÿ ÿïôÏ&Ñ;0ÿÿ ÿèóÏ&n;1ÿÿ ÿéòÏ&l&üýÿÿ ÿéòÏ&l&ü;2ÿÿ ÿêóÏ&l;3ÿÿÿèöÏ&n;4ÿÿÿèöÏ&l;5ÿÿÿèöÏ&l;6ÿÿÿèöÏ&k;7ÿÿÿéöÏ&Ñ& ;8ÿÿÿéóÏ& &m;9ÿÿ ÿçòÏ&Ñ&r;:ÿÿÿðñÏ&Ñ;;ÿÿÿíòÏ&%lÿÿÿéñÏ&n;<ÿÿÿéòÏ&Ñ;=ÿÿÿéòÏ&l&t;>ÿÿÿéñÏ&Ñ;?ÿÿÿéöÏ&l;@ÿÿ ÿéõÏ&l0 ÿÿ ÿèõÏ&l;AÿÿÿèñÏ&n;BÿÿÿéñÏ&orÿÿ ÿèñÏ&l;CÿÿÿêñÏ&n;DÿÿÿéñÏ&n;Eÿÿ ÿçõÏ&l&r;FÿÿÿçñÏ&Ñ;GÿÿÿéñÏ&n;Hÿÿ ÿèóÏ&Ñ;Iÿÿ ÿéôÏ&Ñ;Jÿÿ ÿéöÏ&l;KÿÿÿèóÏ&Ñ;Lÿÿ ÿçõÏ&Ñ;MÿÿÿéõÏ&Ñ;NÿÿÿéñÏ&l•ÿÿ ÿéóÏ&Ñ;Oÿÿ ÿèõÏ&p&n;PÿÿÿèñÏ&n;Qÿÿ ÿêñÏ&l^ÿÿÿéöÏ&l;Rÿÿ ÿéòÏ&ž;Sÿÿ ÿçñÏ&l;Tÿÿ ÿèöÏ&k'òÿÿ ÿèöÏ&0_lÿÿ ÿéòÏ&Ñ;Uÿÿ ÿèóÏ&Ñ;VÿÿÿèôÏ&Ñ;WÿÿÿæõÏ&n;Xÿÿ ÿçòÏ&Ñ0[ÿÿÿëóÏ&&Ñ;Yÿÿ ÿêòÏ&l;Zÿÿ ÿéóÏ&l;[ÿÿÿéñÏ&l;\ÿÿ ÿìôÏ&g&l;]ÿÿÿéñÏ&l;^ÿÿÿçñÏ&l/QÿÿÿéñÏ&k;_ÿÿÿéñÏ&l;`ÿÿÿéñÏ&l;aÿÿÿèóÏ&l;bÿÿ ÿèôÏ&l&DCÿÿÿèôÏ&jpÿÿÿèñÏ&nmÿÿÿéöÏ&&kÒÿÿ ÿéøÏ&n/Xÿÿ ÿçòÏ&l;cÿÿ ÿêôÏ& & kÿÿÿèòÏ& lÿÿÿçñÏ& mÿÿÿçòÏ&Ñ;dÿÿÿæñÏ&Ú&ÛkÿÿÿçôÏ&Ñ;eÿÿÿèñÏ&l;fÿÿÿèôÏ&Ñÿÿ ÿèôÏ&n&Ø;gÿÿ ÿéñÏ&k;hÿÿ ÿéôÏ&l;iÿÿÿêòÏ&lkÿÿ ÿéòÏ&k;jÿÿÿéñÏ&l&ù;kÿÿ ÿçñÏ&l&r zÿÿ ÿéôÏ& &oÿÿ ÿèôÏ&n;lÿÿ ÿéóÏ&n;mÿÿ ÿèõÏ&k&p;nÿÿ ÿíõÏ&lJÿÿÿìñÏ&Klÿÿ ÿçõÏ&k&r;oÿÿ ÿèôÏ&ž;pÿÿÿéñÏ&l;qÿÿÿæòÏ&n:ÿÿÿéôÏ&l&Ä;rÿÿ ÿèñÏ&l&!ž!ÿÿ ÿçòÏ&l;sÿÿÿçõÏ&k;tÿÿÿèòÏ&n;uÿÿÿêñÏ&S&l;vÿÿ ÿéôÏ&n;wÿÿ ÿçñÏ&Ñ;xÿÿÿëóÏ&l&‚ÿÿ ÿçõÏ&l;yÿÿÿçñÏ&j;zÿÿÿèñÏ&l;{ÿÿÿäñÏ&n;|ÿÿÿéñÏ&k;}ÿÿ ÿêóÏ&m&%J;~ÿÿÿéñÏ&Ñ;ÿÿÿéñÏ&l& À;€ÿÿ ÿçôÏ&l&!‡ÿÿ ÿèõÏ&l;ÿÿ ÿêñÏ&n&"!"ÿÿ ÿèõÏ&l&p;‚ÿÿÿíòÏ&l/¨ÿÿÿéòÏ&k&;ƒÿÿ ÿèñÏ&n;„ÿÿÿéñÏ&l;…ÿÿ ÿéñÏ&Ñ&œ;†ÿÿÿèñÏ&Ñ;‡ÿÿ ÿðôÏ&Ë&ÊÑÿÿ ÿèõÏ&k;ˆÿÿÿåóÏ&j;‰ÿÿÿçôÏ&l& ¿ ¾ÿÿÿçöÏ&l&á;ŠÿÿÿéñÏ&Ñ;‹ÿÿ ÿéòÏ&k;Œÿÿ ÿæñÏ&m;ÿÿ ÿéñÏ&n;ŽÿÿÿêñÏ&j;ÿÿ ÿçõÏ&Ñ&r$GÿÿÿéôÏ&l;ÿÿÿéôÏ&l&;‘ÿÿ ÿçñÏ&k&%rÿÿ ÿçòÏ&k&r$yÿÿ ÿèñÏ&Ñ;’ÿÿÿéóÏ&k;“ÿÿ ÿæõÏ&k;”ÿÿ ÿéùÏ&n;•ÿÿ ÿêõÏ&n;–ÿÿ ÿéñÏ&Ñ&æ;—ÿÿÿåñÏ&n/äÿÿÿèñÏ&l;˜ÿÿÿéõÏ&n;™ÿÿÿçñÏ&L&K&&MnÿÿÿêóÏ&l;šÿÿ ÿéóÏ&l;›ÿÿ ÿîóÑ&;œÿÿÿéñÏ&n;ÿÿ ÿçôÏ&k;žÿÿÿèöÏ&l;ŸÿÿÿéñÏ&n; ÿÿÿèöÏ&l;¡ÿÿ ÿéõÏ&Ñ;¢ÿÿ ÿåôÏ&l&"";£ÿÿÿéòÏ&Ñ;¤ÿÿÿéñÏ&l(€ÿÿ ÿèñÏ&ž;¥ÿÿ ÿèõÏ&n;¦ÿÿ ÿèõÏ&l;§ÿÿ ÿéñÏ&l& À ÁÿÿÿèñÏ&n;¨ÿÿ ÿéòÏ&l;©ÿÿ ÿèöÏ&n;ªÿÿ ÿéóÏ&Ñ;«ÿÿÿèñÏ&n;¬ÿÿÿçñÏ&n&rqÿÿÿçñÏ&n&s&tuÿÿÿçóÏ&g&ž;­ÿÿ ÿêñÏ&l;®ÿÿÿçñÏ&ž;¯ÿÿ ÿçòÏ&l;°ÿÿÿèôÏ&n&;±ÿÿ ÿèóÏ&l;²ÿÿÿèñÏ&k;³ÿÿÿéñÏ&l;´ÿÿÿçöÏ&k&$Ä;µÿÿÿéñÏ&n;¶ÿÿ ÿèóÏ&n;·ÿÿ ÿêóÏ&w&vjÿÿÿèñÏ&n;¸ÿÿ ÿçóÏ&n&r;¹ÿÿ ÿìòÑ&;ºÿÿÿçõÏ&n%yÿÿÿêõÏ&n&  œÿÿ ÿéôÏ&k;»ÿÿÿçôÏ&l;¼ÿÿ ÿçôÏ&õ&ô&lóÿÿ ÿéõÏ&n&%áÿÿ ÿèñÏ&l;½ÿÿÿèóÏ&n&%;¾ÿÿ ÿéòÏ&ž;¿ÿÿÿéñÏ&n;Àÿÿ ÿèôÏ&n;Áÿÿ ÿèôÏ&k;ÂÿÿÿèõÏ&l&""~ÿÿ ÿéóÏ&l;ÃÿÿÿçñÏ&n;Äÿÿ ÿîóÏ&n& ù;ÅÿÿÿîñÏ&n;Æÿÿ ÿçôÏ&l;Çÿÿ ÿç÷Ï&n&Žÿÿ ÿèòÑ&;Èÿÿ ÿèñÏ&n;ÉÿÿÿéñÏ&Ñ;Êÿÿ ÿèñÏ&l;ËÿÿÿëöÏ&n;Ìÿÿ ÿèñÏ&n;ÍÿÿÿèõÏ&l;ÎÿÿÿçñÏ&n;Ïÿÿ ÿèôÏ&n%_ÿÿ ÿçôÑ&;ÐÿÿÿéñÏ&l%aÿÿÿêñÏ&l%mÿÿÿéöÏ&n;Ñÿÿ ÿèôÏ&n;ÒÿÿÿéñÏ&n/¡ÿÿ ÿèöÏ&l;ÓÿÿÿèñÏ&l;Ôÿÿ ÿéòÏ&n;Õÿÿ ÿèñÏ&k&‰;Öÿÿ ÿçôÏ&k&r;×ÿÿÿçóÏ&n;Øÿÿ ÿèóÏ&l;ÙÿÿÿçòÏ&j&gfÿÿ ÿêñÏ&l;Úÿÿ ÿìôÏ&g&n;ÛÿÿÿêñÏ&l;Üÿÿ ÿèõÏ&l;ÝÿÿÿéñÏ&l;ÞÿÿÿéõÏ&l;ßÿÿÿéñÏ&l;àÿÿ ÿéñÏ&n;áÿÿÿèñÏ&k;âÿÿÿéñÏ&n;ãÿÿ ÿèøÏ&k;äÿÿ ÿèöÏ&l;åÿÿ ÿèñÏ&l;æÿÿ ÿéñÏ&n/HÿÿÿèñÏ&l;çÿÿÿíñÏ&n;èÿÿÿéõÏ&l;éÿÿ ÿéõÏ&Ñ;êÿÿ ÿíòÏ&ž;ëÿÿ ÿéøÏ&Ñ;ìÿÿÿèñÏ&n;íÿÿÿéõÏ&l;îÿÿ ÿçôÏ&k& ¾;ïÿÿÿèñÏ&n;ðÿÿÿæõÏ&l;ñÿÿ ÿé÷Ï&k;òÿÿ ÿêóÑ&;óÿÿÿêñÏ&n&(~(ÿÿÿèóÏ&n;ôÿÿÿéñÏ&n;õÿÿ ÿéóÏ&l;öÿÿ ÿèóÏ&k;÷ÿÿ ÿéñÏ&n&!A!@ÿÿ ÿèôÏ&n;øÿÿÿéöÏ&n;ùÿÿ ÿéóÏ&j;úÿÿ ÿèóÏ&n&*;ûÿÿÿëöÏ&l'ýÿÿ ÿèñÏ&ð&n;üÿÿÿéñÏ&k;ýÿÿÿèôÏ&j;þÿÿÿéñÏ&l;ÿÿÿÿçöÏ&n<ÿÿÿèòÏ&n<ÿÿÿéñÏ&n<ÿÿ ÿéñÏ&n&G<ÿÿÿéñÏ&n<ÿÿ ÿèñÏ&n<ÿÿ ÿîôÏ&Ô&n<ÿÿ ÿçõÏ&n<ÿÿ ÿçóÏ&n<ÿÿ ÿïóÏ&n< ÿÿ ÿèóÏ&n&ð< ÿÿ ÿêôÑ&< ÿÿ ÿèöÏ&n< ÿÿÿèøÏ&k< ÿÿÿéóÏ&j<ÿÿ ÿèõÏ&ž<ÿÿÿèñÏ&k<ÿÿ ÿèôÑ&<ÿÿ ÿéñÏ&l<ÿÿ ÿèõÏ&ž<ÿÿ ÿéñÏ&j<ÿÿ ÿîóÏ&!x&ž<ÿÿÿêöÏ&j<ÿÿ ÿèòÑ&&%n<ÿÿÿéóÏ&Ñ<ÿÿÿçñÏ& Â&l<ÿÿ ÿçôÑ&<ÿÿ ÿéöÑ&&ÿÿÿèðÑ&‹ŒÿÿÿèñÑ&ŽÿÿÿèòÑ&ÿÿ ÿèïÍ&’‘ÿÿ ÿèôÏ&ÿÿÿæóÑ&–ÿÿ ÿçõÏ&—<ÿÿ ÿêóÐ&.Ú<ÿÿÿèôÑ&“ÿÿÿèðÑ&‹<ÿÿÿèðÑ&<ÿÿ ÿèíÐ&˜”ÿÿ ÿèïÐ&˜•ÿÿ ÿèôÏ&¶ÿÿ ÿèñÐ&.Ú<ÿÿ ÿèõÏ&¸·ÿÿ ÿéóÏ&/{¹ÿÿ ÿèöÏ&º»ÿÿ ÿéöÑ&¼ºÿÿÿéðÏ&¾½ÿÿ ÿè÷Ñ&™&'< ÿÿ ÿéóÏ&¹ÿÿÿéõÐ& ã.•ÿÿÿéóÑ&/ÙLÿÿÿéóÏ& ã+Dÿÿ ÿæöÐ&|0 ÿÿÿèöÑ&L&—ÿÿÿèõÑ&L£ÿÿ ÿæùÏ&nÿÿ ÿçõÑ&!Ÿ! ÿÿ ÿæòÐ&|òÿÿ ÿéôÑ&µ´ÿÿ ÿèòÎ&ò*Çÿÿ ÿéôÏ&0YµÿÿÿçòÐ&œ&C=ÿÿÿéõÐ&o‹ÿÿ ÿèóÑ&ÕÇÿÿ ÿæòÏ& qÿÿÿéôÐ&o›ÿÿÿç÷Ç& oÿÿÿé÷Ð&o-²ÿÿ ÿè÷Å&Ç'ÿÿ ÿæòÏ&Ïÿÿ ÿéõÏ&lkÿÿ ÿèõÐ&Ç.ÿÿÿéóÏ&o6ÿÿÿèöÏ&o'!ÿÿÿéìÇ&oÿÿ ÿãóÑ&$=ÿÿ ÿéòÐ&mnÿÿ ÿèóÏ&Çñÿÿ ÿéòÏ& °' ÿÿÿæóÐ&#\&Ï+ÿÿ ÿéöÏ&vlÿÿ ÿèõÐ&Ç'"ÿÿ ÿéôÑ&=ÿÿÿçòÎ&0Ÿÿÿ ÿçòÊ&A=ÿÿÿæõÑ&Ï=ÿÿÿéïÑ&o'#ÿÿ ÿèóÒ&Ç'$ÿÿ ÿåöÓ&§=ÿÿ ÿèöÑ&Œ=ÿÿ ÿèõÏ&-0ÿÿ ÿéõÎ&Ä0ÿÿ ÿèóÏ&Å0ÿÿ ÿêôÐ&‚0ÿÿ ÿêöÎ&00ÿÿ ÿéóÏ& j0ÿÿ ÿéóÏ&#0ÿÿ ÿéöÎ& ’ ‘ÿÿ ÿéôÑ& ‘$ ÿÿ ÿçôÏ&Ë=ÿÿ ÿçôÏ&Ë=ÿÿ ÿçôÏ&Ë=ÿÿ ÿçôÏ&#Ëÿÿ ÿçôÏ&Ë=ÿÿ ÿçôÏ&ËÉÿÿ ÿçôÏ&Ê=ÿÿ ÿçôÏ&Ê=ÿÿ ÿçôÏ&Ê=ÿÿ ÿçôÏ&Ê=ÿÿ ÿçôÏ&Ê=ÿÿ ÿçôÑ&ÌÊÿÿ ÿçôÏ&Ê= ÿÿ ÿçôÏ&Ê=!ÿÿ ÿçôÏ&Ê="ÿÿ ÿçõÐ&Ê=#ÿÿ ÿçôÐ&Ê=$ÿÿ ÿçôÏ&Ê=%ÿÿ ÿçôÏ&Ê ÿÿ ÿçôÏ&Ê=&ÿÿ ÿçôÏ&yÊÿÿ ÿçôÏ&Ê='ÿÿ ÿçôÏ&Ê=(ÿÿ ÿçöÏ&#=)ÿÿ ÿçöÏ&;#ÿÿ ÿçöÏ&#=*ÿÿ ÿçôÏ&Ê=+ÿÿ ÿçöÏ&#=,ÿÿ ÿçôÏ&Ê=-ÿÿ ÿçöÑ&#=.ÿÿ ÿçöÐ&#=/ÿÿ ÿçôÏ&Ê’ÿÿ ÿçôÏ& \Êÿÿ ÿçôÐ&Ê=0ÿÿ ÿçöÏ&#=1ÿÿ ÿçöÏ&&#ÿÿ ÿçöÏ&Ê"ÿÿ ÿçöÐ&#=2ÿÿ ÿçôÏ&Ê=3ÿÿ ÿçöÏ&#=4ÿÿ ÿçöÏ&#=5ÿÿ ÿçôÐ&Ê=6ÿÿ ÿçöÏ&#=7ÿÿ ÿçöÏ&#=8ÿÿ ÿçöÏ&#=9ÿÿ ÿç÷Ï&#=:ÿÿ ÿèöÊ&Ñôÿÿ ÿéìÎ&ÑYÿÿ ÿéðÃ&ŠÂÿÿ ÿêòÎ&Œÿÿ ÿèóÇ&¡+Jÿÿ ÿéôÏ&ÑÃÿÿ ÿéöÎ&ŠÄÿÿ ÿéôÅ&Ñÿÿ ÿíóÊ&ßÿÿ ÿéóÆ&чÿÿ ÿëõÇ&Ñÿÿ ÿèõÏ&Šÿÿ ÿéõË&`Šÿÿ ÿìõÑ&Š-ÿÿ ÿçóÎ&Ѹÿÿ ÿéòÐ&Ñ0öÿÿ ÿíóÊ&ŒQÿÿ ÿéöÐ&³ÿÿ ÿèôÐ&ÐÑÿÿ ÿèöÏ&Š+ÿÿ ÿéóÏ&Ñÿÿ ÿíðÏ&Šiÿÿ ÿêìÏ&ÎÍÿÿ ÿíöÌ&1Íÿÿ ÿíôÐ&Àÿÿ ÿíóÏ&Ñ'Ëÿÿ ÿéóÏ&OŠÿÿ ÿéòÄ&ÑÎÿÿ ÿéòÎ&²ÿÿ ÿèóÏ&Šÿÿ ÿíõÆ&Œÿÿ ÿèõË&ÏÍÿÿ ÿèóÏ&Ñÿÿ ÿêðÇ&ÍÃÿÿ ÿíôÆ&Šžÿÿ ÿêòÏ&Ñ ÿÿ ÿêõÉ&Ñ~ÿÿ ÿè÷Ï&Ñ7ÿÿ ÿéõÑ&Œôÿÿ ÿèîÏ&Ñÿÿ ÿéóÏ&Ñæÿÿ ÿèôÐ&PŒÿÿ ÿéöÏ&Ñ—ÿÿ ÿíöÑ&Œaÿÿ ÿéõÐ&óÿÿ ÿçõÐ&Ñ(ÿÿ ÿêõÑ&Ñ2ÿÿ ÿèôÉ&00ÿÿ ÿíóÏ&~Ñÿÿ ÿíóÄ&Ñ&ÿÿ ÿéõÐ&Š‹ÿÿ ÿéóÏ&æŒÿÿ ÿéóÐ&ŠNÿÿ ÿéôÑ&àÑÿÿ ÿé÷Ì&Eÿÿ ÿéñÇ&Óÿÿ ÿèõÏ&Œ»ÿÿ ÿæôÏ&Ñÿÿ ÿéòÏ&Š,ÿÿ ÿêûË&Œ&Hºÿÿ ÿéõÈ&Ñ<ÿÿ ÿèôÑ&Ѧÿÿ ÿèñÆ&+Iÿÿ ÿìõÄ& &!ÿÿ ÿèõÕ&+J=;ÿÿ ÿéôÏ&Œ$ÿÿ ÿéõÄ&Œ+Hÿÿ ÿéóÅ&Ðÿÿ ÿéêÐ&Š–ÿÿ ÿéóÎ&Ñ0ÿÿ ÿèóÏ&+K0Yÿÿ ÿçõÑ& Œÿÿ ÿéõÐ&„ÿÿ ÿéôÏ& ®ÿÿ ÿèõÐ&LÑÿÿ ÿéìÈ&+Fÿÿ ÿéóÏ&Žÿÿ ÿéôÏ&+Gÿÿ ÿéöÏ&Œ/öÿÿ ÿçõÓ&)@ÿÿ ÿèöÎ&Œ»ÿÿ ÿèõÑ&‰Œÿÿ ÿéõÐ&Œ‹ÿÿ ÿèòÏ&Ñ Wÿÿ ÿèóÏ&Œ-dÿÿ ÿéóÏ&Šÿÿ ÿìõÑ& ÿÿ ÿéîÏ& ÿÿ ÿêõÇ&.3/`ÿÿ ÿéøÏ& ÿÿ ÿíñÍ&Œ+Mÿÿ ÿèöÏ&Œ'ðÿÿ ÿé÷Ç&Œ1ÿÿ ÿéðÅ&Œ»ÿÿ ÿéíÑ&/&/`=<ÿÿ ÿéöÏ&Í"Hÿÿ ÿìõÐ&Œ+Lÿÿ ÿéíÇ&Ñÿÿ ÿéõÐ&Ñ#¡ÿÿ ÿèòÏ&Œ.ÿÿ ÿèõÐ&0Œÿÿ ÿéóÎ&Ñ&Çÿÿ ÿéôÏ&/ú/`ÿÿ ÿéóÎ&+Nÿÿ ÿéõÑ&Oÿÿ ÿíñÍ&0ÿÿ ÿèôÍ&==ÿÿ ÿèñÐ&Ñ ÿÿ ÿèñÎ&Í&Û&eÿÿ ÿéöÏ&/`ÿÿ ÿèôÏ&$‚ÿÿ ÿéöÎ&Œ"_ÿÿ ÿéíÉ&ÑJÿÿ ÿíñÏ&Œ!aÿÿ ÿéóÊ&Œóÿÿ ÿíóÎ&Œÿÿ ÿèóÏ&Ñ‹ÿÿ ÿéóÏ&/`0sÿÿ ÿçõÉ&ŒYÿÿ ÿéòÎ&Œ.¹ÿÿ ÿéíÇ&5ÿÿ ÿéõÏ&0/`ÿÿ ÿèõÎ&°ÿÿ ÿèïÐ&Í0¹ÿÿ ÿéõÈ&#Iÿÿ ÿéïÑ&Œÿÿ ÿíôÏ&Œ"jÿÿ ÿéöÑ&=>ÿÿ ÿéóÎ&Œ$¸ÿÿ ÿíòÐ&Œ2ÿÿ ÿèôÐ&ÿÿ ÿêîË&$Tÿÿ ÿèõÐ& /`ÿÿ ÿéòÈ&Œ$Ìÿÿ ÿçóÐ&æÿÿ ÿéöÒ&/ÿÿ ÿèõÇ&/8ÿÿ ÿéòÏ&Œÿÿ ÿéïÐ&Ñ%ÿÿ ÿèñÏ&+O=?ÿÿ ÿéôÉ&/9ÿÿ ÿé÷Ð&/Y/`ÿÿ ÿêôÑ&+Pÿÿ ÿèôÒ&0 +Oÿÿ ÿìóÏ&¦/`ÿÿ ÿéóÏ&0ÿÿ ÿéïÐ&-…ÿÿ ÿéõÏ&f&-q/`ÿÿ ÿéöÇ&Í& Ãÿÿ ÿèõÐ&Œ&˜ÿÿ ÿèöÐ&ÒÍÿÿÿéóÐ&ÓÛÿÿ ÿéîÑ&Œ¹ÿÿ ÿéòÏ&Í Þÿÿ ÿèõÑ&f&-r/`ÿÿ ÿêöÏ&â&/`=@ÿÿ ÿéíÏ&Í-9ÿÿ ÿèóÏ&{ÿÿ ÿèôÑ&û+Oÿÿ ÿçôÏ&(Kÿÿ ÿíöË&Œÿÿ ÿêîÑ&Œ'ÿÿ ÿêòÏ&üÿÿ ÿéóÈ&/`/bÿÿ ÿéóÒ&iÿÿ ÿèõÌ&þÿÿ ÿè÷Ð&6&/`=AÿÿÿèõÊ&ÔÓÿÿ ÿéôÎ&Œ*Ñÿÿ ÿèôÎ&+Qÿÿ ÿéóÏ&'÷ÿÿ ÿêóÐ&Í&¤ÿÿ ÿèðÑ&&3=Bÿÿ ÿéøÊ&Œ¡ÿÿ ÿëòÏ&ú&/`=Cÿÿ ÿèòÐ&/ÿ.ÿÿ ÿéñÈ&Í'ÿÿ ÿèõÏ&/dÿÿ ÿêóÐ&=Dÿÿ ÿèõÐ&&/`=Eÿÿ ÿéóÏ&%õ/`ÿÿ ÿçøÒ&Õ/`ÿÿ ÿéõÐ&/`=Gÿÿ ÿéòÊ&Œðÿÿ ÿéöÉ&'è/`ÿÿ ÿçôÐ&/`=Hÿÿ ÿç÷Ò&±ÿÿÿéóÏ&Ó&0=Iÿÿ ÿèóÐ&+R/`ÿÿ ÿèòÍ&%\ÿÿÿéòÐ&Ó%Vÿÿ ÿéôÏ&/`=Jÿÿ ÿèðÏ&/`=Kÿÿ ÿêóÑ&0=Lÿÿ ÿéöÐ&}ÿÿ ÿéðË&ú&/`=Mÿÿ ÿëòÈ&ú&/`=Nÿÿ ÿçôÏ&0/`ÿÿ ÿéíÊ&–/`ÿÿ ÿèöÐ&/`=Oÿÿ ÿéñÑ&Í+Sÿÿ ÿèòÑ&&0=Pÿÿ ÿéóÌ&(T/`ÿÿ ÿéòË&.¨ÿÿÿéóÐ&Ó=Qÿÿ ÿèùÔ&/`=Rÿÿ ÿçõÐ&‡/`ÿÿ ÿçøÒ&/`=Sÿÿ ÿéöÎ&Æ/`ÿÿ ÿçóÎ&/`=Tÿÿ ÿéêÐ&Ö×ÿÿ ÿéòÐ&Iÿÿ ÿèõÐ&gÿÿ ÿèôÐ&&ÿÿ ÿéõÐ&<ÿÿ ÿèîÐ&”“ÿÿ ÿéñÐ&#Ç”ÿÿ ÿèóÐ&!—ÿÿ ÿéóÐ&çÿÿ ÿèïÐ&'ö/‘ÿÿ ÿèóÐ&/‘=Uÿÿ ÿéòÐ&”-†ÿÿ ÿéùÒ&/‘=Vÿÿ ÿçðÑ&/‘=Wÿÿ ÿéóÏ& Ì1ÿÿ ÿéøÏ&à ÍÿÿÿéïÏ&!+…ÿÿ ÿéõÏ& Í!*ÿÿ ÿèöÏ& ÍHÿÿ ÿéóÏ& Í!,ÿÿ ÿéöÏ& ΄ÿÿ ÿéîÏ& Íÿÿ ÿèõÏ& ÎUÿÿ ÿéõÐ&¬ Îÿÿ ÿèòÏ& Î0%ÿÿ ÿéïÏ& Ξÿÿ ÿéôÏ& Î Òÿÿ ÿéôÏ& Τÿÿ ÿéõÏ& ̓ÿÿ ÿéñÏ& Í)µÿÿ ÿèõÏ&!C Îÿÿ ÿéöÏ& ͬÿÿÿçïÏ&!+=Yÿÿ ÿéìÐ&2 Íÿÿ ÿéõÏ& Îôÿÿ ÿèóÏ& Ôîÿÿ ÿçõÏ& ÔFÿÿ ÿéòÐ& Î0ôÿÿ ÿèõÐ& Î&åÿÿ ÿêöÒ&ø=Zÿÿ ÿéõÏ& Î!Mÿÿ ÿéñÏ& Îþÿÿ ÿçõÏ& ÎFÿÿ ÿéôÏ& Íœÿÿ ÿéòÏ& Ô²ÿÿ ÿéòÏ& Î/”ÿÿ ÿçòÐ& Î/‚ÿÿ ÿéëÏ& Í·ÿÿ ÿéòÏ& Í&¶ÿÿ ÿéîÏ& Îÿÿ ÿéóÏ& Î.ÿÿ ÿéòÏ& Î(-ÿÿ ÿéòÏ& Îÿÿ ÿéôÏ& Î ÿÿ ÿéóÏ& Î ÿÿ ÿéïÏ&E Îÿÿ ÿèïÏ& Î ÿÿ ÿéóÏ&/•=[ÿÿ ÿéòÏ& Τÿÿ ÿéõÐ& ΋ÿÿ ÿéôÐ& Ιÿÿ ÿéöÑ& Îbÿÿ ÿéòÏ&8 Îÿÿ ÿèöÏ&. =\ÿÿ ÿéóÏ& Î+ÿÿ ÿçóÏ&=]ÿÿ ÿéóÏ& Ô ÿÿ ÿéôÏ& Î ÿÿ ÿéêÐ& Îÿÿ ÿçõÏ& Ôÿÿ ÿéòÏ& Îÿÿ ÿéóÏ&Ñ Ôÿÿ ÿéöÏ& Î)–ÿÿ ÿéóÐ& Î,ÿÿ ÿéòÏ& Îÿÿ ÿéëÏ&¾ Ôÿÿ ÿçöÏ& Îÿÿ ÿèõÏ&V Îÿÿ ÿé÷Ï& Ô.4ÿÿ ÿçöÒ&f Îÿÿ ÿèñÏ& Ôÿÿ ÿéðÐ& Ô# ÿÿ ÿèñÏ&!(ïÿÿ ÿèïÏ& Ô-hÿÿ ÿéöÏ& Ô Øÿÿ ÿéõÏ& Î1ÿÿ ÿéíÏ& Ô/–ÿÿ ÿéóÏ& Î)éÿÿ ÿéôÏ& Î+TÿÿÿéòÏ&/—=^ÿÿ ÿéòÏ& Î,AÿÿÿéòÏ&/˜/—ÿÿ ÿéøÏ& Ô $ÿÿ ÿéôÏ& Î`ÿÿ ÿéöÏ& Î#Hÿÿ ÿäöÏ& Î"sÿÿ ÿéóÏ& ÎŒÿÿ ÿé÷Ï& Ô/™ÿÿ ÿéóÏ&/š Îÿÿ ÿéñÏ& Îÿÿ ÿéóÏ& Ô&Žÿÿ ÿéñÏ& Î/ÿÿ ÿéöÏ& Ôÿÿ ÿèóÐ& Ï Îÿÿ ÿéïÏ& Îÿÿ ÿéöÏ& Ôÿÿ ÿéõÏ& Îÿÿ ÿèôÏ&ÿ=`ÿÿ ÿèôÏ& Ô$rÿÿ ÿéòÑ& Ô/ÿÿ ÿéòÏ& Ô$Âÿÿ ÿéôÑ& Ô.‚ÿÿ ÿé÷Ï& Ôÿÿ ÿéõÑ& Î0ÿÿ ÿéóÏ& Î(Ùÿÿ ÿéõÏ& Ô&G=aÿÿ ÿéïÏ& Ô4ÿÿ ÿéóÏ&÷=bÿÿ ÿéóÏ& Ô'÷ÿÿ ÿéóÏ& Ô=cÿÿ ÿéõÐ& Î* ÿÿ ÿéõÏ& Ô*ÿÿ ÿèöÐ& Ô)òÿÿ ÿéòÏ& Ôüÿÿ ÿéôÏ& Ô*Ñÿÿ ÿéïÏ& Ô0ÿÿ ÿéòÏ&.¯ Ôÿÿ ÿéøÑ& Ô0ÿÿ ÿéõÏ& Ô0 ÿÿ ÿèôÐ&%q'úÿÿ ÿçóÐ&#h&#g=dÿÿ ÿéóÐ&%q&/á=eÿÿ ÿéñÏ& Ô0"ÿÿÿè÷Ï&,Y=fÿÿ ÿéóÐ& Ô*yÿÿÿçôÑ&0!=gÿÿ ÿéòÏ&%r%qÿÿ ÿéôÐ&…=hÿÿ ÿèóÐ&%q)õÿÿ ÿéöÏ& Ô0#ÿÿ ÿéóÑ& ÔÎÿÿÿèòÏ&0(3ÿÿ ÿéõÏ&þÿÿ ÿéóÏ&&þÿÿ ÿéìÏ&œþÿÿ ÿéôÐ&þ*rÿÿ ÿèòÏ&0%þÿÿ ÿéôÏ&þFÿÿ ÿéõÑ&þ²ÿÿÿæòÏ&ÿ=jÿÿ ÿéóÏ&þÿÿ ÿéóÐ&¶ÿÿ ÿèñÏ&þ*zÿÿ ÿéëÏ&þ)ÿÿÿ ÿçôÏ&þ%Ìÿÿ ÿéòÏ&þ(-ÿÿ ÿéóÏ&þ0)ÿÿ ÿéöÐ&þ³ÿÿ ÿéòÏ&þ ÿÿ ÿéðÏ&þ|ÿÿ ÿéõÏ&þQÿÿ ÿéõÏ&þ ÿÿÿçõÏ&÷=kÿÿ ÿéóÏ&þ&ÿÿ ÿèöÐ&áÿÿ ÿéöÑ&“ÿÿ ÿéõÐ&‹þÿÿ ÿéòÏ&¤þÿÿ ÿéóÐ&Ðÿÿ ÿéóÒ&0ìÿÿ ÿéîÐ&0*ÿÿÿçïÎ&0+=lÿÿÿçîÏ&0+=mÿÿ ÿèóÏ&°ïÿÿ ÿéôÏ&þ0,ÿÿ ÿèîÐ&0-ÿÿ ÿéöÐ& ×ÿÿ ÿéòÐ&þ0.ÿÿ ÿéöÐ&01ÿÿ ÿéíÐ&5ÿÿ ÿäöÏ&ýþÿÿ ÿéöÐ&ÿÿ ÿéðÐ&…=nÿÿ ÿéòÐ&$Áÿÿ ÿéðÑ&‡ÿÿ ÿéöÏ&þÿÿ ÿéôÑ&+Pÿÿ ÿéóÐ&&÷=oÿÿ ÿéôÐ&*Ñÿÿ ÿéóÏ&n02ÿÿÿéóÏ&03=qÿÿ ÿèöÐ&ÿÿ ÿéðÐ&É&Ê=rÿÿ ÿéðÐ&Ê&ÉËÿÿ ÿéðÐ&É&ÊÌÿÿ ÿéðÐ&É&ÊÍÿÿ ÿéðÐ&É&ÊÎÿÿÿéóÏ&.Í04ÿÿ ÿéðÐ&u&Ê=sÿÿ ÿéðÐ&Ê&u=tÿÿ ÿè÷Ç&s=uÿÿÿèôÊ&05=vÿÿ ÿèöÊ&/B%-ÿÿ ÿëôÉ&u=xÿÿ ÿëôÏ&ãuÿÿ ÿëôÉ&;uÿÿ ÿëôÏ&u=yÿÿ ÿëôÐ&äuÿÿ ÿëôÉ&–uÿÿ ÿëôÐ&åuÿÿ ÿëôÌ&u=zÿÿ ÿëôÊ&uÿÿ ÿëôÉ& uÿÿ ÿëôÏ&u={ÿÿ ÿëöÉ&u=|ÿÿ ÿëôË&u=}ÿÿ ÿëôÎ&u=~ÿÿ ÿëôÉ&u=ÿÿ ÿëôÉ&u=€ÿÿ ÿëôÉ&u=ÿÿ ÿëôÏ&u=‚ÿÿ ÿëôË&u=ƒÿÿ ÿëôÉ&u=„ÿÿ ÿëôÍ&¼uÿÿ ÿëôÏ&u=…ÿÿ ÿëôÉ&u=†ÿÿ ÿëôÏ&®uÿÿ ÿëôÏ&»uÿÿ ÿëôÎ&u=‡ÿÿ ÿëôÉ&®uÿÿ ÿëôÉ&u=ˆÿÿ ÿëôÐ&u=‰ÿÿ ÿëôÏ&u=Šÿÿ ÿëôÎ&u=‹ÿÿ ÿëôÉ& ñuÿÿ ÿëôÏ&u=Œÿÿ ÿëôÐ&u=ÿÿ ÿëôÉ&u=Žÿÿ ÿëôÏ&u=ÿÿ ÿëôÉ&u=ÿÿ ÿëôÉ&~uÿÿ ÿëôË&u=‘ÿÿ ÿëöÏ&u=’ÿÿ ÿëôÉ&u=“ÿÿ ÿëôÏ&u=”ÿÿ ÿëôÏ&suÿÿ ÿëôÏ&u=•ÿÿ ÿëôÎ&u=–ÿÿ ÿëôÐ&u=—ÿÿ ÿëôÏ&u=˜ÿÿ ÿëôÍ&u=™ÿÿ ÿëôÉ&u=šÿÿ ÿëôÏ&u=›ÿÿ ÿëôÍ&u=œÿÿ ÿëôÉ&u=ÿÿ ÿëôÉ&u=žÿÿ ÿëôÉ&u=Ÿÿÿ ÿëôÏ&u= ÿÿ ÿëôÏ&$uÿÿ ÿëôÏ&u=¡ÿÿ ÿëôÑ&u=¢ÿÿ ÿëôÉ&u=£ÿÿ ÿëôÑ& uÿÿ ÿëôÎ&u=¤ÿÿ ÿëôÊ&u=¥ÿÿ ÿëôÏ&u=¦ÿÿ ÿëôÉ&Muÿÿ ÿëôÑ&uÜÿÿ ÿëôÌ&zuÿÿ ÿëôÏ&u=§ÿÿ ÿëôÎ&|uÿÿ ÿëôË&uÿÿ ÿëôÏ&Åuÿÿ ÿëôÐ&u=¨ÿÿ ÿëôÏ&çuÿÿ ÿëôÏ&J&uIÿÿ ÿëôÑ&-uÿÿ ÿëôÏ&uÿÿ ÿëôÏ&u=©ÿÿ ÿëôÉ&u=ªÿÿ ÿëôÌ&u=«ÿÿ ÿëôÉ&u=¬ÿÿ ÿëôÐ&u=­ÿÿ ÿëôÐ&u=®ÿÿ ÿëôÏ&3uÿÿ ÿëôÑ&u=¯ÿÿ ÿëôÉ&u=°ÿÿ ÿëôÏ&u=±ÿÿ ÿëôÉ&uÿÿ ÿëôÓ&u=²ÿÿ ÿëôÉ&u=³ÿÿ ÿëôÏ&N&Muÿÿ ÿëôÉ&u=´ÿÿ ÿëôÏ&u=µÿÿ ÿëôÉ&u=¶ÿÿ ÿëôÐ& ºuÿÿ ÿëôÏ&u=·ÿÿ ÿëôÑ&u=¸ÿÿ ÿëôÒ&u=¹ÿÿ ÿëôÏ&u=ºÿÿ ÿëôÏ&d&cuÿÿ ÿëôÉ&u=»ÿÿ ÿëöÍ&\uÿÿ ÿëôÐ&Tuÿÿ ÿëöÐ&u=¼ÿÿ ÿëôÉ&u=½ÿÿ ÿëôÉ&u=¾ÿÿ ÿëôÒ&u=¿ÿÿ ÿëôÎ&u ]ÿÿ ÿëôÏ&u=Àÿÿ ÿëôÎ&u=Áÿÿ ÿëôÏ&u=Âÿÿ ÿëôÏ&uÅÿÿ ÿëôÉ&u=Ãÿÿ ÿëôÉ&" uÿÿ ÿëôÍ&u=Äÿÿ ÿëôÐ&#–uÿÿ ÿëôÉ&u"#ÿÿ ÿëôÎ&u=Åÿÿ ÿëôÐ&!¥uÿÿ ÿëôÏ&uÿÿ ÿëôÉ&u=Æÿÿ ÿëôÉ& {uÿÿ ÿëôÏ& kuÿÿ ÿëôÏ&u=Çÿÿ ÿëôÉ&!-uÿÿ ÿëôÐ&"¿uÿÿ ÿëôÉ&u=Èÿÿ ÿëôÉ&u=Éÿÿ ÿëôÉ& “uÿÿ ÿëôÐ&"³uÿÿ ÿëôÐ&!¡uÿÿ ÿëôÏ&u!šÿÿ ÿëôÏ&u=Êÿÿ ÿëôÏ&"ûuÿÿ ÿëôÏ&"¼uÿÿ ÿëôÏ&"uÿÿ ÿëôÏ&$9uÿÿ ÿëôÑ&u=Ëÿÿ ÿëôÍ&u=Ìÿÿ ÿëøÎ&u=Íÿÿ ÿëôÉ&u=Îÿÿ ÿëôÏ&$äuÿÿ ÿëôÏ&vuÿÿ ÿëôÐ&$ðuÿÿ ÿëôË&$Vuÿÿ ÿëôÏ&u=Ïÿÿ ÿëôÌ&u=Ðÿÿ ÿëôÐ&uÿÿ ÿëõÐ&u=Ñÿÿ ÿëôÒ&u=Òÿÿ ÿëõÏ&u=Óÿÿ ÿëôÏ&u=Ôÿÿ ÿëôÐ&u=Õÿÿ ÿëôÉ&u=Öÿÿ ÿëôÏ&u=×ÿÿ ÿëôË&/uÿÿ ÿëôÌ&u=Øÿÿ ÿëôÐ&%Šuÿÿ ÿëôÑ&u=Ùÿÿ ÿëôÏ&u=Úÿÿ ÿëôÉ&u=Ûÿÿ ÿëôÌ&u=Üÿÿ ÿëôË&u=Ýÿÿ ÿëôÏ&u=Þÿÿ ÿëôÉ&Æ&Çuÿÿ ÿëõÒ&uƒÿÿ ÿëôÐ&u=ßÿÿ ÿëôÏ&u=àÿÿ ÿëôÏ&(}uÿÿ ÿëôÏ&u=áÿÿ ÿëôÏ&u=âÿÿ ÿëôÑ&u=ãÿÿ ÿëôÑ&u=äÿÿ ÿëôÉ&u=åÿÿ ÿëôÑ&u=æÿÿ ÿëôÌ&u=çÿÿ ÿë÷Ë&u=èÿÿ ÿë÷Ð&‘&’uÿÿ ÿëôÓ&u=éÿÿ ÿëôÒ&u=êÿÿ ÿëôÑ&u=ëÿÿ ÿëôÒ&u=ìÿÿ ÿëôÉ&u=íÿÿ ÿëôË&u=îÿÿ ÿéðÃ&&LÿÿÿéðÃ&&KÿÿÿêòÑ&&P=ïÿÿ ÿéñÄ&'þÿÿÿéðÃ&µÿÿÿéñË&&IþÿÿÿéðÃ&Òÿÿ ÿéðÏ&&Jÿÿ ÿéðÏ&&Hÿÿ ÿéðÆ&&Gÿÿ ÿéñÌ&þPÿÿ ÿéðÏ&Qÿÿ ÿéñÅ&Üþÿÿ ÿéñÃ&åþÿÿ ÿéñÏ&þ&Fÿÿ ÿéñÐ&&Eþÿÿ ÿéñÃ& òþÿÿ ÿéñÐ&þ&Dÿÿ ÿéñÇ&Éþÿÿ ÿéðÏ&&CÿÿÿéñÏ&þ&Mÿÿ ÿéñÐ&06þÿÿ ÿéñÎ&þ07ÿÿ ÿéñÍ&08þÿÿ ÿèñÊ&09ŠÿÿÿèñÆ&0:ŠÿÿÿèñÃ&Š&Rÿÿ ÿéðÄ&xÿÿ ÿéñÍ&0;þÿÿÿéñÏ&þ&QÿÿÿéñÐ&0<þÿÿ ÿèñÊ&Š=ðÿÿ ÿéñÏ&`þÿÿ ÿéñÏ&þ&Sÿÿ ÿéñÏ&þšÿÿ ÿéñÐ&þ0=ÿÿÿèñÏ&Šÿÿ ÿéñÑ&þäÿÿ ÿéñÏ&þ=ñÿÿ ÿéñÄ&0Æþÿÿ ÿèñÑ&Š‹ÿÿ ÿèñÊ&Šÿÿ ÿéðÏ&¥ÿÿÿéðÐ&ÐÿÿÿéðÏ& ÿÿ ÿéñÏ&þýÿÿ ÿèñÑ&Š\ÿÿÿèñÍ&ÝþÿÿÿèñÊ&±ŠÿÿÿèñÊ&"&eÿÿ ÿçñÏ&&X&eÿÿ ÿéñÃ&&Tþÿÿ ÿèñÏ&0>ŠÿÿÿéñÆ&þ&UÿÿÿèñÐ&Š.ÿÿÿèñÆ&&VŠÿÿ ÿéñÐ&&Wþÿÿ ÿéñÌ&&=þÿÿ ÿèñÏ&&YŠÿÿÿéðÎ&&Zÿÿ ÿçñÏ&þ àÿÿ ÿèñÆ&Š&[ÿÿ ÿèñÅ&Š&\ÿÿÿéðÇ&0?ÿÿÿèñÏ&¥Šÿÿ ÿéñË&þÍÿÿÿéñÆ&þ!€ÿÿÿèñÄ&Š!ÿÿÿèñÉ&ŠŽÿÿÿéñÐ&þ&]ÿÿ ÿèñÐ&0CŠÿÿ ÿçñÏ&áŠÿÿ ÿéñÐ&&^þÿÿ ÿèñÐ&Š&_ÿÿ ÿéñÐ&&`þÿÿÿçñÏ&ÝŠÿÿÿèñÅ&&e=òÿÿ ÿéñÑ&þ)šÿÿ ÿèñÏ&Š&aÿÿÿèñÏ& cŠÿÿÿèñÏ&&e.ëÿÿ ÿèñÎ&&dŠÿÿ ÿèñÍ&Ë&&e/½ÿÿ ÿæñÐ&ŠØÿÿ ÿéðÈ&"<ÿÿ ÿçöÐ&0D=óÿÿ ÿæñÈ&Š=ôÿÿ ÿèñÐ&Š"üÿÿÿéñÏ&þ&cÿÿÿèñÆ&Š#Æÿÿ ÿèñÈ&Š!ÿÿ ÿèñÏ&Š&bÿÿ ÿèñÏ&Š#±ÿÿÿèñÇ&Š"Óÿÿ ÿèñÏ&Š#Šÿÿ ÿèñÉ&Š –ÿÿÿèñÎ&Š/¾ÿÿ ÿèñÆ&Š!.ÿÿ ÿèñÏ& í&&e&lÿÿÿèñÍ&Š^ÿÿ ÿèñÑ&0—ËÿÿÿèñÏ&Š)›ÿÿ ÿèñÇ&Š)œÿÿ ÿèñÐ&Š$ˆÿÿ ÿèñÆ&)ŠÿÿÿèñÒ&Š/¿ÿÿ ÿèñÆ&Š)Ÿÿÿ ÿèñÑ&Š)žÿÿÿçñÏ&Š#ÿÿ ÿèñÐ&Ë&&e=õÿÿÿèñÉ&$ŠÿÿÿèñÐ&Š%ÿÿ ÿèñÓ&&e&mÿÿ ÿèñÆ&‰Šÿÿ ÿèñÍ&) Šÿÿ ÿèñÐ&ŠÊÿÿÿèñÑ&)¡Šÿÿ ÿèñÍ&;&eÿÿ ÿèñÏ&%Šÿÿ ÿèñÏ&Š)¢ÿÿ ÿèñÉ&Š)£ÿÿ ÿèñÎ&/ËŠÿÿ ÿèñÆ&Š/Àÿÿ ÿèñÐ&‹ŠÿÿÿèñÊ&Š)¤ÿÿ ÿèñÏ&)¥Šÿÿ ÿèñÊ&)¦ŠÿÿÿîôÑ&ü)§ÿÿ ÿèñË&Š/Âÿÿ ÿèñÏ&&e/ÁÿÿÿèñÑ&Š*œÿÿÿèñÏ&Š#òÿÿÿèñÐ&/Êÿÿ ÿåñÒ&Š/Çÿÿ ÿèñÏ&*Šÿÿ ÿèñÎ&å&eÿÿ ÿèñÏ&Š'>ÿÿÿèñÈ&ŠeÿÿÿèñÇ&Š&nÿÿ ÿèñÏ&&e/Äÿÿ ÿèñÉ&(Šÿÿ ÿèñÐ&*žŠÿÿÿèñÎ&/ÆŠÿÿ ÿçñÆ&&e/ÅÿÿÿèñÒ&%&eÿÿÿèñÑ&%P&eÿÿ ÿçñË&&e&oÿÿ ÿæñÏ&Š=öÿÿ ÿçñÐ&&e/Èÿÿ ÿèñÑ&&e'5ÿÿÿèñÉ&&e=÷ÿÿÿèñÏ&ŠSÿÿ ÿèñÏ&Š=øÿÿÿèñÐ&&e&pÿÿ ÿçñÐ&/ÊŠÿÿ ÿèñÌ&&e/Éÿÿ ÿèóÈ&²qÿÿ ÿéðÐ&)äÿÿ ÿé÷È&²ÿÿ ÿéóÏ&ÿÿ ÿéôÏ&Ÿÿÿ ÿéóÈ&²!,ÿÿ ÿèòË&/Ì.ôÿÿ ÿéôÏ&=ùÿÿ ÿé÷Ï&²/Íÿÿ ÿéôÍ&¤ÿÿ ÿéõÏ&%1ÿÿ ÿéìË&²+ÿÿ ÿèõÈ&²Tÿÿ ÿéôÎ&#¿ÿÿ ÿéöÈ&¬ÿÿ ÿçõÏ&˜ÿÿ ÿéóÏ&²Oÿÿ ÿéóÈ&.ÿÿ ÿéòÏ&²lÿÿ ÿæïÐ&¸ÿÿ ÿèòÏ&¹ÿÿ ÿéïÏ&²#-ÿÿ ÿéöÐ&!JÿÿÿèõÐ&ÿÿ ÿéîÏ&ÿÿ ÿéôÐ&²…ÿÿ ÿèëÏ&Sÿÿ ÿéïÈ&*›ÿÿ ÿéðÏ&ÿÿ ÿéõÏ&²áÿÿ ÿéóÑ&=úÿÿ ÿéôÈ&0Bÿÿ ÿèôÐ&&²ÿÿ ÿéõÏ&dÿÿ ÿéöÎ&*Ÿÿÿ ÿéõÐ&ÿÿ ÿéóÍ&²&>ÿÿ ÿèõÑ&eÿÿ ÿéõÌ&²ÿÿ ÿéòÐ&Úÿÿ ÿèóÈ&1ÿÿ ÿéòÈ&#* ÿÿ ÿéóÐ&²&ëÿÿ ÿéóÐ&)ÿÿ ÿé÷È&#"nÿÿ ÿèöÏ&#/Îÿÿ ÿéùÏ&# 3ÿÿ ÿèîÏ&&ïÿÿ ÿéòÐ&²mÿÿ ÿçöÒ&fÿÿ ÿéóÑ&#ÿÿ ÿéòÏ&rÿÿ ÿéöÈ& Ö#ÿÿ ÿéóÏ&ÿÿ ÿéôÈ&²*¡ÿÿ ÿéõÉ&²"ÿÿ ÿéóÏ&#6ÿÿ ÿéîÏ&#&/Ï=ûÿÿ ÿéñÈ&²$^ÿÿ ÿéóÉ&²9ÿÿ ÿéôÏ&#=üÿÿ ÿéóÐ&$:#ÿÿ ÿèòÏ&ý0¤ÿÿ ÿèöÎ&#&=ýÿÿ ÿéóÏ&#=þÿÿ ÿéôÑ&#úÿÿ ÿéòÏ&#ÿÿ ÿéõÈ&#ÿÿÿéìÏ&ü&úùÿÿ ÿé÷Ð&$,#ÿÿ ÿéïÏ&#$’ÿÿ ÿéôÒ&=ÿÿÿ ÿéôÑ&$!ÿÿ ÿéóÒ& ÿÿ ÿéóÉ&#$-ÿÿ ÿéóÈ&çÿÿ ÿéðÑ&²"Qÿÿ ÿé÷Í&*¢ÿÿ ÿéóÌ&/2 ÿÿ ÿéóÕ& ÿÿ ÿéõÐ&* ÿÿ ÿéõÏ&/fÿÿ ÿéõÑ&#>ÿÿ ÿéóÉ&*£ÿÿ ÿèõÌ&þýÿÿ ÿçôÏ&-ÿÿ ÿéôÈ&ýØÿÿ ÿéòÐ&#-†ÿÿ ÿéõÏ&#/eÿÿ ÿéöÑ&#-›ÿÿ ÿéøÒ&#-œÿÿ ÿéòÊ&#*¤ÿÿ ÿèóÏ&#*¥ÿÿ ÿèòÐ&ý)Áÿÿ ÿéòÈ&#>ÿÿ ÿéõÏ&ý>ÿÿ ÿéôÑ&#êÿÿ ÿéóÎ&#-ÿÿ ÿéòÉ&ý*kÿÿ ÿéöË&ý/«ÿÿ ÿéôÎ&¤*¦ÿÿÿçöÎ&98ÿÿÿéëÏ&·;ÿÿÿéòÎ&<*×ÿÿÿéôÎ&ÙØÿÿ ÿéïÆ&*§*ÿÿ ÿìóÒ&/.ÿÿ ÿíòÑ&3˜ÿÿ ÿëôÎ&›ÿÿ ÿêïÑ&—˜ÿÿ ÿçëÏ&Èÿÿ ÿéæÑ&¢˜ÿÿ ÿèóÑ&q˜ÿÿ ÿêëÑ&ú˜ÿÿ ÿéøÏ&àÿÿ ÿéíÏ&îÿÿ ÿéòÑ&˜Àÿÿ ÿèøÑ&˜Áÿÿ ÿèöÏ&Úÿÿ ÿðòÎ&œ>ÿÿ ÿèóÏ&èÿÿ ÿéìÎ&Yÿÿ ÿêõÑ&&˜ÿÿ ÿèôÐ&Lÿÿ ÿñêÏ&*uÿÿ ÿèíÐ&Åÿÿ ÿéôÎ&bÿÿ ÿéöÏ&„ÿÿ ÿéðÎ&´ÿÿ ÿêðÎ&ÿÿ ÿéóÎ&žÿÿ ÿñòÏ&ÿÿ ÿêñÏ&$ÿÿ ÿèöÏ&Hÿÿ ÿîõÐ&¡ÿÿ ÿêóÏ&ÿÿ ÿèöÏ&Ÿÿÿ ÿîôÏ&Ÿÿÿ ÿñòÏ& ÿÿ ÿéôÎ&*¨ÿÿ ÿèôÏ&üÿÿ ÿéöÏ&ÿÿ ÿêöÐ& ÿÿ ÿéòÏ&0­ÿÿ ÿëõÎ&ÿÿ ÿéóÐ&…ÿÿ ÿèôÏ&â!ÿÿ ÿéóÎ&ÿÿ ÿéôÏ&”ÿÿ ÿéëÏ&%’ÿÿ ÿéòÎ&¨&yÿÿ ÿéöÎ&¨Äÿÿ ÿéïÏ&žÿÿ ÿëöÎ&6¨ÿÿ ÿéóÏ&£ÿÿ ÿëõÐ&¬ÿÿ ÿéïÐ&Öÿÿ ÿéèÐ&¨&/6ÿÿ ÿèöÑ&­ÿÿ ÿéóÐ&Ãÿÿ ÿèõÏ&!Fÿÿ ÿèõÏ&¹ÿÿ ÿëóÎ&¨1ÿÿ ÿêôÏ&¿ÿÿ ÿèõÏ&Íÿÿ ÿèôÏ&%ÿÿ ÿìõÏ&âÿÿ ÿèôÏ&âmÿÿ ÿêîÏ&*Úÿÿ ÿéòÎ&™ÿÿ ÿéíÎ&ôÿÿ ÿé÷Ï&â%úÿÿ ÿéôÏ&—ÿÿ ÿéöÏ&aÿÿ ÿêìÏ&(¾ÿÿ ÿçöÏ&9ÿÿ ÿîôÏ&6öÿÿ ÿçõÏ&"•ÿÿ ÿèïÐ&*‰¨ÿÿ ÿéóÎ&*©ÿÿ ÿçõÏ&¨Fÿÿ ÿéóÎ&.ÿÿ ÿçõÏ&¦ÿÿ ÿéòÐ&0ôÿÿ ÿéóÏ&¨ÿÿ ÿçòÐ&/‚ÿÿ ÿéôÏ&®¨ÿÿ ÿëòÎ&&¨ÿÿ ÿæïÐ&¸ÿÿ ÿèòÏ&¨*ªÿÿ ÿêëÏ&·ÿÿ ÿëèÎ&ï¨ÿÿ ÿèéÎ&/ÿÿ ÿèöÏ&+ÿÿ ÿëôÎ&žÿÿ ÿéóÏ&Oÿÿ ÿëðÏ&jÿÿ ÿëðÏ&.}ÿÿ ÿéîÎ&ÿÿ ÿëôÐ&¨Àÿÿ ÿéöÐ&!Jÿÿ ÿêõÏ&¤5ÿÿ ÿëóÏ&ˆ¨ÿÿ ÿñîÏ&!Hÿÿ ÿëîÎ&*«ÿÿ ÿéêÐ&Mÿÿ ÿëôÏ&œÿÿ ÿèðÑ&4ÿÿ ÿëðÎ&¨/­ÿÿ ÿéõÏ&â·ÿÿ ÿèòÏ&¹ÿÿ ÿéòÎ&&¶ÿÿ ÿéïÏ&â/¹ÿÿ ÿêòÎ&*¬ÿÿ ÿçóÐ&&ÿÿ ÿéõÏ&¨!Mÿÿ ÿèóÏ&âÿÿ ÿèõÏ&gÿÿ ÿéòÏ&¨Tÿÿ ÿêìÎ&ÿÿ ÿêöÏ&ÿÿ ÿïôÏ&!m¤ÿÿ ÿèôÎ&¨ÿÿ ÿééÎ&!p¨ÿÿ ÿëóÎ&íÿÿ ÿèõÎ&¨/Ðÿÿ ÿéíÎ&ˆÿÿ ÿêõÏ&¤¹ÿÿ ÿéñÎ&¨*­ÿÿ ÿîôÐ&ö>ÿÿ ÿèïÏ&â&¤ ÿÿ ÿèñÎ&8ÿÿ ÿéòÏ&¤¨ÿÿ ÿèïÏ&+^¨ÿÿ ÿèôÎ&&çÿÿ ÿéõÐ&‹¨ÿÿ ÿèóÐ&çÿÿ ÿéõÏ& âÿÿ ÿèôÏ&Ùÿÿ ÿéöÑ&éÿÿ ÿêõÎ&Lÿÿ ÿèëÏ&Sâÿÿ ÿéóÏ&*®ÿÿ ÿéìÎ&a¨ÿÿ ÿèñÎ&¨Dÿÿ ÿèôÏ&¨ÿÿ ÿëôÏ&¨ôÿÿ ÿéõÒ&¨™ÿÿ ÿéôÏ&¨&F/Õÿÿ ÿéôÏ&âSÿÿ ÿëóÎ&Tÿÿ ÿîôÉ&0Eöÿÿ ÿéóÏ&æâÿÿ ÿñöÑ&bÿÿ ÿêóÎ&=ÿÿ ÿè÷Ï&¨7ÿÿ ÿéöÏ&—¨ÿÿ ÿèóÏ&ÿÿ ÿêíÏ&¸ÿÿ ÿéöÑ&Òÿÿ ÿé÷Î&½¨ÿÿ ÿéóÏ&5ÿÿ ÿéôÐ&õ&/>ÿÿ ÿé÷Ï&â'ÿÿ ÿëòÏ&¨Yÿÿ ÿéòÏ&0×ÿÿ ÿéòÎ& ¨ÿÿÿëïÐ&Ü0Jÿÿ ÿéôÏ&¨…ÿÿ ÿé÷Ï&®¨ÿÿ ÿéìÎ&¨dÿÿ ÿéöÏ&óâÿÿ ÿèóÏ&¨0¿ÿÿ ÿéòÎ&@ÿÿ ÿéòÏ&€ÿÿ ÿëöÐ&ƒÿÿ ÿêóÏ&¨ÿÿ ÿéóÐ&¨ÿÿ ÿîôÐ&úöÿÿ ÿéñÎ&¨-ÿÿ ÿèôÏ&âcÿÿ ÿîôÏ&ö0cÿÿ ÿêõÏ&¨*¯ÿÿ ÿê÷Ð&¨-²ÿÿ ÿéêÐ&ÿÿ ÿéõÎ&¨-€ÿÿ ÿèõÐ&¨•ÿÿ ÿïôÏ&&Aâÿÿ ÿëóÎ&ÿÿ ÿéðÎ&*°ÿÿ ÿéõÐ&¨Šÿÿ ÿéøÑ&*±ÿÿ ÿéóÎ&>ÿÿ ÿéóÏ&&íÿÿ ÿîôÐ&ö>ÿÿ ÿçðÎ&*²ÿÿÿïóÐ& ;&()•ÿÿ ÿèöÏ&¤ÿÿ ÿé÷Î&ÆÿÿÿéõÐ&Ü!ÿÿ ÿéòÏ&»%>ÿÿ ÿêóÏ&"—ÿÿ ÿçõÏ&¨ÿÿ ÿè÷Ï& ßâÿÿ ÿéòÐ&¤/ÿÿ ÿèõÑ&¨eÿÿ ÿéôÏ&âÿÿÿéëÐ&Ü&à> ÿÿ ÿìóÏ&"¤ÿÿ ÿééÎ&¨ÿÿ ÿéôÎ&¨×ÿÿ ÿéóÎ&¨ýÿÿ ÿéõÎ&…¨ÿÿ ÿëòÎ&¨ÿÿ ÿéôÏ&â“ÿÿ ÿè÷Ï&â'ÿÿ ÿé÷Ñ&/CÿÿÿéïÐ&ßÜÿÿ ÿèòÎ&¨&èÿÿ ÿéòÏ&Jÿÿ ÿé÷Ï&c¨ÿÿ ÿëóÐ&/Ñÿÿ ÿêòÐ&Úÿÿ ÿéôÏ&bâÿÿ ÿçøÏ&¤?ÿÿ ÿêóÏ&Eâÿÿ ÿëóÎ&WÿÿÿéóÐ&HÜÿÿ ÿéóÐ&0Fâÿÿ ÿêõÏ&¨.ÿÿ ÿê÷Ï&¤.4ÿÿ ÿéðÏ&»âÿÿ ÿèõÎ&#ÿÿ ÿéöÐ&"IâÿÿÿïóÉ& ;&ì> ÿÿ ÿéíÏ&-iâÿÿ ÿèíÏ&â+Cÿÿ ÿèîÐ&¨“ÿÿ ÿéøÏ& $¨ÿÿ ÿéõÎ&¨1ÿÿ ÿèõÏ&¨Vÿÿ ÿéõÑ&â-gÿÿ ÿéóÏ&¨'ÿÿ ÿìõÐ&â*ÿÿ ÿéôÐ&¨'Úÿÿ ÿéíÏ&¤/–ÿÿ ÿéóÐ&¨/ùÿÿ ÿéóÎ&)¨ÿÿ ÿéíÎ&åÿÿ ÿïòÏ&¤#lÿÿ ÿéõÐ&‹¨ÿÿ ÿèóÏ&"%&*»ÿÿ ÿèóÐ&âÛÿÿ ÿéöÏ&¨/÷ÿÿ ÿëôÎ&+Tÿÿ ÿïóÐ&ì& ;> ÿÿ ÿïôÏ&)|âÿÿ ÿéòÐ&0.¨ÿÿ ÿéóÑ&â"ÿÿ ÿéöÐ&¨ Fÿÿ ÿéõÑ&Râÿÿ ÿêóÑ&¨+Aÿÿ ÿèóÏ&¨ïÿÿ ÿëôÑ&̨ÿÿ ÿéóÏ&*ÿÿ ÿçöÒ&f¨ÿÿ ÿéöÏ& ؤÿÿ ÿèöÎ&¨.ÿÿ ÿéòÑ&.‘ÿÿ ÿèðÏ&¨uÿÿ ÿéòÐ&V¨ÿÿ ÿéòÐ&'¨ÿÿ ÿéíÎ&³ÿÿ ÿçõÏ&¨­ÿÿ ÿéìÎ&¨ÿÿ ÿéôÏ& ¤ÿÿ ÿéëÏ&â¾ÿÿ ÿéìÎ&1 ¨ÿÿ ÿéóÏ&ÿÿ ÿé÷Î&"n¨ÿÿ ÿïòÏ&â <ÿÿ ÿëñÎ&¨+Mÿÿ ÿéöÏ&¨–ÿÿ ÿéòÏ&.Œâÿÿ ÿé÷Ï&.ލÿÿ ÿéóÐ&¨.ÿÿ ÿéòÐ&/x¨ÿÿ ÿéõÐ&¤.ÿÿ ÿéöÐ&¨ BÿÿÿïóÐ& ; 5ÿÿ ÿëôÏ&¨`ÿÿ ÿéíÏ&ûâÿÿ ÿéòÏ&!ÿÿ ÿéóÏ&!Ѩÿÿ ÿéóÏ&âóÿÿ ÿéöÏ&¤Õÿÿ ÿéñÎ&!Œ¨ÿÿÿïóÏ&]& ;> ÿÿ ÿèôÑ&¨$ƒÿÿ ÿèóÏ&â!‹ÿÿ ÿéóÐ&¨!Šÿÿ ÿéöÏ&â#Íÿÿ ÿèôÐ&¨!ˆÿÿ ÿéôÎ&&#ÿÿ ÿêòÎ&¨!‰ÿÿ ÿéñÎ&¨!(ÿÿ ÿëíÎ&¨!/ÿÿ ÿéñÑ&¨ÿÿÿéëÐ&à&Ü!‚ÿÿ ÿìôÐ&•&<=ÿÿ ÿçõÎ&¨!0ÿÿ ÿéôÏ&â&!1(ÿÿ ÿéõÏ&â ÿÿ ÿéóÏ& f¨ÿÿ ÿëõÑ&¨1ÿÿ ÿèóÎ&¨#Aÿÿ ÿéóÏ&¨> ÿÿ ÿèòÎ&¨!úÿÿ ÿéôÏ&»!"ÿÿ ÿêñÏ&â/ÿÿ ÿîôÏ&#c&#eöÿÿÿéöÐ&Ü.‹ÿÿÿèóÐ&@&ÜYÿÿ ÿéöÏ&¨ÿÿ ÿèôÏ&â"©ÿÿ ÿèõÎ&¯¨ÿÿ ÿéóÏ&0s»ÿÿ ÿì÷Ï&¤¥ÿÿ ÿîõÐ&¤/€ÿÿ ÿëòÏ&¨" ÿÿ ÿéóÏ&6âÿÿ ÿéñÏ&âÿÿ ÿéöÐ&¤!ÿÿ ÿëôÏ&¨!_ÿÿÿéõÐ&ÜAÿÿ ÿèóÎ&!—¨ÿÿÿçõÐ&ú&Üûÿÿ ÿëòÐ&¨2ÿÿ ÿêîÎ&¨$Xÿÿ ÿéñÑ&¨$”ÿÿ ÿèõÐ&¤ÿÿ ÿêóÐ&¨>ÿÿ ÿêöÏ&$fâÿÿ ÿìôÒ&ð&¶>ÿÿ ÿëóÐ&.Ѝÿÿ ÿéôÏ&¤üÿÿ ÿé÷Ð&â$ÿÿ ÿèòÐ&¤$ÿÿ ÿéîÐ&$}¨ÿÿ ÿèõÑ&â$*ÿÿ ÿéðÎ&¨$ÿÿÿêîÐ&$ïÜÿÿÿêõÐ&#r&GÜÿÿ ÿêöÏ&¨vÿÿ ÿéõÏ&¨#Eÿÿ ÿéóÏ&.ˆ¨ÿÿ ÿé÷Ï&-nâÿÿÿèóÐ&ÜDÿÿ ÿçõÏ&¨#ÿÿÿïóÏ& & ;ÿÿ ÿêöÏ&â$Oÿÿ ÿì÷Ò&=>ÿÿ ÿéïÐ&¨%ÿÿ ÿëòÏ&.‰ÿÿ ÿéóÐ&â/5ÿÿÿèôÐ&Ü&(>ÿÿ ÿèòÏ&â0¤ÿÿ ÿéòÐ&¨$Îÿÿ ÿéóÏ&â.‡ÿÿ ÿçóÐ&¨&rÿÿÿèñÑ&Ü0˜ÿÿ ÿëòÏ&¨$Jÿÿ ÿéòÏ&$¤ÿÿ ÿéõÏ&â$@ÿÿ ÿêõÐ&¨/ÿÿ ÿëõÑ&¤$Œÿÿ ÿéõÑ&¤—ÿÿ ÿéñÎ&¨"Ûÿÿ ÿêõÏ&¤&GÞÿÿ ÿèñÏ&â*ÿÿ ÿëóÎ&çÿÿÿéõÐ&Ü0Zÿÿ ÿéóÏ&â*ÿÿ ÿèôÎ&¨.ƒÿÿÿëõÐ&)ý0LÿÿÿëòÐ&ú&Ü>ÿÿ ÿìôÐ&¶&#\+ÿÿ ÿèõÏ&â£ÿÿ ÿéôÎ&èÿÿ ÿéóÏ&â.ÿÿ ÿêòÏ&¨/Pÿÿ ÿé÷Ï&âÿÿ ÿéîÑ&â¹ÿÿ ÿçõÑ&âxÿÿ ÿêïÏ&¤.„ÿÿ ÿéôÑ&â.‚ÿÿ ÿçôÒ&ê>ÿÿÿíõÐ&Ü.…ÿÿÿéóÐ&ÛÜÿÿ ÿéòÏ&â.†ÿÿ ÿéöÑ&¤0Gÿÿ ÿëóÏ&¨§ÿÿ ÿéóÎ&¨+Dÿÿ ÿçôÒ&£¤ÿÿ ÿéôÒ&âÿÿ ÿèöÑ&â,:ÿÿ ÿéóÎ&¨$-ÿÿÿèöÐ&ÜÒÿÿ ÿçõÏ&â0›ÿÿÿéïÐ&Ü-…ÿÿÿêöÐ&Ü*ÿÿ ÿìôÏ&¶&>ÿÿ ÿìôÐ&¶0ùÿÿ ÿçðÑ&¤pÿÿ ÿçöÑ&¤+àÿÿ ÿéóÏ&+á¨ÿÿ ÿéöÏ&¤0Ûÿÿ ÿêõÐ&* ¨ÿÿ ÿëõÐ&¨*¿ÿÿÿèõÐ&Ü&,<>ÿÿ ÿèõÏ&âþÿÿ ÿéôÏ&â*Ñÿÿ ÿéöÐ&¤>ÿÿÿéòÐ&Ü%áÿÿÿéóÐ&÷&Ü>ÿÿ ÿéñÐ&â)ºÿÿ ÿèõÏ&¨+ßÿÿ ÿèóÏ&#6ÿÿ ÿçòÏ&¨*¾ÿÿ ÿìôÐ&=&!ª!¤ÿÿ ÿêòÏ&âüÿÿÿèõÐ&Ü(jÿÿ ÿèõÏ&»&"%"$ÿÿÿçõÐ&ú&Ü"&ÿÿ ÿéóÐ&â(Ôÿÿ ÿêíÎ&ž¨ÿÿ ÿéöÏ&*Àâÿÿ ÿéóÒ&¨ÿÿ ÿéõÏ&¨*ÿÿ ÿéóÐ&»&lmÿÿ ÿèòÏ&â*ÃÿÿÿèõÐ&Ü&>ÿÿ ÿéóÎ&*Á¨ÿÿ ÿèôÏ&â,1ÿÿ ÿèôÐ&»ýÿÿ ÿíóÏ&´âÿÿ ÿîöÏ&âÿÿ ÿìõÏ&¤&#q!ÿÿ ÿéôÐ&âcÿÿ ÿêóÐ&¼»ÿÿ ÿéóÐ&ýÿÿ ÿèöÐ&¨,2ÿÿÿêöÐ&Ü&â!£ÿÿ ÿèðÏ&,3âÿÿ ÿéðÏ&â,4ÿÿ ÿêöÏ&¤,5ÿÿÿèôÑ&Ü.¡ÿÿ ÿéøÏ&¡¤ÿÿ ÿé÷Ñ&¨)¿ÿÿ ÿêðÏ&¤#7ÿÿ ÿéñÏ&¤0¸ÿÿ ÿéóÏ&»>ÿÿ ÿéõÎ&0 ¨ÿÿ ÿéöÏ&¤/Ýÿÿ ÿéôÎ&بÿÿ ÿêõÏ&¤&G>ÿÿ ÿéñÏ&¨*wÿÿ ÿéöÐ&â/ßÿÿ ÿèöÐ&¨)òÿÿÿêôÐ&Ü.÷ÿÿ ÿïóÐ& ;.ÿÿ ÿìöÑ&â)óÿÿÿèôÐ&Ü%òÿÿ ÿêòÏ&â>ÿÿÿéóÐ&Ü0Äÿÿ ÿêõÐ&¤,‰ÿÿÿéóÐ&Ü&/á>ÿÿ ÿéõÑ&â5ÿÿÿéöÐ&Ü'èÿÿ ÿëóÏ&/à¨ÿÿ ÿéõÏ&!Öÿÿ ÿìôÏ&¶>ÿÿ ÿçóÑ&¡âÿÿ ÿéñÐ&-¢¤ÿÿÿéñÐ&Ü0"ÿÿ ÿíóÐ&â*yÿÿ ÿìôÑ&¶>ÿÿÿêöÐ&Ü&â>ÿÿ ÿèòÏ&¤%\ÿÿÿéóÐ&Ü%^ÿÿÿèóÐ&Ü&%W%XÿÿÿèòÒ&Ü%~ÿÿÿéóÐ&Ü> ÿÿ ÿç÷Ò&¤±ÿÿÿèóÐ&Ü)õÿÿ ÿêöÐ&¤)öÿÿÿêòÐ&Ü-/ÿÿ ÿéöÏ&â%fÿÿÿéöÐ&Ü}ÿÿ ÿïóÏ&¤,6ÿÿ ÿéóÑ&¤Îÿÿ ÿéôÑ&)ù>!ÿÿÿéíÐ&Ü)úÿÿ ÿéõÏ&¤>"ÿÿÿê÷Ð&Ü*‘ÿÿ ÿéöÏ&â*‡ÿÿÿèòÑ&Ü7ÿÿ ÿéòÑ&¤-ÿÿÿéóÐ&Ü>#ÿÿ ÿéðÏ&¨>$ÿÿ ÿéóÏ&¨(ÎÿÿÿéöÐ&Ü>%ÿÿÿéóÐ&Ü)ûÿÿÿíóÐ&Ü>&ÿÿÿéóÐ&Ü.@ÿÿ ÿçõÐ&â(pÿÿ ÿìôÒ&¶,xÿÿ ÿêôÏ&¹&)ü>'ÿÿÿèöÏ&0H&0)ýÿÿ ÿéóÏ&»ÅÿÿÿæðÑ&)ý)oÿÿÿéóÐ&Ü/éÿÿ ÿíòÏ&&3ÿÿ ÿïôÏ&w›ÿÿ ÿéóÏ&wjÿÿ ÿèóÏ&qwÿÿ ÿéæÏ&¢&ÿÿ ÿêëÏ&wúÿÿ ÿêïÏ&w—ÿÿ ÿïòÏ& &ÿÿ ÿéóÏ&Q ÿÿ ÿèíÐ&Å&ÿÿ ÿêõÏ&wõÿÿ ÿéöÏ&„&ÿÿ ÿéìÏ&Y&ÿÿ ÿèðÒ&Q¡ÿÿ ÿèôÏ&ü&ÿÿ ÿèöÏ&Ÿ&ÿÿ ÿéòÏ&™&ÿÿ ÿéôÏ&Q›ÿÿ ÿéôÏ&—&ÿÿ ÿïôÏ&ž&ÿÿ ÿìõÏ&Qÿÿ ÿèôÏ&O(/ÿÿ ÿéîÏ&Qœÿÿ ÿéîÏ&Q°ÿÿ ÿéïÏ&Q&ÿÿ ÿéëÏ&Ošÿÿ ÿêòÏ&O¾ÿÿ ÿèöÑ&­Qÿÿ ÿéêÏ&¡&ÿÿ ÿéõÑ&¶&ÿÿ ÿêïÏ&w*Øÿÿ ÿêìÏ&O)þÿÿ ÿéíÐ&QÕÿÿ ÿéöÏ&a&ÿÿ ÿéóÐ&…&ÿÿ ÿé÷Ï&%ú&ÿÿ ÿéôÏ&”&ÿÿ ÿîóÏ&Q1ÿÿ ÿëõÏ&&ÿÿ ÿïòÏ&Q&ÿÿ ÿèõÏ&P»ÿÿ ÿïôÏ&O!mÿÿ ÿéöÏ&Qÿÿ ÿéóÏ&Qÿÿ ÿèôÏ&Q)wÿÿ ÿéóÏ&Q.ÿÿ ÿïòÏ&Q,7ÿÿ ÿèòÏ&O&ÿÿ ÿèôÐ&OÐÿÿ ÿçóÐ&&&ÿÿ ÿéóÏ&Qÿÿ ÿééÏ&Q!pÿÿ ÿïóÏ&î&ÿÿ ÿèìÏ&O&ÿÿ ÿëèÏ&Qïÿÿ ÿéëÏ&Q)ÿÿÿ ÿéòÏ&Q(-ÿÿ ÿéêÐ&M&ÿÿ ÿçõÏ&¦Qÿÿ ÿêòÏ&Q ÿÿ ÿêñÏ&Q*ˆÿÿ ÿéïÏ&O/¹ÿÿ ÿèïÐ&Q*‰ÿÿ ÿíðÏ&Q.}ÿÿ ÿïðÏ&j&ÿÿ ÿë÷Ï&Pÿÿ ÿéòÏ&O'Êÿÿ ÿèóÏ&Oÿÿ ÿéðÏ&Q*Öÿÿ ÿêóÏ&Qÿÿ ÿëòÏ&QYÿÿ ÿéóÏ&ÁQÿÿ ÿéòÏ&Q€ÿÿ ÿçøÏ&P?ÿÿ ÿæöÏ&Qÿÿ ÿèñÏ&à&È&eÿÿ ÿæôÏ&Qÿÿ ÿéíÏ&Qêÿÿ ÿéìÏ&aOÿÿ ÿèìÏ&Á&ÿÿ ÿéîÏ&Q‹ÿÿ ÿéìÏ&Qdÿÿ ÿíóÐ&Q,8ÿÿ ÿèïÏ&à& >(ÿÿ ÿèôÏ&O›ÿÿ ÿéóÏ&Qæÿÿ ÿéõÏ&P0xÿÿ ÿéòÐ&QAÿÿ ÿéôÐ&QTÿÿ ÿïöÑ&Oaÿÿ ÿéóÏ&Q¥ÿÿ ÿéôÑ&Qàÿÿ ÿé÷Ï&PEÿÿ ÿéõÐ&Q‹ÿÿ ÿêíÏ&¸&ÿÿ ÿéóÑ&Q"ÿÿ ÿíöÐ&Qvÿÿ ÿèôÐ&POÿÿ ÿé÷Ï&O®ÿÿ ÿêóÐ&OÓÿÿ ÿéóÏ&O'ÿÿ ÿéíÏ&à&%7%8ÿÿ ÿèóÏ&Q0¾ÿÿ ÿêõÏ&Q~ÿÿ ÿëïÏ&à0Jÿÿ ÿéóÏ&PŽÿÿ ÿéïÐ&Q,9ÿÿ ÿêóÒ&P0ìÿÿ ÿéöÏ&Oÿÿ ÿéóÐ&PHÿÿ ÿëóÐ&à&Iúÿÿ ÿïõÏ&O*ÿÿ ÿéêÐ&cOÿÿ ÿçôÏ&RQÿÿ ÿïóÏ&Oëÿÿ ÿïòÏ&Q0Aÿÿ ÿéïÐ&ßàÿÿ ÿéîÏ&-BOÿÿ ÿêóÏ&Q&?ÿÿ ÿé÷Ï&Ocÿÿ ÿæôÏ&O-ÿÿ ÿïôÏ&O&Aÿÿ ÿéõÏ&Q…ÿÿ ÿéôÏ&Oÿÿ ÿéóÏ&Q*ÿÿ ÿèöÐ&Q&ÿÿ ÿèíÏ&P&Ó>)ÿÿ ÿèíÏ&P&Ó>*ÿÿ ÿéôÏ&Obÿÿ ÿèóÐ&ŒPÿÿ ÿèõÐ&QLÿÿ ÿéöÏ&P”ÿÿ ÿèòÏ&Q&èÿÿ ÿéóÏ&à&~*ÿÿ ÿéóÏ&O'ÿÿ ÿéóÏ&Q6ÿÿ ÿéñÏ&O'Üÿÿ ÿéóÏ&&ÿÿ ÿéõÏ&O'Ýÿÿ ÿéóÏ&P Gÿÿ ÿêòÏ&Oÿÿ ÿéõÏ&O1ÿÿ ÿëôÏ&O(mÿÿ ÿéíÏ&Oÿÿ ÿéìÏ&Q1 ÿÿ ÿéëÏ&Q>+ÿÿ ÿïòÏ&£àÿÿ ÿéõÐ&O‹ÿÿ ÿéïÐ&Qxÿÿ ÿçöÐ&à&#‚>,ÿÿ ÿìõÐ&O*ÿÿ ÿìõÏ&P&!>-ÿÿ ÿéõÐ&Q#¡ÿÿ ÿèóÏ&Qïÿÿ ÿëôÑ&QÌÿÿ ÿéóÏ&à0sÿÿ ÿéðÏ&P»ÿÿ ÿïòÏ&O <ÿÿ ÿéðÐ&O# ÿÿ ÿéôÏ&O#šÿÿ ÿéòÐ&Q<ÿÿ ÿéòÐ&à&0ßÿÿ ÿì÷Ï&O¥ÿÿ ÿêõÏ&Oÿÿ ÿèòÏ&Q!ûÿÿ ÿéõÏ&à"Ëÿÿ ÿîôÏ&!_Qÿÿ ÿèöÏ&à&#"#!ÿÿ ÿèòÏ&Q0¤ÿÿ ÿèõÏ&P Óÿÿ ÿéóÐ&O]ÿÿ ÿèôÑ&O$ƒÿÿ ÿèôÏ&O!˜ÿÿ ÿèôÐ&P#¸ÿÿ ÿéòÐ&#Oÿÿ ÿçìÏ&O!ÿÿ ÿéöÏ&PNÿÿ ÿçóÐ&Q&rÿÿ ÿéðÏ&O$ ÿÿ ÿèõÏ&/8Pÿÿ ÿéñÏ&P$Ïÿÿ ÿëõÑ&O/ÿÿ ÿéóÏ&O>.ÿÿ ÿéïÐ&O%ÿÿ ÿéòÐ&P%ÿÿ ÿéðÑ&Q$•ÿÿ ÿîòÏ&P$Iÿÿ ÿéõÑ&P—ÿÿ ÿêóÐ&O/Nÿÿ ÿéóÏ&P†ÿÿ ÿïóÏ&à¦ÿÿ ÿéóÏ&O*ÿÿ ÿéôÏ&P)Ëÿÿ ÿçôÒ&à£ÿÿ ÿèöÑ&P,:ÿÿ ÿéîÑ&P¹ÿÿ ÿéõÏ&à0Zÿÿ ÿëõÐ&0K0Lÿÿ ÿèôÏ&O*ÿÿ ÿèóÏ&Püÿÿ ÿéôÏ&P* ÿÿ ÿêóÐ&O* ÿÿ ÿéôÐ&P,;ÿÿ ÿèõÐ&à&>/ÿÿ ÿçíÑ&à”ÿÿ ÿéôÐ&Ocÿÿ ÿèðÑ&P&3>0ÿÿ ÿèõÏ&à&,<>1ÿÿ ÿîöÏ&Pÿÿ ÿéõÏ&P!×ÿÿ ÿéðÏ&P0·ÿÿ ÿéñÏ&P'ÿÿ ÿèôÑ&à.¡ÿÿ ÿìöÑ&O)óÿÿ ÿéôÏ&à0Mÿÿ ÿêòÐ&à-/ÿÿ ÿéòÑ&O-ÿÿ ÿêòÎ&(*ÿÿ ÿèöÏ&+ÿÿ ÿéïÇ&* * ÿÿ ÿéõÏ&*ÿÿÿéìÊ&f>4ÿÿÿéìÊ&f>5ÿÿÿéìÊ&f>6ÿÿÿéìÊ&feÿÿÿéíË&ü>7ÿÿÿéìÊ&f~ÿÿÿéìÊ&f>8ÿÿÿéíË&ü>9ÿÿÿèíÉ&>:ÿÿÿéíË&ü>;ÿÿÿèíÉ&><ÿÿÿéìÊ&f>=ÿÿÿèíÉ&>>ÿÿÿéìÊ&f>?ÿÿÿèíÉ&>@ÿÿÿéìÊ&f>AÿÿÿèíÉ&>BÿÿÿèíÉ&>CÿÿÿèíÉ&>DÿÿÿèíÉ&>EÿÿÿèíÉ&>FÿÿÿèíÉ&>GÿÿÿèíÉ&>HÿÿÿèíÉ&>IÿÿÿéíË&ü>JÿÿÿèíÉ&œÿÿÿèíÉ&ßÿÿÿèíÉ&>KÿÿÿèíÉ&êÿÿÿèíÉ&>LÿÿÿèíÉ&>ÿÿÿèíÉ&õÿÿÿèíÉ&>MÿÿÿèíÉ&ãÿÿÿèíÉ&>NÿÿÿèíÉ&>OÿÿÿèíÉ&%CÿÿÿèíÉ&ÓÿÿÿèíÉ&‹ÿÿÿèíÉ&ŠÿÿÿéëÈ&ÛdÿÿÿèíÉ&´ÿÿ ÿèíÎ&û&§>PÿÿÿèíÉ&>QÿÿÿéëÈ&d>RÿÿÿèíÉ&>SÿÿÿèíÉ&>TÿÿÿèíÉ&>UÿÿÿèíÉ&>VÿÿÿéëÈ&d>WÿÿÿéëÈ&d!{ÿÿÿèíÉ&"=ÿÿÿéëÈ&d>XÿÿÿèíÉ&>YÿÿÿèíÉ&>ZÿÿÿéëÈ&d"ýÿÿÿèíÉ& ŸÿÿÿèíÉ&>[ÿÿÿçíÉ&"€ÿÿÿèíÉ&>\ÿÿÿèíÉ&>]ÿÿÿéëÈ&d>^ÿÿÿéëÈ&d>_ÿÿÿèíÉ&$YÿÿÿèíÉ&>`ÿÿÿèíÉ&>aÿÿÿèíÉ&>bÿÿÿèíÉ&>cÿÿÿèíÉ&&ÒÿÿÿéëÈ&d>dÿÿÿèíÉ&>eÿÿÿèíÉ&$ÿÿÿéëÈ&d>fÿÿÿéëÈ&d>gÿÿÿéëÈ&deÿÿÿèíÉ&>hÿÿÿèíÉ&(|ÿÿÿéëÈ&d>iÿÿÿéëÈ&d>jÿÿÿéëÈ&d>kÿÿÿèæÒ&’>lÿÿÿèæÒ&’¤ÿÿÿèæÒ&’>mÿÿÿèæÒ&’ÿÿÿèæÒ&’>nÿÿÿèæÒ&F’ÿÿÿèæÒ&’>oÿÿÿèæÒ&’>pÿÿÿèæÒ&’>qÿÿÿèæÒ&’>rÿÿÿèæÒ&’>sÿÿÿèæÒ&’>tÿÿÿèæÒ&’>uÿÿÿèæÒ&’>vÿÿÿèæÒ&’>wÿÿÿèæÒ&’>xÿÿÿèæÒ&’öÿÿÿèæÒ&’>yÿÿÿèæÒ&’>zÿÿÿèæÒ&’>{ÿÿÿèæÒ&’>|ÿÿÿèæÒ&’>}ÿÿÿèæÒ&’>~ÿÿÿèæÒ&£’ÿÿÿèæÒ&’äÿÿÿèæÒ&’ïÿÿÿèæÒ&‰’ÿÿÿèæÒ&’>ÿÿÿèæÒ&‘’ÿÿÿèæÒ&’ÿÿÿèæÒ&µ’ÿÿÿèæÒ&’ dÿÿÿèæÒ&’>€ÿÿÿèæÒ&’>ÿÿÿèæÒ&’>‚ÿÿÿèæÒ&’>ƒÿÿÿèæÒ&’“ÿÿÿèæÒ&’>„ÿÿÿèæÒ&">’ÿÿÿèæÒ&’>…ÿÿÿèæÒ&’"ÿÿÿèæÒ&’>†ÿÿÿèæÒ&’>‡ÿÿÿèæÒ&’>ˆÿÿÿèæÒ&’>‰ÿÿÿèíÏ&ÝìÿÿÿçõÏ&Ý«ÿÿÿéöÆ&m/mÿÿÿéóÊ&m ÿÿÿéõÆ&m³ÿÿÿéõÐ&mmÿÿÿéóÎ&m²ÿÿÿèòÆ&m0$ÿÿÿèõÏ&Ý‘ÿÿÿéòÐ&m±ÿÿÿèõÏ&ÝËÿÿÿèöÇ&ÝÞÿÿÿèóÊ&ßÝÿÿÿéõÍ&m,ÿÿÿèóÏ&m=ÿÿÿèòÏ&Ý0«ÿÿÿèíÇ&ôÝÿÿÿèëÉ&Ý%’ÿÿÿèðÏ&·mÿÿÿèöÏ&Ý¡ÿÿÿèóÏ&Ý"WÿÿÿèóÏ&ÝîÿÿÿèõÇ&ÝÿÿÿèóÐ&ÝUÿÿÿèóÏ&ÝÿÿÿéóÆ&m¶ÿÿÿéóÏ&mÂÿÿÿèóÏ&mÿÿÿéôÆ&m%ËÿÿÿéóÐ&m&@}ÿÿÿèôÆ&m)€ÿÿÿèóÐ&Ý>ŠÿÿÿéóÏ&m'¦ÿÿÿéóÏ&m)ÿÿÿéõÆ&m%"ÿÿÿèíÏ&mÿÿÿéòÆ&>‹ÿÿÿéóÆ&mÿÿÿéóÐ&m}ÿÿÿéöÏ&–mÿÿÿèòÏ&Ý{ÿÿÿèõÉ&~ÝÿÿÿéòÆ&mÅÿÿÿéõÐ&móÿÿÿéôÐ&m7ÿÿÿæöÏ&m³ÿÿÿéòÆ&m©ÿÿÿéóÏ&mÿÿÿèôÏ&m ÙÿÿÿéõÏ&àmÿÿÿéóÍ&&ªÿÿÿéóÎ&mÀÿÿÿéóÏ&ÍmÿÿÿéõÏ&m’ÿÿÿéóÏ&m(:ÿÿÿèõÐ&ZãÿÿÿèîÑ&Ý ¶ÿÿÿéóÏ&m+ÿÿÿéõÆ&m.ÿÿÿéôÈ&m[ÿÿÿéõÏ&)zmÿÿÿéòÐ&m%ÐÿÿÿéóÐ& OmÿÿÿèõÇ&Z.3ÿÿÿéóÎ&m&ÇÿÿÿéøÏ&m ÿÿÿéóÐ&m>ŒÿÿÿéîÏ&¿ÿÿÿéòÏ&£ÿÿÿéõÏ&mÿÿÿéôÏ&m'¯ÿÿÿèôÏ&m'ØÿÿÿèìÏ&m'gÿÿÿéëÎ&m'hÿÿÿéñÍ&m)cÿÿÿéõÐ&m )ÿÿÿéóÏ&+mÿÿÿçõÉ&YÿÿÿèõÈ&m"AÿÿÿéôÏ&!^ÿÿÿéöÏ&mÿÿÿéóÊ&m"ÿÿÿéîÉ& rÿÿÿéôÐ&m>ÿÿÿè÷Ñ&0NÿÿÿèóÆ&m#;ÿÿÿéóÐ&m>ŽÿÿÿéøÐ&m©ÿÿÿéñÏ&m)‚ÿÿÿéõÑ&m"±ÿÿÿéñÏ&m#ÓÿÿÿèòÎ&Z&ú>ÿÿÿéøÏ&/²mÿÿÿéòÏ&mLÿÿÿèõÐ&'pÿÿÿéóÐ&m>ÿÿÿéðÆ&m$ ÿÿÿèõÈ&m$ÿÿÿéñÑ&m#ôÿÿÿéôÏ&*)ÿÿÿéóÐ&m>‘ÿÿÿéöÏ& ÿÿÿéôÑ&mnÿÿÿéîÏ&mÿÿÿèõÐ&Z&ÿÿÿéöÏ&.IÿÿÿéõÒ&¢ÿÿÿèôÎ&%(ÿÿÿéôÎ&%'ÿÿÿçôÏ&'|mÿÿÿéõÐ&&Þ>’ÿÿÿéõÐ&&Þ>“ÿÿÿèöÑ&'Âÿÿÿé÷Ñ&&Ãÿÿÿè÷É&ZüÿÿÿçøÒ&ÕÿÿÿèóÏ&Z%õÿÿÿèòÊ&)ƒÿÿÿéöÑ&0OÿÿÿéðÏ&m>”ÿÿ ÿêôÒ&³²ÿÿÿèöÐ&ZHÿÿ ÿé÷Ï&1Nÿÿ ÿé÷Ï&1>•ÿÿÿèðÒ& ÿÿ ÿéñÑ&„)„ÿÿ ÿéõÐ&‹ÿÿ ÿéóÐ& n)…ÿÿ ÿèðÇ&s&R>˜ÿÿ ÿèóÒ&)† nÿÿ ÿçóÐ&)Œ nÿÿ ÿéóÐ& nPÿÿ ÿéõÐ&‡‹ÿÿ ÿèôÐ&UØÿÿ ÿèïÏ&)>™ÿÿ ÿéñÏ&ˆ>šÿÿ ÿéõÐ&‹ŠÿÿÿéóÐ&)tÿÿÿééÒ&>›ÿÿ ÿéóÐ&7)ÿÿÿèòÐ&œ>œÿÿ ÿéõÐ&)Ž‹ÿÿ ÿéõÐ&‹-5ÿÿ ÿéóÐ&(&')ÿÿÿéóÐ&†ÿÿ ÿéóÐ&,= nÿÿ ÿéóÏ&˜)ÿÿ ÿéóÏ&9˜ÿÿÿéóÐ& m nÿÿ ÿéòÏ&¦&¨§ÿÿ ÿéõÏ&q!×ÿÿ ÿèðÐ&r& sÿÿÿéñÏ&k>ÿÿ ÿéóÑ&˜%¯ÿÿ ÿéóÐ&$»˜ÿÿ ÿéóÏ&˜>žÿÿ ÿèóÑ&),Qÿÿ ÿéóÏ&)‘&))“ÿÿ ÿéóÏ&˜Šÿÿ ÿéóÑ&,>˜ÿÿ ÿéóÏ&€˜ÿÿ ÿçõÒ&,?> ÿÿÿéðË&0P ¾ÿÿÿéïË& ¼>¡ÿÿÿéïË& ¼ Áÿÿ ÿèôË& ½ÿÿ ÿçõË& ¾>¢ÿÿÿéòË&$¢ ¾ÿÿ ÿèïË&(&' ¾ÿÿ ÿéóË& ¾>£ÿÿÿæñÌ& À>¤ÿÿÿèïË&+# ¼ÿÿ ÿéóË& ¾>¥ÿÿ ÿêóË& ¾>¦ÿÿ ÿéïÌ& À>§ÿÿ ÿéóË& ¾)ÿÿÿçóÌ& À>¨ÿÿÿéôË& ¾*ÿÿÿèïË& ½QÿÿÿèïÌ& À+ÿÿÿçôË&-&, ¾ÿÿÿéïÌ&R Àÿÿ ÿéóÌ& À>©ÿÿ ÿéõÌ& À>ªÿÿ ÿéóÌ& À>«ÿÿÿçïË& ¾&->¬ÿÿÿéòÌ& À‹ÿÿÿïïË& ¾>­ÿÿÿæðÌ& ¿.ÿÿ ÿèïÌ& À>®ÿÿ ÿéóÎ&>¯ÿÿ ÿèòÎ& Nÿÿ ÿéóÌ& À>°ÿÿÿçóÌ& À&->±ÿÿÿè÷Ð&,@;ÿÿÿèòÌ& À eÿÿ ÿêöË& ¾>²ÿÿ ÿéðÎ&&>³ÿÿ ÿêóÎ&!âÿÿ ÿéïË& ¾>´ÿÿÿêïË& ¾>µÿÿÿéòÌ& À ”ÿÿ ÿèôÎ&&ÿÿÿéöÌ& À>¶ÿÿ ÿèóÎ&ý&üÿÿÿéïÌ& ¿>·ÿÿÿéðÎ&>¸ÿÿÿéóÎ&>¹ÿÿ ÿêòÎ&>ºÿÿÿêõÎ&>»ÿÿ ÿéòÎ&>¼ÿÿ ÿèðÎ&>½ÿÿ ÿéòÎ&>¾ÿÿÿéðÎ&>¿ÿÿ ÿçóÌ& ¿>ÀÿÿÿéïÌ& ¿>ÁÿÿÿéóÌ&°& ¿>Âÿÿ ÿîòÎ&>Ãÿÿ ÿéóÎ&>Äÿÿ ÿéòÎ&>ÅÿÿÿéöÌ& ¿>Æÿÿ ÿèøÎ&>Çÿÿ ÿéðÎ&&ÿÿ ÿéðÎ&({ÿÿÿéóÎ&>Èÿÿ ÿîòÌ& ¿>Éÿÿ ÿçõÌ& ¿%zÿÿÿèòÎ&>Êÿÿ ÿéóÎ&>Ëÿÿ ÿêðÌ& ¿>Ìÿÿ ÿéðÎ&>ÍÿÿÿéïÌ& ¿>ÎÿÿÿèöÐ&&)”>ÏÿÿÿëöÌ& ¿>Ðÿÿ ÿíòÎ&>ÑÿÿÿèòÐ&0Q)”ÿÿ ÿéðÎ&&>Òÿÿ ÿéïÌ& ¿>Óÿÿ ÿéïÌ& ¿>Ôÿÿ ÿèôÐ&,„ÿÿ ÿéóÏ&'+íÿÿ ÿéóÏ&Š'°ÿÿ ÿéôÐ&w„ÿÿ ÿéóÑ&„%ÿÿ ÿéðÐ&„Iÿÿ ÿéôÑ&…„ÿÿ ÿéôÑ&„¦ÿÿ ÿéòÐ&0R>Øÿÿ ÿéóÐ&Ç>Ùÿÿ ÿêóÑ&õ"Mÿÿ ÿèîÇ&E&sDÿÿ ÿêðÆ&H"Mÿÿ ÿèóÊ&A>Úÿÿ ÿèóÏ&qÿÿ ÿèöÏ&Ÿÿÿ ÿéóÏ&!,ÿÿ ÿéîÏ&ÿÿ ÿéìÏ&Yÿÿ ÿéõÏ&!*ÿÿ ÿéöÏ&ÿÿ ÿèöÑ&!Z­ÿÿ ÿéóÏ&}ÿÿ ÿéõÏ&&!E!Dÿÿ ÿéõÏ&ÿÿ ÿéèÐ&/& 6ÿÿ ÿèõÏ&!Fÿÿ ÿéîÏ& °ÿÿ ÿéõÏ&!Gÿÿ ÿéîÏ&!Hÿÿ ÿéóÏ&íÿÿ ÿèðÏ&Çÿÿ ÿéóÏ& Qÿÿ ÿéïÏ& & ó!Iÿÿ ÿéîÏ&ÿÿ ÿéôÏ& ®ÿÿ ÿéöÐ&!Jÿÿ ÿéóÏ& &!L!Kÿÿ ÿéõÏ&3ÿÿ ÿéõÏ& !Mÿÿ ÿéòÏ&!Nÿÿ ÿé÷Ñ&çÿÿ ÿéòÏ&0×ÿÿ ÿéôÏ& ôÿÿ ÿèóÏ& 0¿ÿÿ ÿéõÏ&Lÿÿ ÿèôÊ&0S!Oÿÿ ÿéóÏ&²ÿÿ ÿèöÏ& &!Pÿÿ ÿèõÏ&!Z)•ÿÿ ÿéöÏ&)–ÿÿ ÿéôÐ& í>Ûÿÿ ÿèìÑ&!Xÿÿ ÿéëÏ&!Wÿÿ ÿéóÐ&Yÿÿ ÿéöÏ& /÷ÿÿ ÿèîÐ& “ÿÿ ÿéóÏ&) ÿÿ ÿéðÏ&  ÿÿ ÿéõÐ& &!R!Qÿÿ ÿèõÏ&¯ ÿÿ ÿéöÏ&&ÿÿ ÿèóÐ& 2ÿÿ ÿèôÏ& !îÿÿ ÿéõÏ& "Íÿÿ ÿéñÏ& ÿÿ ÿèóÐ&0&1ÿÿ ÿéñÏ&!Z/ÿÿ ÿéóÏ&0s0zÿÿ ÿèôÏ& &Q"èÿÿ ÿéóÏ& óÿÿ ÿèôÏ& >Üÿÿ ÿèôÐ&!Z!Yÿÿ ÿéöÏ&!Z#Fÿÿ ÿéòÐ& $cÿÿ ÿèóÑ& >Ýÿÿ ÿèóÉ&  ÿÿ ÿéóÐ&0& >Þÿÿ ÿçõÏ& !Sÿÿ ÿçõÏ& !Uÿÿ ÿéõÏ&!Tÿÿ ÿéôÏ& .÷ÿÿ ÿéõÏ& !Öÿÿ ÿèôÏ& !Vÿÿ ÿèòÏ& >ßÿÿ ÿçõÐ& # ÿÿ ÿéõÏ&Ë ÿÿ ÿéôÐ&)5 ÿÿ ÿéîÐ&#ÿÿ ÿçòÐ&"ÿ#ÿÿ ÿéõÐ&#!Gÿÿ ÿèõÐ&öóÿÿ ÿé÷Ñ&ç#ÿÿ ÿéóÐ&¦#ÿÿ ÿèõÐ&##ÿÿ ÿéóÑ&##ÿÿ ÿéôÐ&&##ÿÿ ÿéòÐ&!2#ÿÿ ÿéöÐ&·#ÿÿ ÿçöÐ&!3tÿÿ ÿèóÐ&##ÿÿ ÿèôÐ&!Y#ÿÿ ÿéôÐ&Ç#ÿÿ ÿè÷Ñ&# #ÿÿ ÿéôÐ&##ÿÿ ÿéïÐ&##ÿÿ ÿçõÑ&# # ÿÿ ÿéîÎ&q 'ÿÿ ÿèíÏ&¥rÿÿ ÿçöÏ&stÿÿ ÿéôÏ&Æ1ÿÿ ÿèóÏ&Æ$ºÿÿ ÿóóÏ&Ñ!\ÿÿ ÿîóÐ&)—&ì>àÿÿ ÿîòÏ&!]>âÿÿÿéîÑ&!Ë!ÊÿÿÿèðÑ&!Ì!Êÿÿ ÿéôÑ&!ÍÿÿÿéôÑ&!Î!Ïÿÿ ÿéóÑ&!Í!ÑÿÿÿèõÑ&!Î!Ðÿÿ ÿéóÑ&!Ò>ãÿÿ ÿéóÐ&™!ÓÿÿÿéñÒ&!Ô!Óÿÿ ÿéõÑ&!Í!Öÿÿ ÿèõÈ&yxÿÿÿèõÈ&:xÿÿ ÿèõÎ&^ÿÿ ÿèõÈ&xÿÿ ÿèõÏ&]^ÿÿ ÿèöÈ& Åÿÿ ÿèõÉ&)˜xÿÿ ÿèõÈ&Àxÿÿ ÿéõÇ&ž!ÿÿ ÿèõÏ&^ Æÿÿ ÿèõÍ&^ Çÿÿ ÿéõÇ&! ÈÿÿÿéõÇ& É!ÿÿ ÿèõÇ&!—ÿÿ ÿéõÍ&!˜ÿÿ ÿéõÍ&"!ÿÿ ÿéõÏ&!¿ÿÿÿçóÐ& ã„ÿÿÿéõÏ&!cÿÿ ÿéóÇ&„ äÿÿ ÿèõÏ&!­ÿÿ ÿéõÐ&!ëÿÿ ÿéóÍ&o„ÿÿ ÿèóÏ&„0Áÿÿ ÿéòÏ&“´ÿÿ ÿéõÏ&,!ÿÿÿéõÇ&!Ÿÿÿ ÿéóÐ&„ ÿÿÿèõÐ&^¥ÿÿ ÿéóÇ&X„ÿÿ ÿéóÑ&„)™ÿÿ ÿéòÌ&´Gÿÿ ÿéóÏ&D„ÿÿ ÿéõÇ&!ÿÿ ÿèòÐ& ¡>äÿÿ ÿçóÏ& á„ÿÿ ÿçñÎ& ©0|ÿÿ ÿéõÌ&5&!>åÿÿ ÿéòÇ&R´ÿÿ ÿèóÑ& Ô&„>æÿÿÿéóÇ&„ Óÿÿ ÿéóÍ&/µ„ÿÿ ÿéóÐ&=„ÿÿ ÿéóÏ& °„ÿÿ ÿéóÍ&/³„ÿÿ ÿéòÑ&´ÏÿÿÿçóÏ&„- ÿÿÿéòÇ&´ ÐÿÿÿéòÏ& Ò´ÿÿ ÿéóÊ&|„ÿÿ ÿèóÌ&5& Ñ„ÿÿ ÿéõÏ&!ÿÿÿèóÐ&„yÿÿ ÿéòÇ&´"0ÿÿ ÿçöÊ&"tÿÿ ÿéòÏ&´„ÿÿ ÿéóÇ&„zÿÿ ÿéòÐ&!è ¡ÿÿ ÿéòÇ& ¡! ÿÿ ÿéòÏ& Ï!ÿÿÿéòÉ&´ |ÿÿ ÿèòÏ&´Žÿÿ ÿèòÏ&´…ÿÿ ÿéóÇ&„>çÿÿÿéòÏ&)¨ ¡ÿÿ ÿéòÇ&³´ÿÿÿéòË&´ÿÿ ÿéòÏ&´)©ÿÿ ÿçóÏ&„‚ÿÿ ÿéòÏ&$8´ÿÿ ÿéòÉ& ¡4ÿÿ ÿéòÎ& ¡>èÿÿ ÿéòÍ&´Šÿÿ ÿçòÈ&´zÿÿ ÿéòÏ&´)ªÿÿ ÿéöÑ&€ÿÿ ÿéòÎ&´‚ÿÿ ÿéòÉ&ƒ´ÿÿÿéòÐ&i´ÿÿÿéòÑ&´0âÿÿÿéòÏ& Ï]ÿÿ ÿéòÑ&´ Îÿÿ ÿéòÇ& Í´ÿÿÿèñÏ&0X>éÿÿ ÿèòÑ& Ë Ìÿÿ ÿéòÍ&x&ý&î´ÿÿ ÿéöË& Êÿÿ ÿéòÏ&´~ÿÿ ÿéóÇ&y“ÿÿÿéóÇ&:;ÿÿ ÿéöÇ&|ÿÿ ÿéóÇ&;ÿÿ ÿéóÏ&}–ÿÿ ÿèóÉ&;)˜ÿÿ ÿéóÇ&À“ÿÿ ÿèöÇ&|—ÿÿ ÿéóÇ&}0&ÿÿ ÿéóÍ&{"ÿÿ ÿéóÍ& Ç{ÿÿ ÿéóÍ&{˜ÿÿ ÿéóÇ&{žÿÿ ÿéóÇ& È{ÿÿÿéöÇ&}|ÿÿÿèóÏ&{*{ÿÿÿéöÏ&a|ÿÿÿçóÐ&{ ãÿÿ ÿéóÇ&{’ÿÿ ÿéóÏ&,{ÿÿ ÿéóÏ&D{ÿÿ ÿéóÐ&{)«ÿÿ ÿéóÌ&5&<}ÿÿ ÿéóÐ&{ ÿÿÿéóÇ&{Ÿÿÿ ÿéóÐ&{=ÿÿ ÿéóÍ&}/³ÿÿ ÿéóÒ&}ÿÿ ÿéóÏ&{zÿÿ ÿéóÊ&}|ÿÿ ÿçöÊ&u~ÿÿ ÿéóÇ&z}ÿÿ ÿèóÏ&}ÿÿ ÿèóÏ&…ÿÿ ÿéóÏ&„ÿÿ ÿçóÇ&ƒÿÿÿéóÏ&€ÿÿ ÿçóÏ&}‚ÿÿÿéóË&ÿÿ ÿéóÉ&ƒÿÿ ÿéóÑ&€ÿÿ ÿèóÈ&}ÿÿÿèñÑ&{0Xÿÿ ÿéóÏ&~ÿÿ ÿéóË&á#áÿÿ ÿçúË&hgÿÿ ÿéóÉ&á>êÿÿ ÿéóÎ&á>ëÿÿ ÿéöÐ&~}ÿÿ ÿéøÏ&|#éÿÿ ÿéõÐ&âáÿÿ ÿéóÌ&°>ìÿÿ ÿéóÉ&{áÿÿ ÿéôÉ&áÿÿ ÿéöÈ&"1°ÿÿ ÿéóÉ&°>íÿÿ ÿéøÏ&#ã#âÿÿ ÿéóÏ&á>îÿÿ ÿéøÏ&"Þãÿÿ ÿéóÈ&"ˆ°ÿÿÿéøÉ&éãÿÿ ÿéõÏ&}>ïÿÿ ÿéøÉ&#äãÿÿ ÿéóÉ&°>ðÿÿ ÿéôÈ&°>ñÿÿ ÿéøÉ&äãÿÿ ÿçøÐ&ã>òÿÿ ÿéõÎ&°>óÿÿ ÿéõÐ&°>ôÿÿ ÿéôÈ&°>õÿÿÿéøÏ&#â#åÿÿ ÿêôÎ&#æÿÿ ÿçöÏ&#è#éÿÿ ÿêñÈ&ÿÿ ÿêñÏ&>öÿÿ ÿç÷É&)¬)­ÿÿ ÿç÷Ð&)­>÷ÿÿ ÿêõÍ&)®>øÿÿ ÿéøÎ& ÿÿ ÿèõÓ&Ç)°ÿÿÿéõÑ&>´ÿÿÿèóÑ&>qÿÿÿéóÑ&>"ßÿÿ ÿèõÓ&)³)±ÿÿÿèõÓ&)²)±ÿÿÿéõÑ&)´ ÅÿÿÿéñÑ& Å)µÿÿÿéòÑ&(* ÆÿÿÿéðÑ&ü&û ÅÿÿÿéõÑ&)¶ƒÿÿ ÿéóÑ&¯ÃÿÿÿéõÑ&ƒ>ÿÿÿéòÑ& Å0ôÿÿÿéôÑ& È"–ÿÿÿéïÑ& Ç/¹ÿÿ ÿçôÌ&0ÿÿÿéíÑ&ˆ ÅÿÿÿéõÑ&3 ÅÿÿÿèðÑ&4 ÅÿÿÿèöÑ& Å0kÿÿÿéóÑ& Å5ÿÿÿèõÑ& ÆQÿÿÿèóÑ&ç ÆÿÿÿéìÑ&a Çÿÿ ÿåõÏ& )·ÿÿÿèíÑ&b ÆÿÿÿèôÑ&&ç Åÿÿ ÿæõÊ&C&BAÿÿ ÿçôÐ&æÿÿÿéóÑ&"— ÆÿÿÿèóÑ& Å’ÿÿÿé÷Ñ&c ÇÿÿÿéòÑ& ÆÚÿÿÿèõÑ& ÈeÿÿÿéóÑ& ÆÿÿÿéõÑ& · ÅÿÿÿéõÑ&d ÆÿÿÿéóÑ& È0TÿÿÿéôÑ& Æ&ñÿÿÿéôÑ&/w ÈÿÿÿçöÒ&f ÆÿÿÿéöÒ&g ×ÿÿÿéòÑ& Ç,AÿÿÿéíÑ&å ÅÿÿÿèóÑ& Æíÿÿ ÿçôÏ&)¹ÿÿÿé÷Ñ&(x ÈÿÿÿéòÑ& ÈWÿÿÿçõÑ& È&©ªÿÿÿèòÑ& Ç"@ÿÿÿéòÑ& Å!2ÿÿÿèðÒ&)¸&g!ÿÿÿéòÑ& Èÿÿ ÿåõÑ&)·>úÿÿÿéöÑ& È"õÿÿÿéòÒ&g&/>ûÿÿÿèõÒ&g&@>üÿÿÿèðÑ&0 ÆÿÿÿçõÑ& È!0ÿÿÿèóÑ& È#Aÿÿ ÿéóÑ&¯#1ÿÿÿéöÑ&$f$jÿÿÿéôÑ& È#úÿÿÿéïÑ&% ÈÿÿÿéóÑ&(g ÆÿÿÿéóÑ& È(sÿÿÿéôÑ& È1ÿÿÿèõÑ& È(tÿÿÿéóÑ& Æ$ØÿÿÿéóÑ& Ç#`ÿÿÿéôÑ&$Ù ÈÿÿÿéòÑ& Æ%ÿÿÿåôÑ&(u ÆÿÿÿèôÑ& Ç(vÿÿÿéóÑ& ÆýÿÿÿéõÑ& È(wÿÿÿéðÑ& È5ÿÿÿçõÑ&$j!UÿÿÿèóÑ& Ç#6ÿÿÿéñÑ& Ç)ºÿÿ ÿçõÒ&)»&º>ýÿÿÿçõÏ&Ì>þÿÿÿéôÒ&g(rÿÿÿçõÒ&!ÔÌÿÿÿéòÒ& È!ÕÿÿÿèöÑ& È)òÿÿÿéñÑ&$j(ÿÿÿèòÑ& Ç(qÿÿÿéòÑ&$j-ÿÿÿçõÑ&$j(pÿÿ ÿêõÐ&«ªÿÿ ÿéíÐ&«%9ÿÿ ÿëõÐ&¬«ÿÿ ÿç÷Ð&­)¼ÿÿ ÿëñÐ&«®ÿÿ ÿéõÐ&«`ÿÿ ÿçóÐ&¯)¼ÿÿ ÿêòÐ&«¾ÿÿ ÿéõÑ&«¶ÿÿ ÿèõÐ&»)¼ÿÿ ÿèîÑ&¿)¼ÿÿ ÿëõÐ&«3ÿÿ ÿéêÐ&(o)¼ÿÿ ÿéòÐ&«0öÿÿ ÿéóÐ&Á)¼ÿÿ ÿèõÐ&¼)¼ÿÿ ÿèíÒ&½¾ÿÿ ÿéòÐ&«¤ÿÿ ÿéóÐ&æ)¼ÿÿ ÿêôÐ&)¼,Ëÿÿ ÿé÷Ð&c)¼ÿÿ ÿéöÐ&½(lÿÿ ÿèñÐ&“)¼ÿÿ ÿëôÐ&(m)¼ÿÿ ÿéìÐ&«(nÿÿ ÿéñÐ&½Xÿÿ ÿëôÐ&"j)¼ÿÿ ÿæòÐ&!ÿ)¼ÿÿ ÿèòÐ&½0¤ÿÿ ÿéóÐ&½pÿÿ ÿèõÐ&£)¼ÿÿ ÿéñÐ&½%ÿÿ ÿëôÑ&½$Úÿÿ ÿëóÐ&#_)¼ÿÿ ÿéôÐ&½%Þÿÿ ÿèõÐ&&(k?ÿÿ ÿèõÐ&½(jÿÿ ÿêôÐ&½)½ÿÿ ÿè÷Ð&(i?ÿÿ ÿèöÏ&Chÿÿ ÿçõÉ&Ã"•ÿÿ ÿéôË&Ã"–ÿÿ ÿéóÏ&"—Ãÿÿ ÿéôÐ&ÃÂÿÿ ÿéöÏ&Ã"˜ÿÿ ÿèóÐ&Ã!‘ÿÿ ÿéôÐ&Ã"™ÿÿ ÿéôÉ&Ã1ÿÿ ÿé÷Ð&™šÿÿ ÿèöÒ&"š&"›"œÿÿÿèõÇ&æœÿÿ ÿéìÈ&Ç"ÕÿÿÿéóÇ&!,æÿÿÿéðÐ&æ)äÿÿÿèöÏ&æHÿÿÿéóÌ&"߈ÿÿÿéõÎ&"àæÿÿÿèíÐ&ˆ"áÿÿÿèðÊ&"ã"âÿÿÿéëÇ&ˆ&ÙÿÿÿéóÇ&ˆ&ÚÿÿÿéõÏ&ÎæÿÿÿèôÍ&ˆ&ÜÿÿÿéíÊ&&Û"âÿÿÿçøÏ&ùˆÿÿ ÿéòÈ&q&ÝÿÿÿéõÏ&ˆBÿÿÿéôÏ&—éÿÿÿèøÈ&úˆÿÿÿéòÇ&&ÞæÿÿÿèõÏ&ˆ-ÿÿÿéóÌ&æ äÿÿÿéîÇ&ˆ&ßÿÿÿèðÇ&!̈ÿÿ ÿéôÔ&,]ÎÿÿÿéôÇ&æ&àÿÿÿéëÏ&æ·ÿÿÿéóÇ&ˆ ûÿÿÿéôÏ&æœÿÿÿéóÑ&&â&áÿÿÿéìÎ&éÿÿÿéõÇ&æ,CÿÿÿéîÇ&æ!HÿÿÿéíÐ&&ã'qÿÿÿèöÏ&dæÿÿÿèõÐ&æ&åÿÿÿéòÐ&æ0ôÿÿÿéóÐ&é&,D?ÿÿÿéôÏ&æ&äÿÿÿéôË&é"–ÿÿÿéðÏ&éiÿÿÿéîÇ&æ0óÿÿÿèóÐ&æçÿÿÿé÷Ì&SæÿÿÿéóÇ&æTÿÿÿéóÏ&ûéÿÿÿéìÈ&é&æÿÿÿéöÑ&ébÿÿÿèòÏ&èéÿÿÿèôÇ&&çæÿÿÿæôÎ&æ#.ÿÿÿéòÏ&¤éÿÿÿéíÉ&æwÿÿÿéõÐ&é‹ÿÿ ÿèëÏ&S*ÿÿÿéóÏ&é0UÿÿÿèòÇ&é&èÿÿÿéõÏ&æ ·ÿÿÿéôÇ&é&éÿÿÿçóÏ&é&êÿÿÿéóÐ&&ëæÿÿÿéñÈ&æ&ìÿÿÿéõÏ&déÿÿÿéëÉ&æ!WÿÿÿéóÐ&édÿÿÿèõÑ&éeÿÿÿéóÏ&é(ÿÿÿéóÏ&æ&íÿÿÿéôÏ&é+_ÿÿÿé÷Ç&é"nÿÿÿéõÐ&é‹ÿÿÿéìÇ&éŒÿÿÿéôÐ&æ&îÿÿÿéòÏ&æ,BÿÿÿéôÇ&æ&ñÿÿÿèîÏ&æ&ïÿÿÿéóÏ&é&ðÿÿÿéòÇ&é1ÿÿÿéóÐ&é)ÈÿÿÿèòÏ&æ+tÿÿÿéôÐ&ÂéÿÿÿéóÇ&é?ÿÿÿéóÏ&é *ÿÿÿéñÈ&éÿÿÿéòÇ&é(hÿÿ ÿéòÐ&Î&01ÿÿÿéðÐ&é"ÀÿÿÿéôÏ&é#ªÿÿÿéøÉ&éÿÿÿéôÑ&æ!Ïÿÿ ÿéôÏ&*0vÿÿÿéïÏ&é?ÿÿÿéóÉ&é"ÿÿ ÿéõÇ&* ÿÿÿéôË&é#ÏÿÿÿéõÍ&é"‚ÿÿÿéöÈ&é&ÿÿÿéîÇ&é"ƒÿÿÿéóÐ&kæÿÿÿéôÑ&æ#úÿÿÿéóÏ&é(gÿÿ ÿçõÑ&?ÿÿÿéòÏ&é$ÔÿÿÿéòÏ&(a?ÿÿÿéïÐ&é%ÿÿ ÿèóÏ&?ÿÿÿéóÐ&é(eÿÿÿéóÏ&æWÿÿÿéòÇ&$úéÿÿÿéôÇ&éÏÿÿÿéïÏ&é(fÿÿÿéôÇ&é!ÿÿ ÿéïÏ&)Ê*ÿÿÿéòÏ&%éÿÿ ÿéöÐ&0(aÿÿÿéîÇ&é(cÿÿÿéôÇ&èæÿÿÿéóÐ&é(bÿÿ ÿçöÐ&0V?ÿÿÿéñÐ&(a0WÿÿÿèõÐ&é!ÝÿÿÿéóÉ&é$-ÿÿÿé÷Ñ&é(dÿÿÿéóÇ&æçÿÿÿéòÈ&é(_ÿÿÿéíÇ&éžÿÿÿéôÏ&é(`ÿÿÿéôÏ&é#ÿÿÿèõÏ&)¾éÿÿÿèóÏ&é#6ÿÿÿéôÎ&éÿÿÿéõÇ&é? ÿÿ ÿèõÐ&& ? ÿÿÿéòÈ&æ'ÿÿÿéïÑ&é'#ÿÿÿéóÉ&é*£ÿÿÿéóÏ&é(Õÿÿ ÿêõÏ&*? ÿÿÿé÷Ñ&é)¿ÿÿÿéòÒ&é!Õÿÿ ÿéôÐ&ÍÎÿÿÿèòÉ&é)ÀÿÿÿçòÐ&)Âéÿÿ ÿéñÈ&)*ÿÿ ÿèòÐ&)Á*ÿÿ ÿéóÑ&*6ÿÿÿéôÑ&êéÿÿÿèòÏ&,éÿÿ ÿéðÇ&*? ÿÿ ÿéñÏ& &  ÿÿÿéðÏ&é? ÿÿÿéóÏ&é(Îÿÿ ÿêòÉ&**kÿÿ ÿéñÌ&)Ã?ÿÿ ÿèõÈ&œ?ÿÿ ÿèöÏ&?HÿÿÿèíÐ&Å@ÿÿÿêöÏ&@ÿÿÿêòÇ&@Iÿÿ ÿçøÏ&?ùÿÿÿéëÐ&)Ä@ÿÿ ÿêîÈ&?!HÿÿÿêôÏ&@&äÿÿÿêëÇ&)ÅAÿÿÿéóÏ&A&/ÕÿÿÿêìÎ&@ÿÿÿéêÐ&@,Eÿÿ ÿêôÏ&?œÿÿÿêðÏ&@iÿÿÿéóÐ&0ƒBÿÿÿééÐ&ÎCÿÿÿéòÇ&@*×ÿÿÿéòÐ&@0ôÿÿÿæôÏ&EÿÿÿééÉ&,³<ÿÿÿèöÑ&E)ÆÿÿÿéôÐ&ATÿÿÿéõÐ&@‹ÿÿÿéôÐ&@™ÿÿÿéóÎ&AåÿÿÿéòÇ&ATÿÿÿêóÏ&E'ÿÿÿêòÌ&A)ÇÿÿÿèõÑ&e@ÿÿÿèòÎ&@)ÉÿÿÿêóÐ&@)ÈÿÿÿéõÇ&A1ÿÿÿéõÐ&A‹ÿÿÿè÷Ð&E /ÿÿÿçíÐ&E:ÿÿÿêñÏ&#d?ÿÿÿêôÇ&@!ÿÿ ÿêôÐ&#c&#b#dÿÿÿêôÐ&#b&#^#dÿÿÿéïÐ&@%ÿÿ ÿêòÑ&?ÿÿÿéïÏ&E)ÊÿÿÿéóÉ&$-AÿÿÿéôÇ&A)ËÿÿÿêòÑ&E)ÌÿÿÿéóÇ&E?ÿÿÿéñÈ&)EÿÿÿèòÏ&E+ÿÿÿéòÑ&E-ÿÿ ÿéøÏ&ÿ3ÿÿ ÿéñÉ&#,4ÿÿ ÿéöÏ&a3ÿÿ ÿèõÉ&T3ÿÿ ÿçòÏ&ª3ÿÿ ÿéõÏ&†4ÿÿÿéóÍ&65ÿÿ ÿéóÎ&73ÿÿ ÿéïÏ&#-4ÿÿ ÿæôÎ&4#.ÿÿ ÿèöÐ&4#/ÿÿ ÿèóÌ&3ÿÿ ÿéôÐ&Ô3ÿÿ ÿéôÐ&…3ÿÿ ÿèõÉ&R3ÿÿ ÿèóÐ&ç4ÿÿ ÿéóÎ�3ÿÿ ÿéõÉ&31ÿÿ ÿéøÐ&98ÿÿÿèöÏ&&5?ÿÿ ÿéòÏ&3#ºÿÿ ÿéóÏ3ÿÿ ÿéñÐ&3#2ÿÿ ÿéòÏ&#3ÿÿ ÿéôÐ3ÿÿ ÿéôÐ&/O3ÿÿÿèòÐ5ÿÿ ÿçóÏ&3#5ÿÿ ÿèóÏ&8#6ÿÿ ÿéðÉ8ÿÿ ÿéóÏ&8?ÿÿÿçôÎ&5?ÿÿ ÿéòÐ&8#8ÿÿ ÿçñÑ 8ÿÿ ÿè÷Ð&#:8ÿÿÿèòÑ&%&¸¹ÿÿÿéôÑ&%)Íÿÿ ÿéöÎ& ?ÿÿ ÿìõÏ&?ÿÿ ÿéòÏ&$¢ÿÿ ÿêóÏ&ë?ÿÿ ÿêóÏ&[ÿÿ ÿçòÏ&?ÿÿ ÿéôÏ&@ÿÿ ÿéòÏ&?ÿÿ ÿîóÏ&?ÿÿ ÿèöÎ& 8ÿÿ ÿèóÏ&ë?ÿÿ ÿéóÏ&?ÿÿ ÿêõÏ&?ÿÿÿéòÐ&?ÿÿ ÿéòÐ&,´ÿÿÿçòÐ&Âÿÿ ÿéôÏ&? ÿÿ ÿéòÏ&¯ÿÿ ÿçóÏ&L&ë?!ÿÿ ÿéòÏ&ÿÿ ÿéóÏ&nÿÿÿèóÐ&?"ÿÿ ÿîóÏ&?#ÿÿÿéòÐ&RÿÿÿèòÐ&?$ÿÿÿèòÐ&?%ÿÿÿçòÐ&ÿÿÿêòÐ&?&ÿÿ ÿèöÏ&ìëÿÿ ÿèõÐ&(^ÿÿ ÿèóÐ&"`ÿÿÿéòÐ&#«ÿÿ ÿçòÐ&"ÿÿ ÿçòÏ&?'ÿÿ ÿêòÐ&?(ÿÿ ÿéôÏ&?)ÿÿÿéòÐ&$¾&a?*ÿÿÿéòÐ&?+ÿÿÿæòÐ&$¾?,ÿÿÿçòÐ&?-ÿÿÿçóÐ&$¾?.ÿÿ ÿçòÐ&$¾$¿ÿÿÿçóÐ&?/ÿÿÿèòÐ&$¼?0ÿÿÿèòÐ&$¾?1ÿÿ ÿåòÐ&?2ÿÿÿèòÐ&$À$¼ÿÿ ÿæôÐ&$¾?3ÿÿ ÿçôÐ&$¼?4ÿÿÿèòÐ&$¼?5ÿÿÿèóÐ&$¼?6ÿÿÿéõÐ&$¼?7ÿÿÿèîÏ&"#ÿÿÿèîÏ&$&ÿÿÿèîÏ&&%ÿÿÿèîÏ&&'ÿÿÿèîÏ&"?8ÿÿÿèîÏ&!?9ÿÿÿìèÏ&T?:ÿÿÿèíÐ&.Ü?<ÿÿÿéóË&™?=ÿÿÿè÷Ë&$ #ÐÿÿÿéóÑ&$$ÿÿÿéïÏ&š™ÿÿ ÿéôÏ&Ž?>ÿÿ ÿéõÏ&Š??ÿÿ ÿéõÏ&Š‹ÿÿ ÿéôÑ&Œÿÿ ÿéôÏ&ŽÿÿÿéôÑ&Œÿÿ ÿéôÏ&Ž?@ÿÿ ÿéóÐ&+?Aÿÿ ÿè÷Ç&F&Esÿÿ ÿéóÐ&+?Bÿÿ ÿéóÐ&)+ÿÿ ÿéôÐ&*+ÿÿ ÿéóÐ&+?Cÿÿ ÿéóÐ&+?Dÿÿ ÿéóÐ&+?Eÿÿ ÿéóÐ&+?Fÿÿ ÿèôÑ&.Ý#üÿÿ ÿéóÐ&+?Gÿÿ ÿéóÐ&+?Hÿÿ ÿè÷Ñ&$?Iÿÿ ÿéõÐ&+?Jÿÿ ÿéóÐ&+?Kÿÿ ÿèöÊ&A?Lÿÿ ÿèôÐ&#ý?Mÿÿ ÿéìÐ&íÇÿÿ ÿéòÐ&íÿÿ ÿéóÐ&Oýÿÿ ÿéðÐ&)ä)åÿÿ ÿéõÐ&!E&!DOÿÿ ÿèõÐ&¹íÿÿ ÿéöÐ&Qaÿÿ ÿéõÐ&¬Oÿÿ ÿéóÐ&QÃÿÿ ÿéóÑ&)Î@ÿÿ ÿèôÐ&í&Üÿÿ ÿéôÐ&í)Ïÿÿ ÿéíÐ&í)Ðÿÿ ÿéóÐ&…Qÿÿ ÿéôÐ&¿Qÿÿ ÿéïÐ&Ožÿÿ ÿçöÐ&*Ííÿÿ ÿéóÐ&O.ÿÿ ÿèéÐ&O/ÿÿ ÿéòÐ&O)Ñÿÿ ÿèòÐ&¹Oÿÿ ÿéòÐ&Q,Fÿÿ ÿéðÐ&Ojÿÿ ÿéîÐ&O/qÿÿ ÿéñÐ&Oþÿÿ ÿéôÐ&†"–ÿÿÿçôÌ&)Ò0ÿÿ ÿéïÐ&)Óíÿÿ ÿéìÐ&Oÿÿ ÿéòÐ&)‰)åÿÿ ÿéóÐ&í%Kÿÿ ÿéòÐ&O0ôÿÿ ÿéóÐ&ûOÿÿ ÿéóÐ&O&!E/âÿÿ ÿæïÐ&í¸ÿÿ ÿéïÐ&)å#-ÿÿ ÿéîÐ&O!:ÿÿ ÿéõÐ&)å+¦ÿÿ ÿéóÐ&fíÿÿ ÿéôÐ&Oîÿÿ ÿéïÐ&OEÿÿ ÿèòÐ&O0Àÿÿ ÿéõÑ&Q‘ÿÿ ÿé÷Ð&SOÿÿ ÿèôÐ&)ÔQÿÿÿçòÍ&±&²ÿÿ ÿéôÐ&…Oÿÿ ÿéìÐ&†&æÿÿ ÿéðÐ&Oÿÿ ÿéòÐ&€Oÿÿ ÿèõÐ&Qíÿÿ ÿéóÐ&í(Ìÿÿ ÿéòÐ&íNÿÿ ÿé÷Ñ&Oçÿÿ ÿéòÐ&Y†ÿÿ ÿèóÐ&†&.è/Õÿÿ ÿéóÐ&Qdÿÿ ÿéóÐ&Qƒÿÿ ÿéöÐ&O)–ÿÿ ÿèìÑ&!XOÿÿ ÿèõÑ&Oeÿÿ ÿéõÐ&dOÿÿ ÿéôÐ&†Òÿÿ ÿéóÐ&O(Íÿÿ ÿèõÐ&ROÿÿ ÿéòÐ&O!5ÿÿ ÿé÷Ð&O-³ÿÿ ÿéòÐ&OÚÿÿ ÿè÷Ð&Qÿÿ ÿçôÏ&¸?Nÿÿ ÿéóÐ&WQÿÿÿçñÑ&.Þ)Òÿÿ ÿèïÐ&†& ?Oÿÿ ÿéòÐ&O)æÿÿ ÿéìÐ&îOÿÿ ÿéøÐ&O)çÿÿ ÿéòÐ&Q)èÿÿ ÿèòÐ&O+tÿÿ ÿéóÐ&O)éÿÿ ÿéóÑ&O#ÿÿ ÿéôÐ&O ÿÿ ÿéìÐ&OŒÿÿ ÿéòÐ&O,Gÿÿ ÿéõÐ&OHÿÿ ÿéóÐ&&ðQÿÿ ÿéôÐ&†ÿÿ ÿçöÐ&Qÿÿ ÿéìÐ&†!ÿÿ ÿéôÐ&O&ñÿÿ ÿéóÐ&Q)êÿÿ ÿéóÐ&O?Qÿÿ ÿéïÐ&¶Oÿÿ ÿéòÐ&Qaÿÿ ÿèõÐ&VOÿÿ ÿê÷Ï&.4ÿÿ ÿçòÏ&,Hÿÿ ÿéöÑ&Q ÿÿ ÿèõÐ&†·ÿÿ ÿè÷Ð&†?Rÿÿ ÿé÷Ò&OPÿÿ ÿéóÐ&Q"ÿÿ ÿèöÐ&†&/Ô/Õÿÿ ÿéîÐ&†/ºÿÿ ÿèõÐ&O"«ÿÿ ÿè÷Ñ&†.ßÿÿ ÿéðÐ&O }ÿÿ ÿéöÐ&†"\ÿÿ ÿéöÐ&Q#Gÿÿ ÿéöÐ&·Qÿÿ ÿéòÐ&Oÿÿ ÿéöÐ&QÛÿÿ ÿéñÐ&†#Åÿÿ ÿéóÐ&†&Žÿÿ ÿè÷Ï&%ý&"2ÿÿ ÿéôÏ&0uÿÿ ÿéòÐ&O!ÿÿ ÿèóÐ&† Ïÿÿ ÿéòÐ&Q".ÿÿ ÿé÷Ð&†!ÿÿ ÿéõÏ& ÿÿ ÿèíÏ&&Æ!ÿÿ ÿéôÐ&Q1ÿÿ ÿéôÐ&Q"™ÿÿ ÿéñÐ&O#2ÿÿ ÿéóÐ&Q(àÿÿ ÿéõÐ&-´&ù?Sÿÿ ÿéóÎ&ù&?Tÿÿ ÿéóÐ&+óOÿÿ ÿéîÐ&†$Wÿÿ ÿéóÐ&O(ßÿÿ ÿéóÐ&O$ÿÿ ÿéòÐ&$ò†ÿÿ ÿéòÐ&O$Bÿÿ ÿéòÐ&Q$Hÿÿ ÿèðÐ&†(Üÿÿ ÿéðÏ&ù&-µ?Uÿÿ ÿêòÏ&?VÿÿÿçòÐ&?Wÿÿ ÿéñÏ&úùÿÿ ÿçõÐ&õ&?Xÿÿ ÿéöÐ&†(Ýÿÿ ÿé÷Ð&$×&ù?Yÿÿ ÿéôÐ&†(Þÿÿ ÿèõÐ&!ÝOÿÿ ÿéóÐ&O$Øÿÿ ÿéîÐ&(×Qÿÿ ÿèóÐ&†3ÿÿ ÿéóÐ&$-†ÿÿ ÿèóÐ&O'ÿÿÿçóË&(Ø?Zÿÿ ÿêûÏ&H&?[ÿÿ ÿéóÐ&O(Ùÿÿ ÿéòÐ&(ÚQÿÿ ÿçóÑ&†(Ûÿÿ ÿéïÐ&¯OÿÿÿçôÑ&1 ÿÿ ÿéíÐ&ž†ÿÿ ÿéôÐ&(`Oÿÿ ÿéóÐ&†(Ôÿÿ ÿèõÏ&þÿÿ ÿéóÐ&†(Õÿÿ ÿèõÐ&)¾†ÿÿ ÿéóÒ&†ÿÿ ÿéóÐ&ýOÿÿ ÿéòÐ&†(Öÿÿ ÿèóÎ&ùüÿÿ ÿéôÐ&†ÿÿ ÿéòÐ&O(Óÿÿ ÿèóÐ&†#6ÿÿ ÿéõÐ&†(wÿÿ ÿéöÐ&†(ÒÿÿÿçòÑ&¿ÿÿ ÿéõÒ&Oïÿÿ ÿèòÐ&†(Ñÿÿ ÿéòÒ&!ÕQÿÿ ÿéøÐ&†(Ðÿÿ ÿéòÐ&O#8ÿÿ ÿéòÐ&O)ëÿÿ ÿé÷Ñ&†%{ÿÿ ÿçóÐ&)ì†ÿÿ ÿéòÏ&-¶ÿÿ ÿéõÐ&†(Ïÿÿ ÿéõÐ&ˆÿÿ ÿéóÑ&!&†?\ÿÿ ÿèóÐ&†?]ÿÿ ÿéóÐ&,K†ÿÿ ÿéóÑ&†6ÿÿ ÿéóÐ&†(Îÿÿ ÿéòÐ&†*kÿÿ ÿéõÏ&O:ÿÿ ÿéóÑ&@Bÿÿ ÿéóÐ&C…ÿÿ ÿçòÐ&C"ÿÿÿ ÿéñÏ&Cþÿÿ ÿéóÏ&COÿÿ ÿéòÏ&C(Ëÿÿ ÿéóÐ&D&F/âÿÿ ÿíóÐ&CûÿÿÿðôÑ&.Ï?^ÿÿ ÿéòÐ&C0ôÿÿ ÿïóÏ&C(Ìÿÿ ÿéòÏ&C0×ÿÿ ÿéòÏ&D€ÿÿ ÿêïÏ&DEÿÿ ÿèõÑ&DKÿÿ ÿèõÐ&CQÿÿ ÿéòÏ&NOÿÿ ÿíõÐ&LMÿÿ ÿêòÏ&CSÿÿ ÿèõÏ&CRÿÿ ÿéòÏ&JTÿÿ ÿêûÐ&I&HJÿÿ ÿðõÏ&DUÿÿ ÿñóÏ&CWÿÿ ÿéóÐ&J&/â?_ÿÿ ÿêóÏ&þJÿÿ ÿêóÏ&D(ÍÿÿÿðôÏ&ûúÿÿ ÿè÷Ð&Cÿÿ ÿéîÏ&û/·ÿÿ ÿéóÏ&D)éÿÿ ÿèõÏ&DVÿÿ ÿê÷Ï&ÿ.4ÿÿ ÿéôÐ&DÂÿÿ ÿëôÏ&D&ñÿÿ ÿéíÏ&D³ÿÿ ÿéìÏ&J1ÿÿ ÿçöÏ&Cÿÿ ÿìöÑ&D ÿÿ ÿêìÏ&DŒÿÿ ÿéòÐ&Caÿÿ ÿéôÏ&J!ÿÿ ÿéòÏ&C)èÿÿ ÿéòÏ&D!òÿÿ ÿèõÏ&D¯ÿÿ ÿìòÏ&D".ÿÿ ÿêòÏ&D!ÿÿ ÿè÷Ï&%ý&û"2ÿÿ ÿèóÐ&D Ïÿÿ ÿíòÏ&Dÿÿ ÿçíÐ&ÿ:ÿÿ ÿêôÏ&D!ÿÿ ÿíòÐ&œ0Wÿÿ ÿèôÏ&J&bcÿÿ ÿêîÏ&J$Xÿÿ ÿéóÏ&+óCÿÿ ÿéóÏ&D(ßÿÿ ÿéñÏ&ûúÿÿ ÿéóÏ&D$-ÿÿ ÿéïÏ&D¯ÿÿ ÿíôÑ&œ1 ÿÿ ÿéóÏ&D$Øÿÿ ÿíóÑ&œ,Nÿÿ ÿèòÑ&J!’ÿÿ ÿèóÏ&ûüÿÿ ÿéóÐ&Dýÿÿ ÿéôÏ&Jÿÿ ÿéóÒ&Dÿÿ ÿïòÐ&D#8ÿÿÿëòÑ&k(ÿÿ ÿçôÒ&ðñÿÿ ÿéòÐ&ÿÿÿÿéîÐ&ÿÿ ÿèòÊ&A?`ÿÿ ÿéòÒ&Ê-·ÿÿ ÿéòÏ&Äÿÿ ÿéòÏ&,ÿÿ ÿéóÐ&ÿÿ ÿéòÏ&)íÿÿ ÿé÷Æ&T?aÿÿÿéîÏ&*%ÿÿ ÿèòÐ&+öóÿÿÿèôÒ&hgÿÿ ÿèòÏ& Æÿÿ ÿèòÒ&)†ÿÿ ÿéòÏ&)îÿÿ ÿéòÏ&˜ÿÿ ÿéòÏ&+ôÿÿ ÿçòÏ&)Œÿÿ ÿéòÏ&nÿÿ ÿéòÏ&uÿÿ ÿéòÏ&+n+õÿÿÿéòÏ&+itÿÿ ÿéòÏ&+÷ÿÿ ÿéòÏ&r+iÿÿ ÿéòÏ&qÿÿ ÿèóÊ&A&RSÿÿ ÿéòÏ&‡ÿÿÿéòÏ&+i0©ÿÿ ÿçñÐ&'q+ýÿÿÿéòÏ&cÿÿ ÿéòÏ&+i+øÿÿÿëòÑ&klÿÿ ÿéòÏ&kÿÿÿèòÐ&+ùÿÿ ÿéòÏ&‹ÿÿ ÿçñÑ&,M+ýÿÿÿéòÏ&tÿÿ ÿéòÏ&+úÿÿÿéòÏ&nÿÿ ÿéòÏ&ïÿÿ ÿéôÏ&þ?bÿÿ ÿéòÏ&+ûÿÿ ÿèòÏ&+ÿ+nÿÿ ÿçôÐ&+ü+ýÿÿÿéòÏ&+jÿÿ ÿéòÏ&+kÿÿÿéòÏ&+i,ÿÿÿéóÐ&{ÿÿÿèòÑ&+þgÿÿÿéòÐ&§ÿÿ ÿéòÏ&ü+iÿÿÿèòÐ&óËÿÿ ÿéòÏ&nÿÿ ÿéòÏ&-»ÿÿ ÿèòÏ&+i0Áÿÿ ÿéòÏ&,ÿÿ ÿèïÏ& ?cÿÿÿéòÏ&ÿÿ ÿèòÐ&ó&.ô?dÿÿ ÿèñÐ&P?eÿÿ ÿèòÐ&Úÿÿ ÿéòÐ&‘ÿÿ ÿèñÏ&P?fÿÿ ÿéòÏ&¬ÿÿÿèòÐ&,&ó?gÿÿ ÿéòÑ&ÿÿ ÿéòÏ&2+iÿÿÿéòÐ&†ÿÿ ÿéôÏ&ö&,/ÿÿ ÿéòÏ&0žÿÿ ÿéòÐ& âÿÿ ÿèòÐ&ó?hÿÿ ÿê÷Ð&+p+nÿÿÿèòÐ&ó/ÿÿÿéòÏ&,OÿÿÿéòÏ&+i+lÿÿ ÿéòÏ&9ÿÿÿéòÏ&+mÿÿ ÿéòÐ&+o+nÿÿÿéòÏ&Uÿÿ ÿèòÑ&)Uóÿÿ ÿéòÏ&+i-ÿÿ ÿéòÏ&Æÿÿ ÿéòÏ&+i/´ÿÿ ÿéòÏ&+i§ÿÿ ÿèòÐ&ó+qÿÿ ÿèòÐ&òóÿÿÿæòÐ&,(zÿÿ ÿèóÑ&OPÿÿ ÿéòÏ&&@+iÿÿ ÿèòÐ&ó/|ÿÿ ÿèòÐ&+i’ÿÿ ÿéòÐ&+eÿÿ ÿèòÐ&+ÿÿ ÿéôÏ&þ?iÿÿ ÿèòÐ&+fóÿÿ ÿéòÏ& ^+iÿÿÿèôÏ&+gþÿÿ ÿéòÐ&+hÿÿ ÿèòÐ&ó9ÿÿÿéòÏ&'²+iÿÿÿéòÏ&+r+iÿÿÿèòÐ&,óÿÿ ÿèòÐ&ó ÿÿ ÿèòÐ&ó,Pÿÿ ÿèòÐ&,óÿÿ ÿèòÐ&ó*ÿÿ ÿèïÏ& ,Iÿÿ ÿèôÏ&+sþÿÿ ÿéóÐ&)+nÿÿ ÿèòÐ& Üóÿÿ ÿèòÏ&¸&¹+nÿÿ ÿèòÏ&+n+tÿÿÿéòÏ&b+iÿÿ ÿèòÐ&, óÿÿ ÿéòÐ&„+iÿÿ ÿèòÐ&, óÿÿ ÿéòÏ&, ÿÿ ÿéòÏ&ÿÿÿèòÐ&óâÿÿÿéòÑ&+i+ÿÿ ÿèòÐ&sóÿÿ ÿèòÐ&ó½ÿÿÿçòÐ&ó, ÿÿÿéòÏ&+i?jÿÿÿéôÏ&þ?kÿÿ ÿéóÏ& »& ¼ ½ÿÿ ÿèòÐ&#Lóÿÿ ÿèïÏ& ?lÿÿ ÿçöÏ&t?mÿÿÿéóÏ& ½?nÿÿÿèòÐ&!óÿÿ ÿèòÐ&ózÿÿÿèòÐ&ó#Ôÿÿ ÿèòÐ&ó?oÿÿÿèòÐ&ó"ÿÿ ÿèòÐ&-¸óÿÿ ÿèòÐ&ó?pÿÿÿèòÐ&ó#ÄÿÿÿèòÐ&$·óÿÿ ÿèòÐ&"ªóÿÿÿèòÐ&ó"Áÿÿ ÿèòÐ&ó! ÿÿ ÿèïÏ& ?qÿÿ ÿèòÐ&ó!ãÿÿ ÿèòÐ&"êóÿÿ ÿèòÏ&$µ&$¶Pÿÿ ÿéòÏ&"?+iÿÿÿéòÏ&"aÿÿ ÿèòÐ&"bóÿÿ ÿèòÑ&"'?rÿÿ ÿèñÐ&$£&$¤Pÿÿ ÿèòÐ&$´óÿÿ ÿèòÏ&.à&$æ?tÿÿ ÿèòÐ&$°óÿÿ ÿèòÑ&ó%¯ÿÿ ÿéñÑ&$"ÿÿÿèòÑ&ó$±ÿÿ ÿèôÏ&þ$²ÿÿÿèòÐ&ó$³ÿÿ ÿèòÐ&/Góÿÿ ÿéòÏ&3+iÿÿÿèòÑ&ó+uÿÿ ÿéóÏ&¥?uÿÿ ÿèïÑ& ?vÿÿ ÿèòÐ&ó$MÿÿÿèòÐ&ó+”ÿÿÿèòÐ&$ûóÿÿ ÿèòÑ&ó,Qÿÿ ÿèòÐ&$óÿÿÿèòÐ&,Róÿÿ ÿèöÏ&˜?wÿÿ ÿèõÏ&$æ$åÿÿÿèòÐ&$ óÿÿ ÿèòÐ&ó?xÿÿ ÿéòÏ&+v+nÿÿ ÿéòÐ&+i.áÿÿ ÿèòÐ&ó?yÿÿ ÿéòÏ&+i+wÿÿ ÿèòÐ&ó?zÿÿÿèòÐ&ó?{ÿÿ ÿèòÐ&ó)Zÿÿ ÿèòÐ&,Sóÿÿ ÿèñÓ&P?|ÿÿ ÿèñÍ& ,`ÿÿÿèòÐ&ópÿÿ ÿèòÐ& ?}ÿÿ ÿèöÐ& 0ÿÿ ÿçòÐ&ó+xÿÿÿèñÓ&+}ÿÿ ÿèòÐ&ó+|ÿÿ ÿèòÐ&ó+{ÿÿÿèòÐ&óoÿÿ ÿæñÑ&0\(zÿÿ ÿèòÐ&,Tóÿÿ ÿèóÊ&A&¬?~ÿÿ ÿèòÐ&ó+yÿÿ ÿéòÏ&+i%-ÿÿ ÿèñÓ& ?ÿÿÿéòÏ&+i+~ÿÿ ÿèòÐ&ó+zÿÿ ÿèôÔ&Ÿ ÿÿÿéñÑ&+ÿÿ ÿçòÐ&ó+€ÿÿ ÿèòÐ&ó*ÔÿÿÿéñÑ&+ÿÿ ÿéñÑ&+‚ÿÿ ÿèõÏ& ?€ÿÿ ÿèñÓ&B&A ÿÿÿéôÏ&þ&ý?ÿÿÿéôÏ&þ&ý?‚ÿÿ ÿèñÑ&ÿÿÿ ÿèòÐ&,Uóÿÿ ÿèòÐ&ó+ƒÿÿ ÿéñÑ&!Ùÿÿ ÿèòÓ&«¬ÿÿ ÿèõÒ&‡ ÿÿ ÿéóÐ&+†&÷?ƒÿÿ ÿèïÑ& ,VÿÿÿèòÐ&+‡óÿÿ ÿæòÑ&(z.ÿÿ ÿèòÐ&ó+„ÿÿ ÿåöÓ&,W?„ÿÿ ÿèóÏ& ½&.ô?…ÿÿ ÿèôÏ&,X$æÿÿÿæõÒ&+…?†ÿÿ ÿèòÐ&ó+ˆÿÿ ÿéôÏ&þ?‡ÿÿ ÿèòÐ&%±óÿÿ ÿèñÍ&"'?ˆÿÿ ÿèòÐ&ó+‰ÿÿÿéôÏ&þ+Òÿÿ ÿèòÐ&ó+ŠÿÿÿéñÑ&+‹ÿÿ ÿèôÑ&"'?‰ÿÿÿæ÷Ï&+…,Yÿÿ ÿéôÏ&þ%pÿÿ ÿèöÏ&%g$æÿÿ ÿéñÑ&+ŒÿÿÿçöÐ&++¨ÿÿÿèòÐ&ó+Žÿÿ ÿéñÑ&,Zÿÿ ÿèòÐ&ó~ÿÿÿéôÏ&þ+ÿÿ ÿæñÏ&,[(zÿÿ ÿéîÐ&ÿfÿÿ ÿèîÑ&ÿÿÿçóÒ&ÿÿÿèîÑ&*%ÿÿÿêïÏ&·ÿÿ ÿéíÏ&‡sÿÿ ÿéîÏ&qfÿÿ ÿéîÏ&frÿÿÿêîÏ&+ÿÿÿèñÑ&,\*ìÿÿÿèïÏ&*{ÿÿÿéîÏ&+jÿÿÿêïÏ&nÿÿÿéîÏ&ftÿÿ ÿèôÔ&,]+“ÿÿÿéòÏ&lmÿÿÿéìÑ&+’?‹ÿÿÿéõÏ&D?ŒÿÿÿêïÏ&Ëÿÿ ÿéîÏ&fnÿÿ ÿéðÏ& & í?ÿÿ ÿêïÐ&‘ÿÿÿèïÏ&+“õÿÿ ÿèïÏ&&.ô?ŽÿÿÿêïÏ&+mÿÿÿéðÏ& !ÿÿÿéïÏ&+lÿÿ ÿéïÏ&&@ÿÿ ÿéïÏ&ò/}ÿÿ ÿéïÏ&~ÿÿÿéíÏ&ÿÿ ÿéñÑ&*ì+qÿÿ ÿéïÏ&/|/}ÿÿÿêïÏ&+rÿÿ ÿéïÐ&,"ÿÿ ÿêïÏ&+fÿÿ ÿéïÐ&+hÿÿÿèíÏ&+gÿÿÿéïÑ&+ÿÿ ÿéðÏ& ?ÿÿ ÿêïÏ&zÿÿ ÿéïÏ&4ÿÿÿèíÐ&!ÿÿ ÿéíÏ&!ÿÿ ÿéòÐ&D&01ÿÿÿêïÏ&+”ÿÿÿêïÑ&+uÿÿ ÿèïÐ&$°ÿÿ ÿéíÏ&,^ÿÿ ÿéíÐ&,#ÿÿ ÿéíÏ&Šÿÿ ÿéíÐ&‰ÿÿ ÿéíÏ&*íÿÿÿéñÓ&C&ADÿÿ ÿéñÑ&*ì!Ùÿÿ ÿéôÒ&ˆDÿÿ ÿéðÑ&$?ÿÿ ÿéõÐ&!Ø!×ÿÿ ÿéíÏ&~ÿÿÿéõÐ&tuÿÿÿé÷Ð&vtÿÿ ÿéòÏ&##ÿÿ ÿéõÑ&#+•ÿÿ ÿîóÏ& ù?‘ÿÿ ÿéòÏ&##ÿÿ ÿçïÒ&=¼ÿÿ ÿêòÑ&‡?“ÿÿ ÿçóÒ&¼½ÿÿ ÿçñÒ&‰ˆÿÿ ÿçòÒ&Š?”ÿÿ ÿçðÒ&+–?•ÿÿ ÿçóÒ&+–?–ÿÿ ÿçõÊ&èéÿÿ ÿçõÏ&†Œÿÿ ÿçôÒ&‹Šÿÿ ÿçïÒ&ëêÿÿ ÿçòÒ&ê?—ÿÿ ÿåïÒ&ê?˜ÿÿ ÿçõÒ&Š?™ÿÿ ÿèôÑ&+—+˜ÿÿ ÿçõÎ&é?šÿÿ ÿçòÒ&ê?›ÿÿ ÿçïÒ&ê?œÿÿ ÿçõÌ&Œ?ÿÿ ÿçõÒ&ê?žÿÿ ÿçôÒ&ê?Ÿÿÿ ÿçóÒ&ê? ÿÿ ÿçóÒ&$êÿÿ ÿçôÒ&ê?¡ÿÿ ÿéôÐ&%‹ÿÿÿéôÓ&$é?¢ÿÿ ÿäóÒ&%|$êÿÿ ÿæöÔ&"U&"S"Tÿÿ ÿéóÏ&ÂÃÿÿ ÿèõÐ&ô&¿¾ÿÿ ÿèõÏ&ôÀÿÿ ÿèñÏ&Áôÿÿ ÿèóÑ&õôÿÿ ÿèòÏ&ô"Vÿÿ ÿèôÏ&ÛÜÿÿ ÿèïÏ&Ü ÿÿ ÿèóÏ&ÜÝÿÿ ÿèðÑ&Ü"Qÿÿ ÿéóÐ&"O"Pÿÿ ÿèõÐ&"NÀÿÿ ÿèïÏ&  ÿÿ ÿèóÏ& Ýÿÿ ÿèõÐ&Ç&FGÿÿ ÿéõÐ&Ç?£ÿÿ ÿéõÐ&Ç?¤ÿÿ ÿéõÑ&$?¥ÿÿ ÿéõÑ&$?¦ÿÿ ÿéõÑ&$?§ÿÿ ÿæòÑ&$?¨ÿÿ ÿéóÏ&+™+šÿÿÿèëÑ&+?«ÿÿ ÿçòÑ&,V?¬ÿÿ ÿéòÐ&+œ)‰ÿÿ ÿéðÑ&"Q+›ÿÿ ÿêóÏ&)ˆöÿÿ ÿèöÑ&ö)‡ÿÿ ÿéõÏ&o%1ÿÿ ÿéöÈ&o?®ÿÿ ÿèôÐ&]öÿÿ ÿèõÎ&t?¯ÿÿ ÿèñÏ&o)ŠÿÿÿæòÒ&-¼)‹ÿÿ ÿêïÏ&*oÿÿ ÿéñÐ&*& 2?°ÿÿ ÿéóÏ&Ooÿÿ ÿèïÏ&oÿÿ ÿéóÏ&foÿÿ ÿèõÑ& 0eÿÿ ÿêùÏ& 2 3ÿÿÿéòÐ&caÿÿÿéöÏ&+ cÿÿ ÿéòÏ&,J+žÿÿÿéòÏ&,_+žÿÿ ÿèöÏ&!Ûoÿÿÿé÷Ò&cPÿÿ ÿêòÈ& 1 0ÿÿÿèôÏ&!ïcÿÿ ÿêòÎ& 0!Üÿÿ ÿéóÑ&!Ú 0ÿÿ ÿèóÏ& 0+Ÿÿÿ ÿèõÐ& 2!ÝÿÿÿéòÍ&+¡,`ÿÿ ÿèõÐ&ù&?±ÿÿÿéóÐ&*’cÿÿÿéóÏ&cÿÿ ÿéôÏ&1*”ÿÿ ÿçòÐ&1*“ÿÿ ÿéóÐ&10ÿÿ ÿéõË& ó ôÿÿÿéõÏ&+ñ& ô?µÿÿÿéøÐ&+òýÿÿ ÿêôÈ&+¢+£ÿÿ ÿéøÐ&,LýÿÿÿéøÑ&ýüÿÿÿéöË&þ&ÿ?¶ÿÿ ÿéöÐ&.ÿÿÿëõË& ö õÿÿÿéøÌ&+¤?·ÿÿÿèíÈ&('ÿÿ ÿèðÌ&#$ÿÿ ÿèëÐ&%&ÿÿÿèôÑ&]Xÿÿ ÿêõÐ&ZYÿÿÿèôÐ&-¾Uÿÿ ÿèôÑ&]?¸ÿÿÿèôÑ&]0Xÿÿ ÿèóÒ&-½[ÿÿ ÿéôÒ&[?¹ÿÿ ÿèóÒ&"‰[ÿÿ ÿìóÒ&[\ÿÿÿéôÌ&÷*”ÿÿÿèôÐ&]÷ÿÿÿéõÍ&÷+¥ÿÿÿçòÐ&÷"ÿÿÿÿéõÏ&÷+¦ÿÿÿéìÐ&÷2ÿÿÿéóÎ&÷%LÿÿÿéîÌ&÷!:ÿÿÿéíÏ&÷øÿÿÿçóÐ&!9!8ÿÿÿèöÌ&÷!7ÿÿÿéòÌ&÷!5ÿÿÿéðÍ&nðÿÿÿéóÏ&÷!6ÿÿÿéôÌ&÷!!ÿÿÿéôÍ&n!4ÿÿÿéñÍ&n#ÃÿÿÿéóÏ&lnÿÿÿçõÐ&"l$çÿÿÿçôÐ&*³nÿÿÿçôÐ&"l*´ÿÿÿéôÌ&÷$üÿÿ ÿéøÐ&,àÿÿ ÿéòÐ&43ÿÿ ÿéõÐ&,+ÿÿ ÿéìÐ&,2ÿÿ ÿé÷Ð&,1ÿÿ ÿèðÐ&,0ÿÿ ÿéõÐ&,"kÿÿ ÿéôÐ&,/ÿÿ ÿèôÐ&+.ÿÿ ÿçôÐ&-,ÿÿ ÿéôÐ&+*ÿÿ ÿéòÒ&º?ºÿÿ ÿéòÒ&º?»ÿÿ ÿëóÒ&Œ&º?¼ÿÿ ÿçôÒ&º?½ÿÿ ÿæóÒ&º?¾ÿÿ ÿèöÐ&?¿ÿÿ ÿèöÐ&Á?ÀÿÿÿéñÏ&úùÿÿÿéõÐ&NùÿÿÿéñÏ&N'•ÿÿÿéóÏ&'—NÿÿÿèõÏ&«Nÿÿ ÿéóÑ&õOÿÿ ÿéóÏ&'–Oÿÿ ÿéùÏ&POÿÿ ÿéòÐ&0õOÿÿÿéòÏ&&·NÿÿÿéîÏ&N'˜ÿÿ ÿèðÏ&!ÌOÿÿÿçõÏ&eNÿÿ ÿçõÐ&feÿÿÿéìÐ&2Nÿÿ ÿëõÒ&õôÿÿÿç÷Ð&)NÿÿÿéõÏ&Nÿÿ ÿçóÏ& !ÿÿ ÿéòÏ&'™Oÿÿ ÿéðÏ&åOÿÿ ÿéòÏ&O!5ÿÿ ÿéóÐ&O'šÿÿ ÿçöÏ& aÿÿ ÿéõÏ&*Oÿÿ ÿèôÏ&ÿÿÿ ÿéðÏ&-¿Oÿÿ ÿèõÏ&!éOÿÿ ÿéïÏ& ~Oÿÿ ÿéóÏ&O"Ôÿÿ ÿéôÏ&O#Üÿÿ ÿéôÏ&$NOÿÿ ÿéòÓ&##ÿÿ ÿéðÏ&+§ÿÿ ÿèóÏ&+Ÿÿÿ ÿêóÏ&*?Áÿÿ ÿéóÐ&*?Âÿÿ ÿéñÏ&+Ýúÿÿ ÿéîÎ&R*ÿÿ ÿèöÐ&dgÿÿ ÿéóÐ&ûRÿÿ ÿèðÎ&!ÌRÿÿ ÿéùÎ&PRÿÿ ÿèôÎ&QRÿÿ ÿéòÎ&R!5ÿÿ ÿéòÎ&R'™ÿÿ ÿéðÎ&R-¿ÿÿ ÿéòÐ&g#Ýÿÿ ÿéóÐ&rÇÿÿ ÿéöÐ&¯-Àÿÿ ÿé÷Ò&s7ÿÿ ÿç÷Ò&¸sÿÿ ÿë÷Ô&ì+©ÿÿÿêöÐ&+¨?ÃÿÿÿçóÏ&@?ÿÿÿèóÑ&íAÿÿÿéöÐ&û<ÿÿ ÿéóÑ&+ª+«ÿÿ ÿéóÏ&#Ö#Õÿÿ ÿéòÑ& Ï+«ÿÿÿëöÎ&˜UÿÿÿëõÎ&®&\ xÿÿÿëõÎ&®&[ ›ÿÿÿéõÎ&®&[ °ÿÿÿðöÎ&£&X »ÿÿÿéõÎ&®&[ ÚÿÿÿçõÎ&¹&a ïÿÿÿìõÎ&®&[ ÿÿÿíõÎ&®&[ ÿÿÿëõÎ&¹&a .ÿÿÿíõÎ&¹&a CÿÿÿñõÎ&¹&a XÿÿÿìõÎ&¹&a mÿÿÿíõÎ&¹&a ‚ÿÿÿíõÎ&¹&a —ÿÿÿëõÎ&¹&a ¬ÿÿÿïõÎ&®&[ ÁÿÿÿîõÎ&®&[ ÖÿÿÿêõÎ&¹&a ëÿÿÿèöÎ&®&^ ÿÿÿéõÎ&®&[ ÿÿÿçöÎ&®&^ *ÿÿÿçõÎ&®&[ 1ÿÿÿçõÎ&¹&[ TÿÿÿëõÎ&®&[ iÿÿÿìõÎ&¹&a ~ÿÿÿíõÎ&®&[ “ÿÿÿçõÎ&¹&[ ¨ÿÿ ÿëÐÎ&šdÿÿ ÿëÐÎ&°&j ˆÿÿ ÿëÐÎ&°&j ÿÿ ÿéìÎ&°&j ²ÿÿ ÿíÚÎ&¥&g Çÿÿ ÿéãÎ&°&j Üÿÿ ÿçßÎ&»&p ñÿÿ ÿìÕÎ&°&j ÿÿ ÿíÕÎ&»&p ÿÿ ÿëÐÎ&»&p 0ÿÿ ÿíÐÎ&»&p Eÿÿ ÿìÐÎ&»&p Zÿÿ ÿìéÎ&»&p oÿÿ ÿíÔÎ&»&p „ÿÿ ÿíÕÎ&»&p ™ÿÿ ÿëÛÎ&»&p ®ÿÿ ÿïÐÎ&°&j Ãÿÿ ÿîÐÎ&°&j Øÿÿ ÿêìÎ&»&p íÿÿ ÿèåÎ&°&m ÿÿ ÿééÎ&°&j ÿÿ ÿçÔÎ&°&m ,ÿÿ ÿçÞÎ&°&j Aÿÿ ÿçÞÎ&»&j Vÿÿ ÿëÐÎ&°&j kÿÿ ÿìÕÎ&»&p €ÿÿ ÿíØÎ&°&j •ÿÿ ÿçÜÎ&»&j ªÿÿÿëöÎ&˜sÿÿÿëöÎ&®&y †ÿÿÿëöÎ&®&y ›ÿÿÿéöÎ&®&y °ÿÿÿíöÎ&£&v ÅÿÿÿéöÎ&®&y ÚÿÿÿçöÎ&¹& ïÿÿÿìöÎ&®&y ÿÿÿíöÎ&¹& ÿÿÿëöÎ&¹& .ÿÿÿíöÎ&¹& CÿÿÿñöÎ&¹& XÿÿÿìöÎ&¹& mÿÿÿíöÎ&¹& ‚ÿÿÿíöÎ&¹& —ÿÿÿëöÎ&¹& ¬ÿÿÿïöÎ&®&y ÁÿÿÿîöÎ&®&y ÖÿÿÿêöÎ&¹& ëÿÿÿèöÎ&®&| ÿÿÿéöÎ&®&y ÿÿÿçöÎ&®&| *ÿÿÿçöÎ&®&y ?ÿÿÿçöÎ&¹&y TÿÿÿëöÎ&®&y iÿÿÿìöÎ&¹& ~ÿÿÿíöÎ&®&y “ÿÿÿçöÎ&¹&y ¨ÿÿ ÿëÐÎ&š‚ÿÿ ÿëÐÎ&°&ˆ ˆÿÿ ÿëÐÎ&°&ˆ ÿÿ ÿéìÎ&°&ˆ ²ÿÿ ÿíÚÎ&¥&… Çÿÿ ÿéãÎ&°&ˆ Üÿÿ ÿçßÎ&»&Ž ñÿÿ ÿìÕÎ&°&ˆ ÿÿ ÿíÕÎ&»&Ž ÿÿ ÿëÐÎ&»&Ž 0ÿÿ ÿíÐÎ&»&Ž Eÿÿ ÿìÐÎ&»&Ž Zÿÿ ÿìéÎ&»&Ž oÿÿ ÿíÔÎ&»&Ž „ÿÿ ÿíÕÎ&»&Ž ™ÿÿ ÿëÛÎ&»&Ž ®ÿÿ ÿïÐÎ&°&ˆ Ãÿÿ ÿîÐÎ&°&ˆ Øÿÿ ÿêìÎ&»&Ž íÿÿ ÿèåÎ&°&‹ ÿÿ ÿééÎ&°&ˆ ÿÿ ÿçÔÎ&°&‹ ,ÿÿ ÿçÞÎ&°&ˆ Aÿÿ ÿçÞÎ&»&ˆ Vÿÿ ÿëÐÎ&°&ˆ kÿÿ ÿìÕÎ&»&Ž €ÿÿ ÿíØÎ&°&ˆ •ÿÿ ÿçÜÎ&»&ˆ ªÿÿ ÿëÐÎ&™‘ÿÿ ÿëÐÎ&¯&¤ ‡ÿÿ ÿëÐÎ&¯&¤ œÿÿ ÿéìÎ&¯&¤ ±ÿÿÿðÕÎ&›& ¸£ÿÿ ÿéãÎ&¯&¤ Ûÿÿ ÿçßÎ&º&® ðÿÿ ÿìÕÎ&¯&¤ ÿÿ ÿíÕÎ& &¯¤ÿÿ ÿëÐÎ&º&® /ÿÿ ÿíÐÎ&º&® Dÿÿ ÿìÐÎ&º&® Yÿÿ ÿìéÎ&º&® nÿÿ ÿíÔÎ&º&® ƒÿÿ ÿíÕÎ&º&® ˜ÿÿ ÿëÛÎ&º&® ­ÿÿ ÿïÐÎ&¯&¤ Âÿÿ ÿîÐÎ&¯&¤ ×ÿÿ ÿêìÎ&º&® ìÿÿ ÿèãÎ&¸& ó¤ÿÿ ÿééÎ&¯&¤ ÿÿ ÿçÔÎ&¯&¸ +ÿÿ ÿçÞÎ&¯&¤ @ÿÿ ÿçÞÎ&º&® Uÿÿ ÿëÐÎ&¯&¤ jÿÿ ÿìÕÎ&º&® ÿÿ ÿíØÎ&¯&¤ ”ÿÿ ÿçÖÎ&º&® ©ÿÿ ÿëÐÎ&šÂÿÿ ÿëÐÎ&°&Ô ˆÿÿ ÿëÐÎ&°&Ô ÿÿ ÿéìÎ&°&Ô ²ÿÿ ÿíÚÎ&¥&Ê Çÿÿ ÿéãÎ&°&Ô Üÿÿ ÿçßÎ&»&Þ ñÿÿ ÿìÕÎ&°&Ô ÿÿ ÿíÕÎ&»&Þ ÿÿ ÿëÐÎ&»&Þ 0ÿÿ ÿíÐÎ&»&Þ Eÿÿ ÿìÐÎ&»&Þ Zÿÿ ÿìéÎ&»&Þ oÿÿ ÿíÔÎ&»&Þ „ÿÿ ÿíÕÎ&»&Þ ™ÿÿ ÿëÛÎ&»&Þ ®ÿÿ ÿïÐÎ&°&Ô Ãÿÿ ÿîÐÎ&°&Ô Øÿÿ ÿêìÎ&»&Þ íÿÿ ÿèåÎ&°&è ÿÿ ÿééÎ&Ý&° ÿÿ ÿçÔÎ&°&è ,ÿÿ ÿçÞÎ&°&Ô Aÿÿ ÿçÞÎ&»&Þ Vÿÿ ÿëÐÎ&°&Ô kÿÿ ÿìÕÎ&»&Þ €ÿÿ ÿíØÎ&°&Ô •ÿÿ ÿçÜÎ&»&Þ ªÿÿ ÿëÐÎ&™òÿÿ ÿëÐÎ&¯& ‡ ÿÿ ÿëÐÎ&¯&  œÿÿ ÿéìÎ&¯&  ±ÿÿ ÿðÕÎ&ü& ¸¤ÿÿ ÿéãÎ&¯&  Ûÿÿ ÿçßÎ&º&  ðÿÿ ÿìÕÎ&¯&  ÿÿ ÿíÕÎ&¯&  ÿÿ ÿëÐÎ&º&  /ÿÿ ÿíÐÎ&º&  Dÿÿ ÿìÐÎ&º&  Yÿÿ ÿìéÎ&º&  nÿÿ ÿíÔÎ&º&  ƒÿÿ ÿíÕÎ&º&  ˜ÿÿ ÿëÛÎ&º&  ­ÿÿ ÿïÐÎ&¯&  Âÿÿ ÿîÐÎ&¯&  ×ÿÿ ÿêìÎ&º&  ìÿÿ ÿèäÎ&¯&  ÿÿ ÿééÎ&¯&  ÿÿ ÿçÔÎ& &¯ +ÿÿ ÿçÞÎ&¯&  @ÿÿ ÿçÞÎ&º&  Uÿÿ ÿëÐÎ&¯&  jÿÿ ÿìÕÎ&º&  ÿÿ ÿíØÎ&¯&  ”ÿÿ ÿçÖÎ&º&  ©ÿÿ ÿëÐÎ&š !ÿÿ ÿëÐÎ&°& 5 ˆÿÿ ÿëÐÎ&°& 5 ÿÿ ÿéìÎ&°& 5 ²ÿÿ ÿíÚÎ&¥& + Çÿÿ ÿéãÎ&°& 5 Üÿÿ ÿçßÎ&»& ? ñÿÿ ÿìÕÎ&°& 5 ÿÿ ÿíÕÎ&»& ? ÿÿ ÿëÐÎ&»& ? 0ÿÿ ÿíÐÎ&»& ? Eÿÿ ÿìÐÎ&»& ? Zÿÿ ÿìéÎ&»& ? oÿÿ ÿíÔÎ&»& ? „ÿÿ ÿíÕÎ&»& ? ™ÿÿ ÿëÛÎ&»& ? ®ÿÿ ÿïÐÎ&°& 5 Ãÿÿ ÿîÐÎ&°& 5 Øÿÿ ÿêìÎ&»& ? íÿÿ ÿèåÎ&°& I ÿÿ ÿééÎ&°& 5 ÿÿ ÿçÔÎ&°& I ,ÿÿ ÿçÞÎ&°& 5 Aÿÿ ÿçÞÎ&»& ? Vÿÿ ÿëÐÎ&°& 5 kÿÿ ÿìÕÎ&»& ? €ÿÿ ÿíØÎ&°& 5 •ÿÿ ÿçÜÎ&»& ? ªÿÿ ê½&› SÿÿÿëêÉ&±& d ‰ÿÿÿëêÉ&±& d žÿÿÿéêÉ&±& d ³ÿÿÿíêÉ&¦& [ ÈÿÿÿéêÉ&±& d ÝÿÿÿçêÉ&¼& n òÿÿÿíêÉ&±& d ÿÿÿíêÉ&¼& n ÿÿÿìêÉ&¼& n 1ÿÿÿíêÉ&¼& n FÿÿÿíêÉ&¼& n [ÿÿÿìêÉ&¼& n pÿÿÿìêÉ&¼& n …ÿÿÿíêÉ&¼& n šÿÿÿëêÉ&¼& n ¯ÿÿÿïêÉ&±& d ÄÿÿÿîêÉ&±& d ÙÿÿÿêìÉ&¼& n îÿÿÿèêÉ& õ& d¼ÿÿÿéêÉ&±& d ÿÿÿçêÉ&¼& d -ÿÿÿçêÉ&±& d BÿÿÿçêÉ&¼& n WÿÿÿëêÉ&±& d lÿÿÿìêÉ&¼& n ÿÿÿíêÉ&±& d –ÿÿÿçêÉ&¼& n «ÿÿÿëöÎ& ÿÿÿëöÎ&³& • ŠÿÿÿëöÎ&³& • ŸÿÿÿêöÎ&³& • ´ÿÿÿðöÎ& ‹&¨ »ÿÿÿéöÎ&³& • ÞÿÿÿçöÎ&¾& Ÿ óÿÿÿìöÎ&³& • ÿÿÿíöÎ&¾& Ÿ ÿÿÿëöÎ&¾& Ÿ 2ÿÿÿîöÎ&¾& Ÿ GÿÿÿîöÎ&¾& Ÿ \ÿÿÿìöÎ&¾& Ÿ qÿÿÿíöÎ&¾& Ÿ †ÿÿÿíöÎ&¾& Ÿ ›ÿÿÿéöÎ&¾& Ÿ °ÿÿÿïöÎ&³& • ÅÿÿÿîöÎ&³& • ÚÿÿÿêöÎ&¾& Ÿ ïÿÿÿçöÎ&³& © ÿÿÿéöÎ&³& • ÿÿÿçöÎ&³& © .ÿÿÿçöÎ&³& • CÿÿÿçöÎ&¾& Ÿ XÿÿÿëöÎ&³& • mÿÿÿìöÎ&¾& Ÿ ‚ÿÿÿíöÎ&³& • —ÿÿÿçöÎ&¾& Ÿ ¬ÿÿÿëÐÎ&Ÿ ³ÿÿÿëÐÎ&µ& Ç ŠÿÿÿëÐÎ&µ& Ç ŸÿÿÿêëÎ&µ& Ç ´ÿÿÿíÚÎ&ª& ½ ÉÿÿÿéãÎ&µ& Ç ÞÿÿÿçßÎ&À& Ñ óÿÿÿìÕÎ&µ& Ç ÿÿÿíÕÎ&À& Ñ ÿÿÿëÐÎ&À& Ñ 2ÿÿÿîÐÎ&À& Ñ GÿÿÿîÐÎ&À& Ñ \ÿÿÿììÎ&À& Ñ qÿÿÿíÔÎ&À& Ñ †ÿÿÿíÕÎ&À& Ñ ›ÿÿÿéÛÎ&À& Ñ °ÿÿÿïÐÎ&µ& Ç ÅÿÿÿîÐÎ&µ& Ç ÚÿÿÿêìÎ&À& Ñ ïÿÿÿçåÎ&µ& Û ÿÿÿééÎ&µ& Ç ÿÿÿçÔÎ&µ& Û .ÿÿÿçâÎ&µ& Ç CÿÿÿçâÎ&À& Ñ XÿÿÿëÐÎ&µ& Ç mÿÿÿìÕÎ&À& Ñ ‚ÿÿÿíØÎ&µ& Ç —ÿÿÿçÜÎ&À& Ñ ¬ÿÿÿëÐÎ& åÿÿÿëÐÎ&³& ø ŠÿÿÿëÐÎ&³& ø ŸÿÿÿêëÎ&³& ø ´ÿÿÿíÚÎ&¨& î ÉÿÿÿéãÎ&³& ø ÞÿÿÿçßÎ&¾&  óÿÿÿìÕÎ&³& ø ÿÿÿíÕÎ&¾&  ÿÿÿëÐÎ&¾&  2ÿÿÿîÐÎ&¾&  GÿÿÿîÐÎ&¾&  \ÿÿÿììÎ&¾&  qÿÿÿíÔÎ&¾&  †ÿÿÿíÕÎ&¾&  ›ÿÿÿéÛÎ&¾&  °ÿÿÿïÐÎ&³& ø ÅÿÿÿîÐÎ&³& ø ÚÿÿÿêìÎ&¾&  ïÿÿÿçåÎ&³&  ÿÿÿééÎ&³& ø ÿÿÿçÔÎ&³&  .ÿÿÿçâÎ&³& ø CÿÿÿçâÎ&¾&  XÿÿÿëÐÎ&³& ø mÿÿÿìÕÎ&¾&  ‚ÿÿÿíØÎ&³& ø —ÿÿÿçÜÎ&¾&  ¬ÿÿ ë½&› ÿÿÿëëÉ&±& * ‰ÿÿÿëëÉ&±& * žÿÿÿéëÉ&±& * ³ÿÿÿíëÉ&¦&  ÈÿÿÿéëÉ&±& * ÝÿÿÿçëÉ&¼& 4 òÿÿÿíëÉ&±& * ÿÿÿíëÉ&¼& 4 ÿÿÿìëÉ&¼& 4 1ÿÿÿíëÉ&¼& 4 FÿÿÿíëÉ&¼& 4 [ÿÿÿìëÉ&¼& 4 pÿÿÿìëÉ&¼& 4 …ÿÿÿíëÉ&¼& 4 šÿÿÿëëÉ&¼& 4 ¯ÿÿÿïëÉ&±& * ÄÿÿÿîëÉ&±& * ÙÿÿÿêìÉ&¼& 4 îÿÿÿèëÉ&±& > ÿÿÿéëÉ&±& * ÿÿÿçëÉ&±& > -ÿÿÿçëÉ&±& * BÿÿÿçëÉ&¼& 4 WÿÿÿëëÉ&±& * lÿÿÿìëÉ&¼& 4 ÿÿÿíëÉ&±& * –ÿÿÿçëÉ&¼& 4 «ÿÿÿëëÉ& HœÿÿÿëëÉ& ‰&² SÿÿÿëëÉ&²& S žÿÿÿéëÉ&²& S ³ÿÿÿíëÉ&§& N ÈÿÿÿéëÉ&²& S ÝÿÿÿçëÉ&½& h òÿÿÿïëÊ& U& ùÂÿÿÿíëÉ&½& h ÿÿÿìëÉ&½& h 1ÿÿÿíëÉ&½& h FÿÿÿíëÉ&½& h [ÿÿÿìëÉ&½& h pÿÿÿìëÉ&½& h …ÿÿÿíëÉ&½& h šÿÿÿëëÉ&½& h ¯ÿÿÿïëÉ&²& S ÄÿÿÿîëÉ&²& S ÙÿÿÿêìÉ&½& h îÿÿÿèëÉ&²& a ÿÿÿéëÉ&²& S ÿÿÿçëÉ& & U²ÿÿÿçëÉ&²& S BÿÿÿçëÉ&½& Z WÿÿÿëëÉ&²& S lÿÿÿìëÉ&½& h ÿÿÿíëÉ&²& S –ÿÿÿçëÉ&½& Z «ÿÿÿëÐÎ&ž oÿÿÿëÐÎ&´& } ŒÿÿÿëÐÎ&´& } ¡ÿÿÿéìÎ&´& } ¶ÿÿÿíÚÎ& v& Ë´ÿÿÿéãÎ&´& } àÿÿÿçßÎ&¿& ’ õÿÿÿìÕÎ&´& } ÿÿÿíÕÎ&¿& ’ ÿÿÿëÐÎ&¿& ’ 4ÿÿÿîÐÎ&¿& ’ IÿÿÿîÐÎ&¿& ’ ^ÿÿÿìéÎ&¿& ’ sÿÿÿíÔÎ&¿& ’ ˆÿÿÿíÕÎ&¿& ’ ÿÿÿèÛÎ&¿& ’ ²ÿÿÿïÐÎ&´& } ÇÿÿÿîÐÎ&´& } ÜÿÿÿêìÎ&¿& ’ ñÿÿÿçåÎ&´& ‹ ÿÿÿééÎ&´& } ÿÿÿçÔÎ&´& ‹ 0ÿÿÿçÞÎ&´& } EÿÿÿçßÎ&¿& „ ZÿÿÿëÐÎ&´& } oÿÿÿìÕÎ&¿& ’ „ÿÿÿíØÎ&´& } ™ÿÿÿçÜÎ&¿& „ ®ÿÿÿëÐÎ&  ™ÿÿÿëÐÎ&¶& § ŒÿÿÿëÐÎ&¶& § ¡ÿÿÿéìÎ&¶& § ¶ÿÿÿíÚÎ&«&   ËÿÿÿéãÎ&¶& § àÿÿÿçßÎ&Á& ¼ õÿÿÿìÕÎ&¶& § ÿÿÿíÕÎ&Á& ¼ ÿÿÿëÐÎ&Á& ¼ 4ÿÿÿîÐÎ&Á& ¼ IÿÿÿîÐÎ&Á& ¼ ^ÿÿÿìéÎ&Á& ¼ sÿÿÿíÔÎ&Á& ¼ ˆÿÿÿíÕÎ&Á& ¼ ÿÿÿèÛÎ&Á& ¼ ²ÿÿÿïÐÎ&¶& § ÇÿÿÿîÐÎ&¶& § ÜÿÿÿêìÎ&Á& ¼ ñÿÿÿçåÎ&¶& µ ÿÿÿééÎ&¶& § ÿÿÿçÔÎ&¶& µ 0ÿÿÿçÞÎ&¶& § EÿÿÿçßÎ&Á& ® ZÿÿÿëÐÎ&¶& § oÿÿÿìÕÎ&Á& ¼ „ÿÿÿíØÎ&¶& § ™ÿÿÿçÜÎ&Á& ® ®ÿÿÿëÐÎ&ž ÃÿÿÿëÐÎ&´& Ñ ‹ÿÿÿëÐÎ&´& Ñ  ÿÿÿêëÎ&´& Ñ µÿÿÿíÚÎ&©& Ê ÊÿÿÿéãÎ&´& Ñ ßÿÿÿçßÎ&¿& æ ôÿÿÿìÕÎ&´& Ñ ÿÿÿíÕÎ&¿& æ ÿÿÿëÐÎ&¿& æ 3ÿÿÿîÐÎ&¿& æ HÿÿÿîÐÎ&¿& æ ]ÿÿÿìéÎ&¿& æ rÿÿÿíÔÎ&¿& æ ‡ÿÿÿíÕÎ&¿& æ œÿÿÿëÛÎ&¿& æ ±ÿÿÿïÐÎ&´& Ñ ÆÿÿÿîÐÎ&´& Ñ ÛÿÿÿêìÎ&¿& æ ðÿÿÿçåÎ&´& ß ÿÿÿééÎ&´& Ñ ÿÿÿçÔÎ&´& ß /ÿÿÿçÞÎ&´& Ñ DÿÿÿçßÎ&¿& Ø YÿÿÿëÐÎ&´& Ñ nÿÿÿìÕÎ&¿& æ ƒÿÿÿíØÎ&´& Ñ ˜ÿÿÿç×Î&¿& Ø ­ÿÿÿíëÉ&œ íÿÿÿëëÉ&²& û ‰ÿÿÿëëÉ&²& û žÿÿÿéëÉ&²& û ³ÿÿÿíëÉ&§& ô ÈÿÿÿéëÉ&²& û ÝÿÿÿçëÉ&½&  òÿÿÿíëÉ&²& û ÿÿÿíëÉ&½&  ÿÿÿìëÉ&½&  1ÿÿÿíëÉ&½&  FÿÿÿíëÉ&½&  [ÿÿÿìëÉ&½&  pÿÿÿìëÉ&½&  …ÿÿÿíëÉ&½&  šÿÿÿëëÉ&½&  ¯ÿÿÿïëÉ&²& û ÄÿÿÿîëÉ&²& û ÙÿÿÿêìÉ&½&  îÿÿÿèëÉ&²&  ÿÿÿéëÉ&²& û ÿÿÿçëÉ&²&  -ÿÿÿçëÉ&²& û BÿÿÿçëÉ&½&  WÿÿÿëëÉ&²& û lÿÿÿìëÉ&½&  ÿÿÿíëÉ&²& û –ÿÿÿçëÉ&½&  «ÿÿ ë½&¡ ÿÿÿëëÉ&§& $ ‰ÿÿÿëëÉ&·& $ žÿÿÿéëÉ&·& $ ³ÿÿÿíëÊ& È&¬ &ÿÿÿéëÉ&·& $ ÝÿÿÿçëÊ&Â& 9 òÿÿÿíëÉ&·& $ ÿÿÿíëÊ&Â& 9 ÿÿÿìëÊ&Â& 9 1ÿÿÿíëÊ&Â& 9 FÿÿÿíëÊ&Â& 9 [ÿÿÿìëÊ&Â& 9 pÿÿÿìëÊ&Â& 9 …ÿÿÿíëÊ&Â& 9 šÿÿÿëëÊ&Â& 9 ¯ÿÿÿïëÊ& $& ÄÿÿÿîëÉ&·& $ ÙÿÿÿêìÊ&Â& 9 îÿÿÿèëÉ&·& 2 ÿÿÿéëÉ&·& $ ÿÿÿçëÉ&·& 2 -ÿÿÿçëÉ&·& $ BÿÿÿçëÊ&Â& + WÿÿÿëëÉ&·& $ lÿÿÿìëÊ&Â& 9 ÿÿÿíëÉ&·& $ –ÿÿÿçëÊ&Â& + «ÿÿÿëÐÎ&¢ @ÿÿÿëÐÎ&¸& M ŠÿÿÿëÐÎ&¸& M ŸÿÿÿêëÎ&¸& M ´ÿÿÿíÚÎ&­& F ÉÿÿÿéãÎ&¸& M ÞÿÿÿçßÎ&Ã& b óÿÿÿìÕÎ&¸& M ÿÿÿíÕÎ&Ã& b ÿÿÿëÐÎ&Ã& b 2ÿÿÿîÐÎ&Ã& b GÿÿÿîÐÎ&Ã& b \ÿÿÿììÎ&Ã& b qÿÿÿíÔÎ&Ã& b †ÿÿÿíÕÎ&Ã& b ›ÿÿÿéÛÎ&Ã& b °ÿÿÿïÐÎ&¸& M ÅÿÿÿîÐÎ&¸& M ÚÿÿÿêìÎ&Ã& b ïÿÿÿçåÎ&¸& [ ÿÿÿééÎ&¸& M ÿÿÿçÔÎ&¸& [ .ÿÿÿçâÎ&¸& M CÿÿÿçâÎ&Ã& T XÿÿÿëÐÎ&¸& M mÿÿÿìÕÎ&Ã& b ‚ÿÿÿíØÎ&¸& M —ÿÿÿçÜÎ&Ã& T ¬ÿÿÿëÐÎ&˜ iÿÿÿëÐÎ&®& o ‡ÿÿÿëÐÎ&®& o œÿÿÿéìÎ&®& o ±ÿÿÿðÕÎ& l&£ »ÿÿÿéãÎ&®& o ÛÿÿÿçßÎ&¹& u ðÿÿÿìÕÎ&®& o ÿÿÿíÕÎ&¹& u ÿÿÿëÐÎ&¹& u /ÿÿÿíÐÎ&¹& u DÿÿÿìÐÎ&¹& u YÿÿÿìéÎ&¹& u nÿÿÿíÔÎ&¹& u ƒÿÿÿíÕÎ&¹& u ˜ÿÿÿëÛÎ&¹& u ­ÿÿ ÿïÐÎ&¯& p ÂÿÿÿîÐÎ&®& o ×ÿÿÿêìÎ&¹& u ìÿÿÿèäÎ&®& r ÿÿÿééÎ&®& o ÿÿÿçÔÎ&®& r +ÿÿÿçÞÎ&®& o @ÿÿÿçÞÎ&¹& o UÿÿÿëÐÎ&®& o jÿÿÿìÕÎ&¹& u ÿÿÿíØÎ&®& u ”ÿÿÿçÖÎ&¹& o ©ÿÿÿëöÎ&VÄÿÿÿëõÎ&Ú&\ †ÿÿÿëõÎ&Ú&\ ›ÿÿÿéõÎ&Ú&\ °ÿÿÿíöÎ&Ï&Y ÅÿÿÿéõÎ&Ú&\ ÚÿÿÿçõÎ&å&b ïÿÿÿìõÎ&Ú&\ ÿÿÿíõÎ&å&b ÿÿÿëõÎ&å&b .ÿÿÿíõÎ&å&b CÿÿÿñõÎ&å&b XÿÿÿìõÎ&å&b mÿÿÿíõÎ&å&b ‚ÿÿÿíõÎ&å&b —ÿÿÿëõÎ&å&b ¬ÿÿÿïõÎ&Ú&\ ÁÿÿÿîõÎ&Ú&\ ÖÿÿÿêõÎ&å&b ëÿÿÿèõÎ&Ú&_ ÿÿÿéõÎ&Ú&\ ÿÿÿçõÎ&Ú&_ *ÿÿÿçõÎ&Ú&\ ?ÿÿÿçõÎ&å&\ TÿÿÿëõÎ&Ú&\ iÿÿÿìõÎ&å&b ~ÿÿÿíõÎ&Ú&\ “ÿÿÿçõÎ&å&\ ¨ÿÿ ÿëÑÎ&Æeÿÿ ÿëÐÎ&Ü&k ˆÿÿ ÿëÐÎ&Ü&k ÿÿ ÿéìÎ&Ü&k ²ÿÿÿíÚÎ&Ñ&h Çÿÿ ÿéãÎ&Ü&k Üÿÿ ÿçßÎ&ç&q ñÿÿ ÿìÕÎ&Ü&k ÿÿ ÿíÕÎ&ç&q ÿÿ ÿëÑÎ&ç&q 0ÿÿ ÿíÑÎ&ç&q Eÿÿ ÿìÑÎ&ç&q Zÿÿ ÿìéÎ&ç&q oÿÿ ÿíÔÎ&ç&q „ÿÿ ÿíÕÎ&ç&q ™ÿÿ ÿëÛÎ&ç&q ®ÿÿ ÿïÐÎ&Ü&k Ãÿÿ ÿîÐÎ&Ü&k Øÿÿ ÿêìÎ&ç&q íÿÿ ÿèåÍ&Ü&n ÿÿ ÿééÎ&Ü&k ÿÿ ÿçÔÍ&Ü&n ,ÿÿ ÿçÞÎ&Ü&k Aÿÿ ÿçÞÎ&ç&k Vÿÿ ÿëÐÎ&Ü&k kÿÿ ÿìÕÎ&ç&q €ÿÿ ÿíØÎ&Ü&k •ÿÿ ÿçÜÎ&ç&k ªÿÿÿëöÎ&ÄtÿÿÿëöÎ&Ú&z †ÿÿÿëöÎ&Ú&z ›ÿÿÿéöÎ&Ú&z °ÿÿÿíöÎ&Ï&w ÅÿÿÿéöÎ&Ú&z ÚÿÿÿçöÎ&å&€ ïÿÿÿìöÎ&Ú&z ÿÿÿíöÎ&å&€ ÿÿÿëöÎ&å&€ .ÿÿÿíöÎ&å&€ CÿÿÿñöÎ&å&€ XÿÿÿìöÎ&å&€ mÿÿÿíöÎ&å&€ ‚ÿÿÿíöÎ&å&€ —ÿÿÿëöÎ&å&€ ¬ÿÿÿïöÎ&Ú&z ÁÿÿÿîöÎ&Ú&z ÖÿÿÿêöÎ&å&€ ëÿÿÿèöÎ&Ú&} ÿÿÿéöÎ&Ú&z ÿÿÿçöÎ&Ú&} *ÿÿÿçöÎ&Ú&z ?ÿÿÿçöÎ&å&z TÿÿÿëöÎ&Ú&z iÿÿÿìöÎ&å&€ ~ÿÿÿíöÎ&Ú&z “ÿÿÿçöÎ&å&z ¨ÿÿ ÿëÐÎ&ƃÿÿ ÿëÐÎ&Ü&‰ ˆÿÿ ÿëÐÎ&Ü&‰ ÿÿ ÿéìÎ&Ü&‰ ²ÿÿÿíÚÎ&Ñ&† Çÿÿ ÿéãÎ&Ü&‰ Üÿÿ ÿçßÎ&ç& ñÿÿ ÿìÕÎ&Ü&‰ ÿÿ ÿíÕÎ&ç& ÿÿ ÿëÐÎ&ç& 0ÿÿ ÿíÐÎ&ç& Eÿÿ ÿìÐÎ&ç& Zÿÿ ÿìéÎ&ç& oÿÿ ÿíÔÎ&ç& „ÿÿ ÿíÕÎ&ç& ™ÿÿ ÿëÛÎ&ç& ®ÿÿ ÿïÐÎ&Ü&‰ Ãÿÿ ÿîÐÎ&Ü&‰ Øÿÿ ÿêìÎ&ç& íÿÿ ÿèåÎ&Ü&Œ ÿÿ ÿééÎ&Ü&‰ ÿÿ ÿçÔÎ&Ü&Œ ,ÿÿ ÿçÞÎ&Ü&‰ Aÿÿ ÿçÞÎ&ç&‰ Vÿÿ ÿëÐÎ&Ü&‰ kÿÿ ÿìÕÎ&ç& €ÿÿ ÿíØÎ&Ü&‰ •ÿÿ ÿçÜÎ&ç&‰ ªÿÿ ÿëÐÎ&Å’ÿÿ ÿëÐÎ&Û&¥ ‡ÿÿ ÿëÐÎ&Û&¥ œÿÿ ÿéìÎ&Û&¥ ±ÿÿ ÿíÚÎ&Ð&œ Æÿÿ ÿéãÎ&Û&¥ Ûÿÿ ÿçßÎ&æ&¯ ðÿÿ ÿìÕÎ&Û&¥ ÿÿ ÿíÕÎ&æ&¯ ÿÿ ÿëÐÎ&æ&¯ /ÿÿ ÿíÐÎ&æ&¯ Dÿÿ ÿìÐÎ&æ&¯ Yÿÿ ÿìéÎ&æ&¯ nÿÿ ÿíÔÎ&æ&¯ ƒÿÿ ÿíÕÎ&æ&¯ ˜ÿÿ ÿëÛÎ&æ&¯ ­ÿÿ ÿïÐÎ&Û&¥ Âÿÿ ÿîÐÎ&Û&¥ ×ÿÿ ÿêìÎ&æ&¯ ìÿÿ ÿèäÎ&Û&¹ ÿÿ ÿééÎ&Û&¥ ÿÿ ÿçÔÎ&Û&¹ +ÿÿ ÿçÞÎ&Û&¥ @ÿÿ ÿçÞÎ&æ&¯ Uÿÿ ÿëÐÎ&Û&¥ jÿÿ ÿìÕÎ&æ&¯ ÿÿ ÿíØÎ&Û&¥ ”ÿÿ ÿçÖÎ&æ&¯ ©ÿÿ ÿëÐÎ&ÃÆÿÿ ÿëÐÎ&Ü&Õ ˆÿÿ ÿëÐÎ&Ü&Õ ÿÿ ÿéìÎ&Ü&Õ ²ÿÿÿíÚÎ&Ñ&Ë Çÿÿ ÿéãÎ&Ü&Õ Üÿÿ ÿçßÎ&ç&ß ñÿÿ ÿìÕÎ&Ü&Õ ÿÿ ÿíÕÎ&ç&ß ÿÿ ÿëÐÎ&ç&ß 0ÿÿ ÿíÐÎ&ç&ß Eÿÿ ÿìÐÎ&ç&ß Zÿÿ ÿìéÎ&ç&ß oÿÿ ÿíÔÎ&ç&ß „ÿÿ ÿíÕÎ&ç&ß ™ÿÿ ÿëÛÎ&ç&ß ®ÿÿ ÿïÐÎ&Ü&Õ Ãÿÿ ÿîÐÎ&Ü&Õ Øÿÿ ÿêìÎ&ç&ß íÿÿ ÿèåÎ&Ü&é ÿÿ ÿééÎ&Ü&Õ ÿÿ ÿçÔÎ&Ü&é ,ÿÿ ÿçÞÎ&Ü&Õ Aÿÿ ÿçÞÎ&ç&ß Vÿÿ ÿëÐÎ&Ü&Õ kÿÿ ÿìÕÎ&ç&ß €ÿÿ ÿíØÎ&Ü&Õ •ÿÿ ÿçÜÎ&ç&ß ªÿÿ ÿëÐÎ&Åóÿÿ ÿëÐÎ&Û&  ‡ÿÿ ÿëÐÎ&Û&  œÿÿ ÿéìÎ&Û&  ±ÿÿ ÿíÚÎ&Ð&ý Æÿÿ ÿéãÎ&Û&  Ûÿÿ ÿçßÎ&æ&  ðÿÿ ÿìÕÎ&Û&  ÿÿ ÿíÕÎ&æ&  ÿÿ ÿëÐÎ&æ&  /ÿÿ ÿíÐÎ&æ&  Dÿÿ ÿìÐÎ&æ&  Yÿÿ ÿìéÎ&æ&  nÿÿ ÿíÔÎ&æ&  ƒÿÿ ÿíÕÎ&æ&  ˜ÿÿ ÿëÛÎ&æ&  ­ÿÿ ÿïÐÎ&Û&  Âÿÿ ÿîÐÎ&Û&  ×ÿÿ ÿêìÎ&æ&  ìÿÿ ÿèäÎ&Û&  ÿÿ ÿééÎ&Û&  ÿÿ ÿçÔÎ&Û&  +ÿÿ ÿçÞÎ&Û&  @ÿÿ ÿçÞÎ&æ&  Uÿÿ ÿëÐÎ&Û&  jÿÿ ÿìÕÎ&æ&  ÿÿ ÿíØÎ&Û&  ”ÿÿ ÿçÖÎ&æ&  ©ÿÿ ÿëÐÎ&Æ "ÿÿ ÿëÐÎ&Ü& 6 ˆÿÿ ÿëÐÎ&Ü& 6 ÿÿ ÿéìÎ&Ü& 6 ²ÿÿÿíÚÎ&Ñ& , Çÿÿ ÿéãÎ&Ü& 6 Üÿÿ ÿçßÎ&ç& @ ñÿÿ ÿìÕÎ&Ü& 6 ÿÿ ÿíÕÎ&ç& @ ÿÿ ÿëÐÎ&ç& @ 0ÿÿ ÿíÐÎ&ç& @ Eÿÿ ÿìÐÎ&ç& @ Zÿÿ ÿìéÎ&ç& @ oÿÿ ÿíÔÎ&ç& @ „ÿÿ ÿíÕÎ&ç& @ ™ÿÿ ÿëÛÎ&ç& @ ®ÿÿ ÿïÐÎ&Ü& 6 Ãÿÿ ÿîÐÎ&Ü& 6 Øÿÿ ÿêìÎ&ç& @ íÿÿ ÿèåÎ&Ü& J ÿÿ ÿééÎ&Ü& 6 ÿÿ ÿçÔÎ&Ü& J ,ÿÿ ÿçÞÎ&Ü& 6 Aÿÿ ÿçÞÎ&ç& @ Vÿÿ ÿëÐÎ&Ü& 6 kÿÿ ÿìÕÎ&ç& @ €ÿÿ ÿíØÎ&Ü& 6 •ÿÿ ÿçÜÎ&ç& @ ªÿÿ êÀ&Ç TÿÿÿëêÉ&Ý& e ‰ÿÿÿëêÉ&Ý& e žÿÿÿéêÉ&Ý& e ³ÿÿÿíêÉ&Ò& \ ÈÿÿÿéêÉ&Ý& e ÝÿÿÿçêÉ&è& o òÿÿÿíêÉ&Ý& e ÿÿÿíêÉ&è& o ÿÿÿìêÉ&è& o 1ÿÿÿíêÉ&è& o FÿÿÿíêÉ&è& o [ÿÿÿìêÉ&è& o pÿÿÿìêÉ&è& o …ÿÿÿíêÉ&è& o šÿÿÿëêÉ&è& o ¯ÿÿÿïêÉ&Ý& e ÄÿÿÿîêÉ&Ý& e ÙÿÿÿêìÉ&è& o îÿÿÿèêÉ&Ý& x ÿÿÿéêÉ&Ý& e ÿÿÿçêÉ&Ý& x -ÿÿÿçêÉ&Ý& e BÿÿÿçêÉ&è& o WÿÿÿëêÉ&Ý& e lÿÿÿìêÉ&è& o ÿÿÿíêÉ&Ý& e –ÿÿÿçêÉ&è& o «ÿÿÿëöÎ&É ‚ÿÿÿëöÎ&ß& – ŠÿÿÿëöÎ&ß& – ŸÿÿÿêöÎ&ß& – ´ÿÿÿíöÎ&Ô& Œ ÉÿÿÿéöÎ&ß& – ÞÿÿÿçöÎ&ê&   óÿÿÿìöÎ&ß& – ÿÿÿíöÎ&ê&   ÿÿÿëöÎ&ê&   2ÿÿÿîöÎ&ê&   GÿÿÿîöÎ&ê&   \ÿÿÿìöÎ&ê&   qÿÿÿíöÎ&ê&   †ÿÿÿíöÎ&ê&   ›ÿÿÿéöÎ&ê&   °ÿÿÿïöÎ&ß& – ÅÿÿÿîöÎ&ß& – ÚÿÿÿêöÎ&ê&   ïÿÿÿçöÎ&ß& ª ÿÿÿéöÎ&ß& – ÿÿÿçöÎ&ß& ª .ÿÿÿçöÎ&ß& – CÿÿÿçöÎ&ê&   XÿÿÿëöÎ&ß& – mÿÿÿìöÎ&ê&   ‚ÿÿÿíöÎ&ß& – —ÿÿÿçöÎ&ê&   ¬ÿÿÿëÐÎ&Ë ´ÿÿÿëÐÎ&á& È ŠÿÿÿëÐÎ&á& È ŸÿÿÿêëÎ&á& È ´ÿÿÿíÚÎ&Ö& ¾ ÉÿÿÿéãÎ&á& È ÞÿÿÿçßÎ&ì& Ò óÿÿÿìÕÎ&á& È ÿÿÿíÕÎ&ì& Ò ÿÿÿëÐÎ&ì& Ò 2ÿÿÿîÐÎ&ì& Ò GÿÿÿîÐÎ&ì& Ò \ÿÿÿììÎ&ì& Ò qÿÿÿíÔÎ&ì& Ò †ÿÿÿíÕÎ&ì& Ò ›ÿÿÿéÛÎ&ì& Ò °ÿÿÿïÐÎ&á& È ÅÿÿÿîÐÎ&á& È ÚÿÿÿêìÎ&ì& Ò ïÿÿÿçåÎ&á& Ü ÿÿÿééÎ&á& È ÿÿÿçÔÎ&á& Ü .ÿÿÿçâÎ&á& È CÿÿÿçâÎ&ì& Ò XÿÿÿëÐÎ&á& È mÿÿÿìÕÎ&ì& Ò ‚ÿÿÿíØÎ&á& È —ÿÿÿçÜÎ&ì& Ò ¬ÿÿÿëÐÎ&É æÿÿÿëÐÎ&ß& ù ŠÿÿÿëÐÎ&ß& ù ŸÿÿÿêëÎ&ß& ù ´ÿÿÿíÚÎ&Ô& ï ÉÿÿÿéãÎ&ß& ù ÞÿÿÿçßÎ&ê&  óÿÿÿìÕÎ&ß& ù ÿÿÿíÕÎ&ê&  ÿÿÿëÐÎ&ê&  2ÿÿÿîÐÎ&ê&  GÿÿÿîÐÎ&ê&  \ÿÿÿììÎ&ê&  qÿÿÿíÔÎ&ê&  †ÿÿÿíÕÎ&ê&  ›ÿÿÿéÛÎ&ê&  °ÿÿÿïÐÎ&ß& ù ÅÿÿÿîÐÎ&ß& ù ÚÿÿÿêìÎ&ê&  ïÿÿÿçåÎ&ß&  ÿÿÿééÎ&ß& ù ÿÿÿçÔÎ&ß&  .ÿÿÿçâÎ&ß& ù CÿÿÿçâÎ&ê&  XÿÿÿëÐÎ&ß& ù mÿÿÿìÕÎ&ê&  ‚ÿÿÿíØÎ&ß& ù —ÿÿÿçÜÎ&ê&  ¬ÿÿ ëÀ&Ç ÿÿÿëëÉ&Ý& + ‰ÿÿÿëëÉ&Ý& + žÿÿÿéëÉ&Ý& + ³ÿÿÿíëÉ&Ò& ! ÈÿÿÿéëÉ&Ý& + ÝÿÿÿçëÉ&è& 5 òÿÿÿíëÉ&Ý& + ÿÿÿíëÉ&è& 5 ÿÿÿìëÉ&è& 5 1ÿÿÿíëÉ&è& 5 FÿÿÿíëÉ&è& 5 [ÿÿÿìëÉ&è& 5 pÿÿÿìëÉ&è& 5 …ÿÿÿíëÉ&è& 5 šÿÿÿëëÉ&è& 5 ¯ÿÿÿïëÉ&Ý& + ÄÿÿÿîëÉ&Ý& + ÙÿÿÿêìÉ&è& 5 îÿÿÿèëÉ&Ý& ? ÿÿÿéëÉ&Ý& + ÿÿÿçëÉ&Ý& ? -ÿÿÿçëÉ&Ý& + BÿÿÿçëÉ&è& 5 WÿÿÿëëÉ&Ý& + lÿÿÿìëÉ&è& 5 ÿÿÿíëÉ&Ý& + –ÿÿÿçëÉ&è& 5 «ÿÿÿëëÉ&È HÿÿÿëëÉ&Þ& S ‰ÿÿÿëëÉ&Þ& S žÿÿÿéëÉ&Þ& S ³ÿÿÿíëÉ&Ó& N ÈÿÿÿéëÉ&Þ& S ÝÿÿÿçëÉ&é& h òÿÿÿíëÉ&Þ& S ÿÿÿíëÉ&é& h ÿÿÿìëÉ&é& h 1ÿÿÿíëÉ&é& h FÿÿÿíëÉ&é& h [ÿÿÿìëÉ&é& h pÿÿÿìëÉ&é& h …ÿÿÿíëÉ&é& h šÿÿÿëëÉ&é& h ¯ÿÿÿïëÉ&Þ& S ÄÿÿÿîëÉ&Þ& S ÙÿÿÿêìÉ&é& h îÿÿÿèëÉ&Þ& a ÿÿÿéëÉ&Þ& S ÿÿÿçëÉ&Þ& S -ÿÿÿçëÉ&Þ& S BÿÿÿçëÉ&é& Z WÿÿÿëëÉ&Þ& S lÿÿÿìëÉ&é& h ÿÿÿíëÉ&Þ& S –ÿÿÿçëÉ&é& Z «ÿÿÿëÐÎ&Ê oÿÿÿëÐÎ&à& } ŒÿÿÿëÐÎ&à& } ¡ÿÿÿéìÎ&à& } ¶ÿÿÿíÚÎ&Õ& v ËÿÿÿéãÎ&à& } àÿÿÿçßÎ&ë& ’ õÿÿÿìÕÎ&à& } ÿÿÿíÕÎ&ë& ’ ÿÿÿëÐÎ&ë& ’ 4ÿÿÿîÐÎ&ë& ’ IÿÿÿîÐÎ&ë& ’ ^ÿÿÿìéÎ&ë& ’ sÿÿÿíÔÎ&ë& ’ ˆÿÿÿíÕÎ&ë& ’ ÿÿÿèÛÎ&ë& ’ ²ÿÿÿïÐÎ&à& } ÇÿÿÿîÐÎ&à& } ÜÿÿÿêìÎ&ë& ’ ñÿÿÿçåÎ&à& ‹ ÿÿÿééÎ&à& } ÿÿÿçÔÎ&à& ‹ 0ÿÿÿçÞÎ&à& } EÿÿÿçßÎ&ë& „ ZÿÿÿëÐÎ&à& } oÿÿÿìÕÎ&ë& ’ „ÿÿÿíØÎ&à& } ™ÿÿÿçÜÎ&ë& „ ®ÿÿÿëÐÎ&Ì ™ÿÿÿëÐÎ&â& § ŒÿÿÿëÐÎ&â& § ¡ÿÿÿéìÎ&â& § ¶ÿÿÿíÚÎ&×&   ËÿÿÿéãÎ&â& § àÿÿÿçßÎ&í& ¼ õÿÿÿìÕÎ&â& § ÿÿÿíÕÎ&í& ¼ ÿÿÿëÐÎ&í& ¼ 4ÿÿÿîÐÎ&í& ¼ IÿÿÿîÐÎ&í& ¼ ^ÿÿÿìéÎ&í& ¼ sÿÿÿíÔÎ&í& ¼ ˆÿÿÿíÕÎ&í& ¼ ÿÿÿèÛÎ&í& ¼ ²ÿÿÿïÐÎ&â& § ÇÿÿÿîÐÎ&â& § ÜÿÿÿêìÎ&í& ¼ ñÿÿÿçåÎ&â& µ ÿÿÿééÎ&â& § ÿÿÿçÔÎ&â& µ 0ÿÿÿçÞÎ&â& § EÿÿÿçßÎ&í& ® ZÿÿÿëÐÎ&â& § oÿÿÿìÕÎ&í& ¼ „ÿÿÿíØÎ&â& § ™ÿÿÿçÜÎ&í& ® ®ÿÿÿëÐÎ& ÃÊÿÿÿëÐÎ&à& Ñ ‹ÿÿÿëÐÎ&à& Ñ  ÿÿÿêëÎ&à& Ñ µÿÿÿíÚÎ&Õ& Ê ÊÿÿÿéãÎ&à& Ñ ßÿÿÿçßÎ&ë& æ ôÿÿÿìÕÎ&à& Ñ ÿÿÿíÕÎ&ë& æ ÿÿÿëÐÎ&ë& æ 3ÿÿÿîÐÎ&ë& æ HÿÿÿîÐÎ&ë& æ ]ÿÿÿìéÎ&ë& æ rÿÿÿíÔÎ&ë& æ ‡ÿÿÿíÕÎ&ë& æ œÿÿÿëÛÎ&ë& æ ±ÿÿÿïÐÎ&à& Ñ ÆÿÿÿîÐÎ&à& Ñ ÛÿÿÿêìÎ&ë& æ ðÿÿÿçåÎ&à& ß ÿÿÿééÎ&à& Ñ ÿÿÿçÔÎ&à& ß /ÿÿÿçÞÎ&à& Ñ DÿÿÿçßÎ&ë& Ø YÿÿÿëÐÎ&à& Ñ nÿÿÿìÕÎ&ë& æ ƒÿÿÿíØÎ&à& Ñ ˜ÿÿÿç×Î&ë& Ø ­ÿÿÿíëÉ&È íÿÿÿëëÉ&Þ& û ‰ÿÿÿëëÉ&Þ& û žÿÿÿéëÉ&Þ& û ³ÿÿÿíëÉ&Ó& ô ÈÿÿÿéëÉ&Þ& û ÝÿÿÿçëÉ&é&  òÿÿÿíëÉ&Þ& û ÿÿÿíëÉ&é&  ÿÿÿìëÉ&é&  1ÿÿÿíëÉ&é&  FÿÿÿíëÉ&é&  [ÿÿÿìëÉ&é&  pÿÿÿìëÉ&é&  …ÿÿÿíëÉ&é&  šÿÿÿëëÉ&é&  ¯ÿÿÿïëÉ&Þ& û ÄÿÿÿîëÉ&Þ& û ÙÿÿÿêìÉ&é&  îÿÿÿèëÉ&Þ&  ÿÿÿéëÉ&Þ& û ÿÿÿçëÉ&Þ&  -ÿÿÿçëÉ&Þ& û BÿÿÿçëÉ&é&  WÿÿÿëëÉ&Þ& û lÿÿÿìëÉ&é&  ÿÿÿíëÉ&Þ& û –ÿÿÿçëÉ&é&  «ÿÿ ë½&Í ÿÿÿëëÉ&ã& $ ‰ÿÿÿëëÉ&ã& $ žÿÿÿéëÉ&ã& $ ³ÿÿÿíëÉ&Ø&  ÈÿÿÿéëÉ&ã& $ ÝÿÿÿçëÉ&î& 9 òÿÿÿíëÉ&ã& $ ÿÿÿíëÉ&ã& $ ÿÿÿìëÉ&î& 9 1ÿÿÿíëÉ&î& 9 FÿÿÿíëÉ&î& 9 [ÿÿÿìëÉ&î& 9 pÿÿÿìëÉ&î& 9 …ÿÿÿíëÉ&î& 9 šÿÿÿëëÉ&î& 9 ¯ÿÿÿïëÉ&ã& $ ÄÿÿÿîëÉ&ã& $ ÙÿÿÿêìÉ&î& 9 îÿÿÿèëÉ&ã& 2 ÿÿÿéëÉ&ã& $ ÿÿÿçëÉ&ã& 2 -ÿÿÿçëÉ&ã& $ BÿÿÿçëÉ&î& + WÿÿÿëëÉ&ã& $ lÿÿÿìëÉ&ã& $ ÿÿÿíëÉ&ã& $ –ÿÿÿçëÉ&î& + «ÿÿÿëÐÎ&Î @ÿÿÿëÐÎ&ä& M ŠÿÿÿëÐÎ&ä& M ŸÿÿÿêëÎ&ä& M ´ÿÿÿíÚÎ&Ù& F ÉÿÿÿéãÎ&ä& M ÞÿÿÿçßÎ&ï& b óÿÿÿìÕÎ&ä& M ÿÿÿíÕÎ&ï& b ÿÿÿëÐÎ&ï& b 2ÿÿÿîÐÎ&ï& b GÿÿÿîÐÎ&ï& b \ÿÿÿììÎ&ï& b qÿÿÿíÔÎ&ï& b †ÿÿÿíÕÎ&ï& b ›ÿÿÿéÛÎ&ï& b °ÿÿÿïÐÎ&ä& M ÅÿÿÿîÐÎ&ä& M ÚÿÿÿêìÎ&ï& b ïÿÿÿçåÎ&ä& [ ÿÿÿééÎ&ä& M ÿÿÿçÔÎ&ä& [ .ÿÿÿçâÎ&ä& M CÿÿÿçâÎ&ï& T XÿÿÿëÐÎ&ä& M mÿÿÿìÕÎ&ï& b ‚ÿÿÿíØÎ&ä& M —ÿÿÿçÜÎ&ï& T ¬ÿÿ ÿëÐÎ& jÅÿÿÿëÐÎ&Ú& p ‡ÿÿÿëÐÎ&Ú& p œÿÿÿéìÎ&Ú& p ±ÿÿÿíÚÎ&Ï& m ÆÿÿÿéãÎ&Ú& p ÛÿÿÿçßÎ&å& v ðÿÿÿìÕÎ&Ú& p ÿÿÿíÕÎ&å& v ÿÿÿëÐÎ&å& v /ÿÿÿíÐÎ&å& v DÿÿÿìÐÎ&å& v YÿÿÿìéÎ&å& v nÿÿÿíÔÎ&å& v ƒÿÿÿíÕÎ&å& v ˜ÿÿÿëÛÎ&å& v ­ÿÿÿïÐÎ&Ú& p ÂÿÿÿîÐÎ&Ú& p ×ÿÿÿêìÎ&å& v ìÿÿÿèäÎ&Ú& s ÿÿÿééÎ&Ú& p ÿÿÿçÔÎ&Ú& s +ÿÿÿçÞÎ&Ú& p @ÿÿÿçÞÎ&å& p UÿÿÿëÐÎ&Ú& p jÿÿÿìÕÎ&å& v ÿÿÿíØÎ&Ú& p ”ÿÿÿçÖÎ&å& p ©ÿÿÿëöÎ&UðÿÿÿëõÎ&&[ xÿÿÿëõÎ&&[ ÿÿÿèõÎ&&[ ¢ÿÿÿíöÎ&ù&Z ÅÿÿÿêõÎ&&[ ÌÿÿÿçõÎ& &a áÿÿÿïõÎ&&[ öÿÿÿíõÎ&[&  ÿÿÿëõÎ& &a ÿÿÿíõÎ& &a 5ÿÿÿíõÎ& &a JÿÿÿìõÎ& &a _ÿÿÿíõÎ& &a tÿÿÿíõÎ& &a ‰ÿÿÿçõÎ& &a žÿÿÿïõÎ&&[ ³ÿÿÿîõÎ&&[ ÈÿÿÿèõÎ& &a ÝÿÿÿèöÎ&&^ òÿÿÿéõÎ&&[ ÿÿÿçöÎ&&^ ÿÿÿçõÎ&&[ 1ÿÿÿçõÎ& &[ FÿÿÿëõÎ&&[ [ÿÿÿìõÎ& &a pÿÿÿíõÎ&&[ …ÿÿÿçõÎ& &[ šÿÿÿëÐÎ&òdÿÿÿëÐÎ&&j zÿÿÿëÐÎ&&j ÿÿÿèìÎ&&j ¤ÿÿÿðÕÎ&û&… ¹ÿÿÿéãÎ&&j ÎÿÿÿçßÎ& &p ãÿÿÿïÕÎ&&j øÿÿÿíÕÎ& &p ÿÿÿëÐÎ& &p "ÿÿÿíÐÎ& &p 7ÿÿÿíÐÎ& &p LÿÿÿìéÎ& &p aÿÿÿíÔÎ& &p vÿÿÿíÕÎ& &p ‹ÿÿÿçÛÎ& &p  ÿÿÿïÐÎ& µ&jÿÿÿîÐÎ&&j ÊÿÿÿèìÎ& &p ßÿÿÿèàÎ&&m ôÿÿÿééÎ&&j ÿÿÿçÔÎ&&m ÿÿÿçÞÎ&&j 3ÿÿÿçÞÎ& &j HÿÿÿëÐÎ&&j ]ÿÿÿìÕÎ& &p rÿÿÿíØÎ&&j ‡ÿÿÿçÜÎ& &j œÿÿÿëöÎ&ðsÿÿÿëöÎ&&y xÿÿÿëöÎ&&y ÿÿÿèöÎ&&y ¢ÿÿÿðöÎ&ù&v ·ÿÿÿêöÎ&&y ÌÿÿÿçöÎ& & áÿÿÿïöÎ&&y öÿÿÿíöÎ& & ÿÿÿëöÎ& & ÿÿÿíöÎ& & 5ÿÿÿíöÎ& & JÿÿÿìöÎ& & _ÿÿÿíöÎ& & tÿÿÿíöÎ& & ‰ÿÿÿçöÎ& & žÿÿÿïöÎ&&y ³ÿÿÿîöÎ&&y ÈÿÿÿèöÎ& & ÝÿÿÿèöÎ&&| òÿÿÿéöÎ&&y ÿÿÿçöÎ&&| ÿÿÿçöÎ&&y 1ÿÿÿçöÎ& &y FÿÿÿëöÎ&&y [ÿÿÿìöÎ& & pÿÿÿíöÎ&&y …ÿÿÿçöÎ& &y šÿÿÿëÐÎ&ò‚ÿÿÿëÐÎ&&ˆ zÿÿÿëÐÎ&&ˆ ÿÿÿèìÎ&&ˆ ¤ÿÿÿðÕÎ&û&… ¹ÿÿÿéãÎ&&ˆ ÎÿÿÿçßÎ& &Ž ãÿÿÿïÕÎ&&ˆ øÿÿÿíÕÎ& &Ž ÿÿÿëÐÎ& &Ž "ÿÿÿíÐÎ& &Ž 7ÿÿÿíÐÎ& &Ž LÿÿÿìéÎ& &Ž aÿÿÿíÔÎ& &Ž vÿÿÿíÕÎ& &Ž ‹ÿÿÿçÛÎ& &Ž  ÿÿÿïÐÎ&&ˆ µÿÿÿîÐÎ&&ˆ ÊÿÿÿèìÎ& &Ž ßÿÿÿèàÎ&&‹ ôÿÿÿééÎ&&ˆ ÿÿÿçÔÎ&&‹ ÿÿÿçÞÎ&&ˆ 3ÿÿÿçÞÎ& &ˆ HÿÿÿëÐÎ&&ˆ ]ÿÿÿìÕÎ& &Ž rÿÿÿíØÎ&&ˆ ‡ÿÿÿçÜÎ& &ˆ œÿÿÿëÐÎ&ñ”ÿÿÿëÐÎ&&§ yÿÿÿëÐÎ&&§ ŽÿÿÿèìÎ&&§ £ÿÿÿðÕÎ&ú&ž ¸ÿÿÿéãÎ&&§ ÍÿÿÿçßÎ& &± âÿÿÿïÕÎ&&§ ÷ÿÿÿíÕÎ& &± ÿÿÿëÐÎ& &± !ÿÿÿíÐÎ& &± 6ÿÿÿíÐÎ& &± KÿÿÿìéÎ& &± `ÿÿÿíÔÎ& &± uÿÿÿíÕÎ& &± ŠÿÿÿçÛÎ& &± ŸÿÿÿïÐÎ&¤& ´ÿÿÿîÐÎ&&§ ÉÿÿÿèìÎ& &± ÞÿÿÿèãÎ&&» óÿÿÿééÎ&&§ ÿÿÿçÔÎ&&» ÿÿÿçÞÎ&&§ 2ÿÿÿçÞÎ& &± GÿÿÿëÐÎ&&§ \ÿÿÿìÕÎ& &± qÿÿÿíØÎ&&§ †ÿÿÿçÖÎ& &± ›ÿÿÿëÐÎ&òÄÿÿÿëÐÎ&&× zÿÿÿëÐÎ&&× ÿÿÿèìÎ&&× ¤ÿÿÿðÕÎ&û&Í ¹ÿÿÿéãÎ&&× ÎÿÿÿçßÎ& &á ãÿÿÿïÕÎ&&× øÿÿÿíÕÎ& &á ÿÿÿëÐÎ& &á "ÿÿÿíÐÎ& &á 7ÿÿÿíÐÎ& &á LÿÿÿìéÎ& &á aÿÿÿíÔÎ& &á vÿÿÿíÕÎ& &á ‹ÿÿÿçÛÎ& &á  ÿÿÿïÐÎ&&× µÿÿÿîÐÎ&&× ÊÿÿÿèìÎ& &á ßÿÿÿèàÎ&&ë ôÿÿÿééÎ&&× ÿÿÿçÔÎ&&ë ÿÿÿçÞÎ&&× 3ÿÿÿçÞÎ& &á HÿÿÿëÐÎ&&× ]ÿÿÿìÕÎ& &á rÿÿÿíØÎ&&× ‡ÿÿÿçÜÎ& &á œÿÿÿëÐÎ&ñõÿÿÿëÐÎ&&  yÿÿÿëÐÎ&&  ŽÿÿÿèìÎ&&  £ÿÿÿðÕÎ&ú&  ¸ÿÿÿéãÎ&&  ÍÿÿÿçßÎ& &  âÿÿÿïÕÎ&&  ÷ÿÿÿíÕÎ& &  ÿÿÿëÐÎ& &  !ÿÿÿíÐÎ& &  6ÿÿÿíÐÎ& &  KÿÿÿìéÎ& &  `ÿÿÿíÔÎ& &  uÿÿÿíÕÎ& &  ŠÿÿÿçÛÎ& &  ŸÿÿÿïÐÎ& &  µÿÿÿîÐÎ&&  ÉÿÿÿèìÎ& &  ÞÿÿÿèãÎ&&  óÿÿÿééÎ&&  ÿÿÿçÔÎ&&  ÿÿÿçÞÎ&&  2ÿÿÿçÞÎ& &  GÿÿÿëÐÎ&&  \ÿÿÿìÕÎ& &  qÿÿÿíØÎ&&  †ÿÿÿçÖÎ& &  ›ÿÿÿëÐÎ&ò $ÿÿÿëÐÎ&& 8 zÿÿÿëÐÎ&& 8 ÿÿÿèìÎ&& 8 ¤ÿÿÿðÕÎ&û& . ¹ÿÿÿéãÎ&& 8 ÎÿÿÿçßÎ& & B ãÿÿÿïÕÎ&& 8 øÿÿÿíÕÎ& & B ÿÿÿëÐÎ& & B "ÿÿÿíÐÎ& & B 7ÿÿÿíÐÎ& & B LÿÿÿìéÎ& & B aÿÿÿíÔÎ& & B vÿÿÿíÕÎ& & B ‹ÿÿÿçÛÎ& & B  ÿÿÿïÐÎ&& 8 µÿÿÿîÐÎ&& 8 ÊÿÿÿèìÎ& & B ßÿÿÿèàÎ&& L ôÿÿÿééÎ&& 8 ÿÿÿçÔÎ&& L ÿÿÿçÞÎ&& 8 3ÿÿÿçÞÎ& & B HÿÿÿëÐÎ&& 8 ]ÿÿÿìÕÎ& & B rÿÿÿíØÎ&& 8 ‡ÿÿÿçÜÎ& & B œÿÿ êÅ&ó VÿÿÿëêÏ&& g {ÿÿÿëêÏ&& g ÿÿÿêêÏ&& g ¥ÿÿÿíêÏ&& È zÿÿÿéêÏ&& g ÏÿÿÿçêÏ&& q äÿÿÿïêÏ&& g ùÿÿÿíêÏ&& q ÿÿÿëêÏ&& q #ÿÿÿíêÏ&& q 8ÿÿÿðêÏ&& q MÿÿÿìêÏ&& q bÿÿÿíêÏ&& q wÿÿÿíêÏ&& q ŒÿÿÿçêÏ&& q ¡ÿÿÿïêÏ&& g ¶ÿÿÿîêÏ&& g ËÿÿÿèìÏ&& q àÿÿÿèêÏ&& z õÿÿÿéêÏ&& g ÿÿÿçêÏ&& z ÿÿÿçêÏ&& g 4ÿÿÿçêÏ&& q IÿÿÿëêÏ&& g ^ÿÿÿìêÏ&& q sÿÿÿíêÏ&& g ˆÿÿÿçêÏ&& g ÿÿÿëöÎ&õ „ÿÿÿëöÎ&& ˜ |ÿÿÿëöÎ&& ˜ ‘ÿÿÿêöÎ&& ˜ ¦ÿÿÿðöÎ&þ& Ž »ÿÿÿêöÎ&& ˜ ÐÿÿÿçöÎ&& ¢ åÿÿÿïöÎ&& ˜ úÿÿÿíöÎ&& ¢ ÿÿÿëöÎ&& ¢ $ÿÿÿíöÎ&& ¢ 9ÿÿÿíöÎ&& ¢ NÿÿÿìöÎ&& ¢ cÿÿÿîöÎ&& ¢ xÿÿÿíöÎ&& ¢ ÿÿÿçöÎ&& ¢ ¢ÿÿÿïöÎ&& ˜ ·ÿÿÿîöÎ&& ˜ ÌÿÿÿèöÎ&& ¢ áÿÿÿèöÎ&& ¬ öÿÿÿéöÎ&& ˜ ÿÿÿçöÎ&& ¬ ÿÿÿçöÎ&& ˜ 5ÿÿÿçöÎ&& ¢ JÿÿÿëöÎ&& ˜ _ÿÿÿìöÎ&& ¢ tÿÿÿíöÎ&& ˜ ‰ÿÿÿçöÎ&& ¢ žÿÿÿëÐÎ&÷ ¶ÿÿÿëÐÎ& & Ê |ÿÿÿëÐÎ& & Ê ‘ÿÿÿêëÎ& & Ê ¦ÿÿÿðÕÎ&& À »ÿÿÿêãÎ& & Ê ÐÿÿÿçßÎ&& Ô åÿÿÿïÕÎ& & Ê úÿÿÿíÕÎ&& Ô ÿÿÿëÐÎ&& Ô $ÿÿÿíÐÎ&& Ô 9ÿÿÿíÐÎ&& Ô NÿÿÿìéÎ&& Ô cÿÿÿîÔÎ&& Ô xÿÿÿíÕÎ&& Ô ÿÿÿçÛÎ&& Ô ¢ÿÿÿïÐÎ& & Ê ·ÿÿÿîÐÎ& & Ê ÌÿÿÿèéÎ&& Ô áÿÿÿèãÎ& & Þ öÿÿÿééÎ& & Ê ÿÿÿçÔÎ& & Þ ÿÿÿçâÎ& & Ê 5ÿÿÿçâÎ&& Ô JÿÿÿëÐÎ& & Ê _ÿÿÿìÕÎ&& Ô tÿÿÿíØÎ& & Ê ‰ÿÿÿçÜÎ&& Ô žÿÿÿëÐÎ&õ èÿÿÿëÐÎ&& û |ÿÿÿëÐÎ&& û ‘ÿÿÿêëÎ&& û ¦ÿÿÿðÕÎ&þ& ñ »ÿÿÿêãÎ&& û ÐÿÿÿçßÎ&&  åÿÿÿïÕÎ&& û úÿÿÿíÕÎ&&  ÿÿÿëÐÎ&&  $ÿÿÿíÐÎ&&  9ÿÿÿíÐÎ&&  NÿÿÿìéÎ&&  cÿÿÿîÔÎ&&  xÿÿÿíÕÎ&&  ÿÿÿçÛÎ&&  ¢ÿÿÿïÐÎ&& û ·ÿÿÿîÐÎ&& û ÌÿÿÿèéÎ&&  áÿÿÿèãÎ&&  öÿÿÿééÎ&& û ÿÿÿçÔÎ&&  ÿÿÿçâÎ&& û 5ÿÿÿçâÎ&&  JÿÿÿëÐÎ&& û _ÿÿÿìÕÎ&&  tÿÿÿíØÎ&& û ‰ÿÿÿçÜÎ&&  žÿÿ ëÅ&ó ÿÿÿëëÏ&& - {ÿÿÿëëÏ&& - ÿÿÿêëÏ&& - ¥ÿÿÿðëÏ&ü& # ºÿÿÿéëÏ&& - ÏÿÿÿçëÏ&& 7 äÿÿÿïëÏ&& - ùÿÿÿíëÏ&& 7 ÿÿÿëëÏ&& 7 #ÿÿÿíëÏ&& 7 8ÿÿÿðëÏ&& 7 MÿÿÿìëÏ&& 7 bÿÿÿíëÏ&& 7 wÿÿÿíëÏ&& 7 ŒÿÿÿçëÏ&& 7 ¡ÿÿÿïëÏ&& - ¶ÿÿÿîëÏ&& - ËÿÿÿèìÏ&& 7 àÿÿÿèëÏ&& A õÿÿÿéëÏ&& - ÿÿÿçëÏ&& A ÿÿÿçëÏ&& - 4ÿÿÿçëÏ&& 7 IÿÿÿëëÏ&& - ^ÿÿÿìëÏ&& 7 sÿÿÿíëÏ&& - ˆÿÿÿçëÏ&& 7 ÿÿÿëëÏ& JôÿÿÿëëÏ&& U {ÿÿÿëëÏ&& U ÿÿÿêëÏ&& U ¥ÿÿÿíëÏ&& N ÈÿÿÿéëÏ&& U ÏÿÿÿçëÏ&& j äÿÿÿïëÏ&& U ùÿÿÿíëÏ&& j ÿÿÿëëÏ&& j #ÿÿÿíëÏ&& j 8ÿÿÿðëÏ&& j MÿÿÿìëÏ&& j bÿÿÿíëÏ&& j wÿÿÿíëÏ&& j ŒÿÿÿçëÏ&& j ¡ÿÿÿïëÏ&& U ¶ÿÿÿîëÏ&& U ËÿÿÿèìÏ&& j àÿÿÿèëÏ&& c õÿÿÿéëÏ&& U ÿÿÿçëÏ&& U ÿÿÿçëÏ&& U 4ÿÿÿçëÏ&& \ IÿÿÿëëÏ&& U ^ÿÿÿìëÏ&& j sÿÿÿíëÏ&& U ˆÿÿÿçëÏ&& \ ÿÿÿëÐÎ&ö qÿÿÿëÐÎ&&  ~ÿÿÿëÐÎ&&  “ÿÿÿêëÎ&&  ¨ÿÿÿðÕÎ&ÿ& x ½ÿÿÿéãÎ&&  ÒÿÿÿçßÎ&& ” çÿÿÿïÕÎ&&  üÿÿÿíÕÎ&& ” ÿÿÿëÐÎ&& ” &ÿÿÿíÐÎ&& ” ;ÿÿÿíÐÎ&& ” PÿÿÿëéÎ&& ” eÿÿÿîÔÎ&& ” zÿÿÿíÖÎ&& ” ÿÿÿçÛÎ&& ” ¤ÿÿÿïÐÎ&&  ¹ÿÿÿîÐÎ&&  ÎÿÿÿêéÎ&& ” ãÿÿÿèãÎ&&  øÿÿÿçéÎ&&  ÿÿÿçÔÎ&&  "ÿÿÿçÞÎ&&  7ÿÿÿíÞÎ&& † LÿÿÿëÐÎ&&  aÿÿÿìÕÎ&& ” vÿÿÿíØÎ&&  ‹ÿÿÿçÜÎ&& †  ÿÿÿëÐÎ&ø ›ÿÿÿëÐÎ& & © ~ÿÿÿëÐÎ& & © “ÿÿÿêëÎ& & © ¨ÿÿÿðÕÎ&& ¢ ½ÿÿÿéãÎ& & © ÒÿÿÿçßÎ&& ¾ çÿÿÿïÕÎ& & © üÿÿÿíÕÎ&& ¾ ÿÿÿëÐÎ&& ¾ &ÿÿÿíÐÎ&& ¾ ;ÿÿÿíÐÎ&& ¾ PÿÿÿëéÎ&& ¾ eÿÿÿîÔÎ&& ¾ zÿÿÿíÖÎ&& ¾ ÿÿÿçÛÎ&& ¾ ¤ÿÿÿïÐÎ& & © ¹ÿÿÿîÐÎ& & © ÎÿÿÿêéÎ&& ¾ ãÿÿÿèãÎ& & · øÿÿÿçéÎ& & © ÿÿÿçÔÎ& & · "ÿÿÿçÞÎ& & © 7ÿÿÿíÞÎ&& ° LÿÿÿëÐÎ& & © aÿÿÿìÕÎ&& ¾ vÿÿÿíØÎ& & © ‹ÿÿÿçÜÎ&& °  ÿÿÿëÐÎ&ö ÅÿÿÿëÐÎ&& Ó }ÿÿÿëÐÎ&& Ó ’ÿÿÿêëÎ&& Ó §ÿÿÿðÕÎ&ÿ& Ì ¼ÿÿÿéãÎ&& Ó ÑÿÿÿçßÎ&& è æÿÿÿïÕÎ&& Ó ûÿÿÿíÕÎ&& è ÿÿÿëÐÎ&& è %ÿÿÿíÐÎ&& è :ÿÿÿíÐÎ&& è OÿÿÿëèÎ&& è dÿÿÿîÔÎ&& è yÿÿÿíÖÎ&& è ŽÿÿÿçÛÎ&& è £ÿÿÿïÐÎ&& Ó ¸ÿÿÿîÐÎ&& Ó ÍÿÿÿêéÎ&& è âÿÿÿèãÎ&& á ÷ÿÿÿçéÎ&& Ó ÿÿÿçÔÎ&& á !ÿÿÿçÞÎ&& Ó 6ÿÿÿçÞÎ&& Ú KÿÿÿëÐÎ&& Ó `ÿÿÿìÕÎ&& è uÿÿÿíØÎ&& Ó ŠÿÿÿçÖÎ&& Ú ŸÿÿÿíëÏ&ô ïÿÿÿëëÏ&& ý {ÿÿÿëëÏ&& ý ÿÿÿêëÏ&& ý ¥ÿÿÿðëÏ&ý& ö ºÿÿÿéëÏ&& ý ÏÿÿÿçëÏ&&  äÿÿÿïëÏ&& ý ùÿÿÿíëÏ&&  ÿÿÿëëÏ&&  #ÿÿÿíëÏ&&  8ÿÿÿðëÏ&&  MÿÿÿìëÏ&&  bÿÿÿíëÏ&&  wÿÿÿíëÏ&&  ŒÿÿÿçëÏ&&  ¡ÿÿÿïëÏ&& ý ¶ÿÿÿîëÏ&& ý ËÿÿÿèìÏ&&  àÿÿÿèëÏ&&  õÿÿÿéëÏ&& ý ÿÿÿçëÏ&&  ÿÿÿçëÏ&& ý 4ÿÿÿçëÏ&&  IÿÿÿëëÏ&& ý ^ÿÿÿìëÏ&&  sÿÿÿíëÏ&& ý ˆÿÿÿçëÏ&&  ÿÿ ëÅ&ó ÿÿÿëëÏ&& & {ÿÿÿëëÏ&& & ÿÿÿêëÏ&& & ¥ÿÿÿíëÏ&& & ÈÿÿÿéëÏ&& & ÏÿÿÿçëÏ&& ; äÿÿÿïëÏ&& & ùÿÿÿíëÏ& & ;ÿÿÿëëÏ&& ; #ÿÿÿíëÏ&& ; 8ÿÿÿðëÏ&& ; MÿÿÿìëÏ&& ; bÿÿÿíëÏ&& ; wÿÿÿíëÏ&& ; ŒÿÿÿçëÏ&& ; ¡ÿÿÿïëÏ&& & ¶ÿÿÿîëÏ&& & ËÿÿÿèìÏ&& ; àÿÿÿèëÏ&& 4 õÿÿÿéëÏ&& & ÿÿÿçëÏ&& & -ÿÿÿçëÏ&& & 4ÿÿÿçëÏ&& - IÿÿÿëëÏ&& & ^ÿÿÿìëÏ&& ; sÿÿÿíëÏ&& & ˆÿÿÿçëÏ&& - ÿÿÿëÐÎ&õ BÿÿÿëÐÎ&& O |ÿÿÿëÐÎ&& O ‘ÿÿÿêëÎ&& O ¦ÿÿÿðÕÎ&þ& H »ÿÿÿêãÎ&& O ÐÿÿÿçßÎ&& d åÿÿÿïÕÎ&& O úÿÿÿíÕÎ&& d ÿÿÿëÐÎ&& d $ÿÿÿíÐÎ&& d 9ÿÿÿíÐÎ&& d NÿÿÿìéÎ&& d cÿÿÿîÔÎ&& d xÿÿÿíÕÎ&& d ÿÿÿçÛÎ&& d ¢ÿÿÿïÐÎ&& O ·ÿÿÿîÐÎ&& O ÌÿÿÿèéÎ&& d áÿÿÿèãÎ&& ] öÿÿÿééÎ&& O ÿÿÿçÔÎ&& ] ÿÿÿçâÎ&& O 5ÿÿÿçâÎ&& V JÿÿÿëÐÎ&& O _ÿÿÿìÕÎ&& d tÿÿÿíØÎ&& O ‰ÿÿÿçÜÎ&& V žÿÿÿëÐÎ& iðÿÿÿëÐÎ&& o yÿÿÿëÐÎ&& o ŽÿÿÿèìÎ&& o £ÿÿÿðÕÎ&ù& l ¸ÿÿÿéãÎ&& o ÍÿÿÿçßÎ& & u âÿÿÿïÕÎ&& o ÷ÿÿÿíÕÎ& & u ÿÿÿëÐÎ& & u !ÿÿÿíÐÎ& & u 6ÿÿÿíÐÎ& & u KÿÿÿìéÎ& & u `ÿÿÿíÔÎ& & u uÿÿÿíÕÎ& & u ŠÿÿÿçÛÎ& & u ŸÿÿÿïÐÎ&& ´ oÿÿÿîÐÎ&& o ÉÿÿÿèìÎ& & u ÞÿÿÿèãÎ&& r óÿÿÿééÎ&& o ÿÿÿçÔÎ&& r ÿÿÿçÞÎ&& o 2ÿÿÿçÞÎ& & o GÿÿÿëÐÎ&& o \ÿÿÿìÕÎ& & u qÿÿÿíØÎ&& o †ÿÿÿçÖÎ& & o ›ÿÿÿëöÎ&UÿÿÿëõÎ&&&[ xÿÿÿëõÎ&&&[ ÿÿÿèõÎ&&&[ ¢ÿÿÿðöÎ&X& ·ÿÿÿêõÎ&&&[ ÌÿÿÿçõÎ&/&a áÿÿÿïõÎ&&&[ öÿÿÿíõÎ&/&[ ÿÿÿëõÎ&/&a ÿÿÿíõÎ&/&a 5ÿÿÿíõÎ&/&a JÿÿÿìõÎ&/&a _ÿÿÿíõÎ&/&a tÿÿÿíõÎ&/&a ‰ÿÿÿçõÎ&/&a žÿÿÿïõÎ&[&/ ³ÿÿÿîõÎ&[&/ ÈÿÿÿèõÎ&/&a ÝÿÿÿèöÎ&&&^ òÿÿÿéõÎ&&&[ ÿÿÿçõÎ&&&` ÿÿÿçõÎ&&&[ 1ÿÿÿçõÎ&/&[ FÿÿÿëõÎ&&&[ [ÿÿÿìõÎ&/&a pÿÿÿíõÎ&&&[ …ÿÿÿçõÎ&/&[ šÿÿÿëÐÎ&dÿÿÿëÐÎ&(&j zÿÿÿëÐÎ&(&j ÿÿÿèìÎ&(&j ¤ÿÿÿðÕÎ&&g ¹ÿÿÿéãÎ&(&j ÎÿÿÿçßÎ&1&p ãÿÿÿïÕÎ&(&j øÿÿÿíÕÎ&1&p ÿÿÿëÐÎ&1&p "ÿÿÿíÐÎ&1&p 7ÿÿÿíÐÎ&1&p LÿÿÿìéÎ&1&p aÿÿÿíÔÎ&1&p vÿÿÿíÕÎ&1&p ‹ÿÿÿçÛÎ&1&p  ÿÿÿïÐÎ&(&j µÿÿÿîÐÎ&(&j ÊÿÿÿèìÎ&1&p ßÿÿÿèàÎ&(&m ôÿÿÿééÎ&(&j ÿÿÿçÔÎ&(&m ÿÿÿçÞÎ&(&j 3ÿÿÿçÞÎ&1&j HÿÿÿëÐÎ&(&j ]ÿÿÿìÕÎ&1&p rÿÿÿíØÎ&(&j ‡ÿÿÿçÜÎ&1&j œÿÿÿëöÎ&sÿÿÿëöÎ&&&y xÿÿÿëöÎ&&&y ÿÿÿèöÎ&&&y ¢ÿÿÿðöÎ&&v ·ÿÿÿêöÎ&&&y ÌÿÿÿçöÎ&/& áÿÿÿïöÎ&&&y öÿÿÿíöÎ&/& ÿÿÿëöÎ&/& ÿÿÿíöÎ&/& 5ÿÿÿíöÎ&/& JÿÿÿìöÎ&/& _ÿÿÿíöÎ&/& tÿÿÿíöÎ&/& ‰ÿÿÿçöÎ&/& žÿÿÿïöÎ&&&y ³ÿÿÿîöÎ&&&y ÈÿÿÿèöÎ&/& ÝÿÿÿèöÎ&&&| òÿÿÿéöÎ&&&y ÿÿÿçöÎ&&&| ÿÿÿçöÎ&&&y 1ÿÿÿçöÎ&/&y FÿÿÿëöÎ&&&y [ÿÿÿìöÎ&/& pÿÿÿíöÎ&&&y …ÿÿÿçöÎ&/&y šÿÿÿëÐÎ&‚ÿÿÿëÐÎ&(&ˆ zÿÿÿëÐÎ&(&ˆ ÿÿÿèìÎ&(&ˆ ¤ÿÿÿðÕÎ&&… ¹ÿÿÿéãÎ&(&ˆ ÎÿÿÿçßÎ&1&Ž ãÿÿÿïÕÎ&(&ˆ øÿÿÿíÕÎ&1&Ž ÿÿÿëÐÎ&1&Ž "ÿÿÿíÐÎ&1&Ž 7ÿÿÿíÐÎ&1&Ž LÿÿÿìéÎ&1&Ž aÿÿÿíÔÎ&1&Ž vÿÿÿíÕÎ&1&Ž ‹ÿÿÿçÛÎ&1&Ž  ÿÿÿïÐÎ&(&ˆ µÿÿÿîÐÎ&(&ˆ ÊÿÿÿèìÎ&1&Ž ßÿÿÿèàÎ&(&‹ ôÿÿÿééÎ&(&ˆ ÿÿÿçÔÎ&(&‹ ÿÿÿçÞÎ&(&ˆ 3ÿÿÿçÞÎ&1&ˆ HÿÿÿëÐÎ&(&ˆ ]ÿÿÿìÕÎ&1&Ž rÿÿÿíØÎ&(&ˆ ‡ÿÿÿçÜÎ&1&ˆ œÿÿÿëÐÎ&”ÿÿÿëÐÎ&'&© yÿÿÿëÐÎ&'&© ŽÿÿÿèìÎ&'&© £ÿÿÿðÕÎ&'&ž ¸ÿÿÿéãÎ&'&© ÍÿÿÿçßÎ&0&³ âÿÿÿïÕÎ&'&© ÷ÿÿÿíÕÎ&0&³ ÿÿÿëÐÎ&0&³ !ÿÿÿíÐÎ&0&³ 6ÿÿÿíÐÎ&0&³ KÿÿÿìéÎ&0&³ `ÿÿÿíÔÎ&0&³ uÿÿÿíÕÎ&0&³ ŠÿÿÿçÛÎ&0&³ ŸÿÿÿïÐÎ&'&© ´ÿÿÿîÐÎ&'&© ÉÿÿÿèìÎ&0&³ ÞÿÿÿèãÎ&'&½ óÿÿÿééÎ&'&© ÿÿÿçÔÎ&'&½ ÿÿÿçÞÎ&'&© 2ÿÿÿçÞÎ&0&³ GÿÿÿëÐÎ&'&© \ÿÿÿìÕÎ&0&³ qÿÿÿíØÎ&'&© †ÿÿÿçÖÎ&0&³ ›ÿÿÿëÐÎ&ÄÿÿÿëÐÎ&(&Ù zÿÿÿëÐÎ&(&Ù ÿÿÿèìÎ&(&Ù ¤ÿÿÿðÕÎ&&Ï ¹ÿÿÿéãÎ&(&Ù ÎÿÿÿçßÎ&1&ã ãÿÿÿïÕÎ&(&Ù øÿÿÿíÕÎ&1&ã ÿÿÿëÐÎ&1&ã "ÿÿÿíÐÎ&1&ã 7ÿÿÿíÐÎ&1&ã LÿÿÿìéÎ&1&ã aÿÿÿíÔÎ&1&ã vÿÿÿíÕÎ&1&ã ‹ÿÿÿçÛÎ&1&ã  ÿÿÿïÐÎ&(&Ù µÿÿÿîÐÎ&(&Ù ÊÿÿÿèìÎ&1&ã ßÿÿÿèàÎ&(&í ôÿÿÿééÎ&(&Ù ÿÿÿçÔÎ&(&í ÿÿÿçÞÎ&(&Ù 3ÿÿÿçÞÎ&1&ã HÿÿÿëÐÎ&(&Ù ]ÿÿÿìÕÎ&1&ã rÿÿÿíØÎ&(&Ù ‡ÿÿÿçÜÎ&1&ã œÿÿÿëÐÎ&÷ÿÿÿëÐÎ&'&  yÿÿÿëÐÎ&'&  ŽÿÿÿèìÎ&'&  £ÿÿÿðÕÎ&&ÿ ¸ÿÿÿéãÎ&'&  ÍÿÿÿçßÎ&0&  âÿÿÿïÕÎ&'&  ÷ÿÿÿíÕÎ&0&  ÿÿÿëÐÎ&0&  !ÿÿÿíÐÎ&0&  6ÿÿÿíÐÎ&0&  KÿÿÿìéÎ&0&  `ÿÿÿíÔÎ&0&  uÿÿÿíÕÎ&0&  ŠÿÿÿçÛÎ&0&  ŸÿÿÿïÐÎ&'&  ´ÿÿÿîÐÎ&'&  ÉÿÿÿèìÎ&0&  ÞÿÿÿèãÎ&'&  óÿÿÿééÎ&'&  ÿÿÿçÔÎ&'&  ÿÿÿçÞÎ&'&  2ÿÿÿçÞÎ&0&  GÿÿÿëÐÎ&'&  \ÿÿÿìÕÎ&0&  qÿÿÿíØÎ&'&  †ÿÿÿçÖÎ&0&  ›ÿÿÿëÐÎ& &ÿÿÿëÐÎ&(& : zÿÿÿëÐÎ&(& : ÿÿÿèìÎ&(& : ¤ÿÿÿðÕÎ&& 0 ¹ÿÿÿéãÎ&(& : ÎÿÿÿçßÎ&1& D ãÿÿÿïÕÎ&(& : øÿÿÿíÕÎ&1& D ÿÿÿëÐÎ&1& D "ÿÿÿíÐÎ&1& D 7ÿÿÿíÐÎ&1& D LÿÿÿìéÎ&1& D aÿÿÿíÔÎ&1& D vÿÿÿíÕÎ&1& D ‹ÿÿÿçÛÎ&1& D  ÿÿÿïÐÎ&(& : µÿÿÿîÐÎ&(& : ÊÿÿÿèìÎ&1& D ßÿÿÿèàÎ&(& N ôÿÿÿééÎ&(& : ÿÿÿçÔÎ&(& N ÿÿÿçÞÎ&(& : 3ÿÿÿçÞÎ&1& D HÿÿÿëÐÎ&(& : ]ÿÿÿìÕÎ&1& D rÿÿÿíØÎ&(& : ‡ÿÿÿçÜÎ&1& D œÿÿ ê½& VÿÿÿëêÉ&)& h {ÿÿÿëêÉ&)& h ÿÿÿêêÉ&)& h ¥ÿÿÿðêÉ& & ^ ºÿÿÿéêÉ&)& h ÏÿÿÿçêÉ&2& r äÿÿÿïêÉ&)& h ùÿÿÿíêÉ& &2 rÿÿÿëêÉ&2& r #ÿÿÿíêÉ&2& r 8ÿÿÿðêÉ&2& r MÿÿÿìêÉ&2& r bÿÿÿíêÉ&2& r wÿÿÿíêÉ&2& r ŒÿÿÿçêÉ&2& r ¡ÿÿÿïêÉ&)& h ¶ÿÿÿîêÉ&)& h ËÿÿÿèìÉ&2& r àÿÿÿèêÉ&)& { õÿÿÿéêÉ&)& h ÿÿÿçêÉ&)& h ÿÿÿçêÉ&)& h 4ÿÿÿçêÉ&2& r IÿÿÿëêÉ&)& h ^ÿÿÿìêÉ&2& r sÿÿÿíêÉ&)& h ˆÿÿÿçêÉ&2& r ÿÿÿëöÎ& …ÿÿÿëöÎ&+& ™ |ÿÿÿëöÎ&+& ™ ‘ÿÿÿêöÎ&+& ™ ¦ÿÿÿðöÎ&"&  »ÿÿÿêöÎ&+& ™ ÐÿÿÿçöÎ&4& £ åÿÿÿïöÎ&+& ™ úÿÿÿíöÎ&4& £ ÿÿÿëöÎ&4& £ $ÿÿÿíöÎ&4& £ 9ÿÿÿíöÎ&4& £ NÿÿÿìöÎ&4& £ cÿÿÿîöÎ&4& £ xÿÿÿíöÎ&4& £ ÿÿÿçöÎ&4& £ ¢ÿÿÿïöÎ&+& ™ ·ÿÿÿîöÎ&+& ™ ÌÿÿÿèöÎ&4& £ áÿÿÿèöÎ&+& ­ öÿÿÿéöÎ&+& ™ ÿÿÿçöÎ&+& ­ ÿÿÿçöÎ&+& ™ 5ÿÿÿçöÎ&4& £ JÿÿÿëöÎ&+& ™ _ÿÿÿìöÎ&4& £ tÿÿÿíöÎ&+& ™ ‰ÿÿÿçöÎ&4& £ žÿÿÿëÐÎ& ·ÿÿÿëÐÎ&-& Ë |ÿÿÿëÐÎ&-& Ë ‘ÿÿÿêëÎ&-& Ë ¦ÿÿÿðÕÎ&$& Á »ÿÿÿêãÎ&-& Ë ÐÿÿÿçßÎ&6& Õ åÿÿÿïÕÎ&-& Ë úÿÿÿíÕÎ&6& Õ ÿÿÿëÐÎ&6& Õ $ÿÿÿíÐÎ&6& Õ 9ÿÿÿíÐÎ&6& Õ NÿÿÿìéÎ&6& Õ cÿÿÿîÔÎ&6& Õ xÿÿÿíÕÎ&6& Õ ÿÿÿçÛÎ&6& Õ ¢ÿÿÿïÐÎ&-& Ë ·ÿÿÿîÐÎ&-& Ë ÌÿÿÿèéÎ&6& Õ áÿÿÿèãÎ&-& ß öÿÿÿééÎ&-& Ë ÿÿÿçÔÎ&-& ß ÿÿÿçâÎ&-& Ë 5ÿÿÿçâÎ&6& Õ JÿÿÿëÐÎ&-& Ë _ÿÿÿìÕÎ&6& Õ tÿÿÿíØÎ&-& Ë ‰ÿÿÿçÜÎ&6& Õ žÿÿÿëÐÎ& èÿÿÿëÐÎ&+& ü |ÿÿÿëÐÎ&+& ü ‘ÿÿÿêëÎ&+& ü ¦ÿÿÿðÕÎ& ñ& »#ÿÿÿêãÎ&+& ü ÐÿÿÿçßÎ&4&  åÿÿÿïÕÎ&+& ü úÿÿÿíÕÎ& &4 ÿÿÿëÐÎ&4&  $ÿÿÿíÐÎ&4&  9ÿÿÿíÐÎ&4&  NÿÿÿìéÎ&4&  cÿÿÿîÔÎ&4&  xÿÿÿíÕÎ&4&  ÿÿÿçÛÎ&4&  ¢ÿÿÿïÐÎ&+& ü ·ÿÿÿîÐÎ&+& ü ÌÿÿÿèéÎ&4&  áÿÿÿèãÎ&+&  öÿÿÿééÎ&+& ü ÿÿÿçÔÎ&+&  ÿÿÿçâÎ&+& ü 5ÿÿÿçâÎ&4&  JÿÿÿëÐÎ&+& ü _ÿÿÿìÕÎ&4&  tÿÿÿíØÎ&+& ü ‰ÿÿÿçÜÎ&4&  žÿÿ ë½& ÿÿÿëëÉ&)& . {ÿÿÿëëÉ&)& . ÿÿÿêëÉ&)& . ¥ÿÿÿðëÉ& & $ ºÿÿÿéëÉ&)& . ÏÿÿÿçëÉ&2& 8 äÿÿÿïëÉ&)& . ùÿÿÿíëÉ&2& 8 ÿÿÿëëÉ&2& 8 #ÿÿÿíëÉ&2& 8 8ÿÿÿðëÉ&2& 8 MÿÿÿìëÉ&2& 8 bÿÿÿíëÉ&2& 8 wÿÿÿíëÉ&2& 8 ŒÿÿÿçëÉ&2& 8 ¡ÿÿÿïëÉ&)& . ¶ÿÿÿîëÉ&)& . ËÿÿÿèìÉ&2& 8 àÿÿÿèëÉ&)& B õÿÿÿéëÉ&)& . ÿÿÿçëÉ&)& B ÿÿÿçëÉ&)& . 4ÿÿÿçëÉ&2& 8 IÿÿÿëëÉ&)& . ^ÿÿÿìëÉ&2& 8 sÿÿÿíëÉ&)& . ˆÿÿÿçëÉ&2& 8 ÿÿÿëëÉ& JÿÿÿëëÉ&*& V {ÿÿÿëëÉ&*& V ÿÿÿêëÉ&*& V ¥ÿÿÿðëÉ&!& Q ºÿÿÿéëÉ&*& V ÏÿÿÿçëÉ&3& k äÿÿÿïëÉ&*& V ùÿÿÿíëÉ&3& k ÿÿÿëëÉ&3& k #ÿÿÿíëÉ&3& k 8ÿÿÿðëÉ&3& k MÿÿÿìëÉ&3& k bÿÿÿíëÉ&3& k wÿÿÿíëÉ&3& k ŒÿÿÿçëÉ&3& k ¡ÿÿÿïëÉ&*& V ¶ÿÿÿîëÉ&*& V ËÿÿÿèìÉ&3& k àÿÿÿèëÉ&*& d õÿÿÿéëÉ&*& V ÿÿÿçëÉ& &* VÿÿÿçëÉ&*& V 4ÿÿÿçëÉ&3& ] IÿÿÿëëÉ&*& V ^ÿÿÿìëÉ&3& k sÿÿÿíëÉ&*& V ˆÿÿÿçëÉ&3& ] ÿÿÿëÐÎ& rÿÿÿëÐÎ&,& € ~ÿÿÿëÐÎ&,& € “ÿÿÿêëÎ&,& € ¨ÿÿÿðÕÎ&#& y ½ÿÿÿéãÎ&,& € ÒÿÿÿçßÎ&5& • çÿÿÿïÕÎ&,& € üÿÿÿíÕÎ&5& • ÿÿÿëÐÎ&5& • &ÿÿÿíÐÎ&5& • ;ÿÿÿíÐÎ&5& • PÿÿÿëéÎ&5& • eÿÿÿîÔÎ&5& • zÿÿÿíÖÎ&5& • ÿÿÿçÛÎ&5& • ¤ÿÿÿïÐÎ&,& € ¹ÿÿÿîÐÎ&,& € ÎÿÿÿêéÎ&5& • ãÿÿÿèãÎ&,& Ž øÿÿÿçéÎ&,& € ÿÿÿçÔÎ&,& Ž "ÿÿÿçÞÎ&,& € 7ÿÿÿíÞÎ&5& ‡ LÿÿÿëÐÎ&,& € aÿÿÿìÕÎ&5& • vÿÿÿíØÎ&,& € ‹ÿÿÿçÜÎ&5& ‡  ÿÿÿëÐÎ& œÿÿÿëÐÎ&.& ª ~ÿÿÿëÐÎ&.& ª “ÿÿÿêëÎ&.& ª ¨ÿÿÿðÕÎ&%& £ ½ÿÿÿéãÎ&.& ª ÒÿÿÿçßÎ&7& ¿ çÿÿÿïÕÎ&.& ª üÿÿÿíÕÎ&7& ¿ ÿÿÿëÐÎ&7& ¿ &ÿÿÿíÐÎ&7& ¿ ;ÿÿÿíÐÎ&7& ¿ PÿÿÿëéÎ&7& ¿ eÿÿÿîÔÎ&7& ¿ zÿÿÿíÖÎ&7& ¿ ÿÿÿçÛÎ&7& ¿ ¤ÿÿÿïÐÎ&.& ª ¹ÿÿÿîÐÎ&.& ª ÎÿÿÿêéÎ&7& ¿ ãÿÿÿèãÎ&.& ¸ øÿÿÿçéÎ&.& ª ÿÿÿçÔÎ&.& ¸ "ÿÿÿçÞÎ&.& ª 7ÿÿÿíÞÎ&7& ± LÿÿÿëÐÎ&.& ª aÿÿÿìÕÎ&7& ¿ vÿÿÿíØÎ&.& ª ‹ÿÿÿçÜÎ&7& ±  ÿÿÿëÐÎ& ÆÿÿÿëÐÎ&,& Ô }ÿÿÿëÐÎ&,& Ô ’ÿÿÿêëÎ&,& Ô §ÿÿÿðÕÎ&#& Í ¼ÿÿÿéãÎ&,& Ô ÑÿÿÿçßÎ&5& é æÿÿÿïÕÎ&,& Ô ûÿÿÿíÕÎ&5& é ÿÿÿëÐÎ&5& é %ÿÿÿíÐÎ&5& é :ÿÿÿíÐÎ&5& é OÿÿÿëèÎ&5& é dÿÿÿîÔÎ&5& é yÿÿÿíÖÎ&5& é ŽÿÿÿçÛÎ&5& é £ÿÿÿïÐÎ&,& Ô ¸ÿÿÿîÐÎ&,& Ô ÍÿÿÿêéÎ&5& é âÿÿÿèãÎ&,& â ÷ÿÿÿçéÎ&,& Ô ÿÿÿçÔÎ&,& â !ÿÿÿçÞÎ&,& Ô 6ÿÿÿçÞÎ&5& Û KÿÿÿëÐÎ&,& Ô `ÿÿÿìÕÎ&5& é uÿÿÿíØÎ&,& Ô ŠÿÿÿçÖÎ&5& Û ŸÿÿÿíëÉ& ðÿÿÿëëÉ&*& þ {ÿÿÿëëÉ&*& þ ÿÿÿêëÉ&*& þ ¥ÿÿÿðëÉ&!& ÷ ºÿÿÿéëÉ&*& þ ÏÿÿÿçëÉ&3&  äÿÿÿïëÉ&*& þ ùÿÿÿíëÉ&3&  ÿÿÿëëÉ&3&  #ÿÿÿíëÉ&3&  8ÿÿÿðëÉ&3&  MÿÿÿìëÉ&3&  bÿÿÿíëÉ&3&  wÿÿÿíëÉ&3&  ŒÿÿÿçëÉ&3&  ¡ÿÿÿïëÉ&*& þ ¶ÿÿÿîëÉ&*& þ ËÿÿÿèìÉ&3&  àÿÿÿèëÉ&*&  õÿÿÿéëÉ&*& þ ÿÿÿçëÉ&*&  ÿÿÿçëÉ&*& þ 4ÿÿÿçëÉ&3&  IÿÿÿëëÉ&*& þ ^ÿÿÿìëÉ&3&  sÿÿÿíëÉ&*& þ ˆÿÿÿçëÉ&3&  ÿÿ ë½& ÿÿÿëëÉ&!& ' {ÿÿÿëëÉ&)& ' ÿÿÿêëÉ&)& ' ¥ÿÿÿðëÉ&!& º ÿÿÿéëÉ&)& ' ÏÿÿÿçëÉ&2& < äÿÿÿïëÉ&!& ù 'ÿÿÿíëÉ& <& 3ÿÿÿëëÉ&2& < #ÿÿÿíëÉ&2& < 8ÿÿÿðëÉ&2& < MÿÿÿìëÉ&2& < bÿÿÿíëÉ&2& < wÿÿÿíëÉ&2& < ŒÿÿÿçëÉ&2& < ¡ÿÿÿïëÉ&)& ' ¶ÿÿÿîëÉ&)& ' ËÿÿÿèìÉ&2& < àÿÿÿèëÉ&)& 5 õÿÿÿéëÉ&)& ' ÿÿÿçëÉ&)& 5 ÿÿÿçëÉ&)& ' 4ÿÿÿçëÉ&2& . IÿÿÿëëÉ&)& ' ^ÿÿÿìëÉ&2& < sÿÿÿíëÉ&)& ' ˆÿÿÿçëÉ&2& . ÿÿÿëÐÎ& CÿÿÿëÐÎ&+& P |ÿÿÿëÐÎ&+& P ‘ÿÿÿêëÎ&+& P ¦ÿÿÿðÕÎ&"& I »ÿÿÿêãÎ&+& P ÐÿÿÿçßÎ&4& e åÿÿÿïÕÎ&+& P úÿÿÿíÕÎ&4& e ÿÿÿëÐÎ&4& e $ÿÿÿíÐÎ&4& e 9ÿÿÿíÐÎ&4& e NÿÿÿìéÎ&4& e cÿÿÿîÔÎ&4& e xÿÿÿíÕÎ&4& e ÿÿÿçÛÎ&4& e ¢ÿÿÿïÐÎ&+& P ·ÿÿÿîÐÎ&+& P ÌÿÿÿèéÎ&4& e áÿÿÿèãÎ&+& ^ öÿÿÿééÎ&+& P ÿÿÿçÔÎ&+& ^ ÿÿÿçâÎ&+& P 5ÿÿÿçâÎ&4& W JÿÿÿëÐÎ&+& P _ÿÿÿìÕÎ&4& e tÿÿÿíØÎ&+& P ‰ÿÿÿçÜÎ&4& W žÿÿÿëÐÎ& iÿÿÿëÐÎ&&& o yÿÿÿëÐÎ&&& o ŽÿÿÿèìÎ&&& o £ÿÿÿðÕÎ&& l ¸ÿÿÿéãÎ&&& o ÍÿÿÿçßÎ&/& u âÿÿÿïÕÎ&&& o ÷ÿÿÿíÕÎ&/& u ÿÿÿëÐÎ&/& u !ÿÿÿíÐÎ&/& u 6ÿÿÿíÐÎ&/& u KÿÿÿìéÎ&/& u `ÿÿÿíÔÎ&/& u uÿÿÿíÕÎ&/& u ŠÿÿÿçÛÎ&/& u ŸÿÿÿïÐÎ&&& o ´ÿÿÿîÐÎ&&& o ÉÿÿÿèìÎ&/& u ÞÿÿÿèãÎ&&& r óÿÿÿééÎ&&& o ÿÿÿçÔÎ&&& r ÿÿÿçÞÎ&&& o 2ÿÿÿçÞÎ&/& o GÿÿÿëÐÎ&&& o \ÿÿÿìÕÎ&/& u qÿÿÿíØÎ&&& o †ÿÿÿçÖÎ&/& o ›ÿÿÿëöÎ&9VÿÿÿëõÎ&J&\ xÿÿÿëõÎ&J&\ ÿÿÿèõÎ&J&\ ¢ÿÿÿðöÎ&A&Y ·ÿÿÿêõÎ&J&\ ÌÿÿÿçõÎ&S&b áÿÿÿïõÎ&J&\ öÿÿÿíõÎ&S&b ÿÿÿëõÎ&S&b ÿÿÿíõÎ&S&b 5ÿÿÿíõÎ&S&b JÿÿÿìõÎ&S&b _ÿÿÿíõÎ&S&b tÿÿÿíõÎ&S&b ‰ÿÿÿçõÎ&S&b žÿÿÿïõÎ&J&\ ³ÿÿÿîõÎ&J&\ ÈÿÿÿèõÎ&S&b ÝÿÿÿèõÎ&J&_ òÿÿÿéõÎ&J&\ ÿÿÿçõÎ&_& *JÿÿÿçõÎ&J&\ 1ÿÿÿçõÎ&S&\ FÿÿÿëõÎ&J&\ [ÿÿÿìõÎ&S&b pÿÿÿíõÎ&J&\ …ÿÿÿçõÎ&S&\ šÿÿÿëÑÎ&e:ÿÿÿëÐÎ&L&k zÿÿÿëÐÎ&L&k ÿÿÿèìÎ&L&k ¤ÿÿÿðÕÎ&C&h ¹ÿÿÿéãÎ&L&k ÎÿÿÿçßÎ&U&q ãÿÿÿïÕÎ&L&k øÿÿÿíÕÎ&U&q ÿÿÿëÑÎ&U&q "ÿÿÿíÑÎ&U&q 7ÿÿÿíÑÎ&U&q LÿÿÿìéÎ&U&q aÿÿÿíÔÎ&U&q vÿÿÿíÕÎ&U&q ‹ÿÿÿçÛÎ&U&q  ÿÿÿïÐÎ&L&k µÿÿÿîÐÎ&L&k ÊÿÿÿèìÎ&U&q ßÿÿÿèàÍ&L&n ôÿÿÿééÎ&L&k ÿÿÿçÔÍ&L&n ÿÿÿçÞÎ&L&k 3ÿÿÿçÞÎ&U&k HÿÿÿëÐÎ&L&k ]ÿÿÿìÕÎ&U&q rÿÿÿíØÎ&L&k ‡ÿÿÿçÜÎ&U&k œÿÿÿëöÎ&8tÿÿÿëöÎ&J&z xÿÿÿëöÎ&J&z ÿÿÿèöÎ&J&z ¢ÿÿÿðöÎ&A&w ·ÿÿÿêöÎ&J&z ÌÿÿÿçöÎ&S&€ áÿÿÿïöÎ&J&z öÿÿÿíöÎ&S&€ ÿÿÿëöÎ&S&€ ÿÿÿíöÎ&S&€ 5ÿÿÿíöÎ&S&€ JÿÿÿìöÎ&S&€ _ÿÿÿíöÎ&S&€ tÿÿÿíöÎ&S&€ ‰ÿÿÿçöÎ&S&€ žÿÿÿïöÎ&J&z ³ÿÿÿîöÎ&J&z ÈÿÿÿèöÎ&S&€ ÝÿÿÿèöÎ&J&} òÿÿÿéöÎ&J&z ÿÿÿçöÎ&J&} ÿÿÿçöÎ&J&z 1ÿÿÿçöÎ&S&z FÿÿÿëöÎ&J&z [ÿÿÿìöÎ&S&€ pÿÿÿíöÎ&J&z …ÿÿÿçöÎ&S&z šÿÿÿëÐÎ&:ƒÿÿÿëÐÎ&L&‰ zÿÿÿëÐÎ&L&‰ ÿÿÿèìÎ&L&‰ ¤ÿÿÿðÕÎ&C&† ¹ÿÿÿéãÎ&L&‰ ÎÿÿÿçßÎ&U& ãÿÿÿïÕÎ&L&‰ øÿÿÿíÕÎ&U& ÿÿÿëÐÎ&U& "ÿÿÿíÐÎ&U& 7ÿÿÿíÐÎ&U& LÿÿÿìéÎ&U& aÿÿÿíÔÎ&U& vÿÿÿíÕÎ&U& ‹ÿÿÿçÛÎ&U&  ÿÿÿïÐÎ&L&‰ µÿÿÿîÐÎ&L&‰ ÊÿÿÿèìÎ&U& ßÿÿÿèàÎ&L&Œ ôÿÿÿééÎ&L&‰ ÿÿÿçÔÎ&L&Œ ÿÿÿçÞÎ&L&‰ 3ÿÿÿçÞÎ&U&‰ HÿÿÿëÐÎ&L&‰ ]ÿÿÿìÕÎ&U& rÿÿÿíØÎ&L&‰ ‡ÿÿÿçÜÎ&U&‰ œÿÿÿëÐÎ&9“ÿÿÿëÐÎ&K&¦ yÿÿÿëÐÎ&K&¦ ŽÿÿÿèìÎ&K&¦ £ÿÿÿðÕÎ&B& ¸ÿÿÿéãÎ&K&¦ ÍÿÿÿçßÎ&T&° âÿÿÿïÕÎ&K&¦ ÷ÿÿÿíÕÎ&¤& KÿÿÿëÐÎ&T&° !ÿÿÿíÐÎ&T&° 6ÿÿÿíÐÎ&T&° KÿÿÿìéÎ&T&° `ÿÿÿíÔÎ&T&° uÿÿÿíÕÎ&T&° ŠÿÿÿçÛÎ&T&° ŸÿÿÿïÐÎ&K&¦ ´ÿÿÿîÐÎ&K&¦ ÉÿÿÿèìÎ&T&° ÞÿÿÿèãÎ&K&º óÿÿÿééÎ&K&¦ ÿÿÿçÔÎ&K&º ÿÿÿçÞÎ&K&¦ 2ÿÿÿçÞÎ&T&° GÿÿÿëÐÎ&K&¦ \ÿÿÿìÕÎ&T&° qÿÿÿíØÎ&K&¦ †ÿÿÿçÖÎ&T&° ›ÿÿÿëÐÎ&:ÃÿÿÿëÐÎ&L&Ö zÿÿÿëÐÎ&L&Ö ÿÿÿèìÎ&L&Ö ¤ÿÿÿðÕÎ&C&Ì ¹ÿÿÿéãÎ&L&Ö ÎÿÿÿçßÎ&U&à ãÿÿÿïÕÎ&L&Ö øÿÿÿíÕÎ&U&à ÿÿÿëÐÎ&U&à "ÿÿÿíÐÎ&U&à 7ÿÿÿíÐÎ&U&à LÿÿÿìéÎ&U&à aÿÿÿíÔÎ&U&à vÿÿÿíÕÎ&U&à ‹ÿÿÿçÛÎ&U&à  ÿÿÿïÐÎ&L&Ö µÿÿÿîÐÎ&L&Ö ÊÿÿÿèìÎ&U&à ßÿÿÿèàÎ&L&ê ôÿÿÿééÎ&L&Ö ÿÿÿçÔÎ&L&ê ÿÿÿçÞÎ&L&Ö 3ÿÿÿçÞÎ&U&à HÿÿÿëÐÎ&L&Ö ]ÿÿÿìÕÎ&U&à rÿÿÿíØÎ&L&Ö ‡ÿÿÿçÜÎ&U&à œÿÿÿëÐÎ&9ôÿÿÿëÐÎ&K&  yÿÿÿëÐÎ&K&  ŽÿÿÿèìÎ&K&  £ÿÿÿðÕÎ&B&þ ¸ÿÿÿéãÎ&K&  ÍÿÿÿçßÎ&T&  âÿÿÿïÕÎ&K&  ÷ÿÿÿíÕÎ&T&  ÿÿÿëÐÎ&T&  !ÿÿÿíÐÎ&T&  6ÿÿÿíÐÎ&T&  KÿÿÿìéÎ&T&  `ÿÿÿíÔÎ&T&  uÿÿÿíÕÎ&T&  ŠÿÿÿçÛÎ&T&  ŸÿÿÿïÐÎ&K&  ´ÿÿÿîÐÎ&K&  ÉÿÿÿèìÎ&T&  ÞÿÿÿèãÎ&K&  óÿÿÿééÎ&K&  ÿÿÿçÔÎ&K&  ÿÿÿçÞÎ&K&  2ÿÿÿçÞÎ&T&  GÿÿÿëÐÎ&K&  \ÿÿÿìÕÎ&T&  qÿÿÿíØÎ&K&  †ÿÿÿçÖÎ&T&  ›ÿÿÿëÐÎ&: #ÿÿÿëÐÎ&L& 7 zÿÿÿëÐÎ&L& 7 ÿÿÿèìÎ&L& 7 ¤ÿÿÿðÕÎ&C& - ¹ÿÿÿéãÎ&L& 7 ÎÿÿÿçßÎ&U& A ãÿÿÿïÕÎ&L& 7 øÿÿÿíÕÎ&U& A ÿÿÿëÐÎ&U& A "ÿÿÿíÐÎ&U& A 7ÿÿÿíÐÎ&U& A LÿÿÿìéÎ&U& A aÿÿÿíÔÎ&U& A vÿÿÿíÕÎ&U& A ‹ÿÿÿçÛÎ&U& A  ÿÿÿïÐÎ&L& 7 µÿÿÿîÐÎ&L& 7 ÊÿÿÿèìÎ&U& A ßÿÿÿèàÎ&L& K ôÿÿÿééÎ&L& 7 ÿÿÿçÔÎ&L& K ÿÿÿçÞÎ&L& 7 3ÿÿÿçÞÎ&U& A HÿÿÿëÐÎ&L& 7 ]ÿÿÿìÕÎ&U& A rÿÿÿíØÎ&L& 7 ‡ÿÿÿçÜÎ&U& A œÿÿ ê½&; UÿÿÿëêÊ&M& h {ÿÿÿëêÊ&M& h ÿÿÿêêÊ&M& h ¥ÿÿÿðêÊ&D& ^ ºÿÿÿéêÊ&M& h ÏÿÿÿçêÉ&V& r äÿÿÿïêÊ&M& h ùÿÿÿíêÉ&V& r ÿÿÿëêÉ&V& r #ÿÿÿíêÉ&V& r 8ÿÿÿðêÉ&V& r MÿÿÿìêÉ&V& r bÿÿÿíêÉ&V& r wÿÿÿíêÉ&V& r ŒÿÿÿçêÉ&V& r ¡ÿÿÿïêÊ&M& h ¶ÿÿÿîêÊ&M& h ËÿÿÿèìÉ&V& r àÿÿÿèêÊ&M& { õÿÿÿéêÊ&M& h ÿÿÿçêÊ&M& { ÿÿÿçêÊ&M& h 4ÿÿÿçêÉ&V& r IÿÿÿëêÊ&M& h ^ÿÿÿìêÉ&V& r sÿÿÿíêÊ&M& h ˆÿÿÿçêÉ&V& r ÿÿÿëöÎ&= …ÿÿÿëöÎ&O& ™ |ÿÿÿëöÎ&O& ™ ‘ÿÿÿêöÎ&O& ™ ¦ÿÿÿðöÎ&F&  »ÿÿÿêöÎ&O& ™ ÐÿÿÿçöÎ&X& £ åÿÿÿïöÎ&O& ™ úÿÿÿíöÎ&X& £ ÿÿÿëöÎ&X& £ $ÿÿÿíöÎ&X& £ 9ÿÿÿíöÎ&X& £ NÿÿÿìöÎ&X& £ cÿÿÿîöÎ&X& £ xÿÿÿíöÎ&X& £ ÿÿÿçöÎ&X& £ ¢ÿÿÿïöÎ&O& ™ ·ÿÿÿîöÎ&O& ™ ÌÿÿÿèöÎ&X& £ áÿÿÿèöÎ&O& ­ öÿÿÿéöÎ&O& ™ ÿÿÿçöÎ&O& ­ ÿÿÿçöÎ&O& ™ 5ÿÿÿçöÎ&X& £ JÿÿÿëöÎ&O& ™ _ÿÿÿìöÎ&X& £ tÿÿÿíöÎ&O& ™ ‰ÿÿÿçöÎ&X& £ žÿÿÿëÐÎ&? ·ÿÿÿëÐÎ&Q& Ë |ÿÿÿëÐÎ&Q& Ë ‘ÿÿÿêëÎ&Q& Ë ¦ÿÿÿðÕÎ&H& Á »ÿÿÿêãÎ&Q& Ë ÐÿÿÿçßÎ&Z& Õ åÿÿÿïÕÎ&Q& Ë úÿÿÿíÕÎ&Z& Õ ÿÿÿëÐÎ&Z& Õ $ÿÿÿíÐÎ&Z& Õ 9ÿÿÿíÐÎ&Z& Õ NÿÿÿìéÎ&Z& Õ cÿÿÿîÔÎ&Z& Õ xÿÿÿíÕÎ&Z& Õ ÿÿÿçÛÎ&Z& Õ ¢ÿÿÿïÐÎ&Q& Ë ·ÿÿÿîÐÎ&Q& Ë ÌÿÿÿèéÎ&Z& Õ áÿÿÿèãÎ&Q& ß öÿÿÿééÎ&Q& Ë ÿÿÿçÔÎ&Q& ß ÿÿÿçâÎ&Q& Ë 5ÿÿÿçâÎ&Z& Õ JÿÿÿëÐÎ&Q& Ë _ÿÿÿìÕÎ&Z& Õ tÿÿÿíØÎ&Q& Ë ‰ÿÿÿçÜÎ&Z& Õ žÿÿÿëÐÎ&= éÿÿÿëÐÎ&O& ü |ÿÿÿëÐÎ&O& ü ‘ÿÿÿêëÎ&O& ü ¦ÿÿÿðÕÎ&F& ò »ÿÿÿêãÎ&O& ü ÐÿÿÿçßÎ&X&  åÿÿÿïÕÎ&O& ü úÿÿÿíÕÎ&X&  ÿÿÿëÐÎ&X&  $ÿÿÿíÐÎ&X&  9ÿÿÿíÐÎ&X&  NÿÿÿìéÎ&X&  cÿÿÿîÔÎ&X&  xÿÿÿíÕÎ&X&  ÿÿÿçÛÎ&X&  ¢ÿÿÿïÐÎ&O& ü ·ÿÿÿîÐÎ&O& ü ÌÿÿÿèéÎ&X&  áÿÿÿèãÎ&O&  öÿÿÿééÎ&O& ü ÿÿÿçÔÎ&O&  ÿÿÿçâÎ&O& ü 5ÿÿÿçâÎ&X&  JÿÿÿëÐÎ&O& ü _ÿÿÿìÕÎ&X&  tÿÿÿíØÎ&O& ü ‰ÿÿÿçÜÎ&X&  žÿÿ ë½&; ÿÿÿëëÊ&M& . {ÿÿÿëëÊ&M& . ÿÿÿêëÊ&M& . ¥ÿÿÿðëÊ&D& $ ºÿÿÿéëÊ&M& . ÏÿÿÿçëÉ&V& 8 äÿÿÿïëÊ&M& . ùÿÿÿíëÉ&V& 8 ÿÿÿëëÉ&V& 8 #ÿÿÿíëÉ&V& 8 8ÿÿÿðëÉ&V& 8 MÿÿÿìëÉ&V& 8 bÿÿÿíëÉ&V& 8 wÿÿÿíëÉ&V& 8 ŒÿÿÿçëÉ&V& 8 ¡ÿÿÿïëÊ&M& . ¶ÿÿÿîëÊ&M& . ËÿÿÿèìÉ&V& 8 àÿÿÿèëÊ&M& B õÿÿÿéëÊ&M& . ÿÿÿçëÊ&M& B ÿÿÿçëÊ&M& . 4ÿÿÿçëÉ&V& 8 IÿÿÿëëÊ&M& . ^ÿÿÿìëÉ&V& 8 sÿÿÿíëÊ&M& . ˆÿÿÿçëÉ&V& 8 ÿÿÿëëÊ&< IÿÿÿëëÊ&N& T {ÿÿÿëëÊ&N& T ÿÿÿêëÊ&N& T ¥ÿÿÿðëÊ&E& O ºÿÿÿéëÊ&N& T ÏÿÿÿçëÉ&W& i äÿÿÿïëÊ&N& T ùÿÿÿíëÉ&W& i ÿÿÿëëÉ&W& i #ÿÿÿíëÉ&W& i 8ÿÿÿðëÉ&W& i MÿÿÿìëÉ&W& i bÿÿÿíëÉ&W& i wÿÿÿíëÉ&W& i ŒÿÿÿçëÉ&W& i ¡ÿÿÿïëÊ&N& T ¶ÿÿÿîëÊ&N& T ËÿÿÿèìÉ&W& i àÿÿÿèëÊ&N& b õÿÿÿéëÊ&N& T ÿÿÿçëÊ&N& T ÿÿÿçëÊ&N& T 4ÿÿÿçëÉ&W& [ IÿÿÿëëÊ&N& T ^ÿÿÿìëÉ&W& i sÿÿÿíëÊ&N& T ˆÿÿÿçëÉ&W& [ ÿÿÿëÐÎ&> pÿÿÿëÐÎ&P& ~ ~ÿÿÿëÐÎ&P& ~ “ÿÿÿêëÎ&P& ~ ¨ÿÿÿðÕÎ&G& w ½ÿÿÿéãÎ&P& ~ ÒÿÿÿçßÎ&Y& “ çÿÿÿïÕÎ&P& ~ üÿÿÿíÕÎ&Y& “ ÿÿÿëÐÎ&Y& “ &ÿÿÿíÐÎ&Y& “ ;ÿÿÿíÐÎ&Y& “ PÿÿÿëéÎ&Y& “ eÿÿÿîÔÎ&Y& “ zÿÿÿíÖÎ&Y& “ ÿÿÿçÛÎ&Y& “ ¤ÿÿÿïÐÎ&P& ~ ¹ÿÿÿîÐÎ&P& ~ ÎÿÿÿêéÎ&Y& “ ãÿÿÿèãÎ&P& Œ øÿÿÿçéÎ&P& ~ ÿÿÿçÔÎ&P& Œ "ÿÿÿçÞÎ&P& ~ 7ÿÿÿíÞÎ&Y& … LÿÿÿëÐÎ&P& ~ aÿÿÿìÕÎ&Y& “ vÿÿÿíØÎ&P& ~ ‹ÿÿÿçÜÎ&Y& …  ÿÿÿëÐÎ&@ šÿÿÿëÐÎ&R& ¨ ~ÿÿÿëÐÎ&R& ¨ “ÿÿÿêëÎ&R& ¨ ¨ÿÿÿðÕÎ&I& ¡ ½ÿÿÿéãÎ&R& ¨ ÒÿÿÿçßÎ&[& ½ çÿÿÿïÕÎ&R& ¨ üÿÿÿíÕÎ&[& ½ ÿÿÿëÐÎ&[& ½ &ÿÿÿíÐÎ&[& ½ ;ÿÿÿíÐÎ&[& ½ PÿÿÿëéÎ&[& ½ eÿÿÿîÔÎ&[& ½ zÿÿÿíÖÎ&[& ½ ÿÿÿçÛÎ&[& ½ ¤ÿÿÿïÐÎ&R& ¨ ¹ÿÿÿîÐÎ&R& ¨ ÎÿÿÿêéÎ&[& ½ ãÿÿÿèãÎ&R& ¶ øÿÿÿçéÎ&R& ¨ ÿÿÿçÔÎ&R& ¶ "ÿÿÿçÞÎ&R& ¨ 7ÿÿÿíÞÎ&[& ¯ LÿÿÿëÐÎ&R& ¨ aÿÿÿìÕÎ&[& ½ vÿÿÿíØÎ&R& ¨ ‹ÿÿÿçÜÎ&[& ¯  ÿÿÿëÐÎ&> ÄÿÿÿëÐÎ&P& Ò }ÿÿÿëÐÎ&P& Ò ’ÿÿÿêëÎ&P& Ò §ÿÿÿðÕÎ&G& Ë ¼ÿÿÿéãÎ&P& Ò ÑÿÿÿçßÎ&Y& ç æÿÿÿïÕÎ&P& Ò ûÿÿÿíÕÎ&Y& ç ÿÿÿëÐÎ&Y& ç %ÿÿÿíÐÎ&Y& ç :ÿÿÿíÐÎ&Y& ç OÿÿÿëèÎ&Y& ç dÿÿÿîÔÎ&Y& ç yÿÿÿíÖÎ&Y& ç ŽÿÿÿçÛÎ&Y& ç £ÿÿÿïÐÎ&P& Ò ¸ÿÿÿîÐÎ&P& Ò ÍÿÿÿêéÎ&Y& ç âÿÿÿèãÎ&P& à ÷ÿÿÿçéÎ&P& Ò ÿÿÿçÔÎ&P& à !ÿÿÿçÞÎ&P& Ò 6ÿÿÿçÞÎ&Y& Ù KÿÿÿëÐÎ&P& Ò `ÿÿÿìÕÎ&Y& ç uÿÿÿíØÎ&P& Ò ŠÿÿÿçÖÎ&Y& Ù ŸÿÿÿíëÊ&< îÿÿÿëëÊ&N& ü {ÿÿÿëëÊ&N& ü ÿÿÿêëÊ&N& ü ¥ÿÿÿðëÊ&E& õ ºÿÿÿéëÊ&N& ü ÏÿÿÿçëÉ&W&  äÿÿÿïëÊ&N& ü ùÿÿÿíëÉ&W&  ÿÿÿëëÉ&W&  #ÿÿÿíëÉ&W&  8ÿÿÿðëÉ&W&  MÿÿÿìëÉ&W&  bÿÿÿíëÉ&W&  wÿÿÿíëÉ&W&  ŒÿÿÿçëÉ&W&  ¡ÿÿÿïëÊ&N& ü ¶ÿÿÿîëÊ&N& ü ËÿÿÿèìÉ&W&  àÿÿÿèëÊ&N&  õÿÿÿéëÊ&N& ü ÿÿÿçëÊ&N&  ÿÿÿçëÊ&N& ü 4ÿÿÿçëÉ&W&  IÿÿÿëëÊ&N& ü ^ÿÿÿìëÉ&W&  sÿÿÿíëÊ&N& ü ˆÿÿÿçëÉ&W&  ÿÿ ë½&; ÿÿÿëëÊ& %& {MÿÿÿëëÊ&M& % ÿÿÿêëÊ&M& % ¥ÿÿÿðëÊ&D&  ºÿÿÿéëÊ&M& % ÏÿÿÿçëÉ&V& : äÿÿÿïëÊ&M& % ùÿÿÿíëÉ&V& : ÿÿÿëëÉ&V& : #ÿÿÿíëÉ&V& : 8ÿÿÿðëÉ&V& : MÿÿÿìëÉ&V& : bÿÿÿíëÉ&V& : wÿÿÿíëÉ&V& : ŒÿÿÿçëÉ&V& : ¡ÿÿÿïëÊ&M& % ¶ÿÿÿîëÊ&M& % ËÿÿÿèìÉ&V& : àÿÿÿèëÊ& 3& õMÿÿÿéëÊ&M& % ÿÿÿçëÊ&M& 3 ÿÿÿçëÊ&M& % 4ÿÿÿçëÉ&V& , IÿÿÿëëÊ&M& % ^ÿÿÿìëÉ&V& : sÿÿÿíëÊ&M& % ˆÿÿÿçëÉ&V& , ÿÿÿëÐÎ&= AÿÿÿëÐÎ&O& N |ÿÿÿëÐÎ&O& N ‘ÿÿÿêëÎ&O& N ¦ÿÿÿðÕÎ&F& G »ÿÿÿêãÎ&O& N ÐÿÿÿçßÎ&X& c åÿÿÿïÕÎ&O& N úÿÿÿíÕÎ&X& c ÿÿÿëÐÎ&X& c $ÿÿÿíÐÎ&X& c 9ÿÿÿíÐÎ&X& c NÿÿÿìéÎ&X& c cÿÿÿîÔÎ&X& c xÿÿÿíÕÎ&X& c ÿÿÿçÛÎ&X& c ¢ÿÿÿïÐÎ&O& N ·ÿÿÿîÐÎ&O& N ÌÿÿÿèéÎ&X& c áÿÿÿèãÎ&O& \ öÿÿÿééÎ&O& N ÿÿÿçÔÎ&O& \ ÿÿÿçâÎ&O& N 5ÿÿÿçâÎ&X& U JÿÿÿëÐÎ&O& N _ÿÿÿìÕÎ&X& c tÿÿÿíØÎ&O& N ‰ÿÿÿçÜÎ&X& U žÿÿÿëÐÎ&8 jÿÿÿëÐÎ&J& p yÿÿÿëÐÎ&J& p ŽÿÿÿèìÎ&J& p £ÿÿÿðÕÎ&A& m ¸ÿÿÿéãÎ&J& p ÍÿÿÿçßÎ&S& v âÿÿÿïÕÎ&J& p ÷ÿÿÿíÕÎ&S& v ÿÿÿëÐÎ&S& v !ÿÿÿíÐÎ&S& v 6ÿÿÿíÐÎ&S& v KÿÿÿìéÎ&S& v `ÿÿÿíÔÎ&S& v uÿÿÿíÕÎ&S& v ŠÿÿÿçÛÎ&S& v ŸÿÿÿïÐÎ&J& p ´ÿÿÿîÐÎ&J& p ÉÿÿÿèìÎ&S& v ÞÿÿÿèãÎ&J& s óÿÿÿééÎ&J& p ÿÿÿçÔÎ&J& s ÿÿÿçÞÎ&J& p 2ÿÿÿçÞÎ&S& p GÿÿÿëÐÎ&J& p \ÿÿÿìÕÎ&S& v qÿÿÿíØÎ&J& p †ÿÿÿçÖÎ&S& p ›ÿÿÿëöÎ&U\ÿÿÿëõÎ&[& ymÿÿÿëõÎ&m&[ ÿÿÿèõÎ&m&[ ¢ÿÿÿðöÎ&e& ·XÿÿÿêõÎ&m&[ ÌÿÿÿçõÎ&v&a áÿÿÿïõÎ&m&[ öÿÿÿíõÎ&v&a ÿÿÿëõÎ&v&a ÿÿÿíõÎ&v&a 5ÿÿÿíõÎ&v&a JÿÿÿìõÎ&v&a _ÿÿÿíõÎ&v&a tÿÿÿíõÎ&v&a ‰ÿÿÿçõÎ&v&a žÿÿÿïõÎ&[&m ³ÿÿÿîõÎ&m&[ ÈÿÿÿèõÎ&v&a ÝÿÿÿèöÎ&m&^ òÿÿÿéõÎ&m&[ ÿÿÿçöÎ&m&^ ÿÿÿçõÎ&m&[ 1ÿÿÿçõÎ&v&[ FÿÿÿëõÎ&m&[ [ÿÿÿìõÎ&v&a pÿÿÿíõÎ&m&[ …ÿÿÿçõÎ&v&[ šÿÿÿëÐÎ&d^ÿÿÿëÐÎ&o&j zÿÿÿëÐÎ&o&j ÿÿÿèìÎ&o&j ¤ÿÿÿðÕÎ&f&g ¹ÿÿÿéãÎ&o&j ÎÿÿÿçßÎ&x&p ãÿÿÿïÕÎ&o&j øÿÿÿíÕÎ&x&p ÿÿÿëÐÎ&x&p "ÿÿÿíÐÎ&x&p 7ÿÿÿíÐÎ&x&p LÿÿÿìéÎ&x&p aÿÿÿíÔÎ&x&p vÿÿÿíÕÎ&x&p ‹ÿÿÿçÛÎ&x&p  ÿÿÿïÐÎ&o&j µÿÿÿîÐÎ&o&j ÊÿÿÿèìÎ&x&p ßÿÿÿèàÎ&o&m ôÿÿÿééÎ&o&j ÿÿÿçÔÎ&o&m ÿÿÿçÞÎ&o&j 3ÿÿÿçÞÎ&x&j HÿÿÿëÐÎ&o&j ]ÿÿÿìÕÎ&x&p rÿÿÿíØÎ&o&j ‡ÿÿÿçÜÎ&x&j œÿÿÿëöÎ&\sÿÿÿëöÎ&m& yyÿÿÿëöÎ&m&y ÿÿÿèöÎ&m&y ¢ÿÿÿðöÎ&e&v ·ÿÿÿêöÎ&m&y ÌÿÿÿçöÎ&v& áÿÿÿïöÎ&m&y öÿÿÿíöÎ&v& ÿÿÿëöÎ&v& ÿÿÿíöÎ&v& 5ÿÿÿíöÎ&v& JÿÿÿìöÎ&v& _ÿÿÿíöÎ&v& tÿÿÿíöÎ&v& ‰ÿÿÿçöÎ&v& žÿÿÿïöÎ&m&y ³ÿÿÿîöÎ&m&y ÈÿÿÿèöÎ&v& ÝÿÿÿèöÎ&m&| òÿÿÿéöÎ&m&y ÿÿÿçöÎ&m&| ÿÿÿçöÎ&m&y 1ÿÿÿçöÎ&v&y FÿÿÿëöÎ&m&y [ÿÿÿìöÎ&v& pÿÿÿíöÎ&m&y …ÿÿÿçöÎ&v&y šÿÿÿëÐÎ&^‚ÿÿÿëÐÎ&o&ˆ zÿÿÿëÐÎ&o&ˆ ÿÿÿèìÎ&o&ˆ ¤ÿÿÿðÕÎ&f&… ¹ÿÿÿéãÎ&o&ˆ ÎÿÿÿçßÎ&x&Ž ãÿÿÿïÕÎ&o&ˆ øÿÿÿíÕÎ&x&Ž ÿÿÿëÐÎ&x&Ž "ÿÿÿíÐÎ&x&Ž 7ÿÿÿíÐÎ&x&Ž LÿÿÿìéÎ&x&Ž aÿÿÿíÔÎ&x&Ž vÿÿÿíÕÎ&x&Ž ‹ÿÿÿçÛÎ&x&Ž  ÿÿÿïÐÎ&o&ˆ µÿÿÿîÐÎ&o&ˆ ÊÿÿÿèìÎ&x&Ž ßÿÿÿèàÎ&o&‹ ôÿÿÿééÎ&o&ˆ ÿÿÿçÔÎ&o&‹ ÿÿÿçÞÎ&o&ˆ 3ÿÿÿçÞÎ&x&ˆ HÿÿÿëÐÎ&o&ˆ ]ÿÿÿìÕÎ&x&Ž rÿÿÿíØÎ&o&ˆ ‡ÿÿÿçÜÎ&x&ˆ œÿÿÿëÐÎ&]šÿÿÿëÐÎ&n&¬ yÿÿÿëÐÎ&n&¬ ŽÿÿÿèìÎ&n&¬ £ÿÿÿðÕÍ& ¸&e ÿÿÿéãÎ&n&¬ ÍÿÿÿçßÎ&w&¶ âÿÿÿïÕÎ&n&¬ ÷ÿÿÿíÕÎ&w&¶ ÿÿÿëÐÎ&w&¶ !ÿÿÿíÐÎ&w&¶ 6ÿÿÿíÐÎ&w&¶ KÿÿÿìéÎ&w&¶ `ÿÿÿíÔÎ&w&¶ uÿÿÿíÕÎ&w&¶ ŠÿÿÿçÛÎ&w&¶ ŸÿÿÿïÐÎ&n& ´¬ÿÿÿîÐÎ&¬&n ÉÿÿÿèìÎ&w&¶ ÞÿÿÿèãÎ&n&À óÿÿÿééÎ&n&¬ ÿÿÿçÔÎ&n&À ÿÿÿçÞÎ&n&¬ 2ÿÿÿçÞÎ&w&¶ GÿÿÿëÐÎ&n&¬ \ÿÿÿìÕÎ&w&¶ qÿÿÿíØÎ&n&¬ †ÿÿÿçÜÎ& š&¶wÿÿÿëÐÎ&^ÃÿÿÿëÐÎ&o&Ü zÿÿÿëÐÎ&o&Ü ÿÿÿèìÎ&o&Ü ¤ÿÿÿðÕÎ&f&Ò ¹ÿÿÿéãÎ&o&Ü ÎÿÿÿçßÎ&x&æ ãÿÿÿïÕÎ&o&Ü øÿÿÿíÕÎ&x&æ ÿÿÿëÐÎ&x&æ "ÿÿÿíÐÎ&x&æ 7ÿÿÿíÐÎ&x&æ LÿÿÿìéÎ&x&æ aÿÿÿíÔÎ&x&æ vÿÿÿíÕÎ&x&æ ‹ÿÿÿçÛÎ&x&æ  ÿÿÿïÐÎ&o&Ü µÿÿÿîÐÎ&o&Ü ÊÿÿÿèìÎ&x&æ ßÿÿÿèàÎ&o&ð ôÿÿÿééÎ&o&Ü ÿÿÿçÔÎ&o&ð ÿÿÿçÞÎ&o&Ü 3ÿÿÿçÞÎ&x&æ HÿÿÿëÐÎ&o&Ü ]ÿÿÿìÕÎ&x&æ rÿÿÿíØÎ&o&Ü ‡ÿÿÿçÜÎ&x&æ œÿÿÿëÐÎ&]÷ÿÿÿëÐÎ& &n yÿÿÿëÐÎ&n&  ŽÿÿÿèìÎ&n&  £ÿÿÿðÕÎ&ÿ&f ¹ÿÿÿéãÎ&n&  ÍÿÿÿçßÎ&w&  âÿÿÿïÕÎ&n&  ÷ÿÿÿíÕÎ&w&  ÿÿÿëÐÎ&w&  !ÿÿÿíÐÎ&w&  6ÿÿÿíÐÎ&w&  KÿÿÿìéÎ&w&  `ÿÿÿíÔÎ&w&  uÿÿÿíÕÎ&w&  ŠÿÿÿçÛÎ&w&  ŸÿÿÿïÐÎ&n&  ´ÿÿÿîÐÎ&n&  ÉÿÿÿèìÎ&w&  ÞÿÿÿèãÎ&n&  óÿÿÿééÎ&n&  ÿÿÿçÔÎ&n&  ÿÿÿçÞÎ&n&  2ÿÿÿçÞÎ&w&  GÿÿÿëÐÎ&n&  \ÿÿÿìÕÎ&w&  qÿÿÿíØÎ&n&  †ÿÿÿçÖÎ&w&  ›ÿÿÿëÐÎ&^ &ÿÿÿëÐÎ&o& = zÿÿÿëÐÎ&o& = ÿÿÿèìÎ&o& = ¤ÿÿÿðÕÎ&f& 3 ¹ÿÿÿéãÎ&o& = ÎÿÿÿçßÎ&x& G ãÿÿÿïÕÎ&o& = øÿÿÿíÕÎ&x& G ÿÿÿëÐÎ&x& G "ÿÿÿíÐÎ&x& G 7ÿÿÿíÐÎ&x& G LÿÿÿìéÎ&x& G aÿÿÿíÔÎ&x& G vÿÿÿíÕÎ&x& G ‹ÿÿÿçÛÎ&x& G  ÿÿÿïÐÎ&o& = µÿÿÿîÐÎ&o& = ÊÿÿÿèìÎ&x& G ßÿÿÿèàÎ&o& Q ôÿÿÿééÎ&o& = ÿÿÿçÔÎ&o& Q ÿÿÿçÞÎ&o& = 3ÿÿÿçÞÎ&x& G HÿÿÿëÐÎ&o& = ]ÿÿÿìÕÎ&x& G rÿÿÿíØÎ&o& = ‡ÿÿÿçÜÎ&x& G œÿÿ ê¿&_ WÿÿÿëêÉ&p& m {ÿÿÿëêÉ&p& m ÿÿÿêêÉ&p& m ¥ÿÿÿðêÉ&g& c ºÿÿÿéêÉ&p& m ÏÿÿÿçêÌ&y& w äÿÿÿïêÉ&p& m ùÿÿÿíêÌ&y& w ÿÿÿëêÌ&y& w #ÿÿÿíêÌ&y& w 8ÿÿÿðêÌ&y& w MÿÿÿìêÌ&y& w bÿÿÿíêÌ&y& w wÿÿÿíêÌ&y& w ŒÿÿÿçêÌ&y& w ¡ÿÿÿïêÉ&p& m ¶ÿÿÿîêÉ&p& m ËÿÿÿèìÌ&y& w àÿÿÿèêÉ&p& € õÿÿÿéêÉ&p& m ÿÿÿçêÉ&p& € ÿÿÿçêÉ&p& m 4ÿÿÿçêÌ&y& w IÿÿÿëêÉ&p& m ^ÿÿÿìêÌ&y& w sÿÿÿíêÉ&p& m ˆÿÿÿçêÌ&y& w ÿÿÿëöÎ&a ŠÿÿÿëöÎ&r& ž ƒÿÿÿëöÎ&r& ž ˜ÿÿÿêöÎ&r& ž ­ÿÿÿíöÎ&i& ” ÂÿÿÿéöÎ&r& ž ×ÿÿÿçöÎ&{& ¨ ìÿÿÿíöÎ&r& ž ÿÿÿíöÎ&{& ¨ ÿÿÿëöÎ&{& ¨ +ÿÿÿíöÎ&{& ¨ @ÿÿÿìöÎ&{& ¨ UÿÿÿìöÎ&{& ¨ jÿÿÿîöÎ&{& ¨ ÿÿÿíöÎ&{& ¨ ”ÿÿÿèöÎ&{& ¨ ©ÿÿÿïöÎ&r& ž ¾ÿÿÿîöÎ&r& ž ÓÿÿÿêöÎ&{& ¨ èÿÿÿêöÎ&r& ² ýÿÿÿìöÎ&r& ž ÿÿÿêöÎ&r& ² 'ÿÿÿëöÎ&r& ž <ÿÿÿëöÎ&{& ¨ QÿÿÿëöÎ&r& ž fÿÿÿíöÎ&{& ¨ {ÿÿÿðöÎ&r& ž ÿÿÿçöÎ&{& ¨ ¥ÿÿÿëÐÎ&c ¼ÿÿÿëÐÎ&t& Ð ƒÿÿÿëÐÎ&t& Ð ˜ÿÿÿêëÎ&t& Ð ­ÿÿÿíÕÎ&k& Æ ÂÿÿÿéãÎ&t& Ð ×ÿÿÿçßÎ&}& Ú ìÿÿÿíÕÎ&t& Ð ÿÿÿíÕÎ&}& Ú ÿÿÿëÐÎ&}& Ú +ÿÿÿíÐÎ&}& Ú @ÿÿÿìÐÎ&}& Ú UÿÿÿìéÎ&}& Ú jÿÿÿîÔÎ&}& Ú ÿÿÿíÕÎ&}& Ú ”ÿÿÿèÛÎ&}& Ú ©ÿÿÿïÐÎ&t& Ð ¾ÿÿÿîÐÎ&t& Ð ÓÿÿÿêéÎ&}& Ú èÿÿÿêãÎ&t& ä ýÿÿÿìéÎ&t& Ð ÿÿÿêÔÎ&t& ä 'ÿÿÿëâÎ&t& Ð <ÿÿÿëáÎ&}& Ú QÿÿÿëÐÎ&t& Ð fÿÿÿíÕÎ&}& Ú {ÿÿÿðØÎ&t& Ð ÿÿÿçÜÎ&}& Ú ¥ÿÿÿëÐÎ& íaÿÿÿëÐÎ&r&  ƒÿÿÿëÐÎ&r&  ˜ÿÿÿêëÎ&r&  ­ÿÿÿíÕÎ&i& ÷ ÂÿÿÿéãÎ&r&  ×ÿÿÿçßÎ&{&  ìÿÿÿíÕÎ&r&  ÿÿÿíÕÎ&{&  ÿÿÿëÐÎ&{&  +ÿÿÿíÐÎ&{&  @ÿÿÿìÐÎ&{&  UÿÿÿìéÎ&{&  jÿÿÿîÔÎ&{&  ÿÿÿíÕÎ&{&  ”ÿÿÿèÛÎ&{&  ©ÿÿÿïÐÎ&r&  ¾ÿÿÿîÐÎ&r&  ÓÿÿÿêéÎ&{&  èÿÿÿêãÎ&r&  ýÿÿÿìéÎ&r&  ÿÿÿêÔÎ&r&  'ÿÿÿëâÎ&r&  <ÿÿÿëáÎ&{&  QÿÿÿëÐÎ&r&  fÿÿÿíÕÎ&{&  {ÿÿÿðØÎ&r&  ÿÿÿçÜÎ&{&  ¥ÿÿ ë¿&_ ÿÿÿëëÉ&p& 3 {ÿÿÿëëÉ&p& 3 ÿÿÿêëÉ&p& 3 ¥ÿÿÿðëÉ&g& ) ºÿÿÿéëÉ&p& 3 ÏÿÿÿçëÌ&y& = äÿÿÿïëÉ&p& 3 ùÿÿÿíëÌ&y& = ÿÿÿëëÌ&y& = #ÿÿÿíëÌ&y& = 8ÿÿÿðëÌ&y& = MÿÿÿìëÌ&y& = bÿÿÿíëÌ&y& = wÿÿÿíëÌ&y& = ŒÿÿÿçëÌ&y& = ¡ÿÿÿïëÉ&p& 3 ¶ÿÿÿîëÉ&p& 3 ËÿÿÿèìÌ&y& = àÿÿÿèëÉ&p& G õÿÿÿéëÉ&p& 3 ÿÿÿçëÉ&p& G ÿÿÿçëÉ&p& 3 4ÿÿÿçëÌ&y& = IÿÿÿëëÉ&p& 3 ^ÿÿÿìëÌ&y& = sÿÿÿíëÉ&p& 3 ˆÿÿÿçëÌ&y& = ÿÿÿëëÉ&` KÿÿÿëëÌ& Y&q {ÿÿÿëëÌ&q& Y ÿÿÿêëÌ&q& Y ¥ÿÿÿðëÌ&h& R ºÿÿÿéëÌ&q& Y ÏÿÿÿçëÌ&z& n äÿÿÿïëÌ&q& Y ùÿÿÿíëÌ& &z nÿÿÿëëÌ&z& n #ÿÿÿíëÌ&z& n 8ÿÿÿðëÌ&z& n MÿÿÿìëÌ&z& n bÿÿÿíëÌ&z& n wÿÿÿíëÌ&z& n ŒÿÿÿçëÌ&z& n ¡ÿÿÿïëÌ& Y& ¶qÿÿÿîëÌ&z& Y ËÿÿÿèìÌ&z& n àÿÿÿèëÌ&q& g õÿÿÿéëÌ&q& Y ÿÿÿçëÌ&q& Y ÿÿÿçëÌ&q& Y 4ÿÿÿçëÌ&z& ` IÿÿÿëëÌ&q& Y ^ÿÿÿìëÌ&z& n sÿÿÿíëÌ&q& Y ˆÿÿÿçëÌ&z& ` ÿÿÿëÐÎ&b uÿÿÿëÐÎ&s& ƒ …ÿÿÿëÐÎ&s& ƒ šÿÿÿêëÎ&s& ƒ ¯ÿÿÿíÕÎ&j& | ÄÿÿÿéãÎ&s& ƒ ÙÿÿÿçßÎ&|& ˜ îÿÿÿìÕÎ&s& ƒ ÿÿÿíÕÎ&|& ˜ ÿÿÿëÐÎ&|& ˜ -ÿÿÿíÐÎ&|& ˜ BÿÿÿìÐÎ&|& ˜ WÿÿÿìéÎ&|& ˜ lÿÿÿîÔÎ&|& ˜ ÿÿÿîÕÎ&|& ˜ –ÿÿÿçÛÎ&|& ˜ «ÿÿÿïÐÎ&s& ƒ ÀÿÿÿîÐÎ&s& ƒ ÕÿÿÿêéÎ&|& ˜ êÿÿÿêäÎ&s& ‘ ÿÿÿÿìéÎ&s& ƒ ÿÿÿêÔÎ&s& ‘ )ÿÿÿêÞÎ&s& ƒ >ÿÿÿëÞÎ&|& Š SÿÿÿëÐÎ&s& ƒ hÿÿÿíÕÎ&|& ˜ }ÿÿÿðØÎ&s& ƒ ’ÿÿÿçÜÎ&|& Š §ÿÿÿëÐÎ&d ŸÿÿÿëÐÎ&u& ­ …ÿÿÿëÐÎ&u& ­ šÿÿÿêëÎ&u& ­ ¯ÿÿÿíÕÎ&l& ¦ ÄÿÿÿéãÎ&u& ­ ÙÿÿÿçßÎ&~&  îÿÿÿìÕÎ&u& ­ ÿÿÿíÕÎ&~&  ÿÿÿëÐÎ&~&  -ÿÿÿíÐÎ&~&  BÿÿÿìÐÎ&~&  WÿÿÿìéÎ&~&  lÿÿÿîÔÎ&~&  ÿÿÿîÕÎ&~&  –ÿÿÿçÛÎ&~&  «ÿÿÿïÐÎ&u& ­ ÀÿÿÿîÐÎ&u& ­ ÕÿÿÿêéÎ&~&  êÿÿÿêäÎ&u& » ÿÿÿÿìéÎ&u& ­ ÿÿÿêÔÎ&u& » )ÿÿÿêÞÎ&u& ­ >ÿÿÿëÞÎ&~& ´ SÿÿÿëÐÎ&u& ­ hÿÿÿíÕÎ&~&  }ÿÿÿðØÎ&u& ­ ’ÿÿÿçÜÎ&~& ´ §ÿÿÿëÑÎ&b ÉÿÿÿëÐÎ&s& × „ÿÿÿëÐÎ&s& × ™ÿÿÿêëÎ&s& × ®ÿÿÿíÕÎ&j& Ð ÃÿÿÿéãÎ&s& × ØÿÿÿçßÎ&|& ì íÿÿÿìÕÎ&s& × ÿÿÿíÕÎ&|& ì ÿÿÿëÐÎ&|& ì ,ÿÿÿíÐÎ&|& ì AÿÿÿìÐÎ&|& ì VÿÿÿìéÎ&|& ì kÿÿÿîÔÎ&|& ì €ÿÿÿîÕÎ&|& ì •ÿÿÿèÛÎ&|& ì ªÿÿÿïÐÎ&s& × ¿ÿÿÿîÐÎ&s& × ÔÿÿÿêéÎ&|& ì éÿÿÿêãÎ&s& å þÿÿÿìéÎ&s& × ÿÿÿêÔÎ&s& å (ÿÿÿêÞÎ&s& × =ÿÿÿëÞÎ&|& Þ RÿÿÿëÐÎ&s& × gÿÿÿíÕÎ&|& ì |ÿÿÿðØÎ&s& × ‘ÿÿÿç×Î&|& Þ ¦ÿÿÿíëÉ&` ðÿÿÿëëÌ&q&  {ÿÿÿëëÌ&q&  ÿÿÿêëÌ&q&  ¥ÿÿÿðëÌ&h& ú ºÿÿÿéëÌ&q&  ÏÿÿÿçëÌ&z&  äÿÿÿïëÌ&q&  ùÿÿÿíëÌ&z&  ÿÿÿëëÌ&z&  #ÿÿÿíëÌ&z&  8ÿÿÿðëÌ&z&  MÿÿÿìëÌ&z&  bÿÿÿíëÌ&z&  wÿÿÿíëÌ&z&  ŒÿÿÿçëÌ&z&  ¡ÿÿÿïëÌ&q&  ¶ÿÿÿîëÌ&q&  ËÿÿÿèìÌ&z&  àÿÿÿèëÌ&q&  õÿÿÿéëÌ&q&  ÿÿÿçëÌ&q&  ÿÿÿçëÌ&q&  4ÿÿÿçëÌ&z&  IÿÿÿëëÌ&q&  ^ÿÿÿìëÌ&z&  sÿÿÿíëÌ&q&  ˆÿÿÿçëÌ&z&  ÿÿ ë¿&_ ÿÿÿëëÉ&p& * {ÿÿÿëëÉ&p& * ÿÿÿêëÉ&p& * ¥ÿÿÿðëÌ& & ºhÿÿÿéëÉ&p& * ÏÿÿÿçëÌ&y& ? äÿÿÿïëÉ&p& * ùÿÿÿíëÉ&p&  ?ÿÿÿëëÌ&y& ? #ÿÿÿíëÌ&y& ? 8ÿÿÿðëÌ&y& ? MÿÿÿìëÌ&y& ? bÿÿÿíëÌ&y& ? wÿÿÿíëÌ&y& ? ŒÿÿÿçëÌ&y& ? ¡ÿÿÿïëÉ&p& ¶ 'ÿÿÿîëÉ&p& * ËÿÿÿèìÌ&y& ? àÿÿÿèëÉ&p& * õÿÿÿéëÉ&p& * ÿÿÿçëÉ&p& 8 ÿÿÿçëÉ&p& * 4ÿÿÿçëÌ&y& 1 IÿÿÿëëÉ&p& * ^ÿÿÿìëÌ&y& ? sÿÿÿíëÉ&p& * ˆÿÿÿçëÌ&y& 1 ÿÿÿëÐÎ&a EÿÿÿëÐÎ&r& S ƒÿÿÿëÐÎ&r& S ˜ÿÿÿêëÎ&r& S ­ÿÿÿíÕÎ&i& L ÂÿÿÿéãÎ&r& S ×ÿÿÿçßÎ&{& h ìÿÿÿíÕÎ&r& S ÿÿÿíÕÎ&{& h ÿÿÿëÐÎ&{& h +ÿÿÿíÐÎ&{& h @ÿÿÿìÐÎ&{& h UÿÿÿìéÎ&{& h jÿÿÿîÔÎ&{& h ÿÿÿíÕÎ&{& h ”ÿÿÿèÛÎ&{& h ©ÿÿÿïÐÎ&r& S ¾ÿÿÿîÐÎ&r& S ÓÿÿÿêéÎ&{& h èÿÿÿêãÎ&r& a ýÿÿÿìéÎ&r& S ÿÿÿêÔÎ&r& a 'ÿÿÿëâÎ&r& S <ÿÿÿëáÎ&{& Z QÿÿÿëÐÎ&r& S fÿÿÿíÕÎ&{& h {ÿÿÿðØÎ&r& S ÿÿÿçÜÎ&{& Z ¥ÿÿÿëÐÎ&\ iÿÿÿëÐÎ&m& o yÿÿÿëÐÎ&m& o ŽÿÿÿèìÎ&m& o £ÿÿÿðÕÎ&e& l ¸ÿÿÿéãÎ&m& o ÍÿÿÿçßÎ&v& u âÿÿÿïÕÎ&m& o ÷ÿÿÿíÕÎ&v& u ÿÿÿëÐÎ&v& u !ÿÿÿíÐÎ&v& u 6ÿÿÿíÐÎ&v& u KÿÿÿìéÎ&v& u `ÿÿÿíÔÎ&v& u uÿÿÿíÕÎ&v& u ŠÿÿÿçÛÎ&v& u ŸÿÿÿïÐÎ&m& o ´ÿÿÿîÐÎ&m& o ÉÿÿÿèìÎ&v& u ÞÿÿÿèãÎ&m& r óÿÿÿééÎ&m& o ÿÿÿçÔÎ&m& r ÿÿÿçÞÎ&m& o 2ÿÿÿçÞÎ&v& o GÿÿÿëÐÎ&m& o \ÿÿÿìÕÎ&v& u qÿÿÿíØÎ&m& o †ÿÿÿçÖÎ&v& o ›ÿÿÿëöÎ&UÿÿÿëõÎ&[& xÿÿÿëõÎ&&[ ÿÿÿèõÎ&&[ ¢ÿÿÿðöÎ&&X ·ÿÿÿêõÎ&&[ ÌÿÿÿçõÎ&&[ áÿÿÿïõÎ&&[ öÿÿÿíõÎ&& aÿÿÿëõÎ&™&a ÿÿÿíõÎ&™&a 5ÿÿÿíõÎ&™&a JÿÿÿìõÎ&™&a _ÿÿÿíõÎ&™&a tÿÿÿíõÎ&™&a ‰ÿÿÿçõÎ&™&a žÿÿÿïõÎ&&[ ³ÿÿÿîõÎ&&[ ÈÿÿÿèõÎ&™&a ÝÿÿÿèöÎ&&^ òÿÿÿéõÎ&&[ ÿÿÿçöÎ&&^ ÿÿÿçõÎ&&\ ?ÿÿÿçõÎ&™&[ FÿÿÿëõÎ&&[ [ÿÿÿìõÎ&&a pÿÿÿíõÎ&&[ …ÿÿÿçõÎ&™&[ šÿÿÿëÐÎ&dÿÿÿëÐÎ&j&’ zÿÿÿëÐÎ&’&j ÿÿÿèìÎ&’&j ¤ÿÿÿðÕÎ&‰&g ¹ÿÿÿéãÎ&’&j ÎÿÿÿçßÎ&›&p ãÿÿÿïÕÎ&’&j øÿÿÿíÕÎ&›&p ÿÿÿëÐÎ&›&p "ÿÿÿíÐÎ&›&p 7ÿÿÿíÐÎ&›&p LÿÿÿìéÎ&›&p aÿÿÿíÔÎ&›&p vÿÿÿíÕÎ&›&p ‹ÿÿÿçÛÎ&›&p  ÿÿÿïÐÎ&’&j µÿÿÿîÐÎ&’&j ÊÿÿÿèìÎ&›&p ßÿÿÿèàÎ&’&m ôÿÿÿééÎ&’&j ÿÿÿçÔÎ&’&m ÿÿÿçÞÎ&’&j 3ÿÿÿçÞÎ&›&j HÿÿÿëÐÎ&’&j ]ÿÿÿìÕÎ&›&p rÿÿÿíØÎ&’&j ‡ÿÿÿçÜÎ&›&j œÿÿÿëöÎ&sÿÿÿëöÎ&&y xÿÿÿëöÎ&&y ÿÿÿèöÎ&&y ¢ÿÿÿðöÎ&ˆ&v ·ÿÿÿêöÎ&&y ÌÿÿÿçöÎ&™& áÿÿÿïöÎ&&y öÿÿÿíöÎ&™& ÿÿÿëöÎ&™& ÿÿÿíöÎ&™& 5ÿÿÿíöÎ&™& JÿÿÿìöÎ&™& _ÿÿÿíöÎ&™& tÿÿÿíöÎ&™& ‰ÿÿÿçöÎ&™& žÿÿÿïöÎ&&y ³ÿÿÿîöÎ&&y ÈÿÿÿèöÎ&™& ÝÿÿÿèöÎ&&| òÿÿÿéöÎ&&y ÿÿÿçöÎ&&| ÿÿÿçöÎ&&y 1ÿÿÿçöÎ&™&y FÿÿÿëöÎ&&y [ÿÿÿìöÎ&™& pÿÿÿíöÎ&&y …ÿÿÿçöÎ&™&y šÿÿÿëÐÎ&‚ÿÿÿëÐÎ&’&ˆ zÿÿÿëÐÎ&’&ˆ ÿÿÿèìÎ&’&ˆ ¤ÿÿÿðÕÎ&‰&… ¹ÿÿÿéãÎ&’&ˆ ÎÿÿÿçßÎ&›&Ž ãÿÿÿïÕÎ&’&ˆ øÿÿÿíÕÎ&›&Ž ÿÿÿëÐÎ&›&Ž "ÿÿÿíÐÎ&›&Ž 7ÿÿÿíÐÎ&›&Ž LÿÿÿìéÎ&›&Ž aÿÿÿíÔÎ&›&Ž vÿÿÿíÕÎ&›&Ž ‹ÿÿÿçÛÎ&›&Ž  ÿÿÿïÐÎ&’&ˆ µÿÿÿîÐÎ&’&ˆ ÊÿÿÿèìÎ&›&Ž ßÿÿÿèàÎ&’&‹ ôÿÿÿééÎ&’&ˆ ÿÿÿçÔÎ&’&‹ ÿÿÿçÞÎ&’&ˆ 3ÿÿÿçÞÎ&›&ˆ HÿÿÿëÐÎ&’&ˆ ]ÿÿÿìÕÎ&›&Ž rÿÿÿíØÎ&’&ˆ ‡ÿÿÿçÜÎ&›&ˆ œÿÿÿëÐÎ&€•ÿÿÿëÐÎ&‘&¨ yÿÿÿëÐÎ&‘&¨ ŽÿÿÿèìÎ&‘&¨ £ÿÿÿíÚÍ&ˆ& Æ ÿÿÿéãÎ&‘&¨ ÍÿÿÿçßÎ&š&² âÿÿÿïÕÎ&‘&¨ ÷ÿÿÿíÕÎ&š&² ÿÿÿëÐÎ&š&² !ÿÿÿíÐÎ&š&² 6ÿÿÿíÐÎ&š&² KÿÿÿìéÎ&š&² `ÿÿÿíÔÎ&š&² uÿÿÿíÕÎ&š&² ŠÿÿÿçÛÎ&š&² ŸÿÿÿïÐÎ&‘&¨ ´ÿÿÿîÐÎ&‘&¨ ÉÿÿÿèìÎ&š&² ÞÿÿÿèãÎ&‘&¼ óÿÿÿééÎ&‘&¨ ÿÿÿçÔÎ&‘&¼ ÿÿÿçÞÎ&‘&¨ 2ÿÿÿçÞÎ&š&² GÿÿÿëÐÎ&‘&¨ \ÿÿÿìÕÎ&š&² qÿÿÿíØÎ&‘&¨ †ÿÿÿçÖÎ&š&² ›ÿÿÿëÐÎ&ÅÿÿÿëÐÎ&’&Ø zÿÿÿëÐÎ&’&Ø ÿÿÿèìÎ&’&Ø ¤ÿÿÿðÕÎ&‰&Î ¹ÿÿÿéãÎ&’&Ø ÎÿÿÿçßÎ&›&â ãÿÿÿïÕÎ&’&Ø øÿÿÿíÕÎ&›&â ÿÿÿëÐÎ&›&â "ÿÿÿíÐÎ&›&â 7ÿÿÿíÐÎ&›&â LÿÿÿìéÎ&›&â aÿÿÿíÔÎ&›&â vÿÿÿíÕÎ&›&â ‹ÿÿÿçÛÎ&›&â  ÿÿÿïÐÎ&’&Ø µÿÿÿîÐÎ&’&Ø ÊÿÿÿèìÎ&›&â ßÿÿÿèàÎ&’&ì ôÿÿÿééÎ&’&Ø ÿÿÿçÔÎ&’&ì ÿÿÿçÞÎ&’&Ø 3ÿÿÿçÞÎ&›&â HÿÿÿëÐÎ&’&Ø ]ÿÿÿìÕÎ&›&â rÿÿÿíØÎ&’&Ø ‡ÿÿÿçÜÎ&›&â œÿÿÿëÐÎ&€÷ÿÿÿëÐÎ&‘&  yÿÿÿëÐÎ&‘&  ŽÿÿÿèìÎ&‘&  £ÿÿÿðÕÎ&ÿ& ¸‘ÿÿÿéãÎ&‘&  ÍÿÿÿçßÎ&š&  âÿÿÿïÕÎ&‘&  ÷ÿÿÿíÕÎ&š&  ÿÿÿëÐÎ&š&  !ÿÿÿíÐÎ&š&  6ÿÿÿíÐÎ&š&  KÿÿÿìéÎ&š&  `ÿÿÿíÔÎ&š&  uÿÿÿíÕÎ&š&  ŠÿÿÿçÛÎ&š&  ŸÿÿÿïÐÎ&‘&  ´ÿÿÿîÐÎ&‘&  ÉÿÿÿèìÎ&š&  ÞÿÿÿèãÎ&‘&  óÿÿÿééÎ&‘&  ÿÿÿçÔÎ&‘&  ÿÿÿçÞÎ&‘&  2ÿÿÿçÞÎ&‘&  GÿÿÿëÐÎ&‘&  \ÿÿÿìÕÎ&š&  qÿÿÿíØÎ&‘&  †ÿÿÿçÖÎ&š&  ›ÿÿÿëÐÎ& %ÿÿÿëÐÎ&’& 9 zÿÿÿëÐÎ&’& 9 ÿÿÿèìÎ&’& 9 ¤ÿÿÿðÕÎ&‰& / ¹ÿÿÿéãÎ&’& 9 ÎÿÿÿçßÎ&›& C ãÿÿÿïÕÎ&’& 9 øÿÿÿíÕÎ&›& C ÿÿÿëÐÎ&›& C "ÿÿÿíÐÎ&›& C 7ÿÿÿíÐÎ&›& C LÿÿÿìéÎ&›& C aÿÿÿíÔÎ&›& C vÿÿÿíÕÎ&›& C ‹ÿÿÿçÛÎ&›& C  ÿÿÿïÐÎ&’& 9 µÿÿÿîÐÎ&’& 9 ÊÿÿÿèìÎ&›& C ßÿÿÿèàÎ&’& M ôÿÿÿééÎ&’& 9 ÿÿÿçÔÎ&’& M ÿÿÿçÞÎ&’& 9 3ÿÿÿçÞÎ&›& C HÿÿÿëÐÎ&’& 9 ]ÿÿÿìÕÎ&›& C rÿÿÿíØÎ&’& 9 ‡ÿÿÿçÜÎ&›& C œÿÿ ê½&‚ VÿÿÿëêÉ& h&“ {ÿÿÿëêÉ& h& “ÿÿÿêêÉ&“& h ¥ÿÿÿðêÉ&Š& ^ ºÿÿÿéêÉ&“& h ÏÿÿÿçêÉ&œ& r äÿÿÿïêÉ&“& h ùÿÿÿíêÉ&œ& r ÿÿÿëêÉ&œ& r #ÿÿÿíêÉ&œ& r 8ÿÿÿðêÉ&œ& r MÿÿÿìêÉ&œ& r bÿÿÿíêÉ&œ& r wÿÿÿíêÉ&œ& r ŒÿÿÿçêÉ&œ& r ¡ÿÿÿïêÉ&“& h ¶ÿÿÿîêÉ&“& h ËÿÿÿèìÉ&œ& r àÿÿÿèêÉ& õ& {“ÿÿÿéêÉ&“& h ÿÿÿçêÉ&“& { ÿÿÿçêÉ&“& h 4ÿÿÿçêÉ&œ& r IÿÿÿëêÉ&“& h ^ÿÿÿìêÉ&œ& r sÿÿÿíêÉ&“& h ˆÿÿÿçêÉ&œ& r ÿÿÿëöÎ&„ …ÿÿÿëöÎ&•& ™ |ÿÿÿëöÎ&•& ™ ‘ÿÿÿêöÎ&•& ™ ¦ÿÿÿðöÎ&Œ&  »ÿÿÿêöÎ&•& ™ ÐÿÿÿçöÎ&ž& £ åÿÿÿïöÎ&•& ™ úÿÿÿíöÎ&ž& £ ÿÿÿëöÎ&ž& £ $ÿÿÿíöÎ&ž& £ 9ÿÿÿíöÎ&ž& £ NÿÿÿìöÎ&ž& £ cÿÿÿîöÎ&ž& £ xÿÿÿíöÎ&ž& £ ÿÿÿçöÎ&ž& £ ¢ÿÿÿïöÎ&•& ™ ·ÿÿÿîöÎ&•& ™ ÌÿÿÿèöÎ&ž& £ áÿÿÿèöÎ&•& ­ öÿÿÿéöÎ&•& ™ ÿÿÿçöÎ&•& ­ ÿÿÿçöÎ&•& ™ 5ÿÿÿçöÎ&ž& £ JÿÿÿëöÎ&•& ™ _ÿÿÿìöÎ&ž& £ tÿÿÿíöÎ&•& ™ ‰ÿÿÿçöÎ&ž& £ žÿÿÿëÐÎ&† ·ÿÿÿëÐÎ&—& Ë |ÿÿÿëÐÎ&—& Ë ‘ÿÿÿêëÎ&—& Ë ¦ÿÿÿðÕÎ&Ž& Á »ÿÿÿêãÎ&—& Ë ÐÿÿÿçßÎ& & Õ åÿÿÿïÕÎ&—& Ë úÿÿÿíÕÎ& & Õ ÿÿÿëÐÎ& & Õ $ÿÿÿíÐÎ& & Õ 9ÿÿÿíÐÎ& & Õ NÿÿÿìéÎ& & Õ cÿÿÿîÔÎ& & Õ xÿÿÿíÕÎ& & Õ ÿÿÿçÛÎ& & Õ ¢ÿÿÿïÐÎ&—& Ë ·ÿÿÿîÐÎ&—& Ë ÌÿÿÿèéÎ& & Õ áÿÿÿèãÎ&—& ß öÿÿÿééÎ&—& Ë ÿÿÿçÔÎ&—& ß ÿÿÿçâÎ&—& Ë 5ÿÿÿçâÎ& & Õ JÿÿÿëÐÎ&—& Ë _ÿÿÿìÕÎ& & Õ tÿÿÿíØÎ&—& Ë ‰ÿÿÿçÜÎ& & Õ žÿÿÿëÐÎ&„ éÿÿÿëÐÎ&•& ü |ÿÿÿëÐÎ&•& ü ‘ÿÿÿêëÎ&•& ü ¦ÿÿÿðÕÎ&Œ& ò »ÿÿÿêãÎ&•& ü ÐÿÿÿçßÎ&ž&  åÿÿÿïÕÎ&•& ü úÿÿÿíÕÎ&ž&  ÿÿÿëÐÎ&ž&  $ÿÿÿíÐÎ&ž&  9ÿÿÿíÐÎ&ž&  NÿÿÿìéÎ&ž&  cÿÿÿîÔÎ&ž&  xÿÿÿíÕÎ&ž&  ÿÿÿçÛÎ&ž&  ¢ÿÿÿïÐÎ&•& ü ·ÿÿÿîÐÎ&•& ü ÌÿÿÿèéÎ&ž&  áÿÿÿèãÎ&•&  öÿÿÿééÎ&•& ü ÿÿÿçÔÎ&•&  ÿÿÿçâÎ&•& ü 5ÿÿÿçâÎ&ž&  JÿÿÿëÐÎ&•& ü _ÿÿÿìÕÎ&ž&  tÿÿÿíØÎ&•& ü ‰ÿÿÿçÜÎ&ž&  žÿÿ ë½&‚ ÿÿÿëëÉ&“& . {ÿÿÿëëÉ&“& . ÿÿÿêëÉ&“& . ¥ÿÿÿðëÉ&Š& $ ºÿÿÿéëÉ&“& . ÏÿÿÿçëÉ&œ& 8 äÿÿÿïëÉ&“& . ùÿÿÿíëÉ&œ& 8 ÿÿÿëëÉ&œ& 8 #ÿÿÿíëÉ&œ& 8 8ÿÿÿðëÉ&œ& 8 MÿÿÿìëÉ&œ& 8 bÿÿÿíëÉ&œ& 8 wÿÿÿíëÉ&œ& 8 ŒÿÿÿçëÉ&œ& 8 ¡ÿÿÿïëÉ&“& . ¶ÿÿÿîëÉ&“& . ËÿÿÿèìÉ&œ& 8 àÿÿÿèëÉ&“& B õÿÿÿéëÉ&“& . ÿÿÿçëÉ&“& B ÿÿÿçëÉ&“& . 4ÿÿÿçëÉ&œ& 8 IÿÿÿëëÉ&“& . ^ÿÿÿìëÉ&œ& 8 sÿÿÿíëÉ&“& . ˆÿÿÿçëÉ&œ& 8 ÿÿÿëëÉ&ƒ JÿÿÿëëÉ&”& V {ÿÿÿëëÉ&”& V ÿÿÿêëÉ&”& V ¥ÿÿÿðëÉ& Q& º‹ÿÿÿéëÉ&”& V ÏÿÿÿçëÉ&& k äÿÿÿïëÉ&‹& ù VÿÿÿíëÉ& k& ÿÿÿëëÉ&& k #ÿÿÿíëÉ&& k 8ÿÿÿðëÉ&& k MÿÿÿìëÉ&& k bÿÿÿíëÉ&& k wÿÿÿíëÉ&& k ŒÿÿÿçëÉ&& k ¡ÿÿÿïëÉ&”& V ¶ÿÿÿîëÉ&”& V ËÿÿÿèìÉ&& k àÿÿÿèëÉ&”& d õÿÿÿéëÉ&”& V ÿÿÿçëÉ&”& V ÿÿÿçëÉ&”& V 4ÿÿÿçëÉ&& ] IÿÿÿëëÉ&”& V ^ÿÿÿìëÉ&& k sÿÿÿíëÉ&”& V ˆÿÿÿçëÉ&& ] ÿÿÿëÐÎ&… rÿÿÿëÐÎ&–& € ~ÿÿÿëÐÎ&–& € “ÿÿÿêëÎ&–& € ¨ÿÿÿðÕÎ&& y ½ÿÿÿéãÎ&–& € ÒÿÿÿçßÎ&Ÿ& • çÿÿÿïÕÎ&–& € üÿÿÿíÕÎ&Ÿ& • ÿÿÿëÐÎ&Ÿ& • &ÿÿÿíÐÎ&Ÿ& • ;ÿÿÿíÐÎ&Ÿ& • PÿÿÿëéÎ&Ÿ& • eÿÿÿîÔÎ&Ÿ& • zÿÿÿíÖÎ&Ÿ& • ÿÿÿçÛÎ&Ÿ& • ¤ÿÿÿïÐÎ&–& € ¹ÿÿÿîÐÎ&–& € ÎÿÿÿêéÎ&Ÿ& • ãÿÿÿèãÎ&–& Ž øÿÿÿçéÎ&–& € ÿÿÿçÔÎ&–& Ž "ÿÿÿçÞÎ&–& € 7ÿÿÿíÞÎ&Ÿ& ‡ LÿÿÿëÐÎ&–& € aÿÿÿìÕÎ&Ÿ& • vÿÿÿíØÎ&–& € ‹ÿÿÿçÜÎ&Ÿ& ‡  ÿÿÿëÐÎ&‡ œÿÿÿëÐÎ&˜& ª ~ÿÿÿëÐÎ&˜& ª “ÿÿÿêëÎ&˜& ª ¨ÿÿÿðÕÎ&& £ ½ÿÿÿéãÎ&˜& ª ÒÿÿÿçßÎ&¡& ¿ çÿÿÿïÕÎ&˜& ª üÿÿÿíÕÎ&¡& ¿ ÿÿÿëÐÎ&¡& ¿ &ÿÿÿíÐÎ&¡& ¿ ;ÿÿÿíÐÎ&¡& ¿ PÿÿÿëéÎ&¡& ¿ eÿÿÿîÔÎ&¡& ¿ zÿÿÿíÖÎ&¡& ¿ ÿÿÿçÛÎ&¡& ¿ ¤ÿÿÿïÐÎ&˜& ª ¹ÿÿÿîÐÎ&˜& ª ÎÿÿÿêéÎ&¡& ¿ ãÿÿÿèãÎ&˜& ¸ øÿÿÿçéÎ&˜& ª ÿÿÿçÔÎ&˜& ¸ "ÿÿÿçÞÎ&˜& ª 7ÿÿÿíÞÎ&¡& ± LÿÿÿëÐÎ&˜& ª aÿÿÿìÕÎ&¡& ¿ vÿÿÿíØÎ&˜& ª ‹ÿÿÿçÜÎ&¡& ±  ÿÿÿëÐÎ&… ÆÿÿÿëÐÎ&–& Ô }ÿÿÿëÐÎ&–& Ô ’ÿÿÿêëÎ&–& Ô §ÿÿÿðÕÎ&& Í ¼ÿÿÿéãÎ&–& Ô ÑÿÿÿçßÎ&Ÿ& é æÿÿÿïÕÎ&–& Ô ûÿÿÿíÕÎ&Ÿ& é ÿÿÿëÐÎ&Ÿ& é %ÿÿÿíÐÎ&Ÿ& é :ÿÿÿíÐÎ&Ÿ& é OÿÿÿëèÎ&Ÿ& é dÿÿÿîÔÎ&Ÿ& é yÿÿÿíÖÎ&Ÿ& é ŽÿÿÿçÛÎ&Ÿ& é £ÿÿÿïÐÎ&–& Ô ¸ÿÿÿîÐÎ&–& Ô ÍÿÿÿêéÎ&Ÿ& é âÿÿÿèãÎ&–& â ÷ÿÿÿçéÎ&–& Ô ÿÿÿçÔÎ&–& â !ÿÿÿçÞÎ&–& Ô 6ÿÿÿçÞÎ&Ÿ& Û KÿÿÿëÐÎ&–& Ô `ÿÿÿìÕÎ&Ÿ& é uÿÿÿíØÎ&–& Ô ŠÿÿÿçÖÎ&Ÿ& Û ŸÿÿÿíëÉ&ƒ ðÿÿÿëëÉ&”& þ {ÿÿÿëëÉ&”& þ ÿÿÿêëÉ&”& þ ¥ÿÿÿðëÉ&‹& ÷ ºÿÿÿéëÉ&”& þ ÏÿÿÿçëÉ&&  äÿÿÿïëÉ&”& þ ùÿÿÿíëÉ&&  ÿÿÿëëÉ&&  #ÿÿÿíëÉ&&  8ÿÿÿðëÉ&&  MÿÿÿìëÉ&&  bÿÿÿíëÉ&&  wÿÿÿíëÉ&&  ŒÿÿÿçëÉ&&  ¡ÿÿÿïëÉ&”& þ ¶ÿÿÿîëÉ&”& þ ËÿÿÿèìÉ&&  àÿÿÿèëÉ&”&  õÿÿÿéëÉ&”& þ ÿÿÿçëÉ&”&  ÿÿÿçëÉ&”& þ 4ÿÿÿçëÉ&&  IÿÿÿëëÉ&”& þ ^ÿÿÿìëÉ&&  sÿÿÿíëÉ&”& þ ˆÿÿÿçëÉ&&  ÿÿ ë½&‚ ÿÿÿëëÉ&“& ' {ÿÿÿëëÉ&“& ' ÿÿÿêëÉ&“& ' ¥ÿÿÿðëÉ&Š&  ºÿÿÿéëÉ&“& ' ÏÿÿÿçëÉ&œ& < äÿÿÿïëÉ&“& ' ùÿÿÿíëÉ&œ& < ÿÿÿëëÉ&œ& < #ÿÿÿíëÉ&œ& < 8ÿÿÿðëÉ&œ& < MÿÿÿìëÉ&œ& < bÿÿÿíëÉ&œ& < wÿÿÿíëÉ&œ& < ŒÿÿÿçëÉ&œ& < ¡ÿÿÿïëÉ&“& ' ¶ÿÿÿîëÉ&“& ' ËÿÿÿèìÉ&œ& < àÿÿÿèëÉ&“& 5 õÿÿÿéëÉ&“& ' ÿÿÿçëÉ&“& 5 ÿÿÿçëÉ&“& ' 4ÿÿÿçëÉ&œ& . IÿÿÿëëÉ&“& ' ^ÿÿÿìëÉ&œ& < sÿÿÿíëÉ&“& ' ˆÿÿÿçëÉ&œ& . ÿÿÿëÐÎ&„ CÿÿÿëÐÎ&•& P |ÿÿÿëÐÎ&•& P ‘ÿÿÿêëÎ&•& P ¦ÿÿÿðÕÎ&Œ& I »ÿÿÿêãÎ&•& P ÐÿÿÿçßÎ&ž& e åÿÿÿïÕÎ&•& P úÿÿÿíÕÎ&ž& e ÿÿÿëÐÎ&ž& e $ÿÿÿíÐÎ&ž& e 9ÿÿÿíÐÎ&ž& e NÿÿÿìéÎ&ž& e cÿÿÿîÔÎ&ž& e xÿÿÿíÕÎ&ž& e ÿÿÿçÛÎ&ž& e ¢ÿÿÿïÐÎ&•& P ·ÿÿÿîÐÎ&•& P ÌÿÿÿèéÎ&ž& e áÿÿÿèãÎ&•& ^ öÿÿÿééÎ&•& P ÿÿÿçÔÎ&•& ^ ÿÿÿçâÎ&•& P 5ÿÿÿçâÎ&ž& W JÿÿÿëÐÎ&•& P _ÿÿÿìÕÎ&ž& e tÿÿÿíØÎ&•& P ‰ÿÿÿçÜÎ&ž& W žÿÿÿëÐÎ&€ iÿÿÿëÐÎ&& o yÿÿÿëÐÎ&& o ŽÿÿÿèìÎ&& o £ÿÿÿðÕÎ& l&ˆ ·ÿÿÿéãÎ&& o ÍÿÿÿçßÎ&™& u âÿÿÿïÕÎ&& ö oÿÿÿíÕÎ& o& ÿÿÿëÐÎ&™& u !ÿÿÿíÐÎ&™& u 6ÿÿÿíÐÎ&™& u KÿÿÿìéÎ&™& u `ÿÿÿíÔÎ&™& u uÿÿÿíÕÎ&™& u ŠÿÿÿçÛÎ&™& u ŸÿÿÿïÐÎ&& o ´ÿÿÿîÐÎ&& o ÉÿÿÿèìÎ&™& u ÞÿÿÿèãÎ&& r óÿÿÿééÎ&& o ÿÿÿçÔÎ&& r ÿÿÿçÞÎ&& o 2ÿÿÿçÞÎ& p& G‘ÿÿÿëÐÎ&& o \ÿÿÿìÕÎ&™& u qÿÿÿíØÎ&& o †ÿÿÿçÖÎ&™& o ›ÿÿÿëöÎ&U¢ÿÿÿëõÎ&³&\ xÿÿÿëõÎ&³&\ ÿÿÿèõÎ&³&[ ¢ÿÿÿðöÎ&³&X ·ÿÿÿêõÎ&³&[ ÌÿÿÿçõÎ&¼&a áÿÿÿìõÎ&\& ¼ÿÿÿíõÎ&¼& aÿÿÿëõÎ&¼& aÿÿÿíõÎ&¼&a 5ÿÿÿíõÎ&¼&a JÿÿÿìõÎ&¼&a _ÿÿÿíõÎ&¼&a tÿÿÿíõÎ&¼&a ‰ÿÿÿçõÎ&¼&a žÿÿÿïõÎ&³&[ ³ÿÿÿîõÎ&³&[ ÈÿÿÿèõÎ&¼&a ÝÿÿÿèöÎ&³&^ òÿÿÿéõÎ&³&[ ÿÿÿçöÎ&^&³ ÿÿÿçõÎ&³&[ 1ÿÿÿçõÎ&¼&[ FÿÿÿëõÎ&³&[ [ÿÿÿìõÎ&¼&a pÿÿÿíõÎ&³&[ …ÿÿÿçõÎ&¼&[ šÿÿÿëÐÎ&¤dÿÿÿëÐÎ&j&µ zÿÿÿëÐÎ&µ&j ÿÿÿèìÎ&µ&j ¤ÿÿÿðÕÎ&¬&g ¹ÿÿÿéãÎ&µ&j ÎÿÿÿçßÎ&¾&p ãÿÿÿïÕÎ&µ&j øÿÿÿíÕÎ&¾&p ÿÿÿëÐÎ&¾&p "ÿÿÿíÐÎ&¾&p 7ÿÿÿíÐÎ&¾&p LÿÿÿìéÎ&¾&p aÿÿÿíÔÎ&¾&p vÿÿÿíÕÎ&¾&p ‹ÿÿÿçÛÎ&¾&p  ÿÿÿïÐÎ&µ&j µÿÿÿîÐÎ&µ&j ÊÿÿÿèìÎ&¾&p ßÿÿÿèàÎ&µ&m ôÿÿÿééÎ&µ&j ÿÿÿçÔÎ&µ&m ÿÿÿçÞÎ&µ&j 3ÿÿÿçÞÎ&¾&j HÿÿÿëÐÎ&µ&j ]ÿÿÿìÕÎ&¾&p rÿÿÿíØÎ&µ&j ‡ÿÿÿçÜÎ&¾&j œÿÿÿëöÎ&¢sÿÿÿëöÎ&³&y xÿÿÿëöÎ&³&y ÿÿÿèöÎ&³&y ¢ÿÿÿðöÎ&«&v ·ÿÿÿêöÎ&³&y ÌÿÿÿçöÎ&¼& áÿÿÿïöÎ&³&y öÿÿÿíöÎ&¼& ÿÿÿëöÎ&¼& ÿÿÿíöÎ&¼& 5ÿÿÿíöÎ&¼& JÿÿÿìöÎ&¼& _ÿÿÿíöÎ&¼& tÿÿÿíöÎ&¼& ‰ÿÿÿçöÎ&¼& žÿÿÿïöÎ&³&y ³ÿÿÿîöÎ&³&y ÈÿÿÿèöÎ&¼& ÝÿÿÿèöÎ&³&| òÿÿÿéöÎ&³&y ÿÿÿçöÎ&³&| ÿÿÿçöÎ&³&y 1ÿÿÿçöÎ&¼&y FÿÿÿëöÎ&³&y [ÿÿÿìöÎ&¼& pÿÿÿíöÎ&³&y …ÿÿÿçöÎ&¼&y šÿÿÿëÐÎ&¤‚ÿÿÿëÐÎ&µ&ˆ zÿÿÿëÐÎ&µ&ˆ ÿÿÿèìÎ&µ&ˆ ¤ÿÿÿðÕÎ&¬&… ¹ÿÿÿéãÎ&µ&ˆ ÎÿÿÿçßÎ&¾&Ž ãÿÿÿïÕÎ&µ&ˆ øÿÿÿíÕÎ&¾&Ž ÿÿÿëÐÎ&¾&Ž "ÿÿÿíÐÎ&¾&Ž 7ÿÿÿíÐÎ&¾&Ž LÿÿÿìéÎ&¾&Ž aÿÿÿíÔÎ&¾&Ž vÿÿÿíÕÎ&¾&Ž ‹ÿÿÿçÛÎ&¾&Ž  ÿÿÿïÐÎ&µ&ˆ µÿÿÿîÐÎ&µ&ˆ ÊÿÿÿèìÎ&¾&Ž ßÿÿÿèàÎ&µ&‹ ôÿÿÿééÎ&µ&ˆ ÿÿÿçÔÎ&µ&‹ ÿÿÿçÞÎ&µ&ˆ 3ÿÿÿçÞÎ&¾&ˆ HÿÿÿëÐÎ&µ&ˆ ]ÿÿÿìÕÎ&¾&Ž rÿÿÿíØÎ&µ&ˆ ‡ÿÿÿçÜÎ&¾&ˆ œÿÿÿëÐÎ&£™ÿÿÿëÐÎ&´&¨ yÿÿÿëÐÎ&´&¨ ŽÿÿÿèìÎ&´&¨ £ÿÿÿðÕÍ&«& ¸ ÿÿÿéãÎ&´&¨ ÍÿÿÿçßÎ&½&² âÿÿÿïÕÎ&´&¨ ÷ÿÿÿíÕÎ&´& ²ÿÿÿëÐÎ&½&² !ÿÿÿíÐÎ&½&² 6ÿÿÿíÐÎ&½&² KÿÿÿìéÎ&½&² `ÿÿÿíÔÎ&½&² uÿÿÿíÕÎ&½&² ŠÿÿÿçÛÎ&½&² ŸÿÿÿïÐÎ&²&½ ´ÿÿÿîÐÎ&½&² ÉÿÿÿèìÎ&½&² ÞÿÿÿèãÎ& ó&¼´ÿÿÿééÎ&´&¨ ÿÿÿçÔÎ&´&¼ ÿÿÿçÞÎ&´&¨ 2ÿÿÿçÞÎ&½&² GÿÿÿëÐÎ&´&¨ \ÿÿÿìÕÎ&½&² qÿÿÿíØÎ&´&¨ †ÿÿÿçÖÎ&½&² ›ÿÿÿëÐÎ&¤ÅÿÿÿëÐÎ&µ&Ø zÿÿÿëÐÎ&µ&Ø ÿÿÿèìÎ&µ&Ø ¤ÿÿÿðÕÎ&¬&Î ¹ÿÿÿéãÎ&µ&Ø ÎÿÿÿçßÎ&¾&â ãÿÿÿïÕÎ&µ&Ø øÿÿÿíÕÎ&¾&â ÿÿÿëÐÎ&¾&â "ÿÿÿíÐÎ&¾&â 7ÿÿÿíÐÎ&¾&â LÿÿÿìéÎ&¾&â aÿÿÿíÔÎ&¾&â vÿÿÿíÕÎ&¾&â ‹ÿÿÿçÛÎ&¾&â  ÿÿÿïÐÎ&µ&Ø µÿÿÿîÐÎ&µ&Ø ÊÿÿÿèìÎ&¾&â ßÿÿÿèàÎ&µ&ì ôÿÿÿééÎ&µ&Ø ÿÿÿçÔÎ&µ&ì ÿÿÿçÞÎ&µ&Ø 3ÿÿÿçÞÎ&¾&â HÿÿÿëÐÎ&µ&Ø ]ÿÿÿìÕÎ&¾&â rÿÿÿíØÎ&µ&Ø ‡ÿÿÿçÜÎ&¾&â œÿÿÿëÐÎ&£öÿÿÿëÐÎ&´&  yÿÿÿëÐÎ&´&  ŽÿÿÿèìÎ&´&  £ÿÿÿðÕÎ&´&ÿ ¸ÿÿÿéãÎ&´&  ÍÿÿÿçßÎ&½&  âÿÿÿïÕÎ&´&  ÷ÿÿÿíÕÎ&½&  ÿÿÿëÐÎ&½&  !ÿÿÿíÐÎ&½&  6ÿÿÿíÐÎ&½&  KÿÿÿìéÎ&½&  `ÿÿÿíÔÎ&½&  uÿÿÿíÕÎ&½&  ŠÿÿÿçÛÎ&½&  ŸÿÿÿïÐÎ&´&  ´ÿÿÿîÐÎ&´&  ÉÿÿÿèìÎ&½&  ÞÿÿÿèãÎ&´&  óÿÿÿééÎ&´&  ÿÿÿçÔÎ&´&  ÿÿÿçÞÎ&´&  2ÿÿÿçÞÎ&½&  GÿÿÿëÐÎ&´&  \ÿÿÿìÕÎ&½&  qÿÿÿíØÎ&´&  †ÿÿÿçÖÎ&½&  ›ÿÿÿëÐÎ&¤ %ÿÿÿëÐÎ&µ& 9 zÿÿÿëÐÎ&µ& 9 ÿÿÿèìÎ&µ& 9 ¤ÿÿÿðÕÎ&¬& / ¹ÿÿÿéãÎ&µ& 9 ÎÿÿÿçßÎ&¾& C ãÿÿÿïÕÎ&µ& 9 øÿÿÿíÕÎ&¾& C ÿÿÿëÐÎ&¾& C "ÿÿÿíÐÎ&¾& C 7ÿÿÿíÐÎ&¾& C LÿÿÿìéÎ&¾& C aÿÿÿíÔÎ&¾& C vÿÿÿíÕÎ&¾& C ‹ÿÿÿçÛÎ&¾& C  ÿÿÿïÐÎ&µ& 9 µÿÿÿîÐÎ&µ& 9 ÊÿÿÿèìÎ&¾& C ßÿÿÿèàÎ&µ& M ôÿÿÿééÎ&µ& 9 ÿÿÿçÔÎ&µ& M ÿÿÿçÞÎ&µ& 9 3ÿÿÿçÞÎ&¾& C HÿÿÿëÐÎ&µ& 9 ]ÿÿÿìÕÎ&¾& C rÿÿÿíØÎ&µ& 9 ‡ÿÿÿçÜÎ&¾& C œÿÿ ê½&¥ WÿÿÿëêÉ&¶& h {ÿÿÿëêÉ&¶& h ÿÿÿêêÉ&¶& h ¥ÿÿÿðêÉ& ^& º­ÿÿÿéêÉ&¶& h ÏÿÿÿçêÉ&¿& r äÿÿÿïêÉ&¶& h ùÿÿÿíêÉ&¿& r ÿÿÿëêÉ&¿& r #ÿÿÿíêÉ&¿& r 8ÿÿÿðêÉ&¿& r MÿÿÿìêÉ&¿& r bÿÿÿíêÉ&¿& r wÿÿÿíêÉ&¿& r ŒÿÿÿçêÉ&¿& r ¡ÿÿÿïêÉ&¶& h ¶ÿÿÿîêÉ&¶& h ËÿÿÿèìÉ&¿& r àÿÿÿèêÉ&¶& { õÿÿÿéêÉ&¶& h ÿÿÿçêÉ&¶& { ÿÿÿçêÉ&¶& h 4ÿÿÿçêÉ&¿& r IÿÿÿëêÉ&¶& h ^ÿÿÿìêÉ&¿& r sÿÿÿíêÉ&¶& h ˆÿÿÿçêÉ&¿& r ÿÿÿëöÎ&§ …ÿÿÿëöÎ&¸& ™ |ÿÿÿëöÎ&¸& ™ ‘ÿÿÿêöÎ&¸& ™ ¦ÿÿÿðöÎ&¯&  »ÿÿÿêöÎ&¸& ™ ÐÿÿÿçöÎ&Á& £ åÿÿÿïöÎ&¸& ™ úÿÿÿíöÎ&Á& £ ÿÿÿëöÎ&Á& £ $ÿÿÿíöÎ&Á& £ 9ÿÿÿíöÎ&Á& £ NÿÿÿìöÎ&Á& £ cÿÿÿîöÎ&Á& £ xÿÿÿíöÎ&Á& £ ÿÿÿçöÎ&Á& £ ¢ÿÿÿïöÎ&¸& ™ ·ÿÿÿîöÎ&¸& ™ ÌÿÿÿèöÎ&Á& £ áÿÿÿèöÎ&¸& ­ öÿÿÿéöÎ&¸& ™ ÿÿÿçöÎ&¸& ­ ÿÿÿçöÎ&¸& ™ 5ÿÿÿçöÎ&Á& £ JÿÿÿëöÎ&¸& ™ _ÿÿÿìöÎ&Á& £ tÿÿÿíöÎ&¸& ™ ‰ÿÿÿçöÎ&Á& £ žÿÿÿëÐÎ&© ·ÿÿÿëÐÎ&º& Ë |ÿÿÿëÐÎ&º& Ë ‘ÿÿÿêëÎ&º& Ë ¦ÿÿÿðÕÎ&±& Á »ÿÿÿêãÎ&º& Ë ÐÿÿÿçßÎ&Ã& Õ åÿÿÿïÕÎ&º& Ë úÿÿÿíÕÎ&Ã& Õ ÿÿÿëÐÎ&Ã& Õ $ÿÿÿíÐÎ&Ã& Õ 9ÿÿÿíÐÎ&Ã& Õ NÿÿÿìéÎ&Ã& Õ cÿÿÿîÔÎ&Ã& Õ xÿÿÿíÕÎ&Ã& Õ ÿÿÿçÛÎ&Ã& Õ ¢ÿÿÿïÐÎ&º& Ë ·ÿÿÿîÐÎ&º& Ë ÌÿÿÿèéÎ&Ã& Õ áÿÿÿèãÎ&º& ß öÿÿÿééÎ&º& Ë ÿÿÿçÔÎ&º& ß ÿÿÿçâÎ&º& Ë 5ÿÿÿçâÎ&Ã& Õ JÿÿÿëÐÎ&º& Ë _ÿÿÿìÕÎ&Ã& Õ tÿÿÿíØÎ&º& Ë ‰ÿÿÿçÜÎ&Ã& Õ žÿÿÿëÐÎ&§ éÿÿÿëÐÎ&¸& ü |ÿÿÿëÐÎ&¸& ü ‘ÿÿÿêëÎ&¸& ü ¦ÿÿÿðÕÎ&¯& ò »ÿÿÿêãÎ&¸& ü ÐÿÿÿçßÎ&Á&  åÿÿÿïÕÎ&¸& ü úÿÿÿíÕÎ&Á&  ÿÿÿëÐÎ&Á&  $ÿÿÿíÐÎ&Á&  9ÿÿÿíÐÎ&Á&  NÿÿÿìéÎ&Á&  cÿÿÿîÔÎ&Á&  xÿÿÿíÕÎ&Á&  ÿÿÿçÛÎ&Á&  ¢ÿÿÿïÐÎ&¸& ü ·ÿÿÿîÐÎ&¸& ü ÌÿÿÿèéÎ&Á&  áÿÿÿèãÎ&¸&  öÿÿÿééÎ&¸& ü ÿÿÿçÔÎ&¸&  ÿÿÿçâÎ&¸& ü 5ÿÿÿçâÎ&Á&  JÿÿÿëÐÎ&¸& ü _ÿÿÿìÕÎ&Á&  tÿÿÿíØÎ&¸& ü ‰ÿÿÿçÜÎ&Á&  žÿÿ ë½&¥ ÿÿÿëëÉ&¶& . {ÿÿÿëëÉ&¶& . ÿÿÿêëÉ&¶& . ¥ÿÿÿðëÉ&­& $ ºÿÿÿéëÉ&¶& . ÏÿÿÿçëÉ&¿& 8 äÿÿÿïëÉ&¶& . ùÿÿÿíëÉ&¿& 8 ÿÿÿëëÉ&¿& 8 #ÿÿÿíëÉ&¿& 8 8ÿÿÿðëÉ&¿& 8 MÿÿÿìëÉ&¿& 8 bÿÿÿíëÉ&¿& 8 wÿÿÿíëÉ&¿& 8 ŒÿÿÿçëÉ&¿& 8 ¡ÿÿÿïëÉ&¶& . ¶ÿÿÿîëÉ&¶& . ËÿÿÿèìÉ&¿& 8 àÿÿÿèëÉ&¶& B õÿÿÿéëÉ&¶& . ÿÿÿçëÉ&¶& B ÿÿÿçëÉ&¶& . 4ÿÿÿçëÉ&¿& 8 IÿÿÿëëÉ&¶& . ^ÿÿÿìëÉ&¿& 8 sÿÿÿíëÉ&¶& . ˆÿÿÿçëÉ&¿& 8 ÿÿÿëëÉ&¦ JÿÿÿëëÉ&·& V {ÿÿÿëëÉ&·& V ÿÿÿêëÉ&·& V ¥ÿÿÿðëÉ& Q&® ºÿÿÿéëÉ&·& V ÏÿÿÿçëÉ&À& k äÿÿÿïëÉ&·& V ùÿÿÿíëÉ&·& V ÿÿÿëëÉ&À& k #ÿÿÿíëÉ&À& k 8ÿÿÿðëÉ&À& k MÿÿÿìëÉ&À& k bÿÿÿíëÉ&À& k wÿÿÿíëÉ&À& k ŒÿÿÿçëÉ&À& k ¡ÿÿÿïëÉ&·& V ¶ÿÿÿîëÉ&·& V ËÿÿÿèìÉ&À& k àÿÿÿèëÉ&·& d õÿÿÿéëÉ&·& V ÿÿÿçëÉ&·& V ÿÿÿçëÉ&·& V 4ÿÿÿçëÉ&À& ] IÿÿÿëëÉ&·& V ^ÿÿÿìëÉ&·& k sÿÿÿíëÉ&·& V ˆÿÿÿçëÉ&À& ] ÿÿÿëÐÎ&¨ rÿÿÿëÐÎ&¹& € ~ÿÿÿëÐÎ&¹& € “ÿÿÿêëÎ&¹& € ¨ÿÿÿðÕÎ&°& y ½ÿÿÿéãÎ&¹& € ÒÿÿÿçßÎ&Â& • çÿÿÿïÕÎ&¹& € üÿÿÿíÕÎ&Â& • ÿÿÿëÐÎ&Â& • &ÿÿÿíÐÎ&Â& • ;ÿÿÿíÐÎ&Â& • PÿÿÿëéÎ&Â& • eÿÿÿîÔÎ&Â& • zÿÿÿíÖÎ&Â& • ÿÿÿçÛÎ&Â& • ¤ÿÿÿïÐÎ&¹& € ¹ÿÿÿîÐÎ&¹& € ÎÿÿÿêéÎ&Â& • ãÿÿÿèãÎ&¹& Ž øÿÿÿçéÎ&¹& € ÿÿÿçÔÎ&¹& Ž "ÿÿÿçÞÎ&¹& € 7ÿÿÿíÞÎ&Â& ‡ LÿÿÿëÐÎ&¹& € aÿÿÿìÕÎ&Â& • vÿÿÿíØÎ&¹& € ‹ÿÿÿçÜÎ&Â& ‡  ÿÿÿëÐÎ&ª œÿÿÿëÐÎ&»& ª ~ÿÿÿëÐÎ&»& ª “ÿÿÿêëÎ&»& ª ¨ÿÿÿðÕÎ&²& £ ½ÿÿÿéãÎ&»& ª ÒÿÿÿçßÎ&Ä& ¿ çÿÿÿïÕÎ&»& ª üÿÿÿíÕÎ&Ä& ¿ ÿÿÿëÐÎ&Ä& ¿ &ÿÿÿíÐÎ&Ä& ¿ ;ÿÿÿíÐÎ&Ä& ¿ PÿÿÿëéÎ&Ä& ¿ eÿÿÿîÔÎ&Ä& ¿ zÿÿÿíÖÎ&Ä& ¿ ÿÿÿçÛÎ&Ä& ¿ ¤ÿÿÿïÐÎ&»& ª ¹ÿÿÿîÐÎ&»& ª ÎÿÿÿêéÎ&Ä& ¿ ãÿÿÿèãÎ&»& ¸ øÿÿÿçéÎ&»& ª ÿÿÿçÔÎ&»& ¸ "ÿÿÿçÞÎ&»& ª 7ÿÿÿíÞÎ&Ä& ± LÿÿÿëÐÎ&»& ª aÿÿÿìÕÎ&Ä& ¿ vÿÿÿíØÎ&»& ª ‹ÿÿÿçÜÎ&Ä& ±  ÿÿÿëÐÎ&¨ ÆÿÿÿëÐÎ&¹& Ô }ÿÿÿëÐÎ&¹& Ô ’ÿÿÿêëÎ&¹& Ô §ÿÿÿðÕÎ&°& Í ¼ÿÿÿéãÎ&¹& Ô ÑÿÿÿçßÎ&Â& é æÿÿÿïÕÎ&¹& Ô ûÿÿÿíÕÎ&Â& é ÿÿÿëÐÎ&Â& é %ÿÿÿíÐÎ&Â& é :ÿÿÿíÐÎ&Â& é OÿÿÿëèÎ&Â& é dÿÿÿîÔÎ&Â& é yÿÿÿíÖÎ&Â& é ŽÿÿÿçÛÎ&Â& é £ÿÿÿïÐÎ&¹& Ô ¸ÿÿÿîÐÎ&¹& Ô ÍÿÿÿêéÎ&Â& é âÿÿÿèãÎ&¹& â ÷ÿÿÿçéÎ&¹& Ô ÿÿÿçÔÎ&¹& â !ÿÿÿçÞÎ&¹& Ô 6ÿÿÿçÞÎ&Â& Û KÿÿÿëÐÎ&¹& Ô `ÿÿÿìÕÎ&Â& é uÿÿÿíØÎ&¹& Ô ŠÿÿÿçÖÎ&Â& Û ŸÿÿÿíëÉ&¦ ðÿÿÿëëÉ&·& þ {ÿÿÿëëÉ&·& þ ÿÿÿêëÉ&·& þ ¥ÿÿÿðëÉ&®& ÷ ºÿÿÿéëÉ&·& þ ÏÿÿÿçëÉ&À&  äÿÿÿïëÉ&·& þ ùÿÿÿíëÉ&À&  ÿÿÿëëÉ&À&  #ÿÿÿíëÉ&À&  8ÿÿÿðëÉ&À&  MÿÿÿìëÉ&À&  bÿÿÿíëÉ&À&  wÿÿÿíëÉ&À&  ŒÿÿÿçëÉ&À&  ¡ÿÿÿïëÉ&·& þ ¶ÿÿÿîëÉ&·& þ ËÿÿÿèìÉ&À&  àÿÿÿèëÉ&·&  õÿÿÿéëÉ&·& þ ÿÿÿçëÉ&·&  ÿÿÿçëÉ&·& þ 4ÿÿÿçëÉ&À&  IÿÿÿëëÉ&·& þ ^ÿÿÿìëÉ&À&  sÿÿÿíëÉ&·& þ ˆÿÿÿçëÉ&À&  ÿÿ ë½&¥ ÿÿÿëëÉ&¶& ' {ÿÿÿëëÉ&¶& ' ÿÿÿêëÉ&¶& ' ¥ÿÿÿðëÉ&­&  ºÿÿÿéëÉ&¶& ' ÏÿÿÿçëÉ&¿& < äÿÿÿïëÉ&¶& ' ùÿÿÿíëÉ&¿& < ÿÿÿëëÉ&¿& < #ÿÿÿíëÉ&¿& < 8ÿÿÿðëÉ&¿& < MÿÿÿìëÉ&¿& < bÿÿÿíëÉ&¿& < wÿÿÿíëÉ&¿& < ŒÿÿÿçëÉ&¿& < ¡ÿÿÿïëÉ&¶& ' ¶ÿÿÿîëÉ&¶& ' ËÿÿÿèìÉ&¿& < àÿÿÿèëÉ&¶& 5 õÿÿÿéëÉ&¶& ' ÿÿÿçëÉ&¶& 5 ÿÿÿçëÉ&¶& ' 4ÿÿÿçëÉ&¿& . IÿÿÿëëÉ&¶& ' ^ÿÿÿìëÉ&¿& < sÿÿÿíëÉ&¶& ' ˆÿÿÿçëÉ&¿& . ÿÿÿëÐÎ&§ CÿÿÿëÐÎ&¸& P |ÿÿÿëÐÎ&¸& P ‘ÿÿÿêëÎ&¸& P ¦ÿÿÿðÕÎ&¯& I »ÿÿÿêãÎ&¸& P ÐÿÿÿçßÎ&Á& e åÿÿÿïÕÎ&¸& P úÿÿÿíÕÎ&Á& e ÿÿÿëÐÎ&Á& e $ÿÿÿíÐÎ&Á& e 9ÿÿÿíÐÎ&Á& e NÿÿÿìéÎ&Á& e cÿÿÿîÔÎ&Á& e xÿÿÿíÕÎ&Á& e ÿÿÿçÛÎ&Á& e ¢ÿÿÿïÐÎ&¸& P ·ÿÿÿîÐÎ&¸& P ÌÿÿÿèéÎ&Á& e áÿÿÿèãÎ&¸& ^ öÿÿÿééÎ&¸& P ÿÿÿçÔÎ&¸& ^ ÿÿÿçâÎ&¸& P 5ÿÿÿçâÎ&Á& W JÿÿÿëÐÎ&¸& P _ÿÿÿìÕÎ&Á& e tÿÿÿíØÎ&¸& P ‰ÿÿÿçÜÎ&Á& W žÿÿÿëÐÎ&¢ iÿÿÿëÐÎ&³& o yÿÿÿëÐÎ&³& o ŽÿÿÿèìÎ&³& o £ÿÿÿðÕÎ&«& l ¸ÿÿÿéãÎ&³& o ÍÿÿÿçßÎ&¼& u âÿÿÿïÕÎ&³& o ÷ÿÿÿíÕÎ&¼& u ÿÿÿëÐÎ&¼& u !ÿÿÿíÐÎ&¼& u 6ÿÿÿíÐÎ&¼& u KÿÿÿìéÎ&¼& u `ÿÿÿíÔÎ&¼& u uÿÿÿíÕÎ&¼& u ŠÿÿÿçÛÎ&¼& u ŸÿÿÿïÐÎ&³& o ´ÿÿÿîÐÎ&³& o ÉÿÿÿèìÎ&¼& u ÞÿÿÿèãÎ&³& r óÿÿÿééÎ&³& o ÿÿÿçÔÎ&³& r ÿÿÿçÞÎ& o&³ 2ÿÿÿçÞÎ&¼& o GÿÿÿëÐÎ&³& o \ÿÿÿìÕÎ&¼& u qÿÿÿíØÎ&³& o †ÿÿÿçÖÎ&¼& o ›ÿÿÿëöÎ&ÅWÿÿÿëöÎ&×&] xÿÿÿëöÎ&×&] ÿÿÿèöÎ&×&] ¢ÿÿÿðöÎ&Î&Z ·ÿÿÿêöÎ&×&] ÌÿÿÿçõÎ&à&c áÿÿÿïöÎ&×&] öÿÿÿíõÎ&à&c ÿÿÿëõÎ&à&c ÿÿÿíõÎ&à&c 5ÿÿÿíõÎ&à&c JÿÿÿìõÎ&à&c _ÿÿÿíõÎ&à&c tÿÿÿíõÎ&à&c ‰ÿÿÿçõÎ&à&c žÿÿÿïöÎ&×&] ³ÿÿÿîöÎ&×&] ÈÿÿÿèõÎ&à&c ÝÿÿÿèõÎ&×&` òÿÿÿéöÎ&×&] ÿÿÿçõÎ&×&` ÿÿÿçöÎ&×&] 1ÿÿÿçöÎ&à&] FÿÿÿëöÎ&×&] [ÿÿÿìõÎ&à&c pÿÿÿíöÎ&×&] …ÿÿÿçöÎ&à&] šÿÿÿëÑÎ&ÇfÿÿÿëÑÎ&Ù&l zÿÿÿëÑÎ&Ù&l ÿÿÿèìÎ&Ù&l ¤ÿÿÿðÕÎ&Ð&i ¹ÿÿÿéãÎ&Ù&l ÎÿÿÿçßÎ&â&r ãÿÿÿïÕÎ&Ù&l øÿÿÿíÕÎ&â&r ÿÿÿëÑÎ&â&r "ÿÿÿíÑÎ&â&r 7ÿÿÿíÑÎ&â&r LÿÿÿìéÎ&â&r aÿÿÿíÔÎ&â&r vÿÿÿíÕÎ&â&r ‹ÿÿÿçÛÎ&â&r  ÿÿÿïÑÎ&Ù&l µÿÿÿîÑÎ&Ù&l ÊÿÿÿèìÎ&â&r ßÿÿÿèàÎ&Ù&o ôÿÿÿééÎ&Ù&l ÿÿÿçÔÎ&Ù&o ÿÿÿçÞÎ&Ù&l 3ÿÿÿçÞÎ&â&l HÿÿÿëÑÎ&Ù&l ]ÿÿÿìÕÎ&â&r rÿÿÿíØÎ&Ù&l ‡ÿÿÿçÜÎ&â&l œÿÿÿëöÎ&ÅuÿÿÿëöÎ&×&{ xÿÿÿëöÎ&×&{ ÿÿÿèöÎ&×&{ ¢ÿÿÿðöÎ&Î&x ·ÿÿÿêöÎ&×&{ ÌÿÿÿçöÎ&à& áÿÿÿïöÎ&×&{ öÿÿÿíöÎ&à& ÿÿÿëöÎ&à& ÿÿÿíöÎ&à& 5ÿÿÿíöÎ&à& JÿÿÿìöÎ&à& _ÿÿÿíöÎ&à& tÿÿÿíöÎ&à& ‰ÿÿÿçöÎ&à& žÿÿÿïöÎ&×&{ ³ÿÿÿîöÎ&×&{ ÈÿÿÿèöÎ&à& ÝÿÿÿèöÎ&×&~ òÿÿÿéöÎ&×&{ ÿÿÿçöÎ&×&~ ÿÿÿçöÎ&×&{ 1ÿÿÿçöÎ&à&{ FÿÿÿëöÎ&×&{ [ÿÿÿìöÎ&à& pÿÿÿíöÎ&×&{ …ÿÿÿçöÎ&à&{ šÿÿÿëÐÎ&Ç„ÿÿÿëÑÎ&Ù&Š zÿÿÿëÑÎ&Ù&Š ÿÿÿèìÎ&Ù&Š ¤ÿÿÿðÕÎ&Ð&‡ ¹ÿÿÿéãÎ&Ù&Š ÎÿÿÿçßÎ&â& ãÿÿÿïÕÎ&Ù&Š øÿÿÿíÕÎ&â& ÿÿÿëÑÎ&â& "ÿÿÿíÑÎ&â& 7ÿÿÿíÑÎ&â& LÿÿÿìéÎ&â& aÿÿÿíÔÎ&â& vÿÿÿíÕÎ&â& ‹ÿÿÿçÛÎ&â&  ÿÿÿïÑÎ&Ù&Š µÿÿÿîÑÎ&Ù&Š ÊÿÿÿèìÎ&â& ßÿÿÿèàÎ&Ù& ôÿÿÿééÎ&Ù&Š ÿÿÿçÔÎ&Ù& ÿÿÿçÞÎ&Ù&Š 3ÿÿÿçÞÎ&â&Š HÿÿÿëÑÎ&Ù&Š ]ÿÿÿìÕÎ&â& rÿÿÿíØÎ&Ù&Š ‡ÿÿÿçÜÎ&â&Š œÿÿÿëÑÎ&ƘÿÿÿëÐÎ&Ø&« yÿÿÿëÐÎ&Ø&« ŽÿÿÿèìÎ&Ø&« £ÿÿÿðÕÎ&Ï&¡ ¸ÿÿÿéãÎ&Ø&« ÍÿÿÿçßÎ&á&µ âÿÿÿïÕÎ&Ø&« ÷ÿÿÿíÕÎ&á&µ ÿÿÿëÐÎ&á&µ !ÿÿÿíÐÎ&á&µ 6ÿÿÿíÐÎ&á&µ KÿÿÿìéÎ&á&µ `ÿÿÿíÔÎ&á&µ uÿÿÿíÕÎ&á&µ ŠÿÿÿçÛÎ&á&µ ŸÿÿÿïÐÎ&Ø&« ´ÿÿÿîÐÎ&Ø&« ÉÿÿÿèìÎ&á&µ ÞÿÿÿèãÎ&Ø&¿ óÿÿÿééÎ&Ø&« ÿÿÿçÔÎ&Ø&¿ ÿÿÿçÞÎ&Ø&« 2ÿÿÿçÞÎ&á&µ GÿÿÿëÐÎ&Ø&« \ÿÿÿìÕÎ&á&µ qÿÿÿíØÎ&Ø&« †ÿÿÿçÖÎ&á&µ ›ÿÿÿëÐÎ&ÇÈÿÿÿëÑÎ&Ù&Û zÿÿÿëÑÎ&Ù&Û ÿÿÿèìÎ&Ù&Û ¤ÿÿÿðÕÎ&Ð&Ñ ¹ÿÿÿéãÎ&Ù&Û ÎÿÿÿçßÎ&â&å ãÿÿÿïÕÎ&Ù&Û øÿÿÿíÕÎ&â&å ÿÿÿëÑÎ&â&å "ÿÿÿíÑÎ&â&å 7ÿÿÿíÑÎ&â&å LÿÿÿìéÎ&â&å aÿÿÿíÔÎ&â&å vÿÿÿíÕÎ&â&å ‹ÿÿÿçÛÎ&â&å  ÿÿÿïÑÎ&Ù&Û µÿÿÿîÑÎ&Ù&Û ÊÿÿÿèìÎ&â&å ßÿÿÿèàÎ&Ù&ï ôÿÿÿééÎ&Ù&Û ÿÿÿçÔÎ&Ù&ï ÿÿÿçÞÎ&Ù&Û 3ÿÿÿçÞÎ&â&å HÿÿÿëÑÎ&Ù&Û ]ÿÿÿìÕÎ&â&å rÿÿÿíØÎ&Ù&Û ‡ÿÿÿçÜÎ&â&å œÿÿÿëÐÎ&ÆùÿÿÿëÐÎ&Ø&  yÿÿÿëÐÎ&Ø&  ŽÿÿÿèìÎ&Ø&  £ÿÿÿðÕÎ&Ï&  ¸ÿÿÿéãÎ&Ø&  ÍÿÿÿçßÎ&á&  âÿÿÿïÕÎ&Ø&  ÷ÿÿÿíÕÎ&á&  ÿÿÿëÐÎ&á&  !ÿÿÿíÐÎ&á&  6ÿÿÿíÐÎ&á&  KÿÿÿìéÎ&á&  `ÿÿÿíÔÎ&á&  uÿÿÿíÕÎ&á&  ŠÿÿÿçÛÎ&á&  ŸÿÿÿïÐÎ&Ø&  ´ÿÿÿîÐÎ&Ø&  ÉÿÿÿèìÎ&á&  ÞÿÿÿèãÎ&Ø&  óÿÿÿééÎ&Ø&  ÿÿÿçÔÎ&Ø&  ÿÿÿçÞÎ&Ø&  2ÿÿÿçÞÎ&á&  GÿÿÿëÐÎ&Ø&  \ÿÿÿìÕÎ&á&  qÿÿÿíØÎ&Ø&  †ÿÿÿçÖÎ&á&  ›ÿÿÿëÐÎ&Ç (ÿÿÿëÐÎ&Ù& < zÿÿÿëÐÎ&Ù& < ÿÿÿèìÎ&Ù& < ¤ÿÿÿðÕÎ&Ð& 2 ¹ÿÿÿéãÎ&Ù& < ÎÿÿÿçßÎ&â& F ãÿÿÿïÕÎ&Ù& < øÿÿÿíÕÎ&â& F ÿÿÿëÑÎ&â& F "ÿÿÿíÑÎ&â& F 7ÿÿÿíÑÎ&â& F LÿÿÿìéÎ&â& F aÿÿÿíÔÎ&â& F vÿÿÿíÕÎ&â& F ‹ÿÿÿçÛÎ&â& F  ÿÿÿïÐÎ&Ù& < µÿÿÿîÐÎ&Ù& < ÊÿÿÿèìÎ&â& F ßÿÿÿèàÎ&Ù& P ôÿÿÿééÎ&Ù& < ÿÿÿçÔÎ&Ù& P ÿÿÿçÞÎ&Ù& < 3ÿÿÿçÞÎ&â& F HÿÿÿëÐÎ&Ù& < ]ÿÿÿìÕÎ&â& F rÿÿÿíØÎ&Ù& < ‡ÿÿÿçÜÎ&â& F œÿÿ ê¼&È YÿÿÿëêÈ&Ú& k {ÿÿÿëêÈ&Ú& k ÿÿÿêêÈ&Ú& k ¥ÿÿÿðêÈ&Ñ& a ºÿÿÿéêÈ&Ú& k ÏÿÿÿçêÈ&ã& u äÿÿÿïêÈ&Ú& k ùÿÿÿíêÈ&ã& u ÿÿÿëêÈ&ã& u #ÿÿÿíêÈ&ã& u 8ÿÿÿðêÈ&ã& u MÿÿÿìêÈ&ã& u bÿÿÿíêÈ&ã& u wÿÿÿíêÈ&ã& u ŒÿÿÿçêÈ&ã& u ¡ÿÿÿïêÈ&Ú& k ¶ÿÿÿîêÈ&Ú& k ËÿÿÿèìÈ&ã& u àÿÿÿèêÈ&Ú& ~ õÿÿÿéêÈ&Ú& k ÿÿÿçêÈ&Ú& ~ ÿÿÿçêÈ&Ú& k 4ÿÿÿçêÈ&ã& u IÿÿÿëêÈ&Ú& k ^ÿÿÿìêÈ&ã& u sÿÿÿíêÈ&Ú& k ˆÿÿÿçêÈ&ã& u ÿÿÿëöÎ&Ê ˆÿÿÿëõÎ&Ü& œ |ÿÿÿëõÎ&Ü& œ ‘ÿÿÿêõÎ&Ü& œ ¦ÿÿÿðöÎ&Ó& ’ »ÿÿÿêõÎ&Ü& œ ÐÿÿÿçöÎ&å& ¦ åÿÿÿïõÎ&Ü& œ úÿÿÿíöÎ&å& ¦ ÿÿÿëöÎ&å& ¦ $ÿÿÿíöÎ&å& ¦ 9ÿÿÿíöÎ&å& ¦ NÿÿÿìöÎ&å& ¦ cÿÿÿîöÎ&å& ¦ xÿÿÿíöÎ&å& ¦ ÿÿÿçöÎ&å& ¦ ¢ÿÿÿïõÎ&Ü& œ ·ÿÿÿîõÎ&Ü& œ ÌÿÿÿèöÎ&å& ¦ áÿÿÿèöÎ&Ü& ° öÿÿÿéõÎ&Ü& œ ÿÿÿçöÎ&Ü& ° ÿÿÿçõÎ&Ü& œ 5ÿÿÿçöÎ&å& ¦ JÿÿÿëõÎ&Ü& œ _ÿÿÿìöÎ&å& ¦ tÿÿÿíõÎ&Ü& œ ‰ÿÿÿçöÎ&å& ¦ žÿÿÿëÐÎ&Ì ºÿÿÿëÐÎ&Þ& Î |ÿÿÿëÐÎ&Þ& Î ‘ÿÿÿêëÎ&Þ& Î ¦ÿÿÿðÕÎ&Õ& Ä »ÿÿÿêãÎ&Þ& Î ÐÿÿÿçßÎ&ç& Ø åÿÿÿïÕÎ&Þ& Î úÿÿÿíÕÎ&ç& Ø ÿÿÿëÐÎ&ç& Ø $ÿÿÿíÐÎ&ç& Ø 9ÿÿÿíÐÎ&ç& Ø NÿÿÿìéÎ&ç& Ø cÿÿÿîÔÎ&ç& Ø xÿÿÿíÕÎ&ç& Ø ÿÿÿçÛÎ&ç& Ø ¢ÿÿÿïÐÎ&Þ& Î ·ÿÿÿîÐÎ&Þ& Î ÌÿÿÿèéÎ&ç& Ø áÿÿÿèãÎ&Þ& â öÿÿÿééÎ&Þ& Î ÿÿÿçÔÎ&Þ& â ÿÿÿçâÎ&Þ& Î 5ÿÿÿçâÎ&ç& Ø JÿÿÿëÐÎ&Þ& Î _ÿÿÿìÕÎ&ç& Ø tÿÿÿíØÎ&Þ& Î ‰ÿÿÿçÜÎ&ç& Ø žÿÿÿëÑÎ&Ê ëÿÿÿëÐÎ&Ü& ÿ |ÿÿÿëÐÎ&Ü& ÿ ‘ÿÿÿêëÎ&Ü& ÿ ¦ÿÿÿðÕÎ&Ó& õ »ÿÿÿêãÎ&Ü& ÿ ÐÿÿÿçßÎ&å&  åÿÿÿïÕÎ&Ü& ÿ úÿÿÿíÕÎ&å&  ÿÿÿëÑÎ&å&  $ÿÿÿíÑÎ&å&  9ÿÿÿíÑÎ&å&  NÿÿÿìéÎ&å&  cÿÿÿîÔÎ&å&  xÿÿÿíÕÎ&å&  ÿÿÿçÛÎ&å&  ¢ÿÿÿïÐÎ&Ü& ÿ ·ÿÿÿîÐÎ&Ü& ÿ ÌÿÿÿèéÎ&å&  áÿÿÿèãÎ&Ü&  öÿÿÿééÎ&Ü& ÿ ÿÿÿçÔÎ&Ü&  ÿÿÿçâÎ&Ü& ÿ 5ÿÿÿçâÎ&å&  JÿÿÿëÐÎ&Ü& ÿ _ÿÿÿìÕÎ&å&  tÿÿÿíØÎ&Ü& ÿ ‰ÿÿÿçÜÎ&å&  žÿÿ ë¼&È ÿÿÿëëÈ&Ú& 1 {ÿÿÿëëÈ&Ú& 1 ÿÿÿêëÈ&Ú& 1 ¥ÿÿÿðëÈ&Ñ& ' ºÿÿÿéëÈ&Ú& 1 ÏÿÿÿçëÈ&ã& ; äÿÿÿïëÈ&Ú& 1 ùÿÿÿíëÈ&ã& ; ÿÿÿëëÈ&ã& ; #ÿÿÿíëÈ&ã& ; 8ÿÿÿðëÈ&ã& ; MÿÿÿìëÈ&ã& ; bÿÿÿíëÈ&ã& ; wÿÿÿíëÈ&ã& ; ŒÿÿÿçëÈ&ã& ; ¡ÿÿÿïëÈ&Ú& 1 ¶ÿÿÿîëÈ&Ú& 1 ËÿÿÿèìÈ&ã& ; àÿÿÿèëÈ&Ú& E õÿÿÿéëÈ&Ú& 1 ÿÿÿçëÈ&Ú& E ÿÿÿçëÈ&Ú& 1 4ÿÿÿçëÈ&ã& ; IÿÿÿëëÈ&Ú& 1 ^ÿÿÿìëÈ&ã& ; sÿÿÿíëÈ&Ú& 1 ˆÿÿÿçëÈ&ã& ; ÿÿÿëëÈ&É LÿÿÿëëÈ&Û& X {ÿÿÿëëÈ&Û& X ÿÿÿêëÈ&Û& X ¥ÿÿÿðëÈ&Ò& º QÿÿÿéëÈ&Û& X ÏÿÿÿçëÈ&ä& m äÿÿÿïëÈ&Û& X ùÿÿÿíëÈ&ä& m ÿÿÿëëÈ&ä& m #ÿÿÿíëÈ&ä& m 8ÿÿÿðëÈ&ä& m MÿÿÿìëÈ&ä& m bÿÿÿíëÈ&ä& m wÿÿÿíëÈ&ä& m ŒÿÿÿçëÈ&ä& m ¡ÿÿÿïëÈ&Û& X ¶ÿÿÿîëÈ&Û& X ËÿÿÿèìÈ&ä& m àÿÿÿèëÈ&Û& f õÿÿÿéëÈ&Û& X ÿÿÿçëÈ&Û& X ÿÿÿçëÈ&Û& X 4ÿÿÿçëÈ&ä& _ IÿÿÿëëÈ&Û& X ^ÿÿÿìëÈ&ä& m sÿÿÿíëÈ&Û& X ˆÿÿÿçëÈ&ä& _ ÿÿÿëÐÎ&Ë tÿÿÿëÐÎ&Ý& ‚ ~ÿÿÿëÐÎ&Ý& ‚ “ÿÿÿêëÎ&Ý& ‚ ¨ÿÿÿðÕÎ&Ô& { ½ÿÿÿéãÎ&Ý& ‚ ÒÿÿÿçßÎ&æ& — çÿÿÿïÕÎ&Ý& ‚ üÿÿÿíÕÎ&æ& — ÿÿÿëÐÎ&æ& — &ÿÿÿíÐÎ&æ& — ;ÿÿÿíÐÎ&æ& — PÿÿÿëéÎ&æ& — eÿÿÿîÔÎ&æ& — zÿÿÿíÖÎ&æ& — ÿÿÿçÛÎ&æ& — ¤ÿÿÿïÐÎ&Ý& ‚ ¹ÿÿÿîÐÎ&Ý& ‚ ÎÿÿÿêéÎ&æ& — ãÿÿÿèãÎ&Ý&  øÿÿÿçéÎ&Ý& ‚ ÿÿÿçÔÎ&Ý&  "ÿÿÿçÞÎ&Ý& ‚ 7ÿÿÿíÞÎ&æ& ‰ LÿÿÿëÐÎ&Ý& ‚ aÿÿÿìÕÎ&æ& — vÿÿÿíØÎ&Ý& ‚ ‹ÿÿÿçÜÎ&æ& ‰  ÿÿÿëÐÎ&Í žÿÿÿëÐÎ&ß& ¬ ~ÿÿÿëÐÎ&ß& ¬ “ÿÿÿêëÎ&ß& ¬ ¨ÿÿÿðÕÎ&Ö& ¥ ½ÿÿÿéãÎ&ß& ¬ ÒÿÿÿçßÎ&è& Á çÿÿÿïÕÎ&ß& ¬ üÿÿÿíÕÎ&è& Á ÿÿÿëÐÎ&è& Á &ÿÿÿíÐÎ&è& Á ;ÿÿÿíÐÎ&è& Á PÿÿÿëéÎ&è& Á eÿÿÿîÔÎ&è& Á zÿÿÿíÖÎ&è& Á ÿÿÿçÛÎ&è& Á ¤ÿÿÿïÐÎ&ß& ¬ ¹ÿÿÿîÐÎ&ß& ¬ ÎÿÿÿêéÎ&è& Á ãÿÿÿèãÎ&ß& º øÿÿÿçéÎ&ß& ¬ ÿÿÿçÔÎ&ß& º "ÿÿÿçÞÎ&ß& ¬ 7ÿÿÿíÞÎ&è& ³ LÿÿÿëÐÎ&ß& ¬ aÿÿÿìÕÎ&è& Á vÿÿÿíØÎ&ß& ¬ ‹ÿÿÿçÜÎ&è& ³  ÿÿÿëÑÎ&Ë ÈÿÿÿëÐÎ&Ý& Ö }ÿÿÿëÐÎ&Ý& Ö ’ÿÿÿêëÎ&Ý& Ö §ÿÿÿðÕÎ&Ô& Ï ¼ÿÿÿéãÎ&Ý& Ö ÑÿÿÿçßÎ&æ& ë æÿÿÿïÕÎ&Ý& Ö ûÿÿÿíÕÎ&æ& ë ÿÿÿëÐÎ&æ& ë %ÿÿÿíÐÎ&æ& ë :ÿÿÿíÐÎ&æ& ë OÿÿÿëèÎ&æ& ë dÿÿÿîÔÎ&æ& ë yÿÿÿíÖÎ&æ& ë ŽÿÿÿçÛÎ&æ& ë £ÿÿÿïÐÎ&Ý& Ö ¸ÿÿÿîÐÎ&Ý& Ö ÍÿÿÿêéÎ&æ& ë âÿÿÿèãÎ&Ý& ä ÷ÿÿÿçéÎ&Ý& Ö ÿÿÿçÔÎ&Ý& ä !ÿÿÿçÞÎ&Ý& Ö 6ÿÿÿçÞÎ&æ& Ý KÿÿÿëÐÎ&Ý& Ö `ÿÿÿìÕÎ&æ& ë uÿÿÿíØÎ&Ý& Ö ŠÿÿÿçÖÎ&æ& Ý ŸÿÿÿíëÈ&É òÿÿÿëëÈ&Û&  {ÿÿÿëëÈ&Û&  ÿÿÿêëÈ&Û&  ¥ÿÿÿðëÈ&Ò& ù ºÿÿÿéëÈ&Û&  ÏÿÿÿçëÈ&ä&  äÿÿÿïëÈ&Û&  ùÿÿÿíëÈ&ä&  ÿÿÿëëÈ&ä&  #ÿÿÿíëÈ&ä&  8ÿÿÿðëÈ&ä&  MÿÿÿìëÈ&ä&  bÿÿÿíëÈ&ä&  wÿÿÿíëÈ&ä&  ŒÿÿÿçëÈ&ä&  ¡ÿÿÿïëÈ&Û&  ¶ÿÿÿîëÈ&Û&  ËÿÿÿèìÈ&ä&  àÿÿÿèëÈ&Û&  õÿÿÿéëÈ&Û&  ÿÿÿçëÈ&Û&  ÿÿÿçëÈ&Û&  4ÿÿÿçëÈ&ä&  IÿÿÿëëÈ&Û&  ^ÿÿÿìëÈ&ä&  sÿÿÿíëÈ&Û&  ˆÿÿÿçëÈ&ä&  ÿÿ ë¼&È ÿÿÿëëÈ&Ú& ) {ÿÿÿëëÈ&Ú& ) ÿÿÿêëÈ&Ú& ) ¥ÿÿÿðëÈ&Ñ& " ºÿÿÿéëÈ&Ú& ) ÏÿÿÿçëÈ&ã& > äÿÿÿïëÈ&Ú& ) ùÿÿÿíëÈ&ã& > ÿÿÿëëÈ&ã& > #ÿÿÿíëÈ&ã& > 8ÿÿÿðëÈ&ã& > MÿÿÿìëÈ&ã& > bÿÿÿíëÈ&ã& > wÿÿÿíëÈ&ã& > ŒÿÿÿçëÈ&ã& > ¡ÿÿÿïëÈ&Ú& ) ¶ÿÿÿîëÈ&Ú& ) ËÿÿÿèìÈ&ã& > àÿÿÿèëÈ&Ú& 7 õÿÿÿéëÈ&Ú& ) ÿÿÿçëÈ&Ú& 7 ÿÿÿçëÈ&Ú& ) 4ÿÿÿçëÈ&ã& 0 IÿÿÿëëÈ&Ú& ) ^ÿÿÿìëÈ&ã& > sÿÿÿíëÈ&Ú& ) ˆÿÿÿçëÈ&ã& 0 ÿÿÿëÐÎ&Ê DÿÿÿëÐÎ&Ü& R |ÿÿÿëÐÎ&Ü& R ‘ÿÿÿêëÎ&Ü& R ¦ÿÿÿðÕÎ&Ó& K »ÿÿÿêãÎ&Ü& R ÐÿÿÿçßÎ&å& g åÿÿÿïÕÎ&Ü& R úÿÿÿíÕÎ&å& g ÿÿÿëÐÎ&å& g $ÿÿÿíÐÎ&å& g 9ÿÿÿíÐÎ&å& g NÿÿÿìéÎ&å& g cÿÿÿîÔÎ&å& g xÿÿÿíÕÎ&å& g ÿÿÿçÛÎ&å& g ¢ÿÿÿïÐÎ&Ü& R ·ÿÿÿîÐÎ&Ü& R ÌÿÿÿèéÎ&å& g áÿÿÿèãÎ&Ü& ` öÿÿÿééÎ&Ü& R ÿÿÿçÔÎ&Ü& ` ÿÿÿçâÎ&Ü& R 5ÿÿÿçâÎ&å& Y JÿÿÿëÐÎ&Ü& R _ÿÿÿìÕÎ&å& g tÿÿÿíØÎ&Ü& R ‰ÿÿÿçÜÎ&å& Y žÿÿÿëÑÎ&Å kÿÿÿëÐÎ&×& q yÿÿÿëÐÎ&×& q ŽÿÿÿèìÎ&×& q £ÿÿÿðÕÎ&Î& n ¸ÿÿÿéãÎ&×& q ÍÿÿÿçßÎ&à& w âÿÿÿïÕÎ&×& q ÷ÿÿÿíÕÎ&à& w ÿÿÿëÑÎ&à& w !ÿÿÿíÑÎ&à& w 6ÿÿÿíÑÎ&à& w KÿÿÿìéÎ&à& w `ÿÿÿíÔÎ&à& w uÿÿÿíÕÎ&à& w ŠÿÿÿçÛÎ&à& w ŸÿÿÿïÐÎ&×& q ´ÿÿÿîÐÎ&×& q ÉÿÿÿèìÎ&à& w ÞÿÿÿèãÎ&×& t óÿÿÿééÎ&×& q ÿÿÿçÔÎ&×& t ÿÿÿçÞÎ&×& q 2ÿÿÿçÞÎ&à& q GÿÿÿëÐÎ&×& q \ÿÿÿìÕÎ&à& w qÿÿÿíØÎ&×& q †ÿÿÿçÖÎ&à& q ›ÿÿÿëöÎ&Uéÿÿ ÿëõÎ&û&[ xÿÿ ÿëõÎ&û&[ ÿÿ ÿèõÎ&û&[ ¢ÿÿ ÿðöÎ&ò& ·Xÿÿ ÿêõÎ&û&[ Ìÿÿ ÿçõÎ&&a áÿÿ ÿïõÎ&û&[ öÿÿ ÿíõÎ&a& ûÿÿ ÿëõÎ&&a ÿÿ ÿíõÎ&&a 5ÿÿ ÿíõÎ&&a Jÿÿ ÿìõÎ&&a _ÿÿ ÿíõÎ&&a tÿÿ ÿíõÎ&&a ‰ÿÿ ÿçõÎ&&a žÿÿ ÿïõÎ&û&[ ³ÿÿ ÿîõÎ&û&[ Èÿÿ ÿèõÎ&&a Ýÿÿ ÿèöÎ&û&^ òÿÿ ÿéõÎ&û&[ ÿÿ ÿçöÎ&û&^ -ÿÿ ÿçõÎ&û&[ 1ÿÿ ÿçõÎ&&[ Fÿÿ ÿëõÎ&û&[ [ÿÿ ÿìõÎ&&a pÿÿ ÿíõÎ&û&[ …ÿÿ ÿçõÎ&&[ šÿÿ ÿëÐÎ&ëdÿÿÿëÐÎ&j&ý zÿÿÿëÐÎ&ý&j ÿÿÿèìÎ&ý&j ¤ÿÿÿðÕÎ&ô&g ¹ÿÿÿéãÎ&ý&j Îÿÿ ÿçßÎ&&p ãÿÿÿïÕÎ&ý&j øÿÿ ÿíÕÎ&&p ÿÿ ÿëÐÎ&&p "ÿÿ ÿíÐÎ&&p 7ÿÿ ÿíÐÎ&&p Lÿÿ ÿìéÎ&&p aÿÿ ÿíÔÎ&&p vÿÿ ÿíÕÎ&&p ‹ÿÿ ÿçÛÎ&&p  ÿÿÿïÐÎ&ý&j µÿÿÿîÐÎ&ý&j Êÿÿ ÿèìÎ&&p ßÿÿÿèàÎ&ý&m ôÿÿÿééÎ&ý&j ÿÿÿçÔÎ&m& ,ýÿÿÿçÞÎ&ý&j 3ÿÿ ÿçÞÎ&&j HÿÿÿëÐÎ&ý&j ]ÿÿ ÿìÕÎ&&p rÿÿÿíØÎ&ý&j ‡ÿÿ ÿçÜÎ&&j œÿÿÿëöÎ&ésÿÿ ÿëöÎ&û&y xÿÿ ÿëöÎ&û&y ÿÿ ÿèöÎ&û&y ¢ÿÿ ÿðöÎ&ò&v ·ÿÿ ÿêöÎ&û&y Ìÿÿ ÿçöÎ&& áÿÿ ÿïöÎ&û&y öÿÿ ÿíöÎ&& ÿÿ ÿëöÎ&& ÿÿ ÿíöÎ&& 5ÿÿ ÿíöÎ&& Jÿÿ ÿìöÎ&& _ÿÿ ÿíöÎ&& tÿÿ ÿíöÎ&& ‰ÿÿ ÿçöÎ&& žÿÿ ÿïöÎ&û&y ³ÿÿ ÿîöÎ&û&y Èÿÿ ÿèöÎ&& Ýÿÿ ÿèöÎ&û&| òÿÿ ÿéöÎ&û&y ÿÿ ÿçöÎ&û&| ÿÿ ÿçöÎ&û&y 1ÿÿ ÿçöÎ&&y Fÿÿ ÿëöÎ&û&y [ÿÿ ÿìöÎ&& pÿÿ ÿíöÎ&û&y …ÿÿ ÿçöÎ&&y šÿÿ ÿëÐÎ&ë‚ÿÿÿëÐÎ&ý&ˆ zÿÿÿëÐÎ&ý&ˆ ÿÿÿèìÎ&ý&ˆ ¤ÿÿÿðÕÎ&ô&… ¹ÿÿÿéãÎ&ý&ˆ Îÿÿ ÿçßÎ&&Ž ãÿÿÿïÕÎ&ý&ˆ øÿÿ ÿíÕÎ&&Ž ÿÿ ÿëÐÎ&&Ž "ÿÿ ÿíÐÎ&&Ž 7ÿÿ ÿíÐÎ&&Ž Lÿÿ ÿìéÎ&&Ž aÿÿ ÿíÔÎ&&Ž vÿÿ ÿíÕÎ&&Ž ‹ÿÿ ÿçÛÎ&&Ž  ÿÿÿïÐÎ&ý&ˆ µÿÿÿîÐÎ&ý&ˆ Êÿÿ ÿèìÎ&&Ž ßÿÿÿèàÎ&ý&‹ ôÿÿÿééÎ&ý&ˆ ÿÿÿçÔÎ&ý&‹ ÿÿÿçÞÎ&ý&ˆ 3ÿÿ ÿçÞÎ&&ˆ HÿÿÿëÐÎ&ý&ˆ ]ÿÿ ÿìÕÎ&&Ž rÿÿÿíØÎ&ý&ˆ ‡ÿÿ ÿçÜÎ&&ˆ œÿÿÿëÐÎ&ê‘ÿÿÿëÐÎ&¤& ‡üÿÿÿëÐÎ&ü&© ŽÿÿÿèìÎ&ü&© £ÿÿÿðÕÎ&ó& ¸›ÿÿÿéãÎ&ü&© ÍÿÿÿçßÎ&&³ âÿÿÿïÕÎ&ü&© ÷ÿÿÿíÕÎ&ü& ·ÿÿÿëÐÎ&&³ !ÿÿÿíÐÎ&&³ 6ÿÿÿíÐÎ&&³ KÿÿÿìéÎ&&³ `ÿÿÿíÔÎ&&³ uÿÿÿíÕÎ&&³ ŠÿÿÿçÛÎ&&³ ŸÿÿÿïÐÎ&ü&© ´ÿÿÿîÐÎ&ü&© ÉÿÿÿèìÎ&&³ ÞÿÿÿèãÎ&ü&½ óÿÿÿééÎ&ü&© ÿÿÿçÔÎ&À&ü ÿÿÿçÞÎ&ü&© 2ÿÿÿçÞÎ&&³ GÿÿÿëÐÎ&ü&© \ÿÿÿìÕÎ&&³ qÿÿÿíØÎ&ü&© †ÿÿÿçÖÎ&&³ ›ÿÿ ÿëÐÎ&ëÉÿÿÿëÐÎ&ý&Ù zÿÿÿëÐÎ&ý&Ù ÿÿÿèìÎ&ý&Ù ¤ÿÿÿðÕÎ&ô&Ï ¹ÿÿÿéãÎ&ý&Ù Îÿÿ ÿçßÎ&&ã ãÿÿÿïÕÎ&ý&Ù øÿÿ ÿíÕÎ&&ã ÿÿ ÿëÐÎ&&ã "ÿÿ ÿíÐÎ&&ã 7ÿÿ ÿíÐÎ&&ã Lÿÿ ÿìéÎ&&ã aÿÿ ÿíÔÎ&&ã vÿÿ ÿíÕÎ&&ã ‹ÿÿ ÿçÛÎ&&ã  ÿÿÿïÐÎ&ý&Ù µÿÿÿîÐÎ&ý&Ù Êÿÿ ÿèìÎ&&ã ßÿÿÿèàÎ&ý&í ôÿÿÿééÎ&ý&Ù ÿÿÿçÔÎ&ý&í ÿÿÿçÞÎ&ý&Ù 3ÿÿ ÿçÞÎ&&ã HÿÿÿëÐÎ&ý&Ù ]ÿÿ ÿìÕÎ&&ã rÿÿÿíØÎ&ý&Ù ‡ÿÿ ÿçÜÎ&&ã œÿÿÿëÐÎ&ê÷ÿÿÿëÐÎ&ü&  yÿÿÿëÐÎ&ü&  ŽÿÿÿèìÎ&ü&  £ÿÿÿðÕÎ&ó&ÿ ¸ÿÿÿéãÎ&ü&  ÍÿÿÿçßÎ&&  âÿÿÿïÕÎ&ü&  ÷ÿÿÿíÕÎ&&  ÿÿÿëÐÎ&&  !ÿÿÿíÐÎ&&  6ÿÿÿíÐÎ&&  KÿÿÿìéÎ&&  `ÿÿÿíÔÎ&&  uÿÿÿíÕÎ&&  ŠÿÿÿçÛÎ&&  ŸÿÿÿïÐÎ&ü&  ´ÿÿÿîÐÎ&ü&  ÉÿÿÿèìÎ&&  ÞÿÿÿèãÎ&ü&  óÿÿÿééÎ&ü&  ÿÿÿçÔÎ&ü&  ÿÿÿçÞÎ&ü&  2ÿÿÿçÞÎ&&  GÿÿÿëÐÎ&ü&  \ÿÿÿìÕÎ&&  qÿÿÿíØÎ&ü&  †ÿÿÿçÖÎ&&  ›ÿÿ ÿëÐÎ&ë &ÿÿÿëÐÎ&ý& : zÿÿÿëÐÎ&ý& : ÿÿÿèìÎ&ý& : ¤ÿÿÿðÕÎ&ô& 0 ¹ÿÿÿéãÎ&ý& : Îÿÿ ÿçßÎ&& D ãÿÿÿïÕÎ&ý& : øÿÿ ÿíÕÎ&& D ÿÿ ÿëÐÎ&& D "ÿÿ ÿíÐÎ&& D 7ÿÿ ÿíÐÎ&& D Lÿÿ ÿìéÎ&& D aÿÿ ÿíÔÎ&& D vÿÿ ÿíÕÎ&& D ‹ÿÿ ÿçÛÎ&& D  ÿÿÿïÐÎ&ý& : µÿÿÿîÐÎ&ý& : Êÿÿ ÿèìÎ&& D ßÿÿÿèàÎ&ý& N ôÿÿÿééÎ&ý& : ÿÿÿçÔÎ&ý& N ÿÿÿçÞÎ&ý& : 3ÿÿ ÿçÞÎ&& D HÿÿÿëÐÎ&ý& : ]ÿÿ ÿìÕÎ&& D rÿÿÿíØÎ&ý& : ‡ÿÿ ÿçÜÎ&& D œÿÿ êÃ&ì WÿÿÿëêÎ& i&þ {ÿÿÿëêÎ&þ& i ÿÿÿêêÎ&þ& i ¥ÿÿÿðêÎ&õ& _ ºÿÿÿéêÎ&þ& i ÏÿÿÿçêÎ&& s äÿÿÿïêÎ&þ& i ùÿÿÿíêÎ&& s ÿÿÿëêÎ&& s #ÿÿÿíêÎ&& s 8ÿÿÿðêÎ&& s MÿÿÿìêÎ&& s bÿÿÿíêÎ&& s wÿÿÿíêÎ&& s ŒÿÿÿçêÎ&& s ¡ÿÿÿïêÎ&þ& i ¶ÿÿÿîêÎ&þ& i ËÿÿÿèìÎ&& s àÿÿÿèêÎ&þ& | õÿÿÿéêÎ&þ& i ÿÿÿçêÎ&þ& | ÿÿÿçêÎ&þ& i 4ÿÿÿçêÎ&& s IÿÿÿëêÎ&þ& i ^ÿÿÿìêÎ&& s sÿÿÿíêÎ&þ& i ˆÿÿÿçêÎ&& s ÿÿÿëöÎ&î †ÿÿÿëöÎ&& š |ÿÿÿëöÎ&& š ‘ÿÿÿêöÎ&& š ¦ÿÿÿðöÎ&÷&  »ÿÿÿêöÎ&& š ÐÿÿÿçöÎ& & ¤ åÿÿÿïöÎ&& š úÿÿÿíöÎ& & ¤ ÿÿÿëöÎ& & ¤ $ÿÿÿíöÎ& & ¤ 9ÿÿÿíöÎ& & ¤ NÿÿÿìöÎ& & ¤ cÿÿÿîöÎ& & ¤ xÿÿÿíöÎ& & ¤ ÿÿÿçöÎ& & ¤ ¢ÿÿÿïöÎ&& š ·ÿÿÿîöÎ&& š ÌÿÿÿèöÎ& & ¤ áÿÿÿèöÎ&& ® öÿÿÿéöÎ&& š ÿÿÿçöÎ&& ® ÿÿÿçöÎ&& š 5ÿÿÿçöÎ& & ¤ JÿÿÿëöÎ&& š _ÿÿÿìöÎ& & ¤ tÿÿÿíöÎ&& š ‰ÿÿÿçöÎ& & ¤ žÿÿ ÿëÐÎ&ð ¸ÿÿÿëÐÎ&& Ì |ÿÿÿëÐÎ&& Ì ‘ÿÿÿêëÎ&& Ì ¦ÿÿÿðÕÎ&ù&  »ÿÿÿêãÎ&& Ì ÐÿÿÿçßÎ& & Ö åÿÿÿïÕÎ&& Ì úÿÿÿíÕÎ& & Ö ÿÿÿëÐÎ& & Ö $ÿÿÿíÐÎ& & Ö 9ÿÿÿíÐÎ& & Ö NÿÿÿìéÎ& & Ö cÿÿÿîÔÎ& & Ö xÿÿÿíÕÎ& & Ö ÿÿÿçÛÎ& & Ö ¢ÿÿÿïÐÎ&& Ì ·ÿÿÿîÐÎ&& Ì ÌÿÿÿèéÎ& & Ö áÿÿÿèãÎ&& à öÿÿÿééÎ&& Ì ÿÿÿçÔÎ&& à ÿÿÿçâÎ&& Ì 5ÿÿÿçâÎ& & Ö JÿÿÿëÐÎ&& Ì _ÿÿÿìÕÎ& & Ö tÿÿÿíØÎ&& Ì ‰ÿÿÿçÜÎ& & Ö žÿÿÿëÐÎ&î íÿÿÿëÐÎ&& ý |ÿÿÿëÐÎ&& ý ‘ÿÿÿêëÎ&& ý ¦ÿÿÿðÕÎ&÷& ó »ÿÿÿêãÎ&& ý ÐÿÿÿçßÎ& &  åÿÿÿïÕÎ&& ý úÿÿÿíÕÎ& &  ÿÿÿëÐÎ& &  $ÿÿÿíÐÎ& &  9ÿÿÿíÐÎ& &  NÿÿÿìéÎ& &  cÿÿÿîÔÎ& &  xÿÿÿíÕÎ& &  ÿÿÿçÛÎ& &  ¢ÿÿÿïÐÎ&& ý ·ÿÿÿîÐÎ&& ý ÌÿÿÿèéÎ& &  áÿÿÿèãÎ&&  öÿÿÿééÎ&& ý ÿÿÿçÔÎ&&  ÿÿÿçâÎ&& ý 5ÿÿÿçâÎ& &  JÿÿÿëÐÎ&& ý _ÿÿÿìÕÎ& &  tÿÿÿíØÎ&& ý ‰ÿÿÿçÜÎ& &  žÿÿ ëÃ&ì ÿÿÿëëÎ&þ& / {ÿÿÿëëÎ&þ& / ÿÿÿêëÎ&þ& / ¥ÿÿÿðëÎ&õ& % ºÿÿÿéëÎ&þ& / ÏÿÿÿçëÎ&& 9 äÿÿÿïëÎ&þ& / ùÿÿÿíëÎ&& 9 ÿÿÿëëÎ&& 9 #ÿÿÿíëÎ&& 9 8ÿÿÿðëÎ&& 9 MÿÿÿìëÎ&& 9 bÿÿÿíëÎ&& 9 wÿÿÿíëÎ&& 9 ŒÿÿÿçëÎ&& 9 ¡ÿÿÿïëÎ&þ& / ¶ÿÿÿîëÎ&þ& / ËÿÿÿèìÎ&& 9 àÿÿÿèëÎ&þ& C õÿÿÿéëÎ&þ& / ÿÿÿçëÎ&þ& C ÿÿÿçëÎ&þ& / 4ÿÿÿçëÎ&& 9 IÿÿÿëëÎ&þ& / ^ÿÿÿìëÎ&& 9 sÿÿÿíëÎ&þ& / ˆÿÿÿçëÎ&& 9 ÿÿÿëëÎ& KíÿÿÿëëÎ&ÿ& V {ÿÿÿëëÎ&ÿ& V ÿÿÿêëÎ&ÿ& V ¥ÿÿÿðëÎ&ÿ& Q ºÿÿÿéëÎ&ÿ& V ÏÿÿÿçëÎ&& k äÿÿÿïëÎ&ÿ& V ùÿÿÿíëÎ&& k ÿÿÿëëÎ&& k #ÿÿÿíëÎ&& k 8ÿÿÿðëÎ&& k MÿÿÿìëÎ&& k bÿÿÿíëÎ&& k wÿÿÿíëÎ&& k ŒÿÿÿçëÎ&& k ¡ÿÿÿïëÎ&ÿ& V ¶ÿÿÿîëÎ&ÿ& V ËÿÿÿèìÎ&& k àÿÿÿèëÎ&ÿ& d õÿÿÿéëÎ&ÿ& V ÿÿÿçëÎ&ÿ& V ÿÿÿçëÎ&ÿ& V 4ÿÿÿçëÎ&& ] IÿÿÿëëÎ&ÿ& V ^ÿÿÿìëÎ&& k sÿÿÿíëÎ&ÿ& V ˆÿÿÿçëÎ&& ] ÿÿÿëÐÎ&ï rÿÿÿëÐÎ&& € ~ÿÿÿëÐÎ&& € “ÿÿÿêëÎ&& € ¨ÿÿÿðÕÎ&ø& y ½ÿÿÿéãÎ&& € ÒÿÿÿçßÎ& & • çÿÿÿïÕÎ&& € üÿÿÿíÕÎ& & • ÿÿÿëÐÎ& & • &ÿÿÿíÐÎ& & • ;ÿÿÿíÐÎ& & • PÿÿÿëéÎ& & • eÿÿÿîÔÎ& & • zÿÿÿíÖÎ& & • ÿÿÿçÛÎ& & • ¤ÿÿÿïÐÎ&& € ¹ÿÿÿîÐÎ&& € ÎÿÿÿêéÎ& & • ãÿÿÿèãÎ&& Ž øÿÿÿçéÎ&& € ÿÿÿçÔÎ&& Ž "ÿÿÿçÞÎ&& € 7ÿÿÿíÞÎ& & ‡ LÿÿÿëÐÎ&& € aÿÿÿìÕÎ& & • vÿÿÿíØÎ&& € ‹ÿÿÿçÜÎ& & ‡  ÿÿÿëÐÎ&ñ œÿÿÿëÐÎ&& ª ~ÿÿÿëÐÎ&& ª “ÿÿÿêëÎ&& ª ¨ÿÿÿðÕÎ&ú& £ ½ÿÿÿéãÎ&& ª ÒÿÿÿçßÎ& & ¿ çÿÿÿïÕÎ&& ª üÿÿÿíÕÎ& & ¿ ÿÿÿëÐÎ& & ¿ &ÿÿÿíÐÎ& & ¿ ;ÿÿÿíÐÎ& & ¿ PÿÿÿëéÎ& & ¿ eÿÿÿîÔÎ& & ¿ zÿÿÿíÖÎ& & ¿ ÿÿÿçÛÎ& & ¿ ¤ÿÿÿïÐÎ&& ª ¹ÿÿÿîÐÎ&& ª ÎÿÿÿêéÎ& & ¿ ãÿÿÿèãÎ&& ¸ øÿÿÿçéÎ&& ª ÿÿÿçÔÎ&& ¸ "ÿÿÿçÞÎ&& ª 7ÿÿÿíÞÎ& & ± LÿÿÿëÐÎ&& ª aÿÿÿìÕÎ& & ¿ vÿÿÿíØÎ&& ª ‹ÿÿÿçÜÎ& & ±  ÿÿÿëÐÎ&ï ÆÿÿÿëÐÎ&& Ô }ÿÿÿëÐÎ&& Ô ’ÿÿÿêëÎ&& Ô §ÿÿÿðÕÎ&ø& Í ¼ÿÿÿéãÎ&& Ô ÑÿÿÿçßÎ& & é æÿÿÿïÕÎ&& Ô ûÿÿÿíÕÎ& & é ÿÿÿëÐÎ& & é %ÿÿÿíÐÎ& & é :ÿÿÿíÐÎ& & é OÿÿÿëèÎ& & é dÿÿÿîÔÎ& & é yÿÿÿíÖÎ& & é ŽÿÿÿçÛÎ& & é £ÿÿÿïÐÎ&& Ô ¸ÿÿÿîÐÎ&& Ô ÍÿÿÿêéÎ& & é âÿÿÿèãÎ&& â ÷ÿÿÿçéÎ&& Ô ÿÿÿçÔÎ&& â !ÿÿÿçÞÎ&& Ô 6ÿÿÿçÞÎ& & Û KÿÿÿëÐÎ&& Ô `ÿÿÿìÕÎ& & é uÿÿÿíØÎ&& Ô ŠÿÿÿçÖÎ& & Û ŸÿÿÿíëÎ&í ðÿÿÿëëÎ&ÿ& þ {ÿÿÿëëÎ&ÿ& þ ÿÿÿêëÎ&ÿ& þ ¥ÿÿÿðëÎ&ö& ÷ ºÿÿÿéëÎ&ÿ& þ ÏÿÿÿçëÎ&&  äÿÿÿïëÎ&ÿ& þ ùÿÿÿíëÎ&&  ÿÿÿëëÎ&&  #ÿÿÿíëÎ&&  8ÿÿÿðëÎ&&  MÿÿÿìëÎ&&  bÿÿÿíëÎ&&  wÿÿÿíëÎ&&  ŒÿÿÿçëÎ&&  ¡ÿÿÿïëÎ&ÿ& þ ¶ÿÿÿîëÎ&ÿ& þ ËÿÿÿèìÎ&&  àÿÿÿèëÎ&ÿ&  õÿÿÿéëÎ&ÿ& þ ÿÿÿçëÎ&ÿ&  ÿÿÿçëÎ&ÿ& þ 4ÿÿÿçëÎ&&  IÿÿÿëëÎ&ÿ& þ ^ÿÿÿìëÎ&&  sÿÿÿíëÎ&ÿ& þ ˆÿÿÿçëÎ&&  ÿÿ ëÃ&ì ÿÿÿëëÎ&þ& ' {ÿÿÿëëÎ&þ& ' ÿÿÿêëÎ&þ& ' ¥ÿÿÿðëÎ& & ºöÿÿÿéëÎ&þ& ' ÏÿÿÿçëÎ&& < äÿÿÿïëÎ&þ& ' ùÿÿÿíëÎ&& < ÿÿÿëëÎ&& < #ÿÿÿíëÎ&& < 8ÿÿÿðëÎ&& < MÿÿÿìëÎ&& < bÿÿÿíëÎ&& < wÿÿÿíëÎ&& < ŒÿÿÿçëÎ&& < ¡ÿÿÿïëÎ&þ& ' ¶ÿÿÿîëÎ&þ& ' ËÿÿÿèìÎ&& < àÿÿÿèëÎ&þ& 5 õÿÿÿéëÎ&þ& ' ÿÿÿçëÎ& 5& þÿÿÿçëÎ&þ& ' 4ÿÿÿçëÎ&& . IÿÿÿëëÎ&þ& ' ^ÿÿÿìëÎ&& < sÿÿÿíëÎ&þ& ' ˆÿÿÿçëÎ&& . ÿÿÿëÐÎ&î CÿÿÿëÐÎ&& P |ÿÿÿëÐÎ&& P ‘ÿÿÿêëÎ&& P ¦ÿÿÿðÕÎ&÷& I »ÿÿÿêãÎ&& P ÐÿÿÿçßÎ& & e åÿÿÿïÕÎ&& P úÿÿÿíÕÎ& & e ÿÿÿëÐÎ& & e $ÿÿÿíÐÎ& & e 9ÿÿÿíÐÎ& & e NÿÿÿìéÎ& & e cÿÿÿîÔÎ& & e xÿÿÿíÕÎ& & e ÿÿÿçÛÎ& & e ¢ÿÿÿïÐÎ&& P ·ÿÿÿîÐÎ&& P ÌÿÿÿèéÎ& & e áÿÿÿèãÎ&& ^ öÿÿÿééÎ&& P ÿÿÿçÔÎ&& ^ ÿÿÿçâÎ&& P 5ÿÿÿçâÎ& & W JÿÿÿëÐÎ&& P _ÿÿÿìÕÎ& & e tÿÿÿíØÎ&& P ‰ÿÿÿçÜÎ& & W žÿÿÿëÐÎ&é iÿÿ ÿëÐÎ& o&û xÿÿ ÿëÐÎ&û& o Žÿÿ ÿèìÎ&û& o £ÿÿ ÿðÕÎ& l& »òÿÿ ÿéãÎ&û& o Íÿÿ ÿçßÎ&& u âÿÿ ÿïÕÎ&û& o ÷ÿÿ ÿíÕÎ&û& o ÿÿ ÿëÐÎ&& u !ÿÿ ÿíÐÎ&& u 6ÿÿ ÿíÐÎ&& u Kÿÿ ÿìéÎ&& u `ÿÿ ÿíÔÎ&& u uÿÿ ÿíÕÎ&& u Šÿÿ ÿçÛÎ&& u Ÿÿÿ ÿïÐÎ&û& o ´ÿÿ ÿîÐÎ&û& o Éÿÿ ÿèìÎ&& u Þÿÿ ÿèãÎ&û& r óÿÿ ÿééÎ&û& o ÿÿ ÿçÔÎ&û& r ÿÿ ÿçÞÎ&û& o 2ÿÿ ÿçÞÎ&& o Gÿÿ ÿëÐÎ&û& o \ÿÿ ÿìÕÎ&& u qÿÿ ÿíØÎ&û& o †ÿÿ ÿçÖÎ&& o ›ÿÿ ÿëöÎ&V ÿÿÿëõÎ&&\ xÿÿÿëõÎ&&\ ÿÿÿèõÎ&&\ ¢ÿÿ ÿðöÎ&&Y ·ÿÿÿêõÎ&&\ Ìÿÿ ÿçõÎ&(&b áÿÿÿïõÎ&&\ öÿÿ ÿíõÎ&(&b ÿÿ ÿëõÎ&(&b ÿÿ ÿíõÎ&(&b 5ÿÿ ÿíõÎ&(&b Jÿÿ ÿìõÎ&(&b _ÿÿ ÿíõÎ&(&b tÿÿ ÿíõÎ&(&b ‰ÿÿ ÿçõÎ&(&b žÿÿÿïõÎ&&\ ³ÿÿÿîõÎ&&\ Èÿÿ ÿèõÎ&(&b ÝÿÿÿèõÎ&&_ òÿÿÿéõÎ&&\ ÿÿÿçõÎ&&_ ÿÿÿçõÎ&&\ 1ÿÿ ÿçõÎ&(&\ FÿÿÿëõÎ&&\ [ÿÿ ÿìõÎ&(&b pÿÿÿíõÎ&&\ …ÿÿ ÿçõÎ&(&\ šÿÿÿëÑÎ&eÿÿÿëÐÎ&!&k zÿÿÿëÐÎ&!&k ÿÿÿèìÎ&!&k ¤ÿÿÿðÕÎ&&h ¹ÿÿÿéãÎ&!&k ÎÿÿÿçßÎ&*&q ãÿÿÿïÕÎ&!&k øÿÿÿíÕÎ&*&q ÿÿÿëÑÎ&*&q "ÿÿÿíÑÎ&*&q 7ÿÿÿíÑÎ&*&q LÿÿÿìéÎ&*&q aÿÿÿíÔÎ&*&q vÿÿÿíÕÎ&*&q ‹ÿÿÿçÛÎ&*&q  ÿÿÿïÐÎ&!&k µÿÿÿîÐÎ&!&k ÊÿÿÿèìÎ&*&q ßÿÿÿèàÍ&!&n ôÿÿÿééÎ&!&k ÿÿÿçÔÍ&!&n ÿÿÿçÞÎ&!&k 3ÿÿÿçÞÎ&*&k HÿÿÿëÐÎ&!&k ]ÿÿÿìÕÎ&*&q rÿÿÿíØÎ&!&k ‡ÿÿÿçÜÎ&*&k œÿÿ ÿëöÎ& tÿÿÿëöÎ&&z xÿÿÿëöÎ&&z ÿÿÿèöÎ&&z ¢ÿÿ ÿðöÎ&&w ·ÿÿÿêöÎ&&z Ìÿÿ ÿçöÎ&(&€ áÿÿÿïöÎ&&z öÿÿ ÿíöÎ&(&€ ÿÿ ÿëöÎ&(&€ ÿÿ ÿíöÎ&(&€ 5ÿÿ ÿíöÎ&(&€ Jÿÿ ÿìöÎ&(&€ _ÿÿ ÿíöÎ&(&€ tÿÿ ÿíöÎ&(&€ ‰ÿÿ ÿçöÎ&(&€ žÿÿÿïöÎ&&z ³ÿÿÿîöÎ&&z Èÿÿ ÿèöÎ&(&€ ÝÿÿÿèöÎ&&} òÿÿÿéöÎ&&z ÿÿÿçöÎ&&} ÿÿÿçöÎ&&z 1ÿÿ ÿçöÎ&(&z FÿÿÿëöÎ&&z [ÿÿ ÿìöÎ&(&€ pÿÿÿíöÎ&&z …ÿÿ ÿçöÎ&(&z šÿÿÿëÐÎ&ƒÿÿÿëÐÎ&!&‰ zÿÿÿëÐÎ&!&‰ ÿÿÿèìÎ&!&‰ ¤ÿÿÿðÕÎ&&† ¹ÿÿÿéãÎ&!&‰ ÎÿÿÿçßÎ&*& ãÿÿÿïÕÎ&!&‰ øÿÿÿíÕÎ&*& ÿÿÿëÐÎ&*& "ÿÿÿíÐÎ&*& 7ÿÿÿíÐÎ&*& LÿÿÿìéÎ&*& aÿÿÿíÔÎ&*& vÿÿÿíÕÎ&*& ‹ÿÿÿçÛÎ&*&  ÿÿÿïÐÎ&!&‰ µÿÿÿîÐÎ&!&‰ ÊÿÿÿèìÎ&*& ßÿÿÿèàÎ&!&Œ ôÿÿÿééÎ&!&‰ ÿÿÿçÔÎ&!&Œ ÿÿÿçÞÎ&!&‰ 3ÿÿÿçÞÎ&*&‰ HÿÿÿëÐÎ&!&‰ ]ÿÿÿìÕÎ&*& rÿÿÿíØÎ&!&‰ ‡ÿÿÿçÜÎ&*&‰ œÿÿÿëÐÎ&“ÿÿÿëÐÎ& &¦ yÿÿÿëÐÎ& &¦ ŽÿÿÿèìÎ& &¦ £ÿÿÿðÕÎ&& ¸ÿÿÿéãÎ& &¦ ÍÿÿÿçßÎ&)&° âÿÿÿïÕÎ& &¦ ÷ÿÿÿíÕÎ&)&° ÿÿÿëÐÎ&)&° !ÿÿÿíÐÎ&)&° 6ÿÿÿíÐÎ&)&° KÿÿÿìéÎ&)&° `ÿÿÿíÔÎ&)&° uÿÿÿíÕÎ&)&° ŠÿÿÿçÛÎ&)&° ŸÿÿÿïÐÎ& &¦ ´ÿÿÿîÐÎ& &¦ ÉÿÿÿèìÎ&)&° ÞÿÿÿèãÎ& &º óÿÿÿééÎ& &¦ ÿÿÿçÔÎ& &º ÿÿÿçÞÎ& &¦ 2ÿÿÿçÞÎ&)&° GÿÿÿëÐÎ& &¦ \ÿÿÿìÕÎ&)&° qÿÿÿíØÎ& &¦ †ÿÿÿçÖÎ&)&° ›ÿÿÿëÐÎ&ÃÿÿÿëÐÎ&!&Ö zÿÿÿëÐÎ&!&Ö ÿÿÿèìÎ&!&Ö ¤ÿÿÿðÕÎ&&Ì ¹ÿÿÿéãÎ&!&Ö ÎÿÿÿçßÎ&*&à ãÿÿÿïÕÎ&!&Ö øÿÿÿíÕÎ&*&à ÿÿÿëÐÎ&*&à "ÿÿÿíÐÎ&*&à 7ÿÿÿíÐÎ&*&à LÿÿÿìéÎ&*&à aÿÿÿíÔÎ&*&à vÿÿÿíÕÎ&*&à ‹ÿÿÿçÛÎ&*&à  ÿÿÿïÐÎ&!&Ö µÿÿÿîÐÎ&!&Ö ÊÿÿÿèìÎ&*&à ßÿÿÿèàÎ&!&ê ôÿÿÿééÎ&!&Ö ÿÿÿçÔÎ&!&ê ÿÿÿçÞÎ&!&Ö 3ÿÿÿçÞÎ&*&à HÿÿÿëÐÎ&!&Ö ]ÿÿÿìÕÎ&*&à rÿÿÿíØÎ&!&Ö ‡ÿÿÿçÜÎ&*&à œÿÿÿëÐÎ&ôÿÿÿëÐÎ& &  yÿÿÿëÐÎ& &  ŽÿÿÿèìÎ& &  £ÿÿÿðÕÎ&&þ ¸ÿÿÿéãÎ& &  ÍÿÿÿçßÎ&)&  âÿÿÿïÕÎ& &  ÷ÿÿÿíÕÎ&)&  ÿÿÿëÐÎ&)&  !ÿÿÿíÐÎ&)&  6ÿÿÿíÐÎ&)&  KÿÿÿìéÎ&)&  `ÿÿÿíÔÎ&)&  uÿÿÿíÕÎ&)&  ŠÿÿÿçÛÎ&)&  ŸÿÿÿïÐÎ& &  ´ÿÿÿîÐÎ& &  ÉÿÿÿèìÎ&)&  ÞÿÿÿèãÎ& &  óÿÿÿééÎ& &  ÿÿÿçÔÎ& &  ÿÿÿçÞÎ& &  2ÿÿÿçÞÎ&)&  GÿÿÿëÐÎ& &  \ÿÿÿìÕÎ&)&  qÿÿÿíØÎ& &  †ÿÿÿçÖÎ&)&  ›ÿÿÿëÐÎ& #ÿÿÿëÐÎ&!& 7 zÿÿÿëÐÎ&!& 7 ÿÿÿèìÎ&!& 7 ¤ÿÿÿðÕÎ&& - ¹ÿÿÿéãÎ&!& 7 ÎÿÿÿçßÎ&*& A ãÿÿÿïÕÎ&!& 7 øÿÿÿíÕÎ&*& A ÿÿÿëÐÎ&*& A "ÿÿÿíÐÎ&*& A 7ÿÿÿíÐÎ&*& A LÿÿÿìéÎ&*& A aÿÿÿíÔÎ&*& A vÿÿÿíÕÎ&*& A ‹ÿÿÿçÛÎ&*& A  ÿÿÿïÐÎ&!& 7 µÿÿÿîÐÎ&!& 7 ÊÿÿÿèìÎ&*& A ßÿÿÿèàÎ&!& K ôÿÿÿééÎ&!& 7 ÿÿÿçÔÎ&!& K ÿÿÿçÞÎ&!& 7 3ÿÿÿçÞÎ&*& A HÿÿÿëÐÎ&!& 7 ]ÿÿÿìÕÎ&*& A rÿÿÿíØÎ&!& 7 ‡ÿÿÿçÜÎ&*& A œÿÿ ê¾& UÿÿÿëêÎ&"& f {ÿÿÿëêÎ&"& f ÿÿÿêêÎ&"& f ¥ÿÿÿðêË&& ] ºÿÿÿéêÎ&"& f ÏÿÿÿçêË&+& p äÿÿÿïêÎ&"& f ùÿÿÿíêË&+& p ÿÿÿëêË&+& p #ÿÿÿíêË&+& p 8ÿÿÿðêË&+& p MÿÿÿìêË&+& p bÿÿÿíêË&+& p wÿÿÿíêË&+& p ŒÿÿÿçêË&+& p ¡ÿÿÿïêÎ&"& f ¶ÿÿÿîêÎ&"& f ËÿÿÿèìË&+& p àÿÿÿèêÎ&"& y õÿÿÿéêÎ&"& f ÿÿÿçêÎ&"& y ÿÿÿçêÎ&"& f 4ÿÿÿçêË&+& p IÿÿÿëêÎ&"& f ^ÿÿÿìêË&+& p sÿÿÿíêÎ&"& f ˆÿÿÿçêË&+& p ÿÿ ÿëöÎ& ƒÿÿÿëöÎ&$& — |ÿÿÿëöÎ&$& — ‘ÿÿÿêöÎ&$& — ¦ÿÿÿðöÎ&&  »ÿÿÿêöÎ&$& — ÐÿÿÿçöÎ&-& ¡ åÿÿÿïöÎ&$& — úÿÿÿíöÎ&-& ¡ ÿÿÿëöÎ&-& ¡ $ÿÿÿíöÎ&-& ¡ 9ÿÿÿíöÎ&-& ¡ NÿÿÿìöÎ&-& ¡ cÿÿÿîöÎ&-& ¡ xÿÿÿíöÎ&-& ¡ ÿÿÿçöÎ&-& ¡ ¢ÿÿÿïöÎ&$& — ·ÿÿÿîöÎ&$& — ÌÿÿÿèöÎ&-& ¡ áÿÿÿèöÎ&$& « öÿÿÿéöÎ&$& — ÿÿÿçöÎ&$& « ÿÿÿçöÎ&$& — 5ÿÿÿçöÎ&-& ¡ JÿÿÿëöÎ&$& — _ÿÿÿìöÎ&-& ¡ tÿÿÿíöÎ&$& — ‰ÿÿÿçöÎ&-& ¡ žÿÿ ÿëÐÎ& µÿÿ ÿëÐÎ&&& É |ÿÿ ÿëÐÎ&&& É ‘ÿÿ ÿêëÎ&&& É ¦ÿÿ ÿðÕÎ&& ¿ »ÿÿ ÿêãÎ&&& É ÐÿÿÿçßÎ&/& Ó åÿÿ ÿïÕÎ&&& É úÿÿÿíÕÎ&/& Ó ÿÿÿëÐÎ&/& Ó $ÿÿÿíÐÎ&/& Ó 9ÿÿÿíÐÎ&/& Ó NÿÿÿìéÎ&/& Ó cÿÿÿîÔÎ&/& Ó xÿÿÿíÕÎ&/& Ó ÿÿÿçÛÎ&/& Ó ¢ÿÿ ÿïÐÎ&&& É ·ÿÿ ÿîÐÎ&&& É ÌÿÿÿèéÎ&/& Ó áÿÿ ÿèãÎ&&& Ý öÿÿ ÿééÎ&&& É ÿÿ ÿçÔÎ&&& Ý ÿÿ ÿçâÎ&&& É 5ÿÿÿçâÎ&/& Ó Jÿÿ ÿëÐÎ&&& É _ÿÿÿìÕÎ&/& Ó tÿÿ ÿíØÎ&&& É ‰ÿÿÿçÜÎ&/& Ó žÿÿ ÿëÐÎ& çÿÿÿëÐÎ&$& ú |ÿÿÿëÐÎ&$& ú ‘ÿÿÿêëÎ&$& ú ¦ÿÿÿðÕÎ&& ð »ÿÿÿêãÎ&$& ú ÐÿÿÿçßÎ&-&  åÿÿÿïÕÎ&$& ú úÿÿÿíÕÎ&-&  ÿÿÿëÐÎ&-&  $ÿÿÿíÐÎ&-&  9ÿÿÿíÐÎ&-&  NÿÿÿìéÎ&-&  cÿÿÿîÔÎ&-&  xÿÿÿíÕÎ&-&  ÿÿÿçÛÎ&-&  ¢ÿÿÿïÐÎ&$& ú ·ÿÿÿîÐÎ&$& ú ÌÿÿÿèéÎ&-&  áÿÿÿèãÎ&$&  öÿÿÿééÎ&$& ú ÿÿÿçÔÎ&$&  ÿÿÿçâÎ&$& ú 5ÿÿÿçâÎ&-&  JÿÿÿëÐÎ&$& ú _ÿÿÿìÕÎ&-&  tÿÿÿíØÎ&$& ú ‰ÿÿÿçÜÎ&-&  žÿÿ ë¾& ÿÿÿëëÎ&"& , {ÿÿÿëëÎ&"& , ÿÿÿêëÎ&"& , ¥ÿÿÿðëË&& " ºÿÿÿéëÎ&"& , ÏÿÿÿçëË&+& 6 äÿÿÿïëÎ&"& , ùÿÿÿíëË&+& 6 ÿÿÿëëË&+& 6 #ÿÿÿíëË&+& 6 8ÿÿÿðëË&+& 6 MÿÿÿìëË&+& 6 bÿÿÿíëË&+& 6 wÿÿÿíëË&+& 6 ŒÿÿÿçëË&+& 6 ¡ÿÿÿïëÎ&"& , ¶ÿÿÿîëÎ&"& , ËÿÿÿèìË&+& 6 àÿÿÿèëÎ&"& @ õÿÿÿéëÎ&"& , ÿÿÿçëÎ&"& @ ÿÿÿçëÎ&"& , 4ÿÿÿçëË&+& 6 IÿÿÿëëÎ&"& , ^ÿÿÿìëË&+& 6 sÿÿÿíëÎ&"& , ˆÿÿÿçëË&+& 6 ÿÿÿëëË& IÿÿÿëëË&#& T {ÿÿÿëëË&#& T ÿÿÿêëË&#& T ¥ÿÿÿðëË&& O ºÿÿÿéëË&#& T ÏÿÿÿçëË&,& i äÿÿÿïëË&#& T ùÿÿÿíëË&,& i ÿÿÿëëË&,& i #ÿÿÿíëË&,& i 8ÿÿÿðëË&,& i MÿÿÿìëË&,& i bÿÿÿíëË&,& i wÿÿÿíëË&,& i ŒÿÿÿçëË&,& i ¡ÿÿÿïëË&#& T ¶ÿÿÿîëË&#& T ËÿÿÿèìË&,& i àÿÿÿèëË&#& b õÿÿÿéëË&#& T ÿÿÿçëË&#& T ÿÿÿçëË&#& T 4ÿÿÿçëË&,& [ IÿÿÿëëË&#& T ^ÿÿÿìëË&,& i sÿÿÿíëË&#& T ˆÿÿÿçëË&,& [ ÿÿ ÿëÐÎ& pÿÿÿëÐÎ&%& ~ ~ÿÿÿëÐÎ&%& ~ “ÿÿÿêëÎ&%& ~ ¨ÿÿÿðÕÎ&& w ½ÿÿÿéãÎ&%& ~ ÒÿÿÿçßÎ&.& “ çÿÿÿïÕÎ&%& ~ üÿÿÿíÕÎ&.& “ ÿÿÿëÐÎ&.& “ &ÿÿÿíÐÎ&.& “ ;ÿÿÿíÐÎ&.& “ PÿÿÿëéÎ&.& “ eÿÿÿîÔÎ&.& “ zÿÿÿíÖÎ&.& “ ÿÿÿçÛÎ&.& “ ¤ÿÿÿïÐÎ&%& ~ ¹ÿÿÿîÐÎ&%& ~ ÎÿÿÿêéÎ&.& “ ãÿÿÿèãÎ&%& Œ øÿÿÿçéÎ&%& ~ ÿÿÿçÔÎ&%& Œ "ÿÿÿçÞÎ&%& ~ 7ÿÿÿíÞÎ&.& … LÿÿÿëÐÎ&%& ~ aÿÿÿìÕÎ&.& “ vÿÿÿíØÎ&%& ~ ‹ÿÿÿçÜÎ&.& …  ÿÿ ÿëÐÎ& šÿÿÿëÐÎ&'& ¨ ~ÿÿÿëÐÎ&'& ¨ “ÿÿÿêëÎ&'& ¨ ¨ÿÿ ÿðÕÎ&& ¡ ½ÿÿÿéãÎ&'& ¨ Òÿÿ ÿçßÎ&0& ½ çÿÿÿïÕÎ&'& ¨ üÿÿ ÿíÕÎ&0& ½ ÿÿ ÿëÐÎ&0& ½ &ÿÿ ÿíÐÎ&0& ½ ;ÿÿ ÿíÐÎ&0& ½ Pÿÿ ÿëéÎ&0& ½ eÿÿ ÿîÔÎ&0& ½ zÿÿ ÿíÖÎ&0& ½ ÿÿ ÿçÛÎ&0& ½ ¤ÿÿÿïÐÎ&'& ¨ ¹ÿÿÿîÐÎ&'& ¨ Îÿÿ ÿêéÎ&0& ½ ãÿÿÿèãÎ&'& ¶ øÿÿÿçéÎ&'& ¨ ÿÿÿçÔÎ&'& ¶ "ÿÿÿçÞÎ&'& ¨ 7ÿÿ ÿíÞÎ&0& ¯ LÿÿÿëÐÎ&'& ¨ aÿÿ ÿìÕÎ&0& ½ vÿÿÿíØÎ&'& ¨ ‹ÿÿ ÿçÜÎ&0& ¯  ÿÿ ÿëÐÎ& ÄÿÿÿëÐÎ&%& Ò }ÿÿÿëÐÎ&%& Ò ’ÿÿÿêëÎ&%& Ò §ÿÿÿðÕÎ&& Ë ¼ÿÿÿéãÎ&%& Ò ÑÿÿÿçßÎ&.& ç æÿÿÿïÕÎ&%& Ò ûÿÿÿíÕÎ&.& ç ÿÿÿëÐÎ&.& ç %ÿÿÿíÐÎ&.& ç :ÿÿÿíÐÎ&.& ç OÿÿÿëèÎ&.& ç dÿÿÿîÔÎ&.& ç yÿÿÿíÖÎ&.& ç ŽÿÿÿçÛÎ&.& ç £ÿÿÿïÐÎ&%& Ò ¸ÿÿÿîÐÎ&%& Ò ÍÿÿÿêéÎ&.& ç âÿÿÿèãÎ&%& à ÷ÿÿÿçéÎ&%& Ò ÿÿÿçÔÎ&%& à !ÿÿÿçÞÎ&%& Ò 6ÿÿÿçÞÎ&.& Ù KÿÿÿëÐÎ&%& Ò `ÿÿÿìÕÎ&.& ç uÿÿÿíØÎ&%& Ò ŠÿÿÿçÖÎ&.& Ù ŸÿÿÿíëË& îÿÿÿëëË&#& ü {ÿÿÿëëË&#& ü ÿÿÿêëË&#& ü ¥ÿÿÿðëË&& õ ºÿÿÿéëË&#& ü ÏÿÿÿçëË&,&  äÿÿÿïëË&#& ü ùÿÿÿíëË&,&  ÿÿÿëëË&,&  #ÿÿÿíëË&,&  8ÿÿÿðëË&,&  MÿÿÿìëË&,&  bÿÿÿíëË&,&  wÿÿÿíëË&,&  ŒÿÿÿçëË&,&  ¡ÿÿÿïëË&#& ü ¶ÿÿÿîëË&#& ü ËÿÿÿèìË&,&  àÿÿÿèëË&#&  õÿÿÿéëË&#& ü ÿÿÿçëË&#&  ÿÿÿçëË&#& ü 4ÿÿÿçëË&,&  IÿÿÿëëË&#& ü ^ÿÿÿìëË&,&  sÿÿÿíëË&#& ü ˆÿÿÿçëË&,&  ÿÿ ë¾& ÿÿÿëëÎ&"& % {ÿÿÿëëÎ&"& % ÿÿÿêëÎ&"& % ¥ÿÿÿðëË&&  ºÿÿÿéëÎ&"& % ÏÿÿÿçëË&+& : äÿÿÿïëÎ&"& % ùÿÿÿíëË&+& : ÿÿÿëëË&+& : #ÿÿÿíëË&+& : 8ÿÿÿðëË&+& : MÿÿÿìëË&+& : bÿÿÿíëË&+& : wÿÿÿíëË&+& : ŒÿÿÿçëË&+& : ¡ÿÿÿïëÎ&"& % ¶ÿÿÿîëÎ&"& % ËÿÿÿèìË&+& : àÿÿÿèëÎ&"& 3 õÿÿÿéëÎ&"& % ÿÿÿçëÎ&"& 3 ÿÿÿçëÎ&"& % 4ÿÿÿçëË&+& , IÿÿÿëëÎ&"& % ^ÿÿÿìëË&+& : sÿÿÿíëÎ&"& % ˆÿÿÿçëË&+& , ÿÿ ÿëÐÎ& AÿÿÿëÐÎ&$& N |ÿÿÿëÐÎ&$& N ‘ÿÿÿêëÎ&$& N ¦ÿÿÿðÕÎ&& G »ÿÿÿêãÎ&$& N ÐÿÿÿçßÎ&-& c åÿÿÿïÕÎ&$& N úÿÿÿíÕÎ&-& c ÿÿÿëÐÎ&-& c $ÿÿÿíÐÎ&-& c 9ÿÿÿíÐÎ&-& c NÿÿÿìéÎ&-& c cÿÿÿîÔÎ&-& c xÿÿÿíÕÎ&-& c ÿÿÿçÛÎ&-& c ¢ÿÿÿïÐÎ&$& N ·ÿÿÿîÐÎ&$& N ÌÿÿÿèéÎ&-& c áÿÿÿèãÎ&$& \ öÿÿÿééÎ&$& N ÿÿÿçÔÎ&$& \ ÿÿÿçâÎ&$& N 5ÿÿÿçâÎ&-& U JÿÿÿëÐÎ&$& N _ÿÿÿìÕÎ&-& c tÿÿÿíØÎ&$& N ‰ÿÿÿçÜÎ&-& U žÿÿ ÿëÐÎ&  jÿÿÿëÐÎ&& p yÿÿÿëÐÎ&& p ŽÿÿÿèìÎ&& p £ÿÿ ÿðÕÎ&& m ¸ÿÿÿéãÎ&& p Íÿÿ ÿçßÎ&(& v âÿÿÿïÕÎ&& p ÷ÿÿ ÿíÕÎ&(& v ÿÿ ÿëÐÎ&(& v !ÿÿ ÿíÐÎ&(& v 6ÿÿ ÿíÐÎ&(& v Kÿÿ ÿìéÎ&(& v `ÿÿ ÿíÔÎ&(& v uÿÿ ÿíÕÎ&(& v Šÿÿ ÿçÛÎ&(& v ŸÿÿÿïÐÎ&& p ´ÿÿÿîÐÎ&& p Éÿÿ ÿèìÎ&(& v ÞÿÿÿèãÎ&& s óÿÿÿééÎ&& p ÿÿÿçÔÎ&& s ÿÿÿçÞÎ&& p 2ÿÿ ÿçÞÎ&(& p GÿÿÿëÐÎ&& p \ÿÿ ÿìÕÎ&(& v qÿÿÿíØÎ&& p †ÿÿ ÿçÖÎ&(& p ›ÿÿÿëöÎ&U1ÿÿÿëõÎ&A&[ xÿÿÿëõÎ&A&[ ÿÿÿèõÎ&A&[ ¢ÿÿÿðöÎ&:&X »ÿÿÿêõÎ&A&[ ÌÿÿÿçõÎ& ã&aJÿÿÿïõÎ&A&[ öÿÿÿíõÎ&J&a ÿÿÿëõÎ&J&a ÿÿÿíõÎ&J&a 5ÿÿÿíõÎ&J&a JÿÿÿìõÎ&J&a _ÿÿÿíõÎ&J&a tÿÿÿíõÎ&J&a ‰ÿÿÿçõÎ&J&a žÿÿÿïõÎ&J&a ³ÿÿÿîõÎ&A&[ ÈÿÿÿèõÎ&J&a ÝÿÿÿèöÎ&A&^ òÿÿÿéõÎ&A&a ÿÿÿçöÎ&A&^ ÿÿÿçõÎ&A&[ 1ÿÿÿçõÎ&J&[ FÿÿÿëõÎ&A&[ [ÿÿÿìõÎ&J&a pÿÿÿíõÎ&J&a …ÿÿÿçõÎ&J&[ šÿÿÿëÐÎ&3dÿÿÿëÐÎ&C&j zÿÿÿëÐÎ&C&j ÿÿÿèìÎ&C&j ¤ÿÿÿðÕÎ&;&g ¹ÿÿÿéãÎ&C&j ÎÿÿÿçßÎ&L&p ãÿÿÿïÕÎ&C&j øÿÿÿíÕÎ&L&p ÿÿÿëÐÎ&L&p "ÿÿÿíÐÎ&L&p 7ÿÿÿíÐÎ&L&p LÿÿÿìéÎ&L&p aÿÿÿíÔÎ&L&p vÿÿÿíÕÎ&L&p ‹ÿÿÿçÛÎ&L&p  ÿÿÿïÐÎ&C&j µÿÿÿîÐÎ&C&j ÊÿÿÿèìÎ&L&p ßÿÿÿèàÎ&C&m ôÿÿÿééÎ&C&j ÿÿÿçÔÎ&C&m ÿÿÿçÞÎ&C&j 3ÿÿÿçÞÎ&L&j HÿÿÿëÐÎ&C&j ]ÿÿÿìÕÎ&L&p rÿÿÿíØÎ&C&j ‡ÿÿÿçÜÎ&L&j œÿÿÿëöÎ&s1ÿÿÿëöÎ&A&y xÿÿÿëöÎ&A&y ÿÿÿèöÎ&A&y ¢ÿÿÿðöÎ&:&v ·ÿÿÿêöÎ&A&y ÌÿÿÿçöÎ&J& áÿÿÿïöÎ&A&y öÿÿÿíöÎ&J& ÿÿÿëöÎ&J& ÿÿÿíöÎ&J& 5ÿÿÿíöÎ&J& JÿÿÿìöÎ&J& _ÿÿÿíöÎ&J& tÿÿÿíöÎ&J& ‰ÿÿÿçöÎ&J& žÿÿÿïöÎ&A&y ³ÿÿÿîöÎ&A&y ÈÿÿÿèöÎ&J& ÝÿÿÿèöÎ&A&| òÿÿÿéöÎ&A&y ÿÿÿçöÎ&A&| *ÿÿÿçöÎ&A&y 1ÿÿÿçöÎ&J&y FÿÿÿëöÎ&A&y [ÿÿÿìöÎ&J& pÿÿÿíöÎ&A&y …ÿÿÿçöÎ&J&y šÿÿÿëÐÎ&3‚ÿÿÿëÐÎ&C&ˆ zÿÿÿëÐÎ&C&ˆ ÿÿÿèìÎ&C&ˆ ¤ÿÿÿðÕÎ&;&… ¹ÿÿÿéãÎ&C&ˆ ÎÿÿÿçßÎ&L&Ž ãÿÿÿïÕÎ&C&ˆ øÿÿÿíÕÎ&L&Ž ÿÿÿëÐÎ&L&Ž "ÿÿÿíÐÎ&L&Ž 7ÿÿÿíÐÎ&L&Ž LÿÿÿìéÎ&L&Ž aÿÿÿíÔÎ&L&Ž vÿÿÿíÕÎ&L&Ž ‹ÿÿÿçÛÎ&L&Ž  ÿÿÿïÐÎ&C&ˆ µÿÿÿîÐÎ&C&ˆ ÊÿÿÿèìÎ&L&Ž ßÿÿÿèàÎ&C&‹ ôÿÿÿééÎ&C&ˆ ÿÿÿçÔÎ&C&‹ ÿÿÿçÞÎ&C&ˆ 3ÿÿÿçÞÎ&L&ˆ HÿÿÿëÐÎ&C&ˆ ]ÿÿÿìÕÎ&L&Ž rÿÿÿíØÎ&C&ˆ ‡ÿÿÿçÜÎ&L&ˆ œÿÿÿëÐÎ&2‘ÿÿÿëÐÎ&B&¨ yÿÿÿëÐÎ&B&¨ ŽÿÿÿèìÎ&B&¨ £ÿÿÿðÕÎ& ¸&›:ÿÿÿéãÎ&B&¨ ÍÿÿÿçßÎ&K&² âÿÿÿïÕÎ&B&¨ ÷ÿÿÿíÕÎ& &¨BÿÿÿëÐÎ&K&² !ÿÿÿíÐÎ&K&² 6ÿÿÿíÐÎ&K&² KÿÿÿìéÎ&K&² `ÿÿÿíÔÎ&K&² uÿÿÿíÕÎ&K&² ŠÿÿÿçÛÎ&K&² ŸÿÿÿïÐÎ&B&¨ ´ÿÿÿîÐÎ&B&¨ ÉÿÿÿèìÎ&B&¨ ÞÿÿÿèãÎ&B& ó¼ÿÿÿééÎ&B&¨ ÿÿÿçÔÎ&B&¼ ÿÿÿçÞÎ&B&¨ 2ÿÿÿçÞÎ&K&² GÿÿÿëÐÎ&B&¨ \ÿÿÿìÕÎ&K&² qÿÿÿíØÎ&B&¨ †ÿÿÿçÖÎ&K&² ›ÿÿÿëÐÎ&É3ÿÿÿëÐÎ&C&Ø zÿÿÿëÐÎ&C&Ø ÿÿÿèìÎ&C&Ø ¤ÿÿÿðÕÎ&;&Î ¹ÿÿÿéãÎ&C&Ø ÎÿÿÿçßÎ&L&â ãÿÿÿïÕÎ&C&Ø øÿÿÿíÕÎ&L&â ÿÿÿëÐÎ&L&â "ÿÿÿíÐÎ&L&â 7ÿÿÿíÐÎ&L&â LÿÿÿìéÎ&L&â aÿÿÿíÔÎ&L&â vÿÿÿíÕÎ&L&â ‹ÿÿÿçÛÎ&L&â  ÿÿÿïÐÎ&C&Ø µÿÿÿîÐÎ&C&Ø ÊÿÿÿèìÎ&L&â ßÿÿÿèàÎ&C&ì ôÿÿÿééÎ&C&Ø ÿÿÿçÔÎ&C&ì ÿÿÿçÞÎ&C&Ø 3ÿÿÿçÞÎ&L&â HÿÿÿëÐÎ&C&Ø ]ÿÿÿìÕÎ&L&â rÿÿÿíØÎ&C&Ø ‡ÿÿÿçÜÎ&L&â œÿÿÿëÐÎ&2÷ÿÿÿëÐÎ& &B yÿÿÿëÐÎ&B&  ŽÿÿÿèìÎ&B&  £ÿÿÿðÕÎ& ¸&:ÿÿÿÿéãÎ&B&  ÍÿÿÿçßÎ&K&  âÿÿÿïÕÎ&B&  ÷ÿÿÿíÕÎ&B&  ÿÿÿëÐÎ&K&  !ÿÿÿíÐÎ&K&  6ÿÿÿíÐÎ&K&  KÿÿÿìéÎ&K&  `ÿÿÿíÔÎ&K&  uÿÿÿíÕÎ&K&  ŠÿÿÿçÛÎ&K&  ŸÿÿÿïÐÎ&B&  ´ÿÿÿîÐÎ&B&  ÉÿÿÿèìÎ&K&  ÞÿÿÿèãÎ&B&  óÿÿÿééÎ&B&  ÿÿÿçÔÎ& &B ÿÿÿçÞÎ&B&  2ÿÿÿçÞÎ&K&  GÿÿÿëÐÎ&B&  \ÿÿÿìÕÎ&K&  qÿÿÿíØÎ&B&  †ÿÿÿçÖÎ&K&  ›ÿÿÿëÐÎ& &3ÿÿÿëÐÎ&C& 9 zÿÿÿëÐÎ&C& 9 ÿÿÿèìÎ&C& 9 ¤ÿÿÿðÕÎ&;& / ¹ÿÿÿéãÎ&C& 9 ÎÿÿÿçßÎ&L& C ãÿÿÿïÕÎ&C& 9 øÿÿÿíÕÎ&L& C ÿÿÿëÐÎ&L& C "ÿÿÿíÐÎ&L& C 7ÿÿÿíÐÎ&L& C LÿÿÿìéÎ&L& C aÿÿÿíÔÎ&L& C vÿÿÿíÕÎ&L& C ‹ÿÿÿçÛÎ&L& C  ÿÿÿïÐÎ&C& 9 µÿÿÿîÐÎ&C& 9 ÊÿÿÿèìÎ&L& C ßÿÿÿèàÎ&C& M ôÿÿÿééÎ&C& 9 ÿÿÿçÔÎ&C& M ÿÿÿçÞÎ&C& 9 3ÿÿÿçÞÎ&L& C HÿÿÿëÐÎ&C& 9 ]ÿÿÿìÕÎ&L& C rÿÿÿíØÎ&C& 9 ‡ÿÿÿçÜÎ&L& C œÿÿ êÁ&4 WÿÿÿëêÏ&D& h {ÿÿÿëêÏ&D& h ÿÿÿêêÏ&D& h ¥ÿÿÿðêÏ& ^& º<ÿÿÿéêÏ&D& h ÏÿÿÿçêÏ&M& r äÿÿÿïêÏ&D& h ùÿÿÿíêÏ&M&  rÿÿÿëêÏ&M& r #ÿÿÿíêÏ&M& r 8ÿÿÿðêÏ&M& r MÿÿÿìêÏ&M& r bÿÿÿíêÏ&M& r wÿÿÿíêÏ&M& r ŒÿÿÿçêÏ&M& r ¡ÿÿÿïêÏ&D& h ¶ÿÿÿîêÏ&D& h ËÿÿÿèìÏ&M& r àÿÿÿèêÏ&D& { õÿÿÿéêÏ&D& h ÿÿÿçêÏ&D& { ÿÿÿçêÏ&D& h 4ÿÿÿçêÏ&M& r IÿÿÿëêÏ&D& h ^ÿÿÿìêÏ&M& r sÿÿÿíêÏ&D& h ˆÿÿÿçêÏ&M& r ÿÿÿëöÎ&6 †ÿÿÿëöÎ&F& ™ |ÿÿÿëöÎ&F& ™ ‘ÿÿÿêöÎ&F& ™ ¦ÿÿÿðöÎ& & »=ÿÿÿêöÎ&F& ™ ÐÿÿÿçöÎ&O& £ åÿÿÿïöÎ&F& ™ úÿÿÿíöÎ&O& £ ÿÿÿëöÎ&O& £ $ÿÿÿíöÎ&O& £ 9ÿÿÿíöÎ&O& £ NÿÿÿìöÎ&O& £ cÿÿÿîöÎ&O& £ xÿÿÿíöÎ&O& £ ÿÿÿçöÎ&O& £ ¢ÿÿÿïöÎ&F& ™ ·ÿÿÿîöÎ&F& ™ ÌÿÿÿèöÎ&O& £ áÿÿÿèöÎ&F& ­ öÿÿÿéöÎ&F& ™ ÿÿÿçöÎ& ­&F ÿÿÿçöÎ&F& ™ 5ÿÿÿçöÎ&O& £ JÿÿÿëöÎ&F& ™ _ÿÿÿìöÎ&O& £ tÿÿÿíöÎ&F& ™ ‰ÿÿÿçöÎ&O& £ žÿÿÿëÐÎ&8 ·ÿÿÿëÐÎ&H& Ë |ÿÿÿëÐÎ&H& Ë ‘ÿÿÿêëÎ&H& Ë ¦ÿÿÿðÕÎ&?& Á »ÿÿÿêãÎ&H& Ë ÐÿÿÿçßÎ&Q& Õ åÿÿÿïÕÎ&H& Ë úÿÿÿíÕÎ&Q& Õ ÿÿÿëÐÎ&Q& Õ $ÿÿÿíÐÎ&Q& Õ 9ÿÿÿíÐÎ&Q& Õ NÿÿÿìéÎ&Q& Õ cÿÿÿîÔÎ&Q& Õ xÿÿÿíÕÎ&Q& Õ ÿÿÿçÛÎ&Q& Õ ¢ÿÿÿïÐÎ&H& Ë ·ÿÿÿîÐÎ&H& Ë ÌÿÿÿèéÎ&Q& Õ áÿÿÿèãÎ&H& ß öÿÿÿééÎ&H& Ë ÿÿÿçÔÎ&H& ß ÿÿÿçâÎ&H& Ë 5ÿÿÿçâÎ&Q& Õ JÿÿÿëÐÎ&H& Ë _ÿÿÿìÕÎ&Q& Õ tÿÿÿíØÎ&H& Ë ‰ÿÿÿçÜÎ&Q& Õ žÿÿÿëÐÎ&6 íÿÿÿëÐÎ&F& ü |ÿÿÿëÐÎ&F& ü ‘ÿÿÿêëÎ&F& ü ¦ÿÿÿðÕÎ&=& ò »ÿÿÿêãÎ&F& ü ÐÿÿÿçßÎ&O&  åÿÿÿïÕÎ&F& ü úÿÿÿíÕÎ&O&  ÿÿÿëÐÎ&O&  $ÿÿÿíÐÎ&O&  9ÿÿÿíÐÎ&O&  NÿÿÿìéÎ&O&  cÿÿÿîÔÎ&O&  xÿÿÿíÕÎ&O&  ÿÿÿçÛÎ&O&  ¢ÿÿÿïÐÎ&F& ü ·ÿÿÿîÐÎ&F& ü ÌÿÿÿèéÎ&O&  áÿÿÿèãÎ&F&  öÿÿÿééÎ&F& ü ÿÿÿçÔÎ&F&  ÿÿÿçâÎ&F& ü 5ÿÿÿçâÎ&O&  JÿÿÿëÐÎ&F& ü _ÿÿÿìÕÎ&O&  tÿÿÿíØÎ&F& ü ‰ÿÿÿçÜÎ&O&  žÿÿ ëÁ&4 ÿÿÿëëÏ&D& . {ÿÿÿëëÏ&D& . ÿÿÿêëÏ&D& . ¥ÿÿÿðëÏ&<& $ ºÿÿÿéëÏ&D& . ÏÿÿÿçëÏ&M& 8 äÿÿÿïëÏ&D& . ùÿÿÿíëÏ&M& 8 ÿÿÿëëÏ&M& 8 #ÿÿÿíëÏ&M& 8 8ÿÿÿðëÏ&M& 8 MÿÿÿìëÏ&M& 8 bÿÿÿíëÏ&M& 8 wÿÿÿíëÏ&M& 8 ŒÿÿÿçëÏ&M& 8 ¡ÿÿÿïëÏ&D& . ¶ÿÿÿîëÏ&D& . ËÿÿÿèìÏ&M& 8 àÿÿÿèëÏ&D& B õÿÿÿéëÏ&D& . ÿÿÿçëÏ& .&D ÿÿÿçëÏ&D& . 4ÿÿÿçëÏ&M& 8 IÿÿÿëëÏ&D& . ^ÿÿÿìëÏ&M& 8 sÿÿÿíëÏ&D& . ˆÿÿÿçëÏ&M& 8 ÿÿÿëëÏ&5 KÿÿÿëëÏ&E& V {ÿÿÿëëÏ&E& V ÿÿÿêëÏ&E& V ¥ÿÿÿðëÏ& Q& º<ÿÿÿéëÏ&E& V ÏÿÿÿçëÏ&N& k äÿÿÿïëÏ&E& V ùÿÿÿíëÏ&E& V ÿÿÿëëÏ&N& k #ÿÿÿíëÏ&N& k 8ÿÿÿðëÏ&N& k MÿÿÿìëÏ&N& k bÿÿÿíëÏ&N& k wÿÿÿíëÏ&N& k ŒÿÿÿçëÏ&N& k ¡ÿÿÿïëÏ& ¶& YEÿÿÿîëÏ&E& V ËÿÿÿèìÏ&N& k àÿÿÿèëÏ&E& õ VÿÿÿéëÏ&E& V ÿÿÿçëÏ&E& V ÿÿÿçëÏ&E& 4 VÿÿÿçëÏ&N& ] IÿÿÿëëÏ&E& V ^ÿÿÿìëÏ&N& k sÿÿÿíëÏ&E& V ˆÿÿÿçëÏ&N& ] ÿÿÿëÐÎ& r7ÿÿÿëÐÎ&G& € ~ÿÿÿëÐÎ&G& € “ÿÿÿêëÎ&G& € ¨ÿÿÿðÕÎ&>& y ½ÿÿÿéãÎ&G& € ÒÿÿÿçßÎ&P& • çÿÿÿïÕÎ&G& € üÿÿÿíÕÎ&G& € ÿÿÿëÐÎ&P& • &ÿÿÿíÐÎ&P& • ;ÿÿÿíÐÎ&P& • PÿÿÿëéÎ&P& • eÿÿÿîÔÎ&P& • zÿÿÿíÖÎ&P& • ÿÿÿçÛÎ&P& • ¤ÿÿÿïÐÎ&G& € ¹ÿÿÿîÐÎ&G& € ÎÿÿÿêéÎ&P& • ãÿÿÿèãÎ&G& Ž øÿÿÿçéÎ&G& € ÿÿÿçÔÎ&G& Ž "ÿÿÿçÞÎ&G& € 7ÿÿÿíÞÎ&P& ‡ LÿÿÿëÐÎ&G& € aÿÿÿìÕÎ&P& • vÿÿÿíØÎ&G& € ‹ÿÿÿçÜÎ&P& ‡  ÿÿÿëÐÎ&9 œÿÿÿëÐÎ&I& ª ~ÿÿÿëÐÎ&I& ª “ÿÿÿêëÎ&I& ª ¨ÿÿÿðÕÎ&@& £ ½ÿÿÿéãÎ&I& ª ÒÿÿÿçßÎ&R& ¿ çÿÿÿïÕÎ&I& ª üÿÿÿíÕÎ&R& ¿ ÿÿÿëÐÎ&R& ¿ &ÿÿÿíÐÎ&R& ¿ ;ÿÿÿíÐÎ&R& ¿ PÿÿÿëéÎ&R& ¿ eÿÿÿîÔÎ&R& ¿ zÿÿÿíÖÎ&R& ¿ ÿÿÿçÛÎ&R& ¿ ¤ÿÿÿïÐÎ&I& ª ¹ÿÿÿîÐÎ&I& ª ÎÿÿÿêéÎ&R& ¿ ãÿÿÿèãÎ&I& ¸ øÿÿÿçéÎ&I& ª ÿÿÿçÔÎ&I& ¸ "ÿÿÿçÞÎ&I& ª 7ÿÿÿíÞÎ&R& ± LÿÿÿëÐÎ&I& ª aÿÿÿìÕÎ&R& ¿ vÿÿÿíØÎ&I& ª ‹ÿÿÿçÜÎ&R& ±  ÿÿÿëÐÎ&7 ÆÿÿÿëÐÎ&G& Ô }ÿÿÿëÐÎ&G& Ô ’ÿÿÿêëÎ&G& Ô §ÿÿÿðÕÎ&>& Í ¼ÿÿÿéãÎ&G& Ô ÑÿÿÿçßÎ&P& é æÿÿÿïÕÎ&G& Ô ûÿÿÿíÕÎ&P& é ÿÿÿëÐÎ&P& é %ÿÿÿíÐÎ&P& é :ÿÿÿíÐÎ&P& é OÿÿÿëèÎ&P& é dÿÿÿîÔÎ&P& é yÿÿÿíÖÎ&P& é ŽÿÿÿçÛÎ&P& é £ÿÿÿïÐÎ&G& Ô ¸ÿÿÿîÐÎ&G& Ô ÍÿÿÿêéÎ&P& é âÿÿÿèãÎ&G& â ÷ÿÿÿçéÎ&G& Ô ÿÿÿçÔÎ&G& â !ÿÿÿçÞÎ&G& Ô 6ÿÿÿçÞÎ&P& Û KÿÿÿëÐÎ&G& Ô `ÿÿÿìÕÎ&P& é uÿÿÿíØÎ&G& Ô ŠÿÿÿçÖÎ&P& Û ŸÿÿÿíëÏ& ð5ÿÿÿëëÏ&E& þ {ÿÿÿëëÏ&E& þ ÿÿÿêëÏ&E& þ ¥ÿÿÿðëÏ&<& ÷ ºÿÿÿéëÏ&E& þ ÏÿÿÿçëÏ&N&  äÿÿÿïëÏ&E& þ ùÿÿÿíëÏ&N&  ÿÿÿëëÏ&N&  #ÿÿÿíëÏ&N&  8ÿÿÿðëÏ&N&  MÿÿÿìëÏ&N&  bÿÿÿíëÏ&N&  wÿÿÿíëÏ&N&  ŒÿÿÿçëÏ&N&  ¡ÿÿÿïëÏ&E& þ ¶ÿÿÿîëÏ&E& þ ËÿÿÿèìÏ&N&  àÿÿÿèëÏ&E&  õÿÿÿéëÏ&E& þ ÿÿÿçëÏ&E& þ ÿÿÿçëÏ&E& þ 4ÿÿÿçëÏ&N&  IÿÿÿëëÏ&E& þ ^ÿÿÿìëÏ&N&  sÿÿÿíëÏ&E& þ ˆÿÿÿçëÏ&N&  ÿÿ ëÁ&4 ÿÿÿëëÏ&D& ' {ÿÿÿëëÏ&D& ' ÿÿÿêëÏ&D& ' ¥ÿÿÿðëÏ& & º<ÿÿÿéëÏ&D& ' ÏÿÿÿçëÏ&M& < äÿÿÿïëÏ&D& ' ùÿÿÿíëÏ&M&  <ÿÿÿëëÏ&M& < #ÿÿÿíëÏ&M& < 8ÿÿÿðëÏ&M& < MÿÿÿìëÏ&M& < bÿÿÿíëÏ&M& < wÿÿÿíëÏ&M& < ŒÿÿÿçëÏ&M& < ¡ÿÿÿïëÏ& ¶& 'DÿÿÿîëÏ&D& ' ËÿÿÿèìÏ&M& < àÿÿÿèëÏ&D& 5 õÿÿÿéëÏ&D& ' ÿÿÿçëÏ&D& 5 ÿÿÿçëÏ&D& ' 4ÿÿÿçëÏ&M& . IÿÿÿëëÏ&D& ' ^ÿÿÿìëÏ&M& < sÿÿÿíëÏ&D& ' ˆÿÿÿçëÏ&M& . ÿÿÿëÐÎ&6 CÿÿÿëÐÎ&F& P |ÿÿÿëÐÎ&F& P ‘ÿÿÿêëÎ&F& P ¦ÿÿÿðÕÎ&=& I »ÿÿÿêãÎ&F& P ÐÿÿÿçßÎ&O& e åÿÿÿïÕÎ&F& P úÿÿÿíÕÎ&O& e ÿÿÿëÐÎ&O& e $ÿÿÿíÐÎ&O& e 9ÿÿÿíÐÎ&O& e NÿÿÿìéÎ&O& e cÿÿÿîÔÎ&O& e xÿÿÿíÕÎ&O& e ÿÿÿçÛÎ&O& e ¢ÿÿÿïÐÎ&F& P ·ÿÿÿîÐÎ&F& P ÌÿÿÿèéÎ&O& e áÿÿÿèãÎ&F& ^ öÿÿÿééÎ&F& P ÿÿÿçÔÎ&F& ^ ÿÿÿçâÎ&F& P 5ÿÿÿçâÎ&O& W JÿÿÿëÐÎ&F& P _ÿÿÿìÕÎ&O& e tÿÿÿíØÎ&F& P ‰ÿÿÿçÜÎ&O& W žÿÿÿëÐÎ& i2ÿÿÿëÐÎ&A& o yÿÿÿëÐÎ&A& o ŽÿÿÿèìÎ&A& o £ÿÿÿðÕÎ&:& » lÿÿÿéãÎ&A& o ÍÿÿÿçßÎ&J& u âÿÿÿïÕÎ&A& o ÷ÿÿÿíÕÎ& o&B ÿÿÿëÐÎ&J& u !ÿÿÿíÐÎ&J& u 6ÿÿÿíÐÎ&J& u KÿÿÿìéÎ&J& u `ÿÿÿíÔÎ&J& u uÿÿÿíÕÎ&J& u ŠÿÿÿçÛÎ&J& u ŸÿÿÿïÐÎ&J& o ´ÿÿÿîÐÎ&J& o ÉÿÿÿèìÎ&J& u ÞÿÿÿèãÎ&A& r óÿÿÿééÎ&B& o ÿÿÿçÔÎ&A& r ÿÿÿçÞÎ&A& o 2ÿÿÿçÞÎ&J& o GÿÿÿëÐÎ&A& o \ÿÿÿìÕÎ&J& u qÿÿÿíØÎ&A& o †ÿÿÿçÖÎ&J& o ›ÿÿÿëöÎ&USÿÿÿëõÎ&e&[ xÿÿÿëõÎ&e&[ ÿÿÿèõÎ&e&[ ¢ÿÿÿðöÎ&\&X ·ÿÿÿêõÎ&e&[ ÌÿÿÿçõÎ&n&a áÿÿÿïõÎ&e&[ öÿÿÿíõÎ&n&a ÿÿÿëõÎ&n&a ÿÿÿíõÎ&n&a 5ÿÿÿíõÎ&n&a JÿÿÿìõÎ&n&a _ÿÿÿíõÎ&n&a tÿÿÿíõÎ&n&a ‰ÿÿÿçõÎ&n&a žÿÿÿïõÎ&e&[ ³ÿÿÿîõÎ&e&[ ÈÿÿÿèõÎ&n&a ÝÿÿÿèöÎ&e&^ òÿÿÿéõÎ&e&[ ÿÿÿçöÎ&e&^ *ÿÿÿçõÎ&e&[ 1ÿÿÿçõÎ&n&[ FÿÿÿëõÎ&e&[ [ÿÿÿìõÎ&n&a pÿÿÿíõÎ&e&[ …ÿÿÿçõÎ&n&[ šÿÿÿëÐÎ&Udÿÿ ÿëÐÎ&g&j zÿÿ ÿëÐÎ&g&j ÿÿ ÿèìÎ&g&j ¤ÿÿ ÿðÕÎ&^&g ¹ÿÿ ÿéãÎ&g&j Îÿÿ ÿçßÎ&p&p ãÿÿ ÿïÕÎ&g&j øÿÿ ÿíÕÎ&p&p ÿÿ ÿëÐÎ&p&p "ÿÿ ÿíÐÎ&p&p 7ÿÿ ÿíÐÎ&p&p Lÿÿ ÿìéÎ&p&p aÿÿ ÿíÔÎ&p&p vÿÿ ÿíÕÎ&p&p ‹ÿÿ ÿçÛÎ&p&p  ÿÿ ÿïÐÎ&g&j µÿÿ ÿîÐÎ&g&j Êÿÿ ÿèìÎ&p&p ßÿÿ ÿèàÎ&g&m ôÿÿ ÿééÎ&g&j ÿÿ ÿçÔÎ&m&g ÿÿ ÿçÞÎ&g&j 3ÿÿ ÿçÞÎ&p&j Hÿÿ ÿëÐÎ&g&j ]ÿÿ ÿìÕÎ&p&p rÿÿ ÿíØÎ&g&j ‡ÿÿ ÿçÜÎ&p&j œÿÿÿëöÎ&SsÿÿÿëöÎ&e&y xÿÿÿëöÎ&e&y ÿÿÿèöÎ&e&y ¢ÿÿÿðöÎ&\&v ·ÿÿÿêöÎ&e&y ÌÿÿÿçöÎ&n& áÿÿÿïöÎ&e&y öÿÿÿíöÎ&n& ÿÿÿëöÎ&n& ÿÿÿíöÎ&n& 5ÿÿÿíöÎ&n& JÿÿÿìöÎ&n& _ÿÿÿíöÎ&n& tÿÿÿíöÎ&n& ‰ÿÿÿçöÎ&n& žÿÿÿïöÎ&e&y ³ÿÿÿîöÎ&e&y ÈÿÿÿèöÎ&n& ÝÿÿÿèöÎ&e&| òÿÿÿéöÎ&e&y ÿÿÿçöÎ&e&| ÿÿÿçöÎ&e&y 1ÿÿÿçöÎ&n&y FÿÿÿëöÎ&e&y [ÿÿÿìöÎ&n& pÿÿÿíöÎ&e&y …ÿÿÿçöÎ&n&y šÿÿÿëÐÎ&U‚ÿÿ ÿëÐÎ&g&ˆ zÿÿ ÿëÐÎ&g&ˆ ÿÿ ÿèìÎ&g&ˆ ¤ÿÿ ÿðÕÎ&^&… ¹ÿÿ ÿéãÎ&g&ˆ Îÿÿ ÿçßÎ&p&Ž ãÿÿ ÿïÕÎ&g&ˆ øÿÿ ÿíÕÎ&p&Ž ÿÿ ÿëÐÎ&p&Ž "ÿÿ ÿíÐÎ&p&Ž 7ÿÿ ÿíÐÎ&p&Ž Lÿÿ ÿìéÎ&p&Ž aÿÿ ÿíÔÎ&p&Ž vÿÿ ÿíÕÎ&p&Ž ‹ÿÿ ÿçÛÎ&p&Ž  ÿÿ ÿïÐÎ&g&ˆ µÿÿ ÿîÐÎ&g&ˆ Êÿÿ ÿèìÎ&p&Ž ßÿÿ ÿèàÎ&g&‹ ôÿÿ ÿééÎ&g&ˆ ÿÿ ÿçÔÎ&g&‹ ÿÿ ÿçÞÎ&g&ˆ 3ÿÿ ÿçÞÎ&p&ˆ Hÿÿ ÿëÐÎ&g&ˆ ]ÿÿ ÿìÕÎ&p&Ž rÿÿ ÿíØÎ&g&ˆ ‡ÿÿ ÿçÜÎ&p&ˆ œÿÿ ÿëÐÎ&T‘ÿÿÿëÐÎ&e& x©ÿÿ ÿëÐÎ&f&© Žÿÿ ÿèìÎ&f&© £ÿÿ ÿðÕÎ&]& ¸›ÿÿ ÿéãÎ&f&© Íÿÿ ÿçßÎ&o&³ âÿÿ ÿïÕÎ&f&© ÷ÿÿÿíÕÎ& &n³ÿÿ ÿëÐÎ&o&³ !ÿÿ ÿíÐÎ&o&³ 6ÿÿ ÿíÐÎ&o&³ Kÿÿ ÿìéÎ&o&³ `ÿÿ ÿíÔÎ&o&³ uÿÿ ÿíÕÎ&o&³ Šÿÿ ÿçÛÎ&o&³ ŸÿÿÿïÐÎ&³&n ´ÿÿ ÿîÐÎ&f&© Éÿÿ ÿèìÎ&o&³ Þÿÿ ÿèãÎ&f&½ óÿÿ ÿééÎ&f&© ÿÿ ÿçÔÎ&f&½ ÿÿ ÿçÞÎ&f&© 2ÿÿ ÿçÞÎ&o&³ Gÿÿ ÿëÐÎ&f&© \ÿÿ ÿìÕÎ&o&³ qÿÿ ÿíØÎ&f&© †ÿÿ ÿçÖÎ&o&³ ›ÿÿÿëÐÎ&ÉUÿÿ ÿëÐÎ&g&Ù zÿÿ ÿëÐÎ&g&Ù ÿÿ ÿèìÎ&g&Ù ¤ÿÿ ÿðÕÎ&^&Ï ¹ÿÿ ÿéãÎ&g&Ù Îÿÿ ÿçßÎ&p&ã ãÿÿ ÿïÕÎ&g&Ù øÿÿ ÿíÕÎ&p&ã ÿÿ ÿëÐÎ&p&ã "ÿÿ ÿíÐÎ&p&ã 7ÿÿ ÿíÐÎ&p&ã Lÿÿ ÿìéÎ&p&ã aÿÿ ÿíÔÎ&p&ã vÿÿ ÿíÕÎ&p&ã ‹ÿÿ ÿçÛÎ&p&ã  ÿÿ ÿïÐÎ&g&Ù µÿÿ ÿîÐÎ&g&Ù Êÿÿ ÿèìÎ&p&ã ßÿÿ ÿèàÎ&g&í ôÿÿ ÿééÎ&g&Ù ÿÿ ÿçÔÎ&g&í ÿÿ ÿçÞÎ&g&Ù 3ÿÿ ÿçÞÎ&p&ã Hÿÿ ÿëÐÎ&g&Ù ]ÿÿ ÿìÕÎ&p&ã rÿÿ ÿíØÎ&g&Ù ‡ÿÿ ÿçÜÎ&p&ã œÿÿ ÿëÐÎ&T÷ÿÿ ÿëÐÎ&f&  yÿÿ ÿëÐÎ&f&  Žÿÿ ÿèìÎ&f&  £ÿÿ ÿðÕÎ&]&ÿ ¸ÿÿ ÿéãÎ&f&  Íÿÿ ÿçßÎ&o&  âÿÿ ÿïÕÎ&f&  ÷ÿÿ ÿíÕÎ&o&  ÿÿ ÿëÐÎ&o&  !ÿÿ ÿíÐÎ&o&  6ÿÿ ÿíÐÎ&o&  Kÿÿ ÿìéÎ&o&  `ÿÿ ÿíÔÎ&o&  uÿÿ ÿíÕÎ&o&  Šÿÿ ÿçÛÎ&o&  Ÿÿÿ ÿïÐÎ&f&  ´ÿÿ ÿîÐÎ&f&  Éÿÿ ÿèìÎ&o&  Þÿÿ ÿèãÎ&f&  óÿÿ ÿééÎ& & fÿÿ ÿçÔÎ&f&  ÿÿ ÿçÞÎ&f&  2ÿÿ ÿçÞÎ&o&  Gÿÿ ÿëÐÎ&f&  \ÿÿ ÿìÕÎ&o&  qÿÿ ÿíØÎ&f&  †ÿÿ ÿçÖÎ&o&  ›ÿÿÿëÐÎ&U &ÿÿ ÿëÐÎ&g& : zÿÿ ÿëÐÎ&g& : ÿÿ ÿèìÎ&g& : ¤ÿÿ ÿðÕÎ&^& 0 ¹ÿÿ ÿéãÎ&g& : Îÿÿ ÿçßÎ&p& D ãÿÿ ÿïÕÎ&g& : øÿÿ ÿíÕÎ&p& D ÿÿ ÿëÐÎ&p& D "ÿÿ ÿíÐÎ&p& D 7ÿÿ ÿíÐÎ&p& D Lÿÿ ÿìéÎ&p& D aÿÿ ÿíÔÎ&p& D vÿÿ ÿíÕÎ&p& D ‹ÿÿ ÿçÛÎ&p& D  ÿÿ ÿïÐÎ&g& : µÿÿ ÿîÐÎ&g& : Êÿÿ ÿèìÎ&p& D ßÿÿ ÿèàÎ&g& N ôÿÿ ÿééÎ&g& : ÿÿ ÿçÔÎ&g& N ÿÿ ÿçÞÎ&g& : 3ÿÿ ÿçÞÎ&p& D Hÿÿ ÿëÐÎ&g& : ]ÿÿ ÿìÕÎ&p& D rÿÿ ÿíØÎ&g& : ‡ÿÿ ÿçÜÎ&p& D œÿÿ ê½&V WÿÿÿëêÉ&h& i {ÿÿÿëêÉ&h& i ÿÿÿêêÉ&h& i ¥ÿÿÿðêÉ& º&h _ÿÿÿéêÉ&h& i ÏÿÿÿçêÉ&q& s äÿÿÿïêÉ&h& i ùÿÿÿíêÉ&q& s ÿÿÿëêÉ&q& s #ÿÿÿíêÉ&q& s 8ÿÿÿðêÉ&q& s MÿÿÿìêÉ&q& s bÿÿÿíêÉ&q& s wÿÿÿíêÉ&q& s ŒÿÿÿçêÉ&q& s ¡ÿÿÿïêÉ&h& i ¶ÿÿÿîêÉ&h& i ËÿÿÿèìÉ&q& s àÿÿÿèêÉ&h& | õÿÿÿéêÉ&h& i ÿÿÿçêÉ&h& | ÿÿÿçêÉ&h& i 4ÿÿÿçêÉ&q& s IÿÿÿëêÉ&h& i ^ÿÿÿìêÉ&q& s sÿÿÿíêÉ&h& i ˆÿÿÿçêÉ&q& s ÿÿÿëöÎ& †XÿÿÿëöÎ&j& š |ÿÿÿëöÎ&j& š ‘ÿÿÿêöÎ&j& š ¦ÿÿÿðöÎ&a&  »ÿÿÿêöÎ&j& š ÐÿÿÿçöÎ&s& ¤ åÿÿÿïöÎ&j& š úÿÿÿíöÎ&s& ¤ ÿÿÿëöÎ&s& ¤ $ÿÿÿíöÎ&s& ¤ 9ÿÿÿíöÎ&s& ¤ NÿÿÿìöÎ&s& ¤ cÿÿÿîöÎ&s& ¤ xÿÿÿíöÎ&s& ¤ ÿÿÿçöÎ&s& ¤ ¢ÿÿÿïöÎ&j& š ·ÿÿÿîöÎ&j& š ÌÿÿÿèöÎ&s& ¤ áÿÿÿèöÎ&j& ® öÿÿÿéöÎ&j& š ÿÿÿçöÎ&j& ® ÿÿÿçöÎ&j& š 5ÿÿÿçöÎ&s& ¤ JÿÿÿëöÎ&j& š _ÿÿÿìöÎ&s& ¤ tÿÿÿíöÎ&j& š ‰ÿÿÿçöÎ&s& ¤ žÿÿÿëÐÎ&Z ¸ÿÿÿëÐÎ&l& Ì |ÿÿÿëÐÎ&l& Ì ‘ÿÿÿêëÎ&l& Ì ¦ÿÿÿðÕÎ&c&  »ÿÿÿêãÎ&l& Ì ÐÿÿÿçßÎ&u& Ö åÿÿÿïÕÎ&l& Ì úÿÿÿíÕÎ&u& Ö ÿÿÿëÐÎ&u& Ö $ÿÿÿíÐÎ&u& Ö 9ÿÿÿíÐÎ&u& Ö NÿÿÿìéÎ&u& Ö cÿÿÿîÔÎ&u& Ö xÿÿÿíÕÎ&u& Ö ÿÿÿçÛÎ&u& Ö ¢ÿÿÿïÐÎ&l& Ì ·ÿÿÿîÐÎ&l& Ì ÌÿÿÿèéÎ&u& Ö áÿÿÿèãÎ&l& à öÿÿÿééÎ&l& Ì ÿÿÿçÔÎ&l& à ÿÿÿçâÎ&l& Ì 5ÿÿÿçâÎ&u& Ö JÿÿÿëÐÎ&l& Ì _ÿÿÿìÕÎ&u& Ö tÿÿÿíØÎ&l& Ì ‰ÿÿÿçÜÎ&u& Ö žÿÿÿëÐÎ&X íÿÿÿëÐÎ&j& ý |ÿÿÿëÐÎ&j& ý ‘ÿÿÿêëÎ&j& ý ¦ÿÿÿðÕÎ&a& ó »ÿÿÿêãÎ&j& ý ÐÿÿÿçßÎ&s&  åÿÿÿïÕÎ&j& ý úÿÿÿíÕÎ&s&  ÿÿÿëÐÎ&s&  $ÿÿÿíÐÎ&s&  9ÿÿÿíÐÎ&s&  NÿÿÿìéÎ&s&  cÿÿÿîÔÎ&s&  xÿÿÿíÕÎ&s&  ÿÿÿçÛÎ&s&  ¢ÿÿÿïÐÎ&j& ý ·ÿÿÿîÐÎ&j& ý ÌÿÿÿèéÎ&s&  áÿÿÿèãÎ&j&  öÿÿÿééÎ&j& ý ÿÿÿçÔÎ&j&  ÿÿÿçâÎ&j& ý 5ÿÿÿçâÎ&s&  JÿÿÿëÐÎ&j& ý _ÿÿÿìÕÎ&s&  tÿÿÿíØÎ&j& ý ‰ÿÿÿçÜÎ&s&  žÿÿ ë½&V ÿÿÿëëÉ&h& / {ÿÿÿëëÉ&h& / ÿÿÿêëÉ&h& / ¥ÿÿÿðëÉ&_& % ºÿÿÿéëÉ&h& / ÏÿÿÿçëÉ&q& 9 äÿÿÿïëÉ&h& / ùÿÿÿíëÉ&q& 9 ÿÿÿëëÉ&q& 9 #ÿÿÿíëÉ&q& 9 8ÿÿÿðëÉ&q& 9 MÿÿÿìëÉ&q& 9 bÿÿÿíëÉ&q& 9 wÿÿÿíëÉ&q& 9 ŒÿÿÿçëÉ&q& 9 ¡ÿÿÿïëÉ&h& / ¶ÿÿÿîëÉ&h& / ËÿÿÿèìÉ&q& 9 àÿÿÿèëÉ&h& C õÿÿÿéëÉ&h& / ÿÿÿçëÉ&h& C ÿÿÿçëÉ&h& / 4ÿÿÿçëÉ&q& 9 IÿÿÿëëÉ&h& / ^ÿÿÿìëÉ&q& 9 sÿÿÿíëÉ&h& / ˆÿÿÿçëÉ&q& 9 ÿÿÿëëÉ&W KÿÿÿëëÉ&i& V {ÿÿÿëëÉ&i& V ÿÿÿêëÉ&i& V ¥ÿÿÿðëÉ& Q& º`ÿÿÿéëÉ&i& V ÏÿÿÿçëÉ&r& k äÿÿÿïëÉ&i& ù VÿÿÿíëÉ& &r kÿÿÿëëÉ&r& k #ÿÿÿíëÉ&r& k 8ÿÿÿðëÉ&r& k MÿÿÿìëÉ&r& k bÿÿÿíëÉ&r& k wÿÿÿíëÉ&r& k ŒÿÿÿçëÉ&r& k ¡ÿÿÿïëÉ&i& V ¶ÿÿÿîëÉ&i& V ËÿÿÿèìÉ&r& k àÿÿÿèëÉ&i& d õÿÿÿéëÉ&i& V ÿÿÿçëÉ&i&  VÿÿÿçëÉ&i& V 4ÿÿÿçëÉ&r& ] IÿÿÿëëÉ&i& V ^ÿÿÿìëÉ&r& k sÿÿÿíëÉ&i& V ˆÿÿÿçëÉ&r& ] ÿÿÿëÐÎ&Y rÿÿÿëÐÎ&k& € ~ÿÿÿëÐÎ&k& € “ÿÿÿêëÎ&k& € ¨ÿÿÿðÕÎ&b& y ½ÿÿÿéãÎ&k& € ÒÿÿÿçßÎ&t& • çÿÿÿïÕÎ&k& € üÿÿÿíÕÎ&t& • ÿÿÿëÐÎ&t& • &ÿÿÿíÐÎ&t& • ;ÿÿÿíÐÎ&t& • PÿÿÿëéÎ&t& • eÿÿÿîÔÎ&t& • zÿÿÿíÖÎ&t& • ÿÿÿçÛÎ&t& • ¤ÿÿÿïÐÎ&k& € ¹ÿÿÿîÐÎ&k& € ÎÿÿÿêéÎ&t& • ãÿÿÿèãÎ&k& Ž øÿÿÿçéÎ&k& € ÿÿÿçÔÎ&k& Ž "ÿÿÿçÞÎ&k& € 7ÿÿÿíÞÎ&t& ‡ LÿÿÿëÐÎ&k& € aÿÿÿìÕÎ&t& • vÿÿÿíØÎ&k& € ‹ÿÿÿçÜÎ&t& ‡  ÿÿÿëÐÎ&[ œÿÿÿëÐÎ&m& ª ~ÿÿÿëÐÎ&m& ª “ÿÿÿêëÎ&m& ª ¨ÿÿÿðÕÎ&d& £ ½ÿÿÿéãÎ&m& ª ÒÿÿÿçßÎ&v& ¿ çÿÿÿïÕÎ&m& ª üÿÿÿíÕÎ&v& ¿ ÿÿÿëÐÎ&v& ¿ &ÿÿÿíÐÎ&v& ¿ ;ÿÿÿíÐÎ&v& ¿ PÿÿÿëéÎ&v& ¿ eÿÿÿîÔÎ&v& ¿ zÿÿÿíÖÎ&v& ¿ ÿÿÿçÛÎ&v& ¿ ¤ÿÿÿïÐÎ&m& ª ¹ÿÿÿîÐÎ&m& ª ÎÿÿÿêéÎ&v& ¿ ãÿÿÿèãÎ&m& ¸ øÿÿÿçéÎ&m& ª ÿÿÿçÔÎ&m& ¸ "ÿÿÿçÞÎ&m& ª 7ÿÿÿíÞÎ&v& ± LÿÿÿëÐÎ&m& ª aÿÿÿìÕÎ&v& ¿ vÿÿÿíØÎ&m& ª ‹ÿÿÿçÜÎ&v& ±  ÿÿÿëÐÎ&Y ÆÿÿÿëÐÎ&k& Ô }ÿÿÿëÐÎ&k& Ô ’ÿÿÿêëÎ&k& Ô §ÿÿÿðÕÎ&b& Í ¼ÿÿÿéãÎ&k& Ô ÑÿÿÿçßÎ&t& é æÿÿÿïÕÎ&k& Ô ûÿÿÿíÕÎ&t& é ÿÿÿëÐÎ&t& é %ÿÿÿíÐÎ&t& é :ÿÿÿíÐÎ&t& é OÿÿÿëèÎ&t& é dÿÿÿîÔÎ&t& é yÿÿÿíÖÎ&t& é ŽÿÿÿçÛÎ&t& é £ÿÿÿïÐÎ&k& Ô ¸ÿÿÿîÐÎ&k& Ô ÍÿÿÿêéÎ&t& é âÿÿÿèãÎ&k& â ÷ÿÿÿçéÎ&k& Ô ÿÿÿçÔÎ&k& â !ÿÿÿçÞÎ&k& Ô 6ÿÿÿçÞÎ&t& Û KÿÿÿëÐÎ&k& Ô `ÿÿÿìÕÎ&t& é uÿÿÿíØÎ&k& Ô ŠÿÿÿçÖÎ&t& Û ŸÿÿÿíëÉ&W ðÿÿÿëëÉ&i& þ {ÿÿÿëëÉ&i& þ ÿÿÿêëÉ&i& þ ¥ÿÿÿðëÉ&`& ÷ ºÿÿÿéëÉ&i& þ ÏÿÿÿçëÉ&r&  äÿÿÿïëÉ&i& þ ùÿÿÿíëÉ&r&  ÿÿÿëëÉ&r&  #ÿÿÿíëÉ&r&  8ÿÿÿðëÉ&r&  MÿÿÿìëÉ&r&  bÿÿÿíëÉ&r&  wÿÿÿíëÉ&r&  ŒÿÿÿçëÉ&r&  ¡ÿÿÿïëÉ&i& þ ¶ÿÿÿîëÉ&i& þ ËÿÿÿèìÉ&r&  àÿÿÿèëÉ&i&  õÿÿÿéëÉ&i& þ ÿÿÿçëÉ&i&  ÿÿÿçëÉ&i& þ 4ÿÿÿçëÉ&r&  IÿÿÿëëÉ&i& þ ^ÿÿÿìëÉ&r&  sÿÿÿíëÉ&i& þ ˆÿÿÿçëÉ&r&  ÿÿ ë½&V ÿÿÿëëÉ&h& ' {ÿÿÿëëÉ&h& ' ÿÿÿêëÉ&h& ' ¥ÿÿÿðëÉ&_&  ºÿÿÿéëÉ&h& ' ÏÿÿÿçëÉ&q& < äÿÿÿïëÉ&h& ' ùÿÿÿíëÉ&q& < ÿÿÿëëÉ&q& < #ÿÿÿíëÉ&q& < 8ÿÿÿðëÉ&q& < MÿÿÿìëÉ&q& < bÿÿÿíëÉ&q& < wÿÿÿíëÉ&q& < ŒÿÿÿçëÉ&q& < ¡ÿÿÿïëÉ&h& ¶ %ÿÿÿîëÉ&h& ' ËÿÿÿèìÉ&q& < àÿÿÿèëÉ&h& 5 õÿÿÿéëÉ&h& ' ÿÿÿçëÉ&h&  5ÿÿÿçëÉ&h& ' 4ÿÿÿçëÉ&q& . IÿÿÿëëÉ&h& ' ^ÿÿÿìëÉ&q& < sÿÿÿíëÉ&h& ' ˆÿÿÿçëÉ&q& . ÿÿÿëÐÎ&X CÿÿÿëÐÎ&j& P |ÿÿÿëÐÎ&j& P ‘ÿÿÿêëÎ&j& P ¦ÿÿÿðÕÎ&a& I »ÿÿÿêãÎ&j& P ÐÿÿÿçßÎ&s& e åÿÿÿïÕÎ&j& P úÿÿÿíÕÎ&s& e ÿÿÿëÐÎ&s& e $ÿÿÿíÐÎ&s& e 9ÿÿÿíÐÎ&s& e NÿÿÿìéÎ&s& e cÿÿÿîÔÎ&s& e xÿÿÿíÕÎ&s& e ÿÿÿçÛÎ&s& e ¢ÿÿÿïÐÎ&j& P ·ÿÿÿîÐÎ&j& P ÌÿÿÿèéÎ&s& e áÿÿÿèãÎ&j& ^ öÿÿÿééÎ&j& P ÿÿÿçÔÎ&j& ^ ÿÿÿçâÎ&j& P 5ÿÿÿçâÎ&s& W JÿÿÿëÐÎ&j& P _ÿÿÿìÕÎ&s& e tÿÿÿíØÎ&j& P ‰ÿÿÿçÜÎ&s& W žÿÿ ÿëÐÎ&T iÿÿÿëÐÎ& o&e xÿÿÿëÐÎ&e& o ŽÿÿÿèìÎ&e& o £ÿÿÿðÕÎ&\& l »ÿÿÿéãÎ&e& o ÍÿÿÿçßÎ&n& u âÿÿÿïÕÎ&e& o ÷ÿÿÿíÕÎ&e&  uÿÿÿëÐÎ&n& u !ÿÿÿíÐÎ&n& u 6ÿÿÿíÐÎ&n& u KÿÿÿìéÎ&n& u `ÿÿÿíÔÎ&n& u uÿÿÿíÕÎ&n& u ŠÿÿÿçÛÎ&n& u ŸÿÿÿïÐÎ&n& u ´ÿÿÿîÐÎ&n& u ÉÿÿÿèìÎ&n& u ÞÿÿÿèãÎ&n& r óÿÿÿééÎ&e& o ÿÿÿçÔÎ&e& r ÿÿÿçÞÎ&e& o 2ÿÿÿçÞÎ&n& o GÿÿÿëÐÎ&e& o \ÿÿÿìÕÎ&n& u qÿÿÿíØÎ&e& o †ÿÿÿçÖÎ&n& o ›ÿÿ ÿëöÎ&wVÿÿÿëõÎ&‰&\ xÿÿÿëõÎ&‰&\ ÿÿÿèõÎ&‰&\ ¢ÿÿ ÿðöÎ&€&Y ·ÿÿÿêõÎ&‰&\ ÌÿÿÿçõÎ&’&b áÿÿÿïõÎ&‰&\ öÿÿÿíõÎ&’&b ÿÿÿëõÎ&’&b ÿÿÿíõÎ&’&b 5ÿÿÿíõÎ&’&b JÿÿÿìõÎ&’&b _ÿÿÿíõÎ&’&b tÿÿÿíõÎ&’&b ‰ÿÿÿçõÎ&’&b žÿÿÿïõÎ&‰&\ ³ÿÿÿîõÎ&‰&\ ÈÿÿÿèõÎ&’&b ÝÿÿÿèõÎ&‰&_ òÿÿÿéõÎ&‰&\ ÿÿÿçõÎ&‰&_ ÿÿÿçõÎ&‰&\ 1ÿÿÿçõÎ&’&\ FÿÿÿëõÎ&‰&\ [ÿÿÿìõÎ&’&b pÿÿÿíõÎ&‰&\ …ÿÿÿçõÎ&’&\ šÿÿÿëÑÎ&yeÿÿÿëÐÎ&‹&k zÿÿÿëÐÎ&‹&k ÿÿÿèìÎ&‹&k ¤ÿÿÿðÕÎ&‚&h ¹ÿÿÿéãÎ&‹&k ÎÿÿÿçßÎ&”&q ãÿÿÿïÕÎ&‹&k øÿÿÿíÕÎ&”&q ÿÿÿëÑÎ&”&q "ÿÿÿíÑÎ&”&q 7ÿÿÿíÑÎ&”&q LÿÿÿìéÎ&”&q aÿÿÿíÔÎ&”&q vÿÿÿíÕÎ&”&q ‹ÿÿÿçÛÎ&”&q  ÿÿÿïÐÎ&‹&k µÿÿÿîÐÎ&‹&k ÊÿÿÿèìÎ&”&q ßÿÿÿèàÍ&‹&n ôÿÿÿééÎ&‹&k ÿÿÿçÔÍ&‹&n ÿÿÿçÞÎ&‹&k 3ÿÿÿçÞÎ&”&k HÿÿÿëÐÎ&‹&k ]ÿÿÿìÕÎ&”&q rÿÿÿíØÎ&‹&k ‡ÿÿÿçÜÎ&”&k œÿÿ ÿëöÎ&wtÿÿÿëöÎ&‰&z xÿÿÿëöÎ&‰&z ÿÿÿèöÎ&‰&z ¢ÿÿ ÿðöÎ&€&w ·ÿÿÿêöÎ&‰&z ÌÿÿÿçöÎ&’&€ áÿÿÿïöÎ&‰&z öÿÿÿíöÎ&’&€ ÿÿÿëöÎ&’&€ ÿÿÿíöÎ&’&€ 5ÿÿÿíöÎ&’&€ JÿÿÿìöÎ&’&€ _ÿÿÿíöÎ&’&€ tÿÿÿíöÎ&’&€ ‰ÿÿÿçöÎ&’&€ žÿÿÿïöÎ&‰&z ³ÿÿÿîöÎ&‰&z ÈÿÿÿèöÎ&’&€ ÝÿÿÿèöÎ&‰&} òÿÿÿéöÎ&‰&z ÿÿÿçöÎ&‰&} ÿÿÿçöÎ&‰&z 1ÿÿÿçöÎ&’&z FÿÿÿëöÎ&‰&z [ÿÿÿìöÎ&’&€ pÿÿÿíöÎ&‰&z …ÿÿÿçöÎ&’&z šÿÿÿëÐÎ&yƒÿÿÿëÐÎ&‹&‰ zÿÿÿëÐÎ&‹&‰ ÿÿÿèìÎ&‹&‰ ¤ÿÿÿðÕÎ&‚&† ¹ÿÿÿéãÎ&‹&‰ ÎÿÿÿçßÎ&”& ãÿÿÿïÕÎ&‹&‰ øÿÿÿíÕÎ&”& ÿÿÿëÐÎ&”& "ÿÿÿíÐÎ&”& 7ÿÿÿíÐÎ&”& LÿÿÿìéÎ&”& aÿÿÿíÔÎ&”& vÿÿÿíÕÎ&”& ‹ÿÿÿçÛÎ&”&  ÿÿÿïÐÎ&‹&‰ µÿÿÿîÐÎ&‹&‰ ÊÿÿÿèìÎ&”& ßÿÿÿèàÎ&‹&Œ ôÿÿÿééÎ&‹&‰ ÿÿÿçÔÎ&‹&Œ ÿÿÿçÞÎ&‹&‰ 3ÿÿÿçÞÎ&”&‰ HÿÿÿëÐÎ&‹&‰ ]ÿÿÿìÕÎ&”& rÿÿÿíØÎ&‹&‰ ‡ÿÿÿçÜÎ&”&‰ œÿÿ ÿëÐÎ&x“ÿÿÿëÐÎ&Š&¦ yÿÿÿëÐÎ&Š&¦ ŽÿÿÿèìÎ&Š&¦ £ÿÿÿðÕÎ&& ¸ÿÿÿéãÎ&Š&¦ ÍÿÿÿçßÎ&“&° âÿÿÿïÕÎ&Š&¦ ÷ÿÿÿíÕÎ&Š&¦ ÿÿÿëÐÎ&“&° !ÿÿÿíÐÎ&“&° 6ÿÿÿíÐÎ&“&° KÿÿÿìéÎ&“&° `ÿÿÿíÔÎ&“&° uÿÿÿíÕÎ&“&° ŠÿÿÿçÛÎ&“&° ŸÿÿÿïÐÎ&Š&¦ ´ÿÿÿîÐÎ&Š&¦ ÉÿÿÿèìÎ&“&° ÞÿÿÿèãÎ&Š&º óÿÿÿééÎ&Š&¦ ÿÿÿçÔÎ&Š&º ÿÿÿçÞÎ&Š&¦ 2ÿÿÿçÞÎ&“&° GÿÿÿëÐÎ&Š&¦ \ÿÿÿìÕÎ&“&° qÿÿÿíØÎ&Š&¦ †ÿÿÿçÖÎ&“&° ›ÿÿÿëÐÎ&yÃÿÿÿëÐÎ&‹&Ö zÿÿÿëÐÎ&‹&Ö ÿÿÿèìÎ&‹&Ö ¤ÿÿÿðÕÎ&‚&Ì ¹ÿÿÿéãÎ&‹&Ö ÎÿÿÿçßÎ&”&à ãÿÿÿïÕÎ&‹&Ö øÿÿÿíÕÎ&”&à ÿÿÿëÐÎ&”&à "ÿÿÿíÐÎ&”&à 7ÿÿÿíÐÎ&”&à LÿÿÿìéÎ&”&à aÿÿÿíÔÎ&”&à vÿÿÿíÕÎ&”&à ‹ÿÿÿçÛÎ&”&à  ÿÿÿïÐÎ&‹&Ö µÿÿÿîÐÎ&‹&Ö ÊÿÿÿèìÎ&”&à ßÿÿÿèàÎ&‹&ê ôÿÿÿééÎ&‹&Ö ÿÿÿçÔÎ&‹&ê ÿÿÿçÞÎ&‹&Ö 3ÿÿÿçÞÎ&”&à HÿÿÿëÐÎ&‹&Ö ]ÿÿÿìÕÎ&”&à rÿÿÿíØÎ&‹&Ö ‡ÿÿÿçÜÎ&”&à œÿÿ ÿëÐÎ&xôÿÿÿëÐÎ&Š&  yÿÿÿëÐÎ&Š&  ŽÿÿÿèìÎ&Š&  £ÿÿÿðÕÎ&&þ ¸ÿÿÿéãÎ&Š&  ÍÿÿÿçßÎ&“&  âÿÿÿïÕÎ&Š&  ÷ÿÿÿíÕÎ&“&  ÿÿÿëÐÎ&“&  !ÿÿÿíÐÎ&“&  6ÿÿÿíÐÎ&“&  KÿÿÿìéÎ&“&  `ÿÿÿíÔÎ&“&  uÿÿÿíÕÎ&“&  ŠÿÿÿçÛÎ&“&  ŸÿÿÿïÐÎ&Š&  ´ÿÿÿîÐÎ&Š&  ÉÿÿÿèìÎ&“&  ÞÿÿÿèãÎ&Š&  óÿÿÿééÎ&Š&  ÿÿÿçÔÎ&Š&  ÿÿÿçÞÎ&Š&  2ÿÿÿçÞÎ&“&  GÿÿÿëÐÎ&Š&  \ÿÿÿìÕÎ&“&  qÿÿÿíØÎ&Š&  †ÿÿÿçÖÎ&“&  ›ÿÿÿëÐÎ&y #ÿÿÿëÐÎ&‹& 7 zÿÿÿëÐÎ&‹& 7 ÿÿÿèìÎ&‹& 7 ¤ÿÿÿðÕÎ&‚& - ¹ÿÿÿéãÎ&‹& 7 ÎÿÿÿçßÎ&”& A ãÿÿÿïÕÎ&‹& 7 øÿÿÿíÕÎ&”& A ÿÿÿëÐÎ&”& A "ÿÿÿíÐÎ&”& A 7ÿÿÿíÐÎ&”& A LÿÿÿìéÎ&”& A aÿÿÿíÔÎ&”& A vÿÿÿíÕÎ&”& A ‹ÿÿÿçÛÎ&”& A  ÿÿÿïÐÎ&‹& 7 µÿÿÿîÐÎ&‹& 7 ÊÿÿÿèìÎ&”& A ßÿÿÿèàÎ&‹& K ôÿÿÿééÎ&‹& 7 ÿÿÿçÔÎ&‹& K ÿÿÿçÞÎ&‹& 7 3ÿÿÿçÞÎ&”& A HÿÿÿëÐÎ&‹& 7 ]ÿÿÿìÕÎ&”& A rÿÿÿíØÎ&‹& 7 ‡ÿÿÿçÜÎ&”& A œÿÿ ê½&z UÿÿÿëêÉ&Œ& f {ÿÿÿëêÉ&Œ& f ÿÿÿêêÉ&Œ& f ¥ÿÿÿðêÉ&ƒ& ] ºÿÿÿéêÉ&Œ& f ÏÿÿÿçêÉ&•& p äÿÿÿïêÉ&Œ& f ùÿÿÿíêÉ&•& p ÿÿÿëêÉ&•& p #ÿÿÿíêÉ&•& p 8ÿÿÿðêÉ&•& p MÿÿÿìêÉ&•& p bÿÿÿíêÉ&•& p wÿÿÿíêÉ&•& p ŒÿÿÿçêÉ&•& p ¡ÿÿÿïêÉ&Œ& f ¶ÿÿÿîêÉ&Œ& f ËÿÿÿèìÉ&•& p àÿÿÿèêÉ&Œ& y õÿÿÿéêÉ&Œ& f ÿÿÿçêÉ&Œ& y ÿÿÿçêÉ&Œ& f 4ÿÿÿçêÉ&•& p IÿÿÿëêÉ&Œ& f ^ÿÿÿìêÉ&•& p sÿÿÿíêÉ&Œ& f ˆÿÿÿçêÉ&•& p ÿÿ ÿëöÎ&| ƒÿÿ ÿëöÎ&Ž& — |ÿÿ ÿëöÎ&Ž& — ‘ÿÿ ÿêöÎ&Ž& — ¦ÿÿ ÿðöÎ&…&  »ÿÿ ÿêöÎ&Ž& — Ðÿÿ ÿçöÎ&—& ¡ åÿÿ ÿïöÎ&Ž& — úÿÿ ÿíöÎ&—& ¡ ÿÿ ÿëöÎ&—& ¡ $ÿÿ ÿíöÎ&—& ¡ 9ÿÿ ÿíöÎ&—& ¡ Nÿÿ ÿìöÎ&—& ¡ cÿÿ ÿîöÎ&—& ¡ xÿÿ ÿíöÎ&—& ¡ ÿÿ ÿçöÎ&—& ¡ ¢ÿÿ ÿïöÎ&Ž& — ·ÿÿ ÿîöÎ&Ž& — Ìÿÿ ÿèöÎ&—& ¡ áÿÿ ÿèöÎ&Ž& « öÿÿ ÿéöÎ&Ž& — ÿÿ ÿçöÎ&Ž& « ÿÿ ÿçöÎ&Ž& — 5ÿÿ ÿçöÎ&—& ¡ Jÿÿ ÿëöÎ&Ž& — _ÿÿ ÿìöÎ&—& ¡ tÿÿ ÿíöÎ&Ž& — ‰ÿÿ ÿçöÎ&—& ¡ žÿÿ ÿëÐÎ&~ µÿÿ ÿëÐÎ&& É |ÿÿ ÿëÐÎ&& É ‘ÿÿ ÿêëÎ&& É ¦ÿÿ ÿðÕÎ&‡& ¿ »ÿÿ ÿêãÎ&& É Ðÿÿ ÿçßÎ&™& Ó åÿÿ ÿïÕÎ&& É úÿÿ ÿíÕÎ&™& Ó ÿÿ ÿëÐÎ&™& Ó $ÿÿ ÿíÐÎ&™& Ó 9ÿÿ ÿíÐÎ&™& Ó Nÿÿ ÿìéÎ&™& Ó cÿÿ ÿîÔÎ&™& Ó xÿÿ ÿíÕÎ&™& Ó ÿÿ ÿçÛÎ&™& Ó ¢ÿÿ ÿïÐÎ&& É ·ÿÿ ÿîÐÎ&& É Ìÿÿ ÿèéÎ&™& Ó áÿÿ ÿèãÎ&& Ý öÿÿ ÿééÎ&& É ÿÿ ÿçÔÎ&& Ý ÿÿ ÿçâÎ&& É 5ÿÿ ÿçâÎ&™& Ó Jÿÿ ÿëÐÎ&& É _ÿÿ ÿìÕÎ&™& Ó tÿÿ ÿíØÎ&& É ‰ÿÿ ÿçÜÎ&™& Ó žÿÿ ÿëÐÎ&| çÿÿ ÿëÐÎ&Ž& ú |ÿÿ ÿëÐÎ&Ž& ú ‘ÿÿ ÿêëÎ&Ž& ú ¦ÿÿ ÿðÕÎ&…& ð »ÿÿ ÿêãÎ&Ž& ú Ðÿÿ ÿçßÎ&—&  åÿÿ ÿïÕÎ&Ž& ú úÿÿ ÿíÕÎ&—&  ÿÿ ÿëÐÎ&—&  $ÿÿ ÿíÐÎ&—&  9ÿÿ ÿíÐÎ&—&  Nÿÿ ÿìéÎ&—&  cÿÿ ÿîÔÎ&—&  xÿÿ ÿíÕÎ&—&  ÿÿ ÿçÛÎ&—&  ¢ÿÿ ÿïÐÎ&Ž& ú ·ÿÿ ÿîÐÎ&Ž& ú Ìÿÿ ÿèéÎ&—&  áÿÿ ÿèãÎ&Ž&  öÿÿ ÿééÎ&Ž& ú ÿÿ ÿçÔÎ&Ž&  ÿÿ ÿçâÎ&Ž& ú 5ÿÿ ÿçâÎ&—&  Jÿÿ ÿëÐÎ&Ž& ú _ÿÿ ÿìÕÎ&—&  tÿÿ ÿíØÎ&Ž& ú ‰ÿÿ ÿçÜÎ&—&  žÿÿ ë½&z ÿÿÿëëÉ&Œ& , {ÿÿÿëëÉ&Œ& , ÿÿÿêëÉ&Œ& , ¥ÿÿÿðëÉ&ƒ& " ºÿÿÿéëÉ&Œ& , ÏÿÿÿçëÉ&•& 6 äÿÿÿïëÉ&Œ& , ùÿÿÿíëÉ&•& 6 ÿÿÿëëÉ&•& 6 #ÿÿÿíëÉ&•& 6 8ÿÿÿðëÉ&•& 6 MÿÿÿìëÉ&•& 6 bÿÿÿíëÉ&•& 6 wÿÿÿíëÉ&•& 6 ŒÿÿÿçëÉ&•& 6 ¡ÿÿÿïëÉ&Œ& , ¶ÿÿÿîëÉ&Œ& , ËÿÿÿèìÉ&•& 6 àÿÿÿèëÉ&Œ& @ õÿÿÿéëÉ&Œ& , ÿÿÿçëÉ&Œ& @ ÿÿÿçëÉ&Œ& , 4ÿÿÿçëÉ&•& 6 IÿÿÿëëÉ&Œ& , ^ÿÿÿìëÉ&•& 6 sÿÿÿíëÉ&Œ& , ˆÿÿÿçëÉ&•& 6 ÿÿÿëëÉ&{ IÿÿÿëëÉ&& T {ÿÿÿëëÉ&& T ÿÿÿêëÉ&& T ¥ÿÿÿðëÉ&„& O ºÿÿÿéëÉ&& T ÏÿÿÿçëÉ&–& i äÿÿÿïëÉ&& T ùÿÿÿíëÉ&–& i ÿÿÿëëÉ&–& i #ÿÿÿíëÉ&–& i 8ÿÿÿðëÉ&–& i MÿÿÿìëÉ&–& i bÿÿÿíëÉ&–& i wÿÿÿíëÉ&–& i ŒÿÿÿçëÉ&–& i ¡ÿÿÿïëÉ&& T ¶ÿÿÿîëÉ&& T ËÿÿÿèìÉ&–& i àÿÿÿèëÉ&& b õÿÿÿéëÉ&& T ÿÿÿçëÉ&& T ÿÿÿçëÉ&& T 4ÿÿÿçëÉ&–& [ IÿÿÿëëÉ&& T ^ÿÿÿìëÉ&–& i sÿÿÿíëÉ&& T ˆÿÿÿçëÉ&–& [ ÿÿ ÿëÐÎ&} pÿÿ ÿëÐÎ&& ~ ~ÿÿ ÿëÐÎ&& ~ “ÿÿ ÿêëÎ&& ~ ¨ÿÿÿðÕÎ&†& w ½ÿÿ ÿéãÎ&& ~ Òÿÿ ÿçßÎ&˜& “ çÿÿ ÿïÕÎ&& ~ üÿÿ ÿíÕÎ&˜& “ ÿÿ ÿëÐÎ&˜& “ &ÿÿ ÿíÐÎ&˜& “ ;ÿÿ ÿíÐÎ&˜& “ Pÿÿ ÿëéÎ&˜& “ eÿÿ ÿîÔÎ&˜& “ zÿÿ ÿíÖÎ&˜& “ ÿÿ ÿçÛÎ&˜& “ ¤ÿÿ ÿïÐÎ&& ~ ¹ÿÿ ÿîÐÎ&& ~ Îÿÿ ÿêéÎ&˜& “ ãÿÿ ÿèãÎ&& Œ øÿÿ ÿçéÎ&& ~ ÿÿ ÿçÔÎ&& Œ "ÿÿ ÿçÞÎ&& ~ 7ÿÿ ÿíÞÎ&˜& … Lÿÿ ÿëÐÎ&& ~ aÿÿ ÿìÕÎ&˜& “ vÿÿ ÿíØÎ&& ~ ‹ÿÿ ÿçÜÎ&˜& …  ÿÿ ÿëÐÎ& šÿÿ ÿëÐÎ&‘& ¨ ~ÿÿ ÿëÐÎ&‘& ¨ “ÿÿ ÿêëÎ&‘& ¨ ¨ÿÿ ÿðÕÎ&ˆ& ¡ ½ÿÿ ÿéãÎ&‘& ¨ Òÿÿ ÿçßÎ&š& ½ çÿÿ ÿïÕÎ&‘& ¨ üÿÿ ÿíÕÎ&š& ½ ÿÿ ÿëÐÎ&š& ½ &ÿÿ ÿíÐÎ&š& ½ ;ÿÿ ÿíÐÎ&š& ½ Pÿÿ ÿëéÎ&š& ½ eÿÿ ÿîÔÎ&š& ½ zÿÿ ÿíÖÎ&š& ½ ÿÿ ÿçÛÎ&š& ½ ¤ÿÿ ÿïÐÎ&‘& ¨ ¹ÿÿ ÿîÐÎ&‘& ¨ Îÿÿ ÿêéÎ&š& ½ ãÿÿ ÿèãÎ&‘& ¶ øÿÿ ÿçéÎ&‘& ¨ ÿÿ ÿçÔÎ&‘& ¶ "ÿÿ ÿçÞÎ&‘& ¨ 7ÿÿ ÿíÞÎ&š& ¯ Lÿÿ ÿëÐÎ&‘& ¨ aÿÿ ÿìÕÎ&š& ½ vÿÿ ÿíØÎ&‘& ¨ ‹ÿÿ ÿçÜÎ&š& ¯  ÿÿ ÿëÐÎ&} Äÿÿ ÿëÐÎ&& Ò }ÿÿ ÿëÐÎ&& Ò ’ÿÿ ÿêëÎ&& Ò §ÿÿÿðÕÎ&†& Ë ¼ÿÿ ÿéãÎ&& Ò Ñÿÿ ÿçßÎ&˜& ç æÿÿ ÿïÕÎ&& Ò ûÿÿ ÿíÕÎ&˜& ç ÿÿ ÿëÐÎ&˜& ç %ÿÿ ÿíÐÎ&˜& ç :ÿÿ ÿíÐÎ&˜& ç Oÿÿ ÿëèÎ&˜& ç dÿÿ ÿîÔÎ&˜& ç yÿÿ ÿíÖÎ&˜& ç Žÿÿ ÿçÛÎ&˜& ç £ÿÿ ÿïÐÎ&& Ò ¸ÿÿ ÿîÐÎ&& Ò Íÿÿ ÿêéÎ&˜& ç âÿÿ ÿèãÎ&& à ÷ÿÿ ÿçéÎ&& Ò ÿÿ ÿçÔÎ&& à !ÿÿ ÿçÞÎ&& Ò 6ÿÿ ÿçÞÎ&˜& Ù Kÿÿ ÿëÐÎ&& Ò `ÿÿ ÿìÕÎ&˜& ç uÿÿ ÿíØÎ&& Ò Šÿÿ ÿçÖÎ&˜& Ù ŸÿÿÿíëÉ&{ îÿÿÿëëÉ&& ü {ÿÿÿëëÉ&& ü ÿÿÿêëÉ&& ü ¥ÿÿÿðëÉ&„& õ ºÿÿÿéëÉ&& ü ÏÿÿÿçëÉ&–&  äÿÿÿïëÉ&& ü ùÿÿÿíëÉ&–&  ÿÿÿëëÉ&–&  #ÿÿÿíëÉ&–&  8ÿÿÿðëÉ&–&  MÿÿÿìëÉ&–&  bÿÿÿíëÉ&–&  wÿÿÿíëÉ&–&  ŒÿÿÿçëÉ&–&  ¡ÿÿÿïëÉ&& ü ¶ÿÿÿîëÉ&& ü ËÿÿÿèìÉ&–&  àÿÿÿèëÉ&&  õÿÿÿéëÉ&& ü ÿÿÿçëÉ&&  ÿÿÿçëÉ&& ü 4ÿÿÿçëÉ&–&  IÿÿÿëëÉ&& ü ^ÿÿÿìëÉ&–&  sÿÿÿíëÉ&& ü ˆÿÿÿçëÉ&–&  ÿÿ ë½&z ÿÿÿëëÉ&Œ& % {ÿÿÿëëÉ&Œ& % ÿÿÿêëÉ&Œ& % ¥ÿÿÿðëÉ&ƒ&  ºÿÿÿéëÉ&Œ& % ÏÿÿÿçëÉ&•& : äÿÿÿïëÉ&Œ& % ùÿÿÿíëÉ&•& : ÿÿÿëëÉ&•& : #ÿÿÿíëÉ&•& : 8ÿÿÿðëÉ&•& : MÿÿÿìëÉ&•& : bÿÿÿíëÉ&•& : wÿÿÿíëÉ&•& : ŒÿÿÿçëÉ&•& : ¡ÿÿÿïëÉ&Œ& % ¶ÿÿÿîëÉ&Œ& % ËÿÿÿèìÉ&•& : àÿÿÿèëÉ&Œ& 3 õÿÿÿéëÉ&Œ& % ÿÿÿçëÉ&Œ& 3 ÿÿÿçëÉ&Œ& % 4ÿÿÿçëÉ&•& , IÿÿÿëëÉ&Œ& % ^ÿÿÿìëÉ&•& : sÿÿÿíëÉ&Œ& % ˆÿÿÿçëÉ&•& , ÿÿ ÿëÐÎ&| Aÿÿ ÿëÐÎ&Ž& N |ÿÿ ÿëÐÎ&Ž& N ‘ÿÿ ÿêëÎ&Ž& N ¦ÿÿ ÿðÕÎ&…& G »ÿÿ ÿêãÎ&Ž& N Ðÿÿ ÿçßÎ&—& c åÿÿ ÿïÕÎ&Ž& N úÿÿ ÿíÕÎ&—& c ÿÿ ÿëÐÎ&—& c $ÿÿ ÿíÐÎ&—& c 9ÿÿ ÿíÐÎ&—& c Nÿÿ ÿìéÎ&—& c cÿÿ ÿîÔÎ&—& c xÿÿ ÿíÕÎ&—& c ÿÿ ÿçÛÎ&—& c ¢ÿÿ ÿïÐÎ&Ž& N ·ÿÿ ÿîÐÎ&Ž& N Ìÿÿ ÿèéÎ&—& c áÿÿ ÿèãÎ&Ž& \ öÿÿ ÿééÎ&Ž& N ÿÿ ÿçÔÎ&Ž& \ ÿÿ ÿçâÎ&Ž& N 5ÿÿ ÿçâÎ&—& U Jÿÿ ÿëÐÎ&Ž& N _ÿÿ ÿìÕÎ&—& c tÿÿ ÿíØÎ&Ž& N ‰ÿÿ ÿçÜÎ&—& U žÿÿ ÿëÐÎ&w jÿÿÿëÐÎ&‰& p yÿÿÿëÐÎ&‰& p ŽÿÿÿèìÎ&‰& p £ÿÿ ÿðÕÎ&€& m ¸ÿÿÿéãÎ&‰& p ÍÿÿÿçßÎ&’& v âÿÿÿïÕÎ&‰& p ÷ÿÿÿíÕÎ&’& v ÿÿÿëÐÎ&’& v !ÿÿÿíÐÎ&’& v 6ÿÿÿíÐÎ&’& v KÿÿÿìéÎ&’& v `ÿÿÿíÔÎ&’& v uÿÿÿíÕÎ&’& v ŠÿÿÿçÛÎ&’& v ŸÿÿÿïÐÎ&‰& p ´ÿÿÿîÐÎ&‰& p ÉÿÿÿèìÎ&’& v ÞÿÿÿèãÎ&‰& s óÿÿÿééÎ&‰& p ÿÿÿçÔÎ&‰& s ÿÿÿçÞÎ&‰& p 2ÿÿÿçÞÎ&’& p GÿÿÿëÐÎ&‰& p \ÿÿÿìÕÎ&’& v qÿÿÿíØÎ&‰& p †ÿÿÿçÖÎ&’& p ›ÿÿÿëöÎ&›UÿÿÿëõÎ&­&[ xÿÿÿëõÎ&­&[ ÿÿÿèõÎ&­&[ ¢ÿÿÿðöÎ&¤& ·XÿÿÿêõÎ&­&[ ÌÿÿÿçõÎ&¶&a áÿÿÿïõÎ&­&[ öÿÿÿíõÎ&¶&a ÿÿÿëõÎ&¶&a ÿÿÿíõÎ&¶&a 5ÿÿÿíõÎ&¶&a JÿÿÿìõÎ&¶&a _ÿÿÿíõÎ&¶&a tÿÿÿíõÎ&¶&a ‰ÿÿÿçõÎ&¶&a žÿÿÿïõÎ&[& ³­ÿÿÿîõÎ&­&[ ÈÿÿÿèõÎ&¶&a ÝÿÿÿèöÎ&­&^ òÿÿÿéõÎ&­&[ ÿÿÿçöÎ&­&^ ÿÿÿçõÎ&­&[ 1ÿÿÿçõÎ&¶&[ FÿÿÿëõÎ&­&[ [ÿÿÿìõÎ&¶&a pÿÿÿíõÎ&­&[ …ÿÿÿçõÎ&¶&[ šÿÿ ÿëÐÎ&dÿÿ ÿëÐÎ&¯&j zÿÿ ÿëÐÎ&¯&j ÿÿ ÿèìÎ&¯&j ¤ÿÿ ÿðÕÎ&¦&g ¹ÿÿ ÿéãÎ&¯&j Îÿÿ ÿçßÎ&¸&p ãÿÿ ÿïÕÎ&¯&j øÿÿ ÿíÕÎ&¸&p ÿÿ ÿëÐÎ&¸&p "ÿÿ ÿíÐÎ&¸&p 7ÿÿ ÿíÐÎ&¸&p Lÿÿ ÿìéÎ&¸&p aÿÿ ÿíÔÎ&¸&p vÿÿ ÿíÕÎ&¸&p ‹ÿÿ ÿçÛÎ&¸&p  ÿÿ ÿïÐÎ&¯&j µÿÿ ÿîÐÎ&¯&j Êÿÿ ÿèìÎ&¸&p ßÿÿ ÿèàÎ&¯&m ôÿÿ ÿééÎ&¯&j ÿÿ ÿçÔÎ&¯&m ÿÿ ÿçÞÎ&¯&j 3ÿÿ ÿçÞÎ&¸&j Hÿÿ ÿëÐÎ&¯&j ]ÿÿ ÿìÕÎ&¸&p rÿÿ ÿíØÎ&¯&j ‡ÿÿ ÿçÜÎ&¸&j œÿÿÿëöÎ&›sÿÿÿëöÎ&­&y xÿÿÿëöÎ&­&y ÿÿÿèöÎ&­&y ¢ÿÿÿðöÎ&¤&v ·ÿÿÿêöÎ&­&y ÌÿÿÿçöÎ&¶& áÿÿÿïöÎ&­&y öÿÿÿíöÎ&¶& ÿÿÿëöÎ&¶& ÿÿÿíöÎ&¶& 5ÿÿÿíöÎ&¶& JÿÿÿìöÎ&¶& _ÿÿÿíöÎ&¶& tÿÿÿíöÎ&¶& ‰ÿÿÿçöÎ&¶& žÿÿÿïöÎ&­&y ³ÿÿÿîöÎ&­&y ÈÿÿÿèöÎ&¶& ÝÿÿÿèöÎ&­&| òÿÿÿéöÎ&­&y ÿÿÿçöÎ&­&| ÿÿÿçöÎ&­&y 1ÿÿÿçöÎ&¶&y FÿÿÿëöÎ&­&y [ÿÿÿìöÎ&¶& pÿÿÿíöÎ&­&y …ÿÿÿçöÎ&¶&y šÿÿ ÿëÐÎ&‚ÿÿ ÿëÐÎ&¯&ˆ zÿÿ ÿëÐÎ&¯&ˆ ÿÿ ÿèìÎ&¯&ˆ ¤ÿÿ ÿðÕÎ&¦&… ¹ÿÿ ÿéãÎ&¯&ˆ Îÿÿ ÿçßÎ&¸&Ž ãÿÿ ÿïÕÎ&¯&ˆ øÿÿ ÿíÕÎ&¸&Ž ÿÿ ÿëÐÎ&¸&Ž "ÿÿ ÿíÐÎ&¸&Ž 7ÿÿ ÿíÐÎ&¸&Ž Lÿÿ ÿìéÎ&¸&Ž aÿÿ ÿíÔÎ&¸&Ž vÿÿ ÿíÕÎ&¸&Ž ‹ÿÿ ÿçÛÎ&¸&Ž  ÿÿ ÿïÐÎ&¯&ˆ µÿÿ ÿîÐÎ&¯&ˆ Êÿÿ ÿèìÎ&¸&Ž ßÿÿ ÿèàÎ&¯&‹ ôÿÿ ÿééÎ&¯&ˆ ÿÿ ÿçÔÎ&¯&‹ ÿÿ ÿçÞÎ&¯&ˆ 3ÿÿ ÿçÞÎ&¸&ˆ Hÿÿ ÿëÐÎ&¯&ˆ ]ÿÿ ÿìÕÎ&¸&Ž rÿÿ ÿíØÎ&¯&ˆ ‡ÿÿ ÿçÜÎ&¸&ˆ œÿÿ ÿëÐÎ&‘œÿÿ ÿëÐÎ&®&­ yÿÿ ÿëÐÎ&®&­ Žÿÿ ÿèìÎ&®&­ £ÿÿ ÿðÕÎ&¥& ¸£ÿÿ ÿéãÎ&®&­ Íÿÿ ÿçßÎ&·&· âÿÿ ÿïÕÎ&®&­ ÷ÿÿ ÿíÕÎ&·&· ÿÿ ÿëÐÎ&·&· !ÿÿ ÿíÐÎ&·&· 6ÿÿ ÿíÐÎ&·&· Kÿÿ ÿìéÎ&·&· `ÿÿ ÿíÔÎ&·&· uÿÿ ÿíÕÎ&·&· Šÿÿ ÿçÛÎ&·&· Ÿÿÿ ÿïÐÎ&®&­ ´ÿÿ ÿîÐÎ&®&­ Éÿÿ ÿèìÎ&·&· ÞÿÿÿèãÎ& ó&­Áÿÿ ÿééÎ&®&­ ÿÿÿçÔÎ&Á&­ ÿÿ ÿçÞÎ&®&­ 2ÿÿ ÿçÞÎ&·&· Gÿÿ ÿëÐÎ&®&­ \ÿÿ ÿìÕÎ&·&· qÿÿ ÿíØÎ&®&­ †ÿÿ ÿçÖÎ&·&· ›ÿÿ ÿëÐÎ&Éÿÿ ÿëÐÎ&¯&Ý zÿÿ ÿëÐÎ&¯&Ý ÿÿ ÿèìÎ&¯&Ý ¤ÿÿ ÿðÕÎ&¦&Ó ¹ÿÿ ÿéãÎ&¯&Ý Îÿÿ ÿçßÎ&¸&ç ãÿÿ ÿïÕÎ&¯&Ý øÿÿ ÿíÕÎ&¸&ç ÿÿ ÿëÐÎ&¸&ç "ÿÿ ÿíÐÎ&¸&ç 7ÿÿ ÿíÐÎ&¸&ç Lÿÿ ÿìéÎ&¸&ç aÿÿ ÿíÔÎ&¸&ç vÿÿ ÿíÕÎ&¸&ç ‹ÿÿ ÿçÛÎ&¸&ç  ÿÿ ÿïÐÎ&¯&Ý µÿÿ ÿîÐÎ&¯&Ý Êÿÿ ÿèìÎ&¸&ç ßÿÿ ÿèàÎ&¯&ñ ôÿÿ ÿééÎ&¯&Ý ÿÿ ÿçÔÎ&¯&ñ ÿÿ ÿçÞÎ&¯&Ý 3ÿÿ ÿçÞÎ&¸&ç Hÿÿ ÿëÐÎ&¯&Ý ]ÿÿ ÿìÕÎ&¸&ç rÿÿ ÿíØÎ&¯&Ý ‡ÿÿ ÿçÜÎ&¸&ç œÿÿ ÿëÐÎ&œûÿÿ ÿëÐÎ&®&  yÿÿ ÿëÐÎ&®&  Žÿÿ ÿèìÎ&®&  £ÿÿ ÿðÕÎ&¥&  ¸ÿÿ ÿéãÎ&®&  Íÿÿ ÿçßÎ&·&  âÿÿ ÿïÕÎ&®&  ÷ÿÿ ÿíÕÎ&·&  ÿÿ ÿëÐÎ&·&  !ÿÿ ÿíÐÎ&·&  6ÿÿ ÿíÐÎ&·&  Kÿÿ ÿìéÎ&·&  `ÿÿ ÿíÔÎ&·&  uÿÿ ÿíÕÎ&·&  Šÿÿ ÿçÛÎ&·&  Ÿÿÿ ÿïÐÎ&®&  ´ÿÿ ÿîÐÎ&®&  Éÿÿ ÿèìÎ&·&  Þÿÿ ÿèãÎ&®&  óÿÿ ÿééÎ& &® ÿÿ ÿçÔÎ&®&  ÿÿ ÿçÞÎ&®&  2ÿÿ ÿçÞÎ&·&  Gÿÿ ÿëÐÎ&®&  \ÿÿ ÿìÕÎ&·&  qÿÿ ÿíØÎ&®&  †ÿÿ ÿçÖÎ&·&  ›ÿÿ ÿëÐÎ& *ÿÿ ÿëÐÎ&¯& > zÿÿ ÿëÐÎ&¯& > ÿÿ ÿèìÎ&¯& > ¤ÿÿ ÿðÕÎ&¦& 4 ¹ÿÿ ÿéãÎ&¯& > Îÿÿ ÿçßÎ&¸& H ãÿÿ ÿïÕÎ&¯& > øÿÿ ÿíÕÎ&¸& H ÿÿ ÿëÐÎ&¸& H "ÿÿ ÿíÐÎ&¸& H 7ÿÿ ÿíÐÎ&¸& H Lÿÿ ÿìéÎ&¸& H aÿÿ ÿíÔÎ&¸& H vÿÿ ÿíÕÎ&¸& H ‹ÿÿ ÿçÛÎ&¸& H  ÿÿ ÿïÐÎ&¯& > µÿÿ ÿîÐÎ&¯& > Êÿÿ ÿèìÎ&¸& H ßÿÿ ÿèàÎ&¯& R ôÿÿ ÿééÎ&¯& > ÿÿ ÿçÔÎ&¯& R ÿÿ ÿçÞÎ&¯& > 3ÿÿ ÿçÞÎ&¸& H Hÿÿ ÿëÐÎ&¯& > ]ÿÿ ÿìÕÎ&¸& H rÿÿ ÿíØÎ&¯& > ‡ÿÿ ÿçÜÎ&¸& H œÿÿ êÉ&ž ZÿÿÿëêÏ&°& m {ÿÿÿëêÏ&°& m ÿÿÿêêÏ&°& m ¥ÿÿÿðêÏ&§& c ºÿÿÿéêÏ&°& m ÏÿÿÿçêÏ&¹& w äÿÿÿïêÏ&°& m ùÿÿÿíêÏ&¹& w ÿÿÿëêÏ&¹& w #ÿÿÿíêÏ&¹& w 8ÿÿÿðêÏ&¹& w MÿÿÿìêÏ&¹& w bÿÿÿíêÏ&¹& w wÿÿÿíêÏ&¹& w ŒÿÿÿçêÏ&¹& w ¡ÿÿÿïêÏ&°& m ¶ÿÿÿîêÏ&°& m ËÿÿÿèìÏ&¹& w àÿÿÿèêÏ&°& € õÿÿÿéêÏ&°& m ÿÿÿçêÏ&°& € ÿÿÿçêÏ&°& m 4ÿÿÿçêÏ&¹& w IÿÿÿëêÏ&°& m ^ÿÿÿìêÏ&¹& w sÿÿÿíêÏ&°& m ˆÿÿÿçêÏ&¹& w ÿÿÿëöÎ&  ŠÿÿÿëöÎ&²& ž ƒÿÿÿëöÎ&²& ž ˜ÿÿÿêöÎ&²& ž ­ÿÿÿíöÎ&©& ” ÂÿÿÿéöÎ&²& ž ×ÿÿÿçöÎ&»& ¨ ìÿÿÿíöÎ&²& ž ÿÿÿíöÎ&»& ¨ ÿÿÿëöÎ&»& ¨ +ÿÿÿíöÎ&»& ¨ @ÿÿÿìöÎ&»& ¨ UÿÿÿìöÎ&»& ¨ jÿÿÿîöÎ&»& ¨ ÿÿÿíöÎ&»& ¨ ”ÿÿÿèöÎ&»& ¨ ©ÿÿÿïöÎ&²& ž ¾ÿÿÿîöÎ&²& ž ÓÿÿÿêöÎ&»& ¨ èÿÿÿêöÎ&²& ² ýÿÿÿìöÎ&²& ž ÿÿÿêöÎ&²& ² 'ÿÿÿëöÎ&²& ž <ÿÿÿëöÎ&»& ¨ QÿÿÿëöÎ&²& ž fÿÿÿíöÎ&»& ¨ {ÿÿÿðöÎ&²& ž ÿÿÿçöÎ&»& ¨ ¥ÿÿÿëÐÎ&¢ ¼ÿÿÿëÐÎ&´& Ð ƒÿÿÿëÐÎ&´& Ð ˜ÿÿÿêëÎ&´& Ð ­ÿÿ ÿíÕÎ&«& Æ ÂÿÿÿéãÎ&´& Ð ×ÿÿ ÿçßÎ&½& Ú ìÿÿÿíÕÎ&´& Ð ÿÿ ÿíÕÎ&½& Ú ÿÿ ÿëÐÎ&½& Ú +ÿÿ ÿíÐÎ&½& Ú @ÿÿ ÿìÐÎ&½& Ú Uÿÿ ÿìéÎ&½& Ú jÿÿ ÿîÔÎ&½& Ú ÿÿ ÿíÕÎ&½& Ú ”ÿÿ ÿèÛÎ&½& Ú ©ÿÿÿïÐÎ&´& Ð ¾ÿÿÿîÐÎ&´& Ð Óÿÿ ÿêéÎ&½& Ú èÿÿÿêãÎ&´& ä ýÿÿÿìéÎ&´& Ð ÿÿÿêÔÎ&´& ä 'ÿÿÿëâÎ&´& Ð <ÿÿ ÿëáÎ&½& Ú QÿÿÿëÐÎ&´& Ð fÿÿ ÿíÕÎ&½& Ú {ÿÿÿðØÎ&´& Ð ÿÿ ÿçÜÎ&½& Ú ¥ÿÿÿëÐÎ&  íÿÿÿëÐÎ&²&  ƒÿÿÿëÐÎ&²&  ˜ÿÿÿêëÎ&²&  ­ÿÿÿíÕÎ&©& ÷ ÂÿÿÿéãÎ&²&  ×ÿÿÿçßÎ&»&  ìÿÿÿíÕÎ&²&  ÿÿÿíÕÎ&»&  ÿÿÿëÐÎ&»&  +ÿÿÿíÐÎ&»&  @ÿÿÿìÐÎ&»&  UÿÿÿìéÎ&»&  jÿÿÿîÔÎ&»&  ÿÿÿíÕÎ&»&  ”ÿÿÿèÛÎ&»&  ©ÿÿÿïÐÎ&²&  ¾ÿÿÿîÐÎ&²&  ÓÿÿÿêéÎ&»&  èÿÿÿêãÎ&²&  ýÿÿÿìéÎ&²&  ÿÿÿêÔÎ&²&  'ÿÿÿëâÎ&²&  <ÿÿÿëáÎ&»&  QÿÿÿëÐÎ&²&  fÿÿÿíÕÎ&»&  {ÿÿÿðØÎ&²&  ÿÿÿçÜÎ&»&  ¥ÿÿ ëÉ&ž ÿÿÿëëÏ&°& 3 {ÿÿÿëëÏ&°& 3 ÿÿÿêëÏ&°& 3 ¥ÿÿÿðëÏ&§& ) ºÿÿÿéëÏ&°& 3 ÏÿÿÿçëÏ&¹& = äÿÿÿïëÏ&°& 3 ùÿÿÿíëÏ&¹& = ÿÿÿëëÏ&¹& = #ÿÿÿíëÏ&¹& = 8ÿÿÿðëÏ&¹& = MÿÿÿìëÏ&¹& = bÿÿÿíëÏ&¹& = wÿÿÿíëÏ&¹& = ŒÿÿÿçëÏ&¹& = ¡ÿÿÿïëÏ&°& 3 ¶ÿÿÿîëÏ&°& 3 ËÿÿÿèìÏ&¹& = àÿÿÿèëÏ&°& G õÿÿÿéëÏ&°& 3 ÿÿÿçëÏ&°& G ÿÿÿçëÏ&°& 3 4ÿÿÿçëÏ&¹& = IÿÿÿëëÏ&°& 3 ^ÿÿÿìëÏ&¹& = sÿÿÿíëÏ&°& 3 ˆÿÿÿçëÏ&¹& = ÿÿÿëëÏ&Ÿ MÿÿÿëëÏ&±& Y {ÿÿÿëëÏ&±& Y ÿÿÿêëÏ&±& Y ¥ÿÿÿðëÏ&¨& R ºÿÿÿéëÏ&±& Y ÏÿÿÿçëÏ&º& n äÿÿÿïëÏ&±& Y ùÿÿÿíëÏ&±& k ÿÿÿëëÏ&º& n #ÿÿÿíëÏ&º& n 8ÿÿÿðëÏ&º& n MÿÿÿìëÏ&º& n bÿÿÿíëÏ&º& n wÿÿÿíëÏ&º& n ŒÿÿÿçëÏ&º& n ¡ÿÿÿïëÏ&±& Y ¶ÿÿÿîëÏ&±& Y ËÿÿÿèìÏ&º& n àÿÿÿèëÏ&±& g õÿÿÿéëÏ&±& Y ÿÿÿçëÏ&±& Y ÿÿÿçëÏ&±& Y 4ÿÿÿçëÏ&º& ` IÿÿÿëëÏ&±& Y ^ÿÿÿìëÏ&º& n sÿÿÿíëÏ&±& Y ˆÿÿÿçëÏ&º& ` ÿÿÿëÐÎ&¡ uÿÿÿëÐÎ&³& ƒ …ÿÿÿëÐÎ&³& ƒ šÿÿÿêëÎ&³& ƒ ¯ÿÿÿíÕÎ&ª& | ÄÿÿÿéãÎ&³& ƒ ÙÿÿÿçßÎ&¼& ˜ îÿÿÿìÕÎ&³& ƒ ÿÿÿíÕÎ&¼& ˜ ÿÿÿëÐÎ&¼& ˜ -ÿÿÿíÐÎ&¼& ˜ BÿÿÿìÐÎ&¼& ˜ WÿÿÿìéÎ&¼& ˜ lÿÿÿîÔÎ&¼& ˜ ÿÿÿîÕÎ&¼& ˜ –ÿÿÿçÛÎ&¼& ˜ «ÿÿÿïÐÎ&³& ƒ ÀÿÿÿîÐÎ&³& ƒ ÕÿÿÿêéÎ&¼& ˜ êÿÿÿêäÎ&³& ‘ ÿÿÿÿìéÎ&³& ƒ ÿÿÿêÔÎ&³& ‘ )ÿÿÿêÞÎ&³& ƒ >ÿÿÿëÞÎ&¼& Š SÿÿÿëÐÎ&³& ƒ hÿÿÿíÕÎ&¼& ˜ }ÿÿÿðØÎ&³& ƒ ’ÿÿÿçÜÎ&¼& Š §ÿÿÿëÐÎ&£ Ÿÿÿ ÿëÐÎ&µ& ­ …ÿÿ ÿëÐÎ&µ& ­ šÿÿ ÿêëÎ&µ& ­ ¯ÿÿÿíÕÎ&¬& ¦ Äÿÿ ÿéãÎ&µ& ­ Ùÿÿ ÿçßÎ&¾&  îÿÿ ÿìÕÎ&µ& ­ ÿÿ ÿíÕÎ&¾&  ÿÿ ÿëÐÎ&¾&  -ÿÿ ÿíÐÎ&¾&  Bÿÿ ÿìÐÎ&¾&  Wÿÿ ÿìéÎ&¾&  lÿÿ ÿîÔÎ&¾&  ÿÿ ÿîÕÎ&¾&  –ÿÿ ÿçÛÎ&¾&  «ÿÿ ÿïÐÎ&µ& ­ Àÿÿ ÿîÐÎ&µ& ­ Õÿÿ ÿêéÎ&¾&  êÿÿ ÿêäÎ&µ& » ÿÿÿ ÿìéÎ&µ& ­ ÿÿ ÿêÔÎ&µ& » )ÿÿ ÿêÞÎ&µ& ­ >ÿÿ ÿëÞÎ&¾& ´ Sÿÿ ÿëÐÎ&µ& ­ hÿÿ ÿíÕÎ&¾&  }ÿÿ ÿðØÎ&µ& ­ ’ÿÿ ÿçÜÎ&¾& ´ §ÿÿÿëÑÎ&¡ ÉÿÿÿëÐÎ&³& × „ÿÿÿëÐÎ&³& × ™ÿÿÿêëÎ&³& × ®ÿÿÿíÕÎ&ª& Ð ÃÿÿÿéãÎ&³& × ØÿÿÿçßÎ&¼& ì íÿÿÿìÕÎ&³& × ÿÿÿíÕÎ&¼& ì ÿÿÿëÐÎ&¼& ì ,ÿÿÿíÐÎ&¼& ì AÿÿÿìÐÎ&¼& ì VÿÿÿìéÎ&¼& ì kÿÿÿîÔÎ&¼& ì €ÿÿÿîÕÎ&¼& ì •ÿÿÿèÛÎ&¼& ì ªÿÿÿïÐÎ&³& × ¿ÿÿÿîÐÎ&³& × ÔÿÿÿêéÎ&¼& ì éÿÿÿêãÎ&³& å þÿÿÿìéÎ&³& × ÿÿÿêÔÎ&³& å (ÿÿÿêÞÎ&³& × =ÿÿÿëÞÎ&¼& Þ RÿÿÿëÐÎ&³& × gÿÿÿíÕÎ&¼& ì |ÿÿÿðØÎ&³& × ‘ÿÿÿç×Î&¼& Þ ¦ÿÿÿíëÏ&Ÿ óÿÿÿëëÏ&±&  {ÿÿÿëëÏ&±&  ÿÿÿêëÏ&±&  ¥ÿÿÿðëÏ&¨& ú ºÿÿÿéëÏ&±&  ÏÿÿÿçëÏ&º&  äÿÿÿïëÏ&±&  ùÿÿÿíëÏ&º&  ÿÿÿëëÏ&º&  #ÿÿÿíëÏ&º&  8ÿÿÿðëÏ&º&  MÿÿÿìëÏ&º&  bÿÿÿíëÏ&º&  wÿÿÿíëÏ&º&  ŒÿÿÿçëÏ&º&  ¡ÿÿÿïëÏ&±&  ¶ÿÿÿîëÏ&±&  ËÿÿÿèìÏ&º&  àÿÿÿèëÏ&±&  õÿÿÿéëÏ&±&  ÿÿÿçëÏ&±&  ÿÿÿçëÏ&±&  4ÿÿÿçëÏ&º&  IÿÿÿëëÏ&±&  ^ÿÿÿìëÏ&º&  sÿÿÿíëÏ&±&  ˆÿÿÿçëÏ&º&  ÿÿ ëÉ&ž ÿÿÿëëÏ&°& * {ÿÿÿëëÏ&°& * ÿÿÿêëÏ&°& * ¥ÿÿÿðëÏ&§& # ºÿÿÿéëÏ&°& * ÏÿÿÿçëÏ&¹& ? äÿÿÿïëÏ&°& * ùÿÿÿíëÏ&¹& ? ÿÿÿëëÏ&¹& ? #ÿÿÿíëÏ&¹& ? 8ÿÿÿðëÏ&¹& ? MÿÿÿìëÏ&¹& ? bÿÿÿíëÏ&¹& ? wÿÿÿíëÏ&¹& ? ŒÿÿÿçëÏ&¹& ? ¡ÿÿÿïëÏ&°& * ¶ÿÿÿîëÏ&°& * ËÿÿÿèìÏ&¹& ? àÿÿÿèëÏ&°& 8 õÿÿÿéëÏ&°& * ÿÿÿçëÏ&°& 8 ÿÿÿçëÏ&°& * 4ÿÿÿçëÏ&¹& 1 IÿÿÿëëÏ&°& * ^ÿÿÿìëÏ&¹& ? sÿÿÿíëÏ&°& * ˆÿÿÿçëÏ&¹& 1 ÿÿÿëÐÎ&  EÿÿÿëÐÎ&²& S ƒÿÿÿëÐÎ&²& S ˜ÿÿÿêëÎ&²& S ­ÿÿÿíÕÎ&©& L ÂÿÿÿéãÎ&²& S ×ÿÿÿçßÎ&»& h ìÿÿÿíÕÎ&²& S ÿÿÿíÕÎ&»& h ÿÿÿëÐÎ&»& h +ÿÿÿíÐÎ&»& h @ÿÿÿìÐÎ&»& h UÿÿÿìéÎ&»& h jÿÿÿîÔÎ&»& h ÿÿÿíÕÎ&»& h ”ÿÿÿèÛÎ&»& h ©ÿÿÿïÐÎ&²& S ¾ÿÿÿîÐÎ&²& S ÓÿÿÿêéÎ&»& h èÿÿÿêãÎ&²& a ýÿÿÿìéÎ&²& S ÿÿÿêÔÎ&²& a 'ÿÿÿëâÎ&²& S <ÿÿÿëáÎ&»& Z QÿÿÿëÐÎ&²& S fÿÿÿíÕÎ&»& h {ÿÿÿðØÎ&²& S ÿÿÿçÜÎ&»& Z ¥ÿÿÿëÐÎ&› iÿÿÿëÐÎ& o&­ xÿÿÿëÐÎ&­& o ŽÿÿÿèìÎ&­& o £ÿÿÿðÕÎ& l& ¸¤ÿÿÿéãÎ&­& o ÍÿÿÿçßÎ&¶& u âÿÿÿïÕÎ&­& o ÷ÿÿÿíÕÎ&­&  uÿÿÿëÐÎ&¶& u !ÿÿÿíÐÎ&¶& u 6ÿÿÿíÐÎ&¶& u KÿÿÿìéÎ&¶& u `ÿÿÿíÔÎ&¶& u uÿÿÿíÕÎ&¶& u ŠÿÿÿçÛÎ&¶& u ŸÿÿÿïÐÎ& u&­ ³ÿÿÿîÐÎ&­& o ÉÿÿÿèìÎ&¶& u ÞÿÿÿèãÎ&­& r óÿÿÿééÎ&­& o ÿÿÿçÔÎ&­& r !ÿÿÿçÞÎ&­& o 2ÿÿÿçÞÎ&¶& o GÿÿÿëÐÎ&­& o \ÿÿÿìÕÎ&¶& u qÿÿÿíØÎ&­& o †ÿÿÿçÖÎ&¶& o ›ÿÿÿëöÎ&¿UÿÿÿëõÎ&Ô&[ xÿÿÿëõÎ&Ô&[ ÿÿÿèõÎ&Ô&[ ¢ÿÿÿðöÎ&Ê&X ·ÿÿÿêõÎ&Ô&[ ÌÿÿÿçõÎ&ß&a áÿÿÿïõÎ&Ô&[ öÿÿÿíõÎ&ß&a ÿÿÿëõÎ&ß&a ÿÿÿíõÎ&ß&a 5ÿÿÿíõÎ&ß&a JÿÿÿìõÎ&ß&a _ÿÿÿíõÎ&ß&a tÿÿÿíõÎ&ß&a ‰ÿÿÿçõÎ&ß&a žÿÿÿïõÎ&Ô&[ ³ÿÿÿîõÎ&Ô&[ ÈÿÿÿèõÎ&ß&a ÝÿÿÿèöÎ&Ô&^ òÿÿÿéõÎ&Ô&[ ÿÿÿçöÎ&Ô&^ ÿÿÿçõÎ&Ô&[ 1ÿÿÿçõÎ&ß&[ FÿÿÿëõÎ&Ô&[ [ÿÿÿìõÎ&ß&a pÿÿÿíõÎ&Ô&[ …ÿÿÿçõÎ&ß&[ šÿÿ ÿëÐÎ&Ádÿÿ ÿëÐÎ&Ö&j zÿÿ ÿëÐÎ&Ö&j ÿÿ ÿèìÎ&Ö&j ¤ÿÿ ÿðÕÎ&Ì&g ¹ÿÿ ÿéãÎ&Ö&j Îÿÿ ÿçßÎ&á&p ãÿÿ ÿïÕÎ&Ö&j øÿÿ ÿíÕÎ&á&p ÿÿ ÿëÐÎ&á&p "ÿÿ ÿíÐÎ&á&p 7ÿÿ ÿíÐÎ&á&p Lÿÿ ÿìéÎ&á&p aÿÿ ÿíÔÎ&á&p vÿÿ ÿíÕÎ&á&p ‹ÿÿ ÿçÛÎ&á&p  ÿÿ ÿïÐÎ&Ö&j µÿÿ ÿîÐÎ&Ö&j Êÿÿ ÿèìÎ&á&p ßÿÿ ÿèàÎ&Ö&m ôÿÿ ÿééÎ&Ö&j ÿÿ ÿçÔÎ&Ö&m ÿÿ ÿçÞÎ&Ö&j 3ÿÿ ÿçÞÎ&á&j Hÿÿ ÿëÐÎ&Ö&j ]ÿÿ ÿìÕÎ&á&p rÿÿ ÿíØÎ&Ö&j ‡ÿÿ ÿçÜÎ&á&j œÿÿÿëöÎ&¿sÿÿÿëöÎ&Ô&y xÿÿÿëöÎ&Ô&y ÿÿÿèöÎ&Ô&y ¢ÿÿÿðöÎ&Ê&v ·ÿÿÿêöÎ&Ô&y ÌÿÿÿçöÎ&ß& áÿÿÿïöÎ&Ô&y öÿÿÿíöÎ&ß& ÿÿÿëöÎ&ß& ÿÿÿíöÎ&ß& 5ÿÿÿíöÎ&ß& JÿÿÿìöÎ&ß& _ÿÿÿíöÎ&ß& tÿÿÿíöÎ&ß& ‰ÿÿÿçöÎ&ß& žÿÿÿïöÎ&Ô&y ³ÿÿÿîöÎ&Ô&y ÈÿÿÿèöÎ&ß& ÝÿÿÿèöÎ&Ô&| òÿÿÿéöÎ&Ô&y ÿÿÿçöÎ&Ô&| ÿÿÿçöÎ&Ô&y 1ÿÿÿçöÎ&ß&y FÿÿÿëöÎ&Ô&y [ÿÿÿìöÎ&ß& pÿÿÿíöÎ&Ô&y …ÿÿÿçöÎ&ß&y šÿÿ ÿëÐÎ&Á‚ÿÿ ÿëÐÎ&Ö&ˆ zÿÿ ÿëÐÎ&Ö&ˆ ÿÿ ÿèìÎ&Ö&ˆ ¤ÿÿ ÿðÕÎ&Ì&… ¹ÿÿ ÿéãÎ&Ö&ˆ Îÿÿ ÿçßÎ&á&Ž ãÿÿ ÿïÕÎ&Ö&ˆ øÿÿ ÿíÕÎ&á&Ž ÿÿ ÿëÐÎ&á&Ž "ÿÿ ÿíÐÎ&á&Ž 7ÿÿ ÿíÐÎ&á&Ž Lÿÿ ÿìéÎ&á&Ž aÿÿ ÿíÔÎ&á&Ž vÿÿ ÿíÕÎ&á&Ž ‹ÿÿ ÿçÛÎ&á&Ž  ÿÿ ÿïÐÎ&Ö&ˆ µÿÿ ÿîÐÎ&Ö&ˆ Êÿÿ ÿèìÎ&á&Ž ßÿÿ ÿèàÎ&Ö&‹ ôÿÿ ÿééÎ&Ö&ˆ ÿÿ ÿçÔÎ&Ö&‹ ÿÿ ÿçÞÎ&Ö&ˆ 3ÿÿ ÿçÞÎ&á&ˆ Hÿÿ ÿëÐÎ&Ö&ˆ ]ÿÿ ÿìÕÎ&á&Ž rÿÿ ÿíØÎ&Ö&ˆ ‡ÿÿ ÿçÜÎ&á&ˆ œÿÿ ÿëÐÎ&À‘ÿÿ ÿëÐÎ&Õ&¤ yÿÿ ÿëÐÎ&Õ&¤ Žÿÿ ÿèìÎ&Õ&¤ £ÿÿ ÿðÕÎ&Ë&› ¸ÿÿ ÿéãÎ&Õ&¤ Íÿÿ ÿçßÎ&à&® âÿÿ ÿïÕÎ&Õ&¤ ÷ÿÿ ÿíÕÎ&à&® ÿÿ ÿëÐÎ&à&® !ÿÿ ÿíÐÎ&à&® 6ÿÿ ÿíÐÎ&à&® Kÿÿ ÿìéÎ&à&® `ÿÿ ÿíÔÎ&à&® uÿÿ ÿíÕÎ&à&® Šÿÿ ÿçÛÎ&à&® Ÿÿÿ ÿïÐÎ&Õ&¤ ´ÿÿ ÿîÐÎ&Õ&¤ Éÿÿ ÿèìÎ&à&® Þÿÿ ÿèãÎ&Õ&¸ óÿÿ ÿééÎ&Õ&¤ ÿÿ ÿçÔÎ&Õ&¸ ÿÿ ÿçÞÎ&Õ&¤ 2ÿÿ ÿçÞÎ&à&® Gÿÿ ÿëÐÎ&Õ&¤ \ÿÿ ÿìÕÎ&à&® qÿÿ ÿíØÎ&Õ&¤ †ÿÿ ÿçÖÎ&à&® ›ÿÿ ÿëÐÎ&ÂÁÿÿ ÿëÐÎ&Ö&Ô zÿÿ ÿëÐÎ&Ö&Ô ÿÿ ÿèìÎ&Ö&Ô ¤ÿÿ ÿðÕÎ&Ì&Ê ¹ÿÿ ÿéãÎ&Ö&Ô Îÿÿ ÿçßÎ&á&Þ ãÿÿ ÿïÕÎ&Ö&Ô øÿÿ ÿíÕÎ&á&Þ ÿÿ ÿëÐÎ&á&Þ "ÿÿ ÿíÐÎ&á&Þ 7ÿÿ ÿíÐÎ&á&Þ Lÿÿ ÿìéÎ&á&Þ aÿÿ ÿíÔÎ&á&Þ vÿÿ ÿíÕÎ&á&Þ ‹ÿÿ ÿçÛÎ&á&Þ  ÿÿ ÿïÐÎ&Ö&Ô µÿÿ ÿîÐÎ&Ö&Ô Êÿÿ ÿèìÎ&á&Þ ßÿÿ ÿèàÎ&Ö&è ôÿÿ ÿééÎ&Ö&Ô ÿÿ ÿçÔÎ&Ö&è ÿÿ ÿçÞÎ&Ö&Ô 3ÿÿ ÿçÞÎ&á&Þ Hÿÿ ÿëÐÎ&Ö&Ô ]ÿÿ ÿìÕÎ&á&Þ rÿÿ ÿíØÎ&Ö&Ô ‡ÿÿ ÿçÜÎ&á&Þ œÿÿ ÿëÐÎ&Àòÿÿ ÿëÐÎ&Õ&  yÿÿ ÿëÐÎ&Õ&  Žÿÿ ÿèìÎ&Õ&  £ÿÿ ÿðÕÎ&Ë&ü ¸ÿÿ ÿéãÎ&Õ&  Íÿÿ ÿçßÎ&à&  âÿÿ ÿïÕÎ&Õ&  ÷ÿÿ ÿíÕÎ&à&  ÿÿ ÿëÐÎ&à&  !ÿÿ ÿíÐÎ&à&  6ÿÿ ÿíÐÎ&à&  Kÿÿ ÿìéÎ&à&  `ÿÿ ÿíÔÎ&à&  uÿÿ ÿíÕÎ&à&  Šÿÿ ÿçÛÎ&à&  Ÿÿÿ ÿïÐÎ&Õ&  ´ÿÿ ÿîÐÎ&Õ&  Éÿÿ ÿèìÎ&à&  Þÿÿ ÿèãÎ&Õ&  óÿÿ ÿééÎ&Õ&  ÿÿ ÿçÔÎ&Õ&  ÿÿ ÿçÞÎ&Õ&  2ÿÿ ÿçÞÎ&à&  Gÿÿ ÿëÐÎ&Õ&  \ÿÿ ÿìÕÎ&à&  qÿÿ ÿíØÎ&Õ&  †ÿÿ ÿçÖÎ&à&  ›ÿÿ ÿëÐÎ&Á !ÿÿ ÿëÐÎ&Ö& 5 zÿÿ ÿëÐÎ&Ö& 5 ÿÿ ÿèìÎ&Ö& 5 ¤ÿÿ ÿðÕÎ&Ì& + ¹ÿÿ ÿéãÎ&Ö& 5 Îÿÿ ÿçßÎ&á& ? ãÿÿ ÿïÕÎ&Ö& 5 øÿÿ ÿíÕÎ&á& ? ÿÿ ÿëÐÎ&á& ? "ÿÿ ÿíÐÎ&á& ? 7ÿÿ ÿíÐÎ&á& ? Lÿÿ ÿìéÎ&á& ? aÿÿ ÿíÔÎ&á& ? vÿÿ ÿíÕÎ&á& ? ‹ÿÿ ÿçÛÎ&á& ?  ÿÿ ÿïÐÎ&Ö& 5 µÿÿ ÿîÐÎ&Ö& 5 Êÿÿ ÿèìÎ&á& ? ßÿÿ ÿèàÎ&Ö& I ôÿÿ ÿééÎ&Ö& 5 ÿÿ ÿçÔÎ&Ö& I ÿÿ ÿçÞÎ&Ö& 5 3ÿÿ ÿçÞÎ&á& ? Hÿÿ ÿëÐÎ&Ö& 5 ]ÿÿ ÿìÕÎ&á& ? rÿÿ ÿíØÎ&Ö& 5 ‡ÿÿ ÿçÜÎ&á& ? œÿÿ ê½& SÿÿÿëêÉ&×& l {ÿÿÿëêÉ&×& l ÿÿÿêêÉ&×& l ¥ÿÿÿðêÉ&Í& b ºÿÿÿéêÉ&×& l ÏÿÿÿçêÉ&â& v äÿÿÿïêÉ&×& l ùÿÿÿíêÉ&â& v ÿÿÿëêÉ&â& v #ÿÿÿíêÉ&â& v 8ÿÿÿðêÉ&â& v MÿÿÿìêÉ&â& v bÿÿÿíêÉ&â& v wÿÿÿíêÉ&â& v ŒÿÿÿçêÉ&â& v ¡ÿÿÿïêÉ&×& l ¶ÿÿÿîêÉ&×& l ËÿÿÿèìÉ&â& v àÿÿÿèêÉ&×&  õÿÿÿéêÉ&×& l ÿÿÿçêÉ&×&  ÿÿÿçêÉ&×& l 4ÿÿÿçêÉ&â& v IÿÿÿëêÉ&×& l ^ÿÿÿìêÉ&â& v sÿÿÿíêÉ&×& l ˆÿÿÿçêÉ&â& v ÿÿÿëöÎ&Ä ‰ÿÿÿëöÎ&Ù&  |ÿÿÿëöÎ&Ù&  ‘ÿÿÿêöÎ&Ù&  ¦ÿÿÿðöÎ&Ï& “ »ÿÿÿêöÎ&Ù&  ÐÿÿÿçöÎ&ä& § åÿÿÿïöÎ&Ù&  úÿÿÿíöÎ&ä& § ÿÿÿëöÎ&ä& § $ÿÿÿíöÎ&ä& § 9ÿÿÿíöÎ&ä& § NÿÿÿìöÎ&ä& § cÿÿÿîöÎ&ä& § xÿÿÿíöÎ&ä& § ÿÿÿçöÎ&ä& § ¢ÿÿÿïöÎ&Ù&  ·ÿÿÿîöÎ&Ù&  ÌÿÿÿèöÎ&ä& § áÿÿÿèöÎ&Ù& ± öÿÿÿéöÎ&Ù&  ÿÿÿçöÎ&Ù& ± ÿÿÿçöÎ&Ù&  5ÿÿÿçöÎ&ä& § JÿÿÿëöÎ&Ù&  _ÿÿÿìöÎ&ä& § tÿÿÿíöÎ&Ù&  ‰ÿÿÿçöÎ&ä& § žÿÿÿëÐÎ&Æ »ÿÿÿëÐÎ&Û& Ï |ÿÿÿëÐÎ&Û& Ï ‘ÿÿÿêëÎ&Û& Ï ¦ÿÿÿðÕÎ&Ñ& Å »ÿÿÿêãÎ&Û& Ï ÐÿÿÿçßÎ&æ& Ù åÿÿÿïÕÎ&Û& Ï úÿÿÿíÕÎ&æ& Ù ÿÿÿëÐÎ&æ& Ù $ÿÿÿíÐÎ&æ& Ù 9ÿÿÿíÐÎ&æ& Ù NÿÿÿìéÎ&æ& Ù cÿÿÿîÔÎ&æ& Ù xÿÿÿíÕÎ&æ& Ù ÿÿÿçÛÎ&æ& Ù ¢ÿÿÿïÐÎ&Û& Ï ·ÿÿÿîÐÎ&Û& Ï ÌÿÿÿèéÎ&æ& Ù áÿÿÿèãÎ&Û& ã öÿÿÿééÎ&Û& Ï ÿÿÿçÔÎ&Û& ã ÿÿÿçâÎ&Û& Ï 5ÿÿÿçâÎ&æ& Ù JÿÿÿëÐÎ&Û& Ï _ÿÿÿìÕÎ&æ& Ù tÿÿÿíØÎ&Û& Ï ‰ÿÿÿçÜÎ&æ& Ù žÿÿÿëÐÎ&Ä ìÿÿÿëÐÎ&Ù&  |ÿÿÿëÐÎ&Ù&  ‘ÿÿÿêëÎ&Ù&  ¦ÿÿÿðÕÎ&Ï& ö »ÿÿÿêãÎ&Ù&  ÐÿÿÿçßÎ&ä&  åÿÿÿïÕÎ&Ù&  úÿÿÿíÕÎ&ä&  ÿÿÿëÐÎ&ä&  $ÿÿÿíÐÎ&ä&  9ÿÿÿíÐÎ&ä&  NÿÿÿìéÎ&ä&  cÿÿÿîÔÎ&ä&  xÿÿÿíÕÎ&ä&  ÿÿÿçÛÎ&ä&  ¢ÿÿÿïÐÎ&Ù&  ·ÿÿÿîÐÎ&Ù&  ÌÿÿÿèéÎ&ä&  áÿÿÿèãÎ&Ù&  öÿÿÿééÎ&Ù&  ÿÿÿçÔÎ&Ù&  ÿÿÿçâÎ&Ù&  5ÿÿÿçâÎ&ä&  JÿÿÿëÐÎ&Ù&  _ÿÿÿìÕÎ&ä&  tÿÿÿíØÎ&Ù&  ‰ÿÿÿçÜÎ&ä&  žÿÿ ë½& ÿÿÿëëÉ&×& 2 {ÿÿÿëëÉ&×& 2 ÿÿÿêëÉ&×& 2 ¥ÿÿÿðëÉ&Í& ( ºÿÿÿéëÉ&×& 2 ÏÿÿÿçëÉ&â& < äÿÿÿïëÉ&×& 2 ùÿÿÿíëÉ&â& < ÿÿÿëëÉ&â& < #ÿÿÿíëÉ&â& < 8ÿÿÿðëÉ&â& < MÿÿÿìëÉ&â& < bÿÿÿíëÉ&â& < wÿÿÿíëÉ&â& < ŒÿÿÿçëÉ&â& < ¡ÿÿÿïëÉ&×& 2 ¶ÿÿÿîëÉ&×& 2 ËÿÿÿèìÉ&â& < àÿÿÿèëÉ&×& F õÿÿÿéëÉ&×& 2 ÿÿÿçëÉ&×& F ÿÿÿçëÉ&×& 2 4ÿÿÿçëÉ&â& < IÿÿÿëëÉ&×& 2 ^ÿÿÿìëÉ&â& < sÿÿÿíëÉ&×& 2 ˆÿÿÿçëÉ&â& < ÿÿÿëëÉ&à HÿÿÿëëÉ&Ø& U {ÿÿÿëëÉ&Ø& U ÿÿÿêëÉ&Ø& U ¥ÿÿÿðëÉ&Î& P ºÿÿÿéëÉ&Ø& U ÏÿÿÿçëÉ&ã& j äÿÿÿïëÉ&Ø& U ùÿÿÿíëÉ&ã& j ÿÿÿëëÉ&ã& j #ÿÿÿíëÉ&ã& j 8ÿÿÿðëÉ&ã& j MÿÿÿìëÉ&ã& j bÿÿÿíëÉ&ã& j wÿÿÿíëÉ&ã& j ŒÿÿÿçëÉ&ã& j ¡ÿÿÿïëÉ&Ø& U ¶ÿÿÿîëÉ&Ø& U ËÿÿÿèìÉ&ã& j àÿÿÿèëÉ&Ø& c õÿÿÿéëÉ&Ø& U ÿÿÿçëÉ&Ø& U ÿÿÿçëÉ&Ø& U 4ÿÿÿçëÉ&ã& \ IÿÿÿëëÉ&Ø& U ^ÿÿÿìëÉ&ã& j sÿÿÿíëÉ&Ø& U ˆÿÿÿçëÉ&ã& \ ÿÿÿëÐÎ&Å qÿÿÿëÐÎ&Ú&  ~ÿÿÿëÐÎ&Ú&  “ÿÿÿêëÎ&Ú&  ¨ÿÿÿðÕÎ&Ð& x ½ÿÿÿéãÎ&Ú&  ÒÿÿÿçßÎ&å& ” çÿÿÿïÕÎ&Ú&  üÿÿÿíÕÎ&å& ” ÿÿÿëÐÎ&å& ” &ÿÿÿíÐÎ&å& ” ;ÿÿÿíÐÎ&å& ” PÿÿÿëéÎ&å& ” eÿÿÿîÔÎ&å& ” zÿÿÿíÖÎ&å& ” ÿÿÿçÛÎ&å& ” ¤ÿÿÿïÐÎ&Ú&  ¹ÿÿÿîÐÎ&Ú&  ÎÿÿÿêéÎ&å& ” ãÿÿÿèãÎ&Ú&  øÿÿÿçéÎ&Ú&  ÿÿÿçÔÎ&Ú&  "ÿÿÿçÞÎ&Ú&  7ÿÿÿíÞÎ&å& † LÿÿÿëÐÎ&Ú&  aÿÿÿìÕÎ&å& ” vÿÿÿíØÎ&Ú&  ‹ÿÿÿçÜÎ&å& †  ÿÿÿëÐÎ&Ç ›ÿÿÿëÐÎ&Ü& © ~ÿÿÿëÐÎ&Ü& © “ÿÿÿêëÎ&Ü& © ¨ÿÿÿðÕÎ&Ò& ¢ ½ÿÿÿéãÎ&Ü& © ÒÿÿÿçßÎ&ç& ¾ çÿÿÿïÕÎ&Ü& © üÿÿÿíÕÎ&ç& ¾ ÿÿÿëÐÎ&ç& ¾ &ÿÿÿíÐÎ&ç& ¾ ;ÿÿÿíÐÎ&ç& ¾ PÿÿÿëéÎ&ç& ¾ eÿÿÿîÔÎ&ç& ¾ zÿÿÿíÖÎ&ç& ¾ ÿÿÿçÛÎ&ç& ¾ ¤ÿÿÿïÐÎ&Ü& © ¹ÿÿÿîÐÎ&Ü& © ÎÿÿÿêéÎ&ç& ¾ ãÿÿÿèãÎ&Ü& · øÿÿÿçéÎ&Ü& © ÿÿÿçÔÎ&Ü& · "ÿÿÿçÞÎ&Ü& © 7ÿÿÿíÞÎ&ç& ° LÿÿÿëÐÎ&Ü& © aÿÿÿìÕÎ&ç& ¾ vÿÿÿíØÎ&Ü& © ‹ÿÿÿçÜÎ&ç& °  ÿÿÿëÐÎ& ÃÅÿÿÿëÐÎ&Ú& Ó }ÿÿÿëÐÎ&Ú& Ó ’ÿÿÿêëÎ&Ú& Ó §ÿÿÿðÕÎ&Ð& Ì ¼ÿÿÿéãÎ&Ú& Ó ÑÿÿÿçßÎ&å& è æÿÿÿïÕÎ&Ú& Ó ûÿÿÿíÕÎ&å& è ÿÿÿëÐÎ&å& è %ÿÿÿíÐÎ&å& è :ÿÿÿíÐÎ&å& è OÿÿÿëèÎ&å& è dÿÿÿîÔÎ&å& è yÿÿÿíÖÎ&å& è ŽÿÿÿçÛÎ&å& è £ÿÿÿïÐÎ&Ú& Ó ¸ÿÿÿîÐÎ&Ú& Ó ÍÿÿÿêéÎ&å& è âÿÿÿèãÎ&Ú& á ÷ÿÿÿçéÎ&Ú& Ó ÿÿÿçÔÎ&Ú& á !ÿÿÿçÞÎ&Ú& Ó 6ÿÿÿçÞÎ&å& Ú KÿÿÿëÐÎ&Ú& Ó `ÿÿÿìÕÎ&å& è uÿÿÿíØÎ&Ú& Ó ŠÿÿÿçÖÎ&å& Ú ŸÿÿÿíëÉ&à ïÿÿÿëëÉ&Ø& ý {ÿÿÿëëÉ&Ø& ý ÿÿÿêëÉ&Ø& ý ¥ÿÿÿðëÉ&Î& ö ºÿÿÿéëÉ&Ø& ý ÏÿÿÿçëÉ&ã&  äÿÿÿïëÉ&Ø& ý ùÿÿÿíëÉ&ã&  ÿÿÿëëÉ&ã&  #ÿÿÿíëÉ&ã&  8ÿÿÿðëÉ&ã&  MÿÿÿìëÉ&ã&  bÿÿÿíëÉ&ã&  wÿÿÿíëÉ&ã&  ŒÿÿÿçëÉ&ã&  ¡ÿÿÿïëÉ&Ø& ý ¶ÿÿÿîëÉ&Ø& ý ËÿÿÿèìÉ&ã&  àÿÿÿèëÉ&Ø&  õÿÿÿéëÉ&Ø& ý ÿÿÿçëÉ&Ø&  ÿÿÿçëÉ&Ø& ý 4ÿÿÿçëÉ&ã&  IÿÿÿëëÉ&Ø& ý ^ÿÿÿìëÉ&ã&  sÿÿÿíëÉ&Ø& ý ˆÿÿÿçëÉ&ã&  ÿÿ ë½&È ÿÿÿëëÉ&Ý& & {ÿÿÿëëÉ&Ý& & ÿÿÿêëÉ&Ý& & ¥ÿÿÿðëÉ& &&Ý ºÿÿÿéëÉ&Ý& & ÏÿÿÿçëÉ&è& ; äÿÿÿïëÉ&Ý& & ùÿÿÿíëÉ&è& ; ÿÿÿëëÉ&è& ; #ÿÿÿíëÉ&è& ; 8ÿÿÿðëÉ&è& ; MÿÿÿìëÉ&è& ; bÿÿÿíëÉ&è& ; wÿÿÿíëÉ&è& ; ŒÿÿÿçëÉ&è& ; ¡ÿÿÿïëÉ&Ý& & ¶ÿÿÿîëÉ&Ý& & ËÿÿÿèìÉ&è& ; àÿÿÿèëÉ&Ý& 4 õÿÿÿéëÉ&Ý& & ÿÿÿçëÉ&Ý& 4 ÿÿÿçëÉ&Ý& & 4ÿÿÿçëÉ&è& - IÿÿÿëëÉ&Ý& & ^ÿÿÿìëÉ&è& ; sÿÿÿíëÉ&Ý& & ˆÿÿÿçëÉ&è& - ÿÿÿëÐÎ&É BÿÿÿëÐÎ&Þ& O |ÿÿÿëÐÎ&Þ& O ‘ÿÿÿêëÎ&Þ& O ¦ÿÿÿðÕÎ&Ó& H »ÿÿÿêãÎ&Þ& O ÐÿÿÿçßÎ&é& d åÿÿÿïÕÎ&Þ& O úÿÿÿíÕÎ&é& d ÿÿÿëÐÎ&é& d $ÿÿÿíÐÎ&é& d 9ÿÿÿíÐÎ&é& d NÿÿÿìéÎ&é& d cÿÿÿîÔÎ&é& d xÿÿÿíÕÎ&é& d ÿÿÿçÛÎ&é& d ¢ÿÿÿïÐÎ&Þ& O ·ÿÿÿîÐÎ&Þ& O ÌÿÿÿèéÎ&é& d áÿÿÿèãÎ&Þ& ] öÿÿÿééÎ&Þ& O ÿÿÿçÔÎ&Þ& ] ÿÿÿçâÎ&Þ& O 5ÿÿÿçâÎ&é& V JÿÿÿëÐÎ&Þ& O _ÿÿÿìÕÎ&é& d tÿÿÿíØÎ&Þ& O ‰ÿÿÿçÜÎ&é& V žÿÿÿëÐÎ&¿ iÿÿÿëÐÎ&Ô& o yÿÿÿëÐÎ&Ô& o ŽÿÿÿèìÎ&Ô& o £ÿÿÿðÕÎ&Ê& l ¸ÿÿÿéãÎ&Ô& o ÍÿÿÿçßÎ&ß& u âÿÿÿïÕÎ&Ô& o ÷ÿÿÿíÕÎ&ß& u ÿÿÿëÐÎ&ß& u !ÿÿÿíÐÎ&ß& u 6ÿÿÿíÐÎ&ß& u KÿÿÿìéÎ&ß& u `ÿÿÿíÔÎ&ß& u uÿÿÿíÕÎ&ß& u ŠÿÿÿçÛÎ&ß& u ŸÿÿÿïÐÎ&Ô& o ´ÿÿÿîÐÎ&Ô& o ÉÿÿÿèìÎ&ß& u ÞÿÿÿèãÎ&Ô& r óÿÿÿééÎ&Ô& o ÿÿÿçÔÎ&Ô& r ÿÿÿçÞÎ&Ô& o 2ÿÿÿçÞÎ&ß& o GÿÿÿëÐÎ&Ô& o \ÿÿÿìÕÎ&ß& u qÿÿÿíØÎ&Ô& o †ÿÿÿçÖÎ&ß& o ›ÿÿÿëöÎ&UêÿÿÿëõÎ&ü&[ xÿÿÿëõÎ&ü&[ ÿÿÿèõÎ&ü&[ ¢ÿÿÿðöÎ&ó& ¸XÿÿÿêõÎ&ü&[ ÌÿÿÿçõÎ&&a áÿÿÿïõÎ&ü& ö[ÿÿÿíõÎ&[& ÿÿÿëõÎ&&a ÿÿÿíõÎ&&a 5ÿÿÿíõÎ&&a JÿÿÿìõÎ&&a _ÿÿÿíõÎ&&a tÿÿÿíõÎ&&a ‰ÿÿÿçõÎ&&a žÿÿÿïõÎ&ü&[ ³ÿÿÿîõÎ&ü&[ ÈÿÿÿèõÎ&&a ÝÿÿÿèöÎ&ü&^ òÿÿÿéõÎ&ü&[ ÿÿÿçöÎ&ü&^ ÿÿÿçõÎ&ü&[ 1ÿÿÿçõÎ&&[ FÿÿÿëõÎ&ü&[ [ÿÿÿìõÎ&&a pÿÿÿíõÎ&ü&[ …ÿÿÿçõÎ&&[ šÿÿÿëÐÎ&dìÿÿÿëÐÎ&þ&j zÿÿÿëÐÎ&þ&j ÿÿÿèìÎ&þ&j ¤ÿÿÿðÕÎ&õ&g ¹ÿÿÿéãÎ&þ&j ÎÿÿÿçßÎ&&p ãÿÿÿïÕÎ&þ&j øÿÿÿíÕÎ&&p ÿÿÿëÐÎ&&p "ÿÿÿíÐÎ&&p 7ÿÿÿíÐÎ&&p LÿÿÿìéÎ&&p aÿÿÿíÔÎ&&p vÿÿÿíÕÎ&&p ‹ÿÿÿçÛÎ&&p  ÿÿÿïÐÎ&þ&j µÿÿÿîÐÎ&þ&j ÊÿÿÿèìÎ&&p ßÿÿÿèàÎ&þ&m ôÿÿÿééÎ&þ&j ÿÿÿçÔÎ&þ&m ÿÿÿçÞÎ&þ&j 3ÿÿÿçÞÎ&&j HÿÿÿëÐÎ&þ&j ]ÿÿÿìÕÎ&&p rÿÿÿíØÎ&þ&j ‡ÿÿÿçÜÎ&&j œÿÿÿëöÎ&êsÿÿÿëöÎ&ü&y xÿÿÿëöÎ&ü&y ÿÿÿèöÎ&ü&y ¢ÿÿÿðöÎ&ó&v ·ÿÿÿêöÎ&ü&y ÌÿÿÿçöÎ&& áÿÿÿïöÎ&ü&y öÿÿÿíöÎ&& ÿÿÿëöÎ&& ÿÿÿíöÎ&& 5ÿÿÿíöÎ&& JÿÿÿìöÎ&& _ÿÿÿíöÎ&& tÿÿÿíöÎ&& ‰ÿÿÿçöÎ&& žÿÿÿïöÎ&ü&y ³ÿÿÿîöÎ&ü&y ÈÿÿÿèöÎ&& ÝÿÿÿèöÎ&ü&| òÿÿÿéöÎ&ü&y ÿÿÿçöÎ&ü&| ÿÿÿçöÎ&ü&y 1ÿÿÿçöÎ&&y FÿÿÿëöÎ&ü&y [ÿÿÿìöÎ&& pÿÿÿíöÎ&ü&y …ÿÿÿçöÎ&&y šÿÿÿëÐÎ&ì‚ÿÿÿëÐÎ&þ&ˆ zÿÿÿëÐÎ&þ&ˆ ÿÿÿèìÎ&þ&ˆ ¤ÿÿÿðÕÎ&õ&… ¹ÿÿÿéãÎ&þ&ˆ ÎÿÿÿçßÎ&&Ž ãÿÿÿïÕÎ&þ&ˆ øÿÿÿíÕÎ&&Ž ÿÿÿëÐÎ&&Ž "ÿÿÿíÐÎ&&Ž 7ÿÿÿíÐÎ&&Ž LÿÿÿìéÎ&&Ž aÿÿÿíÔÎ&&Ž vÿÿÿíÕÎ&&Ž ‹ÿÿÿçÛÎ&&Ž  ÿÿÿïÐÎ&þ&ˆ µÿÿÿîÐÎ&þ&ˆ ÊÿÿÿèìÎ&&Ž ßÿÿÿèàÎ&þ&‹ ôÿÿÿééÎ&þ&ˆ ÿÿÿçÔÎ&þ&‹ ÿÿÿçÞÎ&þ&ˆ 3ÿÿÿçÞÎ&&ˆ HÿÿÿëÐÎ&þ&ˆ ]ÿÿÿìÕÎ&&Ž rÿÿÿíØÎ&þ&ˆ ‡ÿÿÿçÜÎ&&ˆ œÿÿÿëÐÎ&ë‘ÿÿÿëÐÎ&¬&ý yÿÿÿëÐÎ&ý&¬ ŽÿÿÿèìÎ&ý&¬ £ÿÿÿðÕÎ&ô&¢ ¸ÿÿÿéãÎ&ý&¬ ÍÿÿÿçßÎ&&¶ âÿÿÿïÕÎ&ý&¬ ÷ÿÿÿíÕÎ&&¶ ÿÿÿëÐÎ&&¶ !ÿÿÿíÐÎ&&¶ 6ÿÿÿíÐÎ&&¶ KÿÿÿìéÎ&&¶ `ÿÿÿíÔÎ&&¶ uÿÿÿíÕÎ&&¶ ŠÿÿÿçÛÎ&&¶ ŸÿÿÿïÐÎ&ý&¬ ´ÿÿÿîÐÎ&ý&¬ ÉÿÿÿèìÎ&&¶ ÞÿÿÿèãÎ&ý&À óÿÿÿééÎ&ý&¬ ÿÿÿçÔÎ&ý&À ÿÿÿçÞÎ&ý&¬ 2ÿÿÿçÞÎ&&¶ GÿÿÿëÐÎ&ý&¬ \ÿÿÿìÕÎ&&¶ qÿÿÿíØÎ&ý&¬ †ÿÿÿçÖÎ&&¶ ›ÿÿÿëÐÎ&ìÉÿÿÿëÐÎ&þ&Ü zÿÿÿëÐÎ&þ&Ü ÿÿÿèìÎ&þ&Ü ¤ÿÿÿðÕÎ&õ&Ò ¹ÿÿÿéãÎ&þ&Ü ÎÿÿÿçßÎ&&æ ãÿÿÿïÕÎ&þ&Ü øÿÿÿíÕÎ&ã& ÿÿÿëÐÎ&&æ "ÿÿÿíÐÎ&&æ 7ÿÿÿíÐÎ&&æ LÿÿÿìéÎ&&æ aÿÿÿíÔÎ&&æ vÿÿÿíÕÎ&&æ ‹ÿÿÿçÛÎ&&æ  ÿÿÿïÐÎ&þ&Ü µÿÿÿîÐÎ&þ&Ü ÊÿÿÿèìÎ&&æ ßÿÿÿèàÎ&þ&ð ôÿÿÿééÎ&þ&Ü ÿÿÿçÔÎ&þ&ð ÿÿÿçÞÎ&þ&Ü 3ÿÿÿçÞÎ&&æ HÿÿÿëÐÎ&þ&Ü ]ÿÿÿìÕÎ&&æ rÿÿÿíØÎ&þ&Ü ‡ÿÿÿçÜÎ&&æ œÿÿÿëÐÎ&ëúÿÿÿëÐÎ&ý&  yÿÿÿëÐÎ&ý&  ŽÿÿÿèìÎ&ý&  £ÿÿÿðÕÎ&ô&  ¸ÿÿÿéãÎ&ý&  ÍÿÿÿçßÎ&&  âÿÿÿïÕÎ&ý&  ÷ÿÿÿíÕÎ&&  ÿÿÿëÐÎ&&  !ÿÿÿíÐÎ&&  6ÿÿÿíÐÎ&&  KÿÿÿìéÎ&&  `ÿÿÿíÔÎ&&  uÿÿÿíÕÎ&&  ŠÿÿÿçÛÎ&&  ŸÿÿÿïÐÎ&ý&  ´ÿÿÿîÐÎ&ý&  ÉÿÿÿèìÎ&&  ÞÿÿÿèãÎ&ý&  óÿÿÿééÎ&ý&  ÿÿÿçÔÎ&ý&  ÿÿÿçÞÎ&ý&  2ÿÿÿçÞÎ&&  GÿÿÿëÐÎ&ý&  \ÿÿÿìÕÎ&&  qÿÿÿíØÎ&ý&  †ÿÿÿçÖÎ&&  ›ÿÿÿëÐÎ&ì )ÿÿÿëÐÎ&þ& = zÿÿÿëÐÎ&þ& = ÿÿÿèìÎ&þ& = ¤ÿÿÿðÕÎ&õ& 3 ¹ÿÿÿéãÎ&þ& = ÎÿÿÿçßÎ&& G ãÿÿÿïÕÎ&þ& = øÿÿÿíÕÎ&& G ÿÿÿëÐÎ&& G "ÿÿÿíÐÎ&& G 7ÿÿÿíÐÎ&& G LÿÿÿìéÎ&& G aÿÿÿíÔÎ&& G vÿÿÿíÕÎ&& G ‹ÿÿÿçÛÎ&& G  ÿÿÿïÐÎ&þ& = µÿÿÿîÐÎ&þ& = ÊÿÿÿèìÎ&& G ßÿÿÿèàÎ&þ& Q ôÿÿÿééÎ&þ& = ÿÿÿçÔÎ&þ& Q ÿÿÿçÞÎ&þ& = 3ÿÿÿçÞÎ&& G HÿÿÿëÐÎ&þ& = ]ÿÿÿìÕÎ&& G rÿÿÿíØÎ&þ& = ‡ÿÿÿçÜÎ&& G œÿÿ ê¿&í WÿÿÿëêÉ&ÿ& m {ÿÿÿëêÉ&ÿ& m ÿÿÿêêÉ&ÿ& m ¥ÿÿÿðêÉ&ö& c ºÿÿÿéêÉ&ÿ& m ÏÿÿÿçêÌ&& w äÿÿÿïêÉ&ÿ& m ùÿÿÿíêÌ&& w ÿÿÿëêÌ&& w #ÿÿÿíêÌ&& w 8ÿÿÿðêÌ&& w MÿÿÿìêÌ&& w bÿÿÿíêÌ&& w wÿÿÿíêÌ&& w ŒÿÿÿçêÌ&& w ¡ÿÿÿïêÉ&ÿ& m ¶ÿÿÿîêÉ&ÿ& m ËÿÿÿèìÌ&& w àÿÿÿèêÉ&ÿ& € õÿÿÿéêÉ&ÿ& m ÿÿÿçêÉ& &ÿ €ÿÿÿçêÉ&ÿ& m 4ÿÿÿçêÌ&& w IÿÿÿëêÉ&ÿ& m ^ÿÿÿìêÌ&& w sÿÿÿíêÉ&ÿ& m ˆÿÿÿçêÌ&& w ÿÿÿëöÎ&ï ŠÿÿÿëöÎ&& ž ƒÿÿÿëöÎ&& ž ˜ÿÿÿêöÎ&& ž ­ÿÿÿíöÎ&ø& ” ÂÿÿÿéöÎ&& ž ×ÿÿÿçöÎ& & ¨ ìÿÿÿíöÎ&& ž ÿÿÿíöÎ& & ¨ ÿÿÿëöÎ& & ¨ +ÿÿÿíöÎ& & ¨ @ÿÿÿìöÎ& & ¨ UÿÿÿìöÎ& & ¨ jÿÿÿîöÎ& & ¨ ÿÿÿíöÎ& & ¨ ”ÿÿÿèöÎ& & ¨ ©ÿÿÿïöÎ&& ž ¾ÿÿÿîöÎ&& ž ÓÿÿÿêöÎ& & ¨ èÿÿÿêöÎ&& ² ýÿÿÿìöÎ&& ž ÿÿÿêöÎ&& ² 'ÿÿÿëöÎ&& ž <ÿÿÿëöÎ& & ¨ QÿÿÿëöÎ&& ž fÿÿÿíöÎ& & ¨ {ÿÿÿðöÎ&& ž ÿÿÿçöÎ& & ¨ ¥ÿÿÿëÐÎ&ñ ¼ÿÿÿëÐÎ&& Ð ƒÿÿÿëÐÎ&& Ð ˜ÿÿÿêëÎ&& Ð ­ÿÿÿíÕÎ&ú& Æ ÂÿÿÿéãÎ&& Ð ×ÿÿÿçßÎ& & Ú ìÿÿÿíÕÎ&& Ð ÿÿÿíÕÎ& & Ú ÿÿÿëÐÎ& & Ú +ÿÿÿíÐÎ& & Ú @ÿÿÿìÐÎ& & Ú UÿÿÿìéÎ& & Ú jÿÿÿîÔÎ& & Ú ÿÿÿíÕÎ& & Ú ”ÿÿÿèÛÎ& & Ú ©ÿÿÿïÐÎ&& Ð ¾ÿÿÿîÐÎ&& Ð ÓÿÿÿêéÎ& & Ú èÿÿÿêãÎ&& ä ýÿÿÿìéÎ&& Ð ÿÿÿêÔÎ&& ä 'ÿÿÿëâÎ&& Ð <ÿÿÿëáÎ& & Ú QÿÿÿëÐÎ&& Ð fÿÿÿíÕÎ& & Ú {ÿÿÿðØÎ&& Ð ÿÿÿçÜÎ& & Ú ¥ÿÿÿëÐÎ&ï íÿÿÿëÐÎ&&  ƒÿÿÿëÐÎ&&  ˜ÿÿÿêëÎ&&  ­ÿÿÿíÕÎ&ø& ÷ ÂÿÿÿéãÎ&&  ×ÿÿÿçßÎ& &  ìÿÿÿíÕÎ&&  ÿÿÿíÕÎ& &  ÿÿÿëÐÎ& &  +ÿÿÿíÐÎ& &  @ÿÿÿìÐÎ& &  UÿÿÿìéÎ& &  jÿÿÿîÔÎ& &  ÿÿÿíÕÎ& &  ”ÿÿÿèÛÎ& &  ©ÿÿÿïÐÎ&&  ¾ÿÿÿîÐÎ&&  ÓÿÿÿêéÎ& &  èÿÿÿêãÎ&&  ýÿÿÿìéÎ&&  ÿÿÿêÔÎ&&  'ÿÿÿëâÎ&&  <ÿÿÿëáÎ& &  QÿÿÿëÐÎ&&  fÿÿÿíÕÎ& &  {ÿÿÿðØÎ&&  ÿÿÿçÜÎ& &  ¥ÿÿ ë¿&í ÿÿÿëëÉ&ÿ& 3 {ÿÿÿëëÉ&ÿ& 3 ÿÿÿêëÉ&ÿ& 3 ¥ÿÿÿðëÉ&ö& ) ºÿÿÿéëÉ&ÿ& 3 ÏÿÿÿçëÌ&& = äÿÿÿïëÉ&ÿ& 3 ùÿÿÿíëÌ&& = ÿÿÿëëÌ&& = #ÿÿÿíëÌ&& = 8ÿÿÿðëÌ&& = MÿÿÿìëÌ&& = bÿÿÿíëÌ&& = wÿÿÿíëÌ&& = ŒÿÿÿçëÌ&& = ¡ÿÿÿïëÉ&ÿ& 3 ¶ÿÿÿîëÉ&ÿ& 3 ËÿÿÿèìÌ&& = àÿÿÿèëÉ&ÿ& G õÿÿÿéëÉ&ÿ& 3 ÿÿÿçëÉ&ÿ& G ÿÿÿçëÉ&ÿ& 3 4ÿÿÿçëÌ&& = IÿÿÿëëÉ&ÿ& 3 ^ÿÿÿìëÌ&& = sÿÿÿíëÉ&ÿ& 3 ˆÿÿÿçëÌ&& = ÿÿÿëëÉ&î MÿÿÿëëÌ&& Y {ÿÿÿëëÌ&& Y ÿÿÿêëÌ&& Y ¥ÿÿÿðëÌ&÷& R ºÿÿÿéëÌ&& Y ÏÿÿÿçëÌ& & n äÿÿÿïëÌ&& Y ùÿÿÿíëÌ& & n ÿÿÿëëÌ& & n #ÿÿÿíëÌ& & n 8ÿÿÿðëÌ& & n MÿÿÿìëÌ& & n bÿÿÿíëÌ& & n wÿÿÿíëÌ& & n ŒÿÿÿçëÌ& & n ¡ÿÿÿïëÌ&& Y ¶ÿÿÿîëÌ&& Y ËÿÿÿèìÌ& & n àÿÿÿèëÌ&& g õÿÿÿéëÌ&& Y ÿÿÿçëÌ&& Y ÿÿÿçëÌ&& Y 4ÿÿÿçëÌ& & ` IÿÿÿëëÌ&& Y ^ÿÿÿìëÌ& & n sÿÿÿíëÌ&& Y ˆÿÿÿçëÌ& & ` ÿÿÿëÐÎ&ð uÿÿÿëÐÎ&& ƒ …ÿÿÿëÐÎ&& ƒ šÿÿÿêëÎ&& ƒ ¯ÿÿÿíÕÎ&ù& | ÄÿÿÿéãÎ&& ƒ ÙÿÿÿçßÎ& & ˜ îÿÿÿìÕÎ&& ƒ ÿÿÿíÕÎ& & ˜ ÿÿÿëÐÎ& & ˜ -ÿÿÿíÐÎ& & ˜ BÿÿÿìÐÎ& & ˜ WÿÿÿìéÎ& & ˜ lÿÿÿîÔÎ& & ˜ ÿÿÿîÕÎ& & ˜ –ÿÿÿçÛÎ& & ˜ «ÿÿÿïÐÎ&& ƒ ÀÿÿÿîÐÎ&& ƒ ÕÿÿÿêéÎ& & ˜ êÿÿÿêäÎ&& ‘ ÿÿÿÿìéÎ&& ƒ ÿÿÿêÔÎ&& ‘ )ÿÿÿêÞÎ&& ƒ >ÿÿÿëÞÎ& & Š SÿÿÿëÐÎ&& ƒ hÿÿÿíÕÎ& & ˜ }ÿÿÿðØÎ&& ƒ ’ÿÿÿçÜÎ& & Š §ÿÿÿëÐÎ&ò ŸÿÿÿëÐÎ&& ­ …ÿÿÿëÐÎ&& ­ šÿÿÿêëÎ&& ­ ¯ÿÿÿíÕÎ&û& ¦ ÄÿÿÿéãÎ&& ­ ÙÿÿÿçßÎ& &  îÿÿÿìÕÎ&& ­ ÿÿÿíÕÎ& &  ÿÿÿëÐÎ& &  -ÿÿÿíÐÎ& &  BÿÿÿìÐÎ& &  WÿÿÿìéÎ& &  lÿÿÿîÔÎ& &  ÿÿÿîÕÎ& &  –ÿÿÿçÛÎ& &  «ÿÿÿïÐÎ&& ­ ÀÿÿÿîÐÎ&& ­ ÕÿÿÿêéÎ& &  êÿÿÿêäÎ&& » ÿÿÿÿìéÎ&& ­ ÿÿÿêÔÎ&& » )ÿÿÿêÞÎ&& ­ >ÿÿÿëÞÎ& & ´ SÿÿÿëÐÎ&& ­ hÿÿÿíÕÎ& &  }ÿÿÿðØÎ&& ­ ’ÿÿÿçÜÎ& & ´ §ÿÿÿëÑÎ&ð ÉÿÿÿëÐÎ&& × „ÿÿÿëÐÎ&& × ™ÿÿÿêëÎ&& × ®ÿÿÿíÕÎ&ù& Ð ÃÿÿÿéãÎ&& × ØÿÿÿçßÎ& & ì íÿÿÿìÕÎ&& × ÿÿÿíÕÎ& & ì ÿÿÿëÐÎ& & ì ,ÿÿÿíÐÎ& & ì AÿÿÿìÐÎ& & ì VÿÿÿìéÎ& & ì kÿÿÿîÔÎ& & ì €ÿÿÿîÕÎ& & ì •ÿÿÿèÛÎ& & ì ªÿÿÿïÐÎ&& × ¿ÿÿÿîÐÎ&& × ÔÿÿÿêéÎ& & ì éÿÿÿêãÎ&& å þÿÿÿìéÎ&& × ÿÿÿêÔÎ&& å (ÿÿÿêÞÎ&& × =ÿÿÿëÞÎ& & Þ RÿÿÿëÐÎ&& × gÿÿÿíÕÎ& & ì |ÿÿÿðØÎ&& × ‘ÿÿÿç×Î& & Þ ¦ÿÿÿíëÉ&î óÿÿÿëëÌ&&  {ÿÿÿëëÌ&&  ÿÿÿêëÌ&&  ¥ÿÿÿðëÌ&÷& ú ºÿÿÿéëÌ&&  ÏÿÿÿçëÌ& &  äÿÿÿïëÌ&&  ùÿÿÿíëÌ& &  ÿÿÿëëÌ& &  #ÿÿÿíëÌ& &  8ÿÿÿðëÌ& &  MÿÿÿìëÌ& &  bÿÿÿíëÌ& &  wÿÿÿíëÌ& &  ŒÿÿÿçëÌ& &  ¡ÿÿÿïëÌ&&  ¶ÿÿÿîëÌ&&  ËÿÿÿèìÌ& &  àÿÿÿèëÌ&&  õÿÿÿéëÌ&&  ÿÿÿçëÌ&&  ÿÿÿçëÌ&&  4ÿÿÿçëÌ& &  IÿÿÿëëÌ&&  ^ÿÿÿìëÌ& &  sÿÿÿíëÌ&&  ˆÿÿÿçëÌ& &  ÿÿ ë¿&í ÿÿÿëëÉ&ÿ& * {ÿÿÿëëÉ&ÿ& * ÿÿÿêëÉ&ÿ& * ¥ÿÿÿðëÉ& º& #öÿÿÿéëÉ&ÿ& * ÏÿÿÿçëÌ&& ? äÿÿÿïëÉ&ÿ& * ùÿÿÿíëÌ&& ? ÿÿÿëëÌ&& ? #ÿÿÿíëÌ&& ? 8ÿÿÿðëÌ&& ? MÿÿÿìëÌ&& ? bÿÿÿíëÌ&& ? wÿÿÿíëÌ&& ? ŒÿÿÿçëÌ&& ? ¡ÿÿÿïëÉ&ÿ& * ¶ÿÿÿîëÉ&ÿ& * ËÿÿÿèìÌ&& ? àÿÿÿèëÉ&ÿ& 8 õÿÿÿéëÉ&ÿ& * ÿÿÿçëÉ&ÿ& 8 ÿÿÿçëÉ&ÿ& * 4ÿÿÿçëÌ&& 1 IÿÿÿëëÉ&ÿ& * ^ÿÿÿìëÌ&& ? sÿÿÿíëÉ&ÿ& * ˆÿÿÿçëÌ&& 1 ÿÿÿëÐÎ&ï EÿÿÿëÐÎ&& S ƒÿÿÿëÐÎ&& S ˜ÿÿÿêëÎ&& S ­ÿÿÿíÕÎ&ø& L ÂÿÿÿéãÎ&& S ×ÿÿÿçßÎ& & h ìÿÿÿíÕÎ&& S ÿÿÿíÕÎ& & h ÿÿÿëÐÎ& & h +ÿÿÿíÐÎ& & h @ÿÿÿìÐÎ& & h UÿÿÿìéÎ& & h jÿÿÿîÔÎ& & h ÿÿÿíÕÎ& & h ”ÿÿÿèÛÎ& & h ©ÿÿÿïÐÎ&& S ¾ÿÿÿîÐÎ&& S ÓÿÿÿêéÎ& & h èÿÿÿêãÎ&& a ýÿÿÿìéÎ&& S ÿÿÿêÔÎ&& a 'ÿÿÿëâÎ&& S <ÿÿÿëáÎ& & Z QÿÿÿëÐÎ&& S fÿÿÿíÕÎ& & h {ÿÿÿðØÎ&& S ÿÿÿçÜÎ& & Z ¥ÿÿÿëÐÎ&ê iÿÿÿëÐÎ&ü& o yÿÿÿëÐÎ&ü& o ŽÿÿÿèìÎ&ü& o £ÿÿÿðÕÎ&ó& l ¸ÿÿÿéãÎ&ü& o ÍÿÿÿçßÎ&& u âÿÿÿïÕÎ&ü& o ÷ÿÿÿíÕÎ&& u ÿÿÿëÐÎ&& u !ÿÿÿíÐÎ&& u 6ÿÿÿíÐÎ&& u KÿÿÿìéÎ&& u `ÿÿÿíÔÎ&& u uÿÿÿíÕÎ&& u ŠÿÿÿçÛÎ&& u ŸÿÿÿïÐÎ&ü& o ´ÿÿÿîÐÎ&ü& o ÉÿÿÿèìÎ&& u ÞÿÿÿèãÎ&ü& r óÿÿÿééÎ&ü& o ÿÿÿçÔÎ&ü& r ÿÿÿçÞÎ&ü& o 2ÿÿÿçÞÎ&& o GÿÿÿëÐÎ&ü& o \ÿÿÿìÕÎ&& u qÿÿÿíØÎ&ü& o †ÿÿÿçÖÎ&& o ›ÿÿÿëöÎ&UÿÿÿëõÎ& &[ xÿÿÿëõÎ& &[ ÿÿÿèõÎ& &[ ¢ÿÿÿðöÎ&&X ·ÿÿÿêõÎ& &[ ÌÿÿÿçõÎ&)&a áÿÿÿïõÎ& &[ öÿÿÿíõÎ&)&a ÿÿÿëõÎ&)&a ÿÿÿíõÎ&)&a 5ÿÿÿíõÎ&)&a JÿÿÿìõÎ&)&a _ÿÿÿíõÎ&)&a tÿÿÿíõÎ&)&a ‰ÿÿÿçõÎ&)&a žÿÿÿïõÎ& &[ ³ÿÿÿîõÎ& &[ ÈÿÿÿèõÎ&)&a ÝÿÿÿèöÎ& &^ òÿÿÿéõÎ& &[ ÿÿÿçöÎ& &^ ÿÿÿçõÎ& &[ 1ÿÿÿçõÎ&)&[ FÿÿÿëõÎ& &[ [ÿÿÿìõÎ&)&a pÿÿÿíõÎ& &[ …ÿÿÿçõÎ&)&[ šÿÿ ÿëÐÎ&dÿÿ ÿëÐÎ&"&j zÿÿ ÿëÐÎ&"&j ÿÿ ÿèìÎ&"&j ¤ÿÿ ÿðÕÎ&&g ¹ÿÿ ÿéãÎ&"&j Îÿÿ ÿçßÎ&+&p ãÿÿ ÿïÕÎ&"&j øÿÿ ÿíÕÎ&+&p ÿÿ ÿëÐÎ&+&p "ÿÿ ÿíÐÎ&+&p 7ÿÿ ÿíÐÎ&+&p Lÿÿ ÿìéÎ&+&p aÿÿ ÿíÔÎ&+&p vÿÿ ÿíÕÎ&+&p ‹ÿÿ ÿçÛÎ&+&p  ÿÿ ÿïÐÎ&"&j µÿÿ ÿîÐÎ&"&j Êÿÿ ÿèìÎ&+&p ßÿÿ ÿèàÎ&"&m ôÿÿ ÿééÎ&"&j ÿÿ ÿçÔÎ&"&m ÿÿ ÿçÞÎ&"&j 3ÿÿ ÿçÞÎ&+&j Hÿÿ ÿëÐÎ&"&j ]ÿÿ ÿìÕÎ&+&p rÿÿ ÿíØÎ&"&j ‡ÿÿ ÿçÜÎ&+&j œÿÿÿëöÎ&sÿÿÿëöÎ& &y xÿÿÿëöÎ& &y ÿÿÿèöÎ& &y ¢ÿÿÿðöÎ&&v ·ÿÿÿêöÎ& &y ÌÿÿÿçöÎ&)& áÿÿÿïöÎ& &y öÿÿÿíöÎ&)& ÿÿÿëöÎ&)& ÿÿÿíöÎ&)& 5ÿÿÿíöÎ&)& JÿÿÿìöÎ&)& _ÿÿÿíöÎ&)& tÿÿÿíöÎ&)& ‰ÿÿÿçöÎ&)& žÿÿÿïöÎ& &y ³ÿÿÿîöÎ& &y ÈÿÿÿèöÎ&)& ÝÿÿÿèöÎ& &| òÿÿÿéöÎ& &y ÿÿÿçöÎ& &| ÿÿÿçöÎ& &y 1ÿÿÿçöÎ&)&y FÿÿÿëöÎ& &y [ÿÿÿìöÎ&)& pÿÿÿíöÎ& &y …ÿÿÿçöÎ&)&y šÿÿ ÿëÐÎ&‚ÿÿ ÿëÐÎ&"&ˆ zÿÿ ÿëÐÎ&"&ˆ ÿÿ ÿèìÎ&"&ˆ ¤ÿÿ ÿðÕÎ&&… ¹ÿÿ ÿéãÎ&"&ˆ Îÿÿ ÿçßÎ&+&Ž ãÿÿ ÿïÕÎ&"&ˆ øÿÿ ÿíÕÎ&+&Ž ÿÿ ÿëÐÎ&+&Ž "ÿÿ ÿíÐÎ&+&Ž 7ÿÿ ÿíÐÎ&+&Ž Lÿÿ ÿìéÎ&+&Ž aÿÿ ÿíÔÎ&+&Ž vÿÿ ÿíÕÎ&+&Ž ‹ÿÿ ÿçÛÎ&+&Ž  ÿÿ ÿïÐÎ&"&ˆ µÿÿ ÿîÐÎ&"&ˆ Êÿÿ ÿèìÎ&+&Ž ßÿÿ ÿèàÎ&"&‹ ôÿÿ ÿééÎ&"&ˆ ÿÿ ÿçÔÎ&"&‹ ÿÿ ÿçÞÎ&"&ˆ 3ÿÿ ÿçÞÎ&+&ˆ Hÿÿ ÿëÐÎ&"&ˆ ]ÿÿ ÿìÕÎ&+&Ž rÿÿ ÿíØÎ&"&ˆ ‡ÿÿ ÿçÜÎ&+&ˆ œÿÿ ÿëÐÎ&–ÿÿ ÿëÐÎ&!&© yÿÿ ÿëÐÎ&!&© Žÿÿ ÿèìÎ&!&© £ÿÿ ÿðÕÎ&&Ÿ ¸ÿÿ ÿéãÎ&!&© Íÿÿ ÿçßÎ&*&³ âÿÿ ÿïÕÎ&!&© ÷ÿÿ ÿíÕÎ&*&³ ÿÿ ÿëÐÎ&*&³ !ÿÿ ÿíÐÎ&*&³ 6ÿÿ ÿíÐÎ&*&³ Kÿÿ ÿìéÎ&*&³ `ÿÿ ÿíÔÎ&*&³ uÿÿ ÿíÕÎ&*&³ Šÿÿ ÿçÛÎ&*&³ Ÿÿÿ ÿïÐÎ&!&© ´ÿÿ ÿîÐÎ&!&© Éÿÿ ÿèìÎ&*&³ Þÿÿ ÿèãÎ&!&½ óÿÿ ÿééÎ&!&© ÿÿ ÿçÔÎ&!&½ ÿÿ ÿçÞÎ&!&© 2ÿÿ ÿçÞÎ&*&³ Gÿÿ ÿëÐÎ&!&© \ÿÿ ÿìÕÎ&*&³ qÿÿ ÿíØÎ&!&© †ÿÿ ÿçÖÎ&*&³ ›ÿÿ ÿëÐÎ&Æÿÿ ÿëÐÎ&"&Ù zÿÿ ÿëÐÎ&"&Ù ÿÿ ÿèìÎ&"&Ù ¤ÿÿ ÿðÕÎ&&Ï ¹ÿÿ ÿéãÎ&"&Ù Îÿÿ ÿçßÎ&+&ã ãÿÿ ÿïÕÎ&"&Ù øÿÿ ÿíÕÎ&+&ã ÿÿ ÿëÐÎ&+&ã "ÿÿ ÿíÐÎ&+&ã 7ÿÿ ÿíÐÎ&+&ã Lÿÿ ÿìéÎ&+&ã aÿÿ ÿíÔÎ&+&ã vÿÿ ÿíÕÎ&+&ã ‹ÿÿ ÿçÛÎ&+&ã  ÿÿ ÿïÐÎ&"&Ù µÿÿ ÿîÐÎ&"&Ù Êÿÿ ÿèìÎ&+&ã ßÿÿ ÿèàÎ&"&í ôÿÿ ÿééÎ&"&Ù ÿÿ ÿçÔÎ&"&í ÿÿ ÿçÞÎ&"&Ù 3ÿÿ ÿçÞÎ&+&ã Hÿÿ ÿëÐÎ&"&Ù ]ÿÿ ÿìÕÎ&+&ã rÿÿ ÿíØÎ&"&Ù ‡ÿÿ ÿçÜÎ&+&ã œÿÿ ÿëÐÎ&÷ÿÿ ÿëÐÎ&!&  yÿÿ ÿëÐÎ&!&  Žÿÿ ÿèìÎ&!&  £ÿÿ ÿðÕÎ&& ¸ ÿÿ ÿéãÎ&!&  Íÿÿ ÿçßÎ&*&  âÿÿ ÿïÕÎ&!&  ÷ÿÿ ÿíÕÎ&*&  ÿÿ ÿëÐÎ&*&  !ÿÿ ÿíÐÎ&*&  6ÿÿ ÿíÐÎ&*&  Kÿÿ ÿìéÎ&*&  `ÿÿ ÿíÔÎ&*&  uÿÿ ÿíÕÎ&*&  Šÿÿ ÿçÛÎ&*&  Ÿÿÿ ÿïÐÎ&!&  ´ÿÿ ÿîÐÎ&!&  Éÿÿ ÿèìÎ&*&  Þÿÿ ÿèãÎ&!&  óÿÿ ÿééÎ&!&  ÿÿ ÿçÔÎ& &! ÿÿ ÿçÞÎ&!&  2ÿÿ ÿçÞÎ&*&  Gÿÿ ÿëÐÎ&!&  \ÿÿ ÿìÕÎ&*&  qÿÿ ÿíØÎ&!&  †ÿÿ ÿçÖÎ&*&  ›ÿÿ ÿëÐÎ& &ÿÿ ÿëÐÎ&"& : zÿÿ ÿëÐÎ&"& : ÿÿ ÿèìÎ&"& : ¤ÿÿ ÿðÕÎ&& 0 ¹ÿÿ ÿéãÎ&"& : Îÿÿ ÿçßÎ&+& D ãÿÿ ÿïÕÎ&"& : øÿÿ ÿíÕÎ&+& D ÿÿ ÿëÐÎ&+& D "ÿÿ ÿíÐÎ&+& D 7ÿÿ ÿíÐÎ&+& D Lÿÿ ÿìéÎ&+& D aÿÿ ÿíÔÎ&+& D vÿÿ ÿíÕÎ&+& D ‹ÿÿ ÿçÛÎ&+& D  ÿÿ ÿïÐÎ&"& : µÿÿ ÿîÐÎ&"& : Êÿÿ ÿèìÎ&+& D ßÿÿ ÿèàÎ&"& N ôÿÿ ÿééÎ&"& : ÿÿ ÿçÔÎ&"& N ÿÿ ÿçÞÎ&"& : 3ÿÿ ÿçÞÎ&+& D Hÿÿ ÿëÐÎ&"& : ]ÿÿ ÿìÕÎ&+& D rÿÿ ÿíØÎ&"& : ‡ÿÿ ÿçÜÎ&+& D œÿÿ ê¾& WÿÿÿëêË&#& h {ÿÿÿëêË&#& h ÿÿÿêêË&#& h ¥ÿÿÿðêË&& ^ ºÿÿÿéêË&#& h ÏÿÿÿçêË&,& r äÿÿÿïêË&#& h ùÿÿÿíêË&,& r ÿÿÿëêË&,& r #ÿÿÿíêË&,& r 8ÿÿÿðêË&,& r MÿÿÿìêË&,& r bÿÿÿíêË&,& r wÿÿÿíêË&,& r ŒÿÿÿçêË&,& r ¡ÿÿÿïêË&#& h ¶ÿÿÿîêË&#& h ËÿÿÿèìË&,& r àÿÿÿèêË&#& { õÿÿÿéêË&#& h ÿÿÿçêË&#& { ÿÿÿçêË&#& h 4ÿÿÿçêË&,& r IÿÿÿëêË&#& h ^ÿÿÿìêË&,& r sÿÿÿíêË&#& h ˆÿÿÿçêË&,& r ÿÿÿëöÎ& …ÿÿÿëöÎ&%& ™ |ÿÿÿëöÎ&%& ™ ‘ÿÿÿêöÎ&%& ™ ¦ÿÿÿðöÎ&&  »ÿÿÿêöÎ&%& ™ ÐÿÿÿçöÎ&.& £ åÿÿÿïöÎ&%& ™ úÿÿÿíöÎ&.& £ ÿÿÿëöÎ&.& £ $ÿÿÿíöÎ&.& £ 9ÿÿÿíöÎ&.& £ NÿÿÿìöÎ&.& £ cÿÿÿîöÎ&.& £ xÿÿÿíöÎ&.& £ ÿÿÿçöÎ&.& £ ¢ÿÿÿïöÎ&%& ™ ·ÿÿÿîöÎ&%& ™ ÌÿÿÿèöÎ&.& £ áÿÿÿèöÎ&%& ­ öÿÿÿéöÎ&%& ™ ÿÿÿçöÎ&%& ­ ÿÿÿçöÎ&%& ™ 5ÿÿÿçöÎ&.& £ JÿÿÿëöÎ&%& ™ _ÿÿÿìöÎ&.& £ tÿÿÿíöÎ&%& ™ ‰ÿÿÿçöÎ&.& £ žÿÿÿëÐÎ& ·ÿÿÿëÐÎ&'& Ë |ÿÿÿëÐÎ&'& Ë ‘ÿÿÿêëÎ&'& Ë ¦ÿÿÿðÕÎ&& Á »ÿÿÿêãÎ&'& Ë ÐÿÿÿçßÎ&0& Õ åÿÿÿïÕÎ&'& Ë úÿÿÿíÕÎ&0& Õ ÿÿÿëÐÎ&0& Õ $ÿÿÿíÐÎ&0& Õ 9ÿÿÿíÐÎ&0& Õ NÿÿÿìéÎ&0& Õ cÿÿÿîÔÎ&0& Õ xÿÿÿíÕÎ&0& Õ ÿÿÿçÛÎ&0& Õ ¢ÿÿÿïÐÎ&'& Ë ·ÿÿÿîÐÎ&'& Ë ÌÿÿÿèéÎ&0& Õ áÿÿÿèãÎ&'& ß öÿÿÿééÎ&'& Ë ÿÿÿçÔÎ&'& ß ÿÿÿçâÎ&'& Ë 5ÿÿÿçâÎ&0& Õ JÿÿÿëÐÎ&'& Ë _ÿÿÿìÕÎ&0& Õ tÿÿÿíØÎ&'& Ë ‰ÿÿÿçÜÎ&0& Õ žÿÿÿëÐÎ& éÿÿÿëÐÎ&%& ü |ÿÿÿëÐÎ&%& ü ‘ÿÿÿêëÎ&%& ü ¦ÿÿÿðÕÎ&& ò »ÿÿÿêãÎ&%& ü ÐÿÿÿçßÎ&.&  åÿÿÿïÕÎ&%& ü úÿÿÿíÕÎ&.&  ÿÿÿëÐÎ&.&  $ÿÿÿíÐÎ&.&  9ÿÿÿíÐÎ&.&  NÿÿÿìéÎ&.&  cÿÿÿîÔÎ&.&  xÿÿÿíÕÎ&.&  ÿÿÿçÛÎ&.&  ¢ÿÿÿïÐÎ&%& ü ·ÿÿÿîÐÎ&%& ü ÌÿÿÿèéÎ&.&  áÿÿÿèãÎ&%&  öÿÿÿééÎ&%& ü ÿÿÿçÔÎ&%&  ÿÿÿçâÎ&%& ü 5ÿÿÿçâÎ&.&  JÿÿÿëÐÎ&%& ü _ÿÿÿìÕÎ&.&  tÿÿÿíØÎ&%& ü ‰ÿÿÿçÜÎ&.&  žÿÿ ë¾& ÿÿÿëëË&#& . {ÿÿÿëëË&#& . ÿÿÿêëË&#& . ¥ÿÿÿðëË&& $ ºÿÿÿéëË&#& . ÏÿÿÿçëË&,& 8 äÿÿÿïëË&#& . ùÿÿÿíëË&,& 8 ÿÿÿëëË&,& 8 #ÿÿÿíëË&,& 8 8ÿÿÿðëË&,& 8 MÿÿÿìëË&,& 8 bÿÿÿíëË&,& 8 wÿÿÿíëË&,& 8 ŒÿÿÿçëË&,& 8 ¡ÿÿÿïëË&#& . ¶ÿÿÿîëË&#& . ËÿÿÿèìË&,& 8 àÿÿÿèëË&#& B õÿÿÿéëË&#& . ÿÿÿçëË&#& B ÿÿÿçëË&#& . 4ÿÿÿçëË&,& 8 IÿÿÿëëË&#& . ^ÿÿÿìëË&,& 8 sÿÿÿíëË&#& . ˆÿÿÿçëË&,& 8 ÿÿÿëëË& KÿÿÿëëË&$& V {ÿÿÿëëË&$& V ÿÿÿêëË&$& V ¥ÿÿÿðëË&& Q ºÿÿÿéëË&$& V ÏÿÿÿçëË&-& k äÿÿÿïëË&$& V ùÿÿÿíëË&-& k ÿÿÿëëË&-& k #ÿÿÿíëË&-& k 8ÿÿÿðëË&-& k MÿÿÿìëË&-& k bÿÿÿíëË&-& k wÿÿÿíëË&-& k ŒÿÿÿçëË&-& k ¡ÿÿÿïëË&-& ¶ VÿÿÿîëË&$& V ËÿÿÿèìË&-& k àÿÿÿèëË&$& d õÿÿÿéëË&$& V ÿÿÿçëË&$& V ÿÿÿçëË&$& V 4ÿÿÿçëË&-& ] IÿÿÿëëË&$& V ^ÿÿÿìëË&-& k sÿÿÿíëË&$& V ˆÿÿÿçëË&-& ] ÿÿÿëÐÎ& rÿÿÿëÐÎ&&& € ~ÿÿÿëÐÎ&&& € “ÿÿÿêëÎ&&& € ¨ÿÿÿðÕÎ&& y ½ÿÿÿéãÎ&&& € ÒÿÿÿçßÎ&/& • çÿÿÿïÕÎ&&& € üÿÿÿíÕÎ&/& • ÿÿÿëÐÎ&/& • &ÿÿÿíÐÎ&/& • ;ÿÿÿíÐÎ&/& • PÿÿÿëéÎ&/& • eÿÿÿîÔÎ&/& • zÿÿÿíÖÎ&/& • ÿÿÿçÛÎ&/& • ¤ÿÿÿïÐÎ&&& € ¹ÿÿÿîÐÎ&&& € ÎÿÿÿêéÎ&/& • ãÿÿÿèãÎ&&& Ž øÿÿÿçéÎ&&& € ÿÿÿçÔÎ&&& Ž "ÿÿÿçÞÎ&&& € 7ÿÿÿíÞÎ&/& ‡ LÿÿÿëÐÎ&&& € aÿÿÿìÕÎ&/& • vÿÿÿíØÎ&&& € ‹ÿÿÿçÜÎ&/& ‡  ÿÿÿëÐÎ& œÿÿÿëÐÎ&(& ª ~ÿÿÿëÐÎ&(& ª “ÿÿÿêëÎ&(& ª ¨ÿÿÿðÕÎ&& £ ½ÿÿÿéãÎ&(& ª ÒÿÿÿçßÎ&1& ¿ çÿÿÿïÕÎ&(& ª üÿÿÿíÕÎ&1& ¿ ÿÿÿëÐÎ&1& ¿ &ÿÿÿíÐÎ&1& ¿ ;ÿÿÿíÐÎ&1& ¿ PÿÿÿëéÎ&1& ¿ eÿÿÿîÔÎ&1& ¿ zÿÿÿíÖÎ&1& ¿ ÿÿÿçÛÎ&1& ¿ ¤ÿÿÿïÐÎ&(& ª ¹ÿÿÿîÐÎ&(& ª ÎÿÿÿêéÎ&1& ¿ ãÿÿÿèãÎ&(& ¸ øÿÿÿçéÎ&(& ª ÿÿÿçÔÎ&(& ¸ "ÿÿÿçÞÎ&(& ª 7ÿÿÿíÞÎ&1& ± LÿÿÿëÐÎ&(& ª aÿÿÿìÕÎ&1& ¿ vÿÿÿíØÎ&(& ª ‹ÿÿÿçÜÎ&1& ±  ÿÿÿëÐÎ& ÆÿÿÿëÐÎ&&& Ô }ÿÿÿëÐÎ&&& Ô ’ÿÿÿêëÎ&&& Ô §ÿÿÿðÕÎ&& Í ¼ÿÿÿéãÎ&&& Ô ÑÿÿÿçßÎ&/& é æÿÿÿïÕÎ&&& Ô ûÿÿÿíÕÎ&/& é ÿÿÿëÐÎ&/& é %ÿÿÿíÐÎ&/& é :ÿÿÿíÐÎ&/& é OÿÿÿëèÎ&/& é dÿÿÿîÔÎ&/& é yÿÿÿíÖÎ&/& é ŽÿÿÿçÛÎ&/& é £ÿÿÿïÐÎ&&& Ô ¸ÿÿÿîÐÎ&&& Ô ÍÿÿÿêéÎ&/& é âÿÿÿèãÎ&&& â ÷ÿÿÿçéÎ&&& Ô ÿÿÿçÔÎ&&& â !ÿÿÿçÞÎ&&& Ô 6ÿÿÿçÞÎ&/& Û KÿÿÿëÐÎ&&& Ô `ÿÿÿìÕÎ&/& é uÿÿÿíØÎ&&& Ô ŠÿÿÿçÖÎ&/& Û ŸÿÿÿíëË& ðÿÿÿëëË&$& þ {ÿÿÿëëË&$& þ ÿÿÿêëË&$& þ ¥ÿÿÿðëË&& ÷ ºÿÿÿéëË&$& þ ÏÿÿÿçëË&-&  äÿÿÿïëË&$& þ ùÿÿÿíëË&-&  ÿÿÿëëË&-&  #ÿÿÿíëË&-&  8ÿÿÿðëË&-&  MÿÿÿìëË&-&  bÿÿÿíëË&-&  wÿÿÿíëË&-&  ŒÿÿÿçëË&-&  ¡ÿÿÿïëË&$& þ ¶ÿÿÿîëË&$& þ ËÿÿÿèìË&-&  àÿÿÿèëË&$&  õÿÿÿéëË&$& þ ÿÿÿçëË&$&  ÿÿÿçëË&$& þ 4ÿÿÿçëË&-&  IÿÿÿëëË&$& þ ^ÿÿÿìëË&-&  sÿÿÿíëË&$& þ ˆÿÿÿçëË&-&  ÿÿ ë¾& ÿÿÿëëË&#& ' {ÿÿÿëëË&#& ' ÿÿÿêëË&#& ' ¥ÿÿÿðëË&&  ºÿÿÿéëË&#& ' ÏÿÿÿçëË&,& < äÿÿÿïëË&#& ' ùÿÿÿíëË&,& < ÿÿÿëëË&,& < #ÿÿÿíëË&,& < 8ÿÿÿðëË&,& < MÿÿÿìëË&,& < bÿÿÿíëË&,& < wÿÿÿíëË&,& < ŒÿÿÿçëË&,& < ¡ÿÿÿïëË&#& ' ¶ÿÿÿîëË&#& ' ËÿÿÿèìË&,& < àÿÿÿèëË&#& 5 õÿÿÿéëË&#& ' ÿÿÿçëË&#& 5 ÿÿÿçëË&#& ' 4ÿÿÿçëË&,& . IÿÿÿëëË&#& ' ^ÿÿÿìëË&,& < sÿÿÿíëË&#& ' ˆÿÿÿçëË&,& . ÿÿÿëÐÎ& CÿÿÿëÐÎ&%& P |ÿÿÿëÐÎ&%& P ‘ÿÿÿêëÎ&%& P ¦ÿÿÿðÕÎ&& I »ÿÿÿêãÎ&%& P ÐÿÿÿçßÎ&.& e åÿÿÿïÕÎ&%& P úÿÿÿíÕÎ&.& e ÿÿÿëÐÎ&.& e $ÿÿÿíÐÎ&.& e 9ÿÿÿíÐÎ&.& e NÿÿÿìéÎ&.& e cÿÿÿîÔÎ&.& e xÿÿÿíÕÎ&.& e ÿÿÿçÛÎ&.& e ¢ÿÿÿïÐÎ&%& P ·ÿÿÿîÐÎ&%& P ÌÿÿÿèéÎ&.& e áÿÿÿèãÎ&%& ^ öÿÿÿééÎ&%& P ÿÿÿçÔÎ&%& ^ ÿÿÿçâÎ&%& P 5ÿÿÿçâÎ&.& W JÿÿÿëÐÎ&%& P _ÿÿÿìÕÎ&.& e tÿÿÿíØÎ&%& P ‰ÿÿÿçÜÎ&.& W žÿÿ ÿëÐÎ& iÿÿÿëÐÎ& & o yÿÿÿëÐÎ& & o ŽÿÿÿèìÎ& & o £ÿÿÿðÕÎ&& l ¸ÿÿÿéãÎ& & o ÍÿÿÿçßÎ&)& u âÿÿÿïÕÎ& & o ÷ÿÿÿíÕÎ&)&  uÿÿÿëÐÎ&)& u !ÿÿÿíÐÎ&)& u 6ÿÿÿíÐÎ&)& u KÿÿÿìéÎ&)& u `ÿÿÿíÔÎ&)& u uÿÿÿíÕÎ&)& u ŠÿÿÿçÛÎ&)& u ŸÿÿÿïÐÎ& & o ´ÿÿÿîÐÎ& & o ÉÿÿÿèìÎ&)& u ÞÿÿÿèãÎ& & r óÿÿÿééÎ& & o ÿÿÿçÔÎ& & r ÿÿÿçÞÎ& & o 2ÿÿÿçÞÎ&)& o GÿÿÿëÐÎ& & o \ÿÿÿìÕÎ&)& u qÿÿÿíØÎ& & o †ÿÿÿçÖÎ&)& o ›ÿÿÿëöÎ&U2ÿÿÿëõÎ&C&[ xÿÿÿëõÎ&C&[ ‘ÿÿÿêõÎ&C&[ ¦ÿÿÿðöÎ&;& »XÿÿÿêõÎ&C&[ ÐÿÿÿçõÎ&L&a åÿÿÿïõÎ&C&[ úÿÿÿíõÎ&a&L ÿÿÿëõÎ&L&a $ÿÿÿíõÎ&L&a 9ÿÿÿíõÎ&L&a NÿÿÿìõÎ&L&a cÿÿÿîõÎ&L&a xÿÿÿíõÎ&L&a ÿÿÿçõÎ&L&a ¢ÿÿÿïõÎ&\&C ·ÿÿÿîõÎ&C&\ ÈÿÿÿèõÎ&L&a áÿÿÿèöÎ&C&^ öÿÿÿéõÎ&C&[ ÿÿÿçöÎ&C&^ *ÿÿÿçõÎ&C&[ 5ÿÿÿçõÎ&L&[ JÿÿÿëõÎ&C&[ _ÿÿÿìõÎ&L&a tÿÿÿíõÎ&C&[ ‰ÿÿÿçõÎ&L&[ žÿÿÿëÐÎ&4dÿÿÿëÐÎ&j&E zÿÿÿëÐÎ&E&j “ÿÿÿêëÎ&E&j ¨ÿÿÿðÕÎ&g& ¹<ÿÿÿéãÎ&E&j ÒÿÿÿçßÎ&N&p çÿÿÿïÕÎ&E&j üÿÿÿíÕÎ&N&p ÿÿÿëÐÎ&N&p &ÿÿÿíÐÎ&N&p ;ÿÿÿíÐÎ&N&p PÿÿÿëéÎ&N&p eÿÿÿîÔÎ&N&p zÿÿÿíÖÎ&N&p ÿÿÿçÛÎ&N&p ¤ÿÿÿïÐÎ&E&j ¹ÿÿÿîÐÎ&E&j ÎÿÿÿêéÎ&N&p ãÿÿÿèãÎ&E&m øÿÿÿçéÎ&p&E ÿÿÿçÔÎ& "&EmÿÿÿçÞÎ&E&j 7ÿÿÿíÞÎ&N&j LÿÿÿëÐÎ&E&j aÿÿÿìÕÎ&N&p vÿÿÿíØÎ&E&j ‹ÿÿÿçÜÎ&N&j  ÿÿÿëöÎ&2sÿÿÿëöÎ&C&y |ÿÿÿëöÎ&C&y ‘ÿÿÿêöÎ&C&y ¦ÿÿÿðöÎ&;&v »ÿÿÿêöÎ&C&y ÐÿÿÿçöÎ&L& åÿÿÿïöÎ&C&y úÿÿÿíöÎ&L& ÿÿÿëöÎ&L& $ÿÿÿíöÎ&L& 9ÿÿÿíöÎ&L& NÿÿÿìöÎ&L& cÿÿÿîöÎ&L& xÿÿÿíöÎ&L& ÿÿÿçöÎ&L& ¢ÿÿÿïöÎ&C&y ·ÿÿÿîöÎ&C&y ÌÿÿÿèöÎ&L& áÿÿÿèöÎ&C&| öÿÿÿéöÎ&C&y ÿÿÿçöÎ&C& !|ÿÿÿçöÎ&C&y 5ÿÿÿçöÎ&L&y JÿÿÿëöÎ&C&y _ÿÿÿìöÎ&L& tÿÿÿíöÎ&C&y ‰ÿÿÿçöÎ&L&y žÿÿÿëÐÎ&4‚ÿÿÿëÐÎ&E&ˆ ~ÿÿÿëÐÎ&E&ˆ “ÿÿÿêëÎ&E&ˆ ¨ÿÿÿðÕÎ&<&… ½ÿÿÿéãÎ&E&ˆ ÒÿÿÿçßÎ&N&Ž çÿÿÿïÕÎ&E&ˆ üÿÿÿíÕÎ&N&Ž ÿÿÿëÐÎ&N&Ž &ÿÿÿíÐÎ&N&Ž ;ÿÿÿíÐÎ&N&Ž PÿÿÿëéÎ&N&Ž eÿÿÿîÔÎ&N&Ž zÿÿÿíÖÎ&N&Ž ÿÿÿçÛÎ&N&Ž ¤ÿÿÿïÐÎ&E&ˆ ¹ÿÿÿîÐÎ&E&ˆ ÎÿÿÿêéÎ&N&Ž ãÿÿÿèãÎ&E&‹ øÿÿÿçéÎ&E&ˆ ÿÿÿçÔÎ&E&‹ "ÿÿÿçÞÎ&E&ˆ 7ÿÿÿíÞÎ&N&ˆ LÿÿÿëÐÎ&E&ˆ aÿÿÿìÕÎ&N&Ž vÿÿÿíØÎ&E&ˆ ‹ÿÿÿçÜÎ&N&ˆ  ÿÿÿëÐÎ&3—ÿÿÿëÐÎ&D&ª }ÿÿÿëÐÎ&D&ª ’ÿÿÿêëÎ&D&ª §ÿÿÿðÕÎ&;&£ ¸ÿÿÿéãÎ&D&ª ÑÿÿÿçßÎ&M&´ æÿÿÿïÕÎ&D&ª ûÿÿÿíÕÎ&M&´ ÿÿÿëÐÎ&M&´ %ÿÿÿíÐÎ&M&´ :ÿÿÿíÐÎ&M&´ OÿÿÿëèÎ&M&´ dÿÿÿîÔÎ&M&´ yÿÿÿíÖÎ&M&´ ŽÿÿÿçÛÎ&M&´ £ÿÿÿïÐÎ&M&ª ´ÿÿÿîÐÎ&D&ª ÍÿÿÿêéÎ&M&´ âÿÿÿèãÎ& ö&¾DÿÿÿçéÎ&D&ª ÿÿÿçÔÎ&D&¾ !ÿÿÿçÞÎ&D&ª 6ÿÿÿçÞÎ&M&´ KÿÿÿëÐÎ&D&ª `ÿÿÿìÕÎ&M&´ uÿÿÿíØÎ&D&ª ŠÿÿÿçÖÎ&M&´ ŸÿÿÿëÐÎ&4ÇÿÿÿëÐÎ&E&Ú ~ÿÿÿëÐÎ&E&Ú “ÿÿÿêëÎ&E&Ú ¨ÿÿÿðÕÎ&<&Ð ½ÿÿÿéãÎ&E&Ú ÒÿÿÿçßÎ&N&ä çÿÿÿïÕÎ&E&Ú üÿÿÿíÕÎ&N&ä ÿÿÿëÐÎ&N&ä &ÿÿÿíÐÎ&N&ä ;ÿÿÿíÐÎ&N&ä PÿÿÿëéÎ&N&ä eÿÿÿîÔÎ&N&ä zÿÿÿíÖÎ&N&ä ÿÿÿçÛÎ&N&ä ¤ÿÿÿïÐÎ&E&Ú ¹ÿÿÿîÐÎ&E&Ú ÎÿÿÿêéÎ&N&ä ãÿÿÿèãÎ&E&î øÿÿÿçéÎ&E&Ú ÿÿÿçÔÎ&E&î "ÿÿÿçÞÎ&E&Ú 7ÿÿÿíÞÎ&N&ä LÿÿÿëÐÎ&E&Ú aÿÿÿìÕÎ&N&ä vÿÿÿíØÎ&E&Ú ‹ÿÿÿçÜÎ&N&ä  ÿÿÿëÐÎ&3øÿÿÿëÐÎ&D&  }ÿÿÿëÐÎ&D&  ’ÿÿÿêëÎ&D&  §ÿÿÿðÕÎ&;& » ÿÿÿéãÎ&D&  ÑÿÿÿçßÎ&M&  æÿÿÿïÕÎ&D&  ûÿÿÿíÕÎ&M&  ÿÿÿëÐÎ&M&  %ÿÿÿíÐÎ&M&  :ÿÿÿíÐÎ&M&  OÿÿÿëèÎ&M&  dÿÿÿîÔÎ&M&  yÿÿÿíÖÎ&M&  ŽÿÿÿçÛÎ&M&  £ÿÿÿïÐÎ&D&  ¸ÿÿÿîÐÎ& &D ÍÿÿÿêéÎ&M&  âÿÿÿèãÎ&D&  ÷ÿÿÿçéÎ&D&  ÿÿÿçÔÎ& &C ÿÿÿçÞÎ&D&  6ÿÿÿçÞÎ&M&  KÿÿÿëÐÎ&D&  `ÿÿÿìÕÎ&M&  uÿÿÿíØÎ&D&  ŠÿÿÿçÖÎ&M&  ŸÿÿÿëÐÎ&4 'ÿÿÿëÐÎ&E& ; ~ÿÿÿëÐÎ&E& ; “ÿÿÿêëÎ&E& ; ¨ÿÿÿðÕÎ&<& 1 ½ÿÿÿéãÎ&E& ; ÒÿÿÿçßÎ&N& E çÿÿÿïÕÎ&E& ; üÿÿÿíÕÎ&N& E ÿÿÿëÐÎ&N& E &ÿÿÿíÐÎ&N& E ;ÿÿÿíÐÎ&N& E PÿÿÿëéÎ&N& E eÿÿÿîÔÎ&N& E zÿÿÿíÖÎ&N& E ÿÿÿçÛÎ&N& E ¤ÿÿÿïÐÎ&E& ; ¹ÿÿÿîÐÎ&E& ; ÎÿÿÿêéÎ&N& E ãÿÿÿèãÎ&E& O øÿÿÿçéÎ&E& ; ÿÿÿçÔÎ&E& O "ÿÿÿçÞÎ&E& ; 7ÿÿÿíÞÎ&N& E LÿÿÿëÐÎ&E& ; aÿÿÿìÕÎ&N& E vÿÿÿíØÎ&E& ; ‹ÿÿÿçÜÎ&N& E  ÿÿ êÅ&5 XÿÿÿëêÏ&F& j ÿÿÿëêÏ&F& j ”ÿÿÿêêÏ&F& j ©ÿÿÿðêÏ&=& ` ¾ÿÿÿéêÏ&F& j ÓÿÿÿçêÏ&O& t èÿÿÿïêÏ&F& j ýÿÿÿíêÏ&O&  tÿÿÿëêÏ&O& t 'ÿÿÿîêÏ&O& t <ÿÿÿîêÏ&O& t QÿÿÿìêÏ&O& t fÿÿÿîêÏ&O& t {ÿÿÿìêÏ&O& t ÿÿÿçêÏ&O& t ¥ÿÿÿïêÏ&F& j ºÿÿÿîêÏ&F& j ÏÿÿÿêêÏ&O& t äÿÿÿèêÏ&F& } ùÿÿÿéêÏ&F& j ÿÿÿçêÏ&F& } #ÿÿÿçêÏ&F& j 8ÿÿÿçêÏ&O& t MÿÿÿëêÏ&F& j bÿÿÿíêÏ&O& t wÿÿÿíêÏ&F& j ŒÿÿÿçêÏ&O& t ¡ÿÿÿëöÎ& ‡7ÿÿÿëöÎ&H& › €ÿÿÿëöÎ&H& › •ÿÿÿêöÎ&H& › ªÿÿÿðöÎ&?& ¿ ‘ÿÿÿéöÎ&H& › ÔÿÿÿçöÎ&Q& ¥ éÿÿÿïöÎ&H& › þÿÿÿíöÎ& ›& QÿÿÿëöÎ&Q& ¥ (ÿÿÿíöÎ&Q& ¥ =ÿÿÿíöÎ&Q& ¥ RÿÿÿìöÎ&Q& ¥ gÿÿÿîöÎ&Q& ¥ |ÿÿÿîöÎ&Q& ¥ ‘ÿÿÿçöÎ&Q& ¥ ¦ÿÿÿïöÎ&H& › »ÿÿÿîöÎ&H& › ÐÿÿÿêöÎ&Q& ¥ åÿÿÿèöÎ&H& ¯ úÿÿÿéöÎ&H& › ÿÿÿçöÎ&H& ¯ $ÿÿÿçöÎ&H& › 9ÿÿÿçöÎ&Q& ¥ NÿÿÿëöÎ&H& › cÿÿÿíöÎ&Q& ¥ xÿÿÿíöÎ&H& › ÿÿÿçöÎ&Q& ¥ ¢ÿÿÿëÐÎ&9 ¹ÿÿÿëÐÎ&J& Í €ÿÿÿëÐÎ&J& Í •ÿÿÿêëÎ&J& Í ªÿÿÿðÕÎ&A& à ¿ÿÿÿéãÎ&J& Í ÔÿÿÿçßÎ&S& × éÿÿÿïÕÎ&J& Í þÿÿÿíÕÎ&S& × ÿÿÿëÐÎ&S& × (ÿÿÿíÐÎ&S& × =ÿÿÿíÐÎ&S& × RÿÿÿìéÎ&S& × gÿÿÿîÔÎ&S& × |ÿÿÿîÖÎ&S& × ‘ÿÿÿçÛÎ&S& × ¦ÿÿÿïÐÎ&J& Í »ÿÿÿîÐÎ&J& Í ÐÿÿÿêéÎ&S& × åÿÿÿèãÎ&J& á úÿÿÿééÎ&J& Í ÿÿÿçÔÎ&J& á $ÿÿÿçâÎ&J& Í 9ÿÿÿçáÎ&S& × NÿÿÿëÐÎ&J& Í cÿÿÿíÕÎ&S& × xÿÿÿíØÎ&J& Í ÿÿÿçÜÎ&S& × ¢ÿÿÿëÐÎ& ê7ÿÿÿëÐÎ&H& þ €ÿÿÿëÐÎ&H& þ •ÿÿÿêëÎ&H& þ ªÿÿÿðÕÎ&?& ô ¿ÿÿÿéãÎ&H& þ ÔÿÿÿçßÎ&Q&  éÿÿÿïÕÎ&H& þ þÿÿÿíÕÎ&Q&  ÿÿÿëÐÎ&Q&  (ÿÿÿíÐÎ&Q&  =ÿÿÿíÐÎ&Q&  RÿÿÿìéÎ&Q&  gÿÿÿîÔÎ&Q&  |ÿÿÿîÖÎ&Q&  ‘ÿÿÿçÛÎ&Q&  ¦ÿÿÿïÐÎ&H& þ »ÿÿÿîÐÎ&H& þ ÐÿÿÿêéÎ&Q&  åÿÿÿèãÎ&H&  úÿÿÿééÎ&H& þ ÿÿÿçÔÎ&H&  $ÿÿÿçâÎ&H& þ 9ÿÿÿçáÎ&Q&  NÿÿÿëÐÎ&H& þ cÿÿÿíÕÎ&Q&  xÿÿÿíØÎ&H& þ ÿÿÿçÜÎ&Q&  ¢ÿÿ ëÅ&5 ÿÿÿëëÏ&F& 0 ÿÿÿëëÏ&F& 0 ”ÿÿÿêëÏ&F& 0 ©ÿÿÿðëÏ&=& & ¾ÿÿÿéëÏ&F& 0 ÓÿÿÿçëÏ&O& : èÿÿÿïëÏ&F& 0 ýÿÿÿíëÏ&O& : ÿÿÿëëÏ&O& : 'ÿÿÿîëÏ&O& : <ÿÿÿîëÏ&O& : QÿÿÿìëÏ&O& : fÿÿÿîëÏ&O& : {ÿÿÿìëÏ&O& : ÿÿÿçëÏ&O& : ¥ÿÿÿïëÏ&F& 0 ºÿÿÿîëÏ&F& 0 ÏÿÿÿêëÏ&O& : äÿÿÿèëÏ&F& D ùÿÿÿéëÏ&F& 0 ÿÿÿçëÏ&F& D #ÿÿÿçëÏ&F& 0 8ÿÿÿçëÏ&O& : MÿÿÿëëÏ&F& 0 bÿÿÿíëÏ&O& : wÿÿÿíëÏ&F& 0 ŒÿÿÿçëÏ&O& : ¡ÿÿÿëëÏ&6 MÿÿÿëëÏ&G& W ÿÿÿëëÏ&G& W ”ÿÿÿêëÏ&G& W ©ÿÿÿðëÏ&>& R ºÿÿÿéëÏ&G& W ÓÿÿÿçëÏ&P& l èÿÿÿïëÏ&G& W ýÿÿÿíëÏ&P& l ÿÿÿëëÏ&P& l 'ÿÿÿîëÏ&P& l <ÿÿÿîëÏ&P& l QÿÿÿìëÏ&P& l fÿÿÿîëÏ&P& l {ÿÿÿìëÏ&P& l ÿÿÿçëÏ&P& l ¥ÿÿÿïëÏ&G& W ºÿÿÿîëÏ&G& W ÏÿÿÿêëÏ&P& l äÿÿÿèëÏ&G& e ùÿÿÿéëÏ&G& W ÿÿÿçëÏ&G& W #ÿÿÿçëÏ&G& W 8ÿÿÿçëÏ&P& ^ MÿÿÿëëÏ&G& W bÿÿÿíëÏ&P& l wÿÿÿíëÏ&G& W ŒÿÿÿçëÏ&P& ^ ¡ÿÿÿëÐÎ&8 sÿÿÿëÐÎ&I&  ‚ÿÿÿëÐÎ&I&  —ÿÿÿêëÎ&I&  ¬ÿÿÿðÕÎ&@& z ÁÿÿÿéãÎ&I&  ÖÿÿÿçßÎ&R& – ëÿÿÿïÕÎ&I&  ÿÿÿíÕÎ&R& – ÿÿÿëÐÎ&R& – *ÿÿÿíÐÎ&R& – ?ÿÿÿíÐÎ&R& – TÿÿÿìéÎ&R& – iÿÿÿîÔÎ&R& – ~ÿÿÿîÖÎ&R& – “ÿÿÿçÛÎ&R& – ¨ÿÿÿïÐÎ&I&  ½ÿÿÿîÐÎ&I&  ÒÿÿÿêéÎ&R& – çÿÿÿèãÎ&I&  üÿÿÿééÎ&I&  ÿÿÿçÔÎ&I&  &ÿÿÿçÞÎ&I&  ;ÿÿÿçÞÎ&R& ˆ PÿÿÿëÐÎ&I&  eÿÿÿíÕÎ&R& – zÿÿÿíØÎ&I&  ÿÿÿçÜÎ&R& ˆ ¤ÿÿÿëÐÎ&: ÿÿÿëÐÎ&K& « ‚ÿÿÿëÐÎ&K& « —ÿÿÿêëÎ&K& « ¬ÿÿÿðÕÎ&B& ¤ ÁÿÿÿéãÎ&K& « ÖÿÿÿçßÎ&T& À ëÿÿÿïÕÎ&K& « ÿÿÿíÕÎ&T& À ÿÿÿëÐÎ&T& À *ÿÿÿíÐÎ&T& À ?ÿÿÿíÐÎ&T& À TÿÿÿìéÎ&T& À iÿÿÿîÔÎ&T& À ~ÿÿÿîÖÎ&T& À “ÿÿÿçÛÎ&T& À ¨ÿÿÿïÐÎ&K& « ½ÿÿÿîÐÎ&K& « ÒÿÿÿêéÎ&T& À çÿÿÿèãÎ&K& ¹ üÿÿÿééÎ&K& « ÿÿÿçÔÎ&K& ¹ &ÿÿÿçÞÎ&K& « ;ÿÿÿçÞÎ&T& ² PÿÿÿëÐÎ&K& « eÿÿÿíÕÎ&T& À zÿÿÿíØÎ&K& « ÿÿÿçÜÎ&T& ² ¤ÿÿÿëÐÎ&8 ÇÿÿÿëÐÎ&I& Õ ÿÿÿëÐÎ&I& Õ –ÿÿÿêëÎ&I& Õ «ÿÿÿðÕÎ&@& Î ÀÿÿÿéãÎ&I& Õ ÕÿÿÿçßÎ&R& ê êÿÿÿïÕÎ&I& Õ ÿÿÿÿíÕÎ&R& ê ÿÿÿëÐÎ&R& ê )ÿÿÿíÐÎ&R& ê >ÿÿÿíÐÎ&R& ê SÿÿÿëéÎ&R& ê hÿÿÿîÔÎ&R& ê }ÿÿÿîÖÎ&R& ê ’ÿÿÿçÛÎ&R& ê §ÿÿÿïÐÎ&I& Õ ¼ÿÿÿîÐÎ&I& Õ ÑÿÿÿêéÎ&R& ê æÿÿÿèãÎ&I& ã ûÿÿÿééÎ&I& Õ ÿÿÿçÔÎ&I& ã %ÿÿÿçÞÎ&I& Õ :ÿÿÿçÞÎ&R& Ü OÿÿÿëÐÎ&I& Õ dÿÿÿíÕÎ&R& ê yÿÿÿíØÎ&I& Õ ŽÿÿÿçÖÎ&R& Ü £ÿÿÿíëÏ&6 ñÿÿÿëëÏ&G& ÿ ÿÿÿëëÏ&G& ÿ ”ÿÿÿêëÏ&G& ÿ ©ÿÿÿðëÏ&>& ø ¾ÿÿÿéëÏ&G& ÿ ÓÿÿÿçëÏ&P&  èÿÿÿïëÏ&G& ÿ ýÿÿÿíëÏ&P&  ÿÿÿëëÏ&P&  'ÿÿÿîëÏ&P&  <ÿÿÿîëÏ&P&  QÿÿÿìëÏ&P&  fÿÿÿîëÏ&P&  {ÿÿÿìëÏ&P&  ÿÿÿçëÏ&P&  ¥ÿÿÿïëÏ&G& ÿ ºÿÿÿîëÏ&G& ÿ ÏÿÿÿêëÏ&P&  äÿÿÿèëÏ&G&  ùÿÿÿéëÏ&G& ÿ ÿÿÿçëÏ&G&  #ÿÿÿçëÏ&G& ÿ 8ÿÿÿçëÏ&P&  MÿÿÿëëÏ&G& ÿ bÿÿÿíëÏ&P&  wÿÿÿíëÏ&G& ÿ ŒÿÿÿçëÏ&P&  ¡ÿÿ ëÅ&5 ÿÿÿëëÏ&F& ( ÿÿÿëëÏ&F& ( ”ÿÿÿêëÏ&F& ( ©ÿÿÿðëÏ&=& ! ¾ÿÿÿéëÏ&F& ( ÓÿÿÿçëÏ&O& = èÿÿÿïëÏ&F& ( ýÿÿÿíëÏ&O& = ÿÿÿëëÏ&O& = 'ÿÿÿîëÏ&O& = <ÿÿÿîëÏ&O& = QÿÿÿìëÏ&O& = fÿÿÿîëÏ&O& = {ÿÿÿìëÏ&O& = ÿÿÿçëÏ&O& = ¥ÿÿÿïëÏ&F& ( ºÿÿÿîëÏ&F& ( ÏÿÿÿêëÏ&O& = äÿÿÿèëÏ&F& 6 ùÿÿÿéëÏ&F& ( ÿÿÿçëÏ&F& 6 #ÿÿÿçëÏ&F& ( 8ÿÿÿçëÏ&O& / MÿÿÿëëÏ&F& ( bÿÿÿíëÏ&O& = wÿÿÿíëÏ&F& ( ŒÿÿÿçëÏ&O& / ¡ÿÿÿëÐÎ& E7ÿÿÿëÐÎ&H& Q €ÿÿÿëÐÎ&H& Q •ÿÿÿêëÎ&H& Q ªÿÿÿðÕÎ&?& J ¿ÿÿÿéãÎ&H& Q ÔÿÿÿçßÎ&Q& f éÿÿÿïÕÎ&H& Q þÿÿÿíÕÎ&Q& f ÿÿÿëÐÎ&Q& f (ÿÿÿíÐÎ&Q& f =ÿÿÿíÐÎ&Q& f RÿÿÿìéÎ&Q& f gÿÿÿîÔÎ&Q& f |ÿÿÿîÖÎ&Q& f ‘ÿÿÿçÛÎ&Q& f ¦ÿÿÿïÐÎ&H& Q »ÿÿÿîÐÎ&H& Q ÐÿÿÿêéÎ&Q& f åÿÿÿèãÎ&H& _ úÿÿÿééÎ&H& Q ÿÿÿçÔÎ&H& _ $ÿÿÿçâÎ&H& Q 9ÿÿÿçáÎ&Q& X NÿÿÿëÐÎ&H& Q cÿÿÿíÕÎ&Q& f xÿÿÿíØÎ&H& Q ÿÿÿçÜÎ&Q& X ¢ÿÿÿëÐÎ&3 iÿÿÿëÐÎ&C& o }ÿÿÿëÐÎ&C& o ’ÿÿÿêëÎ&C& o §ÿÿÿðÕÎ&;& l ¼ÿÿÿéãÎ&C& o ÑÿÿÿçßÎ&L& u æÿÿÿïÕÎ&C& o ûÿÿÿíÕÎ& u&M ÿÿÿëÐÎ&L& u %ÿÿÿíÐÎ&L& u :ÿÿÿíÐÎ&L& u OÿÿÿëèÎ&L& u dÿÿÿîÔÎ&L& u yÿÿÿíÖÎ&L& u ŽÿÿÿçÛÎ&L& u £ÿÿÿïÐÎ&M& ´ oÿÿÿîÐÎ&C& o ÍÿÿÿêéÎ&L& u âÿÿÿèãÎ&C& r ÷ÿÿÿçéÎ&C& o ÿÿÿçÔÎ&C& r !ÿÿÿçÞÎ&C& o 6ÿÿÿçÞÎ&L& o KÿÿÿëÐÎ&C& o `ÿÿÿìÕÎ&L& u uÿÿÿíØÎ&C& o ŠÿÿÿçÖÎ&L& o ŸÿÿÿîïÏ&eªÿÿÿèîÊ&*?Æÿÿ ÿéìÍ& ²?Çÿÿ ÿéóÏ& ?ÌÿÿÿèïÏ&*+& ± ÿÿ ÿéôÐ&¾?Îÿÿ ÿçõÏ&<& ª?Ïÿÿ ÿéïÊ&?ÑÿÿÿèñÏ&n&s?ÒÿÿÿêôÑ&L?Óÿÿ ÿèôÑ&Ø?Öÿÿ ÿéõÐ& ²aÿÿ ÿéõÐ&\% ÿÿ ÿéõÐ&\ÿÿ ÿçöÏ&Ñ&r?×ÿÿ ÿèôÐ&…?ØÿÿÿéôÐ&æ…ÿÿÿéõÒ&—?ÙÿÿÿéíÏ&-Á0²ÿÿ ÿéíÏ&-Á.ùÿÿÿèñÏ&n-Âÿÿ ÿèðÒ& ?Ûÿÿ ÿéöÏ&Œ?Üÿÿ ÿèóÏ&-Ã.ôÿÿ ÿîóÏ&n& ù?Ýÿÿ ÿèôÐ&-Ä?Þÿÿ ÿéóÏ&?ßÿÿ ÿè÷Ò&3-Åÿÿ ÿè÷Ò&-ÅÿÿÿéêÎ&°-Èÿÿ ÿè÷Ï& ²-Æÿÿ ÿèöÐ&o-ÇÿÿÿéðÏ&?áÿÿÿê÷Ñ&±?ãÿÿÿçîÐ&å?äÿÿ ÿéóÐ&.7?åÿÿÿéöÒ&)ø0²ÿÿ ÿêõÐ&Ë?æÿÿ ÿíòÏ&ž?èÿÿ ÿéõÐ&Š‹ÿÿ ÿéõÌ& À?êÿÿ ÿéóÑ&@?ëÿÿ ÿèòÑ&P?ìÿÿÿéóÏ&C?íÿÿÿëôÏ&Ñ?ðÿÿ ÿéøÏ& ?óÿÿ ÿìõÐ&$?ôÿÿ ÿçóÃ&M?õÿÿÿé÷Ñ&Ì?öÿÿÿêöÐ&-¤?÷ÿÿ ÿêîÇ&0œ?ùÿÿ ÿéõÐ&ÈÿÿÿèïË& ¼+#ÿÿ ÿìóÈ&„&$?úÿÿ ÿèñÊ&E?ûÿÿ ÿçôÐ& 1ÿÿ ÿçôÐ&.ô?üÿÿ ÿèðË&.ô?ýÿÿ ÿçõÏ&0›?ÿÿÿÿéòÆ&@ÿÿ ÿéîÏ& ï ðÿÿ ÿèíÐ&1+@ÿÿ ÿéöÑ&&ùÇÿÿ ÿèóÏ&-ÉÇÿÿ ÿèòÐ&-Ê-Rÿÿ ÿèõÏ&-Ë@ÿÿÿèôÏ&Ñ-ÌÿÿÿèòÏ&m-ÊÿÿÿèóÐ&Ë0…ÿÿ ÿèôÑ&Ø@ÿÿ ÿéñÏ&'Ü@ÿÿ ÿéòÑ&&ƒ@ÿÿ ÿîõÏ&[@ÿÿÿéñÏ&@ÿÿÿêòÏ&ügÿÿ ÿè÷Ï& í"äÿÿ ÿèôÐ&ö!„ÿÿ ÿéóÍ& ²& ÿÿ ÿèôÏ&-ÍæÿÿÿëêÐ&¯@ ÿÿÿïñÑ&@ ÿÿ ÿéòÏ&k@ ÿÿ ÿéôÏ& ²Áÿÿ ÿéôÑ& ¸ÿÿ ÿéñÐ&v@ÿÿ ÿéôÏ&-ÏÿÿÿéõÐ&ÿÿ ÿêòÎ&-ÎÇÿÿ ÿèôÐ&•&”@ÿÿ ÿéòÏ&,@ÿÿ ÿêóÐ&-Ð@ÿÿÿéïÏ& ó@ÿÿ ÿéòÐ& ²@ÿÿÿéòÈ&C->ÿÿÿèíÉ&@ÿÿ ÿéóÌ&*@ÿÿ ÿéòÏ& @ÿÿ ÿèôÇ&s@ ÿÿ ÿèôÊ&A@!ÿÿ ÿèõÐ& Ô@"ÿÿ ÿéóÏ&9-Üÿÿ ÿëõÒ&„@#ÿÿ ÿçôÐ&@$ÿÿ ÿäøË&Ý&.ô@%ÿÿ ÿéòÏ&ë@&ÿÿ ÿäøÌ& @'ÿÿÿéñÐ&·¸ÿÿ ÿéõÏ&l@+ÿÿ ÿéòÏ&¤@-ÿÿÿéæÏ&¢@.ÿÿÿéëÉ&*' ³ÿÿ ÿîõÐ&[@4ÿÿ ÿéõÑ&&è@5ÿÿ ÿè÷Ñ&&Å@6ÿÿ ÿéòÑ&i@7ÿÿ ÿè÷Ò&o-Åÿÿ ÿéôÐ&á@8ÿÿÿééÇ&@9ÿÿ ÿèóÏ&Œ&\@;ÿÿ ÿéôÏ&-Ñ@<ÿÿ ÿéôÏ&À-Òÿÿ ÿèôÏ&-Ò@>ÿÿ ÿéòÏ&-Ó@?ÿÿ ÿéòÏ&-Ó@@ÿÿ ÿéóÌ& À@Aÿÿ ÿîòÎ&@BÿÿÿéõÏ&!@Cÿÿ ÿéìÏ&¸&@Dÿÿ ÿêóÐ&-Ô@EÿÿÿêòÐ@Fÿÿ ÿé÷Ï&N1ÿÿ ÿîõÉ&§@Gÿÿ ÿéôÏ& ízÿÿ ÿèòÉ&:@Iÿÿ ÿéöÏ&-Õ@Jÿÿ ÿèôÑ&Ø@Kÿÿ ÿéôÏ&ë'ãÿÿ ÿèõÏ&l@Mÿÿ ÿë÷Ò&ƒ@Nÿÿ ÿéòË&ä&ú@PÿÿÿèöÇ&ÝÞÿÿ ÿéëÐ&›@Qÿÿ ÿéôÏ&-Ùºÿÿ ÿéïÏ& &[@Rÿÿ ÿçõÏ& ²-Öÿÿ ÿèìÐ&Ö@Sÿÿ ÿèõÏ&X-×ÿÿÿéåÑ&)ß@Tÿÿ ÿçõÎ&-Ø@ÿÿ ÿëóÎ&-Ú@Uÿÿ ÿéóÏ&„@Vÿÿ ÿèóÐ&<@XÿÿÿéòÏ&m@Yÿÿ ÿéøÏ& ì„ÿÿ ÿéôÏ&Œ ÿÿ ÿéøÏ&„ ²ÿÿ ÿéøÏ& Ô $ÿÿ ÿéôÐ&& ÿÿ ÿéóÏ&9@Zÿÿ ÿèôÇ&”@[ÿÿÿéóÏ&@\ÿÿÿéóÍ&m&Y@]ÿÿ ÿéæÐ&÷¢ÿÿ ÿèòÊ&E&F@^ÿÿ ÿæéÇ&I@_ÿÿ ÿéóÐ&~5ÿÿ ÿèôÎ&©&”@`ÿÿ ÿçñÍ& ²Éÿÿ ÿñóÄ&çÿÿÿéíÉ&Á@bÿÿ ÿèóÐ&ì@dÿÿÿðîÊ&ñóÿÿ ÿèíÍ& ²@gÿÿ ÿéóÏ&ë-Ûÿÿ ÿéóÎ&X-ÛÿÿÿéñÏ&n@iÿÿÿéôÎ&%'ÿÿ ÿéôÐ&†ÿÿ ÿéôÏ&*Û@jÿÿÿéõÏ&¸…ÿÿ ÿèöÏ&.ì.ôÿÿÿéòÏ&*Ü&@kÿÿ ÿóòÑ&Ô*Þÿÿ ÿéóÐ&*ß@lÿÿ ÿéöÏ&Kÿÿ ÿèóÑ& @mÿÿ ÿçóÏ& ëVÿÿ ÿéöÏ&m@oÿÿ ÿéëÏ&›@pÿÿ ÿéñÏ&ÃÿÿÿìíÐ&í@tÿÿ ÿéêÍ& ²©ÿÿ ÿéõÉ&ª@uÿÿ ÿéïÏ& Îÿÿ ÿèóÏ& Ã×ÿÿÿé÷Ò&m@vÿÿÿèñÒ& @{ÿÿ ÿéöË&Xµÿÿ ÿé÷Ë&¶@|ÿÿÿéóÏ&V*àÿÿÿéóÏ&0²@~ÿÿ ÿéöÒ&h@ÿÿ ÿèõÈ&Ñ&t&Ò@€ÿÿ ÿéñÐ&o@ÿÿ ÿîóË& ö@‚ÿÿ ÿêòÏ&3*áÿÿÿéïÐ&*âRÿÿÿéóÏ&*â¹ÿÿÿéîÇ&*â" ÿÿ ÿéóÐ&*ã@ƒÿÿ ÿèóÏ&*ä•ÿÿ ÿèñÏ&l@…ÿÿ ÿéöÏ&k@†ÿÿÿòóÏ& æÿÿ ÿëôÉ&u@‰ÿÿ ÿëôÏ&u@Šÿÿ ÿèñÏ&Š@‹ÿÿ ÿéôÏ&¨@Œÿÿ ÿéòÏ&¨@ÿÿÿèñÑ&Ý@Žÿÿ ÿéíÑ&ˆ@ÿÿÿéñÑ&@’ $ÿö,7 9 : ;< =FÿøGÿøHÿøJÿûRÿøTÿøWYZ\wÿëÿø€ÿøÿø‚ÿø†ÿø‡ÿø‰ÿø¢ÿø°ÿö $ÿö , 7 9 : ; < = Fÿø Gÿø Hÿø Jÿû Rÿø Tÿø W Y Z \ wÿë ÿø €ÿø ÿø ‚ÿø †ÿø ‡ÿø ‰ÿø ¢ÿø °ÿö -&ÿø*ÿø2ÿø4ÿø7ÿó8ÿû9ÿó:ÿö<ÿózÿø&ÿø*ÿø2ÿø4ÿø7ÿó8ÿû9ÿó:ÿö<ÿózÿø$ÿö$ ÿö$&ÿý$*ÿý$2ÿý$4ÿý$7ÿñ$8ÿý$9ÿø$:ÿû$<ÿó$zÿý$¡ÿû$#ÿö$%ÿö%7ÿý%9ÿý%;ÿý%<ÿý&& & &&ÿû&*ÿû&2ÿû&4ÿû&@&`&zÿû&#&%'ÿø'ÿø'$ÿý',ÿý'7ÿø'9ÿý':ÿý';ÿý'<ÿû'=ÿý'wÿø'°ÿý)) ) )ÿó)ÿó)")$ÿû)9):)<)@)`)wÿø)°ÿû)#)%,, ,&ÿý,*ÿý,2ÿý,4ÿý,zÿý,¡ÿý,#,%.. .&ÿû.*ÿû.2ÿû.4ÿû.zÿû.¡ÿû.#.%/ÿó/ ÿó/&ÿý/*ÿý/2ÿý/4ÿý/7ÿñ/8ÿý/9ÿö/:ÿø/<ÿó/zÿý/¡ÿý/#ÿó/%ÿó2ÿø2ÿø2$ÿý2,ÿý27ÿø29ÿû2:ÿý2;ÿû2<ÿû2=ÿý2wÿû2°ÿý3ÿæ3ÿæ3$ÿö3&ÿý3;ÿý3<ÿý3=ÿû3wÿî3°ÿö4ÿø4ÿø4$ÿý4,ÿý47ÿø49ÿû4:ÿý4;ÿû4<ÿû4=ÿý4wÿø4°ÿý57ÿý7 7 7ÿó7ÿó7"7$ÿñ7&ÿø7*ÿø72ÿø74ÿø76ÿý777Dÿñ7Fÿñ7Gÿñ7Hÿñ7Jÿó7Pÿö7Qÿö7Rÿñ7Sÿö7Tÿñ7Uÿö7Vÿñ7Xÿö7Yÿø7Zÿø7[ÿø7\ÿø7]ÿø7wÿî7zÿø7}ÿñ7~ÿñ7ÿñ7€ÿñ7ÿñ7‚ÿñ7†ÿñ7‡ÿñ7‰ÿñ7Šÿö7‹ÿö7Œÿö7¡ÿø7¢ÿñ7°ÿñ7# 7% 8ÿû8ÿû8$ÿý8wÿû8°ÿý9 9 9ÿó9ÿó9"9$ÿø9&ÿû9*ÿû92ÿû94ÿû9Dÿø9Fÿø9Gÿø9Hÿø9Jÿø9Pÿû9Qÿû9Rÿø9Sÿû9Tÿø9Uÿû9Vÿû9Xÿû9wÿñ9zÿû9}ÿø9~ÿø9ÿø9€ÿø9ÿø9‚ÿø9†ÿø9‡ÿø9‰ÿø9Šÿû9‹ÿû9Œÿû9¡ÿû9¢ÿø9°ÿø9# 9% : : :ÿö:ÿö:$ÿû:&ÿý:*ÿý:2ÿý:4ÿý:Dÿû:Fÿû:Gÿû:Hÿû:Jÿý:Pÿý:Qÿý:Rÿû:Sÿý:Tÿû:Uÿý:Vÿû:Xÿý:]ÿý:wÿö:zÿý:}ÿû:~ÿû:ÿû:€ÿû:ÿû:‚ÿû:†ÿû:‡ÿû:‰ÿû:Šÿý:‹ÿý:Œÿý:¡ÿý:¢ÿû:°ÿû:# :% ;; ;&ÿû;*ÿû;2ÿû;4ÿû;Fÿý;Gÿý;Hÿý;Rÿý;Tÿý;zÿû;ÿý;€ÿý;ÿý;‚ÿý;†ÿý;‡ÿý;‰ÿý;¡ÿû;¢ÿý;#;%< < <ÿó<ÿó<"<$ÿó<&ÿû<*ÿû<2ÿû<4ÿû<6ÿý<Dÿó<Fÿó<Gÿó<Hÿó<Jÿó<Pÿø<Qÿø<Rÿó<Sÿø<Tÿó<Uÿø<Vÿö<Xÿø<[ÿû<\ÿý<]ÿø<wÿî<zÿû<}ÿó<~ÿó<ÿó<€ÿó<ÿó<‚ÿó<†ÿó<‡ÿó<‰ÿó<Šÿø<‹ÿø<Œÿø<¡ÿû<¢ÿó<°ÿó<# <% == =&ÿý=*ÿý=2ÿý=4ÿý=zÿý=¡ÿû=#=%>-D ÿûE ÿûFF F#F%H ÿûI I IYIZI\I# I% JJ JJJ#J%K ÿøNN N#N%P ÿûQ ÿûR[ÿûR]ÿýU U UDÿýUJÿýU}ÿýU~ÿýU# U% VV V#V%W W WWW# W% YY YIY# Y% Z Z ZIZ# Z% [[ [Rÿû[ÿû[†ÿû[‡ÿû[‰ÿû[¢ÿû[#[%\\ \I\#\%]Rÿý]ÿý]†ÿý]‡ÿý]‰ÿý]¢ÿý^-x$ÿýx°ÿýzÿøzÿøz$ÿýz,ÿýz7ÿøz9ÿûz:ÿýz;ÿûz<ÿûz=ÿýzwÿûz°ÿý} ÿû~ ÿû[ÿû]ÿý€ÿó€ ÿûÿó ÿû‚ÿó‚ ÿû†ÿî† ÿî†Iÿû†[ÿû†]ÿý‡ÿî‡ ÿî‡Iÿû‡[ÿû‡]ÿý‰[ÿû‰]ÿýŠÿøŠ ÿø‹ÿø‹ ÿøŒÿøŒ ÿø›ÿó› ÿó›&ÿý›*ÿý›2ÿý›4ÿý›7ÿñ›8ÿý›9ÿö›:ÿø›<ÿó›zÿý›¡ÿý›#ÿó›%ÿó¢[ÿû¢]ÿý¯ÿó¯ ÿó¯&ÿý¯*ÿý¯2ÿý¯4ÿý¯7ÿñ¯8ÿý¯9ÿö¯:ÿø¯<ÿó¯zÿý¯¡ÿý¯#ÿó¯%ÿó°ÿö° ÿö°&ÿý°*ÿý°2ÿý°4ÿý°7ÿñ°8ÿý°9ÿø°:ÿû°<ÿó°zÿý°¡ÿû°#ÿö°%ÿö· · ·ÿó·ÿó·"·$ÿø·&ÿû·*ÿû·2ÿû·4ÿû·Dÿø·Fÿø·Gÿø·Hÿø·Jÿø·Pÿû·Qÿû·Rÿø·Sÿû·Tÿø·Uÿû·Vÿû·Xÿû·wÿñ·zÿû·}ÿø·~ÿø·ÿø·€ÿø·ÿø·‚ÿø·†ÿø·‡ÿø·‰ÿø·Šÿû·‹ÿû·Œÿû·¡ÿû·¢ÿø·°ÿø·# ·% ÇÇ ÇIÇ#Ç%ÉÉ É#É%Ë ÿûÍ Í ÍÍÍ# Í% ÎÎ Î#Î%ÏÏ ÏIÏ#Ï%ÑÑ ÑIÑ# Ñ% × × ×××# ×% Ù[ÿûÙ]ÿýÚÚ ÚIÚ#Ú%Û[ÿûÛ]ÿýÝÝ ÝÿûÝ&ÿýÝ-Ý2ÿýÝ4ÿýÝzÿýÝ#Ý% #% #% #% #% #% #% #%ÿó ÿû"$ÿö","7 "9 ": ";"< "="Fÿø"Gÿø"Hÿø"Jÿû"Rÿø"Tÿø"W"Y"Z"wÿë"ÿø"€ÿø"ÿø"‚ÿø"†ÿø"‡ÿø"‰ÿø"¢ÿø"°ÿö$$ÿö$,$7 $9 $: $;$< $=$Fÿø$Gÿø$Hÿø$Jÿû$Rÿø$Tÿø$W$Y$Z$wÿë$ÿø$€ÿø$ÿø$‚ÿø$†ÿø$‡ÿø$‰ÿø$¢ÿø$°ÿö ¢ d &d Š <˜ &d Ô "ì œ (ª Ò Ðî 8¾ \öDigitized data copyright Google Corporation © 2006Droid Sans FallbackRegularAscender - Droid Sans FallbackVersion 2.00DroidSansFallbackDroid is a trademark of Google and may be registered in certain jurisdictions.Ascender CorporationSteve MattesonDroid Sans is a humanist sans serif typeface designed for user interfaces and electronic communications.http://www.ascendercorp.com/http://www.ascendercorp.com/typedesigners.htmlÿì ÿÿrt-4.4.4/share/static/css/000755 000765 000024 00000000000 13437510132 016176 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/static/images/000755 000765 000024 00000000000 13437510132 016653 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/static/js/000755 000765 000024 00000000000 13437510132 016022 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/static/RichText/000755 000765 000024 00000000000 13437510132 017140 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/static/RichText/plugins/000755 000765 000024 00000000000 13437510132 020621 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/static/RichText/contents.css000644 000765 000024 00000003463 13437510132 021515 0ustar00sunnavystaff000000 000000 /* Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ body { /* Font */ font-family: sans-serif, Arial, Verdana, "Trebuchet MS"; font-size: 12px; /* Text color */ color: #333; /* Remove the background color to make it transparent */ background-color: transparent; margin: 20px; } .cke_editable { font-size: 13px; line-height: 1.6; } blockquote { font-style: italic; font-family: Georgia, Times, "Times New Roman", serif; padding: 2px 0; border-style: solid; border-color: #ccc; border-width: 0; } .cke_contents_ltr blockquote { padding-left: 20px; padding-right: 8px; border-left-width: 5px; } .cke_contents_rtl blockquote { padding-left: 8px; padding-right: 20px; border-right-width: 5px; } a { color: #0782C1; } ol,ul,dl { /* IE7: reset rtl list margin. (#7334) */ *margin-right: 0px; /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/ padding: 0 40px; } h1,h2,h3,h4,h5,h6 { font-weight: normal; line-height: 1.2; } hr { border: 0px; border-top: 1px solid #ccc; } img.right { border: 1px solid #ccc; float: right; margin-left: 15px; padding: 5px; } img.left { border: 1px solid #ccc; float: left; margin-right: 15px; padding: 5px; } pre { white-space: pre-wrap; /* CSS 2.1 */ word-wrap: break-word; /* IE7 */ -moz-tab-size: 4; tab-size: 4; } .marker { background-color: Yellow; } span[lang] { font-style: italic; } figure { text-align: center; border: solid 1px #ccc; border-radius: 2px; background: rgba(0,0,0,0.05); padding: 10px; margin: 10px 20px; display: inline-block; } figure > figcaption { text-align: center; display: block; /* For IE8 */ } a > img { padding: 1px; margin: 1px; border: none; outline: 1px solid #0782C1; } rt-4.4.4/share/static/RichText/skins/000755 000765 000024 00000000000 13437510132 020267 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/static/RichText/config.js000644 000765 000024 00000004031 13437510132 020741 0ustar00sunnavystaff000000 000000 /** @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. * All rights reserved. * For licensing, see LICENSE.html or http://ckeditor.com/license */ CKEDITOR.editorConfig = function( config ) { // %REMOVE_START% // The configuration options below are needed when running CKEditor from source files. config.plugins = 'dialogui,dialog,a11yhelp,dialogadvtab,basicstyles,blockquote,clipboard,button,panelbutton,panel,floatpanel,colorbutton,menu,contextmenu,resize,toolbar,enterkey,entities,find,floatingspace,listblock,richcombo,font,format,htmlwriter,wysiwygarea,indent,justify,fakeobjects,link,indentlist,list,liststyle,magicline,pastetext,pastefromword,removeformat,selectall,sourcearea,specialchar,menubutton,tab,table,tabletools,undo,popup,autolink,horizontalrule'; config.skin = 'flat'; // %REMOVE_END% config.toolbar = 'Full'; config.toolbar_Full = [ ['Cut','Copy','Paste','PasteText','PasteFromWord'], ['Undo','Redo','-','-','SelectAll','RemoveFormat'], ['Table','HorizontalRule','SpecialChar','Link'], '/', ['Bold','Italic','Underline','Strike'], ['NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote'], ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], '/', ['Format','Font','FontSize'], ['TextColor'], ['Source'] ]; config.enterMode = CKEDITOR.ENTER_BR; config.shiftEnterMode = CKEDITOR.ENTER_P; config.enableTabKeyTools = true; config.htmlEncodeOutput = false; config.disableNativeSpellChecker = false; config.browserContextMenuOnCtrl = true; config.toolbarCanCollapse = true; config.toolbarStartupExpanded = false; config.font_names = 'Arial/Arial, Helvetica, sans-serif;' + 'Courier New/Courier New, Courier, monospace;' + 'Georgia/Georgia, serif;' + 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' + 'Tahoma/Tahoma, Geneva, sans-serif;' + 'Times New Roman/Times New Roman, Times, serif;' + 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' + 'Verdana/Verdana, Geneva, sans-serif'; }; rt-4.4.4/share/static/RichText/ckeditor.js000644 000765 000024 00001743124 13437510132 021316 0ustar00sunnavystaff000000 000000 /* Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ (function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"F7J9",version:"4.5.3",revision:"6c70c82",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d=0;r--)if(g[r].priority<=i){g.splice(r+1,0,j);return{removeListener:n}}g.unshift(j)}return{removeListener:n}}, once:function(){var a=Array.prototype.slice.call(arguments),b=a[1];a[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},f=0,h=function(){f=1};return function(i,j,n){var g=d(this)[i],i=a,A=f;a=f=0;if(g){var r=g.listeners;if(r.length)for(var r=r.slice(0),y,o=0;o=0&&f.listeners.splice(h,1)}},removeAllListeners:function(){var a=d(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=d(this)[a])&&a.listeners.length> 0}}}());CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fire.call(this,a,d,this)},CKEDITOR.editor.prototype.fireOnce=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fireOnce.call(this,a,d,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype)); CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),d=a.match(/edge[ \/](\d+.?\d*)/),b=a.indexOf("trident/")>-1,b=!(!d&&!b),b={ie:b,edge:!!d,webkit:!b&&a.indexOf(" applewebkit/")>-1,air:a.indexOf(" adobeair/")>-1,mac:a.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat"&&(!document.documentMode||document.documentMode<10),mobile:a.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return false;var a=document.domain,b= window.location.hostname;return a!=b&&a!="["+b+"]"},secure:location.protocol=="https:"};b.gecko=navigator.product=="Gecko"&&!b.webkit&&!b.ie;if(b.webkit)a.indexOf("chrome")>-1?b.chrome=true:b.safari=true;var c=0;if(b.ie){c=d?parseFloat(d[1]):b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode;b.ie9Compat=c==9;b.ie8Compat=c==8;b.ie7Compat=c==7;b.ie6Compat=c<7||b.quirks}if(b.gecko)if(d=a.match(/rv:([\d\.]+)/)){d=d[1].split(".");c=d[0]*1E4+(d[1]||0)*100+(d[2]|| 0)*1}b.air&&(c=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));b.webkit&&(c=parseFloat(a.match(/ applewebkit\/(\d+)/)[1]));b.version=c;b.isCompatible=!(b.ie&&c<7)&&!(b.gecko&&c<4E4)&&!(b.webkit&&c<534);b.hidpi=window.devicePixelRatio>=2;b.needsBrFiller=b.gecko||b.webkit||b.ie&&c>10;b.needsNbspFiller=b.ie&&c<11;b.cssClass="cke_browser_"+(b.ie?"ie":b.gecko?"gecko":b.webkit?"webkit":"unknown");if(b.quirks)b.cssClass=b.cssClass+" cke_browser_quirks";if(b.ie)b.cssClass=b.cssClass+(" cke_browser_ie"+(b.quirks? "6 cke_browser_iequirks":b.version));if(b.air)b.cssClass=b.cssClass+" cke_browser_air";if(b.iOS)b.cssClass=b.cssClass+" cke_browser_ios";if(b.hidpi)b.cssClass=b.cssClass+" cke_hidpi";return b}()); "unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var a= CKEDITOR.loadFullCore,d=CKEDITOR.loadFullCoreTimeout;if(a){CKEDITOR.status="basic_ready";a&&a._load?a():d&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},d*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={}; (function(){var a=[],d=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,e=/",amp:"&",quot:'"',nbsp:" ",shy:"­"},j=function(a,g){return g[0]=="#"?String.fromCharCode(parseInt(g.slice(1),10)):i[g]};CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(a,g){if(!a&&!g)return true;if(!a||!g||a.length!=g.length)return false;for(var b=0;b"+g+""):b.push('');return b.join("")},htmlEncode:function(a){return a===void 0||a===null?"":(""+a).replace(b,"&").replace(c,">").replace(e,"<")},htmlDecode:function(a){return a.replace(h,j)},htmlEncodeAttr:function(a){return CKEDITOR.tools.htmlEncode(a).replace(f,""")},htmlDecodeAttr:function(a){return CKEDITOR.tools.htmlDecode(a)},transformPlainTextToHtml:function(a, g){var b=g==CKEDITOR.ENTER_BR,c=this.htmlEncode(a.replace(/\r\n/g,"\n")),c=c.replace(/\t/g,"    "),i=g==CKEDITOR.ENTER_P?"p":"div";if(!b){var o=/\n{2}/g;if(o.test(c))var d="<"+i+">",j="",c=d+c.replace(o,function(){return j+d})+j}c=c.replace(/\n/g,"
");b||(c=c.replace(RegExp("
(?=)"),function(a){return CKEDITOR.tools.repeat(a,2)}));c=c.replace(/^ | $/g," ");return c=c.replace(/(>|\s) /g,function(a,g){return g+" "}).replace(/ (?=<)/g," ")},getNextNumber:function(){var a= 0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},getUniqueId:function(){for(var a="e",g=0;g<8;g++)a=a+Math.floor((1+Math.random())*65536).toString(16).substring(1);return a},override:function(a,g){var b=g(a);b.prototype=a.prototype;return b},setTimeout:function(a,g,b,c,i){i||(i=window);b||(b=i);return i.setTimeout(function(){c?a.apply(b,[].concat(c)):a.apply(b)},g||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(g){return g.replace(a, "")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(g){return g.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(g){return g.replace(a,"")}}(),indexOf:function(a,g){if(typeof g=="function")for(var b=0,c=a.length;b=0?a[c]:null},bind:function(a,b){return function(){return a.apply(b, arguments)}},createClass:function(a){var b=a.$,c=a.base,i=a.privates||a._,d=a.proto,a=a.statics;!b&&(b=function(){c&&this.base.apply(this,arguments)});if(i)var o=b,b=function(){var a=this._||(this._={}),b;for(b in i){var g=i[b];a[b]=typeof g=="function"?CKEDITOR.tools.bind(g,this):g}o.apply(this,arguments)};if(c){b.prototype=this.prototypedCopy(c.prototype);b.prototype.constructor=b;b.base=c;b.baseProto=c.prototype;b.prototype.base=function(){this.base=c.prototype.base;c.apply(this,arguments);this.base= arguments.callee}}d&&this.extend(b.prototype,d,true);a&&this.extend(b,a,true);return b},addFunction:function(b,g){return a.push(function(){return b.apply(g||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var g=a[b];return g&&g.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,b;return function(c){b=CKEDITOR.tools.trim(c+"")+"px";return a.test(b)?b:c||""}}(),convertToPx:function(){var a;return function(b){if(!a){a= CKEDITOR.dom.element.createFromHtml('
',CKEDITOR.document);CKEDITOR.document.getBody().append(a)}if(!/%$/.test(b)){a.setStyle("width",b);return a.$.clientWidth}return b}}(),repeat:function(a,b){return Array(b+1).join(a)},tryThese:function(){for(var a,b=0,c=arguments.length;b]*?>)|^/i,'$&\n rt-4.4.4/share/static/RichText/plugins/wsc/dialogs/ciframe.html000644 000765 000024 00000003232 13437510132 025333 0ustar00sunnavystaff000000 000000

rt-4.4.4/share/static/RichText/plugins/wsc/dialogs/wsc.js000644 000765 000024 00000134525 13437510132 024203 0ustar00sunnavystaff000000 000000 /* Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ (function(){function v(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}function E(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",e;for(e in a)for(var f in a[e]){var g=a[e][f];"en_US"==g?d=g:c.push(g)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var e in a[d])if(e.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var e in a[d])c[a[d][e]]= e;return c}()}}var h=function(){var a=function(a,b,e){var e=e||{},f=e.expires;if("number"==typeof f&&f){var g=new Date;g.setTime(g.getTime()+1E3*f);f=e.expires=g}f&&f.toUTCString&&(e.expires=f.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,i;for(i in e)b=e[i],a+="; "+i,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){window.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=Object.prototype.toString,e= a.fn||null,f=a.id||"",g=a.target||window,i=a.message||{id:f};a.message&&"[object Object]"==b.call(a.message)&&(a.message.id||(a.message.id=f),i=a.message);a=window.JSON.stringify(i,e);g.postMessage(a,"*")},unbindHandler:function(a){window.removeEventListener?window.removeEventListener("message",a,!1):window.detachEvent("onmessage",a)}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}},misc:{findFocusable:function(a){var b=null;a&&(b=a.find("a[href], area[href], input, select, textarea, button, *[tabindex], *[contenteditable]"));return b},isVisible:function(a){return!(0===a.offsetWidth||0==a.offsetHeight||"none"===(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(a,null).display:a.currentStyle?a.currentStyle.display:a.style.display))}, hasClass:function(a,b){return!(!a.className||!a.className.match(RegExp("(\\s|^)"+b+"(\\s|$)")))}}}}(),a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode=null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame= {};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.sessionid="";a.LocalizationButton={ChangeTo_button:{instance:null,text:"Change to",localizationID:"ChangeTo"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null,text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking_button:{instance:null,text:"Finish Checking",localizationID:"FinishChecking"}, FinishChecking_button_block:{instance:null,text:"Finish Checking",localizationID:"FinishChecking"}};a.LocalizationLabel={ChangeTo_label:{instance:null,text:"Change to",localizationID:"ChangeTo"},Suggestions:{instance:null,text:"Suggestions"},Categories:{instance:null,text:"Categories"},Synonyms:{instance:null,text:"Synonyms"}};var F=function(b){var c,d,e;for(e in b)c=(c=a.dialog.getContentElement(a.dialog._.currentTabId,e))?c.getElement():b[e].instance.getElement().getFirst()||b[e].instance.getElement(), d=b[e].localizationID||e,c.setText(a.LocalizationComing[d])},G=function(b){var c,d,e;for(e in b)if(c=a.dialog.getContentElement(a.dialog._.currentTabId,e),c||(c=b[e].instance),c.setLabel)d=b[e].localizationID||e,c.setLabel(a.LocalizationComing[d]+":")},n,w;a.framesetHtml=function(b){return"'};a.setIframe=function(b,c){var d; d=a.framesetHtml(c);var e=a.iframeNumber+"_"+c;b.getElement().setHtml(d);d=document.getElementById(e);d=d.contentWindow?d.contentWindow:d.contentDocument.document?d.contentDocument.document:d.contentDocument;d.document.open();d.document.write('iframe
autocomplete="off" />
<%ARGS> $Name $Size => undef $Rows => 5 $Default => '' @Values => () $Class => '' rt-4.4.4/share/html/Widgets/SelectionBox000644 000765 000024 00000015516 13437510132 021022 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# The SelectionBox Widget %# %# SYNOPSIS %# %# <%init>: %# my $sel = $m->comp ('/Widgets/SelectionBox:new', %# Action => me.html', %# Name => 'my-selection', %# Available => \@items, %# # you can do things with @{$sel->{Current}} in the %# # OnSubmit callback %# OnSubmit => sub { my $sel = shift; }, %# Selected => \@selected); %# %# $m->comp ('/Widgets/SelectionBox:process', %ARGS, self => $sel) %# %# where @items is an arrayref, each element is [value, label], %# and @selected is an arrayref of selected values from @items. %# %# and in html: %# <& /Widgets/SelectionBox:show, self => $sel &> %# %# if the SelectionBox is created with AutoSave option, OnSubmit will be called %# on every button clicked <%method new> <%init> $ARGS{_item_map} = {map {$_->[0] => $_->[1]} @{$ARGS{Available}}}; return \%ARGS; <%method process> <%init> unless ($ARGS{$self->{Name}.'-Submit'}) { # init $self->{Current} = $self->{Selected}; $self->{Selected} = []; return; } $self->{Selected} = $ARGS{$self->{Name}.'-Selected'}; if ($self->{Selected} && !ref($self->{Selected})) { $self->{Selected} = [$self->{Selected}]; } my $current = $self->{Current} = $ARGS{$self->{Name}.'-Current'}; if ($current && !ref ($current)) { $current = [$current]; } unless ($self->{ReadOnly}) { ++$self->{Modified}; if ($ARGS{add}) { my $choosed = $ARGS{$self->{Name}.'-Available'}; for my $add (ref($choosed) ? @$choosed : $choosed) { next if grep { $_ eq $add } @$current; push @$current, $add; } } if ($ARGS{remove}) { my $choosed = $ARGS{$self->{Name}.'-Selected'}; for my $del (ref($choosed) ? @$choosed : $choosed) { @$current = map { $_ eq $del ? () : $_ } @$current; } } if ($ARGS{moveup} or $ARGS{movedown}) { my $offset = $ARGS{moveup} ? 1 : 0; my $choosed = $ARGS{$self->{Name}.'-Selected'}; $choosed = [$choosed] unless ref ($choosed); my $canmove = 0; # not in the cornor for my $i ($ARGS{moveup} ? 0..$#{$current} : reverse 0..$#{$current}) { if (grep {$_ eq $current->[$i]} @$choosed) { if ($canmove) { splice (@$current, $i-$offset, 2, @{$current}[$i+1-$offset,$i-$offset]); } } else { ++$canmove; } } } if ($ARGS{clear}) { $current = []; } $self->{Current} = $current; } @{$self->{Current}} = grep { exists $self->{_item_map}{$_} } @{$self->{Current}}; if ($self->{AutoSave} or $ARGS{$self->{Name}.'-Save'}) { $self->{OnSubmit}->($self); delete $self->{Modified}; } <%ARGS> $self => undef <%method current> % for (@{$self->{Current}}) { % } <%INIT> <%ARGS> $self => undef <%method show>
<& SelectionBox:current, self => $self &> <&|/l&>Available:
% unless ($self->{ReadOnly}) { % } % unless ($self->{'ReadOnly'}) { % unless ($ARGS{'NoArrows'}) { % } % if ($ARGS{'Clear'}) { % } % if ( $ARGS{'ShowUpdate'} ) { % } % } % my $caption = ""; % unless ($self->{'AutoSave'}) { % if ($self->{Modified}) { % $caption = loc('Selections modified. Please save your changes'); % } <& /Elements/Submit, Caption => loc($caption), Label => loc('Save'), Name => $name.'-Save' &> % }
<%ARGS> $self => undef $size => 10 <%INIT> my $name = $self->{Name}; my %selected = map {$_ => 1} @{$self->{Selected}}; rt-4.4.4/share/html/Widgets/TitleBox000644 000765 000024 00000004452 13437510132 020153 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
% if ($hide_chrome) { <% $content | n %> % } else { <& TitleBoxStart, %ARGS &><% $content | n %><& TitleBoxEnd &> % }
<%ARGS> $class => '' $hide_empty => 0 $hide_chrome => 0 <%INIT> my $content = $m->content; return if $hide_empty && $content =~ /^\s*$/s; rt-4.4.4/share/html/Widgets/FinalizeWidgetArguments000644 000765 000024 00000004775 13437510132 023224 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my %args = %$WidgetArguments; %args = (%args, %{ $args{Callback}->() }) if $args{Callback}; $args{'Description'} = loc( $args{'Description'} ) if $args{'Description'}; $args{'Hints'} = loc( $args{'Hints'} ) if $args{'Hints'}; if ( $args{'ValuesLabel'} ) { my %labels; $labels{$_} = loc( $args{'ValuesLabel'}->{$_} ) for keys %{$args{'ValuesLabel'}}; $args{'ValuesLabel'} = \%labels; } return \%args; <%args> $WidgetArguments => {} rt-4.4.4/share/html/Widgets/BulkProcess000644 000765 000024 00000005036 13437510132 020654 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> for my $type ( @$Types ) { my $value = $m->comp( $Meta->{$type}{Widget} . ':Process', Name => $type, Arguments => $Arguments, Default => $Default, DefaultValue => $DefaultValue->{$type}, %{ $Meta->{$type}{WidgetArguments} }, ); unless ( $KeepUndef || defined $value ) { delete $Store->{$type}; } else { $Store->{$type} = $value; } } <%args> $Arguments $Types $Store $Meta => {} $KeepUndef => 0 $Default => 0 $DefaultValue => {} rt-4.4.4/share/html/Widgets/TitleBoxStart000644 000765 000024 00000007027 13437510132 021172 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
<% $rolledup ? " rolled-up" : ""%>" id="<% $id %>">
"> % if ($hideable) { % } <% $title_href ? qq[] : '' | n %><% $title %><% $title_raw |n %><% $title_href ? "" : '' |n%> \ <% $titleright_href ? qq[] : '' | n %>\ <% $titleright %><% $titleright_raw |n%><% $titleright_href ? "" : '' |n%>\
" id="<% $tid %>"> <%ARGS> $class => '' $bodyclass => '' $title_href => '' $title => '' $title_raw => '' $title_class => '' $titleright_href => '' $titleright => '' $titleright_raw => '' $id => '' $hideable => 1 $rolledup => 0 <%init> $hideable = 1 if $rolledup; # # This should be pretty bulletproof # my $page = $m->request_comp->path; my $title_b64 = MIME::Base64::encode_base64(Encode::encode( "UTF-8", $title), ''); my $tid = "TitleBox--$page--" . join '--', ($class, $bodyclass, $title_b64, $id); # Replace anything that ISN'T alphanumeric, a hyphen, or an underscore $tid =~ s{[^A-Za-z0-9\-_]}{_}g; my $i = 0; $i++ while $m->notes("$tid-$i"); $m->notes("$tid-$i" => 1); $tid = "$tid-$i"; rt-4.4.4/share/html/Widgets/Form/Boolean000644 000765 000024 00000007107 13437510132 020703 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%DOC> see docs/extending/using_forms_widgets.pod
<% $Description %> <& SELF:InputOnly, %ARGS &> <% $Hints %>
<%ARGS> $Name => undef, $Description => undef, $Hints => '' <%METHOD InputOnly> <%ARGS> $Name => undef, $Default => 0, $DefaultValue => 0, $DefaultLabel => loc( 'Use default ([_1])', $DefaultValue? loc('Yes'): loc('No') ), $CurrentValue => undef, % unless ( $Default ) { \ />\ % } else { % } <%METHOD Process> <%ARGS> $Name $Arguments => {}, $Default => 0, $DefaultValue => 0, <%INIT> my $value = $Arguments->{ $Name }; if ( $Default ) { return undef if !defined $value || $value eq '__empty_value__'; return $value? 1: 0; } else { return $value? 1: 0 if defined $value; return $DefaultValue; } rt-4.4.4/share/html/Widgets/Form/Integer000644 000765 000024 00000006141 13437510132 020716 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%DOC> see docs/extending/using_forms_widgets.pod
<% $Description %> <& SELF:InputOnly, %ARGS &> % if ( $Default ) { <% $DefaultLabel %> % } <% $Hints %>
<%INIT> $_ = '' foreach grep !defined, $CurrentValue, $DefaultValue; $DefaultLabel ||= loc( 'Default: [_1]', $DefaultValue ); <%ARGS> $Name $Description => undef, $Hints => '' $CurrentValue => '', $Default => 0, $DefaultValue => 0, $DefaultLabel => undef <%METHOD InputOnly> \ <%ARGS> $Name $CurrentValue => '', <%INIT> $CurrentValue = '' unless defined $CurrentValue; <%METHOD Process> <%ARGS> $Name $Arguments => {}, $Default => 0, $DefaultValue => '', <%INIT> my $value = $Arguments->{ $Name }; if ( !defined $value || $value eq '' ) { return $DefaultValue unless $Default; return undef; } return $value; rt-4.4.4/share/html/Widgets/Form/String000644 000765 000024 00000006364 13437510132 020576 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%DOC> see docs/extending/using_forms_widgets.pod
<% $Description %> <& SELF:InputOnly, %ARGS &> % if ( $Default ) { <% $DefaultLabel %> % } <% $Hints %>
<%ARGS> $Name $Description => undef, $Hints => '' $CurrentValue => '', $Default => 0, $DefaultValue => '', $DefaultLabel => loc( 'Default: [_1]', $DefaultValue ), <%METHOD InputOnly> \ <%ARGS> $Name $CurrentValue => '', $Type => 'text' <%METHOD Process> <%ARGS> $Name $Arguments => {}, $Default => 0, $DefaultValue => '', <%INIT> my $value = $Arguments->{ $Name }; $value = '' unless defined $value; # canonicalize: delete leading and trailing spaces, replaces newlines # with one space and then replace all continuouse spaces with one ' ' # (including tabs and other fancy things) $value =~ s/^\s+//; $value =~ s/\s+$//; $value =~ s/\r*\n/ /g; $value =~ s/\s+$/ /g; if ( $value eq '' ) { return $DefaultValue unless $Default; return undef; } return $value; rt-4.4.4/share/html/Widgets/Form/Select000644 000765 000024 00000011647 13437510132 020547 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%DOC> see docs/extending/using_forms_widgets.pod
% if ( $Description ) { <% $Description %> % } <& SELF:InputOnly, %ARGS &> <% $Hints %>
<%ARGS> $Name $Description => undef, $Hints => '' <%METHOD InputOnly> <%ARGS> $Name $Description => undef, @Values => (), $ValuesCallback => undef, %ValuesLabel => (), @CurrentValue => (), $Default => 1, @DefaultValue => (), $DefaultLabel => undef, $Alternative => 0, $AlternativeLabel => loc('other...'), $Multiple => 0, % if ( $Alternative ) { % } <%INIT> my %CurrentValue = map {$_ => 1} grep defined, @CurrentValue; if ( $ValuesCallback ) { my $values = $ValuesCallback->( CurrentUser => $session{'CurrentUser'}, Name => $Name, ); if ( ref $values eq 'ARRAY' ) { @Values = @$values; } else { %ValuesLabel = %$values; @Values = keys %ValuesLabel; } } unless (defined $DefaultLabel ) { $DefaultLabel = loc('Use system default ([_1])', join ', ', map loc(ref($ValuesLabel{$_}) ? @{ $ValuesLabel{$_ }} : $ValuesLabel{$_} || $_), grep defined, @DefaultValue ); } <%METHOD Process> <%ARGS> $Name $Arguments => {}, @Values => (), %ValuesLabel => (), $Default => 0, @DefaultValue => (), $Alternative => 0, $Multiple => 0, <%INIT> my $value = $Arguments->{ $Name }; if( !defined $value || $value eq '__empty_value__' ) { return undef if $Default; return [ @DefaultValue ] if $Multiple; return $DefaultValue[0]; } $value = [$value] unless ref $value; if ( $Alternative ) { my $alt = $Arguments->{ "Alternative-". $Name }; if( $Multiple ) { push @$value, split /\s*,\s*/, $alt; } else { push @$value, $alt; } } splice @$value, 1 unless $Multiple; # XXX: check values return $value->[0] unless $Multiple; return $value; rt-4.4.4/share/html/REST/1.0/000755 000765 000024 00000000000 13437510132 016136 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/Forms/000755 000765 000024 00000000000 13437510132 017224 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/NoAuth/000755 000765 000024 00000000000 13437510132 017334 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/dhandler000644 000765 000024 00000025010 13437510132 017640 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/dhandler %# <%ARGS> @id => () $fields => undef $format => undef $content => undef <%INIT> use RT::Interface::REST; my $output = ""; my $status = "200 Ok"; my $object = $m->dhandler_arg; my $name = qr{[\w.-]+}; my $list = '(?:(?:\d+-)?\d+,)*(?:\d+-)?\d+'; my $label = '[^,\\/]+'; my $field = RT::Interface::REST->field_spec; my $labels = "(?:$label,)*$label"; # We must handle requests such as the following: # # 1. http://.../REST/1.0/show (with a list of object specifications). # 2. http://.../REST/1.0/edit (with a self-contained list of forms). # 3. http://.../REST/1.0/ticket/show (implicit type specification). # http://.../REST/1.0/ticket/edit # 4. http://.../REST/1.0/ticket/nn (all possibly with a single form). # http://.../REST/1.0/ticket/nn/history # http://.../REST/1.0/ticket/nn/comment # http://.../REST/1.0/ticket/nn/attachment/1 # # Objects are specified by their type, and either a unique numeric ID, # or a unique name (e.g. ticket/1, queue/foo). Multiple objects of the # same type may be specified by a comma-separated list of identifiers # (e.g., user/ams,rai or ticket/1-3,5-7). # # Ultimately, we want a list of object specifications to operate upon. # The URLs in (4) provide enough information to identify an object. We # will assemble submitted information into that format in other cases. # my (@objects, $forms); my $utype; if ($object eq 'show' || # $REST/show (($utype) = ($object =~ m{^($name)/show$}))) # $REST/ticket/show { # We'll convert type/range specifications ("ticket/1-3,7-9/history") # into a list of singular object specifications ("ticket/1/history"). # If the URL specifies a type, we'll accept only that one. foreach my $id (@id) { $id =~ s|^(?:$utype/)?|$utype/| if $utype; if (my ($type, $oids, $extra) = ($id =~ m#^($name)/($list|$labels)(?:(/.*))?$#o)) { $extra ||= ''; my ($attr, $args) = $extra =~ m{^(?:/($name)(?:/(.*))?)?$}o; my $tids; if ($attr and $attr eq 'history' and $args) { ($tids) = $args =~ m#id/(\d.*)#o; } # expand transaction and attachment range specifications # (if applicable) foreach my $oid (expand_list($oids)) { if ($tids) { push(@objects, "$type/$oid/$attr/id/$_") for expand_list($tids); } else { push(@objects, "$type/$oid$extra"); } } } else { $status = "400 Bad Request"; $output = "Invalid object ID specified: '$id'"; goto OUTPUT; } } } elsif ($object eq 'edit' || # $REST/edit (($utype) = ($object =~ m{^($name)/edit$}))) # $REST/ticket/edit { # We'll make sure each of the submitted forms is syntactically valid # and sufficiently identifies an object to operate upon, then add to # the object list as above. my @output; $forms = form_parse($content); foreach my $form (@$forms) { my ($c, $o, $k, $e) = @$form; if ($e) { push @output, [ "# Syntax error.", $o, $k, $e ]; } else { my ($type, $id); # Look for matching types in the ID, form, and URL. $type = $utype || $k->{id}; $type =~ s|^([^/]+)/\d+$|$1| if !$utype; $type =~ s|^(?:$utype)?|$utype/| if $utype; $type =~ s|/$|| if $type; if (exists $k->{id}) { $id = $k->{id}; $id =~ s|^(?:$type/)?|$type/| if $type; if ($id =~ m#^$name/(?:$label|\d+)(?:/.*)?#o) { push @objects, $id; } else { push @output, [ "# Invalid object ID: '$id'", $o, $k, $e ]; } } else { push @output, [ "# No object ID specified.", $o, $k, $e ]; } } } # If we saw any errors at this stage, we won't process any part of # the submitted data. if (@output) { unshift @output, [ "# Please resubmit with errors corrected." ]; $status = "409 Syntax Error"; $output = form_compose(\@output); goto OUTPUT; } } else { # We'll assume that this is in the correct format already. Otherwise # it will be caught by the loop below. push @objects, $object; if ($content) { $forms = form_parse($content); if (@$forms > 1) { $status = "400 Bad Request"; $output = "You may submit only one form to this object."; goto OUTPUT; } my ($c, $o, $k, $e) = @{ $forms->[0] }; if ($e) { $status = "409 Syntax Error"; $output = form_compose([ ["# Syntax error.", $o, $k, $e] ]); goto OUTPUT; } } } # Make sure we have something to do. unless (@objects) { $status = "400 Bad Request"; $output = "No objects specified."; goto OUTPUT; } # Parse and validate any field specifications. my (%fields, @fields); if ($fields) { unless ($fields =~ /^(?:$field,)*$field$/) { $status = "400 Bad Request"; $output = "Invalid field specification: $fields"; goto OUTPUT; } @fields = map lc, split /\s*,\s*/, $fields; @fields{@fields} = (); unless (exists $fields{id}) { unshift @fields, "id"; $fields{id} = (); } # canonicalize cf-foo to cf.{foo} for my $field (@fields) { if ($field =~ /^(c(?:ustom)?f(?:ield)?)-(.+)/) { $fields{"cf.{$2}"} = delete $fields{"$1-$2"}; # overwrite the element in @fields $field = "cf.{$2}"; } } } my (@comments, @output); foreach $object (@objects) { my ($handler, $type, $id, $attr, $args); my ($c, $o, $k, $e) = ("", ["id"], {id => $object}, 0); my $i = 0; if ($object =~ m{^($name)/(\d+|$label)(?:/($name)(?:/(.*))?)?$}o || $object =~ m{^($name)/(new)$}o) { ($type, $id, $attr, $args) = ($1, $2, ($3 || 'default'), $4); $handler = "Forms/$type/$attr"; unless ($m->comp_exists($handler)) { $args = defined $args ? "$attr/$args" : $attr; $handler = "Forms/$type/default"; unless ($m->comp_exists($handler)) { $i = 2; $c = "# Unknown object type: $type"; } } elsif ($id ne 'new' && $id !~ /^\d+$/) { my $ns = "Forms/$type/ns"; # Can we resolve named objects? unless ($m->comp_exists($ns)) { $i = 3; $c = "# Objects of type $type must be specified by numeric id."; } else { my ($n, $s) = $m->comp("Forms/$type/ns", id => $id); if ($n <= 0) { $i = 4; $c = "# $s"; } else { $i = 0; $id = $n; } } } else { $i = 0; } } else { $i = 1; $c = "# Invalid object specification: '$object'"; } if ($i != 0) { if ($content) { (undef, $o, $k, $e) = @{ shift @$forms }; } push @output, [ $c, $o, $k ]; next; } unless ($content) { my $d = $m->comp($handler, id => $id, args => $args, format => $format, fields => \%fields); my ($c, $o, $k, $e) = @$d; if (!$e && @$o && keys %fields) { my %lk = map { lc $_ => $_ } keys %$k; @$o = map { $lk{$_} } @fields; foreach my $key (keys %$k) { delete $k->{$key} unless exists $fields{lc $key}; } } push(@output, [ $c, $o, $k ]) if ($c || @$o || keys %$k); } else { my ($c, $o, $k, $e) = @{ shift @$forms }; my $d = $m->comp($handler, id => $id, args => $args, format => $format, changes => $k); ($c, $o, $k, $e) = @$d; # We won't pass $e through to compose, trusting instead that the # handler added suitable comments for the user. if ($e) { if (@$o) { $status = "409 Syntax Error"; } else { $status = "400 Bad Request"; } push @output, [ $c, $o, $k ]; } else { push @comments, $c; } } } unshift(@output, [ join "\n", @comments ]) if @comments; $output = form_compose(\@output); OUTPUT: $m->out("RT/".$RT::VERSION ." ".$status ."\n\n$output\n") if ($output || $status !~ /^200/); return; rt-4.4.4/share/html/REST/1.0/autohandler000644 000765 000024 00000004236 13437510132 020374 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/autohandler %# <%INIT> use RT::Interface::REST; $r->content_type('text/plain; charset=utf-8'); $m->error_format('text'); $m->call_next(); $m->abort(); rt-4.4.4/share/html/REST/1.0/logout000644 000765 000024 00000004234 13437510132 017375 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%PERL> if (keys %session) { RT::Interface::Web::InstantiateNewSession(); $session{CurrentUser} = RT::CurrentUser->new(); } RT/<% $RT::VERSION %> 200 Ok rt-4.4.4/share/html/REST/1.0/search/000755 000765 000024 00000000000 13437510132 017403 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/ticket/000755 000765 000024 00000000000 13437510132 017421 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/ticket/merge000644 000765 000024 00000006225 13437510132 020450 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/ticket/merge %# <%ARGS> $id => undef $into <%INIT> use RT::Interface::REST; my $output; my $status = "200 Ok"; my $ticket = RT::Ticket->new($session{CurrentUser}); my $object = $r->path_info; # http://.../REST/1.0/ticket/merge/1 $object =~ s#^/##; if ($id && $object && $id != $object) { $output = "Different ids in URL (`$object') and submitted form (`$id').\n"; $status = "400 Bad Request"; goto OUTPUT; } $id ||= $object; unless ($id =~ /^\d+$/ && $into =~ /^\d+$/) { my $bad = ($id !~ /^\d+$/) ? $id : $into; $output = $r->path_info. "\n"; $output .= "Invalid ticket id: `$bad'.\n"; $status = "400 Bad Request"; goto OUTPUT; } $ticket->Load($id); unless ($ticket->Id) { $output = "Couldn't load ticket id: `$id'.\n"; $status = "404 Ticket not found"; goto OUTPUT; } unless ($ticket->CurrentUserHasRight('ModifyTicket')) { $output = "You are not allowed to modify ticket $id.\n"; $status = "403 Permission denied"; goto OUTPUT; } my ($n, $s) = $ticket->MergeInto($into); if ($n == 0) { $status = "500 Error"; } $output = $s; OUTPUT: RT/<% $RT::VERSION %> <% $status %> <% $output |n %> rt-4.4.4/share/html/REST/1.0/ticket/comment000644 000765 000024 00000011401 13437510132 021003 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/ticket/comment %# <%ARGS> $content <%INIT> use MIME::Entity; use RT::Interface::REST; my $ticket = RT::Ticket->new($session{CurrentUser}); my $object = $r->path_info; my $status = "200 Ok"; my $output; my $action; # http://.../REST/1.0/ticket/1/comment my ($c, $o, $k, $e) = @{ form_parse($content)->[0] }; if ($e || !$o) { if (!$o) { $output = "Empty form submitted.\n"; } else { $c = "# Syntax error."; $output = form_compose([[$c, $o, $k, $e]]); } $status = "400 Bad Request"; goto OUTPUT; } $object =~ s#^/##; $object ||= $k->{Ticket}; unless ($object =~ /^\d+/) { $output = "Invalid ticket id: `$object'.\n"; $status = "400 Bad Request"; goto OUTPUT; } if ($k->{Ticket} && $object ne $k->{Ticket}) { $output = "The submitted form and URL specify different tickets.\n"; $status = "400 Bad Request"; goto OUTPUT; } ($action = $k->{Action}) =~ s/^(.)(.*)$/\U$1\L$2\E/; unless ($action =~ /^(?:Comment|Correspond)$/) { $output = "Invalid action: `$action'.\n"; $status = "400 Bad Request"; goto OUTPUT; } my $text = $k->{Text}; my @atts = @{ vsplit($k->{Attachment}) }; if (!$k->{Text} && @atts == 0) { $status = "400 Bad Request"; $output = "Empty comment with no attachments submitted.\n"; goto OUTPUT; } my $cgi = $m->cgi_object; my $ent = MIME::Entity->build( Type => "multipart/mixed", 'X-RT-Interface' => 'REST', ); $ent->attach( Type => "text/plain", Charset => "UTF-8", Data => Encode::encode( "UTF-8", $k->{Text} ), ) if $k->{Text}; { my ($res, $msg) = process_attachments($ent, @atts); unless ( $res ) { $status = "400 Bad Request"; $output = "$msg\n"; goto OUTPUT; } } $ticket->Load($object); unless ($ticket->Id) { $output = "Couldn't load ticket id: `$object'.\n"; $status = "404 Ticket not found"; goto OUTPUT; } unless ($ticket->CurrentUserHasRight('ModifyTicket') || ($action eq "Comment" && $ticket->CurrentUserHasRight("CommentOnTicket")) || ($action eq "Correspond" && $ticket->CurrentUserHasRight("ReplyToTicket"))) { $output = "You are not allowed to $action on ticket $object.\n"; $status = "403 Permission denied"; goto OUTPUT; } my $cc = join ", ", @{ vsplit($k->{Cc}) }; my $bcc = join ", ", @{ vsplit($k->{Bcc}) }; my ($n, $s) = $ticket->$action(MIMEObj => $ent, CcMessageTo => $cc, BccMessageTo => $bcc, TimeTaken => $k->{TimeWorked} || 0); $output = $s; if ($k->{Status}) { my ($status_n, $status_s) = $ticket->SetStatus($k->{'Status'} ); $output .= "\n".$status_s; } OUTPUT: RT/<% $RT::VERSION %> <% $status %> <% $output |n %> rt-4.4.4/share/html/REST/1.0/ticket/link000644 000765 000024 00000007532 13437510132 020310 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/ticket/link %# <%ARGS> $id => undef $del => 0 $rel $to <%INIT> use RT::Interface::REST; my $output; my $status = "200 Ok"; my $ticket = RT::Ticket->new($session{CurrentUser}); my $object = $r->path_info; my @fields = qw(DependsOn DependedOnBy RefersTo ReferredToBy HasMember MemberOf); my %fields = map { lc $_ => $_ } @fields; my %lfields = ( HasMember => { Type => 'MemberOf', Mode => 'Base' }, ReferredToBy => { Type => 'RefersTo', Mode => 'Base' }, DependedOnBy => { Type => 'DependsOn', Mode => 'Base' }, MemberOf => { Type => 'MemberOf', Mode => 'Target' }, RefersTo => { Type => 'RefersTo', Mode => 'Target' }, DependsOn => { Type => 'DependsOn', Mode => 'Target' }, ); # http://.../REST/1.0/ticket/link/1 $object =~ s#^/REST/1.0/ticket/link##; if ($id && $object && $id != $object) { $output = "Different ids in URL (`$object') and submitted form (`$id').\n"; $status = "400 Bad Request"; goto OUTPUT; } $id ||= $object; unless ($id =~ /^\d+$/) { $output = $r->path_info. "\n"; $output .= "Invalid ticket id: '$id'.\n"; $status = "400 Bad Request"; goto OUTPUT; } unless (exists $fields{lc $rel}) { $output = "Invalid link: '$rel'.\n"; $status = "400 Bad Request"; goto OUTPUT; } $rel = $fields{lc $rel}; $ticket->Load($id); unless ($ticket->Id) { $output = "Couldn't load ticket id: '$id'.\n"; $status = "404 Ticket not found"; goto OUTPUT; } my $type = $lfields{$rel}->{Type}; my $mode = $lfields{$rel}->{Mode}; my $n = 1; my $op = $del ? "DeleteLink" : "AddLink"; ($n, $output) = $ticket->$op(Type => $type, $mode => $to); if ($n == 0) { $status = "500 Error"; } else { my $action = $del ? "Deleted" : "Created"; $output .= " $action link " . $ticket->Id . " $rel $to"; } OUTPUT: RT/<% $RT::VERSION %> <% $status %> <% $output |n %> rt-4.4.4/share/html/REST/1.0/search/dhandler000644 000765 000024 00000021745 13437510132 021120 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/search/dhandler %# <%ARGS> $query $format => undef $orderby => undef $fields => undef <%INIT> my $type = $m->dhandler_arg; my ( $status, $output ); if ( $type =~ /^(ticket|queue|user|group)$/i ) { $status = "200 Ok"; $output = ''; my $type = lc $1; if ( $type eq 'user' && !$session{CurrentUser}->HasRight( Object => $RT::System, Right => 'AdminUsers', ) ) { $status = "403 Forbidden"; $output = "Permission denied"; goto OUTPUT; } my $class = 'RT::' . ucfirst $type . 's'; my $objects = $class->new( $session{CurrentUser} ); # Parse and validate any field specifications. require RT::Interface::REST; my $field = RT::Interface::REST->field_spec; my ( %fields, @fields ); if ($fields) { $format ||= "l"; unless ( $fields =~ /^(?:$field,)*$field$/ ) { $status = "400 Bad Request"; $output = "Invalid field specification: $fields"; goto OUTPUT; } @fields = map lc, split /\s*,\s*/, $fields; @fields{@fields} = (); unless ( exists $fields{id} ) { unshift @fields, "id"; $fields{id} = (); } } $format ||= "s"; if ( $format !~ /^[isl]$/ ) { $status = "400 Bad request"; $output = "Unknown listing format: $format. (Use i, s, or l.)\n"; goto OUTPUT; } my ( $n, $s ); $n = 0; my @output; if ( $type eq 'group' ) { $objects->LimitToUserDefinedGroups; } if ( defined $query && length $query ) { if ( $type eq 'ticket' ) { my ( $n, $s ); eval { ( $n, $s ) = $objects->FromSQL($query); }; if ( $@ || $n == 0 ) { $s ||= $@; $status = "400 Bad request"; $output = "Invalid query: '$s'.\n"; goto OUTPUT; } } else { require Text::ParseWords; my ( $field, $op, $value ) = Text::ParseWords::shellwords($query); if ( $op !~ /^(?:[!<>]?=|[<>]|(NOT )?LIKE|STARTSWITH|ENDSWITH|MATCHES)$/i ) { $status = "400 Bad Request"; $output = "Invalid operator specification: $op"; goto OUTPUT; } if ( ! $search_whitelist{$type}{lc $field} ) { $status = "400 Bad Request"; $output = "Invalid field specification: $field"; goto OUTPUT; } if ( $field && $op && defined $value ) { if ( $field eq 'Disabled' ) { if ($value) { if ( $type eq 'queue' ) { $objects->FindAllRows; $objects->Limit( FIELD => $field, OPERATOR => uc $op, VALUE => $value ); } else { $objects->LimitToDeleted; } } else { if ( $type eq 'queue' ) { $objects->UnLimit; } else { $objects->LimitToEnabled; } } } else { $objects->Limit( FIELD => $field, OPERATOR => uc $op, VALUE => $value, CASESENSITIVE => 0, ); } } else { $output = "Invalid query specification: $query"; goto OUTPUT; } } } else { if ( $type eq 'queue' ) { $objects->UnLimit; } elsif ( $type eq 'user' ) { $objects->LimitToPrivileged; } } if ($orderby) { my ( $order, $field ) = $orderby =~ /^([\+\-])?(.+)/; $order = $order && $order eq '-' ? 'DESC' : 'ASC'; $objects->OrderBy( FIELD => $field, ORDER => $order ); } while ( my $object = $objects->Next ) { next if $type eq 'user' && ( $object->id == RT->SystemUser->id || $object->id == RT->Nobody->id ); $n++; my $id = $object->Id; if ( $format eq "i" ) { $output .= "$type/" . $id . "\n"; } elsif ( $format eq "s" ) { if ($fields) { my $result = $m->comp( "/REST/1.0/Forms/$type/default", id => $id, format => $format, fields => \%fields ); my ( $notes, $order, $key_values, $errors ) = @$result; # If it's the first time through, add our header if ( $n == 1 ) { $output .= join( "\t", @$order ) . "\n"; } # Cut off the annoying $type/ before the id; $key_values->{'id'} = $id; $output .= join( "\t", map { ref $key_values->{$_} eq 'ARRAY' ? join( ', ', @{ $key_values->{$_} } ) : $key_values->{$_} } @$order ) . "\n"; } else { if ( $type eq 'ticket' ) { $output .= $object->Id . ": " . $object->Subject . "\n"; } else { $output .= $object->Id . ": " . $object->Name . "\n"; } } } else { my $d = $m->comp( "/REST/1.0/Forms/$type/default", id => $id, format => $format, fields => \%fields ); my ( $c, $o, $k, $e ) = @$d; push @output, [ $c, $o, $k ]; } } if ( $n == 0 && $format ne "i" ) { $output = "No matching results.\n"; } $output = form_compose( \@output ) if @output; } else { $status = "500 Server Error"; $output = "Unsupported object type."; goto OUTPUT; } OUTPUT: $m->out("RT/". $RT::VERSION . " " . $status ."\n\n"); $m->out($output ); <%ONCE> my %search_whitelist = ( queue => { map { lc $_ => 1 } grep { $RT::Record::_TABLE_ATTR->{'RT::Queue'}{$_}{read} } keys %{ $RT::Record::_TABLE_ATTR->{'RT::Queue'} } }, user => { disabled => 1, map { lc $_ => 1 } grep { $RT::Record::_TABLE_ATTR->{'RT::User'}{$_}{read} } keys %{ $RT::Record::_TABLE_ATTR->{'RT::User'} } }, group => { disabled => 1, map { lc $_ => 1 } grep { $RT::Record::_TABLE_ATTR->{'RT::Group'}{$_}{read} } keys %{ $RT::Record::_TABLE_ATTR->{'RT::Group'} } } ); rt-4.4.4/share/html/REST/1.0/NoAuth/mail-gateway000644 000765 000024 00000006035 13437510132 021644 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%flags> inherit => undef # inhibit UTF8 conversion done in /autohandler <%ARGS> $queue => 1 $action => "correspond" $ticket => undef <%init> $m->callback( %ARGS, CallbackName => 'Pre' ); use RT::Interface::Email; $r->content_type('text/plain; charset=utf-8'); $m->error_format('text'); my ( $status, $error, $Ticket ) = RT::Interface::Email::Gateway( \%ARGS ); if ( $status == 1 ) { $m->out("ok\n"); if ( $Ticket && $Ticket->Id ) { $m->out( 'Ticket: ' . ($Ticket->Id || '') . "\n" ); $m->out( 'Queue: ' . ($Ticket->QueueObj->Name || '') . "\n" ); $m->out( 'Owner: ' . ($Ticket->OwnerObj->Name || '') . "\n" ); $m->out( 'Status: ' . ($Ticket->Status || '') . "\n" ); $m->out( 'Subject: ' . ($Ticket->Subject || '') . "\n" ); $m->out( 'Requestor: ' . ($Ticket->Requestors->MemberEmailAddressesAsString || '') . "\n" ); } } else { if ( $status == -75 ) { $m->out( "temporary failure - $error\n" ); } else { $m->out( "not ok - $error\n" ); } } $m->abort(); rt-4.4.4/share/html/REST/1.0/Forms/transaction/000755 000765 000024 00000000000 13437510132 021551 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/Forms/group/000755 000765 000024 00000000000 13437510132 020360 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/Forms/attachment/000755 000765 000024 00000000000 13437510132 021354 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/Forms/user/000755 000765 000024 00000000000 13437510132 020202 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/Forms/queue/000755 000765 000024 00000000000 13437510132 020350 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/Forms/ticket/000755 000765 000024 00000000000 13437510132 020507 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/REST/1.0/Forms/ticket/merge000644 000765 000024 00000005610 13437510132 021533 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/ticket/merge %# <%ARGS> $id $args <%INIT> use RT::Interface::REST; my $into = $args; my $ticket = RT::Ticket->new($session{CurrentUser}); my $ticket_into = RT::Ticket->new($session{CurrentUser}); my ($c, $o, $k, $e) = ("", [], {}, 0); # http://.../REST/1.0/ticket/1/merge/6 (merges ticket 1 into ticket 6) $ticket->Load($id); if (!$ticket->Id) { $e = 1; $c = "# Ticket $id does not exist."; goto OUTPUT; } $ticket_into->Load($into); if (!$ticket_into->Id) { $e = 1; $c = "# Ticket $into does not exist."; goto OUTPUT; } if (!$ticket->CurrentUserHasRight('ModifyTicket')) { $e = 1; $c = "# You are not allowed to modify ticket $id."; goto OUTPUT; } my ($n, $s) = $ticket->MergeInto($into); if ($n == 0) { $e = 1; $c = "# Could not complete the merge."; } else { $c = "# Merge completed."; } OUTPUT: return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/ticket/comment000644 000765 000024 00000010112 13437510132 022067 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/ticket/comment %# <%ARGS> $id %changes <%INIT> use MIME::Entity; use RT::Interface::REST; $RT::Logger->debug("Got ticket id=$id for comment"); $RT::Logger->debug("Got args @{[keys(%changes)]}."); my $ticket = RT::Ticket->new($session{CurrentUser}); my ($c, $o, $k, $e) = ("", [], {}, 0); # http://.../REST/1.0/ticket/1/comment $ticket->Load($id); if (!$ticket->Id) { $e = 1; $c = "# Ticket $id does not exist."; goto OUTPUT; } my $action; ($action = $changes{Action}) =~ s/^(.)(.*)$/\U$1\L$2\E/; unless ($action =~ /^(?:Comment|Correspond)$/) { $e = 1; $c = "# Invalid action: `$action'."; goto OUTPUT; } my $text = $changes{Text}; my @atts = @{ vsplit($changes{Attachment}) }; if (!$changes{Text} && @atts == 0) { $e = 1; $c = "# Empty comment with no attachments submitted."; goto OUTPUT; } my $ent = MIME::Entity->build( Type => "multipart/mixed", 'X-RT-Interface' => 'REST', ); $ent->attach( Type => $changes{'Content-Type'} || 'text/plain', Charset => "UTF-8", Data => Encode::encode("UTF-8", $changes{Text} ), ) if $changes{Text}; { my ($status, $msg) = process_attachments($ent, @atts); unless ( $status ) { $e = 1; $c = "# $msg"; goto OUTPUT; } } unless ($ticket->CurrentUserHasRight('ModifyTicket') || ($action eq "Comment" && $ticket->CurrentUserHasRight("CommentOnTicket")) || ($action eq "Correspond" && $ticket->CurrentUserHasRight("ReplyToTicket"))) { $e = 1; $c = "# You are not allowed to $action on ticket $id."; goto OUTPUT; } my $cc = join ", ", @{ vsplit($changes{Cc}) }; my $bcc = join ", ", @{ vsplit($changes{Bcc}) }; my ($n, $s) = $ticket->$action(MIMEObj => $ent, CcMessageTo => $cc, BccMessageTo => $bcc, TimeTaken => $changes{TimeWorked} || 0); $c = "# ".$s; if ($changes{Status}) { my ($status_n, $status_s) = $ticket->SetStatus($changes{'Status'} ); $c .= "\n# ".$status_s; } OUTPUT: return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/ticket/default000644 000765 000024 00000043551 13437510132 022066 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/ticket/default %# <%ARGS> $id $changes => {} $fields => undef $args => undef <%INIT> use MIME::Entity; use RT::Interface::REST; my $cf_spec = RT::Interface::REST->custom_field_spec(1); my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my %data = %$changes; my $ticket = RT::Ticket->new($session{CurrentUser}); my @dates = qw(Created Starts Started Due Resolved Told LastUpdated); my @people = qw(Requestors Cc AdminCc); my @create = qw(Queue Requestor Subject Cc AdminCc Owner Status Priority InitialPriority FinalPriority TimeEstimated TimeWorked TimeLeft Starts Started Due Resolved Content-Type SLA); my @simple = qw(Subject Status Priority Disabled TimeEstimated TimeWorked TimeLeft InitialPriority FinalPriority); my %dates = map {lc $_ => $_} @dates; my %people = map {lc $_ => $_} @people; my %create = map {lc $_ => $_} @create; my %simple = map {lc $_ => $_} @simple; # Are we dealing with an existing ticket? if ($id ne 'new') { $ticket->Load($id); if (!$ticket->Id) { return [ "# Ticket $id does not exist.", [], {}, 1 ]; } elsif ( %data ) { if ( $data{status} && lc $data{status} eq 'deleted' && ! grep { $_ ne 'id' && $_ ne 'status' } keys %data ) { if ( !$ticket->CurrentUserHasRight('DeleteTicket') ) { return [ "# You are not allowed to delete ticket $id.", [], {}, 1 ]; } } elsif ( !$ticket->CurrentUserHasRight('ModifyTicket') ) { return [ "# You are not allowed to modify ticket $id.", [], {}, 1 ]; } } elsif (!$ticket->CurrentUserHasRight('ShowTicket')) { return [ "# You are not allowed to display ticket $id.", [], {}, 1 ]; } } else { if (!keys(%data)) { # GET ticket/new: Return a suitable default form. # We get defaults from queue/1 (XXX: What if it isn't there?). my $due = RT::Date->new($session{CurrentUser}); my $queue = RT::Queue->new($session{CurrentUser}); my $starts = RT::Date->new($session{CurrentUser}); $queue->Load(1); if ( $queue->DefaultValue('Due') ) { $due->Set( Format => 'unknown', Value => $queue->DefaultValue('Due') ); } if ( $queue->DefaultValue('Starts') ) { $starts->Set( Format => 'unknown', Value => $queue->DefaultValue('Starts') ); } else { $starts->SetToNow; } return [ "# Required: id, Queue", [ qw(id Queue Requestor Subject Cc AdminCc Owner Status Priority InitialPriority FinalPriority TimeEstimated Starts Due), ( $queue->SLADisabled ? () : 'SLA' ), qw(Attachment Text) ], { id => "ticket/new", Queue => $queue->Name, Requestor => $session{CurrentUser}->Name, Subject => "", Cc => [], AdminCc => [], Owner => "", Status => "new", Priority => $queue->DefaultValue('InitialPriority'), InitialPriority => $queue->DefaultValue('InitialPriority'), FinalPriority => $queue->DefaultValue('FinalPriority'), TimeEstimated => 0, Starts => $starts->ISO(Timezone => 'user'), Due => $due->IsSet ? $due->ISO(Timezone => 'user') : undef, SLA => '', Attachment => '', Text => "", }, 0 ]; } else { # We'll create a new ticket, and fall through to set fields that # can't be set in the call to Create(). my (%v, $text, @atts); foreach my $k (keys %data) { # flexibly parse any dates if ($dates{lc $k}) { my $time = RT::Date->new($session{CurrentUser}); $time->Set(Format => 'unknown', Value => $data{$k}); $data{$k} = $time->ISO; } if (exists $create{lc $k}) { $v{$create{lc $k}} = delete $data{$k}; } # Set custom field elsif ($k =~ /^$cf_spec/) { my $key = $1 || $2; my $cf = RT::CustomField->new( $session{CurrentUser} ); $cf->LoadByName( Name => $key, LookupType => RT::Ticket->CustomFieldLookupType, ObjectId => $data{Queue} || $v{Queue}, IncludeGlobal => 1, ); if (not $cf->id) { push @comments, "# Invalid custom field name ($key)"; delete $data{$k}; next; } my $val = delete $data{$k}; next unless defined $val && length $val; $v{"CustomField-".$cf->Id()} = $cf->SingleValue ? $val : vsplit($val,1); } elsif (lc $k eq 'text') { $text = delete $data{$k}; } elsif (lc $k eq 'attachment') { push @atts, @{ vsplit(delete $data{$k}) }; } elsif ( $k !~ /^(?:id|requestors)$/i ) { $e = 1; push @$o, $k; push(@comments, "# $k: Unknown field"); } } if ( $e ) { unshift @comments, "# Could not create ticket."; $k = \%data; goto DONE; } # people fields allow multiple values $v{$_} = vsplit($v{$_}) foreach ( grep $create{lc $_}, @people ); if ($text || @atts) { $v{MIMEObj} = MIME::Entity->build( Type => "multipart/mixed", From => Encode::encode( "UTF-8", $session{CurrentUser}->EmailAddress ), Subject => Encode::encode( "UTF-8", $v{Subject}), 'X-RT-Interface' => 'REST', ); $v{MIMEObj}->attach( Type => $v{'Content-Type'} || 'text/plain', Charset => "UTF-8", Data => Encode::encode( "UTF-8", $text ), ) if $text; my ($status, $msg) = process_attachments($v{'MIMEObj'}, @atts); unless ($status) { push(@comments, "# $msg"); goto DONE; } $v{MIMEObj}->make_singlepart; } my($tid,$trid,$terr) = $ticket->Create(%v); unless ($tid) { push(@comments, "# Could not create ticket."); push(@comments, "# " . $terr); goto DONE; } delete $data{id}; $id = $ticket->Id; push(@comments, "# Ticket $id created."); # see if the hash is empty goto DONE if ! keys(%data); } } # Now we know we're dealing with an existing ticket. if (!keys(%data)) { my ($time, $key, $val, @data); push @data, [ id => "ticket/".$ticket->Id ]; push @data, [ Queue => $ticket->QueueObj->Name ] if (!%$fields || exists $fields->{lc 'Queue'}); push @data, [ Owner => $ticket->OwnerObj->Name ] if (!%$fields || exists $fields->{lc 'Owner'}); push @data, [ Creator => $ticket->CreatorObj->Name ] if (!%$fields || exists $fields->{lc 'Creator'}); foreach (qw(Subject Status Priority InitialPriority FinalPriority)) { next unless (!%$fields || (exists $fields->{lc $_})); push @data, [$_ => $ticket->$_ ]; } foreach $key (@people) { next unless (!%$fields || (exists $fields->{lc $key})); push @data, [ $key => [ $ticket->$key->MemberEmailAddresses ] ]; } $time = RT::Date->new ($session{CurrentUser}); foreach $key (@dates) { next unless (!%$fields || (exists $fields->{lc $key})); $time->Set(Format => 'sql', Value => $ticket->$key); push @data, [ $key => $time->AsString ]; } $time = RT::Date->new ($session{CurrentUser}); foreach $key (qw(TimeEstimated TimeWorked TimeLeft)) { next unless (!%$fields || (exists $fields->{lc $key})); $val = $ticket->$key || 0; $val = "$val minutes" if $val; push @data, [ $key => $val ]; } if ( !$ticket->QueueObj->SLADisabled && (!%$fields || (exists $fields->{sla})) ) { push @data, [ SLA => $ticket->SLA ]; } # Display custom fields my $CustomFields = $ticket->CustomFields; while (my $cf = $CustomFields->Next()) { next unless !%$fields || exists $fields->{"cf.{".lc($cf->Name)."}"} || exists $fields->{"cf-".lc $cf->Name}; my $vals = $ticket->CustomFieldValues($cf->Id()); my @out = (); if ( $cf->SingleValue ) { my $v = $vals->Next; push @out, $v->Content if $v; } else { while (my $v = $vals->Next()) { my $content = $v->Content; if ( $v->Content =~ /,/ ) { $content =~ s/([\\'])/\\$1/g; push @out, q{'} . $content . q{'}; } else { push @out, $content; } } } push @data, [ ('CF.{' . $cf->Name . '}') => join ',', @out ]; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } else { my ($get, $set, $key, $val, $n, $s); my $updated; foreach $key (keys %data) { $val = $data{$key}; $key = lc $key; $n = 1; if (ref $val eq 'ARRAY') { unless ($key =~ /^(?:Requestors|Cc|AdminCc)$/i) { $n = 0; $s = "$key may have only one value."; goto SET; } } if ($key =~ /^queue$/i) { next if $val eq $ticket->QueueObj->Name; ($n, $s) = $ticket->SetQueue($val); } elsif ($key =~ /^owner$/i) { next if $val eq $ticket->OwnerObj->Name; ($n, $s) = $ticket->SetOwner($val); } elsif (exists $simple{$key}) { $key = $simple{$key}; $set = "Set$key"; my $current = $ticket->$key; $current = '' unless defined $current; next if ($val eq $current) or ($current =~ /^\d+$/ && $val =~ /^\d+$/ && $val == $current); ($n, $s) = $ticket->$set("$val"); } elsif (exists $dates{$key}) { $key = $dates{$key}; # We try to detect whether it should update a field by checking # whether its current value equals the entered value. Since the # LastUpdated field is automatically updated as other columns are # changed, it is not properly skipped. Users cannot update this # field anyway. next if $key eq 'LastUpdated'; $set = "Set$key"; my $time = RT::Date->new($session{CurrentUser}); $time->Set(Format => 'sql', Value => $ticket->$key); next if ($val =~ /^not set$/i || $val eq $time->AsString); $time->Set(Format => 'unknown', Value => $val); ($n, $s) = $ticket->$set($time->ISO); } elsif (exists $people{$key}) { $key = $people{$key}; my ($p, @msgs); my %new = map {$_=>1} @{ vsplit($val) }; my %old; my $members = $ticket->$key->MembersObj; while (my $member = $members->Next) { my $principal = $member->MemberObj; if ($principal->IsGroup) { $old{ $principal->Id } = 1; } else { $old{ $principal->Object->EmailAddress } = 1; } } my $type = $key eq 'Requestors' ? 'Requestor' : $key; foreach $p (keys %old) { unless (exists $new{$p}) { my $key = "Email"; $key = "PrincipalId" if $p =~ /^\d+$/; ($s, $n) = $ticket->DeleteWatcher(Type => $type, $key => $p); push @msgs, [ $s, $n ]; } } foreach $p (keys %new) { my $key = "Email"; $key = "PrincipalId" if $p =~ /^\d+$/; unless ($ticket->IsWatcher(Type => $type, $key => $p)) { ($s, $n) = $ticket->AddWatcher(Type => $type, $key => $p); push @msgs, [ $s, $n ]; } } $n = 1; if (@msgs = grep {$_->[0] == 0} @msgs) { $n = 0; $s = join "\n", map {"# ".$_->[1]} @msgs; $s =~ s/^# //; } } # Set custom field elsif ($key =~ /^$cf_spec/) { $key = $1 || $2; my $cf = RT::CustomField->new( $session{CurrentUser} ); $cf->ContextObject( $ticket ); $cf->LoadByName( Name => $key, LookupType => RT::Ticket->CustomFieldLookupType, ObjectId => $ticket->Queue, IncludeGlobal => 1, ); if (not $cf->id) { $n = 0; $s = "Unknown custom field."; } else { my $vals = $ticket->CustomFieldValues($cf->id); if ( $ticket->CustomFieldValueIsEmpty( Field => $cf, Value => $val ) ) { while ( my $val = $vals->Next ) { ($n, $s) = $ticket->DeleteCustomFieldValue( Field => $cf, ValueId => $val->id, ); $s =~ s/^# // if defined $s; } } elsif ( $cf->SingleValue ) { ($n, $s) = $ticket->AddCustomFieldValue( Field => $cf, Value => $val ); $s =~ s/^# // if defined $s; } else { my @new = @{vsplit($val, 1)}; my %new; $new{$_}++ for @new; while (my $v = $vals->Next()) { my $c = $v->Content; if ( $new{$c} ) { $new{$c}--; } else { $ticket->DeleteCustomFieldValue( Field => $cf, ValueId => $v->id ); } } for ( @new ) { while ( $new{$_} && $new{$_}-- ) { next if $ticket->CustomFieldValueIsEmpty( Field => $cf, Value => $_, ); ($n, $s) = $ticket->AddCustomFieldValue( Field => $cf, Value => $_ ); $s =~ s/^# // if defined $s; } } } } } elsif ( $key eq 'sla' ) { my $current = $ticket->SLA // ''; next if $val eq $current; ($n, $s) = $ticket->SetSLA($val); } elsif ($key ne 'id' && $key ne 'type' && $key ne 'creator' && $key ne 'content-type' ) { $n = 0; $s = "Unknown field."; } SET: if ($n == 0) { $e = 1; push @comments, "# $key: $s"; unless (@$o) { # move id forward @$o = ("id", grep { $_ ne 'id' } keys %$changes); $k = $changes; } } else { $updated ||= 1; } } push(@comments, "# Ticket ".$ticket->id." updated.") if $updated; } DONE: $c ||= join("\n", @comments) if @comments; return [$c, $o, $k, $e]; rt-4.4.4/share/html/REST/1.0/Forms/ticket/take000644 000765 000024 00000010066 13437510132 021361 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/ticket/take %# <%ARGS> $id %changes <%INIT> use RT::Interface::REST; my $ticket = RT::Ticket->new($session{CurrentUser}); my ($c, $o, $k, $e) = ("", [], {}, 0); # http://.../REST/1.0/ticket/1/take $ticket->Load( $id ); unless ( $ticket->Id ) { $e = 1; $c = "# Ticket $id does not exist."; goto OUTPUT; } my $action; my @comments; ($action = $changes{Action}) =~ s/^(.)(.*)$/\U$1\L$2\E/; unless ($action =~ /^(?:Take|Steal|Untake)$/) { $e = 1; $c = "# Invalid action: `$action'."; goto OUTPUT; } my ($status, $msg) = $ticket->$action(); $c = "# $msg"; $e = 1 unless $status; goto OUTPUT; #unless ($ticket->CurrentUserHasRight('ModifyTicket') || # ( ($action eq "Take" || $action eq 'Untake') && # $ticket->CurrentUserHasRight("TakeTicket")) || # ($action eq "Steal" && # $ticket->CurrentUserHasRight("StealTicket"))) #{ # $e = 1; # $c = "# You are not allowed to $action ticket $id."; # goto OUTPUT; #} #if ( keys %changes ) { #} #else { # # process the form data structure # my ($key, $val); # # foreach $key (keys %data) { # $val = $data{$key}; # # if ($key =~ /^force$/i) { # if ($val !~ /^(?:0|1)$/) { # push(@comments, "# invalid value for 'force': $val"); # goto DONE; # } # my ($ret_id, $msg); # # ### take # if ($val == 0) { # ($ret_id, $msg) = $ticket->Take; # if (!$ret_id) { # push(@comments, "# Couldn't take ticket $id: $msg"); # goto DONE; # } # push(@comments, "# Ticket $id taken."); # } # ### steal # else { # ($ret_id, $msg) = $ticket->Steal; # if (!$ret_id) { # push(@comments, "# Couldn't steal ticket $id: $msg"); # goto DONE; # } # push(@comments, "# Ticket $id stolen."); # } # } # } #} OUTPUT: return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/ticket/links000644 000765 000024 00000014015 13437510132 021553 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/ticket/links %# <%ARGS> $id $format => 's' $changes => undef <%INIT> my @data; my $ticket = RT::Ticket->new($session{CurrentUser}); $ticket->Load($id); if (!$ticket->Id) { return [ "# Ticket $id does not exist.", [], {}, 1 ]; } my ($c, $o, $k, $e) = ("", [], {}, 0); my @fields = qw(DependsOn DependedOnBy RefersTo ReferredToBy Members MemberOf); my %fields = map { lc $_ => $_ } @fields; my %lfields = ( Members => { Type => 'MemberOf', Mode => 'Base' }, ReferredToBy => { Type => 'RefersTo', Mode => 'Base' }, DependedOnBy => { Type => 'DependsOn', Mode => 'Base' }, MemberOf => { Type => 'MemberOf', Mode => 'Target' }, RefersTo => { Type => 'RefersTo', Mode => 'Target' }, DependsOn => { Type => 'DependsOn', Mode => 'Target' }, ); if ($changes) { my ($get, $set, $key, $val, $n, $s); my %data = %$changes; my @comments; foreach $key (keys %data) { $val = $data{$key}; $key = lc $key; $n = 1; if (exists $fields{$key}) { $key = $fields{$key}; my %old; my $field = $lfields{$key}->{Mode}; my $mode_obj = $field . 'Obj'; while (my $link = $ticket->$key->Next) { next if UNIVERSAL::isa($link->$mode_obj, 'RT::Article') && $link->$mode_obj->Disabled; next if $field eq 'Base' && $link->Type eq 'RefersTo' && $link->BaseObj->__Value('Type') eq 'reminder'; $old{$link->$field} = 1; } my %new; foreach my $nkey (@{vsplit($val)}) { if ($nkey =~ /^\d+$/) { my $uri = RT::URI->new($session{CurrentUser}); my $tick = RT::Ticket->new($session{CurrentUser}); $tick->Load($nkey); if ($tick->Id) { $uri->FromObject($tick); $nkey = $uri->URI; } else { $n = 0; $s = "Ticket $nkey does not exist."; goto SET; } } $new{$nkey} = 1; } foreach my $u (keys %old) { if (exists $new{$u}) { delete $new{$u}; } else { my $type = $lfields{$key}->{Type}; my $mode = $lfields{$key}->{Mode}; ($n, $s) = $ticket->DeleteLink(Type => $type, $mode => $u); } } foreach my $u (keys %new) { my $type = $lfields{$key}->{Type}; my $mode = $lfields{$key}->{Mode}; ($n, $s) = $ticket->AddLink(Type => $type, $mode => $u); } } elsif ($key ne 'id' && $key ne 'type') { $n = 0; $s = "Unknown field: $key"; } SET: if ($n == 0) { $e = 1; push @comments, "# $key: $s"; unless (@$o) { @$o = ("id", @fields); %$k = %data; } } } push(@comments, "# Links for ticket $id updated.") unless @comments; $c = join("\n", @comments) if @comments; } else { my @data; push @data, [ id => "ticket/".$ticket->Id."/links" ]; foreach my $key (@fields) { my @val; my $field = $lfields{$key}->{Mode}; my $mode_obj = $field . 'Obj'; while (my $link = $ticket->$key->Next) { next if UNIVERSAL::isa($link->$mode_obj, 'RT::Article') && $link->$mode_obj->Disabled; next if $field eq 'Base' && $link->Type eq 'RefersTo' && UNIVERSAL::isa($link->$mode_obj, 'RT::Ticket') && $link->BaseObj->__Value('Type') eq 'reminder'; push @val, $link->$field; } push(@val, "") if (@val == 0 && defined $format && $format eq 'l'); push @data, [ $key => [ @val ] ] if @val; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/ticket/history000644 000765 000024 00000015111 13437510132 022132 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/ticket/history %# <%ARGS> $id $args => undef $format => undef $fields => undef <%INIT> my $ticket = RT::Ticket->new($session{CurrentUser}); my ($c, $o, $k, $e) = ("", [], {}, ""); $ticket->Load($id); unless ($ticket->Id) { return [ "# Ticket $id does not exist.", [], {}, 1 ]; } my $trans = $ticket->Transactions(); my $total = $trans->Count(); if ( $args ) { chomp $args; } else { $args = ''; } my @arglist = split('/', $args ); my ($type, $tid); if (defined $arglist[0] && $arglist[0] eq 'type') { $type = $arglist[1]; } elsif ( defined $arglist[0] && $arglist[0] eq 'id') { $tid = $arglist[1]; } else { $type = $args; } if ($type) { # Create, Set, Status, Correspond, Comment, Give, Steal, Take, Told # CustomField, AddLink, DeleteLink, AddWatcher, DelWatcher if ($args =~ /^links?$/) { $trans->Limit(FIELD => 'Type', OPERATOR => 'LIKE', VALUE => '%Link'); } elsif ($args =~ /^watchers?$/) { $trans->Limit(FIELD => 'Type', OPERATOR => 'LIKE', VALUE => '%Watcher'); } else { $trans->Limit(FIELD => 'Type', OPERATOR => '=', VALUE => $type); } } elsif ($tid) { $trans->Limit(FIELD => 'Id', OPERATOR => '=', VALUE => $tid); } if ($tid) { my @data; my $t = RT::Transaction->new($session{CurrentUser}); # this paragraph limits the transaction ID query to transactions on this ticket. # Otherwise you can query any transaction from any ticket, which makes no sense. my $Transactions = $ticket->Transactions; my $tok=0; while (my $T = $Transactions->Next()) { $tok=1 if ($T->Id == $tid) } if ($tok) { $t->Load($tid); } else { return [ "# Transaction $tid is not related to Ticket $id", [], {}, 1 ]; } push @data, [ id => $t->Id ]; push @data, [ Ticket => $t->Ticket ] if (!%$fields || exists $fields->{lc 'Ticket'}); push @data, [ TimeTaken => $t->TimeTaken ] if (!%$fields || exists $fields->{lc 'TimeTaken'}); push @data, [ Type => $t->Type ] if (!%$fields || exists $fields->{lc 'Type'}); push @data, [ Field => $t->Field ] if (!%$fields || exists $fields->{lc 'Field'}); push @data, [ OldValue => $t->OldValue ] if (!%$fields || exists $fields->{lc 'OldValue'}); push @data, [ NewValue => $t->NewValue ] if (!%$fields || exists $fields->{lc 'NewValue'}); push @data, [ Data => $t->Data ] if (!%$fields || exists $fields->{lc 'Data'}); push @data, [ Description => $t->Description ] if (!%$fields || exists $fields->{lc 'Description'}); push @data, [ Content => $t->Content ] if (!%$fields || exists $fields->{lc 'Content'}); if (!%$fields || exists $fields->{lc 'Content'}) { my $creator = RT::User->new($session{CurrentUser}); $creator->Load($t->Creator); push @data, [ Creator => $creator->Name ]; } push @data, [ Created => $t->Created ] if (!%$fields || exists $fields->{lc 'Created'}); if (!%$fields || exists $fields->{lc 'Attachments'}) { my $attachlist; my $attachments = $t->Attachments; while (my $a = $attachments->Next) { my $size = length($a->Content||''); if ($size > 1024) { $size = int($size/102.4)/10 . "k" } else { $size .= "b" } my $name = (defined $a->Filename and length $a->Filename) ? $a->Filename : "untitled"; $attachlist .= "\n" . $a->Id.": $name ($size)"; } push @data, [Attachments => $attachlist]; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } else { my (@data, $tids); $format ||= "s"; $format = "l" if (%$fields); while (my $t = $trans->Next) { my $tid = $t->Id; if ($format eq "l") { $tids .= "," if $tids; $tids .= $tid; } else { push @$o, $tid; $k->{$tid} = $t->Description; } } if ($format eq "l") { my @tid; push @tid, "ticket/$id/history/id/$tids"; my $fieldstring; foreach my $key (keys %$fields) { $fieldstring .= "," if $fieldstring; $fieldstring .= $key; } my ($content, $forms); $m->subexec("/REST/1.0/show", id => \@tid, format => $format, fields => $fieldstring); return [ $c, $o, $k, $e ]; } } if (!$c) { my $sub = $trans->Count(); $c = "# $sub/$total ($args/total)"; } return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/ticket/attachments000644 000765 000024 00000011367 13437510132 022755 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/ticket/attachments %# <%ARGS> $id $args => undef <%INIT> my @data; my ($c, $o, $k, $e) = ("", [], {}, ""); my $ticket = RT::Ticket->new($session{CurrentUser}); $ticket->Load($id); unless ($ticket->Id) { return [ "# Ticket $id does not exist.", [], {}, 1 ]; } my @arglist = split('/', $args || ''); my ($aid, $content); if ( defined $arglist[1] && $arglist[1] eq 'content') { $aid = $arglist[0]; $content = 1; } else { $aid = $args; $content = 0; } if ($aid) { unless ($aid =~ /^\d+$/) { return [ "# Invalid attachment id: $aid", [], {}, 1 ]; } my $attachment = RT::Attachment->new($session{CurrentUser}); $attachment->Load($aid); unless ($attachment->Id eq $aid) { return [ "# Invalid attachment id: $aid", [], {}, 1 ]; } if ($content) { $c = $attachment->OriginalContent; # if we're sending a binary attachment (and only the attachment) # flag it so bin/rt knows to special case it if ($attachment->ContentType !~ /^text\//) { $r->content_type($attachment->ContentType); } } else { my @data; push @data, [ id => $attachment->Id ]; push @data, [ Subject => $attachment->Subject ]; push @data, [ Creator => $attachment->Creator ]; push @data, [ Created => $attachment->Created ]; push @data, [ Transaction => $attachment->TransactionId ]; push @data, [ Parent => $attachment->Parent ]; push @data, [ MessageId => $attachment->MessageId ]; push @data, [ Filename => $attachment->Filename ]; push @data, [ ContentType => $attachment->ContentType ]; push @data, [ ContentEncoding => $attachment->ContentEncoding ]; push @data, [ Headers => $attachment->Headers ]; push @data, [ Content => $attachment->Content ]; my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } } else { my @attachments; my $transactions = $ticket->Transactions; while (my $t = $transactions->Next) { my $attachments = $t->Attachments; while (my $a = $attachments->Next) { my $size = length($a->Content || ''); if ($size > 1024) { $size = int($size/102.4)/10 . "k" } else { $size .= "b" } my $name = (defined $a->Filename and length $a->Filename) ? $a->Filename : "(Unnamed)"; push @attachments, $a->Id.": $name (".$a->ContentType . " / $size)"; } } if (@attachments) { $o = [ "id", "Attachments" ]; $k = { id => "ticket/".$ticket->Id."/attachments", Attachments => \@attachments }; } } return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/queue/ns000644 000765 000024 00000004466 13437510132 020725 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/queue/ns %# <%ARGS> $id <%perl> use RT::Queues; my $queues = RT::Queues->new($session{CurrentUser}); $queues->Limit(FIELD => 'Name', OPERATOR => '=', VALUE => $id, CASESENSITIVE => 0 ); if ($queues->Count == 0) { return (0, "No queue named $id exists."); } return $queues->Next->Id; rt-4.4.4/share/html/REST/1.0/Forms/queue/ticketcustomfields000644 000765 000024 00000006116 13437510132 024204 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/queue/ticketcustomfields %# <%ARGS> $id $format => 's' $changes => {} <%perl> my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my $queue = RT::Queue->new($session{CurrentUser}); $queue->Load($id); if (!$queue->Id) { return [ "# Queue $id does not exist.", [], {}, 1 ]; } if (%$changes) { $e = 1; $c = "Cannot modify Queue CF definitions via REST"; goto DONE; } my @data; push @data, [ id => "queue/" . $queue->Id ]; my $qcfs = RT::CustomFields->new($session{CurrentUser});; $qcfs->LimitToGlobalOrQueue($id); while ( my $qcf = $qcfs->Next() ) { if ( $format eq "l" ) { my $cfadmin = ( $qcf->SingleValue ? 'SingleValue' : 'MultiValue' ) . $qcf->Type . ( $qcf->Pattern ? ( ' ' . $qcf->FriendlyPattern ) : '' ); push @data, [ $qcf->Name . ' (' . $qcf->Description . ')' => $cfadmin ]; } else { push @data, [ $qcf->Name => "" ]; } } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; DONE: $c ||= join("\n", @comments) if @comments; return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/queue/default000644 000765 000024 00000013011 13437510132 021713 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/queue/default %# <%ARGS> $id $format => 's' $fields => undef # these are the fields passed to the rt "-f" flag. $changes => {} <%perl> my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my %data = %$changes; my $queue = RT::Queue->new($session{CurrentUser}); my @fields = qw(Name Description CorrespondAddress CommentAddress Disabled SLADisabled); if ( $fields && %$fields ) { @fields = grep { exists $fields->{ lc $_ } } @fields; } my %fields = map { lc $_ => $_ } @fields; if ($id ne 'new') { $queue->Load($id); if (!$queue->Id) { return [ "# Queue $id does not exist.", [], {}, 1 ]; } } else { if (keys %data == 0) { return [ "# Required: Name", [ "id", @fields ], { id => 'queue/new', Name => '', Description => "", CommentAddress => "", CorrespondAddress => "", SLADisabled => 1, }, 0 ]; } else { my %v; my %create = %fields; foreach my $k (keys %data) { if (exists $create{lc $k}) { $v{$create{lc $k}} = delete $data{$k}; } } if ($v{Name} eq '') { my %o = keys %$changes; delete @o{"id", @fields}; return [ "# Please set the queue name.", [ "id", @fields, keys %o ], $changes, 1 ]; } $queue->Create(%v); unless ($queue->Id) { return [ "# Could not create queue.", [], {}, 1 ]; } delete $data{id}; $id = $queue->Id; push(@comments, "# Queue $id created."); goto DONE if keys %data == 0; } } if ( keys %data == 0) { my @data; push @data, [ id => "queue/".$queue->Id ]; foreach my $key (@fields) { push @data, [ $key => $queue->$key ]; } # Custom fields my $CustomFields = $queue->CustomFields; while ( my $CustomField = $CustomFields->Next() ) { next unless ( !%$fields || exists $fields->{ lc "CF-" . $CustomField->Name } ); next unless $CustomField->CurrentUserHasRight('SeeCustomField'); my $CFvalues = $queue->CustomFieldValues( $CustomField->Id ); my @CFvalues; while ( my $CFvalue = $CFvalues->Next() ) { push @CFvalues, $CFvalue->Content; } push @data, [ "CF-" . $CustomField->Name => \@CFvalues ]; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } else { my ($get, $set, $key, $val, $n, $s); my $updated; foreach $key (keys %data) { $val = $data{$key}; $key = lc $key; $n = 1; if (exists $fields{$key}) { $key = $fields{$key}; $set = "Set$key"; next if $val eq $queue->$key; ($n, $s) = $queue->$set($val); } elsif ($key ne 'id') { $n = 0; $s = "Unknown field."; } SET: if ($n == 0) { $e = 1; push @comments, "# $key: $s"; unless (@$o) { my %o = keys %$changes; delete @o{"id", @fields}; @$o = ("id", @fields, keys %o); $k = $changes; } } else { $updated ||= 1; } } push(@comments, "# Queue $id updated.") if $updated; } DONE: $c ||= join("\n", @comments) if @comments; return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/queue/customfields000644 000765 000024 00000006017 13437510132 023000 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/queue/customfields %# <%ARGS> $id $format => 's' $changes => {} <%perl> my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my $queue = RT::Queue->new($session{CurrentUser}); $queue->Load($id); if (!$queue->Id) { return [ "# Queue $id does not exist.", [], {}, 1 ]; } if (%$changes) { $e = 1; $c = "Cannot modify Queue CF definitions via REST"; goto DONE; } my @data; push @data, [ id => "queue/" . $queue->Id ]; my $qcfs = $queue->CustomFields; while ( my $qcf = $qcfs->Next() ) { if ( $format eq "l" ) { my $cfadmin = ( $qcf->SingleValue ? 'SingleValue' : 'MultiValue' ) . $qcf->Type . ( $qcf->Pattern ? ( ' ' . $qcf->FriendlyPattern ) : '' ); push @data, [ $qcf->Name . ' (' . $qcf->Description . ')' => $cfadmin ]; } else { push @data, [ $qcf->Name => "" ]; } } my %k = map {@$_} @data; $o = [ map { $_->[0] } @data ]; $k = \%k; DONE: $c ||= join("\n", @comments) if @comments; return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/user/ns000644 000765 000024 00000004552 13437510132 020553 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/user/ns %# <%ARGS> $id <%perl> use RT::Users; my $field = "Name"; $field = "EmailAddress" if $id =~ /\@/; my $users = RT::Users->new($session{CurrentUser}); $users->Limit(FIELD => $field, OPERATOR => '=', VALUE => $id, CASESENSITIVE => 0); if ($users->Count == 0) { return (0, "No user named $id exists."); } return $users->Next->Id; rt-4.4.4/share/html/REST/1.0/Forms/user/default000644 000765 000024 00000015003 13437510132 021550 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/user/default %# <%ARGS> $id $format => 's' $changes => {} $fields => undef <%perl> my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my %data = %$changes; my $user = RT::User->new($session{CurrentUser}); my @fields = qw(Name EmailAddress RealName NickName Gecos Organization Address1 Address2 City State Zip Country HomePhone WorkPhone MobilePhone PagerPhone FreeformContactInfo Comments Signature Lang Privileged Disabled); if ( $fields && %$fields ) { @fields = grep { exists $fields->{ lc $_ } } @fields; } my %fields = map { lc $_ => $_ } @fields; if ($id ne 'new') { $user->Load($id); if (!$user->Id) { return [ "# User $id does not exist.", [], {}, 1 ]; } } else { if (keys %data == 0) { return [ "# Required: Name, EmailAddress", [ qw(id Name EmailAddress Organization Password Comments) ], { id => "user/new", Name => "", EmailAddress => "", Organization => "", Password => "", Comments => "" }, 0 ]; } else { my %v; my %create = %fields; $create{name} = "Name"; $create{password} = "Password"; $create{emailaddress} = "EmailAddress"; $create{contactinfo} = "FreeformContactInfo"; # Do any fields need to be excluded here? foreach my $k (keys %data) { if (exists $create{lc $k}) { $v{$create{lc $k}} = delete $data{$k}; } } $user->Create(%v); unless ($user->Id) { return [ "# Could not create user.", [], {}, 1 ]; } $id = $user->Id; delete $data{id}; push(@comments, "# User $id created."); goto DONE if keys %data == 0; } } if (keys %data == 0) { my @data; push @data, [ id => "user/".$user->Id ]; unless ( $fields && %$fields && !exists $fields->{'password'} ) { push @data, [ Password => '********' ]; } for my $key (@fields) { my $val = $user->$key; if ( ( $fields && exists $fields->{ lc $key } ) || ( defined $format && $format eq 'l' ) || ( defined $val && $val ne '' ) ) { $key = "ContactInfo" if $key eq 'FreeformContactInfo'; push @data, [ $key => $val ]; } } # Custom fields my $CustomFields = $user->CustomFields; while ( my $CustomField = $CustomFields->Next() ) { # show cf unless there are specified fields that don't include it next unless ( !%$fields || exists $fields->{ lc "CF-" . $CustomField->Name } ); next unless $CustomField->CurrentUserHasRight('SeeCustomField'); my $CFvalues = $user->CustomFieldValues( $CustomField->Id ); my @CFvalues; while ( my $CFvalue = $CFvalues->Next() ) { push @CFvalues, $CFvalue->Content; } push @data, [ "CF-" . $CustomField->Name => \@CFvalues ]; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } else { my ($get, $set, $key, $val, $n, $s); my $updated; foreach $key (keys %data) { $val = $data{$key}; $key = lc $key; $n = 1; if ($key eq 'name' || $key eq 'emailaddress' || $key eq 'contactinfo' || exists $fields{$key}) { if (exists $fields{$key}) { $key = $fields{$key}; } else { $key = "FreeformContactInfo" if $key eq 'contactinfo'; $key = "EmailAddress" if $key eq 'emailaddress'; $key = "Name" if $key eq 'name'; } $set = "Set$key"; next if $val eq $user->$key; ($n, $s) = $user->$set($val); } elsif ($key eq 'password') { ($n, $s) = $user->SetPassword($val) unless $val =~ /^\**$/; } elsif ($key ne 'id') { $n = 0; $s = "Unknown field."; } SET: if ($n == 0) { $e = 1; push @comments, "# $key: $s"; unless (@$o) { my %o = keys %$changes; delete @o{"id", @fields}; @$o = ("id", @fields, keys %o); $k = $changes; } } else { $updated ||= 1; } } push(@comments, "# User $id updated.") if $updated; } DONE: $c ||= join("\n", @comments) if @comments; return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/attachment/default000644 000765 000024 00000007460 13437510132 022732 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/attachment/default %# <%ARGS> $id $args => undef <%INIT> my @data; my ($c, $o, $k, $e) = ("", [], {}, ""); my $attachment = RT::Attachment->new($session{CurrentUser}); $attachment->Load($id); unless ( $attachment->Id ) { return [ "# Attachment $id does not exist.", [], {}, 1 ]; } unless ( $attachment->Id eq $id ) { return [ "# Invalid attachment id: $id", [], {}, 1 ]; } my @arglist = split( '/', $args || "" ); my $content; if ( @arglist and $arglist[0] eq 'content' ) { $c = $attachment->OriginalContent; $r->content_type($attachment->ContentType) if $attachment->ContentType !~ /^text\//; } else { my @data; push @data, [ id => "attachment/" . $attachment->Id ]; push @data, [ Subject => $attachment->Subject ]; push @data, [ Creator => $attachment->Creator ]; push @data, [ Created => $attachment->Created ]; push @data, [ Transaction => $attachment->TransactionId ]; push @data, [ Parent => "attachment/" . $attachment->Parent ]; push @data, [ MessageId => $attachment->MessageId ]; push @data, [ Filename => $attachment->Filename ]; push @data, [ ContentType => $attachment->ContentType ]; push @data, [ ContentEncoding => $attachment->ContentEncoding ]; push @data, [ Headers => $attachment->Headers ]; if ( $attachment->ContentType =~ m|^text/| ) { push @data, [ Content => $attachment->Content ]; } else { push @data, [ Content => "Content is not text and will not be displayed!\n" . "Use \"rt show attachment//content [> file.ext]\" to get the content." ]; } my %k = map {@$_} @data; $o = [ map { $_->[0] } @data ]; $k = \%k; } return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/group/ns000644 000765 000024 00000004465 13437510132 020734 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/group/ns %# <%ARGS> $id <%perl> use RT::Groups; my $groups = RT::Groups->new($session{CurrentUser}); $groups->Limit(FIELD => 'Name', OPERATOR => '=', VALUE => $id, CASESENSITIVE => 0); if ($groups->Count == 0) { return (0, "No group named $id exists."); } return $groups->Next->Id; rt-4.4.4/share/html/REST/1.0/Forms/group/default000644 000765 000024 00000014574 13437510132 021742 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/group/default %# <%ARGS> $id $format => 's' $fields => undef # these are the fields passed to the rt "-f" flag. $changes => {} <%perl> my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my %data = %$changes; my $group = RT::Group->new($session{CurrentUser}); my @fields = qw(Name Description Disabled); if ( $fields && %$fields ) { @fields = grep { exists $fields->{ lc $_ } } @fields; } my %fields = map { lc $_ => $_ } @fields; if ($id ne 'new') { $group->Load($id); if (!$group->Id) { return [ "# Group $id does not exist.", [], {}, 1 ]; } } else { if (%data == 0) { return [ "# Required: Name", [ qw(id Name Description) ], { id => "group/new", Name => "", Description => "" }, 0 ]; } else { my %v; my %create = %fields; $create{name} = "Name"; $create{description} = "Description"; # Do any fields need to be excluded here? foreach my $k (keys %data) { if (exists $create{lc $k}) { $v{$create{lc $k}} = delete $data{$k}; } } $group->CreateUserDefinedGroup(%v); unless ($group->Id) { return [ "# Could not create group.", [], {}, 1 ]; } $id = $group->Id; delete $data{id}; push(@comments, "# Group $id created."); goto DONE if %data == 0; } } if (%data == 0) { my @data; push @data, [ id => "group/".$group->Id ]; foreach my $key (@fields) { push @data, [ $key => $group->$key ]; } # Members unless ( $fields && !exists $fields->{members} ) { my $gms = []; my $GroupMembers = $group->MembersObj(); while ( my $mo = $GroupMembers->Next() ) { if ( $mo->MemberObj->IsGroup ) { my $us = $mo->MemberObj->Object->UserMembersObj(); my @users; while ( my $u = $us->Next() ) { push @users, $u->RealName . ' <' . $u->EmailAddress . '>'; } push @$gms, 'GROUP [' . $mo->MemberObj->Object->Name . ']' . ' (' . join( ';', @users ) . ')'; } elsif ( $mo->MemberObj->IsUser ) { push @$gms, $mo->MemberObj->Object->RealName . ' <' . $mo->MemberObj->Object->EmailAddress . '>'; } } push @data, [ Members => $gms ]; } # Custom fields my $CustomFields = $group->CustomFields; while ( my $CustomField = $CustomFields->Next() ) { next unless ( !%$fields || exists $fields->{ lc "CF-" . $CustomField->Name } ); next unless $CustomField->CurrentUserHasRight('SeeCustomField'); my $CFvalues = $group->CustomFieldValues( $CustomField->Id ); my @CFvalues; while ( my $CFvalue = $CFvalues->Next() ) { push @CFvalues, $CFvalue->Content; } push @data, [ "CF-" . $CustomField->Name => \@CFvalues ]; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } else { my ($get, $set, $key, $val, $n, $s); my $updated; foreach $key (keys %data) { $val = $data{$key}; $key = lc $key; $n = 1; if ($key eq 'name' || $key eq 'description' || exists $fields{$key}) { if (exists $fields{$key}) { $key = $fields{$key}; } else { $key = "Description" if $key eq 'description'; $key = "Name" if $key eq 'name'; } $set = "Set$key"; next if $val eq $group->$key; ($n, $s) = $group->$set($val); } elsif ($key ne 'id') { $n = 0; $s = "Unknown field."; } SET: if ($n == 0) { $e = 1; push @comments, "# $key: $s"; unless (@$o) { my %o = keys %$changes; delete @o{"id", @fields}; @$o = ("id", @fields, keys %o); $k = $changes; } } else { $updated ||= 1; } } push(@comments, "# Group $id updated.") if $updated; } DONE: $c ||= join("\n", @comments) if @comments; return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/group/customfields000644 000765 000024 00000006017 13437510132 023010 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/group/customfields %# <%ARGS> $id $format => 's' $changes => {} <%perl> my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my $group = RT::Group->new($session{CurrentUser}); $group->Load($id); if (!$group->Id) { return [ "# Group $id does not exist.", [], {}, 1 ]; } if (%$changes) { $e = 1; $c = "Cannot modify Group CF definitions via REST"; goto DONE; } my @data; push @data, [ id => "group/" . $group->Id ]; my $gcfs = $group->CustomFields; while ( my $gcf = $gcfs->Next() ) { if ( $format eq "l" ) { my $cfadmin = ( $gcf->SingleValue ? 'SingleValue' : 'MultiValue' ) . $gcf->Type . ( $gcf->Pattern ? ( ' ' . $gcf->FriendlyPattern ) : '' ); push @data, [ $gcf->Name . ' (' . $gcf->Description . ')' => $cfadmin ]; } else { push @data, [ $gcf->Name => "" ]; } } my %k = map {@$_} @data; $o = [ map { $_->[0] } @data ]; $k = \%k; DONE: $c ||= join("\n", @comments) if @comments; return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/REST/1.0/Forms/transaction/default000644 000765 000024 00000012017 13437510132 023121 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# REST/1.0/Forms/transaction %# <%ARGS> $id $format => undef $fields => undef <%INIT> my $trans = RT::Transactions->new($session{CurrentUser}); my ($c, $o, $k, $e) = ("", [], {} , ""); my $tid = $id; $trans->Limit(FIELD => 'Id', OPERATOR => '=', VALUE => $tid); if ($tid) { my @data; my $t = RT::Transaction->new($session{CurrentUser}); $t->Load($tid); if ($format eq "l") { push @data, [ id => $t->Id ]; push @data, [ Ticket => $t->Ticket ] if (!%$fields || exists $fields->{lc 'Ticket'}); push @data, [ TimeTaken => $t->TimeTaken ] if (!%$fields || exists $fields->{lc 'TimeTaken'}); push @data, [ Type => $t->Type ] if (!%$fields || exists $fields->{lc 'Type'}); push @data, [ Field => $t->Field ] if (!%$fields || exists $fields->{lc 'Field'}); push @data, [ OldValue => $t->OldValue ] if (!%$fields || exists $fields->{lc 'OldValue'}); push @data, [ NewValue => $t->NewValue ] if (!%$fields || exists $fields->{lc 'NewValue'}); push @data, [ Data => $t->Data ] if (!%$fields || exists $fields->{lc 'Data'}); push @data, [ Description => $t->Description ] if (!%$fields || exists $fields->{lc 'Description'}); push @data, [ Content => $t->Content ] if (!%$fields || exists $fields->{lc 'Content'}); if (!%$fields || exists $fields->{lc 'Content'}) { my $creator = RT::User->new($session{CurrentUser}); $creator->Load($t->Creator); push @data, [ Creator => $creator->Name ]; } push @data, [ Created => $t->Created ] if (!%$fields || exists $fields->{lc 'Created'}); if (!%$fields || exists $fields->{lc 'Attachments'}) { my $attachlist; my $attachments = $t->Attachments; while (my $a = $attachments->Next) { my $size = length($a->Content); if ($size > 1024) { $size = int($size/102.4)/10 . "k"; } else { $size .= "b"; } my $name = (defined $a->Filename and length $a->Filename) ? $a->Filename : "untitled"; $attachlist .= "\n" . $a->Id.": $name ($size)"; } push @data, [Attachments => $attachlist]; } } else { push @data, [ id => $t->Id ]; push @data, [ Description => $t->Description ]; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } #else { # my (@data, $tids); # $format ||= "s"; # $format = "l" if (%$fields); # # while (my $t = $trans->Next) { # my $tid = $t->Id; # if ($format eq "l") { # $tids .= "," if $tids; # $tids .= $tid; # } else { # push @$o, $tid; # $k->{$tid} = $t->Description; # } # } #} return [ $c, $o, $k, $e ]; rt-4.4.4/share/html/Helpers/Autocomplete/000755 000765 000024 00000000000 13437510132 021126 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Helpers/autohandler000644 000765 000024 00000004135 13437510132 020721 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> RT::Interface::Web::CacheControlExpiresHeaders( Time => 'no-cache' ); $m->call_next; rt-4.4.4/share/html/Helpers/ShowSimplifiedRecipients000644 000765 000024 00000014230 13437510132 023364 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> $m->abort unless RT->Config->Get('SimplifiedRecipients', $session{'CurrentUser'}); my $TicketObj = RT::Ticket->new($session{CurrentUser}); $TicketObj->Load($ARGS{id}); $m->abort unless $TicketObj->id && $ARGS{UpdateType}; if ( $ARGS{UpdateType} eq 'private' ) { $m->abort unless $TicketObj->CurrentUserHasRight( 'CommentOnTicket' ) || $TicketObj->CurrentUserHasRight( 'ModifyTicket' ); } else { $m->abort unless $TicketObj->CurrentUserHasRight( 'ReplyToTicket' ) || $TicketObj->CurrentUserHasRight( 'ModifyTicket' ); } my @dryrun = $TicketObj->DryRun( sub { local $ARGS{UpdateContent} ||= "Content"; ProcessUpdateMessage(ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketWatchers(ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketBasics( ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, Object => $TicketObj ); ProcessTicketReminders( ARGSRef => \%ARGS, TicketObj => $TicketObj ); } ); $m->abort unless @dryrun; my %headers = (To => {}, Cc => {}, Bcc => {}); my %no_squelch = (To => {}, Cc => {}, Bcc => {}); my @scrips = map {@{$_->Scrips->Prepared}} @dryrun; if (@scrips) { for my $scrip (grep $_->ActionObj->Action->isa('RT::Action::SendEmail'), @scrips) { my $action = $scrip->ActionObj->Action; for my $type (qw(To Cc Bcc)) { for my $addr ($action->$type()) { if (grep {$addr->address eq $_} @{$action->{NoSquelch}{$type} || []}) { $no_squelch{$type}{$addr->address} = $addr; } else { $headers{$type}{$addr->address} = $addr; } } } } } my %recips; my %squelched = ProcessTransactionSquelching( \%ARGS ); my $squelched_config = !( RT->Config->Get('SquelchedRecipients', $session{'CurrentUser'}) ); my %submitted; $submitted{$_} = 1 for split /,/, $ARGS{TxnRecipients}; % if ( scalar(map { keys %{$headers{$_}} } qw(To Cc Bcc)) ) { % } % for my $type (qw(To Cc Bcc)) { % next unless keys %{$headers{$type}} or keys %{$no_squelch{$type}}; % } % $m->callback( CallbackName => 'AfterRecipients', TicketObj => $TicketObj );
 
<% $type %>: % for my $addr (sort {$a->address cmp $b->address} values %{$headers{$type}}) { % my $checked = $submitted{$addr->address} ? not $squelched{$addr->address} : $squelched_config; % $m->callback(CallbackName => 'BeforeAddress', Ticket => $TicketObj, Address => $addr, Type => $type, Checked => \$checked); % $recips{$addr->address}++; value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" /> % $m->callback(CallbackName => 'AfterAddress', Ticket => $TicketObj, Address => $addr, Type => $type);
% } % for my $addr (sort {$a->address cmp $b->address} values %{$no_squelch{$type}}) { % if ( $type eq 'Cc' ) { (<&|/l&>explicit one-time Cc) % } else { (<&|/l&>explicit one-time Bcc) % }
% }

<&|/l, RT->Config->Get('WebPath')."/Ticket/ModifyPeople.html?id=".$TicketObj->Id, &>Uncheck boxes to disable notifications to the listed recipients for this transaction only; persistent squelching is managed on the People page.

% unless ($TicketObj->CurrentUserHasRight('ShowOutgoingEmail')) { " /> % } % $m->abort(); rt-4.4.4/share/html/Helpers/TicketHistory000644 000765 000024 00000005134 13437510132 021220 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $id <%INIT> my $TicketObj = RT::Ticket->new($session{'CurrentUser'}); $TicketObj->Load($id); my $attachments = $TicketObj->Attachments; my $attachment_content = $TicketObj->TextAttachments; my %extra_args; $m->callback( CallbackName => 'ExtraShowHistoryArguments', Ticket => $TicketObj, ExtraArgs => \%extra_args ); <& /Elements/ShowHistory, Object => $TicketObj, ShowHeaders => $ARGS{'ShowHeaders'}, Attachments => $attachments, AttachmentContent => $attachment_content, %extra_args, &> % $m->abort(); rt-4.4.4/share/html/Helpers/AddTimeWorked000644 000765 000024 00000006334 13437510132 021101 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $id $seconds => 0 $comment => undef <%INIT> my $Ticket = RT::Ticket->new($session{'CurrentUser'}); $Ticket->Load( $id ); # round up 30s or more my $minutes = int(0.5 + $seconds / 60); my ($ok, $msg); if ($minutes == 0) { # avoid "That is already the current value" error $ok = 1; $msg = loc("Worked [quant,_1,minute,minutes]", 0); if ($comment) { my ($comment_ok, $comment_msg) = $Ticket->Comment(Content => $comment); if (!$comment_ok) { ($ok, $msg) = ($comment_ok, $comment_msg); } } } else { if ($comment) { ($ok, $msg) = $Ticket->Comment( Content => $comment, TimeTaken => $minutes, ); } else { my $total_worked = $Ticket->TimeWorked + $minutes; ($ok, $msg) = $Ticket->SetTimeWorked($total_worked); } if ($ok) { if ($minutes < 60) { $msg = loc("Worked [quant,_1,minute,minutes]", $minutes); } else { $msg = loc("Worked [quant,_1,hour,hours] ([quant,_2,minute,minutes])", sprintf("%.2f", $minutes / 60), $minutes); } } } $r->content_type('application/json; charset=utf-8'); $m->print(JSON({ ok => $ok, msg => $msg })); $m->abort; rt-4.4.4/share/html/Helpers/Toggle/000755 000765 000024 00000000000 13437510132 017706 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Helpers/PreviewScrips000644 000765 000024 00000015101 13437510132 021213 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $TicketObj = RT::Ticket->new($session{CurrentUser}); $TicketObj->Load($ARGS{id}); $m->abort unless $TicketObj->id && $ARGS{UpdateType}; $m->abort unless $TicketObj->CurrentUserHasRight('ShowOutgoingEmail'); if ( $ARGS{UpdateType} eq 'private' ) { $m->abort unless $TicketObj->CurrentUserHasRight( 'CommentOnTicket' ) || $TicketObj->CurrentUserHasRight( 'ModifyTicket' ); } else { $m->abort unless $TicketObj->CurrentUserHasRight( 'ReplyToTicket' ) || $TicketObj->CurrentUserHasRight( 'ModifyTicket' ); } my @dryrun = $TicketObj->DryRun( sub { local $ARGS{UpdateContent} ||= "Content"; ProcessUpdateMessage(ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketWatchers(ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketBasics( ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $TicketObj ); ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, Object => $TicketObj ); ProcessTicketReminders( ARGSRef => \%ARGS, TicketObj => $TicketObj ); } ); my %recips; $m->abort unless @dryrun; my %squelched = ProcessTransactionSquelching( \%ARGS ); my $squelched_config = !( RT->Config->Get('SquelchedRecipients', $session{'CurrentUser'}) ); my %submitted; $submitted{$_} = 1 for split /,/, $ARGS{TxnRecipients};

<&|/l, RT->Config->Get('WebPath')."/Ticket/ModifyPeople.html?id=".$TicketObj->Id, &>Uncheck boxes to disable notifications to the listed recipients for this transaction only; persistent squelching is managed on the People page.

% my @scrips = grep {$_->ActionObj->Action->isa('RT::Action::SendEmail')} % map {@{$_->Scrips->Prepared}} @dryrun; % if (@scrips) { % if ( grep { % my $s = $_; % my $action = $s->ActionObj->Action; % scalar(map { $action->$_ } qw(To Cc Bcc)) % } @scrips ) { value="1">
% } % for my $scrip (@scrips) { <% $scrip->Description || loc('Scrip #[_1]',$scrip->id) %>
<&|/l, loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->Template)&>[_1] [_2] with template [_3]
% for my $type (qw(To Cc Bcc)) { % my $action = $scrip->ActionObj->Action; % my @addresses = $action->$type(); % next unless @addresses;
    % for my $addr (@addresses) {
  • % my $checked = $submitted{$addr->address} ? not $squelched{$addr->address} : $squelched_config; % $m->callback(CallbackName => 'BeforeAddress', Ticket => $TicketObj, Address => $addr, Type => $type, Checked => \$checked); % $recips{$addr->address}++; <%loc($type)%>: % my $show_checkbox = 1; % if ( grep {$_ eq $addr->address} @{$action->{NoSquelch}{$type}} ) { % $show_checkbox = 0; % } % if ( $show_checkbox ) { value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" /> % } % $m->callback(CallbackName => 'AfterAddress', Ticket => $TicketObj, Address => $addr, Type => $type); % unless ( $show_checkbox ) { % if ( $type eq 'Cc' ) { (<&|/l&>explicit one-time Cc) % } % else { (<&|/l&>explicit one-time Bcc) % } % }
  • % }
% } % if (RT->Config->Get('PreviewScripMessages')) { % }
% } % } % $m->callback( CallbackName => 'AfterRecipients', TicketObj => $TicketObj ); " /> % $m->abort(); rt-4.4.4/share/html/Helpers/BuildFormatString000644 000765 000024 00000005323 13437510132 022012 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my ( $Format, $AvailableColumns, $CurrentFormat ) = $m->comp( '/Search/Elements/BuildFormatString', %ARGS ); $r->content_type('application/json; charset=utf-8'); my $CurrentDisplayColumns = ''; my $i=0; my $current = $ARGS{CurrentDisplayColumns} || ''; $current =~ s/^\d+>//; for my $field ( @$CurrentFormat ) { $CurrentDisplayColumns .= qq!'; $i++; } $m->out( JSON({ status => 'success', Format => $Format, CurrentDisplayColumns => $CurrentDisplayColumns, }) ); $m->abort; rt-4.4.4/share/html/Helpers/SpawnLinkedTicket000644 000765 000024 00000004513 13437510132 021776 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $query_string = $m->comp('/Elements/QueryString', CloneTicket => $CloneTicket, Queue => $CloneQueue, $LinkType => $CloneTicket, ); RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Ticket/Create.html?$query_string" ); <%ARGS> $CloneTicket => undef $CloneQueue => undef $LinkType => undef rt-4.4.4/share/html/Helpers/UserInfo000644 000765 000024 00000005250 13437510132 020144 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $id <%init> my %users; $id = [$id] unless ref($id) eq 'ARRAY'; for my $uid (@$id) { next if exists $users{$uid}; my $user = RT::User->new($session{'CurrentUser'}); $user->Load($uid); unless ($user->id) { $users{$uid} = undef; next; } my %user = map { $_ => $user->$_ } qw(id Name EmailAddress RealName); $user{Privileged} = $user->Privileged ? JSON::true : JSON::false; $user{_formatted} = $user->Format; $user{_html} = $m->scomp('/Elements/ShowUser', User => $user); $users{$uid} = \%user; } $r->content_type('application/json; charset=utf-8'); $m->out( JSON(\%users) ); $m->abort; rt-4.4.4/share/html/Helpers/ShortcutHelp000644 000765 000024 00000004234 13437510132 021037 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $show_search => 0 $show_bulk_update => 0 $show_ticket_reply => 0 $show_ticket_comment => 0 <& /Elements/ShortcutHelp, %ARGS &> % $m->abort; rt-4.4.4/share/html/Helpers/TicketTimer000644 000765 000024 00000020561 13437510132 020640 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $id <%INIT> my $Ticket = RT::Ticket->new($session{'CurrentUser'}); $Ticket->Load( $id ); my $UnpauseImg = RT->Config->Get('WebPath') . '/static/images/unpause.png'; my $PauseImg = RT->Config->Get('WebPath') . '/static/images/pause.png'; my $Now = RT::Date->new($session{'CurrentUser'}); $Now->SetToNow; my $SubmitURL = RT->Config->Get('WebPath') . '/Helpers/AddTimeWorked'; <& /Elements/Header, Title => loc('Timer for #[_1]: [_2]', $Ticket->Id, $Ticket->Subject), RichText => 0, ShowBar => 0, ShowTitle => 0 &>
<% loc('Pause Timer') %> <% loc('Submit Timer') %>
<& /Elements/MessageBox, Name => 'Comment', Type => 'text/plain', Height => 3, Width => undef, # sets width:100% CSS Placeholder => loc('Comments for the ticket'), SuppressAttachmentWarning => 1, IncludeSignature => 0, IncludeArticle => 0, &>
<&|/l, $Now->AsString &>Started at [_1].
% if ($Ticket->TimeEstimated) {
<&|/l&>Time estimated: <& /Ticket/Elements/ShowTime, minutes => $Ticket->TimeEstimated &>
% }
<&|/l&>An error occurred while submitting time. Please submit your time manually.
% $m->abort(); rt-4.4.4/share/html/Helpers/TicketAttachments000644 000765 000024 00000004553 13437510132 022036 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $id $Selectable => undef $Count => undef @AttachExisting => () <%INIT> my $TicketObj = RT::Ticket->new($session{'CurrentUser'}); $TicketObj->Load($id); <& /Ticket/Elements/ShowAttachments, Ticket => $TicketObj, HideTitleBox => 1, Selectable => $Selectable, Count => $Count, Checked => \@AttachExisting, &> % $m->abort(); rt-4.4.4/share/html/Helpers/Upload/000755 000765 000024 00000000000 13437510132 017711 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Helpers/TicketHistoryPage000644 000765 000024 00000006635 13437510132 022024 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $id $oldestTransactionsFirst => RT->Config->Get("OldestTransactionsFirst", $session{CurrentUser}); $lastTransactionId => undef $focusTransactionId => undef $loadAll => 0 <%INIT> my $TicketObj = RT::Ticket->new($session{'CurrentUser'}); $TicketObj->Load($id); my %extra_args; $m->callback( CallbackPage => '/Helpers/TicketHistory', CallbackName => 'ExtraShowHistoryArguments', Ticket => $TicketObj, ExtraArgs => \%extra_args ); my $transactions = $TicketObj->Transactions; my $order = $oldestTransactionsFirst ? 'ASC' : 'DESC'; if ($lastTransactionId) { $transactions->Limit( FIELD => 'id', OPERATOR => $oldestTransactionsFirst ? '>' : '<', VALUE => $lastTransactionId ); } $transactions->OrderByCols( { FIELD => 'Created', ORDER => $order }, { FIELD => 'id', ORDER => $order }, ); if ($focusTransactionId) { # make sure we load enough if we need to focus a transaction $transactions->Limit( FIELD => 'id', OPERATOR => $oldestTransactionsFirst ? '<=' : '>=', VALUE => $focusTransactionId ); } elsif (!$loadAll) { # otherwise, just load the standard page of 10 transactions $transactions->RowsPerPage(10); $transactions->FirstPage(); } <& /Elements/ShowHistoryPage, Object => $TicketObj, ShowHeaders => $ARGS{'ShowHeaders'}, Transactions => $transactions, %extra_args, &> % $m->abort(); rt-4.4.4/share/html/Helpers/Upload/Delete000644 000765 000024 00000004373 13437510132 021045 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Name => '' $Token => '' <%init> delete $session{'Attachments'}{ $Token }{ $Name }; $session{'Attachments'} = $session{'Attachments'}; $r->content_type('application/json; charset=utf-8'); $m->out( JSON({status => 'success'}) ); $m->abort; rt-4.4.4/share/html/Helpers/Upload/Add000644 000765 000024 00000004550 13437510132 020330 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Token => '' <%init> my ( $status, $msg ) = ProcessAttachments( Token => $Token, ARGSRef => \%ARGS ); if ( $status ) { $r->content_type( 'application/json; charset=utf-8' ); $m->out( JSON( { status => 'success' } ) ); } else { $r->status( 400 ); $r->content_type( 'text/plain; charset=utf-8' ); $m->out( $msg ); } $m->abort; rt-4.4.4/share/html/Helpers/Toggle/TicketBookmark000644 000765 000024 00000004170 13437510132 022544 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $id $Toggle => 1 <%INIT> $m->comp('/Ticket/Elements/Bookmark', id => $id, Toggle => $Toggle ); $m->abort(); rt-4.4.4/share/html/Helpers/Toggle/ShowRequestor000644 000765 000024 00000005042 13437510132 022464 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $TicketTemplate = "/Ticket/Elements/ShowRequestorTickets$Status"; $TicketTemplate = "/Ticket/Elements/ShowRequestorTicketsActive" unless RT::Interface::Web->ComponentPathIsSafe($TicketTemplate) and $m->comp_exists($TicketTemplate); my $user_obj = RT::User->new($session{CurrentUser}); my ($val, $msg) = $user_obj->Load($Requestor); unless ($val) { $RT::Logger->error("Unable to load User $Requestor: $msg"); } else { $m->comp( $TicketTemplate, Requestor => $user_obj ); } $m->abort(); <%ARGS> $Status $Requestor rt-4.4.4/share/html/Helpers/Autocomplete/Tickets000644 000765 000024 00000007010 13437510132 022455 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $r->content_type('application/json; charset=utf-8'); <% JSON( \@suggestions ) |n %> % $m->abort; <%ARGS> $return => '' $term => undef $max => undef $exclude => '' <%INIT> # Only allow certain return fields $return = 'id' unless $return =~ /^(?:id|Subject)$/; $m->abort unless defined $return and defined $term and length $term; my $CurrentUser = $session{'CurrentUser'}; # Require privileged users $m->abort unless $CurrentUser->Privileged; my @excludes; (my $prev, $term) = $term =~ /^((?:\d+\s+)*)(.*)/; @excludes = split ' ', $prev if $prev; push @excludes, split ' ', $exclude if $exclude; $m->abort unless $term; my %fields = %{ RT->Config->Get('TicketAutocompleteFields') || { id => 'STARTSWITH', Subject => 'LIKE' } }; my $tickets = RT::Tickets->new( $CurrentUser ); my @clauses; $term =~ s/(['\\])/\\$1/g; #' while (my ($name, $op) = each %fields) { $op = 'STARTSWITH' unless $op =~ /^(?:LIKE|(?:START|END)SWITH|=|!=)$/i; push @clauses, qq{$name $op '$term'}; } my $sql = join ' OR ', @clauses; if ( @excludes ) { # exclude ids already these $sql = join ' AND ', "($sql)", map { qq{id != '$_'} } @excludes; } $m->callback( CallbackName => 'ModifyMaxResults', max => \$max ); $max //= 10; $tickets->FromSQL($sql); $tickets->RowsPerPage( $max ); my @suggestions; while ( my $ticket = $tickets->Next ) { my $formatted = loc("#[_1]: [_2]", $ticket->Id, $ticket->Subject); push @suggestions, { label => $formatted, value => $ticket->$return }; } rt-4.4.4/share/html/Helpers/Autocomplete/autohandler000644 000765 000024 00000004132 13437510132 023357 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> RT::Interface::Web::CacheControlExpiresHeaders( Time => 2 * 60 ); $m->call_next; rt-4.4.4/share/html/Helpers/Autocomplete/Groups000644 000765 000024 00000006312 13437510132 022332 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $r->content_type('application/json; charset=utf-8'); <% JSON( \@suggestions ) |n %> % $m->abort; <%ARGS> $term => undef $max => undef $exclude => '' $op => 'LIKE' <%INIT> $m->abort unless defined $term and length $term; my $CurrentUser = $session{'CurrentUser'}; # Require privileged users $m->abort unless $CurrentUser->Privileged; # Sanity check the operator $op = 'LIKE' unless $op =~ /^(?:LIKE|(?:START|END)SWITH|=|!=)$/i; $m->callback( CallbackName => 'ModifyMaxResults', max => \$max ); $max //= 10; my $groups = RT::Groups->new( $CurrentUser ); $groups->RowsPerPage( $max ); $groups->LimitToUserDefinedGroups(); $groups->Limit( FIELD => 'Name', OPERATOR => $op, VALUE => $term, CASESENSITIVE => 0, ); # Exclude groups we don't want foreach (split /\s*,\s*/, $exclude) { $groups->Limit(FIELD => 'id', VALUE => $_, OPERATOR => '!=', ENTRYAGGREGATOR => 'AND'); } my @suggestions; while ( my $group = $groups->Next ) { my $suggestion = { id => $group->Id, label => $group->Label, value => $group->Name }; $m->callback( CallbackName => "ModifySuggestion", suggestion => $suggestion, group => $group ); push @suggestions, $suggestion; } rt-4.4.4/share/html/Helpers/Autocomplete/CustomFieldValues000644 000765 000024 00000011662 13437510132 024455 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $r->content_type('application/json; charset=utf-8'); <% JSON( \@suggestions ) |n %> % $m->abort; <%INIT> # Only autocomplete the last value my $term = (split /\n/, $ARGS{term} || '')[-1]; my $abort = sub { $r->content_type('application/json; charset=utf-8'); $m->out(JSON( [] )); $m->abort; }; unless ( exists $ARGS{ContextType} and exists $ARGS{ContextId} ) { RT->Logger->debug("No context provided"); $abort->(); } # Use _ParseObjectCustomFieldArgs to avoid duplicating the regex. # See the docs for _ParseObjectCustomFieldArgs for details on the data # structure returned. There will be only one CF, so drill down 2 layers # to get the cf id, if one is there. my %custom_fields = _ParseObjectCustomFieldArgs(\%ARGS, IncludeBulkUpdate => 1); my $CustomField; foreach my $class ( keys %custom_fields ){ foreach my $id ( keys %{$custom_fields{$class}} ){ ($CustomField) = keys %{$custom_fields{$class}{$id}}; } } unless ( $CustomField ) { RT->Logger->debug("No CustomField provided"); $abort->(); } my $SystemCustomFieldObj = RT::CustomField->new( RT->SystemUser ); my ($id, $msg) = $SystemCustomFieldObj->LoadById( $CustomField ) ; unless ( $id ) { RT->Logger->debug("Invalid CustomField provided: $msg"); $abort->(); } my $context_object = $SystemCustomFieldObj->LoadContextObject( $ARGS{ContextType}, $ARGS{ContextId} ); $abort->() unless $context_object; my $CustomFieldObj = RT::CustomField->new( $session{'CurrentUser'} ); if ( $SystemCustomFieldObj->ValidateContextObject($context_object) ) { # drop our privileges that came from calling LoadContextObject as the System User $context_object->new($session{'CurrentUser'}); $context_object->LoadById($ARGS{ContextId}); $CustomFieldObj->SetContextObject( $context_object ); } else { RT->Logger->debug("Invalid Context Object ".$context_object->id." for Custom Field ".$SystemCustomFieldObj->id); $abort->(); } ($id, $msg) = $CustomFieldObj->LoadById( $CustomField ); unless ( $CustomFieldObj->Name ) { RT->Logger->debug("Current User cannot see this Custom Field, terminating"); $abort->(); } my $values = $CustomFieldObj->Values; $values->Limit( FIELD => 'Name', OPERATOR => 'LIKE', VALUE => $term, SUBCLAUSE => 'autocomplete', CASESENSITIVE => 0, ); $values->Limit( ENTRYAGGREGATOR => 'OR', FIELD => 'Description', OPERATOR => 'LIKE', VALUE => $term, SUBCLAUSE => 'autocomplete', CASESENSITIVE => 0, ); $m->callback( CallbackName => 'ModifyMaxResults', max => \$ARGS{max}, term => $term, CustomField => $CustomFieldObj, ); $values->RowsPerPage( $ARGS{max} // 10 ); my @suggestions; while( my $value = $values->Next ) { push @suggestions, { value => $value->Name, label => $value->Description ? $value->Name . ' (' . $value->Description . ')' : $value->Name, }; } rt-4.4.4/share/html/Helpers/Autocomplete/Users000644 000765 000024 00000007771 13437510132 022166 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $r->content_type('application/json; charset=utf-8'); <% JSON( \@suggestions ) |n %> % $m->abort; <%ARGS> $return => '' $term => undef $delim => undef $max => undef $privileged => undef $exclude => '' $op => undef $include_nobody => 0 $include_system => 0 <%INIT> # Only allow certain return fields $return = 'EmailAddress' unless $return =~ /^(?:EmailAddress|Name|RealName)$/; $m->abort unless defined $return and defined $term and length $term; # Use our delimeter if we have one if ( defined $delim and length $delim ) { if ( $delim eq ',' ) { $delim = qr/,\s*/; } else { $delim = qr/\Q$delim\E/; } # If the field handles multiple values, pop the last one off $term = (split $delim, $term)[-1] if $term =~ $delim; } my $CurrentUser = $session{'CurrentUser'}; # Require privileged users or overriding config $m->abort unless $CurrentUser->Privileged or RT->Config->Get('AllowUserAutocompleteForUnprivileged'); # the API wants a list of ids my @exclude = split /\s*,\s*/, $exclude; push @exclude, RT->SystemUser->id unless $include_system; push @exclude, RT->Nobody->id unless $include_nobody; $m->callback( CallbackName => 'ModifyMaxResults', max => \$max ); $max //= 10; my $users = RT::Users->new($CurrentUser); $users->SimpleSearch( Privileged => $privileged, Return => $return, Term => $term, Max => $max, Exclude => \@exclude, # If an operator is provided, check against only # the returned field using that operator $op ? ( Fields => { $return => $op } ) : (), ); my @suggestions; while ( my $user = $users->Next ) { my $suggestion = { id => $user->id, label => $user->Format, value => $user->$return }; $m->callback( CallbackName => "ModifySuggestion", suggestion => $suggestion, user => $user ); push @suggestions, $suggestion; } rt-4.4.4/share/html/Helpers/Autocomplete/Queues000644 000765 000024 00000005674 13437510132 022334 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $r->content_type('application/json'); <% JSON( \@suggestions ) |n %> % $m->abort; <%ARGS> $term => undef $max => 10 $op => 'STARTSWITH' $right => undef $return => 'Name'; <%INIT> # Only allow certain return fields $return = 'Name' unless $return =~ /^(?:id|Name)$/; $m->abort unless defined $return and defined $term and length $term; # Sanity check the operator $op = 'STARTSWITH' unless $op =~ /^(?:LIKE|(?:START|END)SWITH|=|!=)$/i; my $queues = RT::Queues->new( $session{CurrentUser} ); $queues->RowsPerPage( $max ); $queues->Limit( FIELD => 'Name', OPERATOR => $op, VALUE => $term, ENTRYAGGREGATOR => 'OR', CASESENSITIVE => 0, ); my @suggestions; while (my $q = $queues->Next) { next if $right and not $q->CurrentUserHasRight($right); my $value = $q->$return; push @suggestions, { label => $q->Name, value => $value }; } rt-4.4.4/share/html/Helpers/Autocomplete/Owners000644 000765 000024 00000011013 13437510132 022322 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $r->content_type('application/json; charset=utf-8'); <% JSON( \@suggestions ) |n %> % $m->abort; <%ARGS> $return => 'Name' $limit => undef $term => undef $max => undef <%INIT> # Only allow certain return fields $return = 'Name' unless $return =~ /^(?:EmailAddress|Name|RealName|id)$/; $m->abort unless defined $return and defined $term and defined $limit; my $CurrentUser = $session{'CurrentUser'}; my %user_uniq_hash; my $isSU = $session{CurrentUser} ->HasRight( Right => 'SuperUser', Object => $RT::System ); $m->callback( CallbackName => 'ModifyMaxResults', max => \$max ); $max //= 10; # Turn RT::Ticket-1|RT::Queue-2 into ['RT::Ticket', 1], ['RT::Queue', 2] foreach my $spec (map { [split /\-/, $_, 2] } split /\|/, $limit) { next unless $spec->[0] =~ /^RT::(Ticket|Queue)$/; my $object = $spec->[0]->new( $session{'CurrentUser'} ); if ( $spec->[1] ) { $object->Load( $spec->[1] ); # Warn if we couldn't load an object unless ( $object->id ) { $RT::Logger->warn("Owner autocomplete couldn't load an '$spec->[0]' with id '$spec->[1]'"); next; } } my $Users = RT::Users->new( $session{CurrentUser} ); # Limit by our autocomplete term BEFORE we limit to OwnTicket because that # does a funky union hack $Users->SimpleSearch( Max => $max, Term => $term, Return => $return, ); $m->callback( CallbackName => 'ModifyOwnerAutocompleteSearch', ARGSRef => \%ARGS, Users => \$Users ); $Users->WhoHaveRight( Right => 'OwnTicket', Object => $object, IncludeSystemRights => 1, IncludeSuperusers => $isSU ); while ( my $User = $Users->Next() ) { next if $user_uniq_hash{ $User->Id }; $user_uniq_hash{ $User->Id() } = [ $User, $User->Format, ]; } } # Make sure we add Nobody if we don't already have it my $nobody = qr/^n(?:o(?:b(?:o(?:d(?:y)?)?)?)?)?$/i; if ( not $user_uniq_hash{RT->Nobody->id} and $term =~ $nobody ) { $user_uniq_hash{RT->Nobody->id} = [ RT->Nobody, RT->Nobody->Format, ]; } my @users = sort { lc $a->[1] cmp lc $b->[1] } values %user_uniq_hash; my @suggestions; my $count = 1; for my $tuple ( @users ) { last if $count > $max; my $formatted = $tuple->[1]; $formatted =~ s/\n//g; push @suggestions, { label => $formatted, value => $tuple->[0]->$return }; $count++; } rt-4.4.4/share/html/m/tickets/000755 000765 000024 00000000000 13437510132 016765 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/m/index.html000644 000765 000024 00000004172 13437510132 017320 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| _elements/wrapper, title => loc("RT for [_1]",RT->Config->Get('rtname'))&> <& _elements/menu &> <& _elements/full_site_link &> rt-4.4.4/share/html/m/dhandler000644 000765 000024 00000004223 13437510132 017024 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> # deal with users who don't have options indexes set right RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."m/index.html"); $m->abort(); rt-4.4.4/share/html/m/logout000644 000765 000024 00000004275 13437510132 016563 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> if (keys %session) { RT::Interface::Web::InstantiateNewSession(); $session{'CurrentUser'} = RT::CurrentUser->new; } RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."m/"); rt-4.4.4/share/html/m/ticket/000755 000765 000024 00000000000 13437510132 016602 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/m/_elements/000755 000765 000024 00000000000 13437510132 017272 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/m/_elements/ticket_menu000644 000765 000024 00000005052 13437510132 021526 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $ticket
<%init> my @menu = ( { label => loc("Basics"), url => '/m/ticket/show?id='.$ticket->id }, { label => loc("History"), url => '/m/ticket/history?id='.$ticket->id }, #{ label => loc("Modify"), url => '/m/ticket/modify?id='.$ticket->id }, { label => loc("Reply"), url => '/m/ticket/reply?id='.$ticket->id } ); my $width = int(100/ ($#menu +1))-5; rt-4.4.4/share/html/m/_elements/ticket_list000644 000765 000024 00000010621 13437510132 021533 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $order => undef $order_by => undef $query => '' $page => 1 <%init> my $rows = 10; my $collection = RT::Tickets->new($session{'CurrentUser'}); $collection->FromSQL($query); $collection->RowsPerPage($rows); $collection->GotoPage($page-1); # XXX: ->{'order_by'} is hacky, but there is no way to check if # collection is ordered or not if ( $order_by) { my @order_by = split /\|/, $order_by; my @order = split /\|/,$order; $collection->OrderByCols( map { { FIELD => $order_by[$_], ORDER => $order[$_] } } ( 0 .. $#order_by ) ); } $collection->RedoSearch(); if ($page > 1 && ! @{$collection->ItemsArrayRef||[]}) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL')."m/tickets/search?page=".($page-1)."&query=".$query."&order=$order&order_by=$order_by"); } <&| /m/_elements/wrapper, title => loc("Found [quant,_1,ticket,tickets]",$collection->CountAll) &> <&|/Widgets/TitleBox, class => 'search' &>
    % while (my $ticket = $collection->Next()) {
  • <%$ticket->id%>: <%$ticket->Subject%>
  • % }
% if ($page > 1) { Back % } Page <%$page%> % if ($collection->CountAll > $page * $rows) { Next % }
rt-4.4.4/share/html/m/_elements/footer000644 000765 000024 00000004447 13437510132 020524 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Logo, ShowName => 1, OnlyCustom => 1 &>
rt-4.4.4/share/html/m/_elements/wrapper000644 000765 000024 00000004450 13437510132 020700 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $title => '' $show_home_button => 1 <%init> if ($session{'NotMobile'}) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL')); $m->abort(); } $m->comp('header', title => $title, show_home_button => $show_home_button); $m->out($m->content); $m->comp('footer'); $m->abort(); rt-4.4.4/share/html/m/_elements/full_site_link000644 000765 000024 00000004155 13437510132 022225 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Not using a mobile browser? rt-4.4.4/share/html/m/_elements/menu000644 000765 000024 00000010171 13437510132 020161 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, class => 'menu'&> <%init> my @menu = ( { html => '' }, { label => loc("New ticket"), url => '/m/ticket/select_create_queue', }, { label => loc("Bookmarked tickets"), url => '/m/tickets/search?name=Bookmarked%20Tickets', }, { label => loc("Tickets I own"), url => '/m/tickets/search?name=My%20Tickets', }, { label => loc("Unowned tickets"), url => '/m/tickets/search?name=Unowned%20Tickets', }, { label => loc("All tickets"), url => '/m/tickets/search?query=id!%3d0&order_by=id&order=DESC' }, ); if ( $session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch', Object => $RT::System)) { my @Objects = RT::SavedSearch->new( $session{CurrentUser} )->ObjectsForLoading; push @Objects, RT::System->new( $session{'CurrentUser'} ) if $session{'CurrentUser'}->HasRight( Object => $RT::System, Right => 'SuperUser' ); foreach my $object (@Objects) { my @searches = $object->Attributes->Named('SavedSearch'); foreach my $search (@searches) { next if $search->SubValue("SearchType") && $search->SubValue("SearchType") ne 'Ticket'; push @menu, { label => $search->Description, url => '/m/tickets/search?query=' . $search->SubValue("Query").'&order='.$search->SubValue("Order").'&order_by='.$search->SubValue("OrderBy") }; } } } push @menu, { label => loc("Logout"), url => '/m/logout', } ; $m->callback( CallbackName => 'MassageMenu', Menu => \@menu ); rt-4.4.4/share/html/m/_elements/login000644 000765 000024 00000007265 13437510132 020337 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( %ARGS, CallbackName => 'Header' ); <&| /m/_elements/wrapper, title => loc('RT for [_1]', RT->Config->Get('rtname')), show_home_button => 0 &> <& /m/_elements/full_site_link &> <%ARGS> $user => "" $pass => undef $goto => undef $actions => undef $next => "" rt-4.4.4/share/html/m/_elements/header000644 000765 000024 00000005525 13437510132 020454 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $title => loc('RT for [_1]', RT->Config->Get('rtname')) $show_home_button => 1 <%init> $r->headers_out->{'Pragma'} = 'no-cache'; $r->headers_out->{'Cache-control'} = 'no-cache'; <%$title%> % my ($jquery) = grep { /^jquery-\d+\./ } RT::Interface::Web->JSFiles; <& /Elements/Framekiller &> % if ($show_home_button) { % # The align is for older browsers, like the blackberry % } % if ($title) {

<%$title%>

% } rt-4.4.4/share/html/m/ticket/select_create_queue000644 000765 000024 00000004714 13437510132 022541 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $queues = RT::Queues->new($session{'CurrentUser'}); $queues->UnLimit(); <&| /m/_elements/wrapper, title => loc("Create a ticket") &>
<&|/Widgets/TitleBox, title => loc("Select a queue") &>
rt-4.4.4/share/html/m/ticket/autohandler000644 000765 000024 00000004317 13437510132 021040 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> # Redirect to the approvals view if we're trying to get an approvals ticket MaybeRedirectToApproval( Whitelist => qr{/(?:create|select_create_queue)$}i, ARGSRef => \%ARGS, ); $m->call_next; rt-4.4.4/share/html/m/ticket/show000644 000765 000024 00000037223 13437510132 017514 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $id => undef <%init> my $Ticket; my @Actions; unless ($id) { Abort('No ticket specified'); } if ($ARGS{'id'} eq 'new') { # {{{ Create a new ticket my $Queue = RT::Queue->new( $session{'CurrentUser'} ); $Queue->Load($ARGS{'Queue'}); unless ( $Queue->id ) { Abort('Queue not found'); } unless ( $Queue->CurrentUserHasRight('CreateTicket') ) { Abort('You have no permission to create tickets in that queue.'); } ($Ticket, @Actions) = CreateTicket( %ARGS ); unless ( $Ticket->CurrentUserHasRight('ShowTicket') ) { Abort("No permission to view newly created ticket #".$Ticket->id."."); } } else { $Ticket ||= LoadTicket($ARGS{'id'}); $Ticket->Atomic(sub{ $m->callback( CallbackName => 'BeforeProcessArguments', TicketObj => $Ticket, ActionsRef => \@Actions, ARGSRef => \%ARGS ); if ( defined $ARGS{'Action'} ) { if ($ARGS{'Action'} =~ /^(Steal|Delete|Take|SetTold)$/) { my $action = $1; my ($res, $msg) = $Ticket->$action(); push(@Actions, $msg); } } $m->callback(CallbackName => 'ProcessArguments', Ticket => $Ticket, ARGSRef => \%ARGS, Actions => \@Actions); push @Actions, ProcessUpdateMessage( ARGSRef => \%ARGS, Actions => \@Actions, TicketObj => $Ticket, ); #Process status updates push @Actions, ProcessTicketWatchers(ARGSRef => \%ARGS, TicketObj => $Ticket ); push @Actions, ProcessTicketBasics( ARGSRef => \%ARGS, TicketObj => $Ticket ); push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $Ticket ); push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $Ticket ); push @Actions, ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, Object => $Ticket ); push @Actions, ProcessTicketReminders( ARGSRef => \%ARGS, TicketObj => $Ticket ); }); unless ($Ticket->CurrentUserHasRight('ShowTicket')) { if (@Actions) { Abort("A change was applied successfully, but you no longer have permissions to view the ticket", Actions => \@Actions); } else { Abort("No permission to view ticket"); } } if ( $ARGS{'MarkAsSeen'} ) { $Ticket->SetAttribute( Name => 'User-'. $Ticket->CurrentUser->id .'-SeenUpTo', Content => $Ticket->LastUpdated, ); push @Actions, loc('Marked all messages as seen'); } } $m->callback( CallbackName => 'BeforeDisplay', TicketObj => \$Ticket, Actions => \@Actions, ARGSRef => \%ARGS, ); # This code does automatic redirection if any updates happen. if (@Actions) { # We've done something, so we need to clear the decks to avoid # resubmission on refresh. # But we need to store Actions somewhere too, so we don't lose them. my $key = Digest::MD5::md5_hex( rand(1024) ); push @{ $session{"Actions"}->{$key} ||= [] }, @Actions; $session{'i'}++; my $url = RT->Config->Get('WebURL') . "m/ticket/show?id=" . $Ticket->id . "&results=" . $key; $url .= '#' . $ARGS{Anchor} if $ARGS{Anchor}; RT::Interface::Web::Redirect($url); } # If we haven't been passed in an Attachments object (through the precaching mechanism) # then we need to find one my $Attachments = $Ticket->Attachments; my %documents; while ( my $attach = $Attachments->Next() ) { next unless ($attach->Filename()); unshift( @{ $documents{ $attach->Filename } }, $attach ); } my $CustomFields = $Ticket->CustomFields; $m->callback( CallbackName => 'MassageCustomFields', Object => $Ticket, CustomFields => $CustomFields, ); my $print_value = sub { my ($cf, $value) = @_; my $linked = $value->LinkValueTo; if ( defined $linked && length $linked ) { my $linked = $m->interp->apply_escapes( $linked, 'h' ); $m->out(''); } my $comp = "ShowCustomField". $cf->Type; $m->callback( CallbackName => 'ShowComponentName', Name => \$comp, CustomField => $cf, Object => $Ticket, ); if ( $m->comp_exists( $comp ) ) { $m->comp( $comp, Object => $value ); } else { $m->out( $m->interp->apply_escapes( $value->Content, 'h' ) ); } $m->out('') if defined $linked && length $linked; # This section automatically populates a div with the "IncludeContentForValue" for this custom # field if it's been defined if ( $cf->IncludeContentForValue ) { my $vid = $value->id; $m->out( '\n} ); $m->out( qq{\n} ); } }; <&| /m/_elements/wrapper, title => loc("#[_1]: [_2]", $Ticket->Id, $Ticket->Subject || '') &>
<& /m/_elements/ticket_menu, ticket => $Ticket &> <&| /Widgets/TitleBox, title => loc('The Basics'), class => 'ticket-info-basics', &>
<&|/l&>Id:
<%$Ticket->Id %>
<&|/l&>Status:
<% loc($Ticket->Status) %>
% if ($Ticket->TimeEstimated) {
<&|/l&>Estimated:
<& /Ticket/Elements/ShowTime, minutes => $Ticket->TimeEstimated &>
% } % if ($Ticket->TimeWorked) {
<&|/l&>Worked:
<& /Ticket/Elements/ShowTime, minutes => $Ticket->TimeWorked &>
% } % if ($Ticket->TimeLeft) {
<&|/l&>Left:
<& /Ticket/Elements/ShowTime, minutes => $Ticket->TimeLeft &>
% }
<&|/l&>Priority:
<& /Ticket/Elements/ShowPriority, Ticket => $Ticket &>
<&|/l&>Queue:
<& /Ticket/Elements/ShowQueue, QueueObj => $Ticket->QueueObj &>
<&|/l&>Bookmark:
<& /Ticket/Elements/Bookmark, id => $Ticket->id &>
% if ($CustomFields->Count) { <&| /Widgets/TitleBox, title => loc('Custom Fields'), class => 'ticket-info-cfs', &> % while ( my $CustomField = $CustomFields->Next ) { % my $Values = $Ticket->CustomFieldValues( $CustomField->Id ); % my $count = $Values->Count;
<% $CustomField->Name %>:
% unless ( $count ) { <&|/l&>(no value) % } elsif ( $count == 1 ) { % $print_value->( $CustomField, $Values->First ); % } else {
    % while ( my $Value = $Values->Next ) {
  • % $print_value->( $CustomField, $Value );
  • % }
% }
% } % } <&| /Widgets/TitleBox, title => loc('People'), class => 'ticket-info-people' &>
<&|/l&>Owner:
<& /Elements/ShowUser, User => $Ticket->OwnerObj, Ticket => $Ticket, Link => 0 &>
<&|/l&>Requestors:
<& /Ticket/Elements/ShowGroupMembers, Group => $Ticket->Requestors, Ticket => $Ticket, Link => 0 &>
<&|/l&>Cc:
<& /Ticket/Elements/ShowGroupMembers, Group => $Ticket->Cc, Ticket => $Ticket, Link => 0 &>
<&|/l&>AdminCc:
<& /Ticket/Elements/ShowGroupMembers, Group => $Ticket->AdminCc, Ticket => $Ticket, Link => 0 &>
% if (keys %documents) { <&| /Widgets/TitleBox, title => loc('Attachments'), title_class=> 'inverse', class => 'ticket-info-attachments', color => "#336699" &> % foreach my $key (keys %documents) { <%$key%>
% } % } % # too painful to deal with reminders % if ( 0 && RT->Config->Get('EnableReminders') ) { <&|/Widgets/TitleBox, title => loc("Reminders"), class => 'ticket-info-reminders', &>
<& /Ticket/Elements/Reminders, Ticket => $Ticket, ShowCompleted => 0 &>
% } <&| /Widgets/TitleBox, title => loc("Dates"), class => 'ticket-info-dates', &>
<&|/l&>Created:
<% $Ticket->CreatedObj->AsString %>
<&|/l&>Starts:
<% $Ticket->StartsObj->AsString %>
<&|/l&>Started:
<% $Ticket->StartedObj->AsString %>
<&|/l&>Last Contact:
<% $Ticket->ToldObj->AsString %>
<&|/l&>Due:
% my $due = $Ticket->DueObj; % if ( $due && $due->IsSet && $due->Diff < 0 && $Ticket->QueueObj->IsActiveStatus($Ticket->Status) ) {
<% $due->AsString %>
% } else {
<% $due->AsString %>
% }
<&|/l&>Closed:
<% $Ticket->ResolvedObj->AsString %>
<&|/l&>Updated:
% my $UpdatedString = $Ticket->LastUpdated ? loc("[_1] by [_2]", $Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) : loc("Never");
<% $UpdatedString | h %>
<&| /Widgets/TitleBox, title => loc('Links'), class => 'ticket-info-links' &>
<% loc('Depends on')%>:
<%PERL> my ( @active, @inactive, @not_tickets ); for my $link ( @{ $Ticket->DependsOn->ItemsArrayRef } ) { my $target = $link->TargetObj; if ( $target && $target->isa('RT::Ticket') ) { if ( $target->QueueObj->IsInactiveStatus( $target->Status ) ) { push( @inactive, $link->TargetURI ); } else { push( @active, $link->TargetURI ); } } elsif ( not (UNIVERSAL::isa($link->TargetObj, 'RT::Article') && $link->TargetObj->Disabled) ) { push( @not_tickets, $link->TargetURI ); } }
    % for my $Link (@not_tickets, @active, @inactive) {
  • <& /Elements/ShowLink, URI => $Link &>
  • % }
<% loc('Depended on by')%>:
    % while (my $Link = $Ticket->DependedOnBy->Next) { % next if UNIVERSAL::isa($Link->BaseObj, 'RT::Article') && $Link->BaseObj->Disabled;
  • <& /Elements/ShowLink, URI => $Link->BaseURI &>
  • % }
<% loc('Parents') %>:
<& /Elements/ShowLinksOfType, Object => $Ticket, Type => 'MemberOf' &>
<% loc('Children')%>:
<& /Elements/ShowLinksOfType, Object => $Ticket, Type => 'Members' &>
<% loc('Refers to')%>:
    % while (my $Link = $Ticket->RefersTo->Next) { % next if UNIVERSAL::isa($Link->TargetObj, 'RT::Article') && $Link->TargetObj->Disabled;
  • <& /Elements/ShowLink, URI => $Link->TargetURI &>
  • % }
<% loc('Referred to by')%>:
    % while (my $Link = $Ticket->ReferredToBy->Next) { % next if UNIVERSAL::isa($Link->BaseObj, 'RT::Article') && $Link->BaseObj->Disabled; % next if (UNIVERSAL::isa($Link->BaseObj, 'RT::Ticket') && $Link->BaseObj->__Value('Type') eq 'reminder');
  • <& /Elements/ShowLink, URI => $Link->BaseURI &>
  • % }
rt-4.4.4/share/html/m/ticket/reply000644 000765 000024 00000021665 13437510132 017672 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/m/_elements/wrapper, title => loc('Update ticket #[_1]', $t->id) &> <& /m/_elements/ticket_menu, ticket => $t &> <& /Elements/ListActions, actions => \@results &>
<&|/Widgets/TitleBox &>
% if ($gnupg_widget) { <& /Elements/Crypt/SignEncryptWidget:ShowIssues, self => $gnupg_widget &> % }
<&|/l&>Status:
<& /Ticket/Elements/SelectStatus, Name=>"Status", TicketObj => $t, Default => $DefaultStatus &>
<&|/l&>Owner:
<& /Elements/SelectOwner, Name => "Owner", TicketObj => $t, QueueObj => $t->QueueObj, DefaultLabel => loc("[_1] (Unchanged)", $t->OwnerObj->Format), Default => $ARGS{'Owner'} &>
<&|/l&>Worked: <& /Elements/EditTimeValue, Name => 'UpdateTimeWorked', Default => $ARGS{UpdateTimeWorked}||'', &>
% $m->callback( %ARGS, CallbackName => 'AfterWorked', Ticket => $t );
<&|/l&>Update Type:
<&|/l&>Subject:
% $m->callback( %ARGS, CallbackName => 'AfterSubject' );
<&|/l&>One-time Cc:<& /Elements/EmailInput, Name => 'UpdateCc', Size => '60', Default => $ARGS{UpdateCc} &>
<&|/l&>One-time Bcc:<& /Elements/EmailInput, Name => 'UpdateBcc', Size => '60', Default => $ARGS{UpdateBcc} &>
<&|/l&>Message:
% if (exists $ARGS{UpdateContent}) { % # preserve QuoteTransaction so we can use it to set up sane references/in/reply to % my $temp = $ARGS{'QuoteTransaction'}; % delete $ARGS{'QuoteTransaction'}; <& /Elements/MessageBox, Name=>"UpdateContent", Default=>$ARGS{UpdateContent}, IncludeSignature => 0, SuppressAttachmentWarning => 1, %ARGS&> % $ARGS{'QuoteTransaction'} = $temp; % } else { % my $IncludeSignature = 1; % $IncludeSignature = 0 if $Action ne 'Respond' && !RT->Config->Get('MessageBoxIncludeSignatureOnComment'); <& /Elements/MessageBox, Name=>"UpdateContent", IncludeSignature => $IncludeSignature, SuppressAttachmentWarning => 1, %ARGS &> % }
% if (exists $session{'Attachments'}) { <%loc("Attached file") %> <%loc("Check box to delete")%>
% foreach my $attach_name (keys %{$session{'Attachments'}}) { <%$attach_name%>
% } # end of foreach % } # end of if
<&|/l&>Attach file:
" />
% if ( $gnupg_widget ) { <& /Elements/Crypt/SignEncryptWidget, self => $gnupg_widget, QueueObj => $t->QueueObj &> % } <& /Elements/Submit, Label => loc('Update Ticket'), Name => 'SubmitTicket' &>
<%INIT> my $CanRespond = 0; my $CanComment = 0; my $checks_failure = 0; my $title; my $t = LoadTicket($id); my @results; $m->callback( Ticket => $t, ARGSRef => \%ARGS, results => \@results, CallbackName => 'Initial' ); unless($DefaultStatus){ $DefaultStatus=($ARGS{'Status'} ||$t->Status()); } if ($DefaultStatus eq 'new'){ $DefaultStatus='open'; } if ($DefaultStatus eq 'resolved') { $title = loc("Resolve ticket #[_1] ([_2])", $t->id, $t->Subject); } else { $title = loc("Update ticket #[_1] ([_2])", $t->id, $t->Subject); } # Things needed in the template - we'll do the processing here, just # for the convenience: my ($CommentDefault, $ResponseDefault); if ($Action ne 'Respond') { $CommentDefault = qq[ selected="selected"]; $ResponseDefault = ""; } else { $CommentDefault = ""; $ResponseDefault = qq[ selected="selected"]; } $CanRespond = 1 if ( $t->CurrentUserHasRight('ReplyToTicket') or $t->CurrentUserHasRight('ModifyTicket') ); $CanComment = 1 if ( $t->CurrentUserHasRight('CommentOnTicket') or $t->CurrentUserHasRight('ModifyTicket') ); ProcessAttachments(ARGSRef => \%ARGS); # check email addresses for RT's { foreach my $field ( qw(UpdateCc UpdateBcc) ) { my $value = $ARGS{ $field }; next unless defined $value && length $value; my @emails = Email::Address->parse( $value ); foreach my $email ( grep RT::EmailParser->IsRTAddress($_->address), @emails ) { push @results, loc("[_1] is an address RT receives mail at. Adding it as a '[_2]' would create a mail loop", $email->format, loc(substr($field, 6)) ); $checks_failure = 1; $email = undef; } $ARGS{ $field } = join ', ', map $_->format, grep defined, @emails; } } my $gnupg_widget = $m->comp('/Elements/Crypt/SignEncryptWidget:new', Arguments => \%ARGS ); $m->comp( '/Elements/Crypt/SignEncryptWidget:Process', self => $gnupg_widget, TicketObj => $t, ); my $skip_update = 0; $m->callback( CallbackName => 'BeforeUpdate', ARGSRef => \%ARGS, skip_update => \$skip_update, checks_failure => $checks_failure, results => \@results, TicketObj => $t ); if ( !$checks_failure && !$skip_update && exists $ARGS{SubmitTicket} ) { my $status = $m->comp('/Elements/Crypt/SignEncryptWidget:Check', self => $gnupg_widget, TicketObj => $t, ); $checks_failure = 1 unless $status; $m->callback( Ticket => $t, ARGSRef => \%ARGS, CallbackName => 'BeforeDisplay' ); return $m->comp('/m/ticket/show', TicketObj => $t, %ARGS); } <%ARGS> $id => undef $Action => 'Respond' $DefaultStatus => undef rt-4.4.4/share/html/m/ticket/history000644 000765 000024 00000005310 13437510132 020225 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $id => undef <%init> my $t = RT::Ticket->new($session{CurrentUser}); $t->Load($id); my $history = $t->Transactions()->ItemsArrayRef; <&| /m/_elements/wrapper, title => loc("#[_1]: [_2]", $t->Id, $t->Subject || '') &>
<& /m/_elements/ticket_menu, ticket => $t &> <&|/Widgets/TitleBox &>
    % for my $entry (reverse @$history) {
  • <% $entry->CreatedObj->AgeAsString() %> - <& /Elements/ShowUser, User => $entry->CreatorObj, Link => 0 &> - <%$entry->BriefDescription%> % if ($entry->Type !~ /EmailRecord/) { % if ($entry->ContentObj) {
    <%$entry->Content%>
    %} % }
  • % }
rt-4.4.4/share/html/m/ticket/create000644 000765 000024 00000033057 13437510132 020000 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $QuoteTransaction => undef $CloneTicket => undef <%init> $m->callback( CallbackName => "Init", ARGSRef => \%ARGS ); my $Queue = $ARGS{Queue}; my $escape = sub { $m->interp->apply_escapes(shift, 'h') }; my $showrows = sub { my @pairs = @_; while (@pairs) { my $key = shift @pairs; my $val = shift @pairs; $m->out("
$key
$val
"); } }; my $CloneTicketObj; if ($CloneTicket) { $CloneTicketObj = RT::Ticket->new( $session{CurrentUser} ); $CloneTicketObj->Load($CloneTicket) or Abort( loc("Ticket could not be loaded") ); my $clone = { Requestors => join( ',', $CloneTicketObj->RequestorAddresses ), Cc => join( ',', $CloneTicketObj->CcAddresses ), AdminCc => join( ',', $CloneTicketObj->AdminCcAddresses ), InitialPriority => $CloneTicketObj->Priority, }; $clone->{$_} = $CloneTicketObj->$_() for qw/Owner Subject FinalPriority TimeEstimated TimeWorked Status TimeLeft/; $clone->{$_} = $CloneTicketObj->$_->AsString for grep { $CloneTicketObj->$_->IsSet } map { $_ . "Obj" } qw/Starts Started Due Resolved/; my $get_link_value = sub { my ($link, $type) = @_; my $uri_method = $type . 'URI'; my $local_method = 'Local' . $type; my $uri = $link->$uri_method; return if $uri->IsLocal and $uri->Object and $uri->Object->isa('RT::Ticket') and $uri->Object->__Value('Type') eq 'reminder'; return $link->$local_method || $uri->URI; }; my (@refers, @refers_by); my $refers = $CloneTicketObj->RefersTo; while ( my $refer = $refers->Next ) { my $refer_value = $get_link_value->($refer, 'Target'); push @refers, $refer_value if defined $refer_value; } $clone->{'new-RefersTo'} = join ' ', @refers; my $refers_by = $CloneTicketObj->ReferredToBy; while ( my $refer_by = $refers_by->Next ) { my $refer_by_value = $get_link_value->($refer_by, 'Base'); push @refers_by, $refer_by_value if defined $refer_by_value; } $clone->{'RefersTo-new'} = join ' ', @refers_by; my $cfs = $CloneTicketObj->QueueObj->TicketCustomFields(); while ( my $cf = $cfs->Next ) { my $cf_id = $cf->id; my $cf_values = $CloneTicketObj->CustomFieldValues( $cf->id ); my @cf_values; while ( my $cf_value = $cf_values->Next ) { push @cf_values, $cf_value->Content; } $clone->{GetCustomFieldInputName( CustomField => $cf )} = join "\n", @cf_values; } for ( keys %$clone ) { $ARGS{$_} = $clone->{$_} if not defined $ARGS{$_}; } } my @results; my $title = loc("Create a ticket"); my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($Queue) || Abort(loc("Queue could not be loaded.")); $m->callback( QueueObj => $QueueObj, title => \$title, results => \@results, ARGSRef => \%ARGS ); $QueueObj->Disabled && Abort(loc("Cannot create tickets in a disabled queue.")); ProcessAttachments(ARGSRef => \%ARGS); my $checks_failure = 0; { my ($status, @msg) = $m->comp( '/Elements/ValidateCustomFields', CustomFields => $QueueObj->TicketCustomFields, ARGSRef => \%ARGS ); unless ( $status ) { $checks_failure = 1; push @results, @msg; } } my $gnupg_widget = $m->comp('/Elements/Crypt/SignEncryptWidget:new', Arguments => \%ARGS ); $m->comp( '/Elements/Crypt/SignEncryptWidget:Process', self => $gnupg_widget, QueueObj => $QueueObj, ); if ( !exists $ARGS{'AddMoreAttach'} && ($ARGS{'id'}||'') eq 'new' ) { my $status = $m->comp('/Elements/Crypt/SignEncryptWidget:Check', self => $gnupg_widget, Operation => 'Create', QueueObj => $QueueObj, ); $checks_failure = 1 unless $status; } # check email addresses for RT's { foreach my $field ( qw(Requestors Cc AdminCc) ) { my $value = $ARGS{ $field }; next unless defined $value && length $value; my @emails = Email::Address->parse( $value ); foreach my $email ( grep RT::EmailParser->IsRTAddress($_->address), @emails ) { push @results, loc("[_1] is an address RT receives mail at. Adding it as a '[_2]' would create a mail loop", $email->format, loc($field =~ /^(.*?)s?$/) ); $checks_failure = 1; $email = undef; } $ARGS{ $field } = join ', ', map $_->format, grep defined, @emails; } } my $skip_create = 0; $m->callback( CallbackName => 'BeforeCreate', ARGSRef => \%ARGS, skip_create => \$skip_create, checks_failure => $checks_failure, results => \@results ); if ((!exists $ARGS{'AddMoreAttach'}) and (defined($ARGS{'id'}) and $ARGS{'id'} eq 'new')) { # new ticket? if ( !$checks_failure && !$skip_create ) { $m->comp('show', %ARGS); $RT::Logger->crit("After display call; error is $@"); $m->abort(); } } <&| /m/_elements/wrapper, title => $title &> <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', QueueObj => $QueueObj, ARGSRef => \%ARGS ); % if ($gnupg_widget) { <& /Elements/Crypt/SignEncryptWidget:ShowIssues, self => $gnupg_widget &> % }
<&| /Widgets/TitleBox, title => $QueueObj->Name &> <%perl> $showrows->( loc("Subject") => ''); <& /Elements/MessageBox, exists $ARGS{Content} ? (Default => $ARGS{Content}, IncludeSignature => 0 ) : ( QuoteTransaction => $QuoteTransaction ), Height => 5, SuppressAttachmentWarning => 1 &> <&/Elements/Submit, Label => loc("Create") &>
<&| /Widgets/TitleBox &> <%perl> $showrows->( # loc('Queue') => $m->scomp( '/Ticket/Elements/ShowQueue', QueueObj => $QueueObj ) , loc('Status') => $m->scomp( "/Ticket/Elements/SelectStatus", Name => "Status", QueueObj => $QueueObj, ), loc("Owner") => $m->scomp( "/Elements/SelectOwner", Name => "Owner", QueueObj => $QueueObj, Default => $ARGS{Owner} || RT->Nobody->Id, DefaultValue => 0 ), loc("Requestors") => $m->scomp( "/Elements/EmailInput", Name => 'Requestors', Size => '40', Default => $ARGS{Requestors} // $session{CurrentUser}->EmailAddress ), loc("Cc") => $m->scomp( "/Elements/EmailInput", Name => 'Cc', Size => '40', Default => $ARGS{Cc} ) . '' . loc( "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people will receive future updates.)" ) . '', loc("Admin Cc") => $m->scomp( "/Elements/EmailInput", Name => 'AdminCc', Size => '40', Default => $ARGS{AdminCc} ) . '' . loc( "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people will receive future updates.)" ) . '', ); <& /Elements/EditCustomFields, %ARGS, Object => RT::Ticket->new($session{CurrentUser}), CustomFields => $QueueObj->TicketCustomFields, AsTable => 0, &> <& /Ticket/Elements/EditTransactionCustomFields, %ARGS, QueueObj => $QueueObj &> % if ( my $attachments = $session{'Attachments'}{ $ARGS{'Token'} }) { <%loc("Attached file") %> <%loc("Check box to delete")%>
% foreach my $attach_name ( keys %$attachments ) {
% } # end of foreach % } # end of if <%perl> $showrows->( loc("Attach file") => ' ' ); % if ( $gnupg_widget ) { <& /Elements/Crypt/SignEncryptWidget, self => $gnupg_widget, QueueObj => $QueueObj &> % }
<&| /Widgets/TitleBox, title => loc('The Basics'), title_class=> 'inverse', color => "#993333" &> <%perl> $showrows->( loc("Priority") => $m->scomp( "/Elements/SelectPriority", Name => "InitialPriority", Default => $ARGS{InitialPriority} ? $ARGS{InitialPriority} : $QueueObj->DefaultValue('InitialPriority'), ), loc("Final Priority") => $m->scomp( "/Elements/SelectPriority", Name => "FinalPriority", Default => $ARGS{FinalPriority} ? $ARGS{FinalPriority} : $QueueObj->DefaultValue('FinalPriority'), ), loc("Time Estimated") => ''.$m->scomp( "/Elements/EditTimeValue", Name => 'TimeEstimated', Default => $ARGS{TimeEstimated} || '', ).'', loc("Time Worked") => ''.$m->scomp( "/Elements/EditTimeValue", Name => 'TimeWorked', Default => $ARGS{TimeWorked} || '', ). '', loc("Time Left") => ''.$m->scomp( "/Elements/EditTimeValue", Name => 'TimeLeft', Default => $ARGS{TimeLeft} || '', ).'', ); <&|/Widgets/TitleBox, title => loc("Dates"), title_class=> 'inverse', color => "#663366" &> <%perl> $showrows->( loc("Starts") => $m->scomp( "/Elements/SelectDate", Name => "Starts", Default => ( $ARGS{Starts} || $QueueObj->DefaultValue('Starts') || '' )), loc("Due") => $m->scomp( "/Elements/SelectDate", Name => "Due", Default => ($ARGS{Due} || $QueueObj->DefaultValue('Due') || '' )) ); <&|/Widgets/TitleBox, title => loc('Links'), title_class=> 'inverse' &> <%loc("(Enter ticket ids or URLs, separated with spaces)")%> <%perl> $showrows->( loc("Depends on") => '', loc("Depended on by") => '', loc("Parents") => '', loc("Children") => '', loc("Refers to") => '', loc("Referred to by") => '' ); <& /Elements/Submit, Label => loc("Create") &> rt-4.4.4/share/html/m/tickets/search000644 000765 000024 00000006621 13437510132 020162 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $page => 1 $order_by => 'id' $order => 'desc' $name => undef <%init> use RT::Search::Simple; my $query = $ARGS{'query'}; if ($ARGS{'q'}) { my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); my %args = ( Argument => $ARGS{q}, TicketsObj => $tickets, ); my $search = RT::Search::Simple->new(%args); $query = $search->QueryToSQL(); } elsif ($ARGS{'name'}) { my $search_arg; my $search; if ($name) { ($search) = RT::System->new( $session{'CurrentUser'} )->Attributes->Named( 'Search - ' . $name ); unless ( $search && $search->Id ) { my (@custom_searches) = RT::System->new( $session{'CurrentUser'} )->Attributes->Named('SavedSearch'); foreach my $custom (@custom_searches) { if ( $custom->Description eq $name ) { $search = $custom; last } } unless ( $search && $search->id ) { $m->out(loc("Predefined search [_1] not found", $m->interp->apply_escapes($name, 'h'))); return; } } $search_arg = $session{'CurrentUser'}->UserObj->Preferences( $search, $search->Content ); } $query = $search_arg->{Query}; $order_by = $search_arg->{OrderBy}; $order = $search_arg->{Order}; } $m->comp('../_elements/ticket_list', query => $query, page => $page, order_by => $order_by, order => $order); $m->abort(); rt-4.4.4/share/html/Approvals/index.html000644 000765 000024 00000006750 13437510132 021037 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("My approvals") &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &>
<& Elements/PendingMyApproval, %ARGS &> <& /Elements/Submit, Label => loc('Go!') &>
<%init> my (@actions); foreach my $arg ( keys %ARGS ) { next unless ( $arg =~ /Approval-(\d+)-Action/ ); my ( $notesval, $notesmsg ); my $ticket = LoadTicket($1); my $skip_update = 0; $m->callback( CallbackName => 'BeforeApproval', skip_update => \$skip_update, Ticket => $ticket, actions => \@actions); next if $skip_update; if ( $ARGS{ "Approval-" . $ticket->Id . "-Notes" } ) { my ( $notesval, $notesmsg ) = $ticket->Correspond( Content => $ARGS{ "Approval-" . $ticket->Id . "-Notes" } ); if ($notesval) { push ( @actions, loc("Approval #[_1]: Notes recorded",$ticket->Id )); } else { push ( @actions, loc("Approval #[_1]: Notes not recorded due to a system error",$ticket->Id )); } } my ($val, $msg); if ( $ARGS{$arg} eq 'deny' && $ticket->Status !~ /^(rejected|deleted)/ ) { ( $val, $msg ) = $ticket->SetStatus('rejected'); } elsif ( $ARGS{$arg} eq 'approve' && $ticket->Status ne 'resolved') { ( $val, $msg ) = $ticket->SetStatus('resolved'); } push ( @actions, loc("Approval #[_1]: [_2]",$ticket->id, $msg )) if ($msg); } rt-4.4.4/share/html/Approvals/autohandler000644 000765 000024 00000004310 13437510132 021261 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> if ( $session{'CurrentUser'}->UserObj->HasRight( Right => 'ShowApprovalsTab', Object => $RT::System, ) ) { $m->call_next(%ARGS); } else { Abort("No permission to view approval"); } rt-4.4.4/share/html/Approvals/Display.html000644 000765 000024 00000005216 13437510132 021331 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &>
<&| /Widgets/TitleBox, title => $title &> <& /Elements/ShowHistory , Object => $Ticket, ShowTitle => 0, ShowHeaders => 0, ShowDisplayModes => 0, ShowActions => 0, PathPrefix => RT->Config->Get('WebPath')."/Ticket/" &>
<& Elements/Approve, ticket => $Ticket, ShowApproving => 0 &> <& /Elements/Submit&>
<& Elements/ShowDependency, Ticket => $Ticket &> <%init> my $Ticket = LoadTicket($id); my $title = loc("Approval #[_1]: [_2]", $Ticket->Id, $Ticket->Subject); <%ARGS> $id => undef rt-4.4.4/share/html/Approvals/Elements/000755 000765 000024 00000000000 13437510132 020606 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Approvals/Elements/ShowDependency000644 000765 000024 00000007636 13437510132 023464 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $approving = $Ticket->DependedOnBy(); % if ($approving->Count) {

<&|/l&>Tickets which depend on this approval:

  <%PERL> my %show; while (my $link = $approving->Next()) { next unless ($link->BaseURI->IsLocal()); my $text = ''; my $head = ''; my $type = $link->BaseObj->Type; my $dep = $m->scomp('ShowDependency', Ticket => $link->BaseObj, _seen => $_seen); if ($type eq 'approval') { $head .= $m->scomp('/Widgets/TitleBoxStart', title => loc("Approval #[_1]: [_2]", $link->BaseObj->Id, $link->BaseObj->Subject)); $text .= $head; $text .= $m->scomp('/Ticket/Elements/ShowCustomFields', Ticket => $link->BaseObj); } elsif ($type eq 'ticket') { $head .= $m->scomp('/Widgets/TitleBoxStart', title => loc("Ticket #[_1]: [_2]", $link->BaseObj->Id, $link->BaseObj->Subject)); $text .= $head; $text .= $m->scomp('/Ticket/Elements/ShowSummary', Ticket => $link->BaseObj); } else { $head .= $m->scomp('/Widgets/TitleBoxStart', title => loc("#[_1]: [_2]", $link->BaseObj->Id, $link->BaseObj->Subject)); $text .= $head; } $text .= $m->scomp('/Elements/ShowHistory' , Object => $link->BaseObj, ShowTitle => 0, ShowHeaders => 0, ShowDisplayModes => 0, ShowActions => 0, PathPrefix => RT->Config->Get('WebPath')."/Ticket/"); $head .= $m->scomp('/Widgets/TitleBoxEnd'); $text .= $m->scomp('/Widgets/TitleBoxEnd'); $text .= $dep; $text .= ''; $show{$link->BaseObj->Id} = { text => $text, head => $head, }; } my $refer; foreach my $id (sort keys %show) { if ($_seen->{$id}++) { $refer .= "" . $show{$id}{head} . ""; next; } $m->print($show{$id}{text}); } $m->print($refer);
% } <%ARGS> $Ticket $_seen => {} rt-4.4.4/share/html/Approvals/Elements/PendingMyApproval000644 000765 000024 00000012434 13437510132 024134 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my %done; % foreach ($tickets, $group_tickets) { % while (my $ticket = $_->Next() ) { % next if !$ARGS{'ShowDependent'} and $ticket->HasUnresolvedDependencies( Type => 'approval' ); % next if $done{$ticket->Id}++; # don't show duplicate tickets <& Approve, ticket => $ticket &> % } % } <&| /Widgets/TitleBox, title => loc("Search for approvals") &> />
/>
/>
/>
<&|/l_unsafe, qq{"&>Only show approvals for requests created before [_1]
<&|/l_unsafe, qq{"&>Only show approvals for requests created after [_1] <%init> my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); $tickets->LimitOwner( VALUE => $session{'CurrentUser'}->Id ); # also consider AdminCcs as potential approvers. my $group_tickets = RT::Tickets->new( $session{'CurrentUser'} ); $group_tickets->LimitWatcher( VALUE => $session{'CurrentUser'}->EmailAddress, TYPE => 'AdminCc' ); my $created_before = RT::Date->new( $session{'CurrentUser'} ); my $created_after = RT::Date->new( $session{'CurrentUser'} ); foreach ($tickets, $group_tickets) { $_->LimitType( VALUE => 'approval' ); if ( $ARGS{'ShowResolved'} ) { $_->LimitStatus( VALUE => 'resolved' ); } if ( $ARGS{'ShowRejected'} ) { $_->LimitStatus( VALUE => 'rejected' ); } if ( $ARGS{'ShowPending'} || ( !$ARGS{'ShowRejected'} && !$ARGS{'Resolved'} ) ) { $_->LimitStatus( VALUE => 'open' ); $_->LimitStatus( VALUE => 'new' ); $_->LimitStatus( VALUE => 'stalled' ); } if ( $ARGS{'CreatedBefore'} ) { $created_before->Set( Format => 'unknown', Value => $ARGS{'CreatedBefore'} ); $_->LimitCreated( OPERATOR => "<=", VALUE => $created_before->ISO ); } if ( $ARGS{'CreatedAfter'} ) { $created_after->Set( Format => 'unknown', Value => $ARGS{'CreatedAfter'} ); $_->LimitCreated( OPERATOR => ">=", VALUE => $created_after->ISO ); } $_->OrderBy( FIELD => 'id' ); } rt-4.4.4/share/html/Approvals/Elements/Approve000644 000765 000024 00000011542 13437510132 022150 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
% if ($ShowApproving) { % foreach my $approving ( $ticket->AllDependedOnBy( Type => 'ticket' ) ) {
<&|/l, $approving->Id, $approving->Subject &>Originating ticket: #[_1]
% if ($ShowCustomFields) { <& /Ticket/Elements/ShowCustomFields, Ticket => $approving &> % } % if ($ShowHistory) { <& /Elements/ShowHistory, Object => $approving, ShowTitle => 0, ShowHeaders => 0, ShowDisplayModes => 0, ShowActions => 0, PathPrefix => RT->Config->Get('WebPath')."/Ticket/" &> % }
% } % }
% if ( $inactive && $status eq 'resolved' ) { % } else { % }
% if ( $inactive && $status ne 'resolved' ) { % } else { % }
% unless ( $inactive ) {
% }
<%ARGS> $ShowApproving => 1 $ShowCustomFields => 1 $ShowHistory => 1 $ticket => undef <%INIT> my $status = $ticket->Status; my $inactive = $ticket->LifecycleObj->IsInactive( $status ); rt-4.4.4/share/html/Errors/WebRemoteUser/000755 000765 000024 00000000000 13437510132 021067 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Errors/WebRemoteUser/Deauthorized000644 000765 000024 00000004314 13437510132 023443 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Wrapper, %ARGS, Title => loc("No longer authorized") &>

<&|/l&>You were logged out of RT by your authentication system. This may be a temporary hiccup, in which case refreshing this page may help.

rt-4.4.4/share/html/Errors/WebRemoteUser/Wrapper000644 000765 000024 00000005666 13437510132 022447 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Title => loc("An error occurred") $Error => '' <%init> my $login_url = $m->interp->apply_escapes(RT::Interface::Web::TangentForLoginURL(\%ARGS), 'h'); <% $Title %>

<% $Title %>

<% $m->content |n%>

% if (my $owner = RT->Config->Get('OwnerEmail')) { % $owner = $m->interp->apply_escapes($owner, 'h'); <&|/l_unsafe, qq[], $owner, '' &>Contact your RT administrator via [_1]email to [_2][_3]. % } else { <&|/l&>Contact your RT administrator. % }

% if (RT->Config->Get('WebRemoteUserAuth') and RT->Config->Get('WebFallbackToRTLogin')) {

<&|/l_unsafe, qq[], '' &>If you have an internal RT login, you may [_1]try it instead[_2].

% }

rt-4.4.4/share/html/Errors/WebRemoteUser/NoRemoteUser000644 000765 000024 00000004137 13437510132 023406 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Wrapper, %ARGS, Title => loc("Unauthorized") &>

<&|/l&>You are not authorized to use RT.

rt-4.4.4/share/html/Errors/WebRemoteUser/NoInternalUser000644 000765 000024 00000004164 13437510132 023727 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Wrapper, %ARGS, Title => loc("Unauthorized") &>

<&|/l, $ARGS{User} &>You ([_1]) are not authorized to use RT.

rt-4.4.4/share/html/Errors/WebRemoteUser/UserAutocreateDefaultsOnLogin000644 000765 000024 00000004317 13437510132 026730 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Wrapper, %ARGS, Title => loc("Automatic account setup failed") &>

<&|/l&>Unfortunately, RT couldn't automatically setup an account for you. Your RT administator will find more information in the logs.

rt-4.4.4/share/html/Ticket/ShowEmailRecord.html000644 000765 000024 00000010623 13437510132 022225 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Attachment => undef $Transaction => undef <%INIT> my $plain_text_mono = RT->Config->Get( 'PlainTextMono', $session{'CurrentUser'} ); my $use_brs = !$plain_text_mono; my $show_content = sub { my $attach = shift; if ( $attach->ContentType =~ m{^(?:text|message)/}i ) { my $content = $m->interp->apply_escapes( $attach->Content, 'h' ); $content =~ s{(\r?\n)}{
}g if $use_brs; $m->out( $content ); return; } my $href = RT->System->ExternalStorageURLFor($attach) || RT->Config->Get('WebPath') .'/Ticket/Attachment/' . $attach->TransactionId .'/'. $attach->id .'/' . $m->interp->apply_escapes( $attach->Filename, 'u' ); $m->out( ''. loc('download') .'' ); }; my $show; $show = sub { my $attach = shift; $m->out('
'); $m->out('
') if $plain_text_mono; my $headers = $m->interp->apply_escapes( $attach->Headers, 'h' ); $headers =~ s{(\r?\n)}{
}g if $use_brs; $m->out( $headers ); $m->out( $use_brs ? "

" : "\n\n" ); if ( $attach->ContentType =~ m{^multipart/}i ) { my $children = $attach->Children; while ( my $child = $children->Next ) { $show->( $child ); } } else { $show_content->( $attach ); } $m->out('
') if $plain_text_mono; $m->out('
'); }; # Set error for error message below. Abort doesn't display well # because ShowEmailRecord doesn't use the standard RT menus # and headers. my ($title, $error); my $AttachmentObj = RT::Attachment->new($session{'CurrentUser'}); $AttachmentObj->Load($Attachment); if ( not $AttachmentObj->id or not $AttachmentObj->TransactionId() == $Transaction ) { $title = loc("Error loading attachment"); $error = loc("Attachment '[_1]' could not be loaded", $Attachment); } elsif ( not $AttachmentObj->TransactionObj->CurrentUserCanSee("Transaction")){ $title = loc("Permission Denied"); $error = loc("Permission Denied"); } else{ $title = loc("Email Source for Ticket [_1], Attachment [_2]", $AttachmentObj->TransactionObj->ObjectId, $AttachmentObj->Id); } <& /Elements/Header, ShowBar => 0, Title => $title &> % if ( $error ){
<% $error %>
% } % else{ % $show->( $AttachmentObj ); % } % $m->abort; rt-4.4.4/share/html/Ticket/Update.html000644 000765 000024 00000035000 13437510132 020414 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', ARGSRef => \%ARGS, Ticket => $TicketObj); <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS, Ticket => $TicketObj, CanRespond => $CanRespond, CanComment => $CanComment, ResponseDefault => $ResponseDefault, CommentDefault => $CommentDefault ); <& /Elements/Crypt/SignEncryptWidget:ShowIssues, self => $gnupg_widget &>
<&|/Widgets/TitleBox, title => loc('Ticket and Transaction') &> % $m->callback(CallbackName => 'AfterTableOpens', ARGSRef => \%ARGS, Ticket => $TicketObj); % my $skip; % $m->callback( %ARGS, CallbackName => 'BeforeUpdateType', skip => \$skip ); % if (!$skip) {
% } <& /Ticket/Elements/EditBasics, TicketObj => $TicketObj, InTable => 1, fields => [ { name => 'Status', comp => '/Ticket/Elements/SelectStatus', args => { Name => 'Status', Default => $DefaultStatus, TicketObj => $TicketObj, }, }, { name => 'Owner', comp => '/Elements/SelectOwner', args => { Name => "Owner", TicketObj => $TicketObj, QueueObj => $TicketObj->QueueObj, DefaultLabel => loc("[_1] (Unchanged)", $TicketObj->OwnerObj->Format), Default => $ARGS{'Owner'} } }, { special => 'roles' }, { name => 'Worked', comp => '/Elements/EditTimeValue', args => { Name => 'UpdateTimeWorked', Default => $ARGS{UpdateTimeWorked}||'', } }, ] &> % $m->callback( %ARGS, CallbackName => 'AfterWorked', Ticket => $TicketObj ); <& /Ticket/Elements/EditTransactionCustomFields, %ARGS, TicketObj => $TicketObj, AsTable => 1 &>
<&|/l&>Update Type: % $m->callback( %ARGS, CallbackName => 'AfterUpdateType' );
% $m->callback( %ARGS, CallbackName => 'RightColumnBottom', Ticket => $TicketObj );
% if ( RT->Config->Get('SimplifiedRecipients', $session{'CurrentUser'}) ) { <&|/Widgets/TitleBox, title => loc('Recipients'), id => 'recipients' &> % unless ($TicketObj->CurrentUserHasRight('ShowOutgoingEmail')) { % for my $address (grep {defined} ref $ARGS{TxnSendMailTo} ? @{$ARGS{TxnSendMailTo}} : $ARGS{TxnSendMailTo}) { % } % } %} <&|/Widgets/TitleBox, title => loc('Message'), class => 'messagedetails' &> <& /Ticket/Elements/UpdateCc, %ARGS, TicketObj => $TicketObj &> % if ( $gnupg_widget ) { % } % $m->callback( %ARGS, CallbackName => 'AfterGnuPG' ); <& /Ticket/Elements/AddAttachments, %ARGS, TicketObj => $TicketObj &>
  <& /Elements/Crypt/SignEncryptWidget, self => $gnupg_widget, TicketObj => $TicketObj, &>
<&|/l&>Subject: % $m->callback( %ARGS, CallbackName => 'AfterSubject' );
<&|/l&>Message: <& /Articles/Elements/BeforeMessageBox, %ARGS &> % $m->callback( %ARGS, CallbackName => 'BeforeMessageBox' ); % if (exists $ARGS{UpdateContent}) { % # preserve QuoteTransaction so we can use it to set up sane references/in/reply to % my $temp = $ARGS{'QuoteTransaction'}; % delete $ARGS{'QuoteTransaction'}; <& /Elements/MessageBox, Name=>"UpdateContent", Default=>$ARGS{UpdateContent}, IncludeSignature => 0, %ARGS&> % $ARGS{'QuoteTransaction'} = $temp; % } else { % my $IncludeSignature = 1; % $IncludeSignature = 0 if $Action ne 'Respond' && !RT->Config->Get('MessageBoxIncludeSignatureOnComment'); <& /Elements/MessageBox, Name=>"UpdateContent", IncludeSignature => $IncludeSignature, %ARGS &> % } % $m->callback( %ARGS, CallbackName => 'AfterMessageBox' );
% $m->callback( %ARGS, CallbackName => 'BeforeSubmit', Ticket => $TicketObj ); <& /Elements/Submit, Label => loc('Update Ticket'), Name => 'SubmitTicket', id => 'SubmitTicket' &> % $m->callback( %ARGS, CallbackName => 'BeforeScrips', Ticket => $TicketObj ); % if ($TicketObj->CurrentUserHasRight('ShowOutgoingEmail')) { <&|/Widgets/TitleBox, title => loc('Scrips and Recipients'), id => 'previewscrips', rolledup => RT->Config->Get('SimplifiedRecipients', $session{'CurrentUser'}) &> % for my $address (grep {defined} ref $ARGS{TxnSendMailTo} ? @{$ARGS{TxnSendMailTo}} : $ARGS{TxnSendMailTo}) { % } % }
% $m->callback( %ARGS, CallbackName => 'AfterScrips', Ticket => $TicketObj );

% $m->callback( %ARGS, CallbackName => 'AfterForm', Ticket => $TicketObj ); % if ($TicketObj->CurrentUserHasRight('ShowOutgoingEmail') or RT->Config->Get('SimplifiedRecipients', $session{'CurrentUser'})) { % } <%INIT> my $CanRespond = 0; my $CanComment = 0; my $checks_failure = 0; my $TicketObj = LoadTicket($id); my @results; $m->callback( Ticket => $TicketObj, ARGSRef => \%ARGS, checks_failure => \$checks_failure, results => \@results, CallbackName => 'Initial' ); $m->scomp( '/Articles/Elements/SubjectOverride', Ticket => $TicketObj, ARGSRef => \%ARGS, results => \@results ); unless($DefaultStatus){ $DefaultStatus=($ARGS{'Status'} ||$TicketObj->Status()); } my $title = loc("Update ticket #[_1]: [_2]", $TicketObj->id, $TicketObj->Subject); # Things needed in the template - we'll do the processing here, just # for the convenience: my ($CommentDefault, $ResponseDefault); if ($Action ne 'Respond') { $CommentDefault = qq[ selected="selected"]; $ResponseDefault = ""; } else { $CommentDefault = ""; $ResponseDefault = qq[ selected="selected"]; } my $type = $ARGS{'UpdateType'} ? $ARGS{'UpdateType'} : lc $Action eq 'respond' ? 'response' : lc $Action eq 'comment' ? 'private' : 'none' ; $CanRespond = 1 if ( $TicketObj->CurrentUserHasRight('ReplyToTicket') or $TicketObj->CurrentUserHasRight('ModifyTicket') ); $CanComment = 1 if ( $TicketObj->CurrentUserHasRight('CommentOnTicket') or $TicketObj->CurrentUserHasRight('ModifyTicket') ); ProcessAttachments(ARGSRef => \%ARGS); my %squelched = ProcessTransactionSquelching( \%ARGS ); $ARGS{'SquelchMailTo'} = [keys %squelched] if keys %squelched; my $gnupg_widget = $m->comp('/Elements/Crypt/SignEncryptWidget:new', Arguments => \%ARGS ); $m->comp( '/Elements/Crypt/SignEncryptWidget:Process', self => $gnupg_widget, TicketObj => $TicketObj, ); if ( $ARGS{'SubmitTicket'} ) { my ($status, @msg) = $m->comp( '/Elements/ValidateCustomFields', CustomFields => $TicketObj->TransactionCustomFields, Object => RT::Transaction->new( $session{'CurrentUser'} ), ARGSRef => \%ARGS ); unless ( $status ) { push @results, @msg; $checks_failure = 1; } $status = $m->comp('/Elements/Crypt/SignEncryptWidget:Check', self => $gnupg_widget, TicketObj => $TicketObj, ); $checks_failure = 1 unless $status; } # check email addresses for RT's { foreach my $field ( qw(UpdateCc UpdateBcc) ) { my $value = $ARGS{ $field }; next unless defined $value && length $value; my @emails = Email::Address->parse( $value ); foreach my $email ( grep RT::EmailParser->IsRTAddress($_->address), @emails ) { push @results, loc("[_1] is an address RT receives mail at. Adding it as a '[_2]' would create a mail loop", $email->format, loc(substr($field, 6)) ); $checks_failure = 1; $email = undef; } $ARGS{ $field } = join ', ', map $_->format, grep defined, @emails; } } # $skip_update is provided below by reference to allow a final check to stop # the update and print a message for the user to fix something. my $skip_update = 0; $m->callback( CallbackName => 'BeforeUpdate', ARGSRef => \%ARGS, skip_update => \$skip_update, checks_failure => $checks_failure, results => \@results, TicketObj => $TicketObj ); if ( !$checks_failure && !$skip_update && exists $ARGS{SubmitTicket} ) { $m->callback( Ticket => $TicketObj, ARGSRef => \%ARGS, CallbackName => 'BeforeDisplay' ); return $m->comp('Display.html', TicketObj => $TicketObj, %ARGS); } $TicketObj->CurrentUser->AddRecentlyViewedTicket($TicketObj); <%ARGS> $id => undef $Action => '' $DefaultStatus => undef rt-4.4.4/share/html/Ticket/Crypt.html000644 000765 000024 00000007016 13437510132 020301 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> % $m->callback( CallbackName => 'BeforeActionList', %ARGS, Actions => \@results, ARGSRef => \%ARGS ); <& /Elements/ListActions, actions => \@results &>
<% loc('Return back to the ticket') %> <& /Elements/Submit, Label => ($encrypted? loc('Decrypt'): loc('Encrypt')), Name => ($encrypted? 'Decrypt': 'Encrypt'), &>
<%ARGS> $id => undef $Encrypt => 0 $Decrypt => 0 <%INIT> my $txn = RT::Transaction->new( $session{'CurrentUser'} ); $txn->Load( $id ); unless ( $txn->id ) { Abort(loc("Couldn't load transaction #[_1]", $id)); } $id = $txn->id; my @results; my $encrypted = 0; my $attachments = $txn->Attachments; while ( my $attachment = $attachments->Next ) { next unless $attachment->ContentType =~ m{^x-application-rt/[^-]+-encrypted\b}; $encrypted = 1; last; } $attachments->GotoFirstItem; if ( $Encrypt || $Decrypt ) { my $done = 1; while ( my $attachment = $attachments->Next ) { my ($status, $msg) = $Decrypt? $attachment->Decrypt : $attachment->Encrypt; push @results, $msg; unless ( $status ) { $done = 0; last; } } $encrypted = !$encrypted if $done; } my $title = loc("Encrypt/Decrypt transaction #[_1] of ticket #[_2]: [_3]", $id, $txn->Ticket, $txn->TicketObj->Subject); rt-4.4.4/share/html/Ticket/ModifyPeople.html000644 000765 000024 00000014714 13437510132 021577 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Modify people related to ticket #[_1]: [_2]', $Ticket->id, $Ticket->Subject) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', Actions => \@results, ARGSRef => \%ARGS, Ticket => $Ticket); <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS ); <&| /Widgets/TitleBox, title => loc('Modify people related to ticket #[_1]', $Ticket->Id), width => "100%", color=> "#333399", class=>'ticket-info-people' &> <& Elements/EditPeople, Ticket => $Ticket, UserField => $UserField, UserString => $UserString, UserOp => $UserOp, GroupString => $GroupString, GroupOp => $GroupOp, GroupField => $GroupField &> <&| /Widgets/TitleBox, title => loc("Modify who receives mail for ticket #[_1]", $Ticket->Id), width => "100%", color=> "#333399", class=>'ticket-info-squelch' &>

<&|/l&>The checked users may receive email related to this ticket depending on the action taken. Uncheck users to stop sending email to them about this ticket.

<%PERL> my $all_recipients_checked = (grep { !$_ } values %recips) ? 0 : 1; >
    % for my $addr (sort keys %recips) {
  • >
  • % }
<& /Elements/Submit, Name => 'SubmitTicket', Label => loc('Save Changes'), Caption => loc("If you've updated anything above, be sure to"), color => "#333399" &>
% $m->callback(CallbackName => 'AfterForm', ARGSRef => \%ARGS, Ticket => $Ticket); <%INIT> my @results; my $Ticket = LoadTicket($id); $m->callback( TicketObj => $Ticket, ARGSRef => \%ARGS ); # Update the squelch list my %squelched = map {$_->Content => 1} $Ticket->SquelchMailTo; my %checked = map {$_ => 1} grep {defined} (ref $ARGS{'checked_recipient'} eq "ARRAY" ? @{$ARGS{'checked_recipient'}} : defined $ARGS{'checked_recipient'} ? ($ARGS{'checked_recipient'}) : ()); my @all = grep {defined} (ref $ARGS{'autorecipient'} eq "ARRAY" ? @{$ARGS{'autorecipient'}} : defined $ARGS{'autorecipient'} ? ($ARGS{'autorecipient'}) : ()); $Ticket->UnsquelchMailTo($_) for grep {$squelched{$_}} keys %checked; $Ticket->SquelchMailTo($_) for grep {!$squelched{$_} and !$checked{$_}} @all; # if we're trying to search for watchers and nothing else unless ($OnlySearchForPeople or $OnlySearchForGroup) { $Ticket->Atomic(sub{ push @results, ProcessTicketBasics( TicketObj => $Ticket, ARGSRef => \%ARGS); push @results, ProcessTicketWatchers( TicketObj => $Ticket, ARGSRef => \%ARGS); push @results, ProcessObjectCustomFieldUpdates( Object => $Ticket, ARGSRef => \%ARGS ); }); } # Use the ticket's scrips to figure out the new list of recipients. my @txns = $Ticket->DryRun( sub { my $MIME = MIME::Entity->build( Type => "text/plain", Data => "" ); $Ticket->Comment(MIMEObj => $MIME); $Ticket->Correspond(MIMEObj => $MIME); } ); my %recips=(); for my $scrip (map {@{$_->Scrips->Prepared}} @txns) { next unless $scrip->ActionObj->Action->isa('RT::Action::SendEmail'); for my $type (qw(To Cc Bcc)) { $recips{$_->address} = 1 for $scrip->ActionObj->Action->$type(); } } for my $rule (map {@{$_->Rules}} @txns) { next unless $rule->{hints} && $rule->{hints}{class} eq "SendEmail"; for my $type (qw(To Cc Bcc)) { $recips{$_} = 1 for @{$rule->{hints}{recips}{$type}}; } } # Use tkt squelch list to get recipients who will NOT get mail: $recips{$_->Content} = 0 for $Ticket->SquelchMailTo; $Ticket->CurrentUser->AddRecentlyViewedTicket($Ticket); <%ARGS> $OnlySearchForPeople => undef $OnlySearchForGroup => undef $UserField => undef $UserOp => undef $UserString => undef $GroupField => undef $GroupOp => undef $GroupString => undef $id => undef rt-4.4.4/share/html/Ticket/Modify.html000644 000765 000024 00000011612 13437510132 020424 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Modify ticket #[_1]: [_2]', $TicketObj->Id, $TicketObj->Subject) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', Actions => \@results, ARGSRef => \%ARGS, Ticket => $TicketObj); <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS ); <&| /Widgets/TitleBox, title => loc('Modify ticket #[_1]',$TicketObj->Id), class=>'ticket-info-basics' &> <& Elements/EditBasics, TicketObj => $TicketObj, defaults => \%ARGS, InTable => 1 &> <& /Elements/EditCustomFields, %ARGS, Object => $TicketObj, Grouping => 'Basics', InTable => 1 &>
% $m->callback( CallbackName => 'AfterBasics', Ticket => $TicketObj ); <& /Elements/EditCustomFieldCustomGroupings, %ARGS, Object => $TicketObj, AsTable => !!RT->Config->Get('EditCustomFieldsSingleColumn', $session{'CurrentUser'}) &> <& /Elements/Submit, Name => 'SubmitTicket', Label => loc('Save Changes'), Caption => loc("If you've updated anything above, be sure to"), color => "#993333" &>
% $m->callback(CallbackName => 'AfterForm', ARGSRef => \%ARGS, Ticket => $TicketObj); <%INIT> my $TicketObj = LoadTicket($id); my $CustomFields = $TicketObj->CustomFields; my @results; my $skip_update = 0; # Now let callbacks have a chance at editing %ARGS $m->callback( TicketObj => $TicketObj, CustomFields => $CustomFields, ARGSRef => \%ARGS, skip_update => \$skip_update, results => \@results ); { my ($status, @msg) = $m->comp( '/Elements/ValidateCustomFields', Object => $TicketObj, CustomFields => $CustomFields, ARGSRef => \%ARGS, ); unless ($status) { push @results, @msg; $skip_update = 1; } } unless ($skip_update) { $TicketObj->Atomic(sub{ push @results, ProcessTicketBasics(TicketObj => $TicketObj, ARGSRef => \%ARGS); push @results, ProcessTicketWatchers(TicketObj => $TicketObj, ARGSRef => \%ARGS); push @results, ProcessObjectCustomFieldUpdates(Object => $TicketObj, ARGSRef => \%ARGS); $m->callback( CallbackName => 'ProcessUpdates', TicketObj => $TicketObj, ARGSRef => \%ARGS, Results => \@results ); }); MaybeRedirectForResults( Actions => \@results, Path => "/Ticket/Modify.html", Arguments => { id => $TicketObj->id }, ); } unless ($TicketObj->CurrentUserHasRight('ShowTicket')) { if (@results) { Abort("A change was applied successfully, but you no longer have permissions to view the ticket", Actions => \@results); } else { Abort("No permission to view ticket"); } } $TicketObj->CurrentUser->AddRecentlyViewedTicket($TicketObj); <%ARGS> $id => undef rt-4.4.4/share/html/Ticket/autohandler000644 000765 000024 00000005033 13437510132 020540 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> # Redirect to the approvals view if we're trying to get an approvals ticket # Exceptions: # - Display handles redirecting for approvals itself after mobile redirect/processing # - Create doesn't have an existing ticket # - Forward and ShowEmailRecord are used by the approvals view # - anything not ending in a .html my $whitelist = qr{ (?:/(?:Display|Create|Forward|ShowEmailRecord)\.html |(? $whitelist, ARGSRef => \%ARGS, ); $m->call_next; rt-4.4.4/share/html/Ticket/Attachment/000755 000765 000024 00000000000 13437510132 020376 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Ticket/Create.html000644 000765 000024 00000042322 13437510132 020402 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title, onload => "function () { hide('Ticket-Create-details') }" &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', QueueObj => $QueueObj, ARGSRef => \%ARGS ); % if ($gnupg_widget) { <& /Elements/Crypt/SignEncryptWidget:ShowIssues, self => $gnupg_widget &> % }
<&| /Widgets/TitleBox, title => loc("Basics"), class=>'ticket-info-basics' &> <& /Ticket/Elements/EditBasics, InTable => 1, QueueObj => $QueueObj, defaults => \%ARGS, fields => [ { name => 'Queue', comp => '/Ticket/Elements/ShowQueue', args => { QueueObj => $QueueObj, }, }, { name => 'Status', comp => '/Ticket/Elements/SelectStatus', args => { Name => "Status", QueueObj => $QueueObj, }, }, { name => 'Owner', comp => '/Elements/SelectOwner', args => { Name => "Owner", Default => $ARGS{Owner} || RT->Nobody->Id, DefaultValue => 0, QueueObj => $QueueObj, }, }, { special => 'roles' }, $QueueObj->SLADisabled ? () : ( { name => 'SLA', comp => '/Elements/SelectSLA', args => { Name => "SLA", Default => $ARGS{SLA} || RT::SLA->GetDefaultServiceLevel(Queue => $QueueObj), DefaultValue => RT::SLA->GetDefaultServiceLevel(Queue => $QueueObj) ? 0 : 1, QueueObj => $QueueObj, }, }), ] &> % $m->callback( CallbackName => 'AfterOwner', ARGSRef => \%ARGS ); <& /Elements/EditCustomFields, %ARGS, Object => $ticket, CustomFields => $QueueObj->TicketCustomFields, Grouping => 'Basics', InTable => 1, ForCreation => 1, &> <& /Ticket/Elements/EditTransactionCustomFields, %ARGS, QueueObj => $QueueObj, InTable => 1 &>
<& /Ticket/Elements/ShowAssetsOnCreate, QueueObj => $QueueObj, ARGSRef => \%ARGS &> % $m->callback( CallbackName => 'AfterBasics', QueueObj => $QueueObj, ARGSRef => \%ARGS ); <& /Elements/EditCustomFieldCustomGroupings, %ARGS, Object => $ticket, CustomFieldGenerator => sub { $QueueObj->TicketCustomFields }, ForCreation => 1, &>
<&| /Widgets/TitleBox, title => $title, class => 'messagedetails' &> % $m->callback(CallbackName => 'BeforeRequestors', QueueObj => $QueueObj, ARGSRef => \%ARGS); % my $roles = $QueueObj->CustomRoles; % $roles->LimitToMultipleValue; % $m->callback( CallbackName => 'ModifyCustomRoles', ARGSRef => \%ARGS, CustomRoles => $roles ); % while (my $role = $roles->Next) { % if ($role->EntryHint) { % } % } <& /Elements/EditCustomFields, %ARGS, Object => $ticket, CustomFields => $QueueObj->TicketCustomFields, Grouping => 'People', InTable => 1, ForCreation => 1, &> % if ( $gnupg_widget ) { % } <& /Ticket/Elements/AddAttachments, %ARGS, QueueObj => $QueueObj &>
<&|/l&>Requestors: <& /Elements/EmailInput, Name => 'Requestors', Size => undef, Default => $ARGS{Requestors} // $session{CurrentUser}->EmailAddress, AutocompleteMultiple => 1 &> % $m->callback( CallbackName => 'AfterRequestors', QueueObj => $QueueObj, ARGSRef => \%ARGS );
<&|/l&>Cc: <& /Elements/EmailInput, Name => 'Cc', Size => undef, Default => $ARGS{Cc}, AutocompleteMultiple => 1 &>
  <&|/l&>(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people will receive future updates.)
<&|/l&>Admin Cc: <& /Elements/EmailInput, Name => 'AdminCc', Size => undef, Default => $ARGS{AdminCc}, AutocompleteMultiple => 1 &>
  <&|/l&>(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people will receive future updates.)
<% $role->Name %>: <& /Elements/EmailInput, Name => $role->GroupType, Size => undef, Default => $ARGS{$role->GroupType}, AutocompleteMultiple => 1 &>
  <% $role->EntryHint %>
<&|/l&>Subject: % $m->callback( %ARGS, CallbackName => 'AfterSubject' );
  <& /Elements/Crypt/SignEncryptWidget, self => $gnupg_widget, QueueObj => $QueueObj &>
<&|/l&>Describe the issue below:
% if ( RT->Config->Get('ArticleOnTicketCreate')) { <& /Articles/Elements/BeforeMessageBox, %ARGS, QueueObj => $QueueObj &> % } % $m->callback( %ARGS, QueueObj => $QueueObj, CallbackName => 'BeforeMessageBox' ); % if (exists $ARGS{Content}) { <& /Elements/MessageBox, Default => $ARGS{Content}, IncludeSignature => 0 &> % } else { <& /Elements/MessageBox, QuoteTransaction => $QuoteTransaction &> %} % $m->callback( %ARGS, QueueObj => $QueueObj, CallbackName => 'AfterMessageBox' );
<& /Elements/Submit, Label => loc("Create"), id => 'SubmitTicket' &>
<&| /Widgets/TitleBox, title => loc('The Basics'), title_class=> 'inverse', color => "#993333" &>
<&|/l&>Priority: <& /Elements/SelectPriority, Name => "InitialPriority", Default => $ARGS{InitialPriority} ? $ARGS{InitialPriority} : $QueueObj->DefaultValue('InitialPriority'), &>
<&|/l&>Final Priority: <& /Elements/SelectPriority, Name => "FinalPriority", Default => $ARGS{FinalPriority} ? $ARGS{FinalPriority} : $QueueObj->DefaultValue('FinalPriority'), &>
<&|/l&>Time Estimated: <& /Elements/EditTimeValue, Name => 'TimeEstimated', Default => $ARGS{TimeEstimated} || '' &>
<&|/l&>Time Worked: <& /Elements/EditTimeValue, Name => 'TimeWorked', Default => $ARGS{TimeWorked} || '' &>
<&|/l&>Time Left: <& /Elements/EditTimeValue, Name => 'TimeLeft', Default => $ARGS{TimeLeft} || '' &>

<&|/Widgets/TitleBox, title => loc("Dates"), title_class=> 'inverse', color => "#663366" &> <& /Elements/EditCustomFields, %ARGS, Object => $ticket, CustomFields => $QueueObj->TicketCustomFields, Grouping => 'Dates', InTable => 1, ForCreation => 1, &>
<&|/l&>Starts: <& /Elements/SelectDate, Name => 'Starts', Default => $ARGS{Starts} || $QueueObj->DefaultValue('Starts') || '', Object => $ticket, ARGSRef => \%ARGS, &>
<&|/l&>Due: <& /Elements/SelectDate, Name => 'Due', Default => $ARGS{Due} || $QueueObj->DefaultValue('Due') || '', Object => $ticket, ARGSRef => \%ARGS, &>


<& /Elements/Submit, Label => loc("Create") &>
<%INIT> $m->callback( CallbackName => "Init", ARGSRef => \%ARGS ); my $Queue = $ARGS{Queue}; $session{DefaultQueue} = $Queue; my $current_user = $session{'CurrentUser'}; if ($CloneTicket) { my $CloneTicketObj = RT::Ticket->new( $session{CurrentUser} ); $CloneTicketObj->Load($CloneTicket) or Abort( loc("Ticket could not be loaded"), Code => HTTP::Status::HTTP_BAD_REQUEST ); my $clone = { Requestors => join( ',', $CloneTicketObj->RequestorAddresses ), Cc => join( ',', $CloneTicketObj->CcAddresses ), AdminCc => join( ',', $CloneTicketObj->AdminCcAddresses ), InitialPriority => $CloneTicketObj->Priority, }; $clone->{$_} = $CloneTicketObj->$_() for qw/Owner Subject FinalPriority Status/; $clone->{$_} = $CloneTicketObj->$_->AsString for grep { $CloneTicketObj->$_->IsSet } map { $_ . "Obj" } qw/Starts Started Due Resolved/; my $get_link_value = sub { my ($link, $type) = @_; my $uri_method = $type . 'URI'; my $local_method = 'Local' . $type; my $uri = $link->$uri_method; return if $uri->IsLocal and $uri->Object and $uri->Object->isa('RT::Ticket') and $uri->Object->__Value('Type') eq 'reminder'; return $link->$local_method || $uri->URI; }; my (@refers, @refers_by); my $refers = $CloneTicketObj->RefersTo; while ( my $refer = $refers->Next ) { my $refer_value = $get_link_value->($refer, 'Target'); push @refers, $refer_value if defined $refer_value; } $clone->{'new-RefersTo'} = join ' ', @refers; my $refers_by = $CloneTicketObj->ReferredToBy; while ( my $refer_by = $refers_by->Next ) { my $refer_by_value = $get_link_value->($refer_by, 'Base'); push @refers_by, $refer_by_value if defined $refer_by_value; } $clone->{'RefersTo-new'} = join ' ', @refers_by; my $cfs = $CloneTicketObj->QueueObj->TicketCustomFields(); while ( my $cf = $cfs->Next ) { my $cf_id = $cf->id; my $cf_values = $CloneTicketObj->CustomFieldValues( $cf->id ); my @cf_values; while ( my $cf_value = $cf_values->Next ) { push @cf_values, $cf_value->Content; } if ( @cf_values > 1 && $cf->Type eq 'Select' ) { $clone->{GetCustomFieldInputName( CustomField => $cf )} = \@cf_values; } else { $clone->{GetCustomFieldInputName( CustomField => $cf )} = join "\n", @cf_values; } } $m->callback( CallbackName => 'MassageCloneArgs', ARGSRef => $clone, Queue => $Queue ); for ( keys %$clone ) { $ARGS{$_} = $clone->{$_} if not defined $ARGS{$_}; } } my @results; my $QueueObj = RT::Queue->new($current_user); $QueueObj->Load($Queue) || Abort(loc("Queue [_1] could not be loaded.", $Queue||''), Code => HTTP::Status::HTTP_BAD_REQUEST); my $title = loc("Create a new ticket in [_1]", $m->scomp("/Ticket/Elements/ShowQueue", QueueObj => $QueueObj)); $m->callback( QueueObj => $QueueObj, title => \$title, results => \@results, ARGSRef => \%ARGS ); $m->scomp( '/Articles/Elements/SubjectOverride', ARGSRef => \%ARGS, QueueObj => $QueueObj, results => \@results ); $QueueObj->Disabled && Abort(loc("Cannot create tickets in a disabled queue."), Code => HTTP::Status::HTTP_NOT_FOUND); my $ticket = RT::Ticket->new($current_user); # empty ticket object ProcessAttachments(ARGSRef => \%ARGS); my $checks_failure = 0; { my ($status, @msg) = $m->comp( '/Elements/ValidateCustomFields', CustomFields => $QueueObj->TicketCustomFields, ARGSRef => \%ARGS ); unless ($status) { $checks_failure = 1; push @results, @msg; } } my $gnupg_widget = $m->comp('/Elements/Crypt/SignEncryptWidget:new', Arguments => \%ARGS ); $m->comp( '/Elements/Crypt/SignEncryptWidget:Process', self => $gnupg_widget, QueueObj => $QueueObj, ); if ( !exists $ARGS{'AddMoreAttach'} && ($ARGS{'id'}||'') eq 'new' ) { my $status = $m->comp('/Elements/Crypt/SignEncryptWidget:Check', self => $gnupg_widget, Operation => 'Create', QueueObj => $QueueObj, ); $checks_failure = 1 unless $status; } # check email addresses for RT's { foreach my $field ( qw(Requestors Cc AdminCc) ) { my $value = $ARGS{ $field }; next unless defined $value && length $value; my @emails = Email::Address->parse( $value ); foreach my $email ( grep RT::EmailParser->IsRTAddress($_->address), @emails ) { push @results, loc("[_1] is an address RT receives mail at. Adding it as a '[_2]' would create a mail loop", $email->format, loc($field =~ /^(.*?)s?$/) ); $checks_failure = 1; $email = undef; } $ARGS{ $field } = join ', ', map $_->format, grep defined, @emails; } } my $skip_create = 0; $m->callback( CallbackName => 'BeforeCreate', ARGSRef => \%ARGS, skip_create => \$skip_create, checks_failure => $checks_failure, results => \@results ); $m->comp( '/Articles/Elements/CheckSkipCreate', ARGSRef => \%ARGS, skip_create => \$skip_create, checks_failure => $checks_failure, results => \@results ); if ((!exists $ARGS{'AddMoreAttach'}) and (!exists $ARGS{'Go'}) and (defined($ARGS{'id'}) and $ARGS{'id'} eq 'new')) { # new ticket? if ( !$checks_failure && !$skip_create ) { $m->comp('Display.html', %ARGS); $RT::Logger->crit("After display call; error is $@"); $m->abort(); } } PageMenu->child( basics => raw_html => q[] . loc('Basics') . q[]); PageMenu->child( details => raw_html => q[] . loc('Details') . q[]); <%ARGS> $DependsOn => undef $DependedOnBy => undef $MemberOf => undef $QuoteTransaction => undef $CloneTicket => undef rt-4.4.4/share/html/Ticket/Display.html000644 000765 000024 00000023000 13437510132 020574 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title, LinkRel => \%link_rel &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', %ARGS, Actions => \@Actions, ARGSRef => \%ARGS, Ticket => $TicketObj); <& /Elements/ListActions, actions => \@Actions &> <& Elements/ShowUpdateStatus, Ticket => $TicketObj &> <& Elements/ShowDependencyStatus, Ticket => $TicketObj &> % $m->callback( %ARGS, Ticket => $TicketObj, Transactions => $transactions, Attachments => $attachments, CallbackName => 'BeforeShowSummary' ); <%PERL> my $show_label = $m->interp->apply_escapes( loc("Show unset fields"), 'h' ); my $hide_label = $m->interp->apply_escapes( loc("Hide unset fields"), 'h' ); my $initial_label = $HideUnsetFields ? $show_label : $hide_label; my $url = "?HideUnsetFields=" . ($HideUnsetFields ? 0 : 1) . ";id=$ARGS{id}"; my $url_html = $m->interp->apply_escapes($url, 'h'); my $titleright = qq{$initial_label};
<&| /Widgets/TitleBox, title => loc('Ticket metadata'), titleright_raw => $titleright &> <& /Ticket/Elements/ShowSummary, Ticket => $TicketObj, Attachments => $attachments &>

% $m->callback( Ticket => $TicketObj, %ARGS, Transactions => $transactions, Attachments => $attachments, CallbackName => 'BeforeShowHistory' ); % my $ShowHistory = RT->Config->Get("ShowHistory", $session{'CurrentUser'}); % if ($ShowHistory eq "scroll") { <& /Ticket/Elements/ScrollShowHistory, Ticket => $TicketObj, ShowHeaders => $ARGS{'ShowHeaders'}, &> % } elsif ($ShowHistory eq "delay") { <& /Ticket/Elements/DelayShowHistory, Ticket => $TicketObj, ShowHeaders => $ARGS{'ShowHeaders'}, &> % } elsif (not $ForceShowHistory and $ShowHistory eq "click") { <& /Ticket/Elements/ClickToShowHistory, Ticket => $TicketObj, ShowHeaders => $ARGS{'ShowHeaders'}, &> % } else { <& /Elements/ShowHistory , Object => $TicketObj, Transactions => $transactions, ShowHeaders => $ARGS{'ShowHeaders'}, Attachments => $attachments, AttachmentContent => $attachment_content &> % } % $m->callback( %ARGS, % Ticket => $TicketObj, % Transactions => $transactions, % Attachments => $attachments, % CallbackName => 'AfterShowHistory', % ); <%ARGS> $TicketObj => undef $ShowHeaders => 0 $HideUnsetFields => RT->Config->Get('HideUnsetFieldsOnDisplay', $session{CurrentUser}) $ForceShowHistory => 0 <%INIT> $m->callback( TicketObj => $TicketObj, ARGSRef => \%ARGS, CallbackName => 'Initial' ); if ( ! $ARGS{'NoRedirect'} && RT::Interface::Web->MobileClient()) { $ARGS{'id'} ||= $TicketObj->id if $TicketObj; RT::Interface::Web::Redirect(RT->Config->Get('WebURL').'m/ticket/show?id='.$ARGS{'id'}); $m->abort; } my (@Actions, $title); unless ($ARGS{'id'} || $TicketObj) { Abort('No ticket specified'); } if ($ARGS{'id'} eq 'new') { # Create a new ticket my $Queue = RT::Queue->new( $session{'CurrentUser'} ); $Queue->Load($ARGS{'Queue'}); unless ( $Queue->id ) { Abort('Queue not found', Code => HTTP::Status::HTTP_NOT_FOUND); } unless ( $Queue->CurrentUserHasRight('CreateTicket') ) { Abort('You have no permission to create tickets in that queue.', Code => HTTP::Status::HTTP_FORBIDDEN); } ($TicketObj, @Actions) = CreateTicket( %ARGS ); unless ( $TicketObj->CurrentUserHasRight('ShowTicket') ) { Abort("No permission to view newly created ticket #".$TicketObj->id.".", Code => HTTP::Status::HTTP_FORBIDDEN); } } else { $TicketObj ||= LoadTicket($ARGS{'id'}); $TicketObj->CurrentUser->PrincipalObj->HasRights( Object => $TicketObj ); my $SkipProcessing; $TicketObj->Atomic(sub{ $m->callback( CallbackName => 'BeforeProcessArguments', TicketObj => $TicketObj, ActionsRef => \@Actions, ARGSRef => \%ARGS, SkipProcessing => \$SkipProcessing ); return if $SkipProcessing; if ( defined $ARGS{'Action'} ) { if ($ARGS{'Action'} =~ /^(Steal|Delete|Take|Untake|SetTold)$/) { my $action = $1; my ($res, $msg) = $TicketObj->$action(); push(@Actions, $msg); } } $m->callback(CallbackName => 'ProcessArguments', Ticket => $TicketObj, ARGSRef => \%ARGS, Actions => \@Actions); push @Actions, ProcessUpdateMessage( ARGSRef => \%ARGS, Actions => \@Actions, TicketObj => $TicketObj, ); #Process status updates push @Actions, ProcessTicketWatchers(ARGSRef => \%ARGS, TicketObj => $TicketObj ); push @Actions, ProcessTicketBasics( ARGSRef => \%ARGS, TicketObj => $TicketObj ); push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $TicketObj ); push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $TicketObj ); push @Actions, ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, Object => $TicketObj ); push @Actions, ProcessTicketReminders( ARGSRef => \%ARGS, TicketObj => $TicketObj ); }); if ( !$SkipProcessing ) { unless ($TicketObj->CurrentUserHasRight('ShowTicket')) { if (@Actions) { Abort("A change was applied successfully, but you no longer have permissions to view the ticket", Actions => \@Actions, Code => HTTP::Status::HTTP_FORBIDDEN); } else { Abort("No permission to view ticket", Code => HTTP::Status::HTTP_FORBIDDEN); } } if ( $ARGS{'MarkAsSeen'} ) { $TicketObj->SetAttribute( Name => 'User-'. $TicketObj->CurrentUser->id .'-SeenUpTo', Content => $TicketObj->LastUpdated, ); push @Actions, loc('Marked all messages as seen'); } $TicketObj->CurrentUser->AddRecentlyViewedTicket($TicketObj); } } $title = loc("#[_1]: [_2]", $TicketObj->Id, $TicketObj->Subject || ''); $m->callback( CallbackName => 'BeforeDisplay', TicketObj => \$TicketObj, Actions => \@Actions, title => \$title, ARGSRef => \%ARGS, ); # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@Actions, $TicketObj->Type eq 'approval' && RT->Config->Get('ForceApprovalsView') ? (Path => "/Approvals/Display.html", Force => 1) : (Path => "/Ticket/Display.html") , Anchor => $ARGS{'Anchor'}, Arguments => { id => $TicketObj->id }, ); my $transactions = $TicketObj->SortedTransactions; my $attachments = $TicketObj->Attachments; my $attachment_content = $TicketObj->TextAttachments; my %link_rel; if (defined $session{'tickets'} and ($ARGS{'Query'} or $session{'CurrentSearchHash'}->{'Query'})) { my $item_map = $session{'tickets'}->ItemMap; $link_rel{first} = "/Ticket/Display.html?id=" . $item_map->{first} if $item_map->{$TicketObj->Id}{prev}; $link_rel{prev} = "/Ticket/Display.html?id=" . $item_map->{$TicketObj->Id}{prev} if $item_map->{$TicketObj->Id}{prev}; $link_rel{next} = "/Ticket/Display.html?id=" . $item_map->{$TicketObj->Id}{next} if $item_map->{$TicketObj->Id}{next}; $link_rel{last} = "/Ticket/Display.html?id=" . $item_map->{last} if $item_map->{$TicketObj->Id}{next} && $item_map->{last}; } rt-4.4.4/share/html/Ticket/ModifyAll.html000644 000765 000024 00000020157 13437510132 021061 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Ticket #[_1] Jumbo update: [_2]", $Ticket->Id, $Ticket->Subject) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', Actions => \@results, ARGSRef => \%ARGS, Ticket => $Ticket); <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS ); <&| /Widgets/TitleBox, title => loc('Modify ticket # [_1]', $Ticket->Id), class=>'ticket-info-basics' &> <& Elements/EditBasics, TicketObj => $Ticket, defaults => \%ARGS, ExcludeCustomRoles => 1 &> <& /Elements/EditCustomFields, Object => $Ticket, Grouping => 'Basics' &> % $m->callback(CallbackName => 'AfterBasics', Ticket => $Ticket); <& /Elements/EditCustomFieldCustomGroupings, Object => $Ticket &> <&| /Widgets/TitleBox, title => loc('Dates'), class=>'ticket-info-dates'&> <& Elements/EditDates, TicketObj => $Ticket &>
<&| /Widgets/TitleBox, title => loc('People'), class=>'ticket-info-people' &> <& Elements/EditPeople, Ticket => $Ticket, UserField => $UserField, UserString => $UserString, UserOp => $UserOp, GroupString => $GroupString, GroupOp => $GroupOp, GroupField => $GroupField &>
<&| /Widgets/TitleBox, title => loc('Links'), class=>'ticket-info-links' &> <& /Elements/EditLinks, Object => $Ticket &>
<&| /Widgets/TitleBox, title => loc('Merge'), class=>'ticket-info-merge' &> <& Elements/EditMerge, Ticket => $Ticket, %ARGS &>
<&| /Widgets/TitleBox, title => loc('Update ticket') &> <& /Ticket/Elements/AddAttachments, %ARGS, TicketObj => $Ticket &>
<&|/l&>Update Type: % $m->callback( %ARGS, CallbackName => 'AfterUpdateType' );
<&|/l&>Subject: % $m->callback( %ARGS, CallbackName => 'AfterSubject' );
<& /Ticket/Elements/EditTransactionCustomFields, %ARGS, TicketObj => $Ticket &>
<&|/l&>Content: % $m->callback( %ARGS, CallbackName => 'BeforeMessageBox' ); % if (defined $ARGS{UpdateContent} && length($ARGS{UpdateContent})) { <& /Elements/MessageBox, Name=>"UpdateContent", Default=>$ARGS{UpdateContent}, IncludeSignature => 0 &> % } else { <& /Elements/MessageBox, Name=>"UpdateContent", QuoteTransaction=>$ARGS{QuoteTransaction} &> % }
<& /Elements/Submit, Name => 'SubmitTicket', Label => loc('Save Changes'), Caption => loc("If you've updated anything above, be sure to"), color => "#333399" &>
% $m->callback(CallbackName => 'AfterForm', ARGSRef => \%ARGS, Ticket => $Ticket); <%INIT> my $Ticket = LoadTicket($id); my $CustomFields = $Ticket->CustomFields; my $CanRespond = 0; my $CanComment = 0; $CanRespond = 1 if ( $Ticket->CurrentUserHasRight('ReplyToTicket') or $Ticket->CurrentUserHasRight('ModifyTicket') ); $CanComment = 1 if ( $Ticket->CurrentUserHasRight('CommentOnTicket') or $Ticket->CurrentUserHasRight('ModifyTicket') ); ProcessAttachments(ARGSRef => \%ARGS); my @results; my $skip_update = 0; $m->callback( TicketObj => $Ticket, ARGSRef => \%ARGS, skip_update => \$skip_update, results => \@results ); { my ($status, @msg) = $m->comp( '/Elements/ValidateCustomFields', Object => $Ticket, CustomFields => $CustomFields, ARGSRef => \%ARGS, ); unless ($status) { push @results, @msg; $skip_update = 1; } } # There might be two owners. if ( ref ($ARGS{'Owner'} )) { my @owners =@{$ARGS{'Owner'}}; delete $ARGS{'Owner'}; foreach my $owner(@owners){ if (defined($owner) && $owner =~ /\D/) { $ARGS{'Owner'} = $owner unless ($Ticket->OwnerObj->Name eq $owner); } elsif (length $owner) { $ARGS{'Owner'} = $owner unless ($Ticket->OwnerObj->id == $owner); } } } unless ($skip_update or $OnlySearchForPeople or $OnlySearchForGroup or $ARGS{'AddMoreAttach'} ) { $Ticket->Atomic(sub { push @results, ProcessTicketWatchers( TicketObj => $Ticket, ARGSRef => \%ARGS); push @results, ProcessObjectCustomFieldUpdates( Object => $Ticket, ARGSRef => \%ARGS); push @results, ProcessTicketDates( TicketObj => $Ticket, ARGSRef => \%ARGS); push @results, ProcessUpdateMessage( TicketObj => $Ticket, ARGSRef=>\%ARGS ); push @results, ProcessTicketBasics( TicketObj => $Ticket, ARGSRef => \%ARGS ); push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS); }); MaybeRedirectForResults( Actions => \@results, Path => "/Ticket/ModifyAll.html", Arguments => { id => $Ticket->id }, ); } # If they've gone and moved the ticket to somewhere they can't see, etc... unless ($Ticket->CurrentUserHasRight('ShowTicket')) { if (@results) { Abort("A change was applied successfully, but you no longer have permissions to view the ticket", Actions => \@results); } else { Abort("No permission to view ticket"); } } $Ticket->CurrentUser->AddRecentlyViewedTicket($Ticket); <%ARGS> $OnlySearchForPeople => undef $OnlySearchForGroup => undef $UserField => undef $UserOp => undef $UserString => undef $GroupString => undef $GroupOp => undef $GroupField => undef $id => undef rt-4.4.4/share/html/Ticket/ModifyLinks.html000644 000765 000024 00000007166 13437510132 021436 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Link ticket #[_1]: [_2]", $Ticket->Id, $Ticket->Subject) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', Actions => \@results, ARGSRef => \%ARGS, Ticket => $Ticket); <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS ); % my (@extra); % push @extra, titleright_raw => ''.loc('Graph').'' unless RT->Config->Get('DisableGraphViz'); <&| /Widgets/TitleBox, title => loc('Edit Links'), class=>'ticket-info-links', @extra &> <& /Elements/EditLinks, Object => $Ticket &> <&| /Widgets/TitleBox, title => loc('Merge'), class=>'ticket-info-merge' &> <& Elements/EditMerge, Ticket => $Ticket, %ARGS &> <& /Elements/Submit, Name => 'SubmitTicket', Label => loc('Save Changes') &>
% $m->callback(CallbackName => 'AfterForm', ARGSRef => \%ARGS, Ticket => $Ticket); <%INIT> my $Ticket = LoadTicket($id); my @results; $Ticket->Atomic(sub{ $m->callback( TicketObj => $Ticket, ARGSRef => \%ARGS, Results => \@results ); push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS ); push @results, ProcessObjectCustomFieldUpdates( Object => $Ticket, ARGSRef => \%ARGS ); }); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $id }, ); $Ticket->CurrentUser->AddRecentlyViewedTicket($Ticket); <%ARGS> $id => undef rt-4.4.4/share/html/Ticket/Elements/000755 000765 000024 00000000000 13437510132 020062 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Ticket/History.html000644 000765 000024 00000005504 13437510132 020641 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Ticket History #[_1]: [_2]", $Ticket->Id, $Ticket->Subject) &> <& /Elements/Tabs &> % $m->callback( %ARGS, Ticket => $Ticket, CallbackName => 'BeforeActionList' );
<& /Elements/ShowHistory, Object => $Ticket, ShowHeaders => $ARGS{'ShowHeaders'}, Attachments => $attachments, AttachmentContent => $attachment_content, DisplayPath => 'History.html', &> % $m->callback( %ARGS, CallbackName => 'AfterShowHistory', Ticket => $Ticket ); <%ARGS> $id => undef <%INIT> my $Ticket = LoadTicket ($id); unless ($Ticket->CurrentUserHasRight('ShowTicket')) { Abort("No permission to view ticket"); } $Ticket->CurrentUser->AddRecentlyViewedTicket($Ticket); my $attachments = $Ticket->Attachments; my $attachment_content = $Ticket->TextAttachments; rt-4.4.4/share/html/Ticket/Forward.html000644 000765 000024 00000013723 13437510132 020606 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $Title &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', Actions => \@results, ARGSRef => \%ARGS, Ticket => $TicketObj); <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS );
<& /Elements/Crypt/SignEncryptWidget:ShowIssues, self => $gnupg_widget &> % if ( $gnupg_widget ) { % }
<&|/l&>From: <% $from %>
<&|/l&>Subject:
<&|/l&>To: <& /Elements/EmailInput, Name => "To", AutocompleteMultiple => 1, Default => $ARGS{'To'} &>
<&|/l&>Cc: <& /Elements/EmailInput, Name => "Cc", AutocompleteMultiple => 1, Default => $ARGS{'Cc'} &>
<&|/l&>Bcc: <& /Elements/EmailInput, Name => "Bcc", AutocompleteMultiple => 1, Default => $ARGS{'Bcc'} &>
  <& /Elements/Crypt/SignEncryptWidget, self => $gnupg_widget, TicketObj => $TicketObj, &>
<&|/l&>Content: % if (exists $ARGS{Content}) { <& /Elements/MessageBox, Default => $ARGS{Content}, IncludeSignature => 0, SuppressAttachmentWarning => 1 &> % } else { <& /Elements/MessageBox, SuppressAttachmentWarning => 1 &> %}
<& /Ticket/Elements/ShowAttachments, Ticket => $TicketObj, Attachments => $attachments, Count => RT->Config->Get('AttachmentListCount') &> <& /Elements/Submit, Label => loc('Forward Message and Return'), Name => 'ForwardAndReturn' &> <& /Elements/Submit, Label => loc('Forward Message'), Name => 'Forward' &>
<%INIT> my ($status, $msg); my $checks_failure = 0; my $TicketObj = LoadTicket($id); $id = $ARGS{'id'} = $TicketObj->id; my $gnupg_widget = $m->comp('/Elements/Crypt/SignEncryptWidget:new', Arguments => \%ARGS ); $m->comp( '/Elements/Crypt/SignEncryptWidget:Process', self => $gnupg_widget, TicketObj => $TicketObj, ); Abort( loc("Permission Denied") ) unless $TicketObj->CurrentUserHasRight('ForwardMessage'); my $txn; if ( $QuoteTransaction ) { $txn = RT::Transaction->new( $session{'CurrentUser'} ); $txn->Load( $QuoteTransaction ); Abort( loc("Couldn't load transaction #[_1]", $QuoteTransaction) ) unless $txn->id; } if ( $Forward || $ForwardAndReturn ) { $status = $m->comp('/Elements/Crypt/SignEncryptWidget:Check', self => $gnupg_widget, TicketObj => $TicketObj, Operation => 'Forward', ); $checks_failure = 1 unless $status; } my @results; if ( !$checks_failure && ($Forward || $ForwardAndReturn) ) { ( $status, $msg ) = $TicketObj->Forward( Transaction => $txn, %ARGS ); push @results, $msg; if ( $ForwardAndReturn ) { $session{'i'}++; my $key = Digest::MD5::md5_hex(rand(1024)); push @{ $session{"Actions"}->{$key} ||= [] }, @results; RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Ticket/Display.html?id=". $id."&results=".$key); } } my $Title = $txn ? loc('Forward transaction #[_1]: [_2]', $txn->id, $TicketObj->Subject) : loc('Forward ticket #[_1]: [_2]', $TicketObj->id, $TicketObj->Subject); my $from = RT::Interface::Email::GetForwardFrom( $txn ? ( Transaction => $txn ) : ( Ticket => $TicketObj ) ); my $subject = "Fwd: ".($txn || $TicketObj)->Subject; my $attachments = RT::Interface::Email::GetForwardAttachments( Ticket => $TicketObj, $txn ? ( Transaction => $txn ) : (), ); <%ARGS> $id => undef $QuoteTransaction => undef $ForwardAndReturn => 0, $Forward => $ForwardAndReturn, rt-4.4.4/share/html/Ticket/Reminders.html000644 000765 000024 00000005647 13437510132 021140 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Reminders for ticket #[_1]: [_2]", $Ticket->Id, $Ticket->Subject) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', ARGSRef => \%ARGS, Ticket => $Ticket); <& /Elements/ListActions, actions => \@actions &>
<&|/Widgets/TitleBox, title => loc("Reminders"), class=>'ticket-info-reminders' &> <& /Ticket/Elements/Reminders, Ticket => $Ticket, ShowCompleted => 1, Edit => 1, ShowSave => 0 &> <& /Elements/Submit, Label => loc('Save Changes') &>
<%INIT> my $Ticket = LoadTicket($id); my @actions = $Ticket->Atomic(sub{ ProcessTicketReminders( TicketObj => $Ticket, ARGSRef => \%ARGS ); }); $Ticket->CurrentUser->AddRecentlyViewedTicket($Ticket); <%ARGS> $id => undef rt-4.4.4/share/html/Ticket/Graphs/000755 000765 000024 00000000000 13437510132 017532 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Ticket/ModifyDates.html000644 000765 000024 00000006377 13437510132 021421 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Modify dates for #[_1]: [_2]', $TicketObj->Id, $TicketObj->Subject) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', Actions => \@results, ARGSRef => \%ARGS, Ticket => $TicketObj); <& /Elements/ListActions, actions => \@results &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS ); <&| /Widgets/TitleBox,title => loc('Modify dates for ticket #[_1]', $TicketObj->Id), class=> 'ticket-info-dates' &> <& Elements/EditDates, TicketObj => $TicketObj &> <& /Elements/Submit, Name => 'SubmitTicket', Label => loc('Save Changes') &>
% $m->callback(CallbackName => 'AfterForm', ARGSRef => \%ARGS, Ticket => $TicketObj); <%INIT> my $TicketObj = LoadTicket($id); my @results; $m->callback( TicketObj => $TicketObj, ARGSRef => \%ARGS, results => \@results ); $TicketObj->Atomic(sub{ push @results, ProcessTicketDates( TicketObj => $TicketObj, ARGSRef => \%ARGS); push @results, ProcessObjectCustomFieldUpdates(Object => $TicketObj, ARGSRef => \%ARGS); }); $TicketObj->CurrentUser->AddRecentlyViewedTicket($TicketObj); <%ARGS> $id => undef rt-4.4.4/share/html/Ticket/Graphs/index.html000644 000765 000024 00000010324 13437510132 021527 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', Actions => \@results, ARGSRef => \%ARGS, Ticket => $ticket); <& /Elements/ListActions, actions => \@results &> <& Elements/ShowGraph, %ARGS, Ticket => $ticket &>
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS ); <& Elements/EditGraphProperties, %ARGS, Ticket => $ticket &> <& /Search/Elements/EditSearches, %$saved_search, Title => loc('Manage saved graphs'), Type => 'Graph', SearchFields => \@save_arguments, CurrentSearch => { map { $_ => $ARGS{$_} } @save_arguments }, AllowCopy => 0, &>
% $m->callback(CallbackName => 'AfterForm', ARGSRef => \%ARGS, Ticket => $ticket); <%ARGS> <%INIT> use RT::Graph::Tickets; my $id = $ARGS{'id'}; my $ticket = LoadTicket( $id ); $ARGS{'id'} = $id = $ticket->id; $m->callback( TicketObj => $ticket, ARGSRef => \%ARGS ); my @results; my @save_arguments = qw(id Direction LeadingLink ShowLinks MaxDepth FillUsing ShowLinkDescriptions); foreach my $level ( 0 .. 6 ) { push @save_arguments, "Level-". $level ."-Properties"; } my $saved_search = { Type => 'Graph' }; push @results, $m->comp( '/Search/Elements/EditSearches:Init', %ARGS, Query => \%ARGS, SavedSearch => $saved_search, SearchFields => \@save_arguments, ); $ARGS{'LeadingLink'} ||= 'Members'; if ( $ARGS{'ShowLinks'} && !ref $ARGS{'ShowLinks'} ) { $ARGS{'ShowLinks'} = [$ARGS{'ShowLinks'}]; } elsif ( !$ARGS{'ShowLinks'} ) { $ARGS{'ShowLinks'} = [ qw(MemberOf DependsOn RefersTo) ]; } $ARGS{'ShowLinks'} = [ grep $_ ne $ARGS{'LeadingLink'}, @{ $ARGS{'ShowLinks'} } ]; $ARGS{'MaxDepth'} = 3 unless defined $ARGS{'MaxDepth'} && length $ARGS{'MaxDepth'}; push @results, $m->comp( '/Search/Elements/EditSearches:Save', %ARGS, Query => \%ARGS, SavedSearch => $saved_search, SearchFields => \@save_arguments, ); my $title = loc( "Ticket #[_1] relationships graph", $id ); rt-4.4.4/share/html/Ticket/Graphs/dhandler000644 000765 000024 00000005144 13437510132 021242 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $arg = $m->dhandler_arg; my $id; if ( $arg =~ m{^(\d+)$}i ) { ($id) = ($1); } else { return $m->abort( 404 ); } my $ticket = RT::Ticket->new($session{'CurrentUser'} ); $ticket->Load( $id ); unless ( $ticket->id ) { $RT::Logger->error("Couldn't load ticket #$id"); return $m->abort( 404 ); } require RT::Graph::Tickets; my $graph = RT::Graph::Tickets->TicketLinks( %ARGS, Graph => undef, Ticket => $ticket, ); $r->content_type( 'image/png' ); $m->clear_buffer; my $png; use RT::Util 'safe_run_child'; safe_run_child { $graph->as_png(\$png) }; $m->out( $png ); $m->abort; rt-4.4.4/share/html/Ticket/Graphs/Elements/000755 000765 000024 00000000000 13437510132 021306 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Ticket/Graphs/Elements/ShowLegends000644 000765 000024 00000005456 13437510132 023465 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('Legends'), hideable => $hideable &> % if ( $FillUsing ) { % }
<% loc('Status') %>: % foreach my $status ( sort keys %RT::Graph::Tickets::ticket_status_style ) { % my $style = $RT::Graph::Tickets::ticket_status_style{ $status }; <% loc($status) %> % }
<% loc($FillUsing) %>: % foreach my $value ( sort keys %RT::Graph::Tickets::fill_cache ) { % my $color = $RT::Graph::Tickets::fill_cache{ $value }; <% loc($value) %> % }
<%ARGS> $FillUsing => '' $hideable => 1 rt-4.4.4/share/html/Ticket/Graphs/Elements/EditGraphProperties000644 000765 000024 00000013665 13437510132 025170 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('Graph Properties') &> <% loc('Direction') %>
<% loc('Main type of links') %> <% loc('maximum depth') %>
<% loc('Show as well') %>: % foreach my $type ( @link_types ) { % my $checked = ''; % $checked = 'checked="checked"' if grep $type eq $_, @ShowLinks; /> % }
% my @properties = RT::Graph::Tickets->TicketProperties( $session{'CurrentUser'} ); <% loc('Fill boxes with color using') %>:
% if ( RT::Link->can('Description' ) ) { % my $checked = ''; % $checked = 'checked="checked"' if $ShowLinkDescriptions; />
% } <%PERL> for my $i ( 1..($MaxDepth||6) ) { my @default; if ( my $tmp = $ARGS{ 'Level-'. $i .'-Properties' } ) { @default = ref $tmp? @$tmp : ($tmp); } $m->comp('SELF:Properties', Level => $i, Available => \@properties, Default => \@default, ); } <& /Elements/Submit, Label => loc('Update Graph'), Name => 'Update' &> <%ARGS> $id => undef $Direction => 'TB' $LeadingLink => 'Members' @ShowLinks => ('MemberOf', 'DependsOn', 'RefersTo') $MaxDepth => 3 $FillUsing => '' $ShowLinkDescriptions => 0 <%INIT> require RT::Graph::Tickets; require RT::Link; my @link_types = qw(Members MemberOf RefersTo ReferredToBy DependsOn DependedOnBy); #loc_qw @ShowLinks = grep $_ ne $LeadingLink, @ShowLinks; <%METHOD Properties> <%ARGS> @Available => () @Default => () $Level => 1, <%INIT> my $id = "graph-properties-box-$Level"; my $class = ''; $class = 'class="hidden"' if $Level != 1 && !@Default; <% loc('Show Tickets Properties on [_1] level', $Level) %> (<% loc('open/close') %>): > % while ( my ($group, $list) = (splice @Available, 0, 2) ) { % }
<% loc($group) %>: % foreach my $prop ( @$list ) { % my $checked = ''; % $checked = 'checked="checked"' if grep $_ eq $prop, @Default; /> % }

rt-4.4.4/share/html/Ticket/Graphs/Elements/ShowGraph000644 000765 000024 00000005306 13437510132 023137 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
<% safe_run_child { Encode::decode( "UTF-8", $graph->as_cmapx ) } |n %>
<& ShowLegends, %ARGS, Ticket => $ticket &> <%ARGS> $id => undef <%INIT> use RT::Util 'safe_run_child'; my $ticket = RT::Ticket->new( $session{'CurrentUser'} ); $ticket->Load( $id ); unless ( $ticket->id ) { $RT::Logger->error("Couldn't load ticket $id"); return; } $ARGS{'id'} = $id = $ticket->id; require RT::Graph::Tickets; my $graph = RT::Graph::Tickets->TicketLinks( %ARGS, Graph => undef, Ticket => $ticket, ); rt-4.4.4/share/html/Ticket/Elements/ShowDates000644 000765 000024 00000012155 13437510132 021712 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} \ % $m->callback( %ARGS, CallbackName => 'AfterCreated', TicketObj => $Ticket ); \ % $m->callback( %ARGS, CallbackName => 'AfterStarts', TicketObj => $Ticket ); \ % $m->callback( %ARGS, CallbackName => 'AfterStarted', TicketObj => $Ticket ); % $m->callback( %ARGS, CallbackName => 'AfterTold', TicketObj => $Ticket ); \ % my $due = $Ticket->DueObj; % if ( $due && $due->IsSet && $due->Diff < 0 && $Ticket->QueueObj->IsActiveStatus($Ticket->Status) ) { % } else { % } % $m->callback( %ARGS, CallbackName => 'AfterDue', TicketObj => $Ticket ); \ % $m->callback( %ARGS, CallbackName => 'AfterResolved', TicketObj => $Ticket ); \ % my $UpdatedString = $Ticket->LastUpdated ? loc("[_1] by [_2]", $Ticket->LastUpdatedAsString, $m->scomp('/Elements/ShowUser', User => $Ticket->LastUpdatedByObj)) : loc("Never"); % if ($UpdatedLink) { % } else { % } % $m->callback( %ARGS, CallbackName => 'AfterUpdated', TicketObj => $Ticket ); <& /Ticket/Elements/ShowCustomFields, Ticket => $Ticket, Grouping => 'Dates', Table => 0 &> % $m->callback( %ARGS, CallbackName => 'EndOfList', TicketObj => $Ticket );
<&|/l&>Created:<% $Ticket->CreatedObj->AsString %>
<&|/l&>Starts:<% $Ticket->StartsObj->AsString %>
<&|/l&>Started:<% $Ticket->StartedObj->AsString %>
% if ( $Ticket->CurrentUserHasRight('ModifyTicket' ) ) { <&|/l&>Last Contact: % } else { <&|/l&>Last Contact: % } <% $Ticket->ToldObj->AsString %>
<&|/l&>Due:<% $due->AsString %><% $due->AsString %>
<&|/l&>Closed:<% $Ticket->ResolvedObj->AsString %>
<&|/l&>Updated:<% $UpdatedString | n %><% $UpdatedString | n %>
<%ARGS> $Ticket => undef $UpdatedLink => 1 <%INIT> if ($UpdatedLink and $Ticket) { my $txns = $Ticket->Transactions; $txns->OrderByCols( { FIELD => "Created", ORDER => "DESC" }, { FIELD => "id", ORDER => "DESC" }, ); $txns->RowsPerPage(1); if (my $latest = $txns->First) { $UpdatedLink = "#txn-" . $latest->id; } else { undef $UpdatedLink; } } rt-4.4.4/share/html/Ticket/Elements/AddAttachments000644 000765 000024 00000027532 13437510132 022702 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $attachments ) { <&|/l&>Attached file: % foreach my $attach_name ( sort keys %$attachments ) {
% $m->callback( ARGSRef => \%ARGS, CallbackName => 'BeforeDeleteLink', AttachmentName => $attach_name ); (<&|/l&>Delete)
% } # end of foreach % } # end of if <&|/l&>Attach:
% if ($HasExisting) { <&|/l&>Include attachments: <& /Ticket/Elements/ShowAttachments, Ticket => $TicketObj, Selectable => 1, HideTitleBox => 1, Checked => \@AttachExisting, Count => RT->Config->Get('AttachmentListCount'), &> % } % $m->callback( %ARGS, CallbackName => 'End' ); <%ARGS> $Token => '' @AttachExisting => () $QuoteTransaction => '' $TicketObj => undef <%INIT> my $attachments; if ( exists $session{'Attachments'}{ $Token } && keys %{ $session{'Attachments'}{ $Token } } ) { $attachments = $session{'Attachments'}{ $Token }; } my $HasExisting = 0; if ($TicketObj && $TicketObj->id) { my $Existing = $TicketObj->Attachments; $Existing->LimitHasFilename; $HasExisting = 1 if $Existing->Count; } rt-4.4.4/share/html/Ticket/Elements/UpdateCc000644 000765 000024 00000014333 13437510132 021501 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback(CallbackName => 'BeforeCc', ARGSRef => \%ARGS, Ticket => $TicketObj, one_time_Ccs => \@one_time_Ccs, txn_addresses => \%txn_addresses); <&|/l&>One-time Cc:<& /Elements/EmailInput, Name => 'UpdateCc', Size => undef, Default => $ARGS{UpdateCc}, AutocompleteMultiple => 1 &>
%if (scalar @one_time_Ccs) { % if ($hide_cc_suggestions) { (<&|/l&>show suggestions) %} <&|/l&>One-time Bcc:<& /Elements/EmailInput, Name => 'UpdateBcc', Size => undef, Default => $ARGS{UpdateBcc}, AutocompleteMultiple => 1 &>
%if (scalar @one_time_Ccs) { % if ($hide_cc_suggestions) { (<&|/l&>show suggestions) %} <%args> $TicketObj <%init> my %txn_addresses = %{$TicketObj->TransactionAddresses}; # Get people already added as watchers on the ticket so we can filter # them out of the one-time list my @people_addresses = Email::Address->parse( $TicketObj->RequestorAddresses ); push @people_addresses, Email::Address->parse( $TicketObj->CcAddresses ); push @people_addresses, Email::Address->parse( $TicketObj->AdminCcAddresses ); my @one_time_Ccs; foreach my $addr ( keys %txn_addresses) { next if ( grep {$addr eq lc $_->address} @people_addresses ); push @one_time_Ccs,$addr; } @one_time_Ccs = sort @one_time_Ccs; my $hide_cc_suggestions = RT->Config->Get('HideOneTimeSuggestions', $session{CurrentUser}); my $show_label = $m->interp->apply_escapes( loc("show suggestions"), 'h' ); my $hide_label = $m->interp->apply_escapes( loc("hide suggestions"), 'h' ); rt-4.4.4/share/html/Ticket/Elements/EditPeople000644 000765 000024 00000012117 13437510132 022041 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}

<&|/l&>New watchers

<&|/l&>Find people whose
<& /Elements/SelectUsers &>
<&|/l&>Find groups whose
<& /Elements/SelectGroups &> <& AddWatchers, Ticket => $Ticket, UserString => $UserString, UserOp => $UserOp, UserField => $UserField, GroupString => $GroupString, GroupOp => $GroupOp, GroupField => $GroupField, PrivilegedOnly => $PrivilegedOnly &>

<&|/l&>People

% my @role_fields; % my $single_roles = $Ticket->QueueObj->CustomRoles; % $single_roles->LimitToSingleValue; % $m->callback( CustomRoles => $single_roles, SingleRoles => 1, Ticket => $Ticket, %ARGS, CallbackName => 'ModifyCustomRoles' ); % while (my $role = $single_roles->Next) { % }
<&|/l&>Owner: <& /Elements/SelectOwner, Name => 'Owner', QueueObj => $Ticket->QueueObj, TicketObj => $Ticket, Default => $Ticket->OwnerObj->Id, DefaultValue => 0&>
<% $role->Name %>: <& /Elements/SingleUserRoleInput, role => $role, Ticket => $Ticket &>

<&|/l&>Current watchers

<&|/l&>(Check box to delete)
% my $multi_roles = $Ticket->QueueObj->CustomRoles; % $multi_roles->LimitToMultipleValue; % $m->callback( CustomRoles => $multi_roles, SingleRoles => 0, Ticket => $Ticket, %ARGS, CallbackName => 'ModifyCustomRoles' ); % while (my $role = $multi_roles->Next) { % my $group = $Ticket->RoleGroup($role->GroupType); % } <& /Elements/EditCustomFields, Object => $Ticket, Grouping => 'People', InTable => 1 &>
<&|/l&>Requestors: <& EditWatchers, TicketObj => $Ticket, Watchers => $Ticket->Requestors &>
<&|/l&>Cc: <& EditWatchers, TicketObj => $Ticket, Watchers => $Ticket->Cc &>
<&|/l&>Admin Cc: <& EditWatchers, TicketObj => $Ticket, Watchers => $Ticket->AdminCc &>
<% $role->Name %>: <& EditWatchers, TicketObj => $Ticket, Watchers => $group &>
<%ARGS> $UserField => undef $UserOp => undef $UserString => undef $GroupField => undef $GroupOp => undef $GroupString => undef $PrivilegedOnly => undef $Ticket => undef rt-4.4.4/share/html/Ticket/Elements/ShowAssetsOnCreate000644 000765 000024 00000010074 13437510132 023533 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $QueueObj $ARGSRef <%init> my @linked_assets; foreach my $key ( map {+("new-$_", "$_-new")} keys %RT::Link::DIRMAP ) { next unless $ARGSRef->{$key}; for my $linktext (grep $_, split ' ', $ARGSRef->{$key}) { my $uri = RT::URI->new( $session{'CurrentUser'} ); next unless $uri->FromURI( $linktext ); next unless $uri->IsLocal and $uri->Object and $uri->Object->id and $uri->Object->isa("RT::Asset"); push @linked_assets, $uri->Object->id; } } my $asset_queue; if (RT->Config->Get('AssetQueues')) { $asset_queue = 1 if grep {$_ eq $QueueObj->Name} @{RT->Config->Get('AssetQueues')} } else { $asset_queue = 0; } return unless @linked_assets or $asset_queue; my $assets = RT::Assets->new( $session{CurrentUser} ); $assets->OrderBy( FIELD => "Name", ORDER => "ASC" ); if ( @linked_assets ) { $assets->Limit( FIELD => "id", OPERATOR => "IN", VALUE => \@linked_assets, ); } my $Format = RT->Config->Get("AssetSummaryFormat") || q[ '__Name__/TITLE:Name', Description, Status, Catalog, ]; $m->callback( CallbackName => 'ModifyCollection', Queue => $QueueObj, Assets => $assets, Format => \$Format, ); <&| /Widgets/TitleBox, title => loc('Assets'), class => 'ticket-assets', title_class => "inverse", &> % $m->callback( CallbackName => "Start", Queue => $QueueObj, Assets => $assets );
% while (my $asset = $assets->Next) {

<&|/l, $asset->id, $asset->Name &>#[_1]: [_2]

<& /Elements/ShowRecord, Object => $asset, Format => $Format, TrustFormat => 1, &> % $m->callback( CallbackName => "PerAsset", Queue => $QueueObj, Asset => $asset );
% }
% $m->callback( CallbackName => "End", Queue => $QueueObj, Assets => $assets ); rt-4.4.4/share/html/Ticket/Elements/ShowRequestorTicketsInactive000644 000765 000024 00000004414 13437510132 025654 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& ShowRequestorTickets, %ARGS, Description => loc('inactive'), conditions => $conditions, Rows => $Rows &> <%INIT> unless ( @$conditions ) { push @$conditions, { cond => "Status = '__Inactive__'" }; } <%ARGS> $Requestor => undef $conditions => [] $Rows => 10 rt-4.4.4/share/html/Ticket/Elements/Bookmark000644 000765 000024 00000005604 13437510132 021557 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $ticket = RT::Ticket->new( $session{'CurrentUser'} ); $ticket->Load( $id ); my $is_bookmarked; if ($Toggle) { $is_bookmarked = $session{'CurrentUser'}->UserObj->ToggleBookmark($ticket); } else { $is_bookmarked = $session{'CurrentUser'}->UserObj->HasBookmark($ticket); } <%ARGS> $id $Toggle => 0 % my $url = RT->Config->Get('WebPath') ."/Helpers/Toggle/TicketBookmark?id=". $id; % if ( $is_bookmarked ) { <% loc('Remove Bookmark') %> % } else { <% loc('Add Bookmark') %> % } rt-4.4.4/share/html/Ticket/Elements/ShowCustomFields000644 000765 000024 00000004117 13437510132 023252 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ShowCustomFields, %ARGS, Object => $Ticket &> <%ARGS> $Ticket => undef rt-4.4.4/share/html/Ticket/Elements/ShowAttachments000644 000765 000024 00000012626 13437510132 023130 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('Attachments'), title_class=> 'inverse', class => 'ticket-info-attachments', color => "#336699", hide_chrome => $HideTitleBox &> % $m->callback( %ARGS, CallbackName => 'BeforeList', TicketObj => $Ticket, Attachments => $Attachments, Documents => \%documents, IsChecked => \%is_checked, ShowMore => \$show_more );
% foreach my $key (sort { lc($a) cmp lc($b) } keys %documents) { <%$key%>
% } % $m->callback( %ARGS, CallbackName => 'AfterList', TicketObj => $Ticket, Attachments => $Attachments, Documents => \%documents, IsChecked => \%is_checked, ShowMore => \$show_more ); % if ($show_more) { % my %params = %ARGS; % delete $params{Ticket}; % delete $params{Attachments}; % delete $params{Count}; % my $query = $m->comp('/Elements/QueryString', %params, id => $Ticket->id ); % my $url = RT->Config->Get('WebPath')."/Helpers/TicketAttachments?$query"; <% loc('Show all') %> % }
<%INIT> # If we haven't been passed in an Attachments object (through the precaching mechanism) # then we need to find one $Attachments ||= $Ticket->Attachments; # Avoid applying limits to this collection that may be used elsewhere # (e.g. transaction display) $Attachments = $Attachments->Clone; # Remember, each message in a transaction is an attachment; we only # want named attachments (real files) $Attachments->LimitHasFilename; my $show_more = 0; my %documents; # show newest first $Attachments->OrderByCols( { FIELD => 'Created', ORDER => 'DESC' }, { FIELD => 'id', ORDER => 'DESC' }, ); while ( my $attach = $Attachments->Next() ) { # display "show more" only when there will be more attachments if (defined($Count) && --$Count < 0) { $show_more = 1; last; } push @{ $documents{ $attach->Filename } }, $attach; } my %is_checked = map { $_ => 1 } @Checked; return if !$show_more && keys %documents == 0; <%ARGS> $Ticket => undef $Attachments => undef $DisplayPath => $session{'CurrentUser'}->Privileged ? 'Ticket' : 'SelfService' $HideTitleBox => 0 $Selectable => 0 $Count => undef @Checked => () rt-4.4.4/share/html/Ticket/Elements/ShowAssets000644 000765 000024 00000015272 13437510132 022117 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Ticket $ShowRelatedTickets => 10 <%init> my $target_assets = $Ticket->Links("Base")->Clone; $target_assets->Limit( FIELD => "Target", OPERATOR => "STARTSWITH", VALUE => RT::URI::asset->LocalURIPrefix, ); my $base_assets = $Ticket->Links("Target")->Clone; $base_assets->Limit( FIELD => "Base", OPERATOR => "STARTSWITH", VALUE => RT::URI::asset->LocalURIPrefix, ); my @linked_assets; push @linked_assets, grep { defined } map { $_->TargetURI->IsLocal } @{ $target_assets->ItemsArrayRef }; push @linked_assets, grep { defined } map { $_->BaseURI->IsLocal } @{ $base_assets->ItemsArrayRef }; my $asset_queue; if (RT->Config->Get('AssetQueues')) { $asset_queue = 1 if grep {$_ eq $Ticket->QueueObj->Name} @{RT->Config->Get('AssetQueues')} } else { $asset_queue = 0; } return unless @linked_assets or ($Ticket->CurrentUserHasRight("ModifyTicket") and $asset_queue); my $assets = RT::Assets->new( $session{CurrentUser} ); $assets->OrderBy( FIELD => "Name", ORDER => "ASC" ); if ( @linked_assets ) { $assets->Limit( FIELD => "id", OPERATOR => "IN", VALUE => \@linked_assets, ); } my $Format = RT->Config->Get("AssetSummaryFormat") || q[ '__Name__/TITLE:Name', Description, Status, Catalog, ]; $m->callback( CallbackName => 'ModifyCollection', Ticket => $Ticket, Assets => $assets, Format => \$Format, ); <&| /Widgets/TitleBox, title => loc('Assets'), class => 'ticket-assets', title_class => "inverse", &>
/Ticket/Display.html" method="POST" enctype="multipart/form-data"> % $m->callback( CallbackName => "Start", Ticket => $Ticket, Assets => $assets );
% my $display_path = $session{'CurrentUser'}->Privileged ? 'Asset' : 'SelfService/Asset'; % while (my $asset = $assets->Next) {

<&|/l, $asset->id, $asset->Name &>#[_1]: [_2] <%perl> if ($Ticket->CurrentUserHasRight("ModifyTicket")) { my $targets = $asset->Links("Target")->Clone; $targets->Limit( FIELD => "LocalBase", VALUE => $Ticket->id, ); my $bases = $asset->Links("Base")->Clone; $bases->Limit( FIELD => "LocalTarget", VALUE => $Ticket->id, ); my %params; $params{join("-", "DeleteLink", "", $_->Type, $_->Target)} = 1 for @{ $targets->ItemsArrayRef }; $params{join("-", "DeleteLink", $_->Base, $_->Type, "")} = 1 for @{ $bases->ItemsArrayRef }; my $delete_url = RT->Config->Get("WebPath") . "/Ticket/Display.html?" . $m->comp("/Elements/QueryString", id => $Ticket->id, %params); X % }

<& /Elements/ShowRecord, Object => $asset, Format => $Format, TrustFormat => 1, &> % $m->callback( CallbackName => "BeforeTickets", Ticket => $Ticket, Asset => $asset ); <%perl> if ($ShowRelatedTickets) { my %search = ( Query => "id != '@{[$Ticket->id]}' AND LinkedTo = 'asset:@{[$asset->id]}'", OrderBy => "LastUpdated", Order => "DESC", ); my $url = RT->Config->Get("WebPath") . "/Search/Results.html?" . $m->comp("/Elements/QueryString", %search); % } % $m->callback( CallbackName => "PerAsset", Ticket => $Ticket, Asset => $asset );
% }
% if ($Ticket->CurrentUserHasRight("ModifyTicket")) {
% } % $m->callback( CallbackName => "End", Ticket => $Ticket, Assets => $assets );
rt-4.4.4/share/html/Ticket/Elements/AddWatchers000644 000765 000024 00000010445 13437510132 022202 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}

<&|/l&>Add new watchers:
% if ($Users and $Users->Count) { % while (my $u = $Users->Next ) { % } % } % if ($Groups and $Groups->Count) { % while (my $g = $Groups->Next ) { % } % } % my $counter = 4; % for my $email (@extras) { % $counter++; % } % for my $i (1 .. 3) { % }
<&|/l&>Type <&|/l&>Username
<&/Elements/SelectWatcherType, Name => "Ticket-AddWatcher-Principal-". $u->PrincipalId, Queue => $Ticket->QueueObj, &> <& '/Elements/ShowUser', User => $u, style=>'verbose' &>
<&|/l&>Type <&|/l&>Group
<& /Elements/SelectWatcherType, Name => "Ticket-AddWatcher-Principal-".$g->PrincipalId, Queue => $Ticket->QueueObj, &> <%$g->Name%> (<%$g->Description%>)
<&|/l&>Type <&|/l&>Email
<&/Elements/SelectWatcherType, Name => "WatcherTypeEmail".$counter, Queue => $Ticket->QueueObj &> <%$email->format%>
<&/Elements/SelectWatcherType, Name => "WatcherTypeEmail" . $i, Queue => $Ticket->QueueObj &> <& /Elements/EmailInput, Name => 'WatcherAddressEmail' . $i, Size => '20' &>
<%INIT> my ($Users, $Groups); if ($UserString) { $Users = RT::Users->new($session{'CurrentUser'}); $Users->Limit(FIELD => $UserField, VALUE => $UserString, OPERATOR => $UserOp, CASESENSITIVE => 0); $Users->LimitToPrivileged if $PrivilegedOnly; } if ($GroupString) { $Groups = RT::Groups->new($session{'CurrentUser'}); $Groups->LimitToUserDefinedGroups; $Groups->Limit(FIELD => $GroupField, VALUE => $GroupString, OPERATOR => $GroupOp, CASESENSITIVE => 0); } my @extras; for my $addr ( values %{$Ticket->TransactionAddresses} ) { my $is_watcher; for my $type ( qw/Owner Requestor Cc AdminCc/ ) { if ($Ticket->IsWatcher( Email => $addr->address, Type => $type )) { $is_watcher = 1; last; } } push @extras, $addr unless $is_watcher; } <%ARGS> $UserField => 'Name' $UserOp => '=' $UserString => undef $GroupField => 'Name' $GroupOp => '=' $GroupString => undef $PrivilegedOnly => undef $Ticket => undef rt-4.4.4/share/html/Ticket/Elements/PopupTimerLink000644 000765 000024 00000004620 13437510132 022731 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $id <%INIT> my $url = RT->Config->Get('WebPath') . "/Helpers/TicketTimer?id=" . $id; <% loc('Open Timer') %> rt-4.4.4/share/html/Ticket/Elements/ShowRequestorTicketsActive000644 000765 000024 00000004411 13437510132 025322 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& ShowRequestorTickets, %ARGS, Description => loc('active'), conditions => $conditions, Rows => $Rows &> <%INIT> unless ( @$conditions ) { push @$conditions, { cond => "Status = '__Active__'" }; } <%ARGS> $Requestor => undef $conditions => [] $Rows => 10 rt-4.4.4/share/html/Ticket/Elements/ShowRequestor000644 000765 000024 00000015052 13437510132 022642 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($ShowTickets) { % } <&| /Widgets/TitleBox, title_raw => loc("More about the requestors"), class => 'ticket-info-requestor' &>
% while ( my $requestor = $people->Next ) {

<& /Elements/ShowUser, User => $requestor, Link => 0 &> User Summary

%# Additional information about this user. Empty by default. % $m->callback( requestor => $requestor, %ARGS, CallbackName => 'AboutThisUser' ); <& ShowRequestorExtraInfo, Requestor => $requestor &> % if ( $ShowComments ) {
<&|/l&>Comments about this user: <% ($requestor->Comments || loc("No comment entered about this user")) %>
% } % $m->callback( requestor => $requestor, %ARGS, CallbackName => 'AfterComments' ); % if ( $ShowTickets ) {
% $index = 1; % for my $status (@$status_order) { % if ( $status eq $DefaultTicketsTab ) {
<& $TicketTemplate, Requestor => $requestor &> % } else { % }
% } % my $grouplimit = RT->Config->Get('MoreAboutRequestorGroupsLimit'); % if ( $ShowGroups and defined $grouplimit ) {
<&|/l&>Groups this user belongs to % if ( $session{CurrentUser}->HasRight( Right => 'AdminUsers', Object => $RT::System ) && % $session{CurrentUser}->HasRight( Right => 'ShowConfigTab', Object =>$RT::System ) ) { [Config->Get('WebPath') . '/Admin/Users/Memberships.html?id=' . $requestor->id %> ><&|/l&>Edit] % } <& /Elements/ShowMemberships, UserObj => $requestor, Limit => $grouplimit &>
% } %# end of individual requestor details
% } %# end of requestors loop % $m->callback( %ARGS, CallbackName => 'AfterRequestors' );
<%INIT> my $show_privileged = RT->Config->Get('ShowMoreAboutPrivilegedUsers'); my $people = $Ticket->Requestors->UserMembersObj; $people->LimitToUnprivileged unless $show_privileged; my $count = $people->Count; return unless $count; my $has_right_adminusers = $session{'CurrentUser'}->HasRight( Object => $RT::System, Right => 'AdminUsers' ); $has_right_adminusers &&= $session{'CurrentUser'}->HasRight( Object => $RT::System, Right => 'ShowConfigTab' ); # Ticket list tabs my $selected = -1; $DefaultTicketsTab ||= RT->Config->Get('MoreAboutRequestorTicketList', $session{CurrentUser}) || 'Active'; my $status_link_text = {Active => loc('Active Tickets'), Inactive => loc('Inactive Tickets'), All => loc('All Tickets')}; my $status_order = [qw/Active Inactive All/]; $m->callback( CallbackName => 'AddStatus', status_link_text => \$status_link_text, status_order => \$status_order ); $ShowTickets = 0 if $DefaultTicketsTab eq 'None'; my $TicketTemplate; if ($ShowTickets) { for (0 .. (@$status_order - 1)) { if ( $status_order->[$_] eq $DefaultTicketsTab ) { $selected = $_; last; } } $TicketTemplate = "ShowRequestorTickets$DefaultTicketsTab"; $TicketTemplate = "ShowRequestorTicketsActive" unless RT::Interface::Web->ComponentPathIsSafe($TicketTemplate) and $m->comp_exists($TicketTemplate); } <%ARGS> $Ticket=>undef $DefaultTicketsTab => undef $ShowComments => 1 $ShowTickets => 1 $ShowGroups => 1 $Title => 'More about [_1]' rt-4.4.4/share/html/Ticket/Elements/ShowPeople000644 000765 000024 00000010434 13437510132 022074 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $owner = $Ticket->OwnerObj; % my $single_roles = $Ticket->QueueObj->CustomRoles; % $single_roles->LimitToSingleValue; % $m->callback( CustomRoles => $single_roles, SingleRoles => 1, Ticket => $Ticket, %ARGS, CallbackName => 'ModifyCustomRoles' ); % while (my $role = $single_roles->Next) { % my $group = $Ticket->RoleGroup($role->GroupType); % my $users = $group->UserMembersObj( Recursively => 0 ); % $users->{find_disabled_rows} = 1; %# $users can be empty for tickets created before the custom role is added to the queue, %# so fall back to nobody % my $user = $users->First || RT->Nobody; % } % my $multi_roles = $Ticket->QueueObj->CustomRoles; % $multi_roles->LimitToMultipleValue; % $m->callback( CustomRoles => $multi_roles, SingleRoles => 0, Ticket => $Ticket, %ARGS, CallbackName => 'ModifyCustomRoles' ); % while (my $role = $multi_roles->Next) { % } <& /Ticket/Elements/ShowCustomFields, Ticket => $Ticket, Grouping => 'People', Table => 0 &>
<&|/l&>Owner:<& /Elements/ShowUser, User => $owner, Ticket => $Ticket &> <& /Elements/ShowUserEmailFrequency, User => $owner, Ticket => $Ticket &> % $m->callback( User => $owner, Ticket => $Ticket, %ARGS, CallbackName => 'AboutThisUser' );
<% $role->Name %>: <& /Elements/ShowUser, User => $user, Ticket => $Ticket &>
<&|/l&>Requestors: <& ShowGroupMembers, Group => $Ticket->Requestors, Ticket => $Ticket &>
<&|/l&>Cc: <& ShowGroupMembers, Group => $Ticket->Cc, Ticket => $Ticket &>
<&|/l&>AdminCc: <& ShowGroupMembers, Group => $Ticket->AdminCc, Ticket => $Ticket &>
<% $role->Name %>: <& ShowGroupMembers, Group => $Ticket->RoleGroup($role->GroupType), Ticket => $Ticket &>
<%ARGS> $Ticket => undef rt-4.4.4/share/html/Ticket/Elements/EditDates000644 000765 000024 00000007650 13437510132 021663 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/EditCustomFields, Object => $TicketObj, Grouping => 'Dates', InTable => 1 &> % $m->callback( %ARGS, CallbackName => 'EndOfList', Ticket => $TicketObj );
<&|/l&>Starts: <& /Elements/SelectDate, menu_prefix => 'Starts', current => 0, Default => $TicketObj->StartsObj->Unix ? $TicketObj->StartsObj->ISO(Timezone => 'user') : '', Object => $TicketObj, ARGSRef => \%ARGS, &> (<% $TicketObj->StartsObj->AsString %>)
<&|/l&>Started: <& /Elements/SelectDate, menu_prefix => 'Started', current => 0, Default => $TicketObj->StartedObj->Unix ? $TicketObj->StartedObj->ISO(Timezone => 'user') : '', Object => $TicketObj, ARGSRef => \%ARGS, &> (<%$TicketObj->StartedObj->AsString %>)
<&|/l&>Last Contact: <& /Elements/SelectDate, menu_prefix => 'Told', current => 0, Default => $TicketObj->ToldObj->Unix ? $TicketObj->ToldObj->ISO(Timezone => 'user') : '', Object => $TicketObj, ARGSRef => \%ARGS, &> (<% $TicketObj->ToldObj->AsString %>)
<&|/l&>Due: <& /Elements/SelectDate, menu_prefix => 'Due', current => 0, Default => $TicketObj->DueObj->Unix ? $TicketObj->DueObj->ISO(Timezone => 'user') : '', Object => $TicketObj, ARGSRef => \%ARGS, &> (<% $TicketObj->DueObj->AsString %>)
<%ARGS> $TicketObj => undef rt-4.4.4/share/html/Ticket/Elements/ShowGroupMembers000644 000765 000024 00000005040 13437510132 023254 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# Released under the terms of version 2 of the GNU Public License <%init> my $post_user = sub { my $user = shift; $m->comp("/Elements/ShowUserEmailFrequency", User => $user, Ticket => $Ticket); $m->callback( User => $user, Ticket => $Ticket, %ARGS, CallbackName => 'AboutThisUser', CallbackPage => '/Ticket/Elements/ShowGroupMembers' ); }; $m->comp("/Elements/ShowPrincipal", Object => $Group, Separator => "
", PostUser => $post_user, Link => $Link); <%ARGS> $Group => undef $Ticket => undef $Link => 1 rt-4.4.4/share/html/Ticket/Elements/ShowRequestorExtraInfo000644 000765 000024 00000004237 13437510132 024465 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /User/Elements/UserInfo, User => $Requestor, FormatConfig => 'MoreAboutRequestorExtraInfo', ClassPrefix => 'more-about-requestor' &> <%ARGS> $Requestor => undef rt-4.4.4/share/html/Ticket/Elements/SelectStatus000644 000765 000024 00000005624 13437510132 022437 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/SelectStatus, %ARGS, Statuses => \@Statuses, Object => $TicketObj || $QueueObj, Lifecycles => \@Lifecycles, Type => 'ticket', &> <%INIT> my @Lifecycles; for my $id (keys %Queues) { my $queue = RT::Queue->new($session{'CurrentUser'}); $queue->Load($id); push @Lifecycles, $queue->LifecycleObj if $queue->id; } if ($TicketObj) { $ARGS{DefaultLabel} = loc("[_1] (Unchanged)", loc($TicketObj->Status)); if ($DefaultFromArgs and $DECODED_ARGS->{Status}) { $ARGS{Default} = $DECODED_ARGS->{Status}; } elsif (defined $ARGS{Default}) { $ARGS{Default} = undef if $TicketObj->Status eq $ARGS{Default}; } } elsif ($QueueObj) { $ARGS{DefaultValue} = 0; $ARGS{Default} ||= $DECODED_ARGS->{Status} || $QueueObj->LifecycleObj->DefaultOnCreate; } <%ARGS> $DefaultFromArgs => 1, @Statuses => () $TicketObj => undef $QueueObj => undef %Queues => () rt-4.4.4/share/html/Ticket/Elements/ClickToShowHistory000644 000765 000024 00000005172 13437510132 023565 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
<& /Widgets/TitleBoxStart, title => loc('History') &> <% loc('Show ticket history') %> <& /Widgets/TitleBoxEnd &>
<%ARGS> $Ticket <%INIT> my %params = %ARGS; delete $params{Ticket}; my $query = $m->comp('/Elements/QueryString', %params, id => $Ticket->id ); my $url = RT->Config->Get('WebPath')."/Helpers/TicketHistory?$query"; my $display = RT->Config->Get('WebPath')."/Ticket/Display.html?ForceShowHistory=1;$query"; rt-4.4.4/share/html/Ticket/Elements/DelayShowHistory000644 000765 000024 00000005624 13437510132 023275 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
<& /Widgets/TitleBoxStart, title => loc('History') &> <&|/l&>Loading... <& /Widgets/TitleBoxEnd &>
<%ARGS> $Ticket <%INIT> my %params = %ARGS; delete $params{Ticket}; my $url = JSON( RT->Config->Get('WebPath') . "/Helpers/TicketHistory?". $m->comp('/Elements/QueryString', %params, id => $Ticket->id ) ); rt-4.4.4/share/html/Ticket/Elements/ShowTime000644 000765 000024 00000004353 13437510132 021551 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($minutes < 60) { <&|/l, $minutes &>[quant,_1,minute,minutes] % } else { <&|/l, sprintf("%.2f",$minutes / 60), $minutes &>[quant,_1,hour,hours] ([quant,_2,minute,minutes]) % } <%init> $minutes ||= 0; <%ARGS> $minutes rt-4.4.4/share/html/Ticket/Elements/EditMerge000644 000765 000024 00000005332 13437510132 021655 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Warning: merging is a non-reversible action! Enter a single ticket number to be merged into.
<&|/l&>Merge into:
<%INIT> my @excludes; if ( $Ticket ) { $Name ||= $Ticket->id . '-MergeInto'; @excludes = $Ticket->id; } elsif ( $Tickets ) { $Name ||= 'Ticket-MergeInto'; while ( my $ticket = $Tickets->Next ) { push @excludes, $ticket->id; } } $Default ||= $ARGS{$Name}; <%ARGS> $Ticket => undef $Tickets => undef $Name => '' $Default => '' rt-4.4.4/share/html/Ticket/Elements/ShowQueue000644 000765 000024 00000005363 13437510132 021741 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $query ) { <% $label %> % } else { <% $label %> % } <%ARGS> $Ticket => undef $QueueObj <%INIT> my $label = $QueueObj->Name; my $query; if ( $Ticket and $Ticket->CurrentUserHasRight('SeeQueue') ) { # Grab the queue name anyway if the current user can # see the queue based on his role for this ticket $label = $QueueObj->__Value('Name'); if ( $session{CurrentUser}->Privileged ) { my $queue_name_parameter = $label; $queue_name_parameter =~ s/(['\\])/\\$1/g; #' $query = "Queue = '$queue_name_parameter' AND Status = '__Active__'"; } } $label = '#'. $QueueObj->id unless defined $label && length $label; rt-4.4.4/share/html/Ticket/Elements/ShowPriority000644 000765 000024 00000004116 13437510132 022471 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <% $Ticket->Priority %>/<% $Ticket->FinalPriority || ''%> <%ARGS> $Ticket => undef rt-4.4.4/share/html/Ticket/Elements/EditBasics000644 000765 000024 00000013747 13437510132 022033 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $TicketObj => undef $QueueObj => undef @fields => () $InTable => 0 %defaults => () $ExcludeCustomRoles => 0 <%INIT> if ($TicketObj) { $QueueObj ||= $TicketObj->QueueObj; } unless ( @fields ) { my $subject = $defaults{'Subject'} || $TicketObj->Subject; @fields = ( { name => 'Subject', html => '', }, { name => 'Status', comp => '/Ticket/Elements/SelectStatus', args => { Name => 'Status', Default => $defaults{Status}, DefaultFromArgs => 0, TicketObj => $TicketObj, }, }, { name => 'Queue', comp => '/Elements/SelectQueue', args => { Name => 'Queue', Default => $defaults{'Queue'} || $QueueObj->Id, ShowNullOption => 0, } }, { name => 'Owner', comp => '/Elements/SelectOwner', args => { Name => 'Owner', QueueObj => $QueueObj, TicketObj => $TicketObj, Default => $defaults{'Owner'} || $TicketObj->OwnerObj->Id, DefaultValue => 0, } }, { special => 'roles' }, $QueueObj->SLADisabled ? () : ( { name => 'SLA', comp => '/Elements/SelectSLA', args => { Name => 'SLA', Default => $defaults{SLA}, DefaultFromArgs => 0, TicketObj => $TicketObj, }, }), # Time Estimated, Worked, and Left ( map { (my $field = $_) =~ s/ //g; { name => $_, comp => '/Elements/EditTimeValue', args => { Name => $field, Default => $defaults{$field} || $TicketObj->$field, } } } ('Time Estimated', 'Time Worked', 'Time Left') ), # Priority and Final Priority ( map { (my $field = $_) =~ s/ //g; { name => $_, comp => '/Elements/SelectPriority', args => { Name => $field, Default => $defaults{$field} || $TicketObj->$field, } } } ('Priority', 'Final Priority') ), ); } my @role_fields; unless ($ExcludeCustomRoles) { my $roles = $QueueObj->CustomRoles; $roles->LimitToSingleValue; $m->callback( CallbackName => 'ModifyCustomRoles', %ARGS, CustomRoles => $roles); while (my $role = $roles->Next) { push @role_fields, { name => $role->Name, comp => '/Elements/SingleUserRoleInput', args => { role => $role, Ticket => $TicketObj, Default => $defaults{$role->GroupType}, } }; } } # inflate the marker for custom roles into the field specs for each one @fields = map { ($_->{special}||'') eq 'roles' ? @role_fields : $_ } @fields; $m->callback( CallbackName => 'MassageFields', %ARGS, TicketObj => $TicketObj, Fields => \@fields ); # Process the field list, skipping if html is provided and running the # components otherwise for my $field (@fields) { next if defined $field->{'html'}; if ( $field->{'comp'} ) { $field->{'html'} = $m->scomp($field->{'comp'}, %{$field->{'args'} || {}}); } } % unless ($InTable) { % } % for my $field (@fields) { \ \ \ % } % $m->callback( CallbackName => 'EndOfList', TicketObj => $TicketObj, %ARGS, Fields => \@fields ); % unless ($InTable) {
<% loc($field->{'name'}) %>:<% $field->{'html'} |n %>
% } rt-4.4.4/share/html/Ticket/Elements/ShowUpdateStatus000644 000765 000024 00000005431 13437510132 023277 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
<&| /Widgets/TitleBox, title => loc('New messages'), title_href => "#txn-". $txn->id &> <&|/l&>There are unread messages on this ticket. <&|/l, RT->Config->Get('WebPath') ."/$DisplayPath/Display.html?id=". $Ticket->id. "#txn-".$txn->id, RT->Config->Get('WebPath') ."/$DisplayPath/Display.html?id=". $Ticket->id ."&MarkAsSeen=1&Anchor=txn-" . $txn->id &>You can jump to the first unread message or jump to the first unread message and mark all messages as seen.
<%ARGS> $Ticket $DisplayPath => $session{'CurrentUser'}->Privileged ? 'Ticket' : 'SelfService' <%INIT> return unless (RT->Config->Get( 'ShowUnreadMessageNotifications', $session{'CurrentUser'})); my $txn = $Ticket->SeenUpTo or return; rt-4.4.4/share/html/Ticket/Elements/ShowBasics000644 000765 000024 00000012275 13437510132 022061 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( !$Ticket->QueueObj->SLADisabled ) { % } % if ($show_time_worked) { % if ($Ticket->TimeEstimated) { % } % $m->callback( %ARGS, CallbackName => 'AfterTimeEstimated', TicketObj => $Ticket ); % if ($Ticket->TimeWorked) { % } % my $totalTimeWorked = 0; % if (RT->Config->Get('DisplayTotalTimeWorked') && ($totalTimeWorked = $Ticket->TotalTimeWorked)) { % } % if ( keys %$time_worked ) { % } % $m->callback( %ARGS, CallbackName => 'AfterTimeWorked', TicketObj => $Ticket ); % if ($Ticket->TimeLeft) { % } % } % $m->callback( %ARGS, CallbackName => 'AfterTimeLeft', TicketObj => $Ticket ); % $m->callback( %ARGS, CallbackName => 'AfterPriority', TicketObj => $Ticket ); %# This will check SeeQueue at the ticket role level, queue level, and global level % if ($Ticket->CurrentUserHasRight('SeeQueue')) { % } % $m->callback( %ARGS, CallbackName => 'AfterQueue', TicketObj => $Ticket ); <& /Ticket/Elements/ShowCustomFields, Ticket => $Ticket, Grouping => 'Basics', Table => 0 &> % if ($UngroupedCFs) { <& /Ticket/Elements/ShowCustomFields, Ticket => $Ticket, Grouping => '', Table => 0 &> % } % $m->callback( %ARGS, CallbackName => 'EndOfList', TicketObj => $Ticket );
<&|/l&>Id: <%$Ticket->Id %>
<&|/l&>Status: <% loc($Ticket->Status) %>
<&|/l&>SLA: <% loc($Ticket->SLA) %>
<&|/l&>Estimated: <& ShowTime, minutes => $Ticket->TimeEstimated &>
<&|/l&>Worked: <& ShowTime, minutes => $Ticket->TimeWorked &>
<&|/l&>Total Time Worked: <& ShowTime, minutes => $totalTimeWorked &>
<&|/l&>Users: % for my $user ( keys %$time_worked ) { % }
<% $user %>: <& /Ticket/Elements/ShowTime, minutes => $time_worked->{$user} &>
<&|/l&>Left: <& ShowTime, minutes => $Ticket->TimeLeft &>
<&|/l&>Priority: <& ShowPriority, Ticket => $Ticket &>
<&|/l&>Queue: <& ShowQueue, Ticket => $Ticket, QueueObj => $Ticket->QueueObj &>
% $m->callback( %ARGS, CallbackName => 'AfterTable', TicketObj => $Ticket ); <%ARGS> $Ticket => undef $UngroupedCFs => 0 <%init> my $time_worked; my $show_time_worked = $Ticket->CurrentUserCanSeeTime; if ( $show_time_worked ) { if (RT->Config->Get('DisplayTotalTimeWorked')) { $time_worked = $Ticket->TotalTimeWorkedPerUser; } else { $time_worked = $Ticket->TimeWorkedPerUser; } } rt-4.4.4/share/html/Ticket/Elements/ShowSummary000644 000765 000024 00000012640 13437510132 022306 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
% $m->callback( %ARGS, CallbackName => 'LeftColumnTop' ); <&| /Widgets/TitleBox, title => loc('The Basics'), (($can_modify || $can_modify_cf) ? (title_href => RT->Config->Get('WebPath')."/Ticket/Modify.html?id=".$Ticket->Id) : ()), class => 'ticket-info-basics', &><& /Ticket/Elements/ShowBasics, Ticket => $Ticket &> % $m->callback( %ARGS, CallbackName => 'AfterBasics' ); <& /Elements/ShowCustomFieldCustomGroupings, Object => $Ticket, title_href => ($can_modify || $can_modify_cf) ? RT->Config->Get('WebPath')."/Ticket/Modify.html" : "", &> <&| /Widgets/TitleBox, title => loc('People'), (($can_modify || $can_modify_owner || $can_modify_people) ? (title_href => RT->Config->Get('WebPath')."/Ticket/ModifyPeople.html?id=".$Ticket->Id) : ()), class => 'ticket-info-people', &><& /Ticket/Elements/ShowPeople, Ticket => $Ticket &> % $m->callback( %ARGS, CallbackName => 'AfterPeople' ); <& /Ticket/Elements/ShowAttachments, Ticket => $Ticket, Attachments => $Attachments, Count => RT->Config->Get('AttachmentListCount') &> % $m->callback( %ARGS, CallbackName => 'AfterAttachments' ); <& /Ticket/Elements/ShowRequestor, Ticket => $Ticket &> % $m->callback( %ARGS, CallbackName => 'LeftColumn' ); % $m->callback( %ARGS, CallbackName => 'RightColumnTop' ); % if ( RT->Config->Get('EnableReminders') ) { <&|/Widgets/TitleBox, title => loc("Reminders"), title_href => RT->Config->Get('WebPath')."/Ticket/Reminders.html?id=".$Ticket->Id, class => 'ticket-info-reminders', &>
<& /Ticket/Elements/Reminders, Ticket => $Ticket, ShowCompleted => 0 &>
% } % $m->callback( %ARGS, CallbackName => 'AfterReminders' ); <&| /Widgets/TitleBox, title => loc("Dates"), ($can_modify ? (title_href => RT->Config->Get('WebPath')."/Ticket/ModifyDates.html?id=".$Ticket->Id) : ()), class => 'ticket-info-dates', &><& /Ticket/Elements/ShowDates, Ticket => $Ticket &> % $m->callback( %ARGS, CallbackName => 'AfterDates' ); % my (@extra); % push @extra, titleright_raw => ''.loc('Graph').'' unless RT->Config->Get('DisableGraphViz'); <& /Ticket/Elements/ShowAssets, Ticket => $Ticket &> % $m->callback( %ARGS, CallbackName => 'LinksExtra', extra => \@extra ); <&| /Widgets/TitleBox, title => loc('Links'), ($can_modify ? (title_href => RT->Config->Get('WebPath')."/Ticket/ModifyLinks.html?id=".$Ticket->Id) : ()), class => 'ticket-info-links', @extra, &><& /Elements/ShowLinks, Object => $Ticket &> % $m->callback( %ARGS, CallbackName => 'RightColumn' );
<%ARGS> $Ticket => undef $Attachments => undef <%INIT> my $can_modify = $Ticket->CurrentUserHasRight('ModifyTicket'); my $can_modify_cf = $Ticket->CurrentUserHasRight('ModifyCustomField'); my $can_modify_owner = $Ticket->CurrentUserCanSetOwner(); my $can_modify_people = $Ticket->CurrentUserHasRight('Watch') || $Ticket->CurrentUserHasRight('WatchAsAdminCc'); rt-4.4.4/share/html/Ticket/Elements/EditWatchers000644 000765 000024 00000005772 13437510132 022406 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    %# Print out a placeholder if there are none. % if ( !$Watchers->id || $Members->Count == 0 ) {
  • <&|/l&>none
  • % } else { % while ( my $watcher = $Members->Next ) { % my $member = $watcher->MemberObj->Object;
  • % if ( $member->isa( 'RT::User' ) ) { <& /Elements/ShowUser, User => $member &> <& /Elements/ShowUserEmailFrequency, User => $member, Ticket => $TicketObj &> % } else { % if ( $session{CurrentUser}->HasRight( Right => 'AdminGroup', Object => $RT::System ) && % $session{CurrentUser}->HasRight( Right => 'ShowConfigTab', Object =>$RT::System ) ) { <% $member->Name %> % } else { <% $member->Name %> % } }
  • % } % }
<%INIT> my $Members = $Watchers->MembersObj; <%ARGS> $TicketObj => undef $Watchers => undef rt-4.4.4/share/html/Ticket/Elements/EditTransactionCustomFields000644 000765 000024 00000007056 13437510132 025432 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( CallbackName => 'BeforeTransactionCustomFields', TicketObj => $TicketObj, QueueObj => $QueueObj, InTable => $InTable ); % if ( $WRAP ) { <<% $WRAP %> class="edit-transaction-custom-fields"> % } % if ($CustomFields->Count) { % while (my $CF = $CustomFields->Next()) { % next unless $CF->CurrentUserHasRight('ModifyCustomField'); <<% $FIELD %>> <<% $CELL %> class="label cflabel"> <% $CF->Name %>:
<% $CF->EntryHint // '' %> > <<% $CELL %>> <& /Elements/EditCustomField, %ARGS, CustomField => $CF, Object => RT::Transaction->new( $session{'CurrentUser'} ), &> % if (my $msg = $m->notes('InvalidField-' . $CF->Id)) {
<% $msg %> % } > > % } % } % if ( $WRAP ) { > % } % $m->callback( CallbackName => 'AfterTransactionCustomFields', TicketObj => $TicketObj, QueueObj => $QueueObj, InTable => $InTable ); <%INIT> my $CustomFields; if ($TicketObj) { $CustomFields = $TicketObj->TransactionCustomFields(); } else { $CustomFields = $QueueObj->TicketTransactionCustomFields(); } $m->callback( CallbackName => 'MassageTransactionCustomFields', CustomFields => $CustomFields, InTable => $InTable ); $AsTable ||= $InTable; my $FIELD = $AsTable ? 'tr' : 'div'; my $CELL = $AsTable ? 'td' : 'div'; my $WRAP = ''; if ( $AsTable ) { $WRAP = 'table' unless $InTable; } else { $WRAP = 'div'; } <%ARGS> $TicketObj => undef $QueueObj => undef $AsTable => 0 $InTable => 0 rt-4.4.4/share/html/Ticket/Elements/ScrollShowHistory000644 000765 000024 00000016370 13437510132 023475 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Ticket <%INIT> my %params = %ARGS; delete $params{Ticket}; my $url = RT->Config->Get('WebPath') . "/Helpers/TicketHistoryPage?" . $m->comp('/Elements/QueryString', %params, id => $Ticket->id ); my %extra_args = map { $_ => $ARGS{$_} // 1 } qw/ShowDisplayModes ShowTitle ScrollShowHistory/; $extra_args{ShowHeaders} = $ARGS{ShowHeaders}; $m->callback( CallbackName => 'ExtraShowHistoryArguments', Ticket => $Ticket, ExtraArgs => \%extra_args ); my $oldestTransactionsFirst = RT->Config->Get("OldestTransactionsFirst", $session{CurrentUser}); <& /Elements/ShowHistoryHeader, Object => $Ticket, %extra_args, &>
% if ($extra_args{ShowDisplayModes} or $extra_args{ShowTitle} or $extra_args{ScrollShowHistory} ) { <& /Widgets/TitleBoxEnd &> % }
rt-4.4.4/share/html/Ticket/Elements/ShowRequestorTickets000644 000765 000024 00000004752 13437510132 024176 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /User/Elements/TicketList, User => $Requestor, conditions => $conditions, Rows => $Rows, Title => $Title, WatcherTypes => ['Requestor'], Format => => RT->Config->Get('MoreAboutRequestorTicketListFormat'), &> <%INIT> my $Title = loc("This user's [_1] highest priority [_2] tickets", $Rows, $Description ); $m->callback( CallbackName => 'ModifyTitle', %ARGS, Title => \$Title ); <%ARGS> $Requestor => undef $conditions $Rows => 10 $Description => '' rt-4.4.4/share/html/Ticket/Elements/Reminders000644 000765 000024 00000017623 13437510132 021746 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Ticket => undef $id => undef $ShowCompleted => 0 $Edit => 0 $ShowSave => 1 <%init> $Ticket = LoadTicket($id) if ($id); my $resolve_status = $Ticket->LifecycleObj->ReminderStatusOnResolve; my $count_reminders = RT::Reminders->new($session{'CurrentUser'}); $count_reminders->Ticket($Ticket->id); my $count_tickets = $count_reminders->Collection; if (!$ShowCompleted) { # XXX: don't break encapsulation if we can avoid it $count_tickets->FromSQL(q{Type = "reminder" AND RefersTo = "} . $Ticket->id . qq{" AND Status != "$resolve_status" }); } my $has_reminders = $count_tickets->Count; # We've made changes, let's reload our search my $reminder_collection = $count_reminders->Collection; % my $editable = 0; % if ($has_reminders) { > % if ( $Edit ) { % } else { % } % my $i = 0; % while ( my $reminder = $reminder_collection->Next ) { % $i++; % if ( $reminder->Status eq $resolve_status && !$ShowCompleted ) { % $i++; % } % else { % $editable = 1 if !$editable && $reminder->CurrentUserHasRight( 'ModifyTicket' ); % if ($Edit) { <& SELF:EditEntry, Reminder => $reminder, Ticket => $Ticket, Index => $i &> % } else { <& SELF:ShowEntry, Reminder => $reminder, Ticket => $Ticket, Index => $i &> % } % } % }
<&|/l&>Reminders <&|/l&>Reminder <&|/l&>Due <&|/l&>Owner
% if ( $editable ) { <&|/l&>(Check box to complete)

% } % } else { %# we must always include resolved reminders due to the browser %# checkbox-with-false-value issue % while ( my $reminder = $reminder_collection->Next ) { % if ( $reminder->Status eq $resolve_status && !$ShowCompleted ) { % } % } % } % if (lc $Ticket->Status ne "deleted" and $Ticket->QueueObj->CurrentUserHasRight('CreateTicket') and $Ticket->CurrentUserHasRight('ModifyTicket') ) { <&|/l&>New reminder: <& SELF:NewReminder, Ticket => $Ticket &> % $editable = 1; % } % if ( $editable && $ShowSave ) {
% } <%method NewReminder> <%args> $Ticket
<&|/l&>Subject:
<&|/l&>Owner: <& /Elements/SelectOwner, Name => 'NewReminder-Owner', QueueObj => $Ticket->QueueObj, Default=>$session{'CurrentUser'}->id, DefaultValue => 0 &>
<&|/l&>Due: <& /Elements/SelectDate, Name => "NewReminder-Due", Default => "" &>
<%method EditEntry> <%args> $Reminder $Ticket $Index % unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) { Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 1 : 0 %> /> % } Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 'checked="checked"' : '' |n %> % unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) { disabled="disabled" % } /> <&|/l&>Subject: CurrentUserHasRight('ModifyTicket') ) { readonly="readonly" % } />   <&|/l&>Owner: <& /Elements/SelectOwner, Name => 'Reminder-Owner-'.$Reminder->id, QueueObj => $Ticket->QueueObj, Default => $Reminder->Owner, DefaultValue => 0 &> <&|/l&>Due: % if ( $Reminder->CurrentUserHasRight('ModifyTicket') ) { <& /Elements/SelectDate, Name => 'Reminder-Due-'.$Reminder->id &> % } (<% $Reminder->DueObj->AsString %>) <%method ShowEntry> <%args> $Reminder $Ticket $Index % my $dueobj = $Reminder->DueObj; % my $overdue = $dueobj->IsSet && $dueobj->Diff < 0 ? 1 : 0; % unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) { Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 1 : 0 %> /> % } Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 'checked="checked"' : '' |n %> % unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) { disabled="disabled" % } /> <% $overdue ? '' : '' |n %><% $dueobj->AgeAsString || loc('Not set') %><% $overdue ? '' : '' |n %> <& /Elements/ShowUser, User => $Reminder->OwnerObj &> rt-4.4.4/share/html/Ticket/Elements/ShowRequestorTicketsAll000644 000765 000024 00000004202 13437510132 024615 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& ShowRequestorTickets, %ARGS, conditions => $conditions, Rows => $Rows &> <%ARGS> $Requestor => undef $conditions => [] $Rows => 10 rt-4.4.4/share/html/Ticket/Elements/ShowDependencyStatus000644 000765 000024 00000005543 13437510132 024137 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
% if ($approvals) { % if ($approvals == 1) { <&|/l&>Pending approval. % } else { <&|/l, $approvals &>Pending [quant,_1,approval,approvals]. % } <&|/l&>This ticket cannot be resolved until it is approved. % } else { <&|/l, $depends &>Pending [quant,_1,ticket,tickets]. <&|/l, $depends &>This ticket cannot be resolved until its [numerate,_1,dependency is,dependencies are] resolved. % }
<%args> $Ticket <%init> # normal tickets my $deps = $Ticket->UnresolvedDependencies; $deps->LimitType( VALUE => 'ticket' ); my $depends = $deps->Count || 0; # approvals $deps = $Ticket->UnresolvedDependencies; $deps->LimitType( VALUE => 'approval' ); my $approvals = $deps->Count || 0; return unless $depends or $approvals; rt-4.4.4/share/html/Ticket/Attachment/dhandler000644 000765 000024 00000010207 13437510132 022102 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%perl> my ( $ticket, $trans, $attach, $filename ); my $arg = $m->dhandler_arg; # get rest of path if ( $arg =~ m{^(\d+)/(\d+)} ) { $trans = $1; $attach = $2; } else { Abort("Corrupted attachment URL.", Code => HTTP::Status::HTTP_BAD_REQUEST); } my $AttachmentObj = RT::Attachment->new( $session{'CurrentUser'} ); $AttachmentObj->Load($attach) || Abort("Attachment '$attach' could not be loaded", Code => HTTP::Status::HTTP_NOT_FOUND); unless ( $AttachmentObj->id ) { Abort("Bad attachment id. Couldn't find attachment '$attach'\n", Code => HTTP::Status::HTTP_NOT_FOUND); } unless ( $AttachmentObj->TransactionId() == $trans ) { Abort("Bad transaction number for attachment. $trans should be". $AttachmentObj->TransactionId() . "\n", Code => HTTP::Status::HTTP_NOT_FOUND); } my $content = $AttachmentObj->OriginalContent; my $content_type = $AttachmentObj->ContentType || 'text/plain'; my $attachment_regex = qr{^(image/svg\+xml|application/pdf)}i; if ( RT->Config->Get('AlwaysDownloadAttachments') || ($content_type =~ $attachment_regex) ) { $r->headers_out->{'Content-Disposition'} = "attachment"; } elsif ( !RT->Config->Get('TrustHTMLAttachments') ) { my $text_plain_regex = qr{^(text/html|application/xhtml\+xml|text/xml|application/xml)}i; $content_type = 'text/plain' if ( $content_type =~ $text_plain_regex ); } elsif (lc $content_type eq 'text/html') { # If we're trusting and serving HTML for display not download, try to do # inline rewriting to be extra helpful. my $count = RT::Interface::Web::RewriteInlineImages( Content => \$content, Attachment => $AttachmentObj, ); RT->Logger->debug("Rewrote $count CID images when displaying original HTML attachment #$attach"); } my $enc = $AttachmentObj->OriginalEncoding || 'utf-8'; my $iana = Encode::find_encoding($enc); $iana = $iana ? $iana->mime_name : $enc; require MIME::Types; my $mimetype = MIME::Types->new->type($content_type); unless ( $mimetype && $mimetype->isBinary ) { $content_type .= ";charset=$iana"; } $r->content_type($content_type); $m->clear_buffer(); $m->out($content); $m->abort; <%attr> AutoFlush => 0 rt-4.4.4/share/html/Ticket/Attachment/WithHeaders/000755 000765 000024 00000000000 13437510132 022605 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Ticket/Attachment/WithHeaders/dhandler000644 000765 000024 00000005737 13437510132 024325 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%perl> # we don't need transaction id my ($id) = $m->dhandler_arg =~ /^(\d+)/; unless ( $id ) { # wrong url format Abort("Corrupted attachment URL", Code => HTTP::Status::HTTP_BAD_REQUEST); } my $AttachmentObj = RT::Attachment->new( $session{'CurrentUser'} ); $AttachmentObj->Load( $id ); unless ( $AttachmentObj->id ) { Abort("Couldn't load attachment #$id", Code => HTTP::Status::HTTP_NOT_FOUND); } my $content_type = 'text/plain'; my $enc = $AttachmentObj->OriginalEncoding || 'utf-8'; my $iana = Encode::find_encoding($enc); $iana = $iana ? $iana->mime_name : $enc; $content_type .= ";charset=$iana"; # XXX: should we check handle html here and integrate headers into html? $r->content_type( $content_type ); $m->clear_buffer; $m->out( $AttachmentObj->EncodedHeaders( $enc ) ); $m->out( "\n\n" ); $m->out( $AttachmentObj->OriginalContent ); $m->abort; <%attr> AutoFlush => 0 rt-4.4.4/share/html/Dashboards/index.html000644 000765 000024 00000004202 13437510132 021130 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Dashboards") &> <& /Elements/Tabs &> <& /Elements/ListActions &> <& /Dashboards/Elements/ShowDashboards &> rt-4.4.4/share/html/Dashboards/dhandler000644 000765 000024 00000004176 13437510132 020651 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> if ($m->dhandler_arg =~ /^(\d+)/) { $m->comp('/Dashboards/Render.html', id => $1, %ARGS); } else { $m->decline; } rt-4.4.4/share/html/Dashboards/Modify.html000644 000765 000024 00000013224 13437510132 021254 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
%unless ($Dashboard->Id) { % } else { % } <&|/Widgets/TitleBox, title => loc('Basics') &>
<&|/l&>Name:
<&|/l&>Privacy: <& /Dashboards/Elements/SelectPrivacy, Name => "Privacy", Objects => \@privacies, Default => $Dashboard->Privacy &>
<& /Elements/Submit, Name => 'Save', Label =>( $Create ? loc('Create') : loc('Save Changes') ) &> % if ($Dashboard->Id && $can_delete) { <& /Elements/Submit, Name => 'Delete', Label => loc('Delete') &> % }
<%INIT> my ($title, @results); my $tried_create = 0; # user went directly to Modify.html $Create = 1 if !$id; my $redirect_to ='/Dashboards/Modify.html'; use RT::Dashboard; my $Dashboard = RT::Dashboard->new($session{'CurrentUser'}); my $method = $Create ? 'ObjectsForCreating' : 'ObjectsForModifying'; my @privacies = $Dashboard->$method; Abort(loc("Permission Denied"), Code => HTTP::Status::HTTP_FORBIDDEN) if @privacies == 0; if ($Create) { $title = loc("Create a new dashboard"); } else { if ($id eq 'new') { $tried_create = 1; my ($val, $msg) = $Dashboard->Save( Name => $ARGS{'Name'}, Privacy => $ARGS{'Privacy'}, ); if (!$val) { Abort(loc("Dashboard could not be created: [_1]", $msg)); } push @results, $msg; $id = $Dashboard->Id; if (!$Dashboard->id || ! $Dashboard->CurrentUserCanSee) { $redirect_to='/Dashboards/index.html'; } } else { my ($ok, $msg) = $Dashboard->LoadById($id); unless ($ok) { RT::Logger->error("Unable to load dashboard with $id: $msg"); Abort(loc("Could not load dashboard [_1]", $id), Code => HTTP::Status::HTTP_NOT_FOUND); } } if ($id) { $title = loc("Modify the dashboard [_1]", $Dashboard->Name); } # If the create failed else { $Create = 1; $title = loc("Create a new dashboard"); } } if (!$Create && !$tried_create && $id && $ARGS{'Save'}) { my ($ok, $msg) = $Dashboard->Update(Privacy => $ARGS{'Privacy'}, Name => $ARGS{'Name'}); if ($ok) { push @results, loc("Dashboard [_1] updated", $Dashboard->Name); } else { push @results, loc("Dashboard [_1] could not be updated: [_2]", $Dashboard->Name, $msg); } } my $can_delete = $Dashboard->CurrentUserCanDelete; if (!$Create && !$tried_create && $id && $ARGS{'Delete'}) { if (!$can_delete) { Abort(loc("Couldn't delete dashboard [_1]: Permission Denied", $id), Code => HTTP::Status::HTTP_FORBIDDEN); } my ($ok, $msg) = $Dashboard->Delete(); if (!$ok) { Abort(loc("Couldn't delete dashboard [_1]: [_2]", $id, $msg), Code => HTTP::Status::HTTP_BAD_REQUEST); } push @results, $msg; $redirect_to = '/Dashboards/index.html'; } # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@results, Path => $redirect_to, Arguments => { id => $id }, ); <%ARGS> $Create => undef $Name => undef $id => '' unless defined $id $Delete => undef rt-4.4.4/share/html/Dashboards/Queries.html000644 000765 000024 00000022304 13437510132 021441 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> <& Elements/Deleted, searches => \@deleted, Dashboard => $Dashboard &> <& Elements/HiddenSearches, searches => \@hidden_searches, Dashboard => $Dashboard &> % for my $pane (@panes) { % }
<&| /Widgets/TitleBox, title => $pane->{DisplayName} &> % my ( $pane_name ) = $pane->{Name} =~ /Searches-(.+)/; <& /Widgets/SelectionBox:show, self => $pane, grep( { $_->{pane} eq $pane_name} @deleted ) ? ( ShowUpdate => 1 ) : () &>
<%INIT> my @results; use RT::Dashboard; my $Dashboard = RT::Dashboard->new($session{'CurrentUser'}); my ($ok, $msg) = $Dashboard->LoadById($id); unless ($ok) { RT::Logger->error("Unable to load dashboard with $id: $msg"); Abort(loc("Could not load dashboard [_1]", $id), Code => HTTP::Status::HTTP_NOT_FOUND); } my $title = loc("Modify the content of dashboard [_1]", $Dashboard->Name); my %desc_of; my @items; my %selected; my %still_exists; # add portlets (homepage componenets) my @components = @{ RT->Config->Get('HomepageComponents') }; for my $desc (@components) { my $name = "component-$desc"; push @items, [$name, loc($desc)]; $desc_of{$name} = loc($desc); $still_exists{$name} = 1; } # add dashboards my @dashboards = $m->comp("/Dashboards/Elements/ListOfDashboards"); for my $dashboard (@dashboards) { # Users *can* set up mutually recursive dashboards, but don't make it THIS # easy for them to shoot themselves in the foot. next if $dashboard->Id == $Dashboard->Id; my $name = 'dashboard-' . $dashboard->Id . '-' . $dashboard->Privacy; my $type = loc('Dashboard'); # loc my $desc = "$type: " . $dashboard->Name; push @items, [$name, $desc]; $desc_of{$name} = $desc; $still_exists{$name} = 1; } # add saved searches my @objs = RT::System->new($session{'CurrentUser'}); push @objs, RT::SavedSearch->new( $session{CurrentUser} )->ObjectsForLoading if $session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch', Object => $RT::System ); for my $object (@objs) { for ($m->comp("/Search/Elements/SearchesForObject", Object => $object)) { my ($desc, $loc_desc, $search) = @$_; my $SearchType = $search->Content->{'SearchType'} || 'Ticket'; my $type = ( $SearchType eq 'Ticket' ) ? 'Saved Search' # loc : $SearchType; $desc = loc($type) . ": $loc_desc"; my $privacy = $Dashboard->_build_privacy($object); my $name = 'search-' . $search->Id . '-' . $privacy; push @items, [$name, $desc]; $desc_of{$name} = $desc; $still_exists{$name} = 1; } } # Get the list of portlets already in use my @deleted; do { my $panes = $Dashboard->Panes; for my $pane (keys %$panes) { for my $portlet (@{ $panes->{$pane} }) { my $name; my $type = $portlet->{portlet_type}; if ($type eq 'search' || $type eq 'dashboard') { $name = join '-', $type, $portlet->{id}, $portlet->{privacy}; } elsif ($type eq 'component') { $name = join '-', 'component', $portlet->{component}; } if (!$still_exists{$name}) { push @deleted, { pane => $pane, name => $name, description => $portlet->{description}, }; next; } push @{ $selected{$pane} }, $name; $desc_of{$name} = $portlet->{description}; } } }; $m->callback( CallbackName => 'PopulatePossibilities', Dashboard => $Dashboard, items => \@items, desc_of => \%desc_of, still_exists => \%still_exists, selected => \%selected, ); # Create selectionbox widgets for those portlets my %pane_name = ( 'body' => loc('Body'), 'sidebar' => loc('Sidebar'), ); $m->callback( CallbackName => 'Panes', Dashboard => $Dashboard, panes => \%pane_name, ); my @panes; for my $pane (sort keys %pane_name) { my $sel = $m->comp( '/Widgets/SelectionBox:new', Action => 'Queries.html', Name => "Searches-$pane", DisplayName => $pane_name{$pane}, Available => \@items, Selected => $selected{$pane}, AutoSave => 1, OnSubmit => sub { my $self = shift; $m->callback( CallbackName => 'Submit', Dashboard => $Dashboard, Selected => $self->{Current}, pane => $pane, ); my @portlets; for (@{ $self->{Current} }) { my $item = $_; my $desc = $desc_of{$item}; my $portlet_type = $1 if $item =~ s/^(\w+)-//; if ($portlet_type eq 'search' || $portlet_type eq 'dashboard') { my ($id, $privacy) = split '-', $item, 2; push @portlets, { portlet_type => $portlet_type, privacy => $privacy, id => $id, description => $desc, pane => $pane, }; } elsif ($portlet_type eq 'component') { # Absolute paths stay absolute, relative paths go into # /Elements. This way, extensions that add portlets work. my $path = $item; $path = "/Elements/$path" if substr($path, 0, 1) ne '/'; push @portlets, { portlet_type => $portlet_type, component => $item, path => $path, description => $item, pane => $pane, }; } } # we want to keep all the other panes the same my $panes = $Dashboard->Panes; $panes->{$pane} = \@portlets; # remove "deleted" warnings about this pane @deleted = grep { $_->{pane} ne $pane } @deleted; $m->callback( CallbackName => 'BeforeUpdate', Dashboard => $Dashboard, panes => $panes, ); my ($ok, $msg) = $Dashboard->Update(Panes => $panes); if ($ok) { push @results, loc("Dashboard updated"); } else { push @results, loc("Dashboard could not be updated: [_1]", $msg); } }, ); push @panes, $sel; } $m->comp('/Widgets/SelectionBox:process', %ARGS, self => $_ ) for @panes; my @hidden_searches = $Dashboard->PossibleHiddenSearches; <%ARGS> $id => '' unless defined $id rt-4.4.4/share/html/Dashboards/Elements/000755 000765 000024 00000000000 13437510132 020711 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Dashboards/Render.html000644 000765 000024 00000013333 13437510132 021245 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title, ShowBar => $Preview, Refresh => $Refresh, &> % if ($Preview) { <& /Elements/Tabs &> % } <& /Elements/ListActions, actions => \@results &> % # honor the chosen language for just the dashboard content % my $original_handle; % if ($SubscriptionObj->id) { % if (my $lang = $SubscriptionObj->SubValue('Language')) { % $original_handle = $session{'CurrentUser'}->{'LangHandle'}; % $session{'CurrentUser'}->{'LangHandle'} = RT::I18N->get_handle($lang); % } % } % $m->callback(CallbackName => 'BeforeTable', Dashboard => $Dashboard, show_cb => $show_cb); % $m->callback(CallbackName => 'BeforePanes', Dashboard => $Dashboard, show_cb => $show_cb); % $m->callback(CallbackName => 'AfterPanes', Dashboard => $Dashboard, show_cb => $show_cb);
% $show_cb->('body'); % $show_cb->('sidebar');
% $m->callback(CallbackName => 'AfterTable', Dashboard => $Dashboard, show_cb => $show_cb); % if (!$Preview) { % my $edit = RT->Config->Get('WebPath') . '/Dashboards/Modify.html?id='.$id; % my $subscription = RT->Config->Get('WebPath') . '/Dashboards/Subscription.html?id='.$id;

<&|/l, $edit, $subscription &>You may edit this dashboard and your subscription to it in RT.

%# We disable autohandlers when mailing (!$Preview) so /Elements/Footer isn't %# run for us. Tidy up the end of the HTML. We don't use /Elements/Tabs (and %# hence PageLayout) so we don't need to close any other tags. % } % # restore the original language for anything else on the page % if ($original_handle) { % $session{'CurrentUser'}->{'LangHandle'} = $original_handle; % } <%INIT> my @results; my $skip_create = 0; $m->callback(ARGSRef => \%ARGS, results => \@results, CallbackName => 'Initial', skip_create => \$skip_create); use RT::Dashboard; my $Dashboard = RT::Dashboard->new($session{'CurrentUser'}); my ($ok, $msg) = $Dashboard->LoadById($id); unless ($ok) { RT::Logger->error("Unable to load dashboard with $id: $msg"); Abort(loc("Could not load dashboard [_1]", $id), Code => HTTP::Status::HTTP_NOT_FOUND); } my $path = '/Dashboards/' . $Dashboard->id . '/' . $Dashboard->Name; unless ( $skip_create ) { push @results, ProcessQuickCreate( Path => $path, ARGSRef => \%ARGS ); } my $SubscriptionObj = RT::Attribute->new($session{'CurrentUser'}); my $rows; # try to load the subscription to this id to get a better idea of number of rows for my $sub ($session{'CurrentUser'}->UserObj->Attributes->Named('Subscription')) { next unless $sub->SubValue('DashboardId') == $id; $SubscriptionObj = $sub; $rows = $SubscriptionObj->SubValue('Rows'); last; } # otherwise honor their search preferences.. otherwise 50 rows # $rows == 0 means unlimited, which we don't want to ignore from above unless (defined($rows)) { my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {}; $rows = defined($prefs->{'RowsPerPage'}) ? $prefs->{'RowsPerPage'} : 50; } my $title = loc '[_1] Dashboard', $Dashboard->Name; my $show_cb = sub { my $pane = shift; $m->comp('Elements/ShowPortlet/dashboard', Portlet => $Dashboard, Rows => $rows, Preview => $Preview, Dashboard => $Dashboard, Pane => $pane, Depth => 0, HasResults => $HasResults, ); }; my $Refresh = $Preview ? $session{'home_refresh_interval'} || RT->Config->Get('HomePageRefreshInterval', $session{'CurrentUser'}) : 0; <%ARGS> $id => undef $Preview => 1 $HasResults => undef rt-4.4.4/share/html/Dashboards/Subscription.html000644 000765 000024 00000034071 13437510132 022514 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
<&| /Widgets/TitleBox, title => loc('Dashboard') &>
<&|/l&>Dashboard: <% $Dashboard->Name %>
<&|/l&>Queries: % my @portlets = grep { defined } $Dashboard->Portlets; % if (!@portlets) { (<&|/l&>none) % } else {
    % for my $portlet (@portlets) {
  1. <% loc( RT::SavedSearch->EscapeDescription($portlet->{description}), $fields{'Rows'}) %>
  2. % }
% }
<&| /Widgets/TitleBox, title => loc('Subscription') &> % $m->callback( %ARGS, CallbackName => 'SubscriptionFormEnd', FieldsRef => \%fields, % SubscriptionObj => $SubscriptionObj, DashboardObj => $Dashboard );
<&|/l&>Frequency: > % for my $day ( qw/Monday Tuesday Wednesday Thursday Friday Saturday Sunday/ ) {   % }
>
>
>
<&|/l&>Hour: (<%$timezone%>)
<&|/l&>Language: <& /Elements/SelectLang, Name => 'Language', Default => $fields{'Language'}, ShowNullOption => 1, &>
<&|/l&>Rows:
/>
<&| /Widgets/TitleBox, title => loc('Recipients') &> <& Elements/SubscriptionRecipients, UserField => $UserField, UserString => $UserString, UserOp => $UserOp, GroupString => $GroupString, GroupOp => $GroupOp, GroupField => $GroupField, Recipients => $fields{Recipients}, IsFirstSubscription => $SubscriptionObj ? 0 : 1 &>
% if ($SubscriptionObj) { <& /Elements/Submit, Name => "Save", Label => loc('Save Changes') &> % } else { <& /Elements/Submit, Name => "Save", Label => loc('Subscribe') &> % }
<%INIT> use List::MoreUtils 'uniq'; my ($title, @results); my $Loaded = 0; my $timezone = $session{'CurrentUser'}->UserObj->Timezone || RT->Config->Get('Timezone'); use RT::Dashboard; my $Dashboard = RT::Dashboard->new($session{'CurrentUser'}); my ($ok, $msg) = $Dashboard->LoadById($id); unless ($ok) { RT::Logger->error("Unable to load dashboard with $id: $msg"); Abort(loc("Could not load dashboard [_1]", $id), Code => HTTP::Status::HTTP_NOT_FOUND); } my $SubscriptionObj = $Dashboard->Subscription; $id = $SubscriptionObj ? $SubscriptionObj->SubValue('DashboardId') : $ARGS{'id'}; my %fields = ( DashboardId => $id, Frequency => 'daily', Monday => 1, Tuesday => 1, Wednesday => 1, Thursday => 1, Friday => 1, Saturday => 0, Sunday => 0, Hour => '06:00', Dow => 'Monday', Dom => 1, Rows => 20, Recipients => { Users => [], Groups => [] }, Fow => 1, Counter => 0, Language => '', SuppressIfEmpty => 0, ); $m->callback( %ARGS, CallbackName => 'SubscriptionFields', FieldsRef => \%fields, SubscriptionObj => $SubscriptionObj, DashboardObj => $Dashboard); # update any fields with the values from the subscription object if ($SubscriptionObj) { for my $field (keys %fields) { $fields{$field} = $SubscriptionObj->SubValue($field); } } # finally, update any fields with arguments passed in by the user for my $field (keys %fields) { next if $field eq 'DashboardId'; # but this one is immutable $fields{$field} = $ARGS{$field} if defined($ARGS{$field}) || $ARGS{$field.'-Magic'}; } $m->callback( %ARGS, CallbackName => 'MassageSubscriptionFields', FieldsRef => \%fields, SubscriptionObj => $SubscriptionObj, DashboardObj => $Dashboard); # this'll be defined on submit if (defined $ARGS{Save}) { # update recipients for my $key (keys %ARGS) { my $val = $ARGS{$key}; if ( $key =~ /^Dashboard-Subscription-Email-\d+$/ && $val ) { my @recipients = @{ $fields{Recipients}->{Users} }; for ( RT::EmailParser->ParseEmailAddress( $val ) ) { my $email = $_->address; my $user = RT::User->new(RT->SystemUser); ($ok, $msg) = $user->LoadOrCreateByEmail( EmailAddress => $email, Comments => 'Autocreated when added as a dashboard subscription recipient', ); unless ($ok) { push @results, loc("Could not add [_1] as a recipient: [_2]", $email, $msg); next; } my $is_prev_recipient = grep { $_ == $user->id } @recipients; next if $is_prev_recipient; push @recipients, $user->id; push @results, loc("[_1] added to dashboard subscription recipients", $email); } @{ $fields{Recipients}->{Users} } = uniq @recipients; } elsif ($key =~ /^Dashboard-Subscription-(Users|Groups)-(\d+)$/) { my ($mode, $type, $id) = ('', $1, $2); my @recipients = @{ $fields{Recipients}->{$type} }; # find out proper value for user/group checkbox my $add_keep_recipient = ref $ARGS{$key} eq 'ARRAY' ? grep { $_ } @{ $ARGS{$key} } : $ARGS{$key}; my $record; # hold user/group object if ($type eq 'Users') { my $user = RT::User->new($session{CurrentUser}); $user->Load( $id ); $record = $user; } elsif ($type eq 'Groups') { my $group = RT::Group->new($session{CurrentUser}); $group->Load( $id ); $record = $group; } my $is_prev_recipient = grep { $_ == $id } @recipients; if ($add_keep_recipient and not $is_prev_recipient) { # Add User/Group push @recipients, $id; push @results, loc("[_1] added to dashboard subscription recipients", $record->Name); } elsif (not $add_keep_recipient and $is_prev_recipient) { # Remove User/Group @recipients = grep { $_ != $id } @recipients; push @results, loc("[_1] removed from dashboard subscription recipients", $record->Name); } @{ $fields{Recipients}->{$type} } = uniq @recipients; } } # update if ($SubscriptionObj) { $id = delete $fields{'DashboardId'}; # immutable ($ok, $msg) = $SubscriptionObj->SetSubValues(%fields); $fields{'DashboardId'} = $id; $msg = loc("Subscription updated") if $ok; push @results, $msg; } # create else { Abort(loc("Unable to subscribe to dashboard [_1]: Permission Denied", $id)) unless $Dashboard->CurrentUserCanSubscribe; $SubscriptionObj = RT::Attribute->new($session{CurrentUser}); ($ok, $msg) = $SubscriptionObj->Create( Name => 'Subscription', Description => 'Subscription to dashboard ' . $id, ContentType => 'storable', Object => $session{'CurrentUser'}->UserObj, Content => \%fields, ); if ($ok) { push @results, loc("Subscribed to dashboard [_1]", $Dashboard->Name); } else { push @results, loc('Subscription could not be created: [_1]', $msg); } } push @results, loc("Warning: This dashboard has no recipients") unless @{ $fields{Recipients}->{Users} } || @{ $fields{Recipients}->{Groups} }; } elsif (defined $ARGS{OnlySearchForPeople}) { $GroupString = undef; $GroupField = undef; $GroupOp = undef; } elsif (defined $ARGS{OnlySearchForGroup}) { $UserString = undef; $UserField = undef; $UserOp = undef; } if ($SubscriptionObj) { $title = loc("Modify the subscription to dashboard [_1]", $Dashboard->Name); } else { $title = loc("Subscribe to dashboard [_1]", $Dashboard->Name); } <%ARGS> $id => undef $Frequency => undef $Hour => undef $Dow => undef $Dom => undef $Rows => undef $Recipient => undef $Language => undef $UserField => undef $UserOp => undef $UserString => undef $GroupField => undef $GroupOp => undef $GroupString => undef rt-4.4.4/share/html/Dashboards/Elements/SelectPrivacy000644 000765 000024 00000005177 13437510132 023423 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> @Objects => undef $Name => undef $Default => undef rt-4.4.4/share/html/Dashboards/Elements/DashboardsForObject000644 000765 000024 00000005660 13437510132 024513 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object => undef <%init> # Returns a hash of dashboards associated on $Object use RT::Dashboard; my %dashboards; my $privacy = RT::Dashboard->_build_privacy($Object); while (my $attr = $Object->Attributes->Next) { if ($attr->Name =~ /^Dashboard\b/) { my $dashboard = RT::Dashboard->new($User); my ($ok, $msg) = $dashboard->Load($privacy, $attr->id); if (!$ok) { $RT::Logger->debug("Unable to load dashboard $ok (privacy $privacy): $msg"); next; } if ($Object->isa('RT::System')) { push @{ $dashboards{system} }, $dashboard; } elsif ($Object->isa('RT::User')) { push @{ $dashboards{personal} }, $dashboard; } elsif ($Object->isa('RT::Group')) { push @{ $dashboards{group}{$Object->Name} }, $dashboard; } } } return \%dashboards; <%args> $User => $session{'CurrentUser'} rt-4.4.4/share/html/Dashboards/Elements/ShowDashboards000644 000765 000024 00000005551 13437510132 023555 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % foreach my $Object (@Objects) { % my $Dashboards = RT::Dashboards->new($session{CurrentUser}); % $Dashboards->LimitToPrivacy(join('-',ref($Object),$Object->Id)); % my $title; % if (ref $Object eq 'RT::User' && $Object->Id == $session{CurrentUser}->Id) { % $title = loc("My dashboards"); % } else { % $title = loc("[_1]'s dashboards",$Object->Name); % } % $title =~ s/([\\'])/\\$1/g; % $title = $m->interp->apply_escapes($title, 'h'); % $Dashboards->SortDashboards(); <& /Elements/CollectionList, %ARGS, Format => qq{'__Name__/TITLE:$title', __Subscription__}, Collection => $Dashboards, &> % } <%init> use RT::Dashboards; my @Objects = RT::Dashboard->new($session{CurrentUser})->ObjectsForLoading(IncludeSuperuserGroups => $IncludeSuperuserGroups); <%args> $IncludeSuperuserGroups => 1 rt-4.4.4/share/html/Dashboards/Elements/ListOfDashboards000644 000765 000024 00000006065 13437510132 024036 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> # put the list of dashboards into the navigation use RT::Dashboard; my @objs = RT::Dashboard->new($User)->ObjectsForLoading( IncludeSuperuserGroups => $IncludeSuperuserGroups ); my %dashboard_map; for my $object (@objs) { my $new_dashboards = $m->comp("/Dashboards/Elements/DashboardsForObject", Object => $object, User => $User ); push @{ $dashboard_map{$_} }, @{ $new_dashboards->{$_} || [] } for qw/personal system/; push @{ $dashboard_map{group}{$_} }, @{ $new_dashboards->{group}{$_} } for keys %{ $new_dashboards->{group} || {} }; } my @dashboards = ( (sort { $a->Id <=> $b->Id } @{ $dashboard_map{personal} || [] }), (sort { $a->Id <=> $b->Id } @{ $dashboard_map{system} || [] }), map { sort { $a->Id <=> $b->Id } @{ $dashboard_map{group}{$_} } } keys %{ $dashboard_map{group} || {} }, ); $m->callback(%ARGS, dashboards => \@dashboards, CallbackName => 'ModifyDashboards'); return @dashboards; <%args> $User => $session{CurrentUser} $IncludeSuperuserGroups => 1 rt-4.4.4/share/html/Dashboards/Elements/Deleted000644 000765 000024 00000004551 13437510132 022207 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> @searches % if (@searches) { <&| /Widgets/TitleBox, title => loc('Deleted queries') &>

<% loc("The following queries have been deleted and each will be removed from the dashboard once its pane is updated.") %>

    % for (@searches) {
  • <% loc('[_1] (from pane [_2])', ($_->{description} || $_->{name}), $_->{pane}) %>
  • % }
% } rt-4.4.4/share/html/Dashboards/Elements/SubscriptionRecipients000644 000765 000024 00000016636 13437510132 025362 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $UserField => 'Name' $UserOp => '=' $UserString => undef $PrivilegedOnly => undef $GroupField => 'Name' $GroupOp => '=' $GroupString => undef $Recipients => undef $IsFirstSubscription => undef <%INIT> my ($recipients_users, $recipients_groups); my ($Users, $Groups); if ($Recipients) { $recipients_users = $Recipients->{Users}; $recipients_groups = $Recipients->{Groups}; } if ($UserString) { $Users = RT::Users->new($session{'CurrentUser'}); $Users->Limit(FIELD => $UserField, VALUE => $UserString, OPERATOR => $UserOp, CASESENSITIVE => 0); $Users->LimitToPrivileged if $PrivilegedOnly; my $excluded_users = [ $session{'CurrentUser'}->id ]; push @$excluded_users, @{ $recipients_users || [] }; $Users->Limit(FIELD => 'id', VALUE => $excluded_users, OPERATOR => 'NOT IN'); } if ($GroupString) { $Groups = RT::Groups->new($session{'CurrentUser'}); $Groups->LimitToUserDefinedGroups; $Groups->Limit(FIELD => $GroupField, VALUE => $GroupString, OPERATOR => $GroupOp, CASESENSITIVE => 0); $Groups->Limit(FIELD => 'id', VALUE => $recipients_groups, OPERATOR => 'NOT IN') if @{ $recipients_groups || [] }; }
<&|/l&>Find people whose
% if ($UserString) { <& /Elements/SelectUsers, UserString => $UserString, UserField => $UserField, UserOp => $UserOp &> % } else { <& /Elements/SelectUsers &> % }
<&|/l&>Find groups whose
% if ($GroupString) { <& /Elements/SelectGroups, GroupString => $GroupString, GroupField => $GroupField, GroupOp => $GroupOp &> % } else { <& /Elements/SelectGroups &> % }

<&|/l&>Add New Recipients: % if ( $Users && $Users->Count ) { % while ( my $u = $Users->Next ) { % } % } % if ( $Groups && $Groups->Count ) { % while ( my $g = $Groups->Next ) { % } % } % for my $i (1 .. 3) { % }
<&|/l&>User
<& '/Elements/ShowUser', User => $u, style=>'verbose' &>
<&|/l&>Group
<%$g->Name%> (<%$g->Description%>)
<&|/l&>Email
<& /Elements/EmailInput, Name => 'Dashboard-Subscription-Email-' . $i, Size => '20' &>
<&|/l&>Current Recipients:
    % my $current_user_id = $session{CurrentUser}->id; % my $current_user_subscribed = $recipients_users && grep { $_ == $current_user_id } @$recipients_users;
  • /> % if ( $session{CurrentUser}->HasRight( Right => 'AdminUsers', Object => $RT::System ) && % $session{CurrentUser}->HasRight( Right => 'ShowConfigTab', Object =>$RT::System ) ) { <& /Elements/ShowUser, User => $session{CurrentUser} &> % } else { <& /Elements/ShowUser, User => $session{CurrentUser} &> % } <& /Elements/ShowUserEmailFrequency, User => $session{CurrentUser} &>
  • % for my $user_id (@{ $recipients_users || [] }) { % next if $user_id == $session{'CurrentUser'}->id; # already listed current user % my $user = RT::User->new( $session{'CurrentUser'} ); % $user->Load($user_id); % next unless $user->id and !$user->Disabled;
  • % if ( $session{CurrentUser}->HasRight( Right => 'AdminUsers', Object => $RT::System ) && % $session{CurrentUser}->HasRight( Right => 'ShowConfigTab', Object =>$RT::System ) ) { <& /Elements/ShowUser, User => $user &> % } else { <& /Elements/ShowUser, User => $user &> % } <& /Elements/ShowUserEmailFrequency, User => $user &>
  • % } % for my $group_id (@{ $recipients_groups || [] }) { % my $group = RT::Group->new( $session{'CurrentUser'} ); % $group->Load($group_id); % next unless $group->id and !$group->Disabled;
  • % if ( $session{CurrentUser}->HasRight( Right => 'AdminGroup', Object => $RT::System ) && % $session{CurrentUser}->HasRight( Right => 'ShowConfigTab', Object =>$RT::System ) ) { <% $group->Name %> % } else { <% $group->Name %> % }
  • % }
rt-4.4.4/share/html/Dashboards/Elements/ShowPortlet/000755 000765 000024 00000000000 13437510132 023203 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Dashboards/Elements/HiddenSearches000644 000765 000024 00000005254 13437510132 023513 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> @searches $Dashboard <%init> # eliminate deleted searches (id=0) because they confuse this logic @searches = grep { $_->Id } @searches; return if @searches == 0; my @display; for my $search (@searches) { if ($search->Name eq 'SavedSearch') { push @display, $search->Description; } elsif ($search->Name =~ m/^Search - (.*)/) { push @display, $1; } else { push @display, $search->Name; } } <&| /Widgets/TitleBox, title => loc('Possible hidden searches') &>

<% loc("The following queries may not be visible to all users who can see this dashboard.") %>

    % for (@display) {
  • <% $_ %>
  • % }
rt-4.4.4/share/html/Dashboards/Elements/ShowPortlet/component000644 000765 000024 00000005416 13437510132 025136 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Dashboard $Portlet $Rows => 20 $Preview => 0 $HasResults <%init> my $full_path = $Portlet->{path}; (my $path = $full_path) =~ s{^/Elements/}{}; my $allowed = grep { $_ eq $path } @{RT->Config->Get('HomepageComponents')}; % if (!$allowed) { % $m->out( $m->interp->apply_escapes( loc("Invalid portlet [_1]", $path), "h" ) ); % RT->Logger->info("Invalid portlet $path found on dashboard #" . $Dashboard->Id); % if ($path eq 'QueueList' && grep { $_ eq 'Quicksearch' } @{RT->Config->Get('HomepageComponents')}) { % RT->Logger->warning("You may need to replace the component 'Quicksearch' in the HomepageComponents config with 'QueueList'. See the UPGRADING-4.4 document."); % } % } else { % $m->comp($full_path, HasResults => $HasResults); % } rt-4.4.4/share/html/Dashboards/Elements/ShowPortlet/search000644 000765 000024 00000004503 13437510132 024375 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Dashboard $Portlet $Rows => 20 $Preview => 0 $HasResults <%init> my @for_showsearch = $Dashboard->ShowSearchName($Portlet); <& /Elements/ShowSearch, @for_showsearch, Override => { Rows => $Rows }, hideable => $Preview, ShowCustomize => $Preview, HasResults => $HasResults, &> rt-4.4.4/share/html/Dashboards/Elements/ShowPortlet/dashboard000644 000765 000024 00000005547 13437510132 025070 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Dashboard $Pane $Portlet $Rows => 20 $Preview => 0 $Depth => 0 $HasResults <%init> my $current_dashboard; if (blessed($Portlet) && $Portlet->isa('RT::Dashboard')) { $current_dashboard = $Portlet; } else { $current_dashboard = RT::Dashboard->new($session{CurrentUser}); my ($ok, $msg) = $current_dashboard->LoadById($Portlet->{id}); if (!$ok) { $m->out($msg); return; } } my @panes = @{ $current_dashboard->Panes->{$Pane} || [] }; Abort("Possible recursive dashboard detected.") if $Depth > 8; <%perl> for my $portlet (@panes) { $m->comp($portlet->{portlet_type}, Portlet => $portlet, Rows => $Rows, Preview => $Preview, Dashboard => $current_dashboard, Pane => $Pane, Depth => $Depth + 1, HasResults => $HasResults ); } rt-4.4.4/share/html/Download/CustomFieldValue/000755 000765 000024 00000000000 13437510132 022045 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Download/CustomFieldValue/dhandler000644 000765 000024 00000005506 13437510132 023557 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%perl> my $id; my $arg = $m->dhandler_arg; # get rest of path if ($arg =~ /^(\d+)\//) { $id = $1; } else { Abort("Corrupted customfieldvalue URL."); } my $OCFV = RT::ObjectCustomFieldValue->new($session{'CurrentUser'}); $OCFV->Load($id) || Abort("OCFV '$id' could not be loaded"); unless ($OCFV->id) { Abort("Bad OCFV id. Couldn't find OCFV '$id'\n"); } my $content_type = $OCFV->ContentType || 'text/plain; charset=utf-8'; if (RT->Config->Get('AlwaysDownloadAttachments')) { $r->headers_out->{'Content-Disposition'} = "attachment"; } elsif (!RT->Config->Get('TrustHTMLAttachments')) { $content_type = 'text/plain; charset=utf-8' if ($content_type =~ /^text\/html/i); } $r->content_type( $content_type ); $m->clear_buffer(); $m->out($OCFV->LargeContent); $m->abort; <%attr> AutoFlush => 0 rt-4.4.4/share/html/Elements/SelectOwnerAutocomplete000644 000765 000024 00000007116 13437510132 023403 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Objects => [] $Default => 0 $ValueAttribute => 'Name' $TicketObj => undef <%INIT> $ValueAttribute = 'Name' unless $ValueAttribute =~ /^(?:id|Name)$/; my $value = ''; if ( $Default and not $Default =~ /\D/ ) { my $user = RT::User->new( $session{'CurrentUser'} ); $user->Load($Default); $value = $user->$ValueAttribute; } elsif (defined $TicketObj) { $value = $TicketObj->OwnerObj->$ValueAttribute; } # Map to a string of RT::Ticket-1|RT::Queue-5|... my $limit = join '|', map { join '-', ref($_), ($_->id || '') } @$Objects; my $query = $m->comp('/Elements/QueryString', return => $ValueAttribute, limit => $limit, ); rt-4.4.4/share/html/Elements/EditLinks000644 000765 000024 00000007747 13437510132 020467 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}

<&|/l&>Current Links

<& ShowRelationLabel, Object => $Object, Label => loc('Depends on').':', Relation => 'DependsOn' &> % while (my $link = $Object->DependsOn->Next) { <& EditLink, Link => $link, Mode => 'Target' &> % }
<& ShowRelationLabel, Object => $Object, Label => loc('Depended on by').':', Relation => 'DependedOnBy' &> % while (my $link = $Object->DependedOnBy->Next) { <& EditLink, Link => $link, Mode => 'Base' &> % }
<& ShowRelationLabel, Object => $Object, Label => loc('Parents').':', Relation => 'Parents' &> % while (my $link = $Object->MemberOf->Next) { <& EditLink, Link => $link, Mode => 'Target' &> % }
<& ShowRelationLabel, Object => $Object, Label => loc('Children').':', Relation => 'Children' &> % while (my $link = $Object->Members->Next) { <& EditLink, Link => $link, Mode => 'Base' &> % }
<& ShowRelationLabel, Object => $Object, Label => loc('Refers to').':', Relation => 'RefersTo' &> % while (my $link = $Object->RefersTo->Next) { <& EditLink, Link => $link, Mode => 'Target' &> %}
<& ShowRelationLabel, Object => $Object, Label => loc('Referred to by').':', Relation => 'ReferredToBy' &> % while (my $link = $Object->ReferredToBy->Next) { <& EditLink, Link => $link, Mode => 'Base' &> % }
<&|/l&>(Check box to delete)

<&|/l&>New Links

<& AddLinks, %ARGS &>
<%ARGS> $Object => undef rt-4.4.4/share/html/Elements/Tabs000644 000765 000024 00000171643 13437510132 017467 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/PageLayout, show_menu => $show_menu &> <%INIT> my $request_path = $HTML::Mason::Commands::r->path_info; $request_path =~ s!/{2,}!/!g; my $query_string = sub { my %args = @_; my $u = URI->new(); $u->query_form(map { $_ => $args{$_} } sort keys %args); return $u->query; }; my $build_admin_menu = sub { my $top = shift; my $admin = $top->child( admin => title => loc('Admin'), path => '/Admin/' ); if ( $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'AdminUsers' ) ) { my $users = $admin->child( users => title => loc('Users'), description => loc('Manage users and passwords'), path => '/Admin/Users/', ); $users->child( select => title => loc('Select'), path => "/Admin/Users/" ); $users->child( create => title => loc('Create'), path => "/Admin/Users/Modify.html?Create=1" ); } my $groups = $admin->child( groups => title => loc('Groups'), description => loc('Manage groups and group membership'), path => '/Admin/Groups/', ); $groups->child( select => title => loc('Select'), path => "/Admin/Groups/" ); $groups->child( create => title => loc('Create'), path => "/Admin/Groups/Modify.html?Create=1" ); my $queues = $admin->child( queues => title => loc('Queues'), description => loc('Manage queues and queue-specific properties'), path => '/Admin/Queues/', ); $queues->child( select => title => loc('Select'), path => "/Admin/Queues/" ); $queues->child( create => title => loc('Create'), path => "/Admin/Queues/Modify.html?Create=1" ); if ( $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'AdminCustomField' ) ) { my $cfs = $admin->child( 'custom-fields' => title => loc('Custom Fields'), description => loc('Manage custom fields and custom field values'), path => '/Admin/CustomFields/', ); $cfs->child( select => title => loc('Select'), path => "/Admin/CustomFields/" ); $cfs->child( create => title => loc('Create'), path => "/Admin/CustomFields/Modify.html?Create=1" ); } if ( $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'AdminCustomRoles' ) ) { my $roles = $admin->child( 'custom-roles' => title => loc('Custom Roles'), description => loc('Manage custom roles'), path => '/Admin/CustomRoles/', ); $roles->child( select => title => loc('Select'), path => "/Admin/CustomRoles/" ); $roles->child( create => title => loc('Create'), path => "/Admin/CustomRoles/Modify.html?Create=1" ); } if ( $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'ModifyScrips' ) ) { my $scrips = $admin->child( 'scrips' => title => loc('Scrips'), description => loc('Manage scrips'), path => '/Admin/Scrips/', ); $scrips->child( select => title => loc('Select'), path => "/Admin/Scrips/" ); $scrips->child( create => title => loc('Create'), path => "/Admin/Scrips/Create.html" ); } my $admin_global = $admin->child( global => title => loc('Global'), description => loc('Manage properties and configuration which apply to all queues'), path => '/Admin/Global/', ); my $scrips = $admin_global->child( scrips => title => loc('Scrips'), description => loc('Modify scrips which apply to all queues'), path => '/Admin/Global/Scrips.html', ); $scrips->child( select => title => loc('Select'), path => "/Admin/Global/Scrips.html" ); $scrips->child( create => title => loc('Create'), path => "/Admin/Scrips/Create.html?Global=1" ); my $conditions = $admin_global->child( conditions => title => loc('Conditions'), description => loc('Edit system conditions'), path => '/Admin/Global/Conditions.html', ); $conditions->child( select => title => loc('Select'), path => "/Admin/Global/Conditions.html" ); $conditions->child( create => title => loc('Create'), path => "/Admin/Conditions/Create.html" ); my $actions = $admin_global->child( actions => title => loc('Actions'), description => loc('Edit system actions'), path => '/Admin/Global/Actions.html', ); $actions->child( select => title => loc('Select'), path => "/Admin/Global/Actions.html" ); $actions->child( create => title => loc('Create'), path => "/Admin/Actions/Create.html" ); my $templates = $admin_global->child( templates => title => loc('Templates'), description => loc('Edit system templates'), path => '/Admin/Global/Templates.html', ); $templates->child( select => title => loc('Select'), path => "/Admin/Global/Templates.html" ); $templates->child( create => title => loc('Create'), path => "/Admin/Global/Template.html?Create=1" ); my $cfadmin = $admin_global->child( 'custom-fields' => title => loc('Custom Fields'), description => loc('Modify global custom fields'), path => '/Admin/Global/CustomFields/index.html', ); $cfadmin->child( users => title => loc('Users'), description => loc('Select custom fields for all users'), path => '/Admin/Global/CustomFields/Users.html', ); $cfadmin->child( groups => title => loc('Groups'), description => loc('Select custom fields for all user groups'), path => '/Admin/Global/CustomFields/Groups.html', ); $cfadmin->child( queues => title => loc('Queues'), description => loc('Select custom fields for all queues'), path => '/Admin/Global/CustomFields/Queues.html', ); $cfadmin->child( tickets => title => loc('Tickets'), description => loc('Select custom fields for tickets in all queues'), path => '/Admin/Global/CustomFields/Queue-Tickets.html', ); $cfadmin->child( transactions => title => loc('Ticket Transactions'), description => loc('Select custom fields for transactions on tickets in all queues'), path => '/Admin/Global/CustomFields/Queue-Transactions.html', ); $cfadmin->child( 'custom-fields' => title => loc('Articles'), description => loc('Select Custom Fields for Articles in all Classes'), path => '/Admin/Global/CustomFields/Class-Article.html', ); $cfadmin->child( 'assets' => title => loc('Assets'), description => loc('Select Custom Fields for Assets in all Catalogs'), path => '/Admin/Global/CustomFields/Catalog-Assets.html', ); my $article_admin = $admin->child( articles => title => loc('Articles'), path => "/Admin/Articles/index.html" ); my $class_admin = $article_admin->child(classes => title => loc('Classes'), path => '/Admin/Articles/Classes/' ); $class_admin->child( select => title => loc('Select'), description => loc('Modify and Create Classes'), path => '/Admin/Articles/Classes/', ); $class_admin->child( create => title => loc('Create'), description => loc('Modify and Create Custom Fields for Articles'), path => '/Admin/Articles/Classes/Modify.html?Create=1', ); my $cfs = $article_admin->child( 'custom-fields' => title => loc('Custom Fields'), path => '/Admin/CustomFields/index.html?'.$m->comp('/Elements/QueryString', Type => 'RT::Class-RT::Article'), ); $cfs->child( select => title => loc('Select'), path => '/Admin/CustomFields/index.html?'.$m->comp('/Elements/QueryString', Type => 'RT::Class-RT::Article'), ); $cfs->child( create => title => loc('Create'), path => '/Admin/CustomFields/Modify.html?'.$m->comp("/Elements/QueryString", Create=>1, LookupType=> "RT::Class-RT::Article" ), ); my $assets_admin = $admin->child( assets => title => loc("Assets"), path => '/Admin/Assets/' ); my $catalog_admin = $assets_admin->child( catalogs => title => loc("Catalogs"), description => loc("Modify asset catalogs"), path => "/Admin/Assets/Catalogs/" ); $catalog_admin->child( "select", title => loc("Select"), path => $catalog_admin->path ); $catalog_admin->child( "create", title => loc("Create"), path => "Create.html" ); my $assets_cfs = $assets_admin->child( "cfs", title => loc("Custom Fields"), description => loc("Modify asset custom fields"), path => "/Admin/CustomFields/?Type=" . RT::Asset->CustomFieldLookupType ); $assets_cfs->child( "select", title => loc("Select"), path => $assets_cfs->path ); $assets_cfs->child( "create", title => loc("Create"), path => "/Admin/CustomFields/Modify.html?Create=1&LookupType=" . RT::Asset->CustomFieldLookupType); $admin_global->child( 'group-rights' => title => loc('Group Rights'), description => loc('Modify global group rights'), path => '/Admin/Global/GroupRights.html', ); $admin_global->child( 'user-rights' => title => loc('User Rights'), description => loc('Modify global user rights'), path => '/Admin/Global/UserRights.html', ); $admin_global->child( 'my-rt' => title => loc('RT at a glance'), description => loc('Modify the default "RT at a glance" view'), path => '/Admin/Global/MyRT.html', ); $admin_global->child( 'dashboards-in-menu' => title => loc('Dashboards in menu'), description => loc('Customize dashboards in menu'), path => '/Admin/Global/DashboardsInMenu.html', ); $admin_global->child( 'topics' => title => loc('Topics'), description => loc('Modify global article topics'), path => '/Admin/Global/Topics.html', ); my $admin_tools = $admin->child( tools => title => loc('Tools'), description => loc('Use other RT administrative tools'), path => '/Admin/Tools/', ); $admin_tools->child( configuration => title => loc('System Configuration'), description => loc('Detailed information about your RT setup'), path => '/Admin/Tools/Configuration.html', ); $admin_tools->child( theme => title => loc('Theme'), description => loc('Customize the look of your RT'), path => '/Admin/Tools/Theme.html', ); if (RT->Config->Get('StatementLog') && $session{'CurrentUser'}->HasRight( Right => 'SuperUser', Object => RT->System )) { $admin_tools->child( 'sql-queries' => title => loc('SQL Queries'), description => loc('Browse the SQL queries made in this process'), path => '/Admin/Tools/Queries.html', ); } $admin_tools->child( shredder => title => loc('Shredder'), description => loc('Permanently wipeout data from RT'), path => '/Admin/Tools/Shredder', ); if ( $request_path =~ m{^/Admin/(Queues|Users|Groups|CustomFields|CustomRoles)} ) { my $type = $1; my $tabs = PageMenu(); my %labels = ( Queues => loc("Queues"), Users => loc("Users"), Groups => loc("Groups"), CustomFields => loc("Custom Fields"), CustomRoles => loc("Custom Roles"), ); my $section; if ( $request_path =~ m|^/Admin/$type/?(?:index.html)?$| || ( $request_path =~ m|^/Admin/$type/(?:Modify.html)$| && $DECODED_ARGS->{'Create'} ) ) { $section = $tabs; } else { $section = $tabs->child( select => title => $labels{$type}, path => "/Admin/$type/" ); } $section->child( select => title => loc('Select'), path => "/Admin/$type/" ); $section->child( create => title => loc('Create'), path => "/Admin/$type/Modify.html?Create=1" ); } if ( $request_path =~ m{^/Admin/Queues} ) { if ( $DECODED_ARGS->{'id'} && $DECODED_ARGS->{'id'} =~ /^\d+$/ || $DECODED_ARGS->{'Queue'} && $DECODED_ARGS->{'Queue'} =~ /^\d+$/ ) { my $id = $DECODED_ARGS->{'Queue'} || $DECODED_ARGS->{'id'}; my $queue_obj = RT::Queue->new( $session{'CurrentUser'} ); $queue_obj->Load($id); if ( $queue_obj and $queue_obj->id ) { my $queue = PageMenu(); $queue->child( basics => title => loc('Basics'), path => "/Admin/Queues/Modify.html?id=" . $id ); $queue->child( people => title => loc('Watchers'), path => "/Admin/Queues/People.html?id=" . $id ); my $templates = $queue->child(templates => title => loc('Templates'), path => "/Admin/Queues/Templates.html?id=" . $id); $templates->child( select => title => loc('Select'), path => "/Admin/Queues/Templates.html?id=".$id); $templates->child( create => title => loc('Create'), path => "/Admin/Queues/Template.html?Create=1;Queue=".$id); my $scrips = $queue->child( scrips => title => loc('Scrips'), path => "/Admin/Queues/Scrips.html?id=" . $id); $scrips->child( select => title => loc('Select'), path => "/Admin/Queues/Scrips.html?id=" . $id ); $scrips->child( create => title => loc('Create'), path => "/Admin/Scrips/Create.html?Queue=" . $id); my $cfs = $queue->child( 'custom-fields' => title => loc('Custom Fields') ); my $ticket_cfs = $cfs->child( 'tickets' => title => loc('Tickets'), path => '/Admin/Queues/CustomFields.html?SubType=RT::Ticket&id=' . $id ); my $txn_cfs = $cfs->child( 'transactions' => title => loc('Transactions'), path => '/Admin/Queues/CustomFields.html?SubType=RT::Ticket-RT::Transaction&id='.$id ); $queue->child( 'group-rights' => title => loc('Group Rights'), path => "/Admin/Queues/GroupRights.html?id=".$id ); $queue->child( 'user-rights' => title => loc('User Rights'), path => "/Admin/Queues/UserRights.html?id=" . $id ); $queue->child( 'history' => title => loc('History'), path => "/Admin/Queues/History.html?id=" . $id ); $queue->child( 'default-values' => title => loc('Default Values'), path => "/Admin/Queues/DefaultValues.html?id=" . $id ); $m->callback( CallbackName => 'PrivilegedQueue', queue_id => $id, page_menu => $queue); } } } if ( $request_path =~ m{^(/Admin/Users|/User/(Summary|History)\.html)} and $admin->child("users") ) { if ( $DECODED_ARGS->{'id'} && $DECODED_ARGS->{'id'} =~ /^\d+$/ ) { my $id = $DECODED_ARGS->{'id'}; my $obj = RT::User->new( $session{'CurrentUser'} ); $obj->Load($id); if ( $obj and $obj->id ) { my $tabs = PageMenu(); $tabs->child( basics => title => loc('Basics'), path => "/Admin/Users/Modify.html?id=" . $id ); $tabs->child( memberships => title => loc('Memberships'), path => "/Admin/Users/Memberships.html?id=" . $id ); $tabs->child( history => title => loc('History'), path => "/Admin/Users/History.html?id=" . $id ); $tabs->child( 'my-rt' => title => loc('RT at a glance'), path => "/Admin/Users/MyRT.html?id=" . $id ); $tabs->child( 'dashboards-in-menu' => title => loc('Dashboards in menu'), path => '/Admin/Users/DashboardsInMenu.html?id=' . $id, ); if ( RT->Config->Get('Crypt')->{'Enable'} ) { $tabs->child( keys => title => loc('Private keys'), path => "/Admin/Users/Keys.html?id=" . $id ); } $tabs->child( 'summary' => title => loc('User Summary'), path => "/User/Summary.html?id=" . $id ); } } } if ( $request_path =~ m{^/Admin/Groups} ) { if ( $DECODED_ARGS->{'id'} && $DECODED_ARGS->{'id'} =~ /^\d+$/ ) { my $id = $DECODED_ARGS->{'id'}; my $obj = RT::Group->new( $session{'CurrentUser'} ); $obj->Load($id); if ( $obj and $obj->id ) { my $tabs = PageMenu(); $tabs->child( basics => title => loc('Basics'), path => "/Admin/Groups/Modify.html?id=" . $obj->id ); $tabs->child( members => title => loc('Members'), path => "/Admin/Groups/Members.html?id=" . $obj->id ); $tabs->child( memberships => title => loc('Memberships'), path => "/Admin/Groups/Memberships.html?id=" . $obj->id ); $tabs->child( 'group-rights' => title => loc('Group Rights'), path => "/Admin/Groups/GroupRights.html?id=" . $obj->id ); $tabs->child( 'user-rights' => title => loc('User Rights'), path => "/Admin/Groups/UserRights.html?id=" . $obj->id ); $tabs->child( history => title => loc('History'), path => "/Admin/Groups/History.html?id=" . $obj->id ); } } } if ( $request_path =~ m{^/Admin/CustomFields/} ) { if ( $DECODED_ARGS->{'id'} && $DECODED_ARGS->{'id'} =~ /^\d+$/ ) { my $id = $DECODED_ARGS->{'id'}; my $obj = RT::CustomField->new( $session{'CurrentUser'} ); $obj->Load($id); if ( $obj and $obj->id ) { my $tabs = PageMenu(); $tabs->child( basics => title => loc('Basics'), path => "/Admin/CustomFields/Modify.html?id=".$id ); $tabs->child( 'group-rights' => title => loc('Group Rights'), path => "/Admin/CustomFields/GroupRights.html?id=" . $id ); $tabs->child( 'user-rights' => title => loc('User Rights'), path => "/Admin/CustomFields/UserRights.html?id=" . $id ); unless ( $obj->IsOnlyGlobal ) { $tabs->child( 'applies-to' => title => loc('Applies to'), path => "/Admin/CustomFields/Objects.html?id=" . $id ); } } } } if ( $request_path =~ m{^/Admin/CustomRoles} ) { if ( $DECODED_ARGS->{'id'} && $DECODED_ARGS->{'id'} =~ /^\d+$/ ) { my $id = $DECODED_ARGS->{'id'}; my $obj = RT::CustomRole->new( $session{'CurrentUser'} ); $obj->Load($id); if ( $obj and $obj->id ) { my $tabs = PageMenu(); $tabs->child( basics => title => loc('Basics'), path => "/Admin/CustomRoles/Modify.html?id=".$id ); $tabs->child( 'applies-to' => title => loc('Applies to'), path => "/Admin/CustomRoles/Objects.html?id=" . $id ); } } } if ( $request_path =~ m{^/Admin/Scrips/} ) { if ( $m->request_args->{'id'} && $m->request_args->{'id'} =~ /^\d+$/ ) { my $id = $m->request_args->{'id'}; my $obj = RT::Scrip->new( $session{'CurrentUser'} ); $obj->Load($id); my $tabs = PageMenu(); my ( $admin_cat, $create_path_arg, $from_query_param ); my $from_arg = $DECODED_ARGS->{'From'} || q{}; my ($from_queue) = $from_arg =~ /^(\d+)$/; if ( $from_queue ) { $admin_cat = "Queues/Scrips.html?id=$from_queue"; $create_path_arg = "?Queue=$from_queue"; $from_query_param = "&From=$from_queue"; } elsif ( $from_arg eq 'Global' ) { $admin_cat = 'Global/Scrips.html'; $create_path_arg = '?Global=1'; $from_query_param = '&From=Global'; } else { $admin_cat = 'Scrips'; $from_query_param = $create_path_arg = q{}; } my $scrips = $tabs->child( scrips => title => loc('Scrips'), path => "/Admin/${admin_cat}" ); $scrips->child( select => title => loc('Select'), path => "/Admin/${admin_cat}" ); $scrips->child( create => title => loc('Create'), path => "/Admin/Scrips/Create.html${create_path_arg}" ); $tabs->child( basics => title => loc('Basics') => path => "/Admin/Scrips/Modify.html?id=" . $id . $from_query_param ); $tabs->child( 'applies-to' => title => loc('Applies to'), path => "/Admin/Scrips/Objects.html?id=" . $id . $from_query_param ); } elsif ( $request_path =~ m{^/Admin/Scrips/(index\.html)?$} ) { PageMenu->child( select => title => loc('Select') => path => "/Admin/Scrips/" ); PageMenu->child( create => title => loc('Create') => path => "/Admin/Scrips/Create.html" ); } elsif ( $request_path =~ m{^/Admin/Scrips/Create\.html$} ) { my ($queue) = $DECODED_ARGS->{'Queue'} && $DECODED_ARGS->{'Queue'} =~ /^(\d+)$/; my $global_arg = $DECODED_ARGS->{'Global'}; if ($queue) { PageMenu->child( select => title => loc('Select') => path => "/Admin/Queues/Scrips.html?id=$queue" ); PageMenu->child( create => title => loc('Create') => path => "/Admin/Scrips/Create.html?Queue=$queue" ); } elsif ($global_arg) { PageMenu->child( select => title => loc('Select') => path => "/Admin/Global/Scrips.html" ); PageMenu->child( create => title => loc('Create') => path => "/Admin/Scrips/Create.html?Global=1" ); } else { PageMenu->child( select => title => loc('Select') => path => "/Admin/Scrips" ); PageMenu->child( create => title => loc('Create') => path => "/Admin/Scrips/Create.html" ); } } } if ( $request_path =~ m{^/Admin/Global/Scrips\.html} ) { my $tabs = PageMenu(); $tabs->child( select => title => loc('Select'), path => "/Admin/Global/Scrips.html" ); $tabs->child( create => title => loc('Create'), path => "/Admin/Scrips/Create.html?Global=1" ); } if ( $request_path =~ m{^/Admin(?:/Global)?/Conditions} ) { my $tabs = PageMenu(); $tabs->child( select => title => loc('Select'), path => "/Admin/Global/Conditions.html" ); $tabs->child( create => title => loc('Create'), path => "/Admin/Conditions/Create.html" ); } if ( $request_path =~ m{^/Admin(?:/Global)?/Actions} ) { my $tabs = PageMenu(); $tabs->child( select => title => loc('Select'), path => "/Admin/Global/Actions.html" ); $tabs->child( create => title => loc('Create'), path => "/Admin/Actions/Create.html" ); } if ( $request_path =~ m{^/Admin/Global/Templates?\.html} ) { my $tabs = PageMenu(); $tabs->child( select => title => loc('Select'), path => "/Admin/Global/Templates.html" ); $tabs->child( create => title => loc('Create'), path => "/Admin/Global/Template.html?Create=1" ); } if ( $request_path =~ m{^/Admin/Articles/Classes/} ) { my $tabs = PageMenu(); if ( my $id = $DECODED_ARGS->{'id'} ) { my $obj = RT::Class->new( $session{'CurrentUser'} ); $obj->Load($id); if ( $obj and $obj->id ) { my $section = $tabs->child( select => title => loc("Classes"), path => "/Admin/Articles/Classes/" ); $section->child( select => title => loc('Select'), path => "/Admin/Articles/Classes/" ); $section->child( create => title => loc('Create'), path => "/Admin/Articles/Classes/Modify.html?Create=1" ); $tabs->child( basics => title => loc('Basics'), path => "/Admin/Articles/Classes/Modify.html?id=".$id ); $tabs->child( topics => title => loc('Topics'), path => "/Admin/Articles/Classes/Topics.html?id=".$id ); $tabs->child( 'custom-fields' => title => loc('Custom Fields'), path => "/Admin/Articles/Classes/CustomFields.html?id=".$id ); $tabs->child( 'group-rights' => title => loc('Group Rights'), path => "/Admin/Articles/Classes/GroupRights.html?id=".$id ); $tabs->child( 'user-rights' => title => loc('User Rights'), path => "/Admin/Articles/Classes/UserRights.html?id=".$id ); $tabs->child( 'applies-to' => title => loc('Applies to'), path => "/Admin/Articles/Classes/Objects.html?id=$id" ); } } else { $tabs->child( select => title => loc('Select'), path => "/Admin/Articles/Classes/" ); $tabs->child( create => title => loc('Create'), path => "/Admin/Articles/Classes/Modify.html?Create=1" ); } } }; my $build_main_nav = sub { if ($request_path =~ m{^/Asset/}) { PageWidgets()->child( asset_search => raw_html => $m->scomp('/Asset/Elements/Search') ); } else { PageWidgets()->child( simple_search => raw_html => $m->scomp('SimpleSearch') ); PageWidgets()->child( create_ticket => raw_html => $m->scomp('CreateTicket') ); } my $home = Menu->child( home => title => loc('Homepage'), path => '/' ); unless ($session{'dashboards_in_menu'}) { my $dashboards_in_menu = $session{CurrentUser}->UserObj->Preferences( 'DashboardsInMenu', {}, ); unless ($dashboards_in_menu->{dashboards}) { my ($default_dashboards) = RT::System->new( $session{'CurrentUser'} ) ->Attributes ->Named('DashboardsInMenu'); if ($default_dashboards) { $dashboards_in_menu = $default_dashboards->Content; } } $session{'dashboards_in_menu'} = $dashboards_in_menu->{dashboards} || []; } my @dashboards; for my $id ( @{$session{'dashboards_in_menu'}} ) { my $dash = RT::Dashboard->new( $session{CurrentUser} ); my ( $status, $msg ) = $dash->LoadById($id); if ( $status ) { push @dashboards, $dash; } else { $RT::Logger->debug( "Failed to load dashboard $id: $msg, removing from menu" ); $home->RemoveDashboardMenuItem( DashboardId => $id, CurrentUser => $session{CurrentUser}->UserObj ); @{$session{'dashboards_in_menu'}} = grep { $_ != $id } @{$session{'dashboards_in_menu'}}; } } my $dashes = Menu()->child('home'); if (@dashboards) { for my $dash (@dashboards) { $home->child( 'dashboard-' . $dash->id, title => $dash->Name, path => '/Dashboards/' . $dash->id . '/' . $dash->Name ); } } $dashes->child( edit => title => loc('Update This Menu'), path => 'Prefs/DashboardsInMenu.html' ); $dashes->child( more => title => loc('All Dashboards'), path => 'Dashboards/index.html' ); my $dashboard = RT::Dashboard->new( $session{CurrentUser} ); if ( $dashboard->CurrentUserCanCreateAny ) { $dashes->child('dashboard_create' => title => loc('New Dashboard'), path => "/Dashboards/Modify.html?Create=1" ); } my $search = Menu->child( search => title => loc('Search'), path => '/Search/Simple.html' ); my $tickets = $search->child( tickets => title => loc('Tickets'), path => '/Search/Build.html' ); $tickets->child( simple => title => loc('Simple Search'), path => "/Search/Simple.html" ); $tickets->child( new => title => loc('New Search'), path => "/Search/Build.html?NewQuery=1" ); my $recents = $tickets->child( recent => title => loc('Recently Viewed')); for ($session{CurrentUser}->RecentlyViewedTickets) { my ($ticketId, $timestamp) = @$_; my $ticket = RT::Ticket->new($session{CurrentUser}); $ticket->Load($ticketId); if ($ticket->Id) { my $title = $ticket->Subject || loc("(No subject)"); if (length $title > 50) { $title = substr($title, 0, 47); $title =~ s/\s+$//; $title .= "..."; } $title = "#$ticketId: " . $title; $recents->child( "$ticketId" => title => $title, path => "/Ticket/Display.html?id=" . $ticket->Id ); } } $search->child( articles => title => loc('Articles'), path => "/Articles/Article/Search.html" ) if $session{CurrentUser}->HasRight( Right => 'ShowArticlesMenu', Object => RT->System ); $search->child( users => title => loc('Users'), path => "/User/Search.html" ); $search->child( assets => title => loc("Assets"), path => "/Asset/Search/" ) if $session{CurrentUser}->HasRight( Right => 'ShowAssetsMenu', Object => RT->System ); my $reports = Menu->child( reports => title => loc('Reports'), description => loc('Reports summarizing ticket resolution and status'), path => loc('/Reports'), ); $reports->child( resolvedbyowner => title => loc('Resolved by owner'), path => '/Reports/ResolvedByOwner.html', description => loc('Examine tickets resolved in a queue, grouped by owner'), ); $reports->child( resolvedindaterange => title => loc('Resolved in date range'), path => '/Reports/ResolvedByDates.html', description => loc('Examine tickets resolved in a queue between two dates'), ); $reports->child( createdindaterange => title => loc('Created in a date range'), path => '/Reports/CreatedByDates.html', description => loc('Examine tickets created in a queue between two dates'), ); if ($session{CurrentUser}->HasRight( Right => 'ShowArticlesMenu', Object => RT->System )) { my $articles = Menu->child( articles => title => loc('Articles'), path => "/Articles/index.html"); $articles->child( articles => title => loc('Overview'), path => "/Articles/index.html" ); $articles->child( topics => title => loc('Topics'), path => "/Articles/Topics.html" ); $articles->child( create => title => loc('Create'), path => "/Articles/Article/PreCreate.html" ); $articles->child( search => title => loc('Search'), path => "/Articles/Article/Search.html" ); } if ($session{CurrentUser}->HasRight( Right => 'ShowAssetsMenu', Object => RT->System )) { my $assets = Menu->child( "assets", title => loc("Assets"), path => "/Asset/Search/" ); $assets->child( "create", title => loc("Create"), path => "/Asset/CreateInCatalog.html" ); $assets->child( "search", title => loc("Search"), path => "/Asset/Search/" ); } my $tools = Menu->child( tools => title => loc('Tools'), path => '/Tools/index.html' ); $tools->child( my_day => title => loc('My Day'), description => loc('Easy updating of your open tickets'), path => '/Tools/MyDay.html', ); if ( RT->Config->Get('EnableReminders') ) { $tools->child( my_reminders => title => loc('My Reminders'), description => loc('Easy viewing of your reminders'), path => '/Tools/MyReminders.html', ); } if ( $session{'CurrentUser'}->HasRight( Right => 'ShowApprovalsTab', Object => RT->System ) ) { $tools->child( approval => title => loc('Approval'), description => loc('My Approvals'), path => '/Approvals/', ); } if ( $session{'CurrentUser'}->HasRight( Right => 'ShowConfigTab', Object => RT->System ) ) { $build_admin_menu->(Menu()); } my $username = '' . $m->interp->apply_escapes($session{'CurrentUser'}->Name, 'h') . ''; my $about_me = Menu->child( 'preferences' => title => loc('Logged in as [_1]', $username), escape_title => 0, path => '/User/Summary.html?id=' . $session{CurrentUser}->id, sort_order => 99, ); if ( $session{'CurrentUser'}->UserObj && $session{'CurrentUser'}->HasRight( Right => 'ModifySelf', Object => RT->System )) { my $settings = $about_me->child( settings => title => loc('Settings'), path => '/Prefs/Other.html' ); $settings->child( options => title => loc('Preferences'), path => '/Prefs/Other.html' ); $settings->child( about_me => title => loc('About me'), path => '/Prefs/AboutMe.html' ); $settings->child( search_options => title => loc('Search options'), path => '/Prefs/SearchOptions.html' ); $settings->child( myrt => title => loc('RT at a glance'), path => '/Prefs/MyRT.html' ); $settings->child( dashboards_in_menu => title => loc('Dashboards in menu'), path => '/Prefs/DashboardsInMenu.html', ); $settings->child( queue_list => title => loc('Queue list'), path => '/Prefs/QueueList.html' ); my $search_menu = $settings->child( 'saved-searches' => title => loc('Saved Searches') ); my $searches = [ $m->comp( "/Search/Elements/SearchesForObject", Object => RT::System->new( $session{'CurrentUser'} )) ]; my $i = 0; for my $search (@$searches) { $search_menu->child( "search-" . $i++ => title => $search->[1], path => "/Prefs/Search.html?" . $query_string->( name => ref( $search->[2] ) . '-' . $search->[2]->Id ), ); } } if ( $session{'CurrentUser'}->Name && ( !RT->Config->Get('WebRemoteUserAuth') || RT->Config->Get('WebFallbackToRTLogin') )) { $about_me->child( logout => title => loc('Logout'), path => '/NoAuth/Logout.html' ); } if ( $request_path =~ m{^/Dashboards/(\d+)?}) { if ( my $id = ( $1 || $DECODED_ARGS->{'id'} ) ) { my $obj = RT::Dashboard->new( $session{'CurrentUser'} ); $obj->LoadById($id); if ( $obj and $obj->id ) { my $tabs = PageMenu; $tabs->child( basics => title => loc('Basics'), path => "/Dashboards/Modify.html?id=" . $obj->id); $tabs->child( content => title => loc('Content'), path => "/Dashboards/Queries.html?id=" . $obj->id); $tabs->child( subscription => title => loc('Subscription'), path => "/Dashboards/Subscription.html?id=" . $obj->id) if $obj->CurrentUserCanSubscribe; $tabs->child( show => title => loc('Show'), path => "/Dashboards/" . $obj->id . "/" . $obj->Name) } } } if ( $request_path =~ m{^/Ticket/} ) { if ( ( $DECODED_ARGS->{'id'} || '' ) =~ /^(\d+)$/ ) { my $id = $1; my $obj = RT::Ticket->new( $session{'CurrentUser'} ); $obj->Load($id); if ( $obj and $obj->id ) { my $actions = PageMenu()->child( actions => title => loc('Actions'), sort_order => 95 ); my %can = %{ $obj->CurrentUser->PrincipalObj->HasRights( Object => $obj ) }; $can{'_ModifyOwner'} = $obj->CurrentUserCanSetOwner(); my $can = sub { unless ($_[0] eq 'ExecuteCode') { return $can{$_[0]} || $can{'SuperUser'}; } else { return !RT->Config->Get('DisallowExecuteCode') && ( $can{'ExecuteCode'} || $can{'SuperUser'} ); } }; my $tabs = PageMenu(); $tabs->child( bookmark => raw_html => $m->scomp( '/Ticket/Elements/Bookmark', id => $id ), sort_order => 98 ); if ($can->('ModifyTicket')) { $tabs->child( timer => raw_html => $m->scomp( '/Ticket/Elements/PopupTimerLink', id => $id ), sort_order => 99 ); } $tabs->child( display => title => loc('Display'), path => "/Ticket/Display.html?id=" . $id ); $tabs->child( history => title => loc('History'), path => "/Ticket/History.html?id=" . $id ); # comment out until we can do it for an individual custom field #if ( $can->('ModifyTicket') || $can->('ModifyCustomField') ) { $tabs->child( basics => title => loc('Basics'), path => "/Ticket/Modify.html?id=" . $id ); #} if ( $can->('ModifyTicket') || $can->('_ModifyOwner') || $can->('Watch') || $can->('WatchAsAdminCc') ) { $tabs->child( people => title => loc('People'), path => "/Ticket/ModifyPeople.html?id=" . $id ); } if ( $can->('ModifyTicket') ) { $tabs->child( dates => title => loc('Dates'), path => "/Ticket/ModifyDates.html?id=" . $id ); $tabs->child( links => title => loc('Links'), path => "/Ticket/ModifyLinks.html?id=" . $id ); } #if ( $can->('ModifyTicket') || $can->('ModifyCustomField') || $can->('_ModifyOwner') ) { $tabs->child( jumbo => title => loc('Jumbo'), path => "/Ticket/ModifyAll.html?id=" . $id ); #} if ( RT->Config->Get('EnableReminders') ) { $tabs->child( reminders => title => loc('Reminders'), path => "/Ticket/Reminders.html?id=" . $id ); } if ( $can->('ModifyTicket') or $can->('ReplyToTicket') ) { $actions->child( reply => title => loc('Reply'), path => "/Ticket/Update.html?Action=Respond;id=" . $id ); } if ( $can->('ModifyTicket') or $can->('CommentOnTicket') ) { $actions->child( comment => title => loc('Comment'), path => "/Ticket/Update.html?Action=Comment;id=" . $id ); } if ( $can->('ForwardMessage') ) { $actions->child( forward => title => loc('Forward'), path => "/Ticket/Forward.html?id=" . $id ); } my $hide_resolve_with_deps = RT->Config->Get('HideResolveActionsWithDependencies') && $obj->HasUnresolvedDependencies; my $current = $obj->Status; my $lifecycle = $obj->LifecycleObj; my $i = 1; foreach my $info ( $lifecycle->Actions($current) ) { my $next = $info->{'to'}; next unless $lifecycle->IsTransition( $current => $next ); my $check = $lifecycle->CheckRight( $current => $next ); next unless $can->($check); next if $hide_resolve_with_deps && $lifecycle->IsInactive($next) && !$lifecycle->IsInactive($current); my $action = $info->{'update'} || ''; my $url = '/Ticket/'; $url .= "Update.html?". $query_string->( $action ? (Action => $action) : (SubmitTicket => 1, Status => $next), DefaultStatus => $next, id => $id, ); my $key = $info->{'label'} || ucfirst($next); $actions->child( $key => title => loc( $key ), path => $url); } my ($can_take, $tmsg) = $obj->CurrentUserCanSetOwner( Type => 'Take' ); my ($can_steal, $smsg) = $obj->CurrentUserCanSetOwner( Type => 'Steal' ); my ($can_untake, $umsg) = $obj->CurrentUserCanSetOwner( Type => 'Untake' ); if ( $can_take ){ $actions->child( take => title => loc('Take'), path => "/Ticket/Display.html?Action=Take;id=" . $id ); } elsif ( $can_steal ){ $actions->child( steal => title => loc('Steal'), path => "/Ticket/Display.html?Action=Steal;id=" . $id ); } elsif ( $can_untake ){ $actions->child( untake => title => loc('Untake'), path => "/Ticket/Display.html?Action=Untake;id=" . $id ); } # TODO needs a "Can extract article into a class applied to this queue" check $actions->child( 'extract-article' => title => loc('Extract Article'), path => "/Articles/Article/ExtractIntoClass.html?Ticket=".$obj->id, ) if $session{CurrentUser}->HasRight( Right => 'ShowArticlesMenu', Object => RT->System ); if ( defined $session{"tickets"} ) { # we have to update session data if we get new ItemMap my $updatesession = 1 unless ( $session{"tickets"}->{'item_map'} ); my $item_map = $session{"tickets"}->ItemMap; if ($updatesession) { $session{"tickets"}->PrepForSerialization(); } my $search = Menu()->child('search')->child('tickets'); # Don't display prev links if we're on the first ticket if ( $item_map->{$id}->{prev} ) { $search->child( first => title => '<< ' . loc('First'), class => "nav", path => "/Ticket/Display.html?id=" . $item_map->{first}); $search->child( prev => title => '< ' . loc('Prev'), class => "nav", path => "/Ticket/Display.html?id=" . $item_map->{$id}->{prev}); } # Don't display next links if we're on the last ticket if ( $item_map->{$id}->{next} ) { $search->child( next => title => loc('Next') . ' >', class => "nav", path => "/Ticket/Display.html?id=" . $item_map->{$id}->{next}); if ( $item_map->{last} ) { $search->child( last => title => loc('Last') . ' >>', class => "nav", path => "/Ticket/Display.html?id=" . $item_map->{last}); } } } } } } # Scope here so we can share in the Privileged callback my $args = ''; my $has_query = ''; if ( ( $request_path =~ m{^/(?:Ticket|Search)/} && $request_path !~ m{^/Search/Simple\.html} ) || ( $request_path =~ m{^/Search/Simple\.html} && $DECODED_ARGS->{'q'} ) ) { my $search = Menu()->child('search')->child('tickets'); my $current_search = $session{"CurrentSearchHash"} || {}; my $search_id = $DECODED_ARGS->{'SavedSearchLoad'} || $DECODED_ARGS->{'SavedSearchId'} || $current_search->{'SearchId'} || ''; my $chart_id = $DECODED_ARGS->{'SavedChartSearchId'} || $current_search->{SavedChartSearchId}; $has_query = 1 if ( $DECODED_ARGS->{'Query'} or $current_search->{'Query'} ); my %query_args; my %fallback_query_args = ( SavedSearchId => ( $search_id eq 'new' ) ? undef : $search_id, SavedChartSearchId => $chart_id, ( map { my $p = $_; $p => $DECODED_ARGS->{$p} || $current_search->{$p} } qw(Query Format OrderBy Order Page) ), RowsPerPage => ( defined $DECODED_ARGS->{'RowsPerPage'} ? $DECODED_ARGS->{'RowsPerPage'} : $current_search->{'RowsPerPage'} ), ); if ($QueryString) { $args = '?' . $QueryString; } else { my %final_query_args = (); # key => callback to avoid unnecessary work for my $param (keys %fallback_query_args) { $final_query_args{$param} = defined($QueryArgs->{$param}) ? $QueryArgs->{$param} : $fallback_query_args{$param}; } for my $field (qw(Order OrderBy)) { if ( ref( $final_query_args{$field} ) eq 'ARRAY' ) { $final_query_args{$field} = join( "|", @{ $final_query_args{$field} } ); } elsif (not defined $final_query_args{$field}) { delete $final_query_args{$field}; } else { $final_query_args{$field} ||= ''; } } $args = '?' . $query_string->(%final_query_args); } my $current_search_menu; if ( $request_path =~ m{^/Ticket} ) { $current_search_menu = $search->child( current_search => title => loc('Current Search') ); $current_search_menu->path("/Search/Results.html$args") if $has_query; } else { $current_search_menu = PageMenu(); } $current_search_menu->child( edit_search => title => loc('Edit Search'), path => "/Search/Build.html" . ( ($has_query) ? $args : '' ) ); $current_search_menu->child( advanced => title => loc('Advanced'), path => "/Search/Edit.html$args" ); if ($has_query) { $current_search_menu->child( results => title => loc('Show Results'), path => "/Search/Results.html$args" ); } if ( $has_query ) { $current_search_menu->child( bulk => title => loc('Bulk Update'), path => "/Search/Bulk.html$args" ); $current_search_menu->child( chart => title => loc('Chart'), path => "/Search/Chart.html$args" ); my $more = $current_search_menu->child( more => title => loc('Feeds') ); $more->child( spreadsheet => title => loc('Spreadsheet'), path => "/Search/Results.tsv$args" ); my %rss_data = map { $_ => $QueryArgs->{$_} || $fallback_query_args{$_} || '' } qw(Query Order OrderBy); my $RSSQueryString = "?" . $query_string->( Query => $rss_data{Query}, Order => $rss_data{Order}, OrderBy => $rss_data{OrderBy} ); my $RSSPath = join '/', map $m->interp->apply_escapes( $_, 'u' ), $session{'CurrentUser'}->UserObj->Name, $session{'CurrentUser'} ->UserObj->GenerateAuthString( $rss_data{Query} . $rss_data{Order} . $rss_data{OrderBy} ); $more->child( rss => title => loc('RSS'), path => "/NoAuth/rss/$RSSPath/$RSSQueryString"); my $ical_path = join '/', map $m->interp->apply_escapes($_, 'u'), $session{'CurrentUser'}->UserObj->Name, $session{'CurrentUser'}->UserObj->GenerateAuthString( $rss_data{Query} ), $rss_data{Query}; $more->child( ical => title => loc('iCal'), path => '/NoAuth/iCal/'.$ical_path); if ($request_path =~ m{^/Search/Results.html} && #XXX TODO better abstraction $session{'CurrentUser'}->HasRight( Right => 'SuperUser', Object => RT->System )) { my $shred_args = $query_string->( Search => 1, Plugin => 'Tickets', 'Tickets:query' => $rss_data{'Query'}, 'Tickets:limit' => $QueryArgs->{'Rows'}, ); $more->child( shredder => title => loc('Shredder'), path => '/Admin/Tools/Shredder/?' . $shred_args); } } } if ( $request_path =~ m{^/Article/} ) { if ( $DECODED_ARGS->{'id'} && $DECODED_ARGS->{'id'} =~ /^\d+$/ ) { my $id = $DECODED_ARGS->{'id'}; my $tabs = PageMenu(); $tabs->child( display => title => loc('Display'), path => "/Articles/Article/Display.html?id=".$id ); $tabs->child( history => title => loc('History'), path => "/Articles/Article/History.html?id=".$id ); $tabs->child( modify => title => loc('Modify'), path => "/Articles/Article/Edit.html?id=".$id ); } } if ( $request_path =~ m{^/Articles/} ) { PageWidgets()->child( article_search => raw_html => $m->scomp('/Articles/Elements/GotoArticle') ); PageWidgets()->delete('create_ticket'); PageWidgets()->delete('simple_search'); my $tabs = PageMenu(); $tabs->child( search => title => loc("Search"), path => "/Articles/Article/Search.html" ); $tabs->child( create => title => loc("New Article" ), path => "/Articles/Article/PreCreate.html" ); if ( $request_path =~ m{^/Articles/Article/} and ( $DECODED_ARGS->{'id'} || '' ) =~ /^(\d+)$/ ) { my $id = $1; my $obj = RT::Article->new( $session{'CurrentUser'} ); $obj->Load($id); if ( $obj and $obj->id ) { $tabs->child( display => title => loc("Display"), path => "/Articles/Article/Display.html?id=" . $id ); $tabs->child( history => title => loc('History'), path => '/Articles/Article/History.html?id=' . $id ); if ( $obj->CurrentUserHasRight('ModifyArticle') ) { $tabs->child(modify => title => loc('Modify'), path => '/Articles/Article/Edit.html?id=' . $id ); } } } } if ($request_path =~ m{^/Asset/} and $DECODED_ARGS->{id} and $DECODED_ARGS->{id} !~ /\D/) { my $page = PageMenu(); my $id = $DECODED_ARGS->{id}; my $asset = RT::Asset->new( $session{CurrentUser} ); $asset->Load($id); if ($asset->id) { $page->child("display", title => loc("Display"), path => "/Asset/Display.html?id=$id"); $page->child("history", title => loc("History"), path => "/Asset/History.html?id=$id"); $page->child("basics", title => loc("Basics"), path => "/Asset/Modify.html?id=$id"); $page->child("links", title => loc("Links"), path => "/Asset/ModifyLinks.html?id=$id"); $page->child("people", title => loc("People"), path => "/Asset/ModifyPeople.html?id=$id"); $page->child("dates", title => loc("Dates"), path => "/Asset/ModifyDates.html?id=$id"); for my $grouping (RT::CustomField->CustomGroupings($asset)) { my $cfs = $asset->CustomFields; $cfs->LimitToGrouping( $asset => $grouping ); next unless $cfs->Count; $page->child( "cf-grouping-$grouping", title => loc($grouping), path => "/Asset/ModifyCFs.html?id=$id;Grouping=" . $m->interp->apply_escapes($grouping, 'u'), ); } my $actions = $page->child("actions", title => loc("Actions")); $actions->child("create-linked-ticket", title => loc("Create linked ticket"), path => "/Asset/CreateLinkedTicket.html?Asset=$id"); my $status = $asset->Status; my $lifecycle = $asset->LifecycleObj; for my $action ( $lifecycle->Actions($status) ) { my $next = $action->{'to'}; next unless $lifecycle->IsTransition( $status => $next ); my $check = $lifecycle->CheckRight( $status => $next ); next unless $asset->CurrentUserHasRight($check); my $label = $action->{'label'} || ucfirst($next); $actions->child( $label, title => loc($label), path => "/Asset/Modify.html?id=$id;Update=1;DisplayAfter=1;Status=" . $m->interp->apply_escapes($next, 'u'), class => "asset-lifecycle-action", attributes => { 'data-current-status' => $status, 'data-next-status' => $next, }, ); } } } elsif ($request_path =~ m{^/Asset/Search/}) { my $page = PageMenu(); my %search = map @{$_}, grep defined $_->[1] && length $_->[1], map {ref $DECODED_ARGS->{$_} ? [$_, $DECODED_ARGS->{$_}[0]] : [$_, $DECODED_ARGS->{$_}] } grep /^(?:q|SearchAssets|!?(Name|Description|Catalog|Status|Role\..+|CF\..+)|Order(?:By)?|Page)$/, keys %$DECODED_ARGS; if ( $request_path =~ /Bulk/) { $page->child('search', title => loc('Show Results'), path => '/Asset/Search/?' . (keys %search ? $query_string->(%search) : ''), ); } else { $page->child('bulk', title => loc('Bulk Update'), path => '/Asset/Search/Bulk.html?' . (keys %search ? $query_string->(%search) : ''), ); } $page->child('csv', title => loc('Download Spreadsheet'), path => '/Asset/Search/Results.tsv?' . (keys %search ? $query_string->(%search) : ''), ); } elsif ($request_path =~ m{^/Admin/Global/CustomFields/Catalog-Assets\.html$}) { my $page = PageMenu(); $page->child("create", title => loc("Create New"), path => "/Admin/CustomFields/Modify.html?Create=1;LookupType=" . RT::Asset->CustomFieldLookupType); } elsif ($request_path =~ m{^/Admin/CustomFields(/|/index\.html)?$} and $DECODED_ARGS->{'Type'} and $DECODED_ARGS->{'Type'} eq RT::Asset->CustomFieldLookupType) { my $page = PageMenu(); $page->child("create")->path( $page->child("create")->path . "&LookupType=" . RT::Asset->CustomFieldLookupType ); } elsif ($request_path =~ m{^/Admin/Assets/Catalogs/}) { my $page = PageMenu(); my $actions = $request_path =~ m{/((index|Create)\.html)?$} ? $page : $page->child("catalogs", title => loc("Catalogs"), path => "/Admin/Assets/Catalogs/"); $actions->child("select", title => loc("Select"), path => "/Admin/Assets/Catalogs/"); $actions->child("create", title => loc("Create"), path => "/Admin/Assets/Catalogs/Create.html"); my $catalog = RT::Catalog->new( $session{CurrentUser} ); $catalog->Load($DECODED_ARGS->{id}) if $DECODED_ARGS->{id}; if ($catalog->id and $catalog->CurrentUserCanSee) { my $query = "id=" . $catalog->id; $page->child("modify", title => loc("Basics"), path => "/Admin/Assets/Catalogs/Modify.html?$query"); $page->child("people", title => loc("Roles"), path => "/Admin/Assets/Catalogs/Roles.html?$query"); $page->child("cfs", title => loc("Asset Custom Fields"), path => "/Admin/Assets/Catalogs/CustomFields.html?$query"); $page->child("group-rights", title => loc("Group Rights"), path => "/Admin/Assets/Catalogs/GroupRights.html?$query"); $page->child("user-rights", title => loc("User Rights"), path => "/Admin/Assets/Catalogs/UserRights.html?$query"); $page->child("default-values", title => loc('Default Values'), path => "/Admin/Assets/Catalogs/DefaultValues.html?$query"); } } if ( $request_path =~ m{^/User/(Summary|History)\.html} ) { if (PageMenu()->child('summary')) { # Already set up from having AdminUser and ShowConfigTab; # but rename "Basics" to "Edit" in this context PageMenu()->child( 'basics' )->title( loc('Edit') ); } elsif ( $session{'CurrentUser'}->HasRight( Object => $RT::System, Right => 'ShowUserHistory' ) ) { PageMenu()->child( display => title => loc('Summary'), path => '/User/Summary.html?id=' . $DECODED_ARGS->{'id'} ); PageMenu()->child( history => title => loc('History'), path => '/User/History.html?id=' . $DECODED_ARGS->{'id'} ); } } if ( $request_path =~ /^\/(?:index.html|$)/ ) { PageMenu()->child( edit => title => loc('Edit'), path => '/Prefs/MyRT.html' ); } $m->callback( CallbackName => 'Privileged', Path => $request_path, Search_Args => $args, Has_Query => $has_query, ARGSRef => \%ARGS ); }; my $build_selfservice_nav = sub { my $queues = RT::Queues->new( $session{'CurrentUser'} ); $queues->UnLimit; my $queue_count = 0; my $queue_id; while ( my $queue = $queues->Next ) { next unless $queue->CurrentUserHasRight('CreateTicket'); $queue_id = $queue->id; $queue_count++; last if ( $queue_count > 1 ); } if ( $queue_count > 1 ) { Menu->child( new => title => loc('New ticket'), path => '/SelfService/CreateTicketInQueue.html' ); } elsif ( $queue_id ) { Menu->child( new => title => loc('New ticket'), path => '/SelfService/Create.html?Queue=' . $queue_id ); } my $tickets = Menu->child( tickets => title => loc('Tickets'), path => '/SelfService/' ); $tickets->child( open => title => loc('Open tickets'), path => '/SelfService/' ); $tickets->child( closed => title => loc('Closed tickets'), path => '/SelfService/Closed.html' ); Menu->child( "assets", title => loc("Assets"), path => "/SelfService/Asset/" ) if $session{CurrentUser}->HasRight( Right => 'ShowAssetsMenu', Object => RT->System ); my $username = '' . $m->interp->apply_escapes($session{'CurrentUser'}->Name, 'h') . ''; my $about_me = Menu->child( preferences => title => loc('Logged in as [_1]', $username), escape_title => 0, sort_order => 99, ); if ( ( RT->Config->Get('SelfServiceUserPrefs') || '' ) eq 'view-info' || $session{'CurrentUser'}->HasRight( Right => 'ModifySelf', Object => RT->System ) ) { $about_me->child( prefs => title => loc('Preferences'), path => '/SelfService/Prefs.html' ); } if ( $session{'CurrentUser'}->Name && ( !RT->Config->Get('WebRemoteUserAuth') || RT->Config->Get('WebFallbackToRTLogin') )) { $about_me->child( logout => title => loc('Logout'), path => '/NoAuth/Logout.html' ); } if ($session{'CurrentUser'}->HasRight( Right => 'ShowArticle', Object => RT->System )) { PageWidgets->child( 'goto-article' => raw_html => $m->scomp('/SelfService/Elements/SearchArticle') ); } PageWidgets->child( goto => raw_html => $m->scomp('/SelfService/Elements/GotoTicket') ); if ($request_path =~ m{^/SelfService/Asset/} and $DECODED_ARGS->{id}) { my $page = PageMenu(); my $id = $DECODED_ARGS->{id}; $page->child("display", title => loc("Display"), path => "/SelfService/Asset/Display.html?id=$id"); $page->child("history", title => loc("History"), path => "/SelfService/Asset/History.html?id=$id"); if (Menu->child("new")) { my $actions = $page->child("actions", title => loc("Actions")); $actions->child("create-linked-ticket", title => loc("Create linked ticket"), path => "/SelfService/Asset/CreateLinkedTicket.html?Asset=$id"); } } $m->callback( CallbackName => 'SelfService', Path => $request_path, ARGSRef => \%ARGS ); }; if ( $request_path !~ m{^/SelfService/} ) { $build_main_nav->(); } else { $build_selfservice_nav->(); } <%ARGS> $show_menu => 1 $QueryString => '' $QueryArgs => {} rt-4.4.4/share/html/Elements/EditTimeValue000644 000765 000024 00000005137 13437510132 021271 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/SelectTimeUnits, Name => $UnitName, Default => $InUnits &> <%ARGS> $Default => '' $Name => '' $ValueName => '' $UnitName => '' $InUnits => '' <%INIT> $ValueName ||= $Name; $UnitName ||= ($Name||$ValueName) . '-TimeUnits'; $InUnits ||= $m->request_args->{ $UnitName }; $InUnits ||= RT->Config->Get('DefaultTimeUnitsToHours', $session{'CurrentUser'}) ? 'hours' : 'minutes'; if ($Default && $InUnits eq 'hours') { # 0+ here is to remove the ending 0s $Default = 0 + sprintf '%.2f', $Default / 60; } rt-4.4.4/share/html/Elements/EditCustomFieldSelect000644 000765 000024 00000016553 13437510132 022760 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# Build up the set of cascading select boxes as "guides" %# each one limits the options of the final one a bit %# (perhaps by tweaking the .display style?) % my $selected = 0; % my @category; % my $out = $m->scomp('SELF:options', %ARGS, SelectedRef => \$selected, CategoryRef => \@category); % if ( $RenderType eq 'List' ) {
BasedOnObj->id) { data-cascade-based-on-name="<% $BasedOnName || $NamePrefix . $CustomField->BasedOnObj->id . '-Value' |n %>" % } > % if ( $checktype eq 'radio' ) { % if ( $show_empty_option ) {
/>
% } % } % my $CFVs = $CustomField->Values; % while ( my $value = $CFVs->Next ) { % my $content = $value->Name; % my $labelid = "$name-". $value->id;
/>
% }
% } else { % if (@category) { %# this hidden select is to supply a full list of values, %# see filter_cascade_select() in js/cascaded.js % } % } <%init> # Handle render types $RenderType ||= $CustomField->RenderType; if ( $RenderType eq 'Dropdown' ) { # Turn it into a dropdown $Rows = 0; } # Process scalar values for Default if ( $Default and !@Default ){ push @Default, $Default; } my ($checktype, $name); if ( $MaxValues == 1 and $RenderType eq 'List' ) { ($checktype, $name) = ('radio', $Name || $NamePrefix . $CustomField->Id . '-Value'); } else { ($checktype, $name) = ('checkbox', $Name || $NamePrefix . $CustomField->Id . '-Values'); } @Default = grep defined && length, @Default; if ( !@Default && $Values ) { @Default = map $_->Content, @{ $Values->ItemsArrayRef }; } my %default = map {lc $_ => 1} @Default; my $show_empty_option; if ( exists $ARGS{ShowEmptyOption} ) { $show_empty_option = $ARGS{ShowEmptyOption}; } else { if ( $CustomField->MatchPattern('') ) { $show_empty_option = 1; } elsif ( $CustomField->SupportDefaultValues ) { my ( $on ) = grep { $_->isa( $CustomField->RecordClassFromLookupType ) } $CustomField->ACLEquivalenceObjects; my $default_values = $CustomField->DefaultValues( Object => $on || RT->System ); $show_empty_option = 1 unless defined $default_values && length $default_values; } } my $use_chosen = $CustomField->Values->Count >= 10 ? 1 : 0; $m->callback( CallbackName => 'Chosen', UseChosen => \$use_chosen, CustomField => $CustomField ); # it's weird to see "(no value) X" in the input when selecting multiple values $show_empty_option = 0 if $use_chosen && $Multiple; <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Name => undef $BasedOnName => undef @Default => () $Default => undef $Values => undef $Multiple => 0 $Rows => undef $HideCategory => 0 $RenderType => undef $MaxValues => 1 <%METHOD options> % @Default = grep defined && length, @Default; % # $Values->HasEntry is too slow here % if ( !@Default && $Values ) { % @Default = map $_->Content, @{$Values->ItemsArrayRef}; % } % $_ = lc $_ foreach @Default; % my $selected; % my $CFVs = $CustomField->Values; % my @levels; % while ( my $value = $CFVs->Next ) { % my $name = $value->Name; % my $category = $value->Category || ''; % my $level = (split /:/, $category, 2)[0] || ''; % while (@levels) { % if ($levels[-1] eq $level) { % $level = ''; % last; % } elsif (index($level, $levels[-1]) != 0) { % $m->out(''); % pop @levels; % } else { % last; % } % } % if ( length $level ) { % push @$CategoryRef, [0+@levels, $level]; % push @levels, $level; % } % } % for (@levels) { % } <%ARGS> $CustomField => undef @Default => () $Values => undef $SelectedRef => undef $CategoryRef => undef rt-4.4.4/share/html/Elements/ShowPrincipal000644 000765 000024 00000005504 13437510132 021350 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# Released under the terms of version 2 of the GNU Public License <%args> $Object $PostUser => undef $Separator => ", " $Link => 1 <%init> if ($Object->isa("RT::Group")) { # Link the users (non-recursively) my @ret = map {$m->scomp("ShowPrincipal", Object => $_->[1], PostUser => $PostUser, Link => $Link)} sort {$a->[0] cmp $b->[0]} map {+[($_->EmailAddress||''), $_]} @{ $Object->UserMembersObj( Recursively => 0 )->ItemsArrayRef }; # But don't link the groups push @ret, sort map {$m->interp->apply_escapes( loc("Group: [_1]", $_->Name), 'h' )} @{ $Object->GroupMembersObj( Recursively => 0)->ItemsArrayRef }; $m->out( join($Separator, @ret) ); } else { $m->comp("/Elements/ShowUser", User => $Object, Link => $Link); $m->out( $PostUser->($Object) ) if $PostUser; } rt-4.4.4/share/html/Elements/LoginRedirectWarning000644 000765 000024 00000005351 13437510132 022646 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $next => undef <%init> return unless $next; my $destination = RT::Interface::Web::FetchNextPage($next); return unless ref $destination and $destination->{'HasSideEffects'}; my $consequence = RT::Interface::Web::PotentialPageAction($destination->{'url'}) || loc("perform actions"); $consequence = $m->interp->apply_escapes($consequence => "h");

<&|/l&>After logging in you'll be sent to your original destination: <% $destination->{'url'} %> <&|/l_unsafe, "$consequence" &>which may [_1] on your behalf.

<&|/l&>If this is not what you expect, leave this page now without logging in.

rt-4.4.4/share/html/Elements/ColumnMap000644 000765 000024 00000023610 13437510132 020457 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Class => 'RT__Ticket' $Name $Attr => undef <%ONCE> use Scalar::Util; my ($COLUMN_MAP, $WCOLUMN_MAP); $WCOLUMN_MAP = $COLUMN_MAP = { id => { attribute => 'id', title => '#', # loc align => 'right', value => sub { return $_[0]->id } }, Created => { attribute => 'Created', title => 'Created', # loc value => sub { return $_[0]->CreatedObj->AsString } }, CreatedRelative => { attribute => 'Created', title => 'Created', # loc value => sub { return $_[0]->CreatedObj->AgeAsString } }, CreatedBy => { attribute => 'Creator', title => 'Created By', # loc value => sub { return $_[0]->CreatorObj->Name } }, LastUpdated => { attribute => 'LastUpdated', title => 'Last Updated', # loc value => sub { return $_[0]->LastUpdatedObj->AsString } }, LastUpdatedRelative => { attribute => 'LastUpdated', title => 'Last Updated', # loc value => sub { return $_[0]->LastUpdatedObj->AgeAsString } }, LastUpdatedBy => { attribute => 'LastUpdatedBy', title => 'Last Updated By', # loc value => sub { return $_[0]->LastUpdatedByObj->Name } }, CustomField => { attribute => sub { return shift @_ }, title => sub { return pop @_ }, value => sub { my $self = $WCOLUMN_MAP->{CustomField}; my $cf = $self->{load}->(@_); return unless $cf->Id; return $self->{render}->( $cf, $cf->ValuesForObject($_[0])->ItemsArrayRef ); }, load => sub { # Cache the CF object on a per-request basis, to avoid # having to load it for every row my $key = join("-","CF", $_[0]->CustomFieldLookupType, $_[0]->CustomFieldLookupId, $_[-1]); my $cf = $m->notes($key); unless ($cf) { $cf = $_[0]->LoadCustomFieldByIdentifier($_[-1]); RT->Logger->debug("Unable to load $_[-1] for ".$_[0]->CustomFieldLookupType." ".$_[0]->CustomFieldLookupId) unless $cf->Id; $m->notes($key, $cf); } return $cf; }, render => sub { my ($cf, $ocfvs) = @_; my $comp = $m->comp_exists("/Elements/ShowCustomField".$cf->Type) ? "/Elements/ShowCustomField".$cf->Type : undef; my @values = map { $comp ? \($m->scomp( $comp, Object => $_ )) : $_->Content } @$ocfvs; if (@values > 1) { for my $value (splice @values) { push @values, \"
  • ", $value, \"
  • \n"; } @values = (\"
      ", @values, \"
    "); } return @values; }, }, CustomRole => { attribute => sub { return shift @_ }, title => sub { return pop @_ }, value => sub { my $object = shift; my $role_name = pop; my $role_type = do { # Cache the role object on a per-request basis, to avoid # having to load it for every row my $key = "RT::CustomRole-" . $role_name; my $role_type = $m->notes($key); if (!$role_type) { my $role_obj = RT::CustomRole->new($object->CurrentUser); $role_obj->Load($role_name); RT->Logger->notice("Unable to load custom role $role_name") unless $role_obj->Id; $role_type = $role_obj->GroupType; $m->notes($key, $role_type); } $role_type; }; return if !$role_type; return \($m->scomp("/Elements/ShowPrincipal", Object => $object->RoleGroup($role_type) ) ); }, }, CheckBox => { title => sub { my $name = $_[1] || 'SelectedTickets'; my $checked = $DECODED_ARGS->{ $name .'All' }? 'checked="checked"': ''; return \qq{}; }, value => sub { my $id = $_[0]->id; my $name = $_[2] || 'SelectedTickets'; return \qq{} if $DECODED_ARGS->{ $name . 'All'}; my $arg = $DECODED_ARGS->{ $name }; my $checked = ''; if ( $arg && ref $arg ) { $checked = 'checked="checked"' if grep $_ == $id, grep { defined and length } @$arg; } elsif ( $arg ) { $checked = 'checked="checked"' if $arg == $id; } return \qq{} }, }, RadioButton => { title => \' ', value => sub { my $id = $_[0]->id; my $name = $_[2] || 'SelectedTicket'; my $arg = $DECODED_ARGS->{ $name }; my $checked = ''; $checked = 'checked="checked"' if $arg && $arg == $id; return \qq{}; }, }, (map { my $value = RT->Config->Get($_); $_ => { value => sub { return \$value } }; } qw(WebPath WebBaseURL WebURL)), WebRequestPath => { value => sub { substr( $m->request_path, 1 ) } }, WebRequestPathDir => { value => sub { substr( $m->request_comp->dir_path, 1 ) } }, WebHomePath => { value => sub { my $path = RT->Config->Get("WebPath"); if (not $session{CurrentUser}->Privileged) { $path .= "/SelfService"; } return \$path; }, }, CurrentUser => { value => sub { $session{CurrentUser}->id } }, CurrentUserName => { value => sub { $session{CurrentUser}->Name } }, }; $COLUMN_MAP->{'CF'} = $COLUMN_MAP->{'CustomField'}; Scalar::Util::weaken($WCOLUMN_MAP); my $ROLE_MAP = {}; <%INIT> $m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'Once', CallbackOnce => 1 ); my $generic_with_roles; # Add in roles my $RecordClass = $Class; $RecordClass =~ s/_/:/g; if ($RecordClass->DOES("RT::Record::Role::Roles")) { unless ($ROLE_MAP->{$RecordClass}) { # UserDefined => 1 is handled by the CustomRole mapping for my $role ($RecordClass->Roles(UserDefined => 0)) { my $attrs = $RecordClass->Role($role); $ROLE_MAP->{$RecordClass}{$role} = { title => $role, attribute => $attrs->{Column} || "$role.EmailAddress", value => sub { return \($m->scomp("/Elements/ShowPrincipal", Object => $_[0]->RoleGroup($role) ) ) }, }; $ROLE_MAP->{$RecordClass}{$role . "s"} = $ROLE_MAP->{$RecordClass}{$role} unless $attrs->{Single}; } } $generic_with_roles = { %{$COLUMN_MAP}, %{$ROLE_MAP->{$RecordClass}} }; } else { $generic_with_roles = { %{$COLUMN_MAP} }; } $m->callback( COLUMN_MAP => $generic_with_roles ); # first deal with class specific things if (RT::Interface::Web->ComponentPathIsSafe($Class) and $m->comp_exists("/Elements/$Class/ColumnMap")) { my $class_map = $m->comp("/Elements/$Class/ColumnMap", Attr => $Attr, Name => $Name, GenericMap => $generic_with_roles ); return $class_map if defined $class_map; } return GetColumnMapEntry( Map => $generic_with_roles, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/EditCustomFieldAutocomplete000644 000765 000024 00000007752 13437510132 024203 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $Multiple ) { <%INIT> my $name = $Name || $NamePrefix . $CustomField->Id . ( $Multiple ? '-Values' : '-Value' ); if ( $Default && !$Multiple ) { $Default =~ s/\s*\r*\n\s*/ /g; } if ( $Multiple and $Values ) { $Default = ''; while (my $value = $Values->Next ) { $Default .= $value->Content ."\n"; } } my $Context = ""; if ($CustomField->ContextObject) { $Context .= "ContextId=" . $CustomField->ContextObject->Id . "&"; $Context .= "ContextType=". ref($CustomField->ContextObject) . "&"; } <%ARGS> $CustomField => undef $NamePrefix => undef $Name => undef $Default => undef $Values => undef $Multiple => undef $Rows => undef $Cols => undef rt-4.4.4/share/html/Elements/RT__Class/000755 000765 000024 00000000000 13437510132 020450 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/QuickCreate000644 000765 000024 00000007320 13437510132 020764 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&| /Widgets/TitleBox, title => loc('Quick ticket creation') &>
    callback(CallbackName => 'InFormElement'); >
    <&|/l&>Subject:
    <&|/l&>Queue:<& /Elements/SelectNewTicketQueue, Name => 'Queue', Default => $args->{Queue} &> <&|/l&>Owner:
    <&|/l&>Requestors: <& /Elements/EmailInput, Name => 'Requestors', Size => '40', Default => $args->{Requestors} || $session{CurrentUser}->EmailAddress, AutocompleteMultiple => 1 &>
    <&|/l&>Content:
    <& /Elements/Submit, Label => loc('Create') &>
    <%INIT> my $args = delete $session{QuickCreate} || {}; rt-4.4.4/share/html/Elements/EditLink000644 000765 000024 00000005622 13437510132 020272 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $Mode eq 'Target' ) { % } else { % }
    <%INIT> my $ModeObj = $Mode . 'Obj'; return if UNIVERSAL::isa($Link->$ModeObj, 'RT::Article') && $Link->$ModeObj->Disabled; # Skip reminders return if $Mode eq 'Base' && $Link->Type eq 'RefersTo' && UNIVERSAL::isa($Link->BaseObj, 'RT::Ticket') && $Link->BaseObj->__Value('Type') eq 'reminder'; <%ARGS> $Link $Mode rt-4.4.4/share/html/Elements/EditCustomField000644 000765 000024 00000013463 13437510132 021615 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $Type = $CustomField->Type; unless ( $Type ) { # if we can't see the type, all hell will break loose. $RT::Logger->error( "Custom field #". $CustomField->id ." has empty type" ); return; } my $Values; if ( $Object ) { $Grouping =~ s/\W//g if $Grouping; if ( $Object->Id ) { $Values = $Object->CustomFieldValues( $CustomField->id ); $Values->Columns( qw( id CustomField ObjectType ObjectId Disabled Content ContentType ContentEncoding SortOrder Creator Created LastUpdatedBy LastUpdated ) ); # Don't take care of $Values if there isn't values inside undef ( $Values ) unless ( $Values->Count ); } } my $Name; if ( !$NamePrefix ) { $Name = GetCustomFieldInputName(Object => $Object, CustomField => $CustomField, Grouping => $Grouping ); } # Always fill $Default with submited values if it's empty if ( ( !defined $Default || !length $Default ) && $DefaultsFromTopArguments ) { my %TOP = %$DECODED_ARGS; $Default = $TOP{ $Name } if $Name; # check both -Values and -Value for back compatibility if ( $NamePrefix ) { $Default //= $TOP{ $NamePrefix . $CustomField->Id . '-Values' } // $TOP{ $NamePrefix . $CustomField->Id . '-Value' }; } else { my $prefix = GetCustomFieldInputNamePrefix(Object => $Object, CustomField => $CustomField, Grouping => $Grouping ); $Default //= $TOP{ $prefix . 'Values' } // $TOP{ $prefix . 'Value' }; } } if ( (!$Object || !$Object->id) && ( !defined $Default || !length $Default ) && $CustomField->SupportDefaultValues ) { my ( $on ) = grep {$_->isa($CustomField->RecordClassFromLookupType)} $CustomField->ACLEquivalenceObjects; $Default = $CustomField->DefaultValues(Object => $on || RT->System); } my $MaxValues = $CustomField->MaxValues; if ($MaxValues == 1 && $Values) { # what exactly is this doing? Without the "unless" it breaks RTFM # transaction extraction into articles. unless ( $Default ) { if ( $Values->First ) { if ( $CustomField->Type eq 'DateTime' ) { my $date = RT::Date->new($session{CurrentUser}); $date->Set(Format => 'ISO', Value => $Values->First->Content); $Default = $date->ISO(Timezone => 'user'); } else { $Default = $Values->First->Content; } } else { $Default = ''; } } $Values->GotoFirstItem; } # The "Magic" hidden input causes RT to know that we were trying to edit the field, even if # we don't see a value later, since browsers aren't compelled to submit empty form fields $m->out("\n".''."\n"); my $EditComponent = "EditCustomField$Type"; $m->callback( %ARGS, CallbackName => 'EditComponentName', Name => \$EditComponent, CustomField => $CustomField, Object => $Object, Rows => \$Rows, Cols => \$Cols); $EditComponent = "EditCustomField$Type" unless $m->comp_exists($EditComponent); return $m->comp( $EditComponent, %ARGS, Rows => $Rows, Cols => $Cols, Default => $Default, Object => $Object, Values => $Values, MaxValues => $MaxValues, Multiple => ($MaxValues != 1), NamePrefix => $NamePrefix, CustomField => $CustomField, Name => $Name, $CustomField->BasedOn && $Name ? ( BasedOnName => GetCustomFieldInputName(Object => $Object, CustomField => $CustomField->BasedOnObj, Grouping => $Grouping) ) : (), ); <%ARGS> $Grouping => undef $Object => undef $CustomField => undef $NamePrefix => undef $Rows => 5 $Cols => 15 $Default => undef $DefaultsFromTopArguments => 1, rt-4.4.4/share/html/Elements/RT__Queue/000755 000765 000024 00000000000 13437510132 020467 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/EditCustomFieldBinary000644 000765 000024 00000005747 13437510132 022770 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % while ( $Values and my $value = $Values->Next ) { %# XXX - let user download the file(s) here? % if (my $url = RT->System->ExternalStorageURLFor($value)) { % } else { % } <% $value->Content %>
    % } % if ($MaxValues && $Values && $Values->Count >= $MaxValues ) {
    <&|/l&>Reached maximum number, so new values will override old ones.
    % } <%INIT> my $name = $Name || $NamePrefix . $CustomField->Id . '-Upload'; my $delete_name = $name; $delete_name =~ s!-Upload$!-DeleteValueIds!; <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Name => undef $Default => undef $Values => undef $MaxValues => undef rt-4.4.4/share/html/Elements/Footer000644 000765 000024 00000006130 13437510132 020020 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# End of div#body from /Elements/PageLayout
    % $m->callback( %ARGS ); % if ($Debug >= 2 ) { % require Data::Dumper; % my $d = Data::Dumper->new([\%ARGS], [qw(%ARGS)]);
    <%$d->Dump() %>
    
    % } <%ARGS> $Debug => 0 $Menu => 1 rt-4.4.4/share/html/Elements/SelectLang000644 000765 000024 00000005734 13437510132 020614 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $ShowNullOption => 1 $Name => undef $Verbose => undef $Default => 0 <%ONCE> use I18N::LangTags::List; my (@lang, %lang_to_desc); foreach my $lang (map { s/:://; s/_/-/g; $_ } grep { /^\w+::$/ } keys %RT::I18N::) { next if $lang =~ /i-default|en-us/; my $desc = I18N::LangTags::List::name($lang); next unless ($desc); $desc =~ s/(.*) (.*)/$2 ($1)/ unless ( $desc =~ /.* \(.*\)/ ); $lang_to_desc{$lang} = $desc; } @lang = sort { $lang_to_desc{$a} cmp $lang_to_desc{$b} } keys %lang_to_desc; rt-4.4.4/share/html/Elements/RefreshHomepage000644 000765 000024 00000004534 13437510132 021634 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc('Refresh')&>
    <& /Elements/Refresh, Name => 'HomeRefreshInterval', Default => $session{'home_refresh_interval'}||RT->Config->Get('HomePageRefreshInterval', $session{'CurrentUser'}) &> <& /Elements/Submit, Label => loc('Go!') &>
    rt-4.4.4/share/html/Elements/SelectCustomFieldValue000644 000765 000024 00000006503 13437510132 023141 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( Name => $Name, CustomField => $CustomField, Default => \$Default ); % $Default = "" unless defined $Default; % if ($CustomField->Type =~ /Select/i) { % my $values = $CustomField->Values; % } elsif ($CustomField->Type =~ /^Date(Time)?$/) { <& /Elements/SelectDate, ShowTime => ($1 ? 1 : 0), Name => $Name, Value => $Default &> % } elsif ( $CustomField->Type eq 'Autocomplete' ) { % } else { % } <%args> $Name => undef $CustomField => undef $Default => undef rt-4.4.4/share/html/Elements/QueueSummaryByLifecycle000644 000765 000024 00000011350 13437510132 023337 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%perl> foreach my $lifecycle ( map $lifecycle{$_}, sort keys %lifecycle ) { my @cur_statuses = grep $lifecycle->IsValid($_), @statuses; next unless @cur_statuses; % for my $status ( @cur_statuses ) { % } <%PERL> my $i = 0; for my $queue (@$queues) { next if lc($queue->{Lifecycle} || '') ne lc $lifecycle->Name; $i++; % for my $status (@cur_statuses) { % } % }
    <&|/l&>Queue<% loc($status) %>
    <% $queue->{Name} %> <% $data->{$queue->{Id}}->{lc $status} || '-' %>
    % } <%INIT> my $build_search_link = sub { my ($queue_name, $extra_query) = @_; $queue_name =~ s/(['\\])/\\$1/g; #' return RT->Config->Get('WebPath') . "/Search/Results.html?Query=" . $m->interp->apply_escapes("Queue = '$queue_name' AND $extra_query", 'u'); }; my $link_all = sub { my ($queue) = @_; return $build_search_link->($queue->{Name}, "Status = '__Active__'"); }; my $link_status = sub { my ($queue, $status) = @_; $status =~ s{(['\\])}{\\$1}g; return $build_search_link->($queue->{Name}, "Status = '$status'"); }; $m->callback( CallbackName => 'LinkBuilders', build_search_link => \$build_search_link, link_all => \$link_all, link_status => \$link_status, ); my %lifecycle; for my $queue (@$queues) { my $cycle = RT::Lifecycle->Load( Name => $queue->{'Lifecycle'} ); RT::Logger->error('Unable to load lifecycle for ' . $queue->{'Lifecycle'}) unless $cycle; $lifecycle{ lc $cycle->Name } = $cycle; } my @statuses; my %seen; foreach my $set ( 'initial', 'active' ) { foreach my $lifecycle ( map $lifecycle{$_}, sort keys %lifecycle ) { push @statuses, grep !$seen{ lc $_ }++, $lifecycle->Valid($set); } } my $data = {}; my $statuses = {}; use RT::Report::Tickets; my $report = RT::Report::Tickets->new( RT->SystemUser ); my $query = "(Status = '__Active__') AND (". join(' OR ', map "Queue = ".$_->{Id}, @$queues) .")"; $query = 'id < 0' unless @$queues; $report->SetupGroupings( Query => $query, GroupBy => [qw(Status Queue)] ); while ( my $entry = $report->Next ) { $data->{ $entry->__Value("Queue") }->{ $entry->__Value("Status") } = $entry->__Value('Id'); $statuses->{ $entry->__Value("Status") } = 1; } <%ARGS> $queues => undef # Arrayref of hashes with cached queue info rt-4.4.4/share/html/Elements/CreateTicket000644 000765 000024 00000005111 13437510132 021127 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    callback(CallbackName => 'InFormElement'); > % my $button_start = ''; % my $queue_selector = $m->scomp('/Elements/SelectNewTicketQueue', AutoSubmit => 1, SendTo => $SendTo, Placeholder => loc('Queue') ); <&|/l_unsafe, $button_start, $button_end, $queue_selector &>[_1]New ticket in[_2] [_3] % $m->callback(CallbackName => 'BeforeFormEnd');
    <%ARGS> $SendTo => '/Ticket/Create.html', rt-4.4.4/share/html/Elements/SelectOwner000644 000765 000024 00000005700 13437510132 021016 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& "SelectOwner$Widget", %ARGS, Objects => \@objects &> <%INIT> my $Widget; if ( !$QueueObj && !$TicketObj && RT->Config->Get('AutocompleteOwnersForSearch') ) { $Widget = 'Autocomplete'; } $Widget ||= RT->Config->Get('AutocompleteOwners', $session{'CurrentUser'}) ? 'Autocomplete' : 'Dropdown'; my @objects; if ($TicketObj) { @objects = ($TicketObj); } elsif ($QueueObj) { @objects = ($QueueObj); } elsif (%Queues) { for my $name (keys %Queues) { my $q = RT::Queue->new($session{'CurrentUser'}); $q->Load($name); push @objects, $q; } } else { # Let's check rights on an empty queue object. that will do a search # for any queue. my $queue = RT::Queue->new( $session{'CurrentUser'} ); push( @objects, $queue ); } $m->callback( %ARGS, objects => \@objects, CallbackName => 'UpdateObjectList' ); <%ARGS> $TicketObj => undef $QueueObj => undef %Queues => () rt-4.4.4/share/html/Elements/MessageBox000644 000765 000024 00000011717 13437510132 020626 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % } % else { <% $Default || '' %><% $message %><% $signature %> % } % $m->callback( %ARGS, CallbackName => 'AfterTextArea' ); % if (!$SuppressAttachmentWarning) { % $m->comp('/Elements/AttachmentWarning', QuotedMessage => $message, Signature => $signature, %ARGS); % } % if ($Type eq 'text/html') { " /> % } <%INIT> my $message = ''; if ( $QuoteTransaction ) { my $transaction = RT::Transaction->new( $session{'CurrentUser'} ); $transaction->Load( $QuoteTransaction ); $message = $transaction->Content( Quote => 1, Type => $Type ); } my $signature = $session{'CurrentUser'}->UserObj->Signature // ""; if ( $IncludeSignature and $signature =~ /\S/ ) { $signature =~ s/\n*$//; if ($Type eq 'text/html') { $signature =~ s/&/&/g; $signature =~ s//>/g; $signature =~ s/"/"/g; # "//; $signature =~ s/'/'/g; # '//; $signature =~ s{\n}{
    }g; $signature = "

    -- 
    $signature

    "; } else { $signature = "\n\n-- \n". $signature . "\n"; } if ($message =~ /\S/) { if (RT->Config->Get('SignatureAboveQuote', $session{CurrentUser})) { $signature .= $Type eq 'text/html' ? "
    " : "\n"; } else { $signature = ($Type eq 'text/html' ? "" : "\n") . $signature; } } } else { $signature = ''; } # wrap="something" seems to really break IE + richtext my $wrap_type = $Type eq 'text/html' ? '' : 'wrap="soft"'; # If there's no cols specified, we want to set the width to 100% in CSS my $width_attr; if ($Width) { $width_attr = 'cols'; } else { $width_attr = 'style'; $Width = 'width: 100%'; } <%ARGS> $QuoteTransaction => undef $Name => 'Content' $Default => '' $Width => RT->Config->Get('MessageBoxWidth', $session{'CurrentUser'} ) $Height => RT->Config->Get('MessageBoxHeight', $session{'CurrentUser'} ) || 15 $IncludeSignature => RT->Config->Get('MessageBoxIncludeSignature'); $IncludeArticle => 1; $Type => RT->Config->Get('MessageBoxRichText', $session{'CurrentUser'}) ? 'text/html' : 'text/plain'; $SuppressAttachmentWarning => 0 $Placeholder => '' rt-4.4.4/share/html/Elements/RT__Article/000755 000765 000024 00000000000 13437510132 020766 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/Section000644 000765 000024 00000004047 13437510132 020173 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}

    <%$title%>

    <%ARGS> $title => undef rt-4.4.4/share/html/Elements/SelectResultsPerPage000644 000765 000024 00000004620 13437510132 022631 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# TODO: Better default handling <%INIT> my @values = qw(0 10 25 50 100); my @labels = (loc('Unlimited'), qw(10 25 50 100)); $Default = 50 unless defined $Default; <%ARGS> $Name => undef $Default => 50 rt-4.4.4/share/html/Elements/Framekiller000644 000765 000024 00000004754 13437510132 021031 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( RT->Config->Get('Framebusting') ) { %# This is defeatable. The current best known implemention uses CSS to hide %# the content and JS to re-show it, but that fails poorly for clients that %# don't run JS. % } rt-4.4.4/share/html/Elements/ShowHistoryPage000644 000765 000024 00000014227 13437510132 021667 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Object $Transactions => $Object->SortedTransactions $Attachments => $Object->Attachments( WithHeaders => 1 ) $AttachmentContent => $Object->TextAttachments $ShowHeaders => 0 $PathPrefix => '' <%INIT> my $trans_content = {}; my $trans_attachments = {}; for my $content (@{$AttachmentContent->ItemsArrayRef()}) { $trans_content->{$content->TransactionId}->{$content->Id} = $content; } for my $attachment (@{$Attachments->ItemsArrayRef()}) { my $tmp = $trans_attachments->{ $attachment->TransactionId } ||= {}; push @{ $tmp->{ $attachment->Parent || 0 } ||= [] }, $attachment; } { my %tmp = ( DisplayPath => 'Display.html', AttachmentPath => 'Attachment', UpdatePath => 'Update.html', ForwardPath => 'Forward.html', EmailRecordPath => 'ShowEmailRecord.html', EncryptionPath => 'Crypt.html', ); my $prefix = $ARGS{PathPrefix}||''; while ( my ($arg, $path) = each %tmp ) { next if defined $ARGS{ $arg }; $ARGS{ $arg } = $prefix.$path; } } my $HasTxnCFs = ($Object->can("TransactionCustomFields") and $Object->TransactionCustomFields->Count); <%perl> my $i = 1; while ( my $Transaction = $Transactions->Next ) { my $skip = 0; # Skip display of SetWatcher transactions for ticket Owner groups. Owner # was a single member role group and denormalized into a column well before # the generic role group handling and transactions came about. For # tickets, we rely on rendering ownership changes using the Set-Owner # transaction. For all other record types, or even potential ticket single # role groups which aren't Owner, we use SetWatcher to render history and # skip the Set transactions. This complication is necessary to avoid # creating backdated transactions on upgrade which normalize to one type or # another. # # These conditions assumes ticket Owner is a single-member denormalized # role group, which is safe since that is unlikely to ever change in the # future. if ($Object->isa("RT::Ticket") and ($Transaction->Field || '') eq "Owner") { $skip = 1 if $Transaction->Type eq "SetWatcher"; } else { $skip = 1 if $Transaction->Type eq "Set" and $Transaction->Field and $Object->DOES("RT::Record::Role::Roles") and $Object->HasRole( $Transaction->Field ) and $Object->RoleGroup( $Transaction->Field )->SingleMemberRoleGroupColumn; } # Skip Time Worked fields if user is unprivileged and # HideTimeFieldsFromUnprivilegedUsers is set. $skip = 1 if $Object->isa("RT::Ticket") and not $Object->CurrentUserCanSeeTime and ($Transaction->Field || '') =~ /^Time(?:Estimated|Worked|Left)$/; $skip = 1 if $m->request_path =~ m{^/SelfService/} and RT::Config->Get('SelfServiceCorrespondenceOnly') and ($Transaction->Type ne "Correspond" && $Transaction->Type ne "Create"); $m->callback( %ARGS, Transaction => $Transaction, skip => \$skip, CallbackName => 'SkipTransaction', ); next if $skip; # ARGS is first because we're clobbering the "Attachments" parameter $m->comp( 'ShowTransaction', %ARGS, Object => $Object, Transaction => $Transaction, ShowHeaders => $ShowHeaders, RowNum => $i, Attachments => $trans_attachments->{$Transaction->id} || {}, AttachmentContent => $trans_content, HasTxnCFs => $HasTxnCFs, ); # manually flush the content buffer after each txn, # so the user sees some update $m->flush_buffer; $i++; } # For scroll, it's possible that all the transactions in this page were # skipped for some reasons and there are still pages left, so we need to # inform AJAX request that it's not done yet. if ( $i == 1 and RT->Config->Get( "ShowHistory", $session{'CurrentUser'} ) eq 'scroll' and my $txn = $Transactions->Last ) { $m->out( q{\n} ); } rt-4.4.4/share/html/Elements/EditPassword000644 000765 000024 00000005415 13437510132 021177 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % unless ( $cond{'CanSet'} ) { <% $cond{'Reason'} %>
    % } else { % if ( $cond{'RequireCurrent'} ) { % }
    <&|/l, $session{'CurrentUser'}->Name()&>[_1]'s current password:
    <&|/l&>New password:
    <&|/l&>Retype Password:
    % } <%ARGS> $User @Name => qw(CurrentPass NewPass1 NewPass2) <%INIT> my %cond = $User->CurrentUserRequireToSetPassword; rt-4.4.4/share/html/Elements/GotoUser000644 000765 000024 00000005222 13437510132 020332 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <%ARGS> $Default => '' rt-4.4.4/share/html/Elements/SelectAttachmentField000644 000765 000024 00000004532 13437510132 022762 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => 'AttachmentField' rt-4.4.4/share/html/Elements/ShowCustomFields000644 000765 000024 00000013654 13437510132 022035 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( CallbackName => 'BeforeCustomFields', Object => $Object, % Grouping => $Grouping, ARGSRef => \%ARGS, CustomFields => $CustomFields, Table => $Table ); % if ($Table) { % } % while ( my $CustomField = $CustomFields->Next ) { % my $Values = $Object->CustomFieldValues( $CustomField->Id ); % my $count = $Values->Count; % next if $HideEmpty and not $count; % my $CustomFieldName = $CustomField->Name; %#The following substitution replaces all non-ID_Continue characters with a dash character. The ID_Continue Unicode property was chosen because it (combined with ID_Start) is meant for variable names. ID_Continue includes characters suitable for use in CSS-class names (even non-Latin ones, to support non-English custom field names) and excludes syntactic characters that are not (such as whitespace characters). % $CustomFieldName =~ s/\P{ID_Continue}+/-/g; % my @classes = ( % 'custom-field', % 'custom-field-'.$CustomField->id, % 'custom-field-'.$CustomFieldName, % ); % push @classes, 'unset-field' if not $count; % $m->callback( CallbackName => 'ModifyFieldClasses', CustomField => $CustomField, % Object => $Object, Classes => \@classes, Grouping => $Grouping ); % $m->callback( CallbackName => 'AfterCustomFieldValue', CustomField => $CustomField, % Object => $Object, Grouping => $Grouping, Table => $Table ); % } % if ($Table) {
    <% $CustomField->Name %>: % unless ( $count ) { <&|/l&>(no value) % } elsif ( $count == 1 ) { % $print_value->( $CustomField, $Values->First ); % } else {
      % while ( my $Value = $Values->Next ) {
    • % $print_value->( $CustomField, $Value );
    • % }
    % }
    % } % $m->callback( CallbackName => 'AfterCustomFields', Object => $Object, % Grouping => $Grouping, ARGSRef => \%ARGS, Table => $Table ); <%INIT> $m->callback( %ARGS, CallbackName => 'MassageCustomFields', Object => $Object, CustomFields => $CustomFields, Table => $Table, ); $CustomFields->LimitToGrouping( $Object => $Grouping ) if defined $Grouping; # don't print anything if there is no custom fields return unless $CustomFields->First; $CustomFields->GotoFirstItem; my $print_value = sub { my ($cf, $value) = @_; my $linked = $value->LinkValueTo; if ( defined $linked && length $linked ) { my $linked = $m->interp->apply_escapes( $linked, 'h' ); $m->out(''); } my $comp = "ShowCustomField". $cf->Type; $m->callback( CallbackName => 'ShowComponentName', Name => \$comp, CustomField => $cf, Object => $Object, Table => $Table, ); if ( $m->comp_exists( $comp ) ) { $m->comp( $comp, Object => $value ); } else { $m->out( $m->interp->apply_escapes( $value->Content, 'h' ) ); } $m->out('') if defined $linked && length $linked; # This section automatically populates a div with the "IncludeContentForValue" for this custom # field if it's been defined if ( $cf->IncludeContentForValue ) { my $vid = $value->id; $m->out( '\n} ); $m->out( qq{\n} ); } }; <%ARGS> $Object => undef $CustomFields => $Object->CustomFields $Grouping => undef $Table => 1 $HideEmpty => 0 rt-4.4.4/share/html/Elements/Submit000644 000765 000024 00000010137 13437510132 020027 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    % if ($CheckAll) { % } % if ($ClearAll) { % } % if ($Reset) { % }
    % if ( $Back ) { % } % if ( $Back ) {
    <%$BackCaption%> <% $BackName ? qq[ name="$BackName"] : '' | n %> value="<%$BackLabel%>" class="button" />
    % }
    <%ARGS> $color => undef $Caption => '' $AlternateCaption => undef $AlternateLabel => undef $Label => loc('Submit') $Name => undef $CheckAll => undef $CheckAllLabel => loc('Check All') $ClearAll => undef $ClearAllLabel => loc('Clear All') $CheckboxName => '' $CheckboxNameRegex => '' $Back => undef $BackName => 'Back' $BackLabel => loc('Back') $BackCaption => '' $BackOnClick => undef $OnClick => undef $Reset => undef $ResetLabel => loc('Reset') $SubmitId => undef $id => undef <%init> my $match; if (length $CheckboxName) { $match = $m->interp->apply_escapes($CheckboxName,'j'); } elsif (length $CheckboxNameRegex) { $match = $CheckboxNameRegex; } else { $match = q{''}; } rt-4.4.4/share/html/Elements/CollectionList000644 000765 000024 00000015535 13437510132 021522 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> if (!$Collection && $Class eq 'RT::Tickets') { $Collection = RT::Tickets->new( $session{'CurrentUser'} ); $Collection->FromSQL($Query); } # flip HasResults from undef to 0 to indicate there was a search, so # dashboard mail can be suppressed if there are no results $$HasResults = 0 if $HasResults && !defined($$HasResults); $TotalFound = $Collection->CountAll() unless defined $TotalFound; return '' if !$TotalFound && !$ShowEmpty; if ( $Rows ) { if ( $TotalFound <= $Rows ) { $Page = 1; } else { my $MaxPage = int( $TotalFound / $Rows ) + ( $TotalFound % $Rows ? 1 : 0 ); $Page = $MaxPage if $Page > $MaxPage; } } # XXX: ->{'order_by'} is hacky, but there is no way to check if # collection is ordered or not if ( @OrderBy && ($AllowSorting || $PreferOrderBy || !$Collection->{'order_by'}) ) { if ( $OrderBy[0] =~ /\|/ ) { @OrderBy = split /\|/, $OrderBy[0]; @Order = split /\|/,$Order[0]; } @OrderBy = grep length, @OrderBy; $Collection->OrderByCols( map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0 .. $#OrderBy ) ); } $Collection->RowsPerPage( $Rows ) if $Rows; $Page = 1 unless $Page && $Page > 0; # workaround problems with $Page = '' or undef $Collection->GotoPage( $Page - 1 ); # SB uses page 0 as the first page # DisplayFormat lets us use a "temporary" format for display, while # still using our original format for next/prev page links. # bulk update uses this feature to add checkboxes $DisplayFormat ||= $Format; # Scrub the html of the format string to remove any potential nasties. $Format = $m->comp('/Elements/ScrubHTML', Content => $Format); $DisplayFormat = $m->comp('/Elements/ScrubHTML', Content => $DisplayFormat); my @Format = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $DisplayFormat); # Find the maximum number of items in any row, so we can pad the table. my ($maxitems, $item) = (0, 0); foreach my $col (@Format) { $item++; if ( $col->{title} && ($col->{title} eq 'NEWLINE') ) { $item = 0; } else { $maxitems = $item if $item > $maxitems; } } $Class ||= $Collection->ColumnMapClassName; if ($Class =~ /::/) { # older passed in value $Class =~ s/s$//; $Class =~ s/:/_/g; } $m->out(''); if ( $ShowHeader ) { $m->comp('/Elements/CollectionAsTable/Header', %ARGS, Class => $Class, Format => \@Format, FormatString => $Format, Order => \@Order, OrderBy => \@OrderBy, Rows => $Rows, Page => $Page, AllowSorting => $AllowSorting, BaseURL => $BaseURL, GenericQueryArgs => $GenericQueryArgs, maxitems => $maxitems, PassArguments => \@PassArguments, ); } my ($i, $column_map) = (0, {}); while ( my $record = $Collection->Next ) { # Every ten rows, flush the buffer and put something on the page. $m->flush_buffer unless ++$i % 10; my $warning = 0; my $Classes = ''; $m->callback( CallbackName => 'EachRow', Record => $record, Warning => \$warning, Classes => \$Classes, Format => \@Format, ); $m->comp('/Elements/CollectionAsTable/Row', i => $i, Format => \@Format, record => $record, maxitems => $maxitems, ColumnMap => $column_map, Class => $Class, Warning => $warning, Classes => $Classes, ); $$HasResults++ if $HasResults; } $m->out('
    '); if ( $Rows && $ShowNavigation && $TotalFound > $Rows ) { my $oddRows = ($TotalFound && $TotalFound % $Rows == 0 )? 0 : 1; my $pages = int( $TotalFound / $Rows ) + $oddRows; $pages = 1 if $pages < 1; my %query_args = map { $_ => $ARGS{$_} } @PassArguments; $m->comp( '/Elements/CollectionListPaging', BaseURL => $BaseURL, Rows => $Rows, TotalFound => $TotalFound, CurrentPage => $Page, Pages => $pages, URLParams => \%query_args ); } <%ARGS> $Class => '' $Collection => undef $TotalFound => undef $Format => undef $DisplayFormat => undef @Order => () @OrderBy => () $GenericQueryArgs => undef $Rows => undef $Page => 1 $Title => loc('Ticket Search') $BaseURL => RT->Config->Get('WebPath') . $m->request_comp->path .'?' @PassArguments => qw( Query Format Rows Page Order OrderBy) $AllowSorting => 0 # Make headers in table links that will resort results $PreferOrderBy => 0 # Prefer the passed-in @OrderBy to the collection default $ShowNavigation => 1 $ShowHeader => 1 $ShowEmpty => 0 $Query => 0 $HasResults => undef rt-4.4.4/share/html/Elements/RT__SavedSearch/000755 000765 000024 00000000000 13437510132 021573 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/ValidateCustomFields000644 000765 000024 00000012056 13437510132 022641 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my ($valid, @res) = (1, ()); $CustomFields->GotoFirstItem; my $CFArgs = _ParseObjectCustomFieldArgs( $ARGSRef )->{ref($Object)}{$Object->Id || 0} || {}; while ( my $CF = $CustomFields->Next ) { my $submitted = $CFArgs->{$CF->Id}; # Pick the first grouping $submitted = $submitted ? $submitted->{(keys %$submitted)[0]} : {}; # If we don't have a value and we don't see the Magic, then we're not # submitting a field. next if not $ValidateUnsubmitted and not exists $submitted->{"Value"} and not exists $submitted->{"Upload"} and not exists $submitted->{"Values"} and not $submitted->{"Values-Magic"}; # We only validate Single Combos -- multis can never be user input next if $submitted->{"Values-Magic"} and exists $submitted->{"Values"} and ref $submitted->{"Values"}; $m->notes(('Field-' . $CF->Id) => $submitted->{Values} // $submitted->{Value}); my @values = _NormalizeObjectCustomFieldValue( CustomField => $CF, Value => ($submitted->{Values} // $submitted->{Value} // $submitted->{Upload}), ); if ($CF->Type =~ /^Date(?:Time)?$/) { @values = grep { my $DateObj = RT::Date->new ( $session{'CurrentUser'} ); $DateObj->Set( Format => 'unknown', Value => $_, ($CF->Type eq "Date" ? (Timezone => 'utc') : ()) ); $DateObj->IsSet } @values; } push @values, '' unless @values; for my $value( @values ) { if ($value) { my $ref = { Content => $value }; my ($ok, $msg) = $CF->_CanonicalizeValue( $ref ); unless ($ok) { $m->notes( ( 'InvalidField-' . $CF->Id ) => $msg ); push @res, $CF->Name .': '. $msg; $valid = 0; } } if (!$CF->MatchPattern($value)) { my $msg = loc("Input must match [_1]", $CF->FriendlyPattern); $m->notes( ('InvalidField-' . $CF->Id) => $msg ); push @res, $CF->Name .': '. $msg; $valid = 0; } if ($CF->UniqueValues) { my $existing = RT::ObjectCustomFieldValues->new(RT->SystemUser); $existing->LimitToCustomField($CF->Id); $existing->LimitToEnabled; $existing->Limit(FIELD => 'ObjectType', VALUE => ref($Object)); $existing->Limit(FIELD => 'ObjectId', VALUE => $Object->id, OPERATOR => '!='); $existing->Limit( FIELD => 'Content', VALUE => $value, ); while (my $ocfv = $existing->Next) { my $msg = loc("That is not a unique value"); $m->notes( ('InvalidField-' . $CF->Id) => $msg ); push @res, $CF->Name .': '. $msg; $valid = 0; last; } } } } $m->notes('ValidFields', $valid); return wantarray? ($valid, @res): $valid; <%ARGS> $Object => RT::Ticket->new( $session{'CurrentUser'}) $CustomFields $ARGSRef $ValidateUnsubmitted => 0 rt-4.4.4/share/html/Elements/GotoTicket000644 000765 000024 00000004265 13437510132 020645 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
     
    rt-4.4.4/share/html/Elements/AttachmentWarning000644 000765 000024 00000004414 13437510132 022203 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <% $QuotedMessage %> <% $Signature %>

    <&|/l&>It looks like you may have forgotten to add an attachment.

    <%ARGS> $QuotedMessage => '' $Signature => '' rt-4.4.4/share/html/Elements/FoldStanzaJS000644 000765 000024 00000004257 13437510132 021074 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <%loc('Show quoted text')%>
    rt-4.4.4/share/html/Elements/PersonalQuickbar000644 000765 000024 00000004423 13437510132 022032 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Prefs => '/Prefs/Other.html'
    <&|/l&>Skip Menu | % unless ($session{'CurrentUser'}->Id) { <&|/l&>Not logged in. % } % $m->callback( %ARGS );
    rt-4.4.4/share/html/Elements/EditCustomFieldDate000644 000765 000024 00000004751 13437510132 022413 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $name = $Name || $NamePrefix.$CustomField->Id.'-Values'; <& /Elements/SelectDate, Name => $name, Default => $Default, current => 0, ShowTime => 0 &> (<%$DateObj->AsString(Time => 0, Timezone => 'utc')%>) <%INIT> my $DateObj = RT::Date->new ( $session{'CurrentUser'} ); $DateObj->Set( Format => 'unknown', Value => $Default, Timezone => 'utc' ); <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Default => undef $Values => undef $MaxValues => 1 $Name => undef rt-4.4.4/share/html/Elements/BulkLinks000644 000765 000024 00000014737 13437510132 020474 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}

    <&|/l&>Current Links

    <&|/l&>Depends on: % if ( $hash{DependsOn} ) { % for my $link ( values %{$hash{DependsOn}} ) { <& EditLink, Link => $link, Mode => 'Target' &> % } }
    <&|/l&>Depended on by: % if ( $hash{DependedOnBy} ) { % for my $link ( values %{$hash{DependedOnBy}} ) { <& EditLink, Link => $link, Mode => 'Base' &> % } }
    <&|/l&>Parents: % if ( $hash{MemberOf} ) { % for my $link ( values %{$hash{MemberOf}} ) { <& EditLink, Link => $link, Mode => 'Target' &> % } }
    <&|/l&>Children: % if ( $hash{Members} ) { % for my $link ( values %{$hash{Members}} ) { <& EditLink, Link => $link, Mode => 'Base' &> % } }
    <&|/l&>Refers to: % if ( $hash{RefersTo} ) { % for my $link ( values %{$hash{RefersTo}} ) { <& EditLink, Link => $link, Mode => 'Target' &> % } }
    <&|/l&>Referred to by: % if ( $hash{ReferredToBy} ) { % for my $link ( values %{$hash{ReferredToBy}} ) { <& EditLink, Link => $link, Mode => 'Base' &> % } }
    <&|/l&>(Check box to delete)

    <&|/l&>New Links

    <&|/l&>Enter tickets or URIs to link to. Separate multiple entries with spaces.
    <&|/l&>Depends on:
    <&|/l&>Depended on by:
    <&|/l&>Parents:
    <&|/l&>Children:
    <&|/l&>Refers to:
    <&|/l&>Referred to by:
    <%ARGS> $Collection <%INIT> my @types = qw/DependsOn DependedOnBy Members MemberOf RefersTo ReferredToBy/; my $record_type = $Collection->RecordClass; $record_type =~ s/^RT:://; $record_type =~ s/::/-/g; my %hash; if ( $Collection->Count ) { my $first_record = $Collection->Next; # we only show current links that exist on all the records for my $type ( @types ) { my $target_or_base = $type =~ /DependsOn|MemberOf|RefersTo/ ? 'Target' : 'Base'; my $links = $first_record->$type; while ( my $link = $links->Next ) { $hash{$type}{$link->$target_or_base} = $link; } } while ( my $record = $Collection->Next ) { for my $type ( @types ) { my $target_or_base = $type =~ /DependsOn|MemberOf|RefersTo/ ? 'Target' : 'Base'; # if $hash{$type} is empty, no need to check any more next unless $hash{$type} && keys %{$hash{$type}}; my %exists; while ( my $link = $record->$type->Next ) { $exists{$link->$target_or_base}++; } for ( keys %{$hash{$type}} ) { delete $hash{$type}{$_} unless $exists{$_}; } } } } rt-4.4.4/share/html/Elements/RT__User/000755 000765 000024 00000000000 13437510132 020321 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/Crypt/000755 000765 000024 00000000000 13437510132 017740 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/HeaderJavascript000644 000765 000024 00000005220 13437510132 022000 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $focus => undef $onload => undef % for my $jsfile ( @js_files ) { % } <%INIT> my @js_files; if ( RT->Config->Get('DevelMode') ) { @js_files = map { $_ =~ m{^/} ? $_ : "/static/js/$_" } RT::Interface::Web->JSFiles(); } else { my $key = RT::Interface::Web::SquishedJS()->Key; @js_files = "/NoAuth/js/squished-$key.js"; } rt-4.4.4/share/html/Elements/EditCustomFieldIPAddressRange000644 000765 000024 00000004070 13437510132 024323 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> return $m->comp( 'EditCustomFieldFreeform', %ARGS ); rt-4.4.4/share/html/Elements/Refresh000644 000765 000024 00000005036 13437510132 020164 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Default => 0 rt-4.4.4/share/html/Elements/ShowMemberships000644 000765 000024 00000006365 13437510132 021713 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
      % while ( my $GroupMember = $GroupMembers->Next ) { % my $Group = RT::Group->new($session{'CurrentUser'}); % $Group->Load($GroupMember->GroupId) or next; % if ($Group->Domain eq 'UserDefined') {
    • <% $Group->Label %>
    • % } elsif ($Group->Domain eq 'SystemInternal') {
    • <% $Group->Label %>
    • % } % }
    <%INIT> my $GroupMembers = RT::GroupMembers->new($session{'CurrentUser'}); $GroupMembers->Limit( FIELD => 'MemberId', VALUE => $UserObj->Id ); my $alias = $GroupMembers->Join( TYPE => 'left', ALIAS1 => 'main', FIELD1 => 'GroupId', TABLE2 => 'Groups', FIELD2 => 'id' ); $GroupMembers->Limit( ALIAS => $alias, FIELD => 'Domain', OPERATOR => '=', VALUE => 'SystemInternal', CASESENSITIVE => 0, ); $GroupMembers->Limit( ALIAS => $alias, FIELD => 'Domain', OPERATOR => '=', VALUE => 'UserDefined', CASESENSITIVE => 0, ); $GroupMembers->OrderByCols( { ALIAS => $alias, FIELD => 'Domain' }, { ALIAS => $alias, FIELD => 'Name' }, ); $GroupMembers->RowsPerPage($Limit) if $Limit; <%ARGS> $UserObj $Limit => undef rt-4.4.4/share/html/Elements/RT__Template/000755 000765 000024 00000000000 13437510132 021156 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/ShowMessageStanza000644 000765 000024 00000015324 13437510132 022175 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $plain_text_mono = RT->Config->Get( 'PlainTextMono', $session{'CurrentUser'} ); my $Depth = 0; my $object = $Transaction ? $Transaction->Object : undef; my $print_content = sub { my $ref = shift; return unless defined $$ref && length $$ref; $m->callback( content => $ref, %ARGS ); if ( $ContentType eq 'text/plain' ) { $m->comp( '/Elements/MakeClicky', content => $ref, object => $object, %ARGS ); if ( defined $$ref && !$plain_text_mono ) { $$ref =~ s{(\r?\n)}{
    }g; } } else { if ( defined $$ref ) { $$ref =~ s/^[\r\n]+//g; } } $m->out($$ref); }; $m->out( '
    ' ); if ( ref $Message ) { my @stack; my $para = ''; my $i = 0; AGAIN: foreach ( ; $i < @$Message; $i++ ) { my $stanza = $Message->[$i]; if ( ref $stanza eq "HASH" ) { # Fix message stanza nesting for Outlook's quoting styles if ( $stanza->{raw} and not $stanza->{_outlooked} and $stanza->{raw} =~ /^ # start of an internal line \s* # optional whitespace (?: -{3,} # at least three hyphens \s* # whitespace varies between Outlook versions # don't trigger on PGP signed message or signature blocks (?!(?:BEGIN|END)\s+PGP) \w # at least one word character [\w\s]{3,}? # the rest of the word(s), totalling at least 5 characters, # loose to get different languages \w # at least one ending word character \s* # whitespace varies between Outlook versions -{3,} # at least three hyphens again | _{6,} # OR: six or more underscores ) \s*$ # optional whitespace until the end of the line /xm ) { # There's content before the quoted message, but in the # same stanza. Break it out! if ( my $start = $-[0] ) { my %preceding = %$stanza; # We don't process $stanza->{text} because we don't use it # and it isn't given to us by HTML::Quoted. If we ever # need to, we can process it the same way as 'raw'. $preceding{raw} = substr($stanza->{raw}, 0, $start, ''); # Replace the current stanza with the two we just created splice @$Message, $i, 1, \%preceding, $stanza; # Try it again from the top now that we've rejiggered our # stanzas. We'll process the Outlook stanza again, and hit # the else below this time. redo; } else { # Nest the current stanza and everything that follows $stanza->{_outlooked}++; $stanza = $Message->[ $i ] = [ splice @$Message, $i ]; } } else { $para .= ( defined $stanza->{raw} ? $stanza->{raw} : '' )."\n"; } } next unless ref $stanza eq "ARRAY"; $print_content->( \$para ); $para = ''; $Depth++; push @stack, [ $Message, $i + 1 ]; ( $Message, $i ) = ( $stanza, -1 ); if ( $Depth == 1 ) { $m->comp('FoldStanzaJS'); } my @classes = ('message-stanza'); push @classes, $Depth == 1 ? 'closed' : 'open'; $m->out( '
    ' ); } if ( length $para ) { $print_content->( \$para ); $para = ''; } if (@stack) { ( $Message, $i ) = @{ pop @stack }; $Depth--; $m->out('
    '); goto AGAIN; } } else { $print_content->( \$Message ); } $m->out('
    '); <%ARGS> $Message => undef $Transaction => undef $ContentType => 'text/plain' rt-4.4.4/share/html/Elements/SelectQueueAutocomplete000644 000765 000024 00000005375 13437510132 023402 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Name => 'Queue' $Default => 0 $Class => 'select-queue field' $Placeholder => '' $ShowAllQueues => 1 $CheckQueueRight => 'CreateTicket' $AutoSubmit => 0 $Return => 'Name' <%init> my $DefaultQueue = RT::Queue->new($session{'CurrentUser'}); $DefaultQueue->Load( $Default ); undef $CheckQueueRight if $ShowAllQueues; " class="<% $Class %>" data-autocomplete="Queues" placeholder="<% $Placeholder %>" data-autocomplete-checkright="<% $CheckQueueRight %>" data-autocomplete-return="<% $Return %>" <% $AutoSubmit ? 'data-autocomplete-autosubmit=1' : '' %> /> rt-4.4.4/share/html/Elements/SelectMatch000644 000765 000024 00000005536 13437510132 020767 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Like => loc('matches') $NotLike => loc("doesn't match") $True => loc('is') $False => loc("isn't") $Default => undef <%INIT> my $TrueDefault = ''; my $FalseDefault=''; my $LikeDefault=''; my $NotLikeDefault =''; if ($Default && $Default =~ /false|!=/i) { $FalseDefault = qq[ selected="selected"]; } elsif ($Default && $Default =~ /true|=/i) { $TrueDefault = qq[ selected="selected"]; } elsif ($Default && $Default =~ /notlike|NOT LIKE/i) { $NotLikeDefault = qq[ selected="selected"]; } else { $LikeDefault = qq[ selected="selected"]; } rt-4.4.4/share/html/Elements/EditCustomFieldCustomGroupings000644 000765 000024 00000005427 13437510132 024707 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % foreach my $group ( @Groupings ) { <&| /Widgets/TitleBox, title => $group? loc($group) : loc('Custom Fields'), class => $css_class .' '. ($group? CSSClass("$css_class-$group") : ''), id => ($group ? CSSClass("$css_class-$group") : $css_class), hide_empty => 1, %$TitleBoxARGS, &> % $ARGS{CustomFields} = $CustomFieldGenerator->() if $CustomFieldGenerator; <& EditCustomFields, %ARGS, Object => $Object, Grouping => $group &> % } <%ARGS> $Object $CustomFieldGenerator => undef, @Groupings => (RT::CustomField->CustomGroupings( $Object ), '') <%INIT> my $css_class = lc(ref($Object)||$Object); $css_class =~ s/^rt:://; $css_class =~ s/::/-/g; $css_class = CSSClass($css_class); $css_class .= '-info-cfs'; my $TitleBoxARGS = delete $ARGS{TitleBoxARGS} || {}; rt-4.4.4/share/html/Elements/EditCustomFields000644 000765 000024 00000011673 13437510132 022001 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( CallbackName => 'BeforeCustomFields', Object => $Object, % Grouping => $Grouping, ARGSRef => \%ARGS, CustomFields => $CustomFields); %# only show the wrapper if there are editable custom fields, so we can %# suppress the empty titlebox. we do this in such a way that we still call the %# BeforeCustomFields and AfterCustomFields callbacks (rather than returning %# from the INIT block) to maintain compatibility with old behavior % if (@CustomFields) { % if ( $WRAP ) { <<% $WRAP %> class="edit-custom-fields"> % } % for my $CustomField (@CustomFields) { % my $Type = $CustomField->Type || 'Unknown'; % my @classes = ( % 'edit-custom-field', % "cftype-$Type", % ); % $m->callback( CallbackName => 'ModifyFieldClasses', CustomField => $CustomField, % Object => $Object, Classes => \@classes, Grouping => $Grouping ); <<% $FIELD %> class="<% join(' ', @classes) %>"> <<% $CELL %> class="cflabel"> <% $CustomField->Name %>:
    <% $CustomField->EntryHint // '' %> > <<% $CELL %> class="entry"> % my $default = $m->notes('Field-' . $CustomField->Id); % $default ||= $ARGS{"CustomField-". $CustomField->Id }; <& /Elements/EditCustomField, %ARGS, CustomField => $CustomField, Default => $default, Object => $Object, &> % if (my $msg = $m->notes('InvalidField-' . $CustomField->Id)) {
    <% $msg %> % } elsif ($ShowHints and $CustomField->FriendlyPattern) {
    <&|/l, $CustomField->FriendlyPattern &>Input must match [_1] % } > % $m->callback( CallbackName => 'AfterCustomFieldValue', CustomField => $CustomField, Object => $Object, Grouping => $Grouping ); > % } % if ( $WRAP ) { > % } % } % $m->callback( CallbackName => 'AfterCustomFields', Object => $Object, % Grouping => $Grouping, ARGSRef => \%ARGS ); <%INIT> $CustomFields ||= $Object->CustomFields; $CustomFields->{include_set_initial} = 1 if $ForCreation; $CustomFields->LimitToGrouping( $Object => $Grouping ) if defined $Grouping; $m->callback( %ARGS, CallbackName => 'MassageCustomFields', CustomFields => $CustomFields ); $CustomFields->GotoFirstItem; my @CustomFields; while ( my $CustomField = $CustomFields->Next ) { next unless $CustomField->CurrentUserHasRight('ModifyCustomField') || ($ForCreation && $CustomField->CurrentUserHasRight('SetInitialCustomField')); push @CustomFields, $CustomField; } $AsTable ||= $InTable; my $FIELD = $AsTable ? 'tr' : 'div'; my $CELL = $AsTable ? 'td' : 'div'; my $WRAP = ''; if ( $AsTable ) { $WRAP = 'table' unless $InTable; } else { $WRAP = 'div'; } <%ARGS> $Object $CustomFields => undef $Grouping => undef $AsTable => 1 $InTable => 0 $ShowHints => 1 $ForCreation => 0 rt-4.4.4/share/html/Elements/CollectionListPaging000644 000765 000024 00000006601 13437510132 022642 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $BaseURL => undef $Rows => undef $TotalFound => undef $CurrentPage => undef $Pages => undef $URLParams => undef <%INIT> $BaseURL = $m->interp->apply_escapes($BaseURL, 'h'); $m->out(qq{
    }); if ($Pages == 1) { $m->out(loc('Page 1 of 1')); } else{ $m->out(loc('Page') . ' '); use Data::Page; use Data::Page::Pageset; my $pager = Data::Page->new($TotalFound, $Rows, $CurrentPage); my $pageset = Data::Page::Pageset->new($pager); for my $chunk ( $pageset->total_pagesets ) { $m->out(qq{}); if ( $chunk->is_current ) { for my $number ( $chunk->first .. $chunk->last ) { if ( $number == $CurrentPage ) { $m->out(qq{$number }); } else { my $qs = $m->interp->apply_escapes( $m->comp('/Elements/QueryString', %$URLParams, Page => $number ), 'h', ); $m->out(qq{$number }); } } } else { my $qs = $m->interp->apply_escapes( $m->comp('/Elements/QueryString', %$URLParams, Page => $chunk->first, ), 'h', ); $m->out(qq{$chunk}); } $m->out(qq{}); } } $m->out(qq{
    }); rt-4.4.4/share/html/Elements/MySupportQueues000644 000765 000024 00000005406 13437510132 021741 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc("Queues I'm an AdminCc for"), bodyclass => "" &> <& /Elements/QueueSummaryByStatus, queues => \@queues, &> <%INIT> my $Queues = RT::Queues->new( $session{'CurrentUser'} ); $Queues->UnLimit(); $m->callback( CallbackName => 'SQLFilter', Queues => $Queues ); my @queues; foreach my $queue ( @{ $Queues->ItemsArrayRef } ){ next unless $queue->IsAdminCc($session{'CurrentUser'}->Id); if ( $queue->Id ) { push @queues, { Id => $queue->Id, Name => $queue->Name, Description => $queue->_Accessible("Description" => "read") ? $queue->Description : undef, Lifecycle => $queue->_Accessible("Lifecycle" => "read") ? $queue->Lifecycle : undef, }; } } rt-4.4.4/share/html/Elements/ListActions000644 000765 000024 00000006341 13437510132 021022 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->out($$_) for grep {ref $_} @actions; % if (grep {not ref $_} @actions) {
    <&| /Widgets/TitleBox, title => loc('Results'), %{$titlebox || {}} &>
      % foreach my $action (grep {not ref $_} @actions) {
    • <%$action%>
    • % }
    % } <%init> # backward compatibility, don't use array in new code, but use keyed hash if ( ref( $session{'Actions'} ) eq 'ARRAY' ) { unshift @actions, @{ delete $session{'Actions'} }; $session{'i'}++; } if ( ref( $session{'Actions'}{''} ) eq 'ARRAY' ) { unshift @actions, @{ delete $session{'Actions'}{''} }; $session{'i'}++; } my $actions_pointer = $DECODED_ARGS->{'results'}; if ($actions_pointer && ref( $session{'Actions'}->{$actions_pointer} ) eq 'ARRAY' ) { unshift @actions, @{ delete $session{'Actions'}->{$actions_pointer} }; $session{'i'}++; } # XXX: run callbacks per row really crazy idea @actions = grep $_, grep { my $skip; $m->callback( %ARGS, row => \$_, skip => \$skip, CallbackName => 'ModifyRow', ); !$skip; } grep $_, @actions; return unless @actions; <%ARGS> $titlebox => {} @actions => undef rt-4.4.4/share/html/Elements/ShowSearch000644 000765 000024 00000014120 13437510132 020626 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc(RT::SavedSearch->EscapeDescription($search->Description), $ProcessedSearchArg->{'Rows'}), title_raw => $title_raw, title_href => $query_link_url.$QueryString, titleright => $customize ? loc('Edit') : '', titleright_href => $customize, hideable => $hideable &> <& $query_display_component, hideable => $hideable, %$ProcessedSearchArg, ShowNavigation => 0, Class => 'RT::Tickets', HasResults => $HasResults, PreferOrderBy => 1 &> <%init> my $search; my $user = $session{'CurrentUser'}->UserObj; my $SearchArg; my $customize; my $query_display_component = '/Elements/CollectionList'; my $query_link_url = RT->Config->Get('WebPath').'/Search/Results.html'; if ($SavedSearch) { my ( $container_object, $search_id ) = _parse_saved_search($SavedSearch); unless ( $container_object ) { $m->out(loc("Either you have no rights to view saved search [_1] or identifier is incorrect", $m->interp->apply_escapes($SavedSearch, 'h'))); return; } $search = RT::Attribute->new( $session{'CurrentUser'} ); $search->Load($search_id); unless ( $search->Id && ref( $SearchArg = $search->Content ) eq 'HASH' ) { $m->out(loc("Saved search [_1] not found", $m->interp->apply_escapes($SavedSearch, 'h'))) unless $IgnoreMissing; return; } $SearchArg->{'SavedSearchId'} ||= $SavedSearch; $SearchArg->{'SearchType'} ||= 'Ticket'; if ( $SearchArg->{SearchType} ne 'Ticket' ) { # XXX: dispatch to different handler here $query_display_component = '/Search/Elements/' . $SearchArg->{SearchType}; $query_link_url = RT->Config->Get('WebPath') . "/Search/$SearchArg->{SearchType}.html"; $ShowCount = 0; } elsif ($ShowCustomize) { $customize = RT->Config->Get('WebPath') . '/Search/Build.html?' . $m->comp( '/Elements/QueryString', SavedSearchLoad => $SavedSearch ); } } else { ($search) = RT::System->new( $session{'CurrentUser'} ) ->Attributes->Named( 'Search - ' . $Name ); unless ( $search && $search->Id ) { my (@custom_searches) = RT::System->new( $session{'CurrentUser'} )->Attributes->Named('SavedSearch'); foreach my $custom (@custom_searches) { if ($custom->Description eq $Name) { $search = $custom; last } } unless ($search && $search->id) { $m->out(loc("Predefined search [_1] not found", $m->interp->apply_escapes($Name, 'h'))); return; } } $SearchArg = $user->Preferences( $search, $search->Content ); if ($ShowCustomize) { $customize = RT->Config->Get('WebPath') . '/Prefs/Search.html?' . $m->comp( '/Elements/QueryString', name => ref($search) . '-' . $search->Id ); } } # ProcessedSearchArg is a search with overridings, but for link we use # orginal search's poperties my $ProcessedSearchArg = $SearchArg; $ProcessedSearchArg = { %$SearchArg, %Override } if keys %Override; $m->callback( %ARGS, CallbackName => 'ModifySearch', OriginalSearch => $SearchArg, Search => $ProcessedSearchArg, ); foreach ( $SearchArg, $ProcessedSearchArg ) { $_->{'Format'} ||= ''; $_->{'Query'} ||= ''; # extract-message-catalog would "$1", so we avoid quotes for loc calls $_->{'Format'} =~ s/__loc\(["']?(\w+)["']?\)__/my $f = "$1"; loc($f)/ge; } my $QueryString = '?' . $m->comp( '/Elements/QueryString', %$SearchArg ); my $title_raw; if ($ShowCount) { my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); $tickets->FromSQL($ProcessedSearchArg->{Query}); my $count = $tickets->CountAll(); $title_raw = '' . loc('(Found [quant,_1,ticket,tickets])', $count) . ''; # don't repeat the search in CollectionList $ProcessedSearchArg->{Collection} = $tickets; $ProcessedSearchArg->{TotalFound} = $count; } <%ARGS> $Name => undef $SavedSearch => undef %Override => () $IgnoreMissing => undef $hideable => 1 $ShowCustomize => 1 $ShowCount => RT->Config->Get('ShowSearchResultCount') $HasResults => undef rt-4.4.4/share/html/Elements/RT__Transaction/000755 000765 000024 00000000000 13437510132 021670 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/EditCustomFieldCombobox000644 000765 000024 00000005636 13437510132 023311 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % while ($Values and my $value = $Values->Next and $Multiple) {
    % } % (!$Multiple or !$MaxValues or !$Values or $Values->Count < $MaxValues) or return; <& /Widgets/ComboBox, Name => $name, Default => $Default, Rows => $Rows, Class => "CF-".$CustomField->id."-Edit", Values => [map {$_->Name} @{$CustomField->Values->ItemsArrayRef}], &> <%INIT> my $name = $Name || $NamePrefix . $CustomField->Id . '-Value'; my $delete_name = $name; $delete_name =~ s!-Value$!-DeleteValueIds!; <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Default => undef $Values => undef $Multiple => 0 $Rows => undef $MaxValues => undef $Name => undef rt-4.4.4/share/html/Elements/SimpleSearch000644 000765 000024 00000004611 13437510132 021143 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $value = defined $DECODED_ARGS->{q} ? $DECODED_ARGS->{q} : ''; <%ARGS> $SendTo => '/Search/Simple.html' $Placeholder => loc('Search') rt-4.4.4/share/html/Elements/EditCustomFieldWikitext000644 000765 000024 00000005453 13437510132 023346 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % while ($Values and my $value = $Values->Next ) {
    % } % if (!$MaxValues or !$Values or $Values->Count < $MaxValues) { % } <%INIT> # XXX - MultiValue textarea is for now outlawed. $MaxValues = 1; my $name = $Name || $NamePrefix . $CustomField->Id . '-Values'; <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Name => undef $Default => undef $Values => undef $MaxValues => undef $Cols $Rows rt-4.4.4/share/html/Elements/ShowCustomFieldWikitext000644 000765 000024 00000005105 13437510132 023373 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%$wiki_content|n%> <%init> my $content = $Object->LargeContent || $Object->Content; $content = $m->comp('/Elements/ScrubHTML', Content => $content); my $base = $Object->Object->WikiBase; my %wiki_args = ( extended => 1, absolute_links => 1, implicit_links => RT->Config->Get('WikiImplicitLinks'), prefix => $base, ); $m->callback( CallbackName => 'WikiFormatArgs', ARGSRef => \%ARGS, WikiArgsRef => \%wiki_args, ContentRef => \$content); use Text::WikiFormat; my $wiki_content = Text::WikiFormat::format( $content."\n" , {}, { %wiki_args } ); <%ARGS> $Object rt-4.4.4/share/html/Elements/SelectObject000644 000765 000024 00000007561 13437510132 021141 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($Lite) { % my $d = $ObjectType->new($session{'CurrentUser'}); % $d->Load($Default); % } % else { % } <%args> $ObjectType $CheckRight => undef $ShowNullOption => 1 $ShowAll => 1 $Name => undef $Verbose => undef $NamedValues => 0 $DefaultLabel => "-" $Default => 0 $Lite => 0 $OnChange => undef $Multiple => 0 $Size => 6 $Class => "" $CacheNeedsUpdate => undef <%init> $ObjectType = "RT::$ObjectType" unless $ObjectType =~ /::/; $Class ||= "select-" . CSSClass("\L$1") if $ObjectType =~ /RT::(.+)$/; my $cache_key; if ( not $Lite ) { $cache_key = SetObjectSessionCache( ObjectType => $ObjectType, CheckRight => $CheckRight, ShowAll => $ShowAll, Default => $Default, CacheNeedsUpdate => $CacheNeedsUpdate, ); } my $default_entry; if ( $Default && !$Lite ) { my $object = $ObjectType->new( $session{'CurrentUser'} ); $object->Load( $Default ); if ( $object->id && !$session{$cache_key}{id}{ $object->id } ) { $default_entry = { Id => $object->id, Name => '#' . $object->id, Description => '#' . $object->id, }; } } rt-4.4.4/share/html/Elements/MyAdminQueues000644 000765 000024 00000004536 13437510132 021320 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc("Queues I administer"), bodyclass => "" &> <& /Elements/QueueSummaryByStatus, queues => $session{$cache_key}{objects}, &> <%INIT> my $cache_key = SetObjectSessionCache( ObjectType => 'RT::Queue', CheckRight => 'AdminQueue', ShowAll => 0, CacheNeedsUpdate => RT->System->QueueCacheNeedsUpdate, ); rt-4.4.4/share/html/Elements/SelectTimeUnits000644 000765 000024 00000004760 13437510132 021652 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> $Name .= '-TimeUnits' unless $Name =~ /-TimeUnits$/io; <%ARGS> $Name => '' $Default => RT->Config->Get('DefaultTimeUnitsToHours', $session{'CurrentUser'}) ? 'hours' : 'minutes' rt-4.4.4/share/html/Elements/Checkbox000644 000765 000024 00000004431 13437510132 020312 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} /> <%ARGS> $Name => undef $Default => undef $True => undef $False => undef $IsChecked => undef <%INIT> $IsChecked = ($Default && $Default =~ /checked/i) ? ' checked="checked" ' : ""; 1; rt-4.4.4/share/html/Elements/EditCustomFieldFreeform000644 000765 000024 00000005600 13437510132 023275 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $name = $Name || $NamePrefix . $CustomField->Id . ( $Multiple ? '-Values' : '-Value' ); % if ($Multiple) { % } else { % } <%INIT> if ( $Multiple and $Values ) { $Default = join "\n", map $_->Content, @{ $Values->ItemsArrayRef }; } unless ( $Multiple ) { $Default =~ s/\s*\n+\s*/ /g if $Default; } <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Name => undef $Default => undef $Values => undef $Multiple => undef $Cols $Rows rt-4.4.4/share/html/Elements/SelectSLA000644 000765 000024 00000005164 13437510132 020347 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> $Default ||= $DECODED_ARGS->{SLA} if $DefaultFromArgs; $Default ||= $TicketObj->SLA if $TicketObj; <%ARGS> $DefaultFromArgs => 1 $TicketObj => undef $QueueObj => undef $Name => 'SLA' $Default => undef $DefaultValue => 1 $DefaultLabel => '-' rt-4.4.4/share/html/Elements/RT__CustomField/000755 000765 000024 00000000000 13437510132 021621 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/SelectIPRelation000644 000765 000024 00000004551 13437510132 021735 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef @Options => ( loc('is'), loc("isn't"), loc('less than'), loc('greater than')) @Values => ('=', '!=', '<', '>') $Default => '' rt-4.4.4/share/html/Elements/RT__ScripCondition/000755 000765 000024 00000000000 13437510132 022332 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/Quicksearch000644 000765 000024 00000004137 13437510132 021031 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& QueueList, %ARGS &> <%INIT> RT->Deprecated( Remove => '4.6', Instead => 'QueueList', ); rt-4.4.4/share/html/Elements/ShowCustomFieldDate000644 000765 000024 00000004422 13437510132 022441 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $content = $Object->Content; my $DateObj = RT::Date->new ( $session{'CurrentUser'} ); $DateObj->Set( Format => 'unknown', Value => $content, Timezone => 'utc' ); $content = $DateObj->AsString(Time => 0, Timezone => 'utc'); <%$content|n%> <%ARGS> $Object rt-4.4.4/share/html/Elements/SingleUserRoleInput000644 000765 000024 00000005422 13437510132 022507 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/EmailInput, Name => $role->GroupType, Size => $Size, ($ShowPlaceholder ? (Placeholder => loc(RT->Nobody->Name)) : ()), ($ShowEntryHint ? (EntryHint => $role->EntryHint) : ()), Default => $Default, Autocomplete => 1, AutocompleteReturn => "Name", AutocompleteNobody => 1, &> <%INIT> if (!defined($Default)) { if (!$User && $Ticket) { my $group = $Ticket->RoleGroup($role->GroupType); my $users = $group->UserMembersObj( Recursively => 0 ); $users->{find_disabled_rows} = 1; $User = $users->First; } $Default = (!$User || $User->Id == RT->Nobody->id ? "" : $User->Name); } <%ARGS> $role $Size => undef $Default => undef $User => undef $Ticket => undef $ShowEntryHint => 1 $ShowPlaceholder => 1 rt-4.4.4/share/html/Elements/SetupSessionCookie000644 000765 000024 00000004261 13437510132 022363 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> return if $m->is_subrequest; # avoid reentrancy, as suggested by masonbook RT::Interface::Web::LoadSessionFromCookie(); return (); <%ARGS> $SessionCookie => undef rt-4.4.4/share/html/Elements/SelectPriority000644 000765 000024 00000004233 13437510132 021545 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => 'Priority' $Default => '' <%INIT> $Default = '' unless defined $Default; rt-4.4.4/share/html/Elements/EmailInput000644 000765 000024 00000005533 13437510132 020637 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($EntryHint) {
    <% loc($EntryHint) %> % } <%ARGS> $Name $Size => 40 $Default => '' $Autocomplete => 1 $AutocompleteMultiple => 0 $AutocompleteReturn => '' $AutocompleteNobody => 0 $AutocompleteSystem => 0 $EntryHint => '' $Placeholder => '' rt-4.4.4/share/html/Elements/ShowCustomFieldBinary000644 000765 000024 00000004403 13437510132 023007 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if (my $url = RT->System->ExternalStorageURLFor($Object)) { % } else { % } <% $Object->Content %> <%ARGS> $Object => undef rt-4.4.4/share/html/Elements/DoAuth000644 000765 000024 00000005573 13437510132 017760 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> # return as quickly as possible if the user is logged in return if $session{CurrentUser} && $session{'CurrentUser'}->id; # It's important to nab the next page from the session before we # potentially blow the session away below. my $next = $session{'NextPage'}->{ $ARGS{'next'} || "" }; $next = $next->{'url'} if ref $next; my ($val,$msg) = RT::Authen::ExternalAuth::DoAuth(\%session,$user,$pass); $RT::Logger->debug("Autohandler called ExternalAuth. Response: ($val, $msg)"); if ( $val ) { $m->callback( %ARGS, CallbackName => 'SuccessfulLogin', CallbackPage => '/autohandler', RedirectTo => \$next ); } # Redirect to the relevant page if the above succeeded RT::Interface::Web::Redirect( $next ) if $val and $next and $m->request_comp->path eq '/NoAuth/Login.html'; # this component should never generate content return; <%ARGS> $user => undef $pass => undef rt-4.4.4/share/html/Elements/ShowUser000644 000765 000024 00000006332 13437510132 020345 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> # $User is an RT::User object # $Address is Email::Address object my $display = RT::User->Format( User => $User, Address => $Address, CurrentUser => $session{CurrentUser}, Format => $style, ); # RT::User->Format does this itself, but we want to make sure we have a $User # if at all possible for the rest of our code below. if ($Address and not $User) { $User = RT::User->new( $session{CurrentUser} ); $User->LoadByEmail( $Address->address ); undef $User unless $User->id; } my %system_user = ( RT->Nobody->id => 1, RT->SystemUser->id => 1, ); $m->callback( ARGSRef => \%ARGS, User => $User, Address => $Address, display => \$display, system_user => \%system_user, CallbackName => 'Modify', ); <%ARGS> $User => undef $Address => undef $style => undef $Link => 1 id ? 'data-user-id="'.$User->id.'"' : "" |n %>>\ % if ($Link and $User and $User->id and not $system_user{$User->id} and $session{CurrentUser}->Privileged) { /User/Summary.html?id=<% $User->id %>">\ <% $display %>\ \ % } else { <% $display %>\ % } \ rt-4.4.4/share/html/Elements/ShowHistoryHeader000644 000765 000024 00000010174 13437510132 022200 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Object $ShowHeaders => 0 $ShowTitle => 1 $ShowDisplayModes => 1 $ScrollShowHistory => 0 <%INIT> my $record_type = $Object->RecordType; my $histid = "\L$record_type\E-" . $Object->id . "-history";
    <%perl> if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) { my $title = $ShowTitle ? loc('History') : ' '; my $titleright = ''; if ( $ScrollShowHistory ) { $titleright .= qq{} . qq{} . loc('Load all history') . qq{} . ($ShowDisplayModes ? '—' : '') . qq{}; } if ( $ShowDisplayModes ) { if ( RT->Config->Get( 'QuoteFolding', $session{CurrentUser} ) ) { my $open_all = $m->interp->apply_escapes( loc("Show all quoted text"), 'j' ); my $open_html = $m->interp->apply_escapes( loc("Show all quoted text"), 'h' ); my $close_all = $m->interp->apply_escapes( loc("Hide all quoted text"), 'j' ); $titleright .= '$open_html — "; } if ($ShowHeaders) { $titleright .= qq{} . loc("Show brief headers") . qq{}; } else { $titleright .= qq{} . loc("Show full headers") . qq{}; } } % $m->callback( CallbackName => 'BeforeTitle', %ARGS, title => \$title, titleright => \$titleright ); <& /Widgets/TitleBoxStart, title => $title, titleright_raw => $titleright &> % }
    rt-4.4.4/share/html/Elements/SelectCustomFieldOperator000644 000765 000024 00000004643 13437510132 023663 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef @Options => ( loc('matches'), loc("doesn't match"), loc('is'), loc("isn't"), loc('less than'), loc('greater than')) @Values => ('LIKE', 'NOT LIKE', '=', '!=', '<', '>') $Default => '' rt-4.4.4/share/html/Elements/MakeClicky000644 000765 000024 00000013337 13437510132 020605 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ONCE> use Regexp::Common qw(URI); my $escaper = sub { my $content = shift; RT::Interface::Web::EscapeHTML( \$content ); return $content; }; my %actions = ( default => sub { my %args = @_; return $escaper->($args{value}); }, url => sub { my %args = @_; my $post = ""; $post = ")" if $args{value} !~ /\(/ and $args{value} =~ s/\)$//; $args{value} = $escaper->($args{value}) unless $args{html}; my $result = qq{[}. loc('Open URL') .qq{]}; return $args{value} . qq{ $result$post}; }, url_overwrite => sub { my %args = @_; my $post = ""; $post = ")" if $args{value} !~ /\(/ and $args{value} =~ s/\)$//; $args{value} = $escaper->($args{value}) unless $args{html}; my $result = qq{$args{value}}; return qq{$result$post}; }, ); my @types = ( { name => "httpurl", regex => qr/$RE{URI}{HTTP}{-keep}{-scheme => 'https?'}(?:#[^\s<]+)?(? "url", }, { name => "httpurl_overwrite", regex => qr/$RE{URI}{HTTP}{-keep}{-scheme => 'https?'}(?:#[^\s<]+)?(? "url_overwrite", }, ); my $handle = sub { my %args = @_; for my $rec( @types ) { return $rec->{action}->( %args, all_matches => [ $args{value}, $1, $2, $3, $4, $5, $6, $7, $8, $9 ], ) if $args{value} =~ $rec->{regex}; } }; my $cache; # only defined via callback # Hook to add more Clicky types # XXX Have to have Page argument, as Mason gets caller wrong in Callback? # This happens as we are in <%ONCE> block $m->callback( CallbackPage => "/Elements/MakeClicky", types => \@types, actions => \%actions, handle => \$handle, cache => \$cache, ); # Filter my %active; $active{$_}++ for RT->Config->Get('Active_MakeClicky'); @types = grep $active{$_->{name}}, @types; # Build up the whole match my $regexp = join "|", map $_->{regex}, @types; # Make sure we have a default $actions{default} ||= sub {}; # Anchor the regexes and look up the actions foreach my $type ( @types ) { $type->{regex} = qr/^$type->{regex}$/; $type->{action} = $actions{$type->{action}} || $actions{default}; } <%ARGS> $content => undef $html => undef <%INIT> return unless defined $$content; if ( defined $cache ) { my $cached_content = $cache->(fetch => $content); if ( $cached_content ) { RT->Logger->debug("Found MakeClicky cache"); $$content = $cached_content; return; } } unless ( $regexp ) { RT::Interface::Web::EscapeHTML( $content ) unless $html; return; } my $pos = 0; while ( $$content =~ /($regexp)/gsio ) { my $match = $1; next if $` =~ /\w+=(?:"|")$/; my $skipped_len = pos($$content) - $pos - length($match); if ( $skipped_len > 0 ) { my $plain; if ( $html ) { $plain = substr( $$content, $pos, $skipped_len ); } else { $plain = $escaper->( substr( $$content, $pos, $skipped_len ) ) } substr( $$content, $pos, $skipped_len ) = $plain; $pos += length($plain); } my $plain = $handle->( %ARGS, value => $match, all_matches => [ $1, $2, $3, $4, $5, $6, $7, $8, $9 ], ); substr( $$content, $pos, length($match) ) = $plain; pos($$content) = ( $pos += length($plain) ); } substr( $$content, $pos ) = $escaper->( substr( $$content, $pos ) ) unless ($pos == length $$content) || $html; pos($$content) = 0; $cache->(store => $content) if defined $cache; rt-4.4.4/share/html/Elements/ShowLinks000644 000765 000024 00000011460 13437510132 020505 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % for my $type (@display) { % } % # Allow people to add more rows to the table % $m->callback( %ARGS ); <& /Elements/ShowCustomFields, Object => $Object, Grouping => 'Links', Table => 0 &>
    <& ShowRelationLabel, Object => $Object, Label => $labels{$type}.':', Relation => $type &> % if ($clone{$type}) { (<% loc('Create') %>) % } <& ShowLinksOfType, Object => $Object, Type => $type, Recurse => ($type eq 'Members') &>
    % if ($Object->isa('RT::Ticket')) {
    " name="SpawnLinkedTicket"> <&|/l&>Ticket in <& /Elements/SelectNewTicketQueue, Name => 'CloneQueue' &>
    % } <%INIT> my @display = qw(DependsOn DependedOnBy MemberOf Members RefersTo ReferredToBy); $m->callback( %ARGS, CallbackName => 'ChangeDisplay', display => \@display ); my %labels = ( DependsOn => loc('Depends on'), DependedOnBy => loc('Depended on by'), MemberOf => loc('Parents'), Members => loc('Children'), RefersTo => loc('Refers to'), ReferredToBy => loc('Referred to by'), ); my %clone; if ( $Object->isa("RT::Ticket") and $Object->QueueObj->CurrentUserHasRight('CreateTicket')) { my $id = $Object->id; my $path = RT->Config->Get('WebPath') . '/Ticket/Create.html?Queue=' . $Object->Queue . '&CloneTicket=' . $id; for my $relation (@display) { my $mode = $RT::Link::TYPEMAP{$relation}->{Mode}; my $type = $RT::Link::TYPEMAP{$relation}->{Type}; my $field = $mode eq 'Base' ? 'new-' . $type : $type . '-new'; my @copy = ($id); # Canonicalized type captures both directions if ($type eq "RefersTo") { my $other = "Local" . $mode; push @copy, map { $_->$other() } @{ $Object->$relation->ItemsArrayRef }; } $clone{$relation} = "$path&$field=" . join('%20', grep { $_ } @copy); } } <%ARGS> $Object rt-4.4.4/share/html/Elements/ShowHistory000644 000765 000024 00000005011 13437510132 021061 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ShowHistoryHeader, %ARGS &> % $m->callback( %ARGS, Object => $Object, CallbackName => 'BeforeTransactions' ); <& /Elements/ShowHistoryPage, %ARGS &>
    % if ($ShowDisplayModes or $ShowTitle) { <& /Widgets/TitleBoxEnd &> % }
    <%ARGS> $Object $Transactions => $Object->SortedTransactions $Attachments => $Object->Attachments( WithHeaders => 1 ) $AttachmentContent => $Object->TextAttachments $ShowHeaders => 0 $ShowTitle => 1 $ShowDisplayModes => 1 $PathPrefix => '' rt-4.4.4/share/html/Elements/JavascriptConfig000644 000765 000024 00000006655 13437510132 022032 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $Config = {}; $Config->{$_} = RT->Config->Get( $_, $session{CurrentUser} ) for qw(rtname WebPath MessageBoxRichText MessageBoxRichTextHeight MessageBoxUseSystemContextMenu MaxAttachmentSize); my $CurrentUser = {}; if ($session{CurrentUser} and $session{CurrentUser}->id) { $CurrentUser->{$_} = $session{CurrentUser}->$_ for qw(id Name EmailAddress RealName); $CurrentUser->{Privileged} = $session{CurrentUser}->Privileged ? JSON::true : JSON::false; $Config->{WebHomePath} = RT->Config->Get("WebPath") . (!$session{CurrentUser}->Privileged ? "/SelfService" : ""); } my $Catalog = { quote_in_filename => "Filenames with double quotes can not be uploaded.", #loc attachment_warning_regex => "\\b(re)?attach", #loc shortcut_help_error => "Unable to open shortcut help. Reason:", #loc error => "Error", #loc check => "Check", #loc remove => "Remove", #loc loading => "Loading...", #loc try_again => "Try again", #loc history_scroll_error => "Could not load ticket history. Reason:", #loc }; $_ = loc($_) for values %$Catalog; $m->callback( CallbackName => "Data", CurrentUser => $CurrentUser, Config => $Config, Catalog => $Catalog, ); rt-4.4.4/share/html/Elements/RT__Asset/000755 000765 000024 00000000000 13437510132 020462 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/SelectStatus000644 000765 000024 00000012111 13437510132 021201 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> ### XXX: no cover for Tools/MyDay.html my %statuses_by_lifecycle; if ( @Statuses ) { $statuses_by_lifecycle{''} = \@Statuses; } else { if ( $Object ) { my $lifecycle = $Object->LifecycleObj; if ($Object->_Accessible("Status", "read")) { my $current = $Object->Status; my @status; push @status, $current; my %has = (); foreach my $next ( $lifecycle->Transitions( $current ) ) { my $check = $lifecycle->CheckRight( $current => $next ); $has{ $check } = $Object->CurrentUserHasRight( $check ) unless exists $has{ $check }; push @status, $next if $has{ $check }; } $statuses_by_lifecycle{$lifecycle->Name} = \@status; } else { $statuses_by_lifecycle{$lifecycle->Name} = [ $lifecycle->Transitions('') ]; } } for my $lifecycle ( @Lifecycles ) { $statuses_by_lifecycle{$lifecycle->Name} ||= [ $lifecycle->Valid ]; } if (not keys %statuses_by_lifecycle) { for my $lifecycle (map { RT::Lifecycle->Load(Type => $Type, Name => $_) } RT::Lifecycle->List($Type)) { $statuses_by_lifecycle{$lifecycle->Name} = [ $lifecycle->Valid ]; } } } if (keys %statuses_by_lifecycle) { my %simplified; my $key = sub { join "\0", sort @{$_[0]}; }; for my $name (sort keys %statuses_by_lifecycle) { my $matched; my $statuses = $statuses_by_lifecycle{$name}; for my $simple (sort keys %simplified) { if ($key->($statuses) eq $key->($simplified{$simple})) { # Statuses are the same, join 'em! $simplified{"$simple, $name"} = delete $simplified{$simple}; $matched++; last; } } unless ($matched) { $simplified{$name} = $statuses; } } %statuses_by_lifecycle = %simplified; } my $group_by_lifecycle = keys %statuses_by_lifecycle > 1; <%ARGS> $Name => undef $Type => undef, @Statuses => () $Object => undef, @Lifecycles => (), $Default => '' $SkipDeleted => 0 $DefaultValue => 1 $DefaultLabel => "-" $Multiple => 0 $Size => 6 $ShowActiveInactive => 0 rt-4.4.4/share/html/Elements/ListMenu000644 000765 000024 00000006077 13437510132 020334 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $menu $show_children => undef
      % for my $child ($menu->children) {
    • <% $show_link->( $child ) |n %>
      % if ( my $description = $child->description ) { <% $description %>\ % }
    • % if ($show_children && $child->children) { <& /Elements/ListMenu, menu => $child &> % } % }
    <%INIT> my $web_path = RT->Config->Get('WebPath'); my $interp = $m->interp; my $show_link = sub { my $e = shift; my $res = ''; if ( $e->path) { $res .= 'path or $e->path =~ m{^\w+:/}) ? $e->path : $web_path . $e->path; $res .= ' href="'. $interp->apply_escapes($url, 'h') .'"' if $url; if ( $e->target ) { $res .= ' target="'. $interp->apply_escapes( $e->target, 'h' ) .'"'; } $res .= '>'; } my $title = $e->title; $title = $interp->apply_escapes( $title, 'h' ); $res .= $title; if ( $e->path) { $res .= ''; } return $res; }; rt-4.4.4/share/html/Elements/QueueList000644 000765 000024 00000005314 13437510132 020505 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&|/Widgets/TitleBox, title => loc("Queue list"), bodyclass => "", titleright => loc("Edit"), titleright_href => RT->Config->Get('WebPath').'/Prefs/QueueList.html', &> <& $comp, queues => $session{$cache_key}{objects}, &>
    <%INIT> my $unwanted = $session{'CurrentUser'}->UserObj->Preferences('QueueList', {}); my $comp = $SplitByLifecycle? '/Elements/QueueSummaryByLifecycle' : '/Elements/QueueSummaryByStatus'; my $cache_key = SetObjectSessionCache( ObjectType => 'RT::Queue', CheckRight => 'ShowTicket', ShowAll => 0, CacheNeedsUpdate => RT->System->QueueCacheNeedsUpdate, Exclude => $unwanted, ); <%ARGS> $SplitByLifecycle => 1 rt-4.4.4/share/html/Elements/ShowLink000644 000765 000024 00000005402 13437510132 020321 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $member = $URI->Object; % if (blessed($member) and $member->isa("RT::Ticket") and $member->CurrentUserHasRight('ShowTicket')) { % my $class = $member->QueueObj->IsInactiveStatus($member->Status) % ? 'ticket-inactive' % : 'ticket-active'; % $class .= ' '.CSSClass($member->Status); <%$member->Id%>: <%$member->Subject || ''%> [<% loc($member->Status) %>] (<& /Elements/ShowUser, User => $member->OwnerObj &>) % } else { <%$URI->AsString%> % } <%ARGS> $URI => undef <%INIT> my $href = $URI->AsHREF; if ( $URI->IsLocal ) { my $base = RT->Config->Get('WebBaseURL'); # URI->rel doesn't contain the leading '/' $href = '/' . URI->new($href)->rel($base); } rt-4.4.4/share/html/Elements/SelectGroups000644 000765 000024 00000005560 13437510132 021207 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/SelectMatch, Name => $SelectOpName, Default => $GroupOp &> <%INIT> my $CFs = RT::CustomFields->new($session{'CurrentUser'}); $CFs->LimitToChildType('RT::Group'); $CFs->OrderBy( FIELD => 'Name' ); <%ARGS> $GroupField => '' $GroupOp => '' $GroupString => '' $SelectFieldName => 'GroupField' $SelectOpName => 'GroupOp' $InputStringName => 'GroupString' rt-4.4.4/share/html/Elements/SelectTimezone000644 000765 000024 00000005075 13437510132 021523 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ONCE> use DateTime; my @names = DateTime::TimeZone->all_names; my %label; my $dt = DateTime->now; for ( @names ) { $dt->set_time_zone( $_ ); $label{$_} = $_ . ' ' . $dt->strftime('%z'); } <%ARGS> $ShowNullOption => 1 $Name => undef $Default => 0 rt-4.4.4/share/html/Elements/CryptStatus000644 000765 000024 00000016212 13437510132 021071 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Message $WarnUnsigned => undef $Reverify => 1 <%INIT> my @runs; my $needs_unsigned_warning = $WarnUnsigned; my @protocols = RT::Crypt->EnabledProtocols; my $re_protocols = join '|', map "\Q$_\E", @protocols; foreach ( $Message->SplitHeaders ) { if ( s/^X-RT-($re_protocols)-Status:\s*//io ) { push @runs, [ $1, RT::Crypt->ParseStatus( Protocol => "$1", Status => $_ ) ]; } $needs_unsigned_warning = 0 if /^X-RT-Incoming-Signature:/; # if this is not set, then the email is generated by RT, and so we don't # need "email is unsigned" warnings $needs_unsigned_warning = 0 if not /^Received:/; } return unless @runs or $needs_unsigned_warning; my $reverify_cb = sub { my $top = shift; my $txn = $top->TransactionObj; unless ( $txn && $txn->id ) { return (0, "Couldn't get transaction of attachment #". $top->id); } my $attachments = $txn->Attachments->Clone; $attachments->Limit( FIELD => 'ContentType', VALUE => 'application/x-rt-original-message' ); my $original = $attachments->First; unless ( $original ) { return (0, "Couldn't find attachment with original email of transaction #". $txn->id); } my $parser = RT::EmailParser->new(); $parser->SmartParseMIMEEntityFromScalar( Message => $original->Content, Decode => 0, Exact => 1, ); my $entity = $parser->Entity; unless ( $entity ) { return (0, "Couldn't parse content of attachment #". $original->id); } my @res = RT::Crypt->VerifyDecrypt( Entity => $entity ); return (0, "Content of attachment #". $original->id ." is not signed and/or encrypted") unless @res; $top->DelHeader("X-RT-$_-Status") for RT::Crypt->Protocols; $top->AddHeader(map { ("X-RT-". $_->{Protocol} ."-Status" => $_->{'status'} ) } @res); $top->DelHeader("X-RT-Privacy"); my %protocols; $protocols{$_->{Protocol}}++ for @res; $top->AddHeader('X-RT-Privacy' => $_ ) for sort keys %protocols; $top->DelHeader('X-RT-Incoming-Signature'); my @status = RT::Crypt->ParseStatus( Protocol => $res[0]{'Protocol'}, Status => $res[0]{'status'}, ); for ( @status ) { if ( $_->{'Operation'} eq 'Verify' && $_->{'Status'} eq 'DONE' ) { $top->AddHeader( 'X-RT-Incoming-Signature' => $_->{'UserString'} ); $needs_unsigned_warning = 0; } } return (1, "Reverified original message"); }; my @messages; foreach my $run ( @runs ) { my $protocol = shift @$run; $protocol = $RT::Crypt::PROTOCOLS{lc $protocol}; foreach my $line ( @$run ) { if ( $line->{'Operation'} eq 'KeyCheck' ) { next unless $Reverify; # if a public key was missing during verification then we want try again next unless $line->{'KeyType'} eq 'public' && $line->{'Status'} eq 'MISSING'; # but only if we have key my %key = RT::Crypt->GetPublicKeyInfo( Protocol => $protocol, Key => $line->{'Key'} ); if ( $key{'info'} ) { my ($status, $msg) = $reverify_cb->($Message); unless ($status) { $RT::Logger->error($msg); } else { return $m->comp('SELF', %ARGS, Reverify => 0); } } else { push @messages, { Tag => $protocol, Classes => [qw/keycheck bad/], Value => $m->interp->apply_escapes( loc( "Public key '0x[_1]' is required to verify signature", $line->{'Key'} ), 'h'), }; } } elsif ( $line->{'Operation'} eq 'PassphraseCheck' ) { next if $line->{'Status'} eq 'DONE'; push @messages, { Tag => $protocol, Classes => ['passphrasecheck', lc $line->{Status}], Value => $m->interp->apply_escapes( loc( $line->{'Message'} ), 'h'), }; } elsif ( $line->{'Operation'} eq 'Decrypt' ) { push @messages, { Tag => $protocol, Classes => ['decrypt', lc $line->{Status}], Value => $m->interp->apply_escapes( loc( $line->{'Message'} ), 'h'), }; } elsif ( $line->{'Operation'} eq 'Verify' ) { push @messages, { Tag => $protocol, Classes => ['verify', lc $line->{Status}, 'trust-'.($line->{Trust} || 'UNKNOWN')], Value => $m->interp->apply_escapes( loc( $line->{'Message'} ), 'h'), }; } else { next if $line->{'Status'} eq 'DONE'; push @messages, { Tag => $protocol, Classes => [lc $line->{Operation}, lc $line->{Status}], Value => $m->interp->apply_escapes( loc( $line->{'Message'} ), 'h'), } } } } push @messages, { Tag => "Signing", Classes => ['verify', 'bad'], Value => loc('Warning! This is NOT signed!') } if $needs_unsigned_warning; return unless @messages; my %seen; @messages = grep !$seen{$_->{Value}}++, @messages; return @messages; rt-4.4.4/share/html/Elements/MyReminders000644 000765 000024 00000004472 13437510132 021027 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, class => 'reminders', title => loc("My reminders"), title_href => RT->Config->Get('WebPath') . '/Tools/MyReminders.html' &> <& /Elements/ShowReminders, HasResults => $HasResults &> <%init> return unless RT->Config->Get('EnableReminders'); <%ARGS> $HasResults => undef rt-4.4.4/share/html/Elements/WidgetBar000644 000765 000024 00000004252 13437510132 020435 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % return unless ($menu); % for my $child ($menu->children) { % if (defined $child->raw_html) { <% $child->raw_html |n %> % } else { <% $child->title %>\ % } % } <%ARGS> $menu rt-4.4.4/share/html/Elements/CSRF000644 000765 000024 00000006252 13437510132 017324 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Possible cross-site request forgery') &> <& /Elements/Tabs &>

    <&|/l&>Possible cross-site request forgery

    % my $strong_start = ""; % my $strong_end = "";

    <&|/l_unsafe, $strong_start, $strong_end, $Reason, $action &>RT has detected a possible [_1]cross-site request forgery[_2] for this request, because [_3]. A malicious attacker may be trying to [_1][_4][_2] on your behalf. If you did not initiate this request, then you should alert your security team.

    % my $start = qq||; % my $end = qq||;

    <&|/l_unsafe, $escaped_path, $action, $start, $end &>If you really intended to visit [_1] and [_2], then [_3]click here to resume your request[_4].

    <& /Elements/Footer, %ARGS &> % $m->abort; <%ARGS> $OriginalURL => '' $Reason => '' $Token => '' <%INIT> my $escaped_path = $m->interp->apply_escapes($OriginalURL, 'h'); $escaped_path = "$escaped_path"; my $url_with_token = URI->new($OriginalURL); $url_with_token->query_form([CSRF_Token => $Token]); my $action = RT::Interface::Web::PotentialPageAction($OriginalURL) || loc("perform actions"); rt-4.4.4/share/html/Elements/SavedSearches000644 000765 000024 00000006076 13437510132 021313 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc('Saved Searches') &> % foreach my $Object (@Objects) { % my $SavedSearches = RT::SavedSearches->new($session{CurrentUser}); % $SavedSearches->LimitToPrivacy(join('-',ref($Object),$Object->Id),'Ticket'); % my $title; % if (ref $Object eq 'RT::User' && $Object->Id == $session{CurrentUser}->Id) { % $title = loc("My saved searches"); % } else { % $title = loc("[_1]'s saved searches",$Object->Name); % } % $title = $m->interp->apply_escapes($title, 'h'); <& /Elements/CollectionList, %ARGS, Class => 'RT::SavedSearch', Format => qq{'__Name__/TITLE:$title'}, Collection => $SavedSearches, PassArguments => [qw(Format Name id)], &> % } <%init> my @Objects = RT::SavedSearch->new($session{CurrentUser})->ObjectsForLoading; push @Objects, RT::System->new( $session{'CurrentUser'} ) if $session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser' ); <%ARGS> $user_attrs => undef rt-4.4.4/share/html/Elements/Logo000644 000765 000024 00000006507 13437510132 017472 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    % if ($user_logo) { <%loc($ARGS{'LogoAltText'}||RT->Config->Get('LogoAltText'))%> % } else { <%loc($ARGS{'LogoAltText'}||RT->Config->Get('LogoAltText'))%> % } % if ( $ShowName ) { <% $Name || loc("RT for [_1]", RT->Config->Get('rtname')) %> % }
    <%INIT> if ( exists $ARGS{'show_name'} ) { $RT::Logger->warning('show_name argument was renamed, use ShowName'); $ShowName = delete $ARGS{'show_name'}; } my $user_logo = blessed $RT::System ? $RT::System->FirstAttribute('UserLogo') : undef; # If we have the attribute, but no content, we don't really have a user logo if ($user_logo) { my $content = $user_logo->Content; undef $user_logo unless ref $content eq 'HASH' and defined $content->{'data'}; } if ($OnlyCustom and not $user_logo and ($ARGS{LogoURL}||RT->Config->Get('LogoURL')) =~ /request-tracker-logo\.png$/) { return; } <%ARGS> $ShowName => 1 $OnlyCustom => 0 $Name => undef $id => 'logo' rt-4.4.4/share/html/Elements/EditCustomFieldDateTime000644 000765 000024 00000004674 13437510132 023236 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $name = $Name || $NamePrefix.$CustomField->Id.'-Values'; <& /Elements/SelectDate, Name => $name, Default => $Default, current => 0 &> (<%$DateObj->AsString%>) <%INIT> my $DateObj = RT::Date->new ( $session{'CurrentUser'} ); $DateObj->Set( Format => $Format, Value => $Default ); <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Default => undef $Values => undef $MaxValues => 1 $Name => undef $Format => 'unknown' rt-4.4.4/share/html/Elements/ShowCustomFieldDateTime000644 000765 000024 00000004334 13437510132 023262 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $content = $Object->Content; my $DateObj = RT::Date->new ( $session{'CurrentUser'} ); $DateObj->Set( Format => 'ISO', Value => $content ); $content = $DateObj->AsString; <%$content|n%> <%ARGS> $Object rt-4.4.4/share/html/Elements/ShowMessageHeaders000644 000765 000024 00000010102 13437510132 022275 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( @headers ) { % foreach my $header (@headers) { % }
    <% $header->{'Tag'} %>: <% $header->{'Value'} | n %>
    % $m->callback( CallbackName => 'AfterHeaders', message => $Message ); % } <%INIT> my @headers; foreach my $field( RT->Config->Get('ShowBccHeader')? $Message->_SplitHeaders : $Message->SplitHeaders ) { my ($tag, $value) = split /:/, $field, 2; next unless $tag && $value; push @headers, { Tag => $tag, Value => $value }; } my %display_headers = map { lc($_) => 1 } @DisplayHeaders; $m->callback( message => $Message, headers => \@headers, display_headers => \%display_headers, ); unless ( $display_headers{'_all'} ) { @headers = grep $display_headers{ lc $_->{'Tag'} }, @headers; } my $object = $Message->TransactionObj->Object; foreach my $f (@headers) { $m->comp('/Elements/MakeClicky', content => \$f->{'Value'}, object => $object, %ARGS); if ($f->{'Tag'} eq 'RT-Attach') { $f->{'Value'} =~ s/(?:^\s*|\s*$)//g; # Blat in the filename and linkify my $att = RT::Attachment->new( $session{'CurrentUser'} ); $att->Load($f->{'Value'}); next unless $att->Id and $att->TransactionObj->CurrentUserCanSee; $f->{'Value'} = sprintf '%s', RT->Config->Get('WebPath'), $att->TransactionObj->Id, $att->Id, $m->interp->apply_escapes($att->Filename, qw(u h)), $m->interp->apply_escapes($att->Filename, 'h'); } } unshift @headers, $m->comp( 'CryptStatus', Message => $Message, WarnUnsigned => $WarnUnsigned ); $m->callback( CallbackName => 'BeforeLocalization', headers => \@headers, ); if ( $Localize ) { $_->{'Tag'} = loc($_->{'Tag'}) foreach @headers; } <%ARGS> $WarnUnsigned => 0 $Message => undef $Localize => 1 @DisplayHeaders => ('_all') rt-4.4.4/share/html/Elements/Dashboards000644 000765 000024 00000004453 13437510132 020642 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc('Dashboards'), title_href => RT->Config->Get('WebPath').'/Dashboards/index.html', titleright => loc("Edit"), titleright_href => RT->Config->Get('WebPath').'/Dashboards/index.html', &> <& /Dashboards/Elements/ShowDashboards, IncludeSuperuserGroups => 0 &> rt-4.4.4/share/html/Elements/RT__Dashboard/000755 000765 000024 00000000000 13437510132 021272 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/BulkCustomFields000644 000765 000024 00000010755 13437510132 022011 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $i = 0; % while (my $cf = $CustomFields->Next) { % my $rows = 5; % my $cf_id = $cf->id; % my @add = (NamePrefix => 'Bulk-Add-CustomField-', CustomField => $cf, Rows => $rows, % MaxValues => $cf->MaxValues, Multiple => ($cf->MaxValues == 1 ? 0 : 1) , Cols => 25, % Default => $ARGS{"Bulk-Add-CustomField-$cf_id-Values"} || $ARGS{"Bulk-Add-CustomField-$cf_id-Value"}, ); % my @del = (NamePrefix => 'Bulk-Delete-CustomField-', CustomField => $cf, % MaxValues => 0, Rows => $rows, Multiple => 1, Cols => 25, % Default => $ARGS{"Bulk-Delete-CustomField-$cf_id-Values"} || $ARGS{"Bulk-Delete-CustomField-$cf_id-Value"}, ); % if ($cf->Type eq 'Select') { % $RT::Logger->info("Unknown CustomField type: " . $cf->Type); % next % } % }
    <&|/l&>Name <&|/l&>Add values <&|/l&>Delete values
    <% $cf->Name %>
    (<% $cf->EntryHint // '' %>)
    <& /Elements/EditCustomFieldSelect, @add &> <& /Elements/EditCustomFieldSelect, @del &>
    % } elsif ($cf->Type eq 'Combobox') {
    <& /Elements/EditCustomFieldCombobox, @add &> <& /Elements/EditCustomFieldCombobox, @del &>
    % } elsif ($cf->Type eq 'Freeform') {
    <& /Elements/EditCustomFieldFreeform, @add &> <& /Elements/EditCustomFieldFreeform, @del &>
    % } elsif ($cf->Type eq 'Text') {
    <& /Elements/EditCustomFieldText, @add &> % } elsif ($cf->Type eq 'Wikitext') { <& /Elements/EditCustomFieldWikitext, @add &> % } elsif ($cf->Type eq 'Date') { <& /Elements/EditCustomFieldDate, @add &> <& /Elements/EditCustomFieldDate, @del &>
    % } elsif ($cf->Type eq 'DateTime') { % # Pass datemanip format to prevent another tz date conversion
    <& /Elements/EditCustomFieldDateTime, @add, Default => undef, Format => 'datemanip' &> <& /Elements/EditCustomFieldDateTime, @del, Default => undef, Format => 'datemanip' &>
    % } elsif ($cf->Type eq 'Autocomplete') {
    <& /Elements/EditCustomFieldAutocomplete, @add &> <& /Elements/EditCustomFieldAutocomplete, @del &>
    % } else {
    <&|/l&>(Unsupported custom field type)
    <%ARGS> $CustomFields <%INIT> return unless $CustomFields->Count; rt-4.4.4/share/html/Elements/SelectUsers000644 000765 000024 00000006163 13437510132 021031 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/SelectMatch, Name => $SelectOpName, Default => $UserOp &> <%INIT> my $CFs = RT::CustomFields->new($session{'CurrentUser'}); $CFs->LimitToChildType('RT::User'); $CFs->OrderBy( FIELD => 'Name' ); my @fields = RT::User->BasicColumns; if ( $Fields and ref $Fields eq 'ARRAY' ) { if ( ref $Fields->[0] eq 'ARRAY' ) { @fields = @$Fields; } else { # make the name equal the label @fields = [ @$Fields, @$Fields ]; } } <%ARGS> $UserField => '' $UserOp => '' $UserString => '' $Fields => undef $SelectFieldName => 'UserField' $SelectOpName => 'UserOp' $InputStringName => 'UserString' rt-4.4.4/share/html/Elements/RT__Catalog/000755 000765 000024 00000000000 13437510132 020755 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/QueryString000644 000765 000024 00000004733 13437510132 021065 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my @params; for my $key (sort keys %ARGS) { my $value = $ARGS{$key}; next unless defined $value; $key = $m->interp->apply_escapes( $key, 'u' ); if( UNIVERSAL::isa( $value, 'ARRAY' ) ) { push @params, map $key ."=". $m->interp->apply_escapes( $_, 'u' ), map defined $_? $_ : '', @$value; } else { push @params, $key ."=". $m->interp->apply_escapes($value, 'u'); } } return join '&', @params; rt-4.4.4/share/html/Elements/Menu000644 000765 000024 00000004150 13437510132 017466 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $menu $id => undef $toplevel => 1 $parent_id => '' $depth => 0 <%INIT> RenderMenu( %ARGS ); rt-4.4.4/share/html/Elements/CollectionAsTable/000755 000765 000024 00000000000 13437510132 022166 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/LoginHelp000644 000765 000024 00000004345 13437510132 020451 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $source = RT->Config->Meta('OwnerEmail')->{Source}; return unless $source->{SiteConfig} or $source->{Extension}; rt-4.4.4/share/html/Elements/RT__Ticket/000755 000765 000024 00000000000 13437510132 020626 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/SelectQueue000644 000765 000024 00000004771 13437510132 021017 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %if (RT->Config->Get("AutocompleteQueues", $session{'CurrentUser'})) { <& SelectQueueAutocomplete, %ARGS, &> %} else { <& SelectObject, %ARGS, ObjectType => "Queue", CheckRight => $CheckQueueRight, ShowAll => $ShowAllQueues, CacheNeedsUpdate => RT->System->QueueCacheNeedsUpdate, &> %} <%args> $CheckQueueRight => 'CreateTicket' $ShowAllQueues => 1 $AutoSubmit => 0 <%init> $ARGS{OnChange} = "jQuery(this).closest('form').submit();" if $AutoSubmit; rt-4.4.4/share/html/Elements/FindAsset000644 000765 000024 00000004331 13437510132 020443 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc('Find an asset') &>
    rt-4.4.4/share/html/Elements/ShowRelationLabel000644 000765 000024 00000005357 13437510132 022152 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($SearchURL) { <% $Label %> % } else { <% $Label %> % } <%INIT> my $typemap = $RT::Link::TYPEMAP{$Relation}; my $search_mode = $typemap->{Mode}; my $search_type = $typemap->{Type}; my $search_relation = $RT::Link::DIRMAP{$search_type}->{$search_mode}; my $SearchURL; if ($Object and $Object->id) { my $id = $Object->id; if ($Object->isa("RT::Ticket")) { $SearchURL = RT->Config->Get('WebPath') . '/Search/Results.html?' . $m->comp('/Elements/QueryString', Query => "$search_relation = $id"); } } $m->callback( CallbackName => "ModifySearchURL", SearchURL => \$SearchURL, ARGSRef => \%ARGS, ); <%ARGS> $Object => undef $Label $Relation rt-4.4.4/share/html/Elements/FindUser000644 000765 000024 00000004104 13437510132 020300 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, title => loc('Find a user')&> <& /Elements/GotoUser &> rt-4.4.4/share/html/Elements/SelectOwnerDropdown000644 000765 000024 00000011103 13437510132 022525 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my %user_uniq_hash; my $isSU = $session{CurrentUser} ->HasRight( Right => 'SuperUser', Object => $RT::System ); foreach my $object (@$Objects) { my $Users = RT::Users->new( $session{CurrentUser} ); $Users->LimitToPrivileged; $Users->WhoHaveRight( Right => 'OwnTicket', Object => $object, IncludeSystemRights => 1, IncludeSuperusers => $isSU ); while ( my $User = $Users->Next() ) { $user_uniq_hash{ $User->Id() } = $User; } } my $dropdown_limit = RT->Config->Get( 'DropdownMenuLimit' ) || 50; $m->callback( CallbackName => 'ModifyDropdownLimit', DropdownLimit => \$dropdown_limit ); if (keys(%user_uniq_hash) > $dropdown_limit ) { if ($Objects->[0]->id) { my $desc = $Objects->[0]->RecordType." ".$Objects->[0]->id; RT->Logger->notice("More than $dropdown_limit possible Owners found for $desc; switching to autocompleter. See the \$AutocompleteOwners configuration option"); } $m->comp("/Elements/SelectOwnerAutocomplete", %ARGS); return; } $m->callback( CallbackName => 'ModifyOwnerListRaw', ARGSRef => \%ARGS, UserHashRef => \%user_uniq_hash, DefaultRef => \$Default, Objects => $Objects ); if ($Default && $Default != RT->Nobody->id && !$user_uniq_hash{$Default}) { $user_uniq_hash{$Default} = RT::User->new($session{CurrentUser}); $user_uniq_hash{$Default}->Load($Default); } $Default = 0 unless defined $Default && $Default =~ /^\d+$/; my @formatednames = sort {lc $a->[1] cmp lc $b->[1]} map {[$_, $_->Format]} grep { $_->id != RT->Nobody->id } values %user_uniq_hash; my $nobody_user = RT::User->new( $session{CurrentUser} ); $nobody_user->Load( RT->Nobody->id ); my $nobody = [$nobody_user, $nobody_user->Format]; unshift @formatednames, $nobody; $m->callback( CallbackName => 'ModifyOwnerListSorted', ARGSRef => \%ARGS, NamesRef => \@formatednames, DefaultRef => \$Default, Objects => $Objects ); <%ARGS> $Name => undef $Objects => [] $Default => 0 $DefaultValue => 1 $DefaultLabel => "-" $ValueAttribute => 'id' rt-4.4.4/share/html/Elements/ScrubHTML000644 000765 000024 00000004102 13437510132 020322 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> return ScrubHTML($Content); <%args> $Content => undef rt-4.4.4/share/html/Elements/SelectDateRelation000644 000765 000024 00000004400 13437510132 022273 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Default => undef $Before => loc('before') $On => loc('on') $After => loc('after') rt-4.4.4/share/html/Elements/ShortcutHelp000644 000765 000024 00000012752 13437510132 021215 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $show_bulk_update => 0 $show_search => 0 $show_ticket_reply => 0 $show_ticket_comment => 0

    <&|/l&>Keyboard Shortcuts

    <&|/l&>Global

    / <&|/l&>Quick search
    gh <&|/l&>Return home
    gb / gf <&|/l&>Go back / forward
    % if($show_search) {
    <&|/l&>Search

    % if($show_bulk_update) { % }
    k / j <&|/l&>Move up / down the list of results
    o or <<&|/l&>Enter> <&|/l&>View highlighted ticket
    r <&|/l&>Reply to ticket
    c <&|/l&>Comment on ticket
    x <&|/l&>Toggle highlighted ticket's checkbox
    % } % if ($show_ticket_reply || $show_ticket_comment) {
    <&|/l&>Ticket

    % if ( $show_ticket_reply ) { % } % if ( $show_ticket_comment ) { % }
    r <&|/l&>Reply to current ticket
    c <&|/l&>Comment on current ticket
    % }
    rt-4.4.4/share/html/Elements/MyRT000644 000765 000024 00000010214 13437510132 017413 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( ARGSRef => \%ARGS, CallbackName => 'BeforeTable' ); % if ( $sidebar ) { % }
    % $show_cb->($_) foreach @$body; % $show_cb->($_) foreach @$sidebar;
    % $m->callback( ARGSRef => \%ARGS, CallbackName => 'AfterTable' ); <%INIT> my %allowed_components = map {$_ => 1} @{RT->Config->Get('HomepageComponents')}; my $user = $session{'CurrentUser'}->UserObj; unless ( $Portlets ) { my ($defaults) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings'); $Portlets = $user->Preferences( HomepageSettings => $defaults ? $defaults->Content : {} ); } $m->callback( CallbackName => 'MassagePortlets', Portlets => $Portlets ); my ($body, $sidebar) = @{$Portlets}{qw(body sidebar)}; unless( $body && @$body ) { $body = $sidebar || []; $sidebar = undef; } $sidebar = undef unless $sidebar && @$sidebar; my $Rows = $user->Preferences( 'SummaryRows', ( RT->Config->Get('DefaultSummaryRows') || 10 ) ); my $show_cb = sub { my $entry = shift; my $type = $entry->{type}; my $name = $entry->{'name'}; if ( $type eq 'component' ) { if (!$allowed_components{$name}) { $m->out( $m->interp->apply_escapes( loc("Invalid portlet [_1]", $name), "h" ) ); RT->Logger->info("Invalid portlet $name found on user " . $user->Name . "'s homepage"); if ($name eq 'QueueList' && $allowed_components{Quicksearch}) { RT->Logger->warning("You may need to replace the component 'Quicksearch' in the HomepageComponents config with 'QueueList'. See the UPGRADING-4.4 document."); } } else { $m->comp( $name, %{ $entry->{arguments} || {} } ); } } elsif ( $type eq 'system' ) { $m->comp( '/Elements/ShowSearch', Name => $name, Override => { Rows => $Rows } ); } elsif ( $type eq 'saved' ) { $m->comp( '/Elements/ShowSearch', SavedSearch => $name, Override => { Rows => $Rows } ); } else { $RT::Logger->error("unknown portlet type '$type'"); } }; <%ARGS> $Portlets => undef rt-4.4.4/share/html/Elements/SelectDate000644 000765 000024 00000005745 13437510132 020612 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( %ARGS, Name => $Name, CallbackName => 'BeforeDateInput', Object => $Object, ARGSRef => $ARGSRef, ShowTimeRef => \$ShowTime, ); % $m->callback( %ARGS, Name => $Name, CallbackName => 'AfterDateInput', Object => $Object, ARGSRef => $ARGSRef, ); <%init> unless ((defined $Default) or ($current <= 0)) { my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($current); $Default = sprintf("%04d-%02d-%02d %02d:%02d", $year+1900,$mon+1,$mday, $hour,$min); } $Default ||= ''; unless ($Name) { $Name = $menu_prefix. "_Date"; } <%args> $ShowTime => 1 $menu_prefix => '' $current => time $Default => '' $Name => undef $Size => 16 $Object => undef $ARGSRef => undef rt-4.4.4/share/html/Elements/PageLayout000644 000765 000024 00000005432 13437510132 020640 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $show_menu ) { % }
    <& /Elements/WidgetBar, menu => PageWidgets() &>
    % if ($m->comp_exists($stylesheet_plugin) ) { <& $stylesheet_plugin &> % }
    % $m->callback( %ARGS, CallbackName => 'BeforeBody' ); % $m->flush_buffer(); # we've got the page laid out, let's flush the buffer; <%ARGS> $title => $m->callers(-1)->path $show_menu => 1 <%init> my $style = $session{'CurrentUser'} ? $session{'CurrentUser'}->Stylesheet : RT->Config->Get('WebDefaultStylesheet'); my $stylesheet_plugin = "/NoAuth/css/".$style."/AfterMenus"; rt-4.4.4/share/html/Elements/ShowCustomFieldCustomGroupings000644 000765 000024 00000006025 13437510132 024735 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%perl> for my $group ( @Groupings ) { my %grouping_args = ( title => $group? loc($group) : loc('Custom Fields'), class => $css_class .' '. ($group? CSSClass("$css_class-$group") : ''), hide_empty => 1, title_href => $title_href ? "$title_href?id=".$Object->id.($group?";Grouping=".$m->interp->apply_escapes($group,'u')."#".CSSClass("$css_class-$group") : "#".$css_class) : undef, %$TitleBoxARGS, ); $m->callback( CallbackName => 'TitleBox', Object => $Object, Grouping => $group, ARGSRef => \%grouping_args ); <&| /Widgets/TitleBox, %grouping_args &> <& ShowCustomFields, %ARGS, Object => $Object, Grouping => $group &> % } <%ARGS> $Object $title_href => "" @Groupings => () <%INIT> my $css_class = lc(ref($Object)||$Object); $css_class =~ s/^rt:://; $css_class =~ s/::/-/g; $css_class = CSSClass($css_class); $css_class .= '-info-cfs'; my $TitleBoxARGS = delete $ARGS{TitleBoxARGS} || {}; @Groupings = (RT::CustomField->CustomGroupings( $Object ), '') unless @Groupings; rt-4.4.4/share/html/Elements/Modal000644 000765 000024 00000005341 13437510132 017621 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    % foreach my $field (@Fields) {

    <% $field->{'Label'} %> % if ( $field->{'Input'} ) { % }

    % } <% $Cancel %>
    <%ARGS> @Fields => () $Name => '' $ModalId => '' $Class => 'modal' $Action => '' $Method => 'GET' $Accept => loc('OK') $Cancel => loc('Cancel') rt-4.4.4/share/html/Elements/EditCustomFieldText000644 000765 000024 00000005501 13437510132 022454 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % while ($Values and my $value = $Values->Next ) {
    % } % if (!$MaxValues or !$Values or $Values->Count < $MaxValues) { % } <%INIT> # XXX - MultiValue textarea is for now outlawed. $MaxValues = 1; my $name = $Name || $NamePrefix . $CustomField->Id . '-Values'; <%ARGS> $Object => undef $CustomField => undef $NamePrefix => '' $Name => undef $Default => undef $Values => undef $MaxValues => undef $Cols $Rows rt-4.4.4/share/html/Elements/ShowLinksOfType000644 000765 000024 00000007467 13437510132 021650 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
      % for my $link (@not_tickets, @active, @inactive) {
    • <& ShowLink, URI => $link->$ModeURI &> <%perl> next unless $Recurse; my $ToObj = $link->$ModeObj; next if $ToObj and $checked->{$ToObj->id}; if ($depth <= $MaxDepth) { <& ShowLinksOfType, %ARGS, Object => $ToObj, depth => ($depth + 1), checked => $checked &> % }
    • % }
    <%INIT> return unless $Object; unless ($RT::Link::TYPEMAP{$Type}) { RT->Logger->error("Unknown link Type '$ARGS{Type}'"); return; } unless ($Object->can($Type)) { RT->Logger->error("Don't know how to fetch links of '$Type' for object '$Object'"); return; } my $links = $Object->$Type; return unless $links->Count; return if $checked->{$Object->id}; $checked->{$Object->id} = 1; my $mode = $RT::Link::TYPEMAP{$Type}->{'Mode'}; my $ModeURI = "${mode}URI"; my $ModeObj = "${mode}Obj"; # Filter and bucket my (@active, @inactive, @not_tickets); while (my $link = $links->Next) { my $ToObj = $link->$ModeObj; next if UNIVERSAL::isa($ToObj,'RT::Article') && $ToObj->Disabled; if ($ToObj and $ToObj->isa('RT::Ticket')) { next if $Type eq "ReferredToBy" and $ToObj->__Value('Type') eq 'reminder'; if ( $ToObj->QueueObj->IsInactiveStatus( $ToObj->Status ) ) { push @inactive, $link; } else { push @active, $link; } } else { push @not_tickets, $link; } } $m->callback( CallbackName => "Init", ARGSRef => \%ARGS, Object => $Object, $Type => $Type, $Recurse => \$Recurse, $MaxDepth => \$MaxDepth, active => \@active, inactive => \@inactive, not_tickets => \@not_tickets, ); <%ARGS> $Object => undef $Type $Recurse => 0 $MaxDepth => 7 $depth => 1 $checked => {} rt-4.4.4/share/html/Elements/AddLinks000644 000765 000024 00000011504 13437510132 020254 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object => undef $CustomFields => undef $ARGSRef => $DECODED_ARGS <%init> my $id = ($Object and $Object->id) ? $Object->id : "new"; my $exclude = qq| data-autocomplete="Tickets" data-autocomplete-multiple="1"|; $exclude .= qq| data-autocomplete-exclude="$id"| if $Object->id; % if (ref($Object) eq 'RT::Ticket') { <&|/l&>Enter tickets or URIs to link tickets to. Separate multiple entries with spaces.
    <&|/l&>You may enter links to Articles as "a:###", where ### represents the number of the Article.
    <&|/l&>Enter links to assets as "asset:###", where ### represents the asset ID. % $m->callback( CallbackName => 'ExtraLinkInstructions' );

    % } elsif (ref($Object) eq 'RT::Queue') { <&|/l&>Enter queues or URIs to link queues to. Separate multiple entries with spaces.
    % } else { <&|/l&>Enter objects or URIs to link objects to. Separate multiple entries with spaces.
    % } <& /Elements/EditCustomFields, Object => $Object, Grouping => 'Links', InTable => 1, ($CustomFields ? (CustomFields => $CustomFields) : ()), &> % $m->callback( CallbackName => 'NewLink' );
    <& ShowRelationLabel, Object => $Object, Label => loc('Depends on').':', Relation => 'DependsOn' &> " <% $exclude |n%>/>
    <& ShowRelationLabel, Object => $Object, Label => loc('Depended on by').':', Relation => 'DependedOnBy' &> " <% $exclude |n%>/>
    <& ShowRelationLabel, Object => $Object, Label => loc('Parents').':', Relation => 'Parents' &> " <% $exclude |n%>/>
    <& ShowRelationLabel, Object => $Object, Label => loc('Children').':', Relation => 'Children' &> " <% $exclude |n%>/>
    <& ShowRelationLabel, Object => $Object, Label => loc('Refers to').':', Relation => 'RefersTo' &> " <% $exclude |n%>/>
    <& ShowRelationLabel, Object => $Object, Label => loc('Referred to by').':', Relation => 'ReferredToBy' &> " <% $exclude |n%>/>
    rt-4.4.4/share/html/Elements/ShowUserEmailFrequency000644 000765 000024 00000004231 13437510132 023173 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} (<% loc($frequency) %>) <%INIT> my $frequency = $User->EmailFrequency( Ticket => $Ticket ); return unless $frequency; <%ARGS> $User $Ticket => undef rt-4.4.4/share/html/Elements/EditCustomFieldIPAddress000644 000765 000024 00000004070 13437510132 023346 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> return $m->comp( 'EditCustomFieldFreeform', %ARGS ); rt-4.4.4/share/html/Elements/MyAssets000644 000765 000024 00000004256 13437510132 020341 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /User/Elements/AssetList, User => $session{'CurrentUser'}->UserObj, Roles => [qw(HeldBy)], Title => loc('My Assets'), HasResults => $HasResults &> <%ARGS> $HasResults => undef rt-4.4.4/share/html/Elements/ShowReminders000644 000765 000024 00000010071 13437510132 021352 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $reminders->Count ) { <%PERL> my $i =0; while ( my $reminder = $reminders->Next ) { $i++; my $dueobj = $reminder->DueObj; my $overdue = $dueobj->IsSet && $dueobj->Diff < 0 ? 1 : 0; my $targets = RT::Tickets->new($session{'CurrentUser'}); $targets->{'allow_deleted_search'} = 1; $targets->FromSQL( "ReferredToBy = " . $reminder->id ); if ( my $ticket= $targets->First ) { $$HasResults++ if $HasResults; % } else { % } % }
    <&|/l&>Reminder <&|/l&>Due <&|/l&>Ticket
    <% $reminder->Subject %> <% $overdue ? '' : '' |n %><% $dueobj->AgeAsString || loc('Not set') %><% $overdue ? '' : '' |n %> #<% $ticket->Id %>: <% $ticket->Subject %>
    Couldn't find Ticket for reminder <% $reminder->id %>. Please contact administrator.
    % } <%INIT> my $reminders = RT::Tickets->new($session{'CurrentUser'}); my $tsql = 'Type = "reminder"' . ' AND ( Owner = "Nobody" OR Owner ="' . $session{'CurrentUser'}->id . '")' . ' AND Status = "__Active__"'; $tsql .= ' AND ( Due < "now" OR Due IS NULL )' if $OnlyOverdue; $reminders->FromSQL($tsql); $reminders->OrderBy( FIELD => 'Due', ORDER => 'ASC' ); # flip HasResults from undef to 0 to indicate there was a search, so # dashboard mail can be suppressed if there are no results $$HasResults = 0 if $HasResults && !defined($$HasResults); <%ARGS> $OnlyOverdue => 0 $HasResults => undef rt-4.4.4/share/html/Elements/RT__CustomRole/000755 000765 000024 00000000000 13437510132 021477 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/Error000644 000765 000024 00000005370 13437510132 017660 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( %ARGS, error => $error ); % unless ($SuppressHeader) { <& /Elements/Header, Title => $Title &> <& /Elements/Tabs &> % } <& /Elements/ListActions, actions => $Actions &>
    <%$Why%>
    <%$Details%>
    <& /Elements/Footer &> % $m->abort; <%args> $Actions => [] $Details => '' $Title => loc("RT Error") $Why => loc("the calling component did not specify why"), $SuppressHeader => 0, <%INIT> my $error = $Why; $error .= " ($Details)" if defined $Details && length $Details; $RT::Logger->error( $error ); if ( $session{'REST'} ) { $r->content_type('text/plain; charset=utf-8'); $m->out( "Error: " . $Why . "\n" ); $m->out( $Details . "\n" ) if defined $Details && length $Details; $m->abort(); } rt-4.4.4/share/html/Elements/ShowTransaction000644 000765 000024 00000020054 13437510132 021711 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <%PERL> $m->comp('/Elements/ShowCustomFields', Object => $Transaction, HideEmpty => 1 ) if $HasTxnCFs; $m->comp( 'ShowTransactionAttachments', %ARGS, Parent => 0 ) if $ShowBody;
    % $m->callback( %ARGS, Transaction => $Transaction, CallbackName => 'AfterContent' );
    <%ARGS> $Transaction $Object => $Transaction->Object $Attachments => undef $AttachmentContent => undef $HasTxnCFs => 1 $ShowBody => 1 $ShowActions => 1 $RowNum => 1 $DisplayPath => undef $AttachmentPath => undef $UpdatePath => undef $ForwardPath => undef $EncryptionPath => undef $EmailRecordPath => undef <%ONCE> <%INIT> my $record_type = $Object->RecordType; my $type_class = $Object->ClassifyTransaction( $Transaction ); $m->callback( CallbackName => 'MassageTypeClass', Transaction => $Transaction, TypeClassRef => \$type_class, ARGSRef => \%ARGS, ); my @classes = ( "transaction", "$record_type-transaction", $type_class, ($RowNum % 2 ? 'odd' : 'even') ); my $desc = $Transaction->BriefDescriptionAsHTML; if ( $Object->id != $Transaction->ObjectId ) { # merged objects $desc = join " - ", $m->interp->apply_escapes( loc("[_1] #[_2]:", loc($record_type), $Transaction->ObjectId), 'h'), $desc; } my $date = $Transaction->CreatedAsString; my $time = ''; $time = loc('[quant,_1,minute,minutes]', $Transaction->TimeTaken) if $Transaction->TimeTaken; if ( $ShowBody && !$Attachments ) { $ARGS{'Attachments'} = $Attachments = {}; my $attachments = $Transaction->Attachments( WithHeaders => 1 ); push @{ $Attachments->{ $_->Parent || 0 } ||= [] }, $_ foreach @{ $attachments->ItemsArrayRef }; } my @actions = (); my $txn_type = $Transaction->Type; if ( $txn_type =~ /EmailRecord$/ ) { push @actions, { title => loc('Show'), target => '_blank', path => $EmailRecordPath .'?id='. $Object->id .'&Transaction='. $Transaction->id .'&Attachment='. ( $Attachments->{0}[0] && $Attachments->{0}[0]->id ), } if $EmailRecordPath; $ShowBody = 0; } # If the transaction has anything attached to it at all elsif ( %$Attachments && $ShowActions ) { my %has_right = map { $_ => RT::ACE->CanonicalizeRightName( $_ . $record_type ) } qw(Modify CommentOn ReplyTo); $has_right{'Forward'} = RT::ACE->CanonicalizeRightName('ForwardMessage'); my $can_modify = $has_right{'Modify'} && $Object->CurrentUserHasRight( $has_right{'Modify'} ); if ( $UpdatePath && $has_right{'ReplyTo'} && ( $can_modify || $Object->CurrentUserHasRight( $has_right{'ReplyTo'} ) ) ) { push @actions, { class => "reply-link", title => loc('Reply'), path => $UpdatePath .'?id='. $Object->id .'&QuoteTransaction='. $Transaction->id .'&Action=Respond' , }; } if ( $UpdatePath && $has_right{'CommentOn'} && ( $can_modify || $Object->CurrentUserHasRight( $has_right{'CommentOn'} ) ) ) { push @actions, { class => "comment-link", title => loc('Comment'), path => $UpdatePath .'?id='. $Object->id .'&QuoteTransaction='. $Transaction->id .'&Action=Comment' , }; } if ( $ForwardPath && $has_right{'Forward'} && $Object->CurrentUserHasRight( $has_right{'Forward'} ) ) { push @actions, { class => "forward-link", title => loc('Forward'), path => $ForwardPath .'?id='. $Object->id .'&QuoteTransaction='. $Transaction->id , }; } if ( $EncryptionPath && $can_modify && RT->Config->Get('Crypt')->{'Enable'} && RT->Config->Get('Crypt')->{'AllowEncryptDataInDB'} ) { push @actions, { class => "encryption-link", title => loc('Encrypt/Decrypt'), path => $EncryptionPath .'?id='. $Transaction->id .'&QuoteTransaction='. $Transaction->id , }; } } my $CreatorObj = $Transaction->CreatorObj; $m->callback( %ARGS, Transaction => $Transaction, Object => $Object, Classes => \@classes, Actions => \@actions, Created => \$date, TimeTaken => \$time, Description => \$desc, ShowBody => \$ShowBody, CreatorObj => \$CreatorObj, ); my $actions = ''; if ( @actions ) { my $i = $m->interp; foreach my $a ( @actions ) { $a = '{'target'} ? ' target="'. $i->apply_escapes( $a->{'target'}, 'h' ) .'"' : '' ) . ($a->{'class'} ? ' class="'. $i->apply_escapes( $a->{'class'}, 'h' ) .'"' : '' ) .'>'. $i->apply_escapes( $a->{'title'}, 'h' ) .'' ; } $actions = join ' ', map "[$_]", @actions; } # make date unbreakable $date = $m->interp->apply_escapes( $date, 'h' ); $date =~ s/\s/ /g; rt-4.4.4/share/html/Elements/ShowTransactionAttachments000644 000765 000024 00000026464 13437510132 024120 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%PERL> # Find all the attachments which have parent $Parent # For each of these attachments foreach my $message ( @{ $Attachments->{ $Parent || 0 } || [] } ) { $m->comp( 'ShowMessageHeaders', WarnUnsigned => $WarnUnsigned, Message => $message, DisplayHeaders => \@DisplayHeaders, ); my $name = defined $message->Filename && length $message->Filename ? $message->Filename : ''; my $should_render_download = $message->ContentLength || $name; $m->callback(CallbackName => 'BeforeAttachment', ARGSRef => \%ARGS, Object => $Object, Transaction => $Transaction, Attachment => $message, Name => $name, ShouldRenderDownload => \$should_render_download); if ($should_render_download) {
    % if (my $url = RT->System->ExternalStorageURLFor($message)) { % } else { % } <&|/l&>Download <% length $name ? $name : loc('(untitled)') %>\ % if ( $DownloadableHeaders && ! length $name && $message->ContentType =~ /text/ ) { / <% loc('with headers') %> % } % $m->callback(CallbackName => 'AfterDownloadLinks', ARGSRef => \%ARGS, Object => $Object, Transaction => $Transaction, Attachment => $message);
    <% $message->ContentType %> <% $message->FriendlyContentLength %>
    % } %# If there is sub-messages, open a dedicated div % if ( $Attachments->{ $message->id } ) {
    % } else {
    % } <%PERL> $render_attachment->( $message ); $m->comp( $m->current_comp, %ARGS, Parent => $message->id, ParentObj => $message, displayed_inline => $displayed_inline, );
    % } <%ARGS> $Transaction $Object => $Transaction->Object $ShowHeaders => 0 $DownloadableHeaders => 1 $AttachmentPath => undef $Attachments => {} $AttachmentContent => {} $Parent => 0 $ParentObj => undef $WarnUnsigned => 0 # Keep track of CID images we display inline $displayed_inline => {} <%INIT> my @DisplayHeaders=qw(_all); if ( $Transaction->Type =~ /EmailRecord$/ ) { @DisplayHeaders = qw(To Cc Bcc); } # If the transaction has anything attached to it at all elsif (!$ShowHeaders) { @DisplayHeaders = qw(To From RT-Send-Cc Cc Bcc RT-Attach Date Subject); push @DisplayHeaders, 'RT-Send-Bcc' if RT->Config->Get('ShowBccHeader'); } $m->callback(CallbackName => 'MassageDisplayHeaders', DisplayHeaders => \@DisplayHeaders, Transaction => $Transaction, ShowHeaders => $ShowHeaders); my $render_attachment = sub { my $message = shift; my $name = defined $message->Filename && length $message->Filename ? $message->Filename : ''; my $content_type = lc $message->ContentType; # if it has a content-disposition: attachment, don't show inline my $disposition = $message->GetHeader('Content-Disposition'); if ( $disposition && $disposition =~ /^\s*attachment/i ) { $disposition = 'attachment'; } else { $disposition = 'inline'; } # If it's text if ( $content_type =~ m{^(text|message)/} ) { my $max_size = RT->Config->Get( 'MaxInlineBody', $session{'CurrentUser'} ); if ( $disposition ne 'inline' ) { $m->out('

    '. loc( 'Message body is not shown because sender requested not to inline it.' ) .'

    '); return; } elsif ( length $name && RT->Config->Get('SuppressInlineTextFiles', $session{'CurrentUser'} ) ) { $m->out('

    '. loc( 'Text file is not shown because it is disabled in preferences.' ) .'

    '); return; } elsif ( $max_size && $message->ContentLength > $max_size ) { $m->out('

    '. loc( 'Message body is not shown because it is too large.' ) .'

    '); return; } if ( # it's a toplevel object !$ParentObj # or its parent isn't a multipart alternative || ( $ParentObj->ContentType !~ m{^multipart/(?:alternative|related)$}i ) # or it's of our prefered alterative type || ( ( RT->Config->Get('PreferRichText', $session{CurrentUser}) && ( $content_type =~ m{^text/(?:html|enriched)$} ) ) || ( !RT->Config->Get('PreferRichText', $session{CurrentUser}) && ( $content_type !~ m{^text/(?:html|enriched)$} ) ) ) ) { my $content; # If we've cached the content, use it from there if (my $x = $AttachmentContent->{ $Transaction->id }->{$message->id}) { $content = $x->Content; } else { $content = $message->Content; } $RT::Logger->debug( "Rendering attachment #". $message->id ." of '$content_type' type" ); # if it's a text/html clean the body and show it if ( $content_type eq 'text/html' ) { $content = $m->comp( '/Elements/ScrubHTML', Content => $content ); if (RT->Config->Get('ShowTransactionImages')) { my @rewritten = RT::Interface::Web::RewriteInlineImages( Content => \$content, Attachment => $message, # Not technically correct to search all parts of the # MIME structure, but it saves having to go to the # database again and is unlikely to break display. Related => [ map { @$_ } values %$Attachments ], AttachmentPath => $AttachmentPath, ); $displayed_inline->{$_}++ for @rewritten; } $m->comp( '/Elements/MakeClicky', content => \$content, html => 1, object => $Object, ); if ( !length $name && RT->Config->Get( 'QuoteFolding', $session{CurrentUser} ) ) { eval { require HTML::Quoted; $content = HTML::Quoted->extract($content) }; if ($@) { RT->Logger->error( "HTML::Quoted couldn't process attachment #@{[$message->id]}: $@." . " This is a bug, please report it to rt-bugs\@bestpractical.com."); } } $m->comp( 'ShowMessageStanza', Message => $content, Transaction => $Transaction, ContentType => 'text/html', ); } elsif ( $content_type eq 'text/enriched' ) { $content = $m->comp( '/Elements/ScrubHTML', Content => $content ); $m->out( $content ); } # It's a text type we don't have special handling for else { if ( !length $name && RT->Config->Get( 'QuoteFolding', $session{CurrentUser} ) ) { eval { require Text::Quoted; Text::Quoted::set_quote_characters(undef); $content = Text::Quoted::extract($content); }; if ($@) { RT->Logger->error( "Text::Quoted couldn't process attachment #@{[$message->id]}: $@." . " This is a bug, please report it to rt-bugs\@bestpractical.com."); } } $m->comp( 'ShowMessageStanza', Message => $content, Transaction => $Transaction, ContentType => 'text/plain', ); } } } # if it's an image, show it as an image elsif ( $content_type =~ m{^image/} ) { if (not RT->Config->Get('ShowTransactionImages')) { $m->out('

    '. loc( 'Image not shown because display is disabled in system configuration.' ) .'

    '); return; } elsif ( $displayed_inline->{$message->Id} ) { $m->out('

    '. loc( 'Image displayed inline above' ) .'

    '); return; } elsif ( $disposition ne 'inline' ) { $m->out('

    '. loc( 'Image not shown because sender requested not to inline it.' ) .'

    '); return; } my $filename = length $name ? $name : loc('(untitled)'); my $efilename = $m->interp->apply_escapes( $filename, 'h' ); my $url = RT->System->ExternalStorageURLFor($message) || $AttachmentPath .'/'. $Transaction->Id .'/'. $message->Id .'/' . $m->interp->apply_escapes( $filename, 'u', 'h' ); $m->out( qq{$efilename} ); } elsif ( $message->ContentLength && $message->ContentLength > 0 ) { $m->out( '

    ' . loc( 'Message body not shown because it is not plain text.' ) . '

    ' ); } }; rt-4.4.4/share/html/Elements/QueueSummaryByStatus000644 000765 000024 00000011125 13437510132 022723 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % for my $status ( @statuses ) { % } <%PERL> my $i = 0; for my $queue (@$queues) { $i++; my $lifecycle = $lifecycle{ lc $queue->{'Lifecycle'} }; <%perl> for my $status (@statuses) { if ( $lifecycle->IsValid( $status ) ) { % } else { % } % } % }
    <&|/l&>Queue<% loc($status) %>
    <% $queue->{Name} %> <% $data->{$queue->{Id}}->{lc $status} || '-' %> -
    <%INIT> my $build_search_link = sub { my ($queue_name, $extra_query) = @_; $queue_name =~ s/(['\\])/\\$1/g; #' return RT->Config->Get('WebPath') . "/Search/Results.html?Query=" . $m->interp->apply_escapes("Queue = '$queue_name' AND $extra_query", 'u'); }; my $link_all = sub { my ($queue) = @_; return $build_search_link->($queue->{Name}, "Status = '__Active__'"); }; my $link_status = sub { my ($queue, $status) = @_; $status =~ s{(['\\])}{\\$1}g; return $build_search_link->($queue->{Name}, "Status = '$status'"); }; $m->callback( CallbackName => 'LinkBuilders', build_search_link => \$build_search_link, link_all => \$link_all, link_status => \$link_status, ); my %lifecycle; for my $queue (@$queues) { my $cycle = RT::Lifecycle->Load( Name => $queue->{'Lifecycle'} ); RT::Logger->error('Unable to load lifecycle for ' . $queue->{'Lifecycle'}) unless $cycle; $lifecycle{ lc $cycle->Name } = $cycle; } my @statuses; my %seen; foreach my $set ( 'initial', 'active' ) { foreach my $lifecycle ( map $lifecycle{$_}, sort keys %lifecycle ) { push @statuses, grep !$seen{ lc $_ }++, $lifecycle->Valid($set); } } my $data = {}; my $statuses = {}; use RT::Report::Tickets; my $report = RT::Report::Tickets->new( RT->SystemUser ); my $query = "(Status = '__Active__') AND (". join(' OR ', map "Queue = ".$_->{Id}, @$queues) .")"; $query = 'id < 0' unless @$queues; $report->SetupGroupings( Query => $query, GroupBy => [qw(Status Queue)] ); while ( my $entry = $report->Next ) { $data->{ $entry->__Value("Queue") }->{ $entry->__Value("Status") } = $entry->__Value('id'); $statuses->{ $entry->__Value("Status") } = 1; } <%ARGS> $queues => undef rt-4.4.4/share/html/Elements/ShowCustomFieldImage000644 000765 000024 00000004542 13437510132 022611 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <% $Object->Content %>
    <%ARGS> $Object <%INIT> my $url = RT->System->ExternalStorageURLFor($Object) || RT->Config->Get('WebPath') . "/Download/CustomFieldValue/".$Object->Id.'/'.$m->interp->apply_escapes($Object->Content, 'u'); rt-4.4.4/share/html/Elements/ShowCustomFieldText000644 000765 000024 00000004303 13437510132 022506 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $content = $Object->LargeContent || $Object->Content; $content = $m->comp('/Elements/ScrubHTML', Content => $content); $content =~ s|\n|
    |g; <%$content|n%> <%ARGS> $Object rt-4.4.4/share/html/Elements/EditCustomFieldImage000644 000765 000024 00000005375 13437510132 022563 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % while ($Values and my $value = $Values->Next ) { <& ShowCustomFieldImage, Object => $value &>
    % } % if ($MaxValues && $Values && $Values->Count >= $MaxValues ) {
    <&|/l&>Reached maximum number, so new values will override old ones.
    % } <%INIT> my $name = $Name || $NamePrefix . $CustomField->Id . '-Upload'; my $delete_name = $name; $delete_name =~ s!-Upload$!-DeleteValueIds!; <%ARGS> $Object => undef $CustomField => undef $NamePrefix => undef $Name => undef $Default => undef $Values => undef $MaxValues => undef rt-4.4.4/share/html/Elements/QueriesAsComment000644 000765 000024 00000004536 13437510132 022016 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> return unless RT->Config->Get('StatementLog') && $session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser'); rt-4.4.4/share/html/Elements/RT__ScripAction/000755 000765 000024 00000000000 13437510132 021621 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/TSVExport000644 000765 000024 00000010312 13437510132 020435 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Class => undef $Collection $Format $PreserveNewLines => 0 $Filename => undef <%ONCE> my $no_html = HTML::Scrubber->new( deny => '*' ); <%INIT> require HTML::Entities; $Class ||= $Collection->ColumnMapClassName; $r->content_type('application/vnd.ms-excel'); $r->header_out( 'Content-disposition' => "attachment; filename=$Filename" ) if $Filename; my $DisplayFormat = $m->comp('/Elements/ScrubHTML', Content => $Format); my @Format = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $DisplayFormat); my @columns; my $should_loc = { map { $_ => 1 } qw(Status) }; my $col_entry = sub { my $col = shift; # in tsv output, "#" is often a comment character but we use it for "id" delete $col->{title} if $col->{title} and $col->{title} =~ /^\s*#\s*$/; return { header => loc($col->{title} || $col->{attribute}), map => $m->comp( "/Elements/ColumnMap", Name => $col->{attribute}, Attr => 'value', Class => $Class, ), should_loc => $should_loc->{$col->{attribute}}, } }; if ($PreserveNewLines) { my $col = []; push @columns, $col; for (@Format) { if ($_->{title} eq 'NEWLINE') { $col = []; push @columns, $col; } else { push @$col, $col_entry->($_); } } } else { push @columns, [map { $_->{attribute} ? $col_entry->($_) : () } @Format]; } for (@columns) { $m->out(join("\t", map { $_->{header} } @$_)."\n"); } my $i = 0; my $ii = 0; while (my $row = $Collection->Next) { for my $col (@columns) { $m->out(join("\t", map { my $val = ProcessColumnMapValue($_->{map}, Arguments => [$row, $ii++], Escape => 0); $val = loc($val) if $_->{should_loc}; # remove tabs from all field values, they screw up the tsv $val = '' unless defined $val; $val =~ s/(?:\n|\r)+/ /g; $val =~ s{\t}{ }g; $val = $no_html->scrub($val); $val = HTML::Entities::decode_entities($val); $val; } @$col)."\n"); } $m->flush_buffer unless ++$i % 10; } $m->abort(); rt-4.4.4/share/html/Elements/Login000644 000765 000024 00000007365 13437510132 017645 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( %ARGS, CallbackName => 'Header' ); <& /Elements/Header, Title => loc('Login'), Focus => '#user', RichText => 0 &> <& /Elements/Footer, Menu => 0 &> <%ARGS> $next => '' $user => "" $actions => undef rt-4.4.4/share/html/Elements/Header000644 000765 000024 00000012503 13437510132 017753 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# index.html gets two doctypes unless we can skip it here % unless ($SkipDoctype) { % } <%$Title%> % if ($Refresh && $Refresh =~ /^(\d+)/ && $1 > 0) { % my $URL = $m->notes->{RefreshURL}; $URL = $URL ? ";URL=$URL" : ""; " /> % } <& JavascriptConfig &> % for my $cssfile ( @css_files ) { % } % for (keys %{$LinkRel || {}}) { % } % if ( $RSSAutoDiscovery ) { % } % my $stylesheet_plugin = "/NoAuth/css/".$style."/InHeader"; % if ($m->comp_exists($stylesheet_plugin) ) { <& $stylesheet_plugin &> % } % # Leave %ARGS for backward compatibility % $m->callback( %ARGS, CallbackName => 'Head', ARGSRef => \%ARGS ); <& HeaderJavascript, focus => $Focus, onload => $onload, RichText => $RichText &> <& /Elements/Framekiller &> > % if ($ShowBar) { <& /Elements/Logo, %ARGS &>
    <& /Elements/PersonalQuickbar, %ARGS &>
    % } % if ($ShowTitle) { % } <%INIT> my $lang = 'en'; $lang = $session{'CurrentUser'}->LanguageHandle->language_tag if $session{'CurrentUser'} && $session{'CurrentUser'}->LanguageHandle && $session{'CurrentUser'}->LanguageHandle->language_tag; $r->headers_out->{'Pragma'} = 'no-cache'; $r->headers_out->{'Cache-control'} = 'no-cache'; my $id = $m->request_comp->path; $id =~ s|^/||g; $id =~ s|/|-|g; $id =~ s|\.html$||g; $id =~ s|index$||g if $id ne 'index'; $id =~ s|-$||g; my $style = $session{'CurrentUser'} ? $session{'CurrentUser'}->Stylesheet : RT->Config->Get('WebDefaultStylesheet'); my @css_files; if ( RT->Config->Get('DevelMode') ) { @css_files = map { "/static/css/$_" } "$style/main.css", RT->Config->Get('CSSFiles'); } else { my $key = RT::Interface::Web::SquishedCSS( $style )->Key; @css_files = "/NoAuth/css/$style/squished-$key.css"; } # We use BodyClass in its $ARGS form so that callbacks have a chance to # massage it push @{$ARGS{'BodyClass'}}, lc $style; if (RT->Config->Get("UseSideBySideLayout", $session{'CurrentUser'})) { push @{$ARGS{'BodyClass'}}, 'sidebyside'; } <%ARGS> #$Focus => 'focus' $Focus => '' $Title => 'RT' $Refresh => 0 $ShowBar => 1 $ShowTitle => 1 $URL => undef $RSSAutoDiscovery => undef $onload => undef $LinkRel => undef $SkipDoctype => 0 $RichText => 1 $BodyClass => undef rt-4.4.4/share/html/Elements/SelectBoolean000644 000765 000024 00000004741 13437510132 021307 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $True => loc("is") $Default => 'true' $TrueVal => 1 $FalseVal => 0 $False => loc("isn't") <%INIT> my $TrueDefault = ''; my $FalseDefault = ''; if ($Default && $Default !~ /true/i) { $FalseDefault = 'selected="selected"'; } else { $TrueDefault = 'selected="selected"'; } rt-4.4.4/share/html/Elements/SelectDateType000644 000765 000024 00000004740 13437510132 021446 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => 'DateType' rt-4.4.4/share/html/Elements/SelectWatcherType000644 000765 000024 00000005122 13437510132 022161 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my @types; if ($Scope =~ /queue/) { @types = $Queue->ManageableRoleGroupTypes; } else { @types = $Queue->Roles(Single => 0); } $m->callback( Types => \@types, %ARGS, CallbackName => 'ModifyWatcherTypes' ); <%ARGS> $AllowNull => 1 $Default=>undef $Scope => 'ticket' $Name => 'WatcherType' $Queue => undef rt-4.4.4/share/html/Elements/SelectNewTicketQueue000644 000765 000024 00000005024 13437510132 022625 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $queue = delete $ARGS{Default}; if ( !$queue ) { $queue = RT->Config->Get("DefaultQueue", $session{'CurrentUser'}); if (RT->Config->Get("RememberDefaultQueue", $session{'CurrentUser'})) { if (my $session_default = $session{'DefaultQueue'}) { $queue = $session_default; } } } $m->callback(Queue => \$queue, CallbackName => 'DefaultQueue'); rt-4.4.4/share/html/Elements/ShowRecord000644 000765 000024 00000007274 13437510132 020653 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object $Format $TrustFormat => 0 $Class => "" <%init> $Format = ScrubHTML($Format) unless $TrustFormat; my @columns = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $Format); my $fetch_columnmap = sub { my ($name, $attr, $arguments, $no_escape) = @_; my $tmp = $m->comp( '/Elements/ColumnMap', Class => $Object->ColumnMapClassName, Name => $name, Attr => $attr, ); return ProcessColumnMapValue( $tmp, Arguments => $arguments, Escape => !$no_escape ); };
    <%perl> for my $column (@columns) { my $title = $m->interp->apply_escapes($column->{title} || '', 'h'); my $attr = $column->{'attribute'} || $column->{'last_attribute'}; unless (defined $column->{title}) { # No format-supplied title, so use the one from the column map as-is. It's # trustworthy. $title = $fetch_columnmap->($attr,'title',[$attr]); }
    <% CSSClass($fetch_columnmap->($attr,'attribute',[$attr],'no_escape')) %>"> <% loc($title) |n %> <%perl> my @out; foreach my $subcol ( @{ $column->{output} } ) { my ($col) = ($subcol =~ /^__(.*?)__$/); unless ( $col ) { push @out, $subcol; next; } push @out, $fetch_columnmap->($col, 'value', [$Object]); } @out = grep { defined $_ and length $_ } @out; <% join('',@out) |n %> % $m->callback(CallbackName => 'AfterValue', Object => $Object, attribute => $attr, column => $column );
    % }
    rt-4.4.4/share/html/Elements/RT__Scrip/000755 000765 000024 00000000000 13437510132 020463 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/SelectEqualityOperator000644 000765 000024 00000004546 13437510132 023244 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef @Options => (loc('less than'), loc('equal to'), loc('greater than'), loc('not equal to')) @Values => qw(< = > !=) $Default =>'' rt-4.4.4/share/html/Elements/RT__Group/000755 000765 000024 00000000000 13437510132 020477 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Elements/RT__Group/ColumnMap000644 000765 000024 00000006440 13437510132 022321 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { HasMember => { title => 'Member', # loc value => sub { my $group = $_[0]; my $uid = $_[2] || return ''; return $group->HasMember( $uid )? $_[0]->loc('yes'): $_[0]->loc('no'); }, }, HasMemberRecursively => { title => 'Recursive member', # loc value => sub { my $group = $_[0]; my $uid = $_[2] || return ''; return $group->HasMemberRecursively( $uid )? $_[0]->loc('yes'): $_[0]->loc('no'); }, }, Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name() }, }, Description => { title => 'Description', # loc attribute => 'Description', value => sub { return $_[0]->Description() }, }, Disabled => { title => 'Status', # loc value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Scrip/ColumnMap000644 000765 000024 00000014754 13437510132 022314 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Queue => { title => 'Queue', # loc value => sub { return $_[0]->loc('Global') if $_[0]->IsGlobal; return join(", ", map {$_->Name} @{$_[0]->AddedTo->ItemsArrayRef}); }, }, QueueId => { title => 'Queue', # loc value => sub { return 0 if $_[0]->IsGlobal; return join(", ", map {$_->Id} @{$_[0]->AddedTo->ItemsArrayRef}); }, }, From => { title => 'Queue', value => sub { my $request_path = $HTML::Mason::Commands::r->path_info; my $queue_id = $m->request_args->{'id'}; if ( $request_path =~ m{/Admin/Queues/Scrips\.html} and $queue_id ) { return '&From=' . $queue_id; } elsif ( $request_path =~ m{/Admin/Global/Scrips\.html} ) { return '&From=Global'; } else { return q{}; } }, }, Condition => { title => 'Condition', # loc value => sub { return $_[0]->loc( $_[0]->ScripConditionObj->Name ) }, }, Action => { title => 'Action', # loc value => sub { return $_[0]->loc( $_[0]->ScripActionObj->Name ) }, }, Template => { title => 'Template', # loc value => sub { return $_[0]->loc( $_[0]->Template ) }, }, AutoDescription => { title => 'Condition, Action and Template', # loc value => sub { return $_[0]->loc( "[_1] [_2] with template [_3]", $_[0]->loc($_[0]->ConditionObj->Name), $_[0]->loc($_[0]->ActionObj->Name), $_[0]->loc($_[0]->Template), ) }, }, Description => { title => 'Description', # loc attribute => 'Description', value => sub { return $_[0]->Description() }, }, Disabled => { title => 'Status', # loc attribute => 'Disabled', value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, }, RemoveCheckBox => { title => sub { my $name = 'RemoveScrip'; my $checked = $m->request_args->{ $name .'All' }? 'checked="checked"': ''; return \qq{}; }, value => sub { my $id = $_[0]->id; return '' if $_[0]->IsGlobal; my $name = 'RemoveScrip'; my $arg = $m->request_args->{ $name }; my $checked = ''; if ( $arg && ref $arg ) { $checked = 'checked="checked"' if grep $_ == $id, @$arg; } elsif ( $arg ) { $checked = 'checked="checked"' if $arg == $id; } return \qq{} }, }, Move => { title => 'Move', # loc value => sub { my $id = $_[0]->id; my $context = $_[2] || 0; return '' unless $_[0]->IsAdded( $context ); my $name = 'MoveScrip'; my $args = $m->caller_args( 1 ); my @pass = ref $args->{'PassArguments'} ? @{$args->{'PassArguments'}} : ($args->{'PassArguments'}); my %pass = map { $_ => $args->{$_} } grep exists $args->{$_}, @pass; my $uri = RT->Config->Get('WebPath') . $m->request_path; my @res = ( \' $id ), \'">', loc('[Up]'), \'', \' $id ), \'">', loc('[Down]'), \'' ); return @res; }, }, Stage => { title => 'Stage', # loc value => sub { my $os = RT::ObjectScrip->new( $_[0]->CurrentUser ); my $id = $_[0]->IsGlobal ? 0 : $_[-1]; $os->LoadByCols( Scrip => $_[0]->id, ObjectId => $id ); return $_[0]->loc( $os->FriendlyStage ); }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__ScripAction/ColumnMap000644 000765 000024 00000006407 13437510132 023446 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { id => { title => '#', # loc attribute => 'id', align => 'right', value => sub { return $_[0]->id }, }, Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name() }, }, Description => { title => 'Description', # loc attribute => 'Description', value => sub { return $_[0]->Description() }, }, UsedBy => { title => 'Used by scrips', # loc value => sub { my @res; my $scrips = $_[0]->UsedBy; while ( my $scrip = $scrips->Next ) { push @res, ', ' if @res; push @res, \'', $scrip->id, \''; } return @res; }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__CustomRole/ColumnMap000644 000765 000024 00000007136 13437510132 023324 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Disabled => { title => 'Status', # loc attribute => 'Disabled', value => sub { return $_[0]->Disabled ? $_[0]->loc('Disabled') : $_[0]->loc('Enabled') }, }, map( { my $c = $_; $c => { title => $c, attribute => $c, value => sub { return $_[0]->$c() }, } } qw(Name Description EntryHint) ), MaxValues => { title => 'Number', # loc attribute => 'MaxValues', value => sub { my $v = $_[0]->MaxValues; return !$v ? $_[0]->loc('Multiple') : $v == 1 ? $_[0]->loc('Single') : $v; }, }, AddedTo => { title => 'Added', # loc value => sub { my $collection = $_[0]->AddedTo; return '' unless $collection; $collection->RowsPerPage(10); my $found = 0; my $res = ''; while ( my $record = $collection->Next ) { $res .= ', ' if $res; my $id = ''; $id = $record->Name if $record->_Accessible('Name','read'); $id ||= "#". $record->id; $res .= $id; $found++; } $res .= ', ...' if $found >= 10; return $res; }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Ticket/ColumnMap000644 000765 000024 00000030337 13437510132 022452 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP; my $LinkCallback = sub { my $method = shift; my $mode = $RT::Link::TYPEMAP{$method}{Mode}; my $type = $RT::Link::TYPEMAP{$method}{Type}; my $other_mode = ($mode eq "Target" ? "Base" : "Target"); my $mode_uri = $mode.'URI'; return sub { my $ObjectType = $_[2]||''; map { \'', ( $_->$mode_uri->AsString ), \'
    ', } # if someone says __RefersTo.{Ticket}__ filter for only local links that are tickets grep { $ObjectType ? ( $_->$mode_uri->IsLocal && ( $_->$mode_uri->Object->RecordType eq $ObjectType )) : 1 } @{ $_[0]->Links($other_mode,$type)->ItemsArrayRef } } }; my $trustSub = sub { my $user = shift; my %key = RT::Crypt->GetKeyInfo( Key => $user->EmailAddress ); if (!defined $key{'info'}) { return $m->interp->apply_escapes(' ' . loc("(no pubkey!)"), "h"); } elsif ($key{'info'}{'TrustLevel'} == 0) { return $m->interp->apply_escapes(' ' . loc("(untrusted!)"), "h"); } }; $COLUMN_MAP = { Queue => { attribute => 'Queue', title => 'Queue id', # loc value => sub { return $_[0]->Queue } }, QueueName => { attribute => 'Queue', title => 'Queue', # loc value => sub { return $_[0]->QueueObj->Name } }, OwnerName => { title => 'Owner', # loc attribute => 'Owner', value => sub { return $_[0]->OwnerObj->Name } }, Status => { title => 'Status', # loc attribute => 'Status', value => sub { return loc($_[0]->Status) } }, Subject => { title => 'Subject', # loc attribute => 'Subject', value => sub { return $_[0]->Subject || "(" . loc('No subject') . ")" } }, ExtendedStatus => { title => 'Status', # loc attribute => 'Status', value => sub { my $Ticket = shift; my $unresolved_dependencies = $Ticket->UnresolvedDependencies; my $count = $unresolved_dependencies->Count; if ( $count ) { if ( $Ticket->HasUnresolvedDependencies( Type => 'approval' ) or $Ticket->HasUnresolvedDependencies( Type => 'code' ) ) { return \'', loc('(pending approval)'), \''; } else { my $Query = "DependedOnBy = " . $Ticket->id . " AND Status = '__Active__'"; my $SearchURL = RT->Config->Get('WebPath') . '/Search/Results.html?' . $m->comp('/Elements/QueryString', Query => $Query); if ($count == 1) { my $pending_ticket = $unresolved_dependencies->Next; my $pending_ticket_url = RT->Config->Get('WebPath') . '/Ticket/Display.html?id=' . $pending_ticket->id; return \'', loc('(pending ticket #[_1])',$pending_ticket->id), \''; } return \'', loc('(pending [quant,_1,other ticket,other tickets])',$count), \''; } } else { return loc( $Ticket->Status ); } } }, Priority => { title => 'Priority', # loc attribute => 'Priority', value => sub { return $_[0]->Priority } }, InitialPriority => { title => 'InitialPriority', # loc attribute => 'InitialPriority', name => 'Initial Priority', value => sub { return $_[0]->InitialPriority } }, FinalPriority => { title => 'FinalPriority', # loc attribute => 'FinalPriority', name => 'Final Priority', value => sub { return $_[0]->FinalPriority } }, EffectiveId => { title => 'EffectiveId', # loc attribute => 'EffectiveId', value => sub { return $_[0]->EffectiveId } }, Type => { title => 'Type', # loc attribute => 'Type', value => sub { return $_[0]->Type } }, TimeWorked => { attribute => 'TimeWorked', title => 'Time Worked', # loc value => sub { return $_[0]->TimeWorkedAsString } }, TimeLeft => { attribute => 'TimeLeft', title => 'Time Left', # loc value => sub { return $_[0]->TimeLeftAsString } }, TimeEstimated => { attribute => 'TimeEstimated', title => 'Time Estimated', # loc value => sub { return $_[0]->TimeEstimatedAsString } }, StartsRelative => { title => 'Starts', # loc attribute => 'Starts', value => sub { return $_[0]->StartsObj->AgeAsString } }, StartedRelative => { title => 'Started', # loc attribute => 'Started', value => sub { return $_[0]->StartedObj->AgeAsString } }, ToldRelative => { title => 'Told', # loc attribute => 'Told', value => sub { return $_[0]->ToldObj->AgeAsString } }, DueRelative => { title => 'Due', # loc attribute => 'Due', value => sub { my $date = $_[0]->DueObj; # Highlight the date if it was due in the past, and it's still active if ( $date && $date->IsSet && $date->Diff < 0 && $_[0]->QueueObj->IsActiveStatus($_[0]->Status)) { return (\'' , $date->AgeAsString , \''); } else { return $date->AgeAsString; } } }, ResolvedRelative => { title => 'Resolved', # loc attribute => 'Resolved', value => sub { return $_[0]->ResolvedObj->AgeAsString } }, Starts => { title => 'Starts', # loc attribute => 'Starts', value => sub { return $_[0]->StartsObj->AsString } }, Started => { title => 'Started', # loc attribute => 'Started', value => sub { return $_[0]->StartedObj->AsString } }, Told => { title => 'Told', # loc attribute => 'Told', value => sub { return $_[0]->ToldObj->AsString } }, Due => { title => 'Due', # loc attribute => 'Due', value => sub { my $date = $_[0]->DueObj; # Highlight the date if it was due in the past, and it's still active if ( $date && $date->IsSet && $date->Diff < 0 && $_[0]->QueueObj->IsActiveStatus($_[0]->Status)) { return (\'' , $date->AsString , \''); } else { return $date->AsString; } } }, Resolved => { title => 'Resolved', # loc attribute => 'Resolved', value => sub { return $_[0]->ResolvedObj->AsString } }, SLA => { attribute => 'SLA', title => 'SLA', # loc value => sub { return $_[0]->SLA } }, UpdateStatus => { title => 'New messages', # loc value => sub { my $txn = $_[0]->SeenUpTo or return $_[0]->loc('No'); return \(''), $_[0]->loc('New'), \''; }, }, KeyRequestors => { title => 'Requestors', # loc attribute => 'Requestor.EmailAddress', value => sub { return \($m->scomp("/Elements/ShowPrincipal", Object => $_[0]->Requestor, PostUser => $trustSub ) ) } }, KeyOwnerName => { title => 'Owner', # loc attribute => 'Owner', value => sub { my $t = shift; my $name = $t->OwnerObj->Name; my %key = RT::Crypt->GetKeyInfo( Key => $t->OwnerObj->EmailAddress ); if (!defined $key{'info'}) { $name .= ' '. loc("(no pubkey!)"); } elsif ($key{'info'}{'TrustLevel'} == 0) { $name .= ' '. loc("(untrusted!)"); } return $name; } }, KeyOwner => { title => 'Owner', # loc attribute => 'Owner', value => sub { return \($m->scomp("/Elements/ShowPrincipal", Object => $_[0]->OwnerObj, PostUser => $trustSub ) ) } }, # Everything from LINKTYPEMAP (map { $_ => { value => $LinkCallback->( $_ ) } } keys %RT::Link::TYPEMAP), '_CLASS' => { value => sub { return $_[1] % 2 ? 'oddline' : 'evenline' } }, '_CHECKBOX' => { attribute => 'checkbox', title => 'Update', # loc align => 'right', value => sub { return \('') } }, Bookmark => { title => ' ', value => sub { my $bookmark = $m->scomp( '/Ticket/Elements/Bookmark', id => $_[0]->id ); # the CollectionAsTable/Row template replaces newlines with
    $bookmark =~ s/\n//g; return \$bookmark; }, }, Timer => { title => ' ', value => sub { return \($m->scomp("/Ticket/Elements/PopupTimerLink", id => $_[0]->id ) ); }, }, }; <%init> # if no encryption support, then KeyOwnerName and KeyRequestors fall back to the regular # versions unless (RT->Config->Get('Crypt')->{'Enable'}) { $COLUMN_MAP->{KeyOwnerName} = $COLUMN_MAP->{OwnerName}; $COLUMN_MAP->{KeyRequestors} = $GenericMap->{Requestors}; } if(RT->Config->Get('DisplayTotalTimeWorked')) { $COLUMN_MAP->{TotalTimeWorked} = { attribute => 'TotalTimeWorked', title => 'Total Time Worked', value => sub { return $_[0]->TotalTimeWorkedAsString; }, } } $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'Once', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/CollectionAsTable/ParseFormat000644 000765 000024 00000007422 13437510132 024341 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Format <%init> use Regexp::Common qw/delimited/; my @Columns; while ($Format =~ /($RE{delimited}{-delim=>qq{\'"}}|[{}\w.]+)/go) { my $col = $1; my $colref = { original_string => $col }; if ($col =~ /^$RE{quoted}$/o) { substr($col,0,1) = ""; substr($col,-1,1) = ""; $col =~ s/\\(.)/$1/g; } $m->callback(CallbackName => 'PreColumn', Column => $colref, col => \$col); while ( $col =~ s{/(STYLE|CLASS|TITLE|ALIGN|SPAN|ATTRIBUTE):([^/]*)}{}i ) { $colref->{ lc $1 } = $2; } $colref->{'last_attribute'} = $colref->{'attribute'}; unless ( length $col ) { $colref->{'output'} = []; $colref->{'last_attribute'} = $colref->{'attribute'} = '' unless defined $colref->{'attribute'}; } elsif ( $col =~ /^__(NEWLINE|NBSP)__$/ || $col =~ /^(NEWLINE|NBSP)$/ ) { $colref->{'title'} = $1; $colref->{'last_attribute'} = ''; } elsif ( $col =~ /__(.*?)__/io ) { my @subcols; while ( $col =~ s/^(.*?)__(.*?)__//o ) { push ( @subcols, $1 ) if $1; push ( @subcols, "__$2__" ); $colref->{'last_attribute'} = $2; } push @subcols, $col; $colref->{'output'} = \@subcols; $colref->{'attribute'} = $colref->{'last_attribute'} unless defined $colref->{'attribute'}; } else { $colref->{'output'} = [ "__" . $col . "__" ]; $colref->{'last_attribute'} = $col; $colref->{'attribute'} = $col unless defined $colref->{'attribute'}; } $m->callback(CallbackName => 'PostColumn', Column => $colref, col => \$col); push @Columns, $colref; } $m->callback(CallbackName => 'PostProcess', Columns => \@Columns, Format => $Format); return(@Columns); rt-4.4.4/share/html/Elements/CollectionAsTable/Row000644 000765 000024 00000012107 13437510132 022661 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $i => undef @Format => undef $record => undef $maxitems => undef $Depth => undef $Warning => undef $ColumnMap => {} $Class => 'RT__Ticket' $Classes => '' <%init> $m->out( 'can('id') ? ' data-record-id="'.$record->id.'"' : '' ) . '>' ); $m->out( '' . "\n" ); my $item; foreach my $column (@Format) { if ( defined $column->{title} && $column->{title} eq 'NEWLINE' ) { while ( $item < $maxitems ) { $m->out(qq{ \n}); $item++; } $item = 0; $m->out( '' . "\n" ); $m->out( '' . "\n" ); next; } my $class = $column->{class} ? $m->interp->apply_escapes($column->{class}, 'h') : 'collection-as-table'; my %attrs; foreach my $attr (qw(style align)) { if ( defined $column->{ $attr } ) { $attrs{ $attr } = $column->{ $attr }; next; } # if it's not defined then use column map my $col = $column->{'attribute'} || $column->{'last_attribute'}; unless ( exists $ColumnMap->{$col}{$attr} ) { next unless $col; $ColumnMap->{$col}{$attr} = $m->comp( "/Elements/ColumnMap", Class => $Class, Name => $col, Attr => $attr, ); } $attrs{ $attr } = ProcessColumnMapValue( $ColumnMap->{$col}{$attr}, Arguments => [$record, $i], Escape => 0, ); } $attrs{colspan} = $column->{span}; $item += ($attrs{'colspan'} || 1); my @out; foreach my $subcol ( @{ $column->{output} } ) { my ($col) = ($subcol =~ /^__(.*?)__$/); unless ( $col ) { push @out, $subcol; next; } unless ( exists $ColumnMap->{$col}{'value'} ) { $ColumnMap->{$col}{'value'} = $m->comp( "/Elements/ColumnMap", Class => $Class, Name => $col, Attr => 'value' ); } push @out, ProcessColumnMapValue( $ColumnMap->{$col}{'value'}, Arguments => [$record, $i], ); } $m->callback( CallbackName => 'EachField', Record => $record, Format => \@Format, Column => $column, Classes => \$class, Align => \$attrs{align}, Style => \$attrs{style}, Colspan => \$attrs{colspan}, Out => \@out, ); $m->out(qq{out( $_ .'="'. $m->interp->apply_escapes( $attrs{$_} => 'h' ) .'"' ) foreach grep $attrs{$_}, qw(align style colspan); $m->out('>'); $m->out(@out) if @out; $m->out( '' . "\n" ); } $m->out(''); $m->out(''); rt-4.4.4/share/html/Elements/CollectionAsTable/Header000644 000765 000024 00000012542 13437510132 023305 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Class => 'RT__Ticket' @Format => undef $FormatString => undef @OrderBy => () @Order => () $Query => undef $Rows => undef $Page => undef $GenericQueryArgs => undef $maxitems => undef $AllowSorting => undef $BaseURL => undef @PassArguments => qw(Query Format Rows Page Order OrderBy) <%PERL> my $generic_query_args = $GenericQueryArgs || {map { $_ => $ARGS{$_} } @PassArguments}; # backward compatibility workaround $generic_query_args->{'Format'} = $FormatString if grep $_ eq 'Format', @PassArguments; my $item = 0; foreach my $col ( @Format ) { my $attr = $col->{'attribute'} || $col->{'last_attribute'}; my $title = $col->{'title'} || ''; if ( $title eq 'NEWLINE' ) { while ( $item < $maxitems ) { $m->out(qq{ \n}); $item++; } $item = 0; $m->out(qq{\n}); next; } elsif ( $title eq 'NBSP' ) { $item++; $m->out(qq{ \n}); next; } my $span = $col->{'span'}; $item += ($span || 1); $m->out('out(' colspan="' . $m->interp->apply_escapes($span => 'h') . '"') if $span; my $align = $col->{'align'} || do { my $tmp_columnmap = $m->comp( '/Elements/ColumnMap', Class => $Class, Name => $attr, Attr => 'align', ); ProcessColumnMapValue( $tmp_columnmap, Arguments => [ $attr ] ); }; $m->out(qq{ style="text-align: $align"}) if $align; $m->out('>'); my $loc_title; # if title is not defined then use defined attribute or last # one we saw in the format unless ( defined $col->{'title'} ) { my $tmp = $m->comp( '/Elements/ColumnMap', Class => $Class, Name => $attr, Attr => 'title', ); $title = ProcessColumnMapValue( $tmp, Arguments => [ $attr ] ); # in case title is not defined in ColumnMap # the following regex changes $attr like from "ReferredToBy" to "Referred To By" $title = join ' ', split /(?<=[a-z])(?=[A-Z])/, $attr unless defined $title; $loc_title = $attr =~ /^(?:CustomField|CF)\./ ? $title : loc($title); } else { $loc_title = loc($m->comp('/Elements/ScrubHTML', Content => $title)); } if ( $AllowSorting and $col->{'attribute'} and my $attr = $m->comp( "/Elements/ColumnMap", Class => $Class, Name => $col->{'attribute'}, Attr => 'attribute' ) ) { $attr = ProcessColumnMapValue( $attr, Arguments => [ $col->{'attribute'} ], Escape => 0 ); my $new_order = 'ASC'; $new_order = ($Order[0] // '') eq 'ASC'? 'DESC': 'ASC' if $OrderBy[0] && ($OrderBy[0] eq $attr or "$attr|$OrderBy[0]" =~ /^(Created|id)\|(Created|id)$/); $m->out( ''. $loc_title .'' ); } else { $m->out( $loc_title ); } $m->out(''); } rt-4.4.4/share/html/Elements/RT__Catalog/ColumnMap000644 000765 000024 00000005532 13437510132 022600 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Attr => undef <%ONCE> my $COLUMN_MAP = { Name => { attribute => 'Name', title => 'Name', value => sub { $_[0]->Name }, }, Description => { attribute => 'Description', title => 'Description', value => sub { $_[0]->Description }, }, Disabled => { title => \' ', attribute => 'Disabled', value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, }, Lifecycle => { title => 'Lifecycle', attribute => 'Lifecycle', value => sub { return $_[0]->Lifecycle }, }, }; <%init> $m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'Once', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Dashboard/ColumnMap000644 000765 000024 00000011040 13437510132 023104 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name()||loc("Unnamed dashboard") }, }, Subscription => { title => 'Subscription', # loc attribute => 'Subscription', value => sub { my $Dashboard = shift; my $Subscription = $Dashboard->Subscription; my $url = sprintf '%s/Dashboards/Subscription.html?id=%d', RT->Config->Get('WebPath'), $Dashboard->Id; my $frequency = loc("None"); if (defined $Subscription) { my $freq = $Subscription->SubValue('Frequency'); my $hour = $Subscription->SubValue('Hour'); if (my ($integer_hour) = $hour =~ /^(\d\d):00$/) { my $formatter = RT::Date->new($session{CurrentUser})->LocaleObj; my $dt = DateTime->now; $dt->set_minute(0); $dt->set_second(0); $dt->set_hour($integer_hour); # use the formatted hour instead $hour = $dt->format_cldr($formatter->time_format_short); } if ($freq eq 'weekly') { my $day = $Subscription->SubValue('Dow'); $frequency = loc("weekly (on [_1]) at [_2]", loc($day), $hour); } elsif ($freq eq 'monthly') { $frequency = loc("monthly (day [_1]) at [_2]", $Subscription->SubValue('Dom'), $hour); } elsif ($freq eq 'daily') { $frequency = loc("daily at [_1]", $hour); } elsif ($freq eq 'never') { $frequency = loc("Never"); } else { $frequency = loc($freq); } } return \'', $frequency, \''; }, }, ShowURL => { title => '', attribute => 'ShowURL', value => sub { my $dashboard = shift; my $id = $dashboard->Id; my $name = $dashboard->Name; return "Dashboards/$id/$name"; }, } }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Asset/ColumnMap000644 000765 000024 00000010632 13437510132 022302 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Attr => undef <%ONCE> my $linkUsers; $linkUsers = sub { my ($what, $more) = @_; if ($what->isa("RT::Group")) { # Link the users (non-recursively) my @ret = map {$linkUsers->($_->[1], $more), ", "} sort {$a->[0] cmp $b->[0]} map {+[($_->EmailAddress||''), $_]} @{ $what->UserMembersObj( Recursively => 0 )->ItemsArrayRef }; # But don't link the groups push @ret, map {+("Group: $_", ",")} sort map {$_->Name} @{ $what->GroupMembersObj( Recursively => 0)->ItemsArrayRef }; pop @ret; # Remove ending ", " return @ret; } else { my @ret = \($m->scomp("/Elements/ShowUser", User => $what)); push @ret, $more->($what) if $more; return @ret; } }; my $COLUMN_MAP = { Name => { attribute => 'Name', title => 'Name', value => sub { $_[0]->Name }, }, Description => { attribute => 'Description', title => 'Description', value => sub { $_[0]->Description }, }, Catalog => { attribute => 'Catalog', title => 'Catalog', # loc value => sub { $_[0]->CatalogObj->Name }, }, Status => { title => 'Status', attribute => 'Status', value => sub { loc($_[0]->Status) } }, ActiveTickets => { title => 'Active tickets', # loc value => sub { my $Asset = shift; my $Query = "RefersTo = 'asset:" . $Asset->id . "' AND Status = '__Active__'"; my $SearchURL = RT->Config->Get('WebPath') . '/Search/Results.html?' . $m->comp('/Elements/QueryString', Query => $Query); return \'[ Active ]'; } }, InactiveTickets => { title => 'Inactive tickets', # loc value => sub { my $Asset = shift; my $Query = "RefersTo = 'asset:" . $Asset->id . "' AND Status = '__Inactive__'"; my $SearchURL = RT->Config->Get('WebPath') . '/Search/Results.html?' . $m->comp('/Elements/QueryString', Query => $Query); return \'[ Inactive ]'; } }, }; <%init> $m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'Once', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__ScripCondition/ColumnMap000644 000765 000024 00000006407 13437510132 024157 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { id => { title => '#', # loc attribute => 'id', align => 'right', value => sub { return $_[0]->id }, }, Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name() }, }, Description => { title => 'Description', # loc attribute => 'Description', value => sub { return $_[0]->Description() }, }, UsedBy => { title => 'Used by scrips', # loc value => sub { my @res; my $scrips = $_[0]->UsedBy; while ( my $scrip = $scrips->Next ) { push @res, ', ' if @res; push @res, \'', $scrip->id, \''; } return @res; }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__CustomField/ColumnMap000644 000765 000024 00000014016 13437510132 023441 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Disabled => { title => 'Status', # loc attribute => 'Disabled', value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, }, map( { my $c = $_; $c => { title => $c, attribute => $c, value => sub { return $_[0]->$c() }, } } qw(Name Description Type LookupType Pattern EntryHint) ), map( { my $c = $_; my $short = $c; $short =~ s/^Friendly//; $c => { title => $short, attribute => $short, value => sub { return $_[0]->$c() }, } } qw(FriendlyLookupType FriendlyType FriendlyPattern) ), MaxValues => { title => 'MaxValues', # loc attribute => 'MaxValues', value => sub { my $v = $_[0]->MaxValues; return !$v ? $_[0]->loc('unlimited') : $v == 0 ? $_[0]->loc('one') : $v; }, }, AddedTo => { title => 'Added', # loc value => sub { if ( $_[0]->IsGlobal ) { return $_[0]->loc('Global'); } my $collection = $_[0]->AddedTo; return '' unless $collection; $collection->RowsPerPage(10); my $found = 0; my $res = ''; while ( my $record = $collection->Next ) { $res .= ', ' if $res; my $id = ''; $id = $record->Name if $record->_Accessible('Name','read'); $id ||= "#". $record->id; $res .= $id; $found++; } $res .= ', ...' if $found >= 10; return $res; }, }, RemoveCheckBox => { title => sub { my $name = 'RemoveCustomField'; my $checked = $DECODED_ARGS->{ $name .'All' }? 'checked="checked"': ''; return \qq{}; }, value => sub { my $id = $_[0]->id; return '' if $_[0]->IsGlobal; my $name = 'RemoveCustomField'; my $arg = $DECODED_ARGS->{ $name }; my $checked = ''; if ( $arg && ref $arg ) { $checked = 'checked="checked"' if grep $_ == $id, @$arg; } elsif ( $arg ) { $checked = 'checked="checked"' if $arg == $id; } return \qq{} }, }, MoveCF => { title => 'Move', value => sub { my $id = $_[0]->id; my $context = $_[2] || 0; return '' unless $_[0]->IsAdded( $context ); my $name = 'MoveCustomField'; my $args = $m->caller_args( 1 ); my @pass = ref $args->{'PassArguments'} ? @{$args->{'PassArguments'}} : ($args->{'PassArguments'}); my %pass = map { $_ => $args->{$_} } grep exists $args->{$_}, @pass; my $uri = RT->Config->Get('WebPath') . $m->request_path; my @res = ( \' $id ), \'">', loc('~[Up~]'), \'', \' $id ), \'">', loc('~[Down~]'), \'' ); return @res; }, }, }; $COLUMN_MAP->{'AppliedTo'} = $COLUMN_MAP->{'AddedTo'}; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Transaction/ColumnMap000644 000765 000024 00000010100 13437510132 023476 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef <%ONCE> my $COLUMN_MAP = { ObjectType => { title => 'Object Type', # loc attribute => 'ObjectType', value => sub { return $_[0]->ObjectType() }, }, ObjectId => { title => 'Object Id', # loc attribute => 'ObjectId', value => sub { return $_[0]->ObjectId() }, }, Type => { title => 'Type', # loc attribute => 'Type', value => sub { return $_[0]->Type() }, }, Field => { title => 'Field', # loc attribute => 'Field', value => sub { return $_[0]->Field() }, }, OldValue => { title => 'Old Value', # loc attribute => 'OldValue', value => sub { return $_[0]->OldValue() }, }, NewValue => { title => 'New Value', # loc attribute => 'NewValue', value => sub { return $_[0]->NewValue() }, }, TimeTaken => { title => 'Time Taken', # loc attribute => 'TimeTaken', value => sub { return $_[0]->TimeTaken() }, }, Description => { title => 'Description', # loc value => sub { my $html = $_[0]->BriefDescriptionAsHTML(); return \$html }, }, ObjectName => { title => 'Name', # loc value => sub { # Since ->can() is unreliable (due to AUTOLOAD), use # _Accessible to check for methods my $object = $_[0]->Object; if ( $object->_Accessible('Name','read') ) { return $object->Name; } elsif ( $object->_Accessible('Subject','read') ) { return $object->Subject; } else { return loc('No Name'); } }, }, Content => { title => 'Content', # loc value => sub { return $_[0]->Content }, }, }; <%INIT> $m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Template/ColumnMap000644 000765 000024 00000007045 13437510132 023002 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name() }, }, Description => { title => 'Description', # loc attribute => 'Description', value => sub { return $_[0]->Description() }, }, Queue => { title => 'Queue', # loc value => sub { return $_[0]->QueueObj->Name if $_[0]->Queue; return $_[0]->loc('Global'); }, }, QueueId => { title => 'Queue', # loc value => sub { $_[0]->Queue }, }, IsEmpty => { title => 'Empty', # loc value => sub { $_[0]->IsEmpty? $_[0]->loc('Yes') : $_[0]->loc('No') }, }, UsedBy => { title => 'Used by scrips', # loc value => sub { my @res; my $scrips = $_[0]->UsedBy; while ( my $scrip = $scrips->Next ) { push @res, ', ' if @res; push @res, \'', $scrip->id, \''; } return @res; }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/Crypt/KeyIssues000644 000765 000024 00000007337 13437510132 021621 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( @$Issues || @$SignAddresses ) {
    <&| /Widgets/TitleBox, title => loc('[_1] issues', RT->Config->Get('Crypt')->{'Outgoing'}) &> % if ( @$SignAddresses ) { <% loc("The system is unable to sign outgoing email messages. This usually indicates that the passphrase was mis-set, or that GPG Agent is down. Please alert your system administrator immediately. The problem addresses are:") %>
      % for my $address (@$SignAddresses) {
    • <% $address %>
    • % }
    % } % if (@$Issues == 1) { <% loc("You are going to encrypt outgoing email messages, but there is a problem with a recipient's public key/certificate. You have to fix the problem with the key/certificate, disable sending a message to that recipient, or disable encryption.") %> % } elsif (@$Issues > 1) { <% loc("You are going to encrypt outgoing email messages, but there are problems with recipients' public keys/certificates. You have to fix the problems with the keys/certificates, disable sending a message to the recipients with problems, or disable encryption.") %> % }
      % foreach my $issue ( @$Issues ) {
    • % if ( $issue->{'User'} ) { User <&/Elements/ShowUser, User => $issue->{'User'} &> has a problem. % } else { There is a problem with key/certificate(s) for address <% $issue->{'EmailAddress'} %>, but there is no user in the DB for this address. % } <% $issue->{'Message'} %>
      Select a key/certificate you want to use for encryption: <& /Elements/Crypt/SelectKeyForEncryption, Name => 'UseKey-'. $issue->{'EmailAddress'}, EmailAddress => $issue->{'EmailAddress'}, Default => ( $issue->{'User'}? $issue->{'User'}->PreferredKey : undef ), &>
    • % }
    % } <%ARGS> $Issues => [] $SignAddresses => [] rt-4.4.4/share/html/Elements/Crypt/SignEncryptWidget000644 000765 000024 00000013327 13437510132 023302 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $columnsplit = " % } else { % }
    "; % if ( RT->Config->Get('Crypt')->{'Outgoing'} eq 'GnuPG' ) { <% loc( 'Sign[_1][_2] using [_3]', $columnsplit, $m->scomp('/Widgets/Form/Boolean:InputOnly', Name => 'Sign', CurrentValue => $self->{'Sign'} ), $m->scomp('SelectKeyForSigning', User => $session{'CurrentUser'}->UserObj ), ) |n %><% loc( 'Sign[_1][_2]', $columnsplit, $m->scomp('/Widgets/Form/Boolean:InputOnly', Name => 'Sign', CurrentValue => $self->{'Sign'} ), ) |n %><% loc('Encrypt')%> <& /Widgets/Form/Boolean:InputOnly, Name => 'Encrypt', CurrentValue => $self->{'Encrypt'} &>
    <%ARGS> $self => undef, <%INIT> return unless $self; <%METHOD new> <%ARGS> $Arguments => {} <%INIT> return undef unless RT->Config->Get('Crypt')->{'Enable'}; return { %$Arguments }; <%METHOD ShowIssues> <%ARGS> $self => undef, <%INIT> return unless $self; return $m->comp( '/Elements/Crypt/KeyIssues', Issues => $self->{'GnuPGRecipientsKeyIssues'} || [], SignAddresses => $self->{'GnuPGCanNotSignAs'} || [], ); <%METHOD Process> <%ARGS> $self => undef $QueueObj => undef $TicketObj => undef <%INIT> return unless $self; $QueueObj ||= $TicketObj->QueueObj if $TicketObj; foreach ( qw(Sign Encrypt) ) { $self->{ $_ } = $m->comp( '/Widgets/Form/Boolean:Process', Name => $_, DefaultValue => $QueueObj->$_, Arguments => $self, ); } <%METHOD Check> <%ARGS> $self => undef $Operation => 'Update' $TicketObj => undef $QueueObj => undef <%INIT> return 1 unless $self; my $checks_failure = 0; if ( $self->{'Sign'} ) { $QueueObj ||= $TicketObj->QueueObj if $TicketObj; my $private = $session{'CurrentUser'}->UserObj->PrivateKey || ''; my $queue = ($self->{'UpdateType'} && $self->{'UpdateType'} eq "private") ? ( $QueueObj->CommentAddress || RT->Config->Get('CommentAddress') ) : ( $QueueObj->CorrespondAddress || RT->Config->Get('CorrespondAddress') ); my $address = $self->{'SignUsing'} || $queue; if ($address ne $private and $address ne $queue) { push @{ $self->{'GnuPGCanNotSignAs'} ||= [] }, $address; $checks_failure = 1; } elsif ( not RT::Crypt->DrySign( Signer => $address ) ) { push @{ $self->{'GnuPGCanNotSignAs'} ||= [] }, $address; $checks_failure = 1; } else { RT::Crypt->UseKeyForSigning( $self->{'SignUsing'} ) if $self->{'SignUsing'}; } } if ( $self->{'Encrypt'} ) { my @recipients; if ( $Operation eq 'Update' ) { @recipients = map {$_->Recipients} $TicketObj->DryRun( sub { ProcessUpdateMessage( ARGSRef => {%$self}, TicketObj => $TicketObj ) } ); } elsif ( $Operation eq 'Create' ) { $TicketObj = RT::Ticket->new( $session{'CurrentUser'} ); @recipients = map {$_->Recipients} $TicketObj->DryRun( sub { CreateTicket( %$self, TicketObj => $TicketObj ); } ); } elsif ( $Operation eq 'Forward' ) { push @recipients, RT::EmailParser->ParseEmailAddress( $self->{$_} || '' ) for qw(To Cc Bcc); } else { $RT::Logger->crit('Incorrect operation: '. $Operation ); } my %seen; @recipients = grep !$seen{ lc $_ }++, @recipients; RT::Crypt->UseKeyForEncryption( map { (/^UseKey-(.*)$/)[0] => $self->{ $_ } } grep $self->{ $_ } && /^UseKey-/, keys %$self ); my ($status, @issues) = RT::Crypt->CheckRecipients( @recipients ); push @{ $self->{'GnuPGRecipientsKeyIssues'} ||= [] }, @issues; $checks_failure = 1 unless $status; } return $checks_failure ? 0 : 1; rt-4.4.4/share/html/Elements/Crypt/SelectKeyForSigning000644 000765 000024 00000004742 13437510132 023550 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $user_key ) { % } else { <% loc("Queue's key") %> % } <%ARGS> $Name => 'SignUsing', $User => undef, <%INIT> return unless RT->Config->Get('Crypt')->{'Enable'}; # XXX: Only GnuPG at this moment supports user's private keys my $user_key; $user_key = $User->PrivateKey if RT->Config->Get('Crypt')->{'Outgoing'} eq 'GnuPG'; rt-4.4.4/share/html/Elements/Crypt/SelectKeyForEncryption000644 000765 000024 00000005374 13437510132 024306 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if (!@keys) { <% loc("No usable keys.") %> % } else { % } <%INIT> my $d; my %res = RT::Crypt->GetKeysForEncryption($EmailAddress); # move the preferred key to the top of the list my @keys = map { $_->{'Fingerprint'} eq ( $Default || '' ) ? do { $d = $_; () } : $_ } @{ $res{'info'} }; @keys = sort { $b->{'TrustLevel'} <=> $a->{'TrustLevel'} } @keys; unshift @keys, $d if defined $d; <%ARGS> $Name => 'PreferredKey' $EmailAddress => undef $Default => undef rt-4.4.4/share/html/Elements/RT__User/ColumnMap000644 000765 000024 00000012461 13437510132 022143 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name() }, }, RealName => { title => 'Real Name', # loc attribute => 'RealName', value => sub { return $_[0]->RealName() }, }, NickName => { title => 'Nickname', # loc attribute => 'NickName', value => sub { return $_[0]->NickName() }, }, EmailAddress => { title => 'Email Address', # loc attribute => 'EmailAddress', value => sub { return $_[0]->EmailAddress() }, }, Organization => { title => 'Organization', # loc attribute => 'Organization', value => sub { return $_[0]->Organization() }, }, HomePhone => { title => 'Home Phone', # loc attribute => 'HomePhone', value => sub { return $_[0]->HomePhone() }, }, WorkPhone => { title => 'Work Phone', # loc attribute => 'WorkPhone', value => sub { return $_[0]->WorkPhone() }, }, MobilePhone => { title => 'Mobile Phone', # loc attribute => 'MobilePhone', value => sub { return $_[0]->MobilePhone() }, }, PagerPhone => { title => 'Pager Phone', # loc attribute => 'PagerPhone', value => sub { return $_[0]->PagerPhone() }, }, Address1 => { title => 'Address', # loc attribute => 'Address1', value => sub { return $_[0]->Address1() }, }, Address2 => { title => 'Address 2', # loc attribute => 'Address2', value => sub { return $_[0]->Address2() }, }, City => { title => 'City', # loc attribute => 'City', value => sub { return $_[0]->City() }, }, State => { title => 'State', # loc attribute => 'State', value => sub { return $_[0]->State() }, }, Zip => { title => 'Zip', # loc attribute => 'Zip', value => sub { return $_[0]->Zip() }, }, Country => { title => 'Country', # loc attribute => 'Country', value => sub { return $_[0]->Country() }, }, Gecos => { title => 'Unix login', #loc attribute => 'Gecos', value => sub { return $_[0]->Gecos() }, }, Lang => { title => 'Language', #loc attribute => 'Lang', value => sub { return $_[0]->Lang() }, }, FreeformContactInfo => { title => 'Extra Info', #loc attribute => 'FreeformContactInfo', value => sub { return $_[0]->FreeformContactInfo() }, }, Disabled => { title => 'Status', # loc value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, }, Timezone => { title => 'Timezone', # loc attribute => 'Timezone', value => sub { return $_[0]->Timezone }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__SavedSearch/ColumnMap000644 000765 000024 00000005760 13437510132 023421 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name()||loc("Unnamed search") }, }, Query => { title => 'Query', # loc attribute => 'Query', value => sub { return $_[0]->GetParameter('Query') }, }, ResultsURL => { title => '', attribute => 'ResultsURL', value => sub { my $search = shift; return $m->comp('/Elements/QueryString', map { $_ => $search->GetParameter($_) } qw(Query Format Rows Order OrderBy)); }, } }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Article/ColumnMap000644 000765 000024 00000006532 13437510132 022612 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP; $COLUMN_MAP = { Name => { attribute => 'Name', title => 'Name', # loc value => sub { $_[0]->Name }, }, Summary => { attribute => 'Summary', title => 'Summary', # loc value => sub { $_[0]->Summary }, }, Class => { attribute => 'Class', title => 'Class id', # loc value => sub { $_[0]->Class }, }, ClassName => { attribute => 'Class', title => 'Class', # loc value => sub { $_[0]->ClassObj->Name }, }, Topics => { title => 'Topics', # loc value => sub { my $topics = ''; my $Topics = $_[0]->Topics; while ( my $t = $Topics->Next ) { $topics .= $m->scomp( '/Articles/Elements/ShowTopic', topic => $t->TopicObj ) . '
    '; } return \$topics; }, } }; <%init> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'Once', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Queue/ColumnMap000644 000765 000024 00000011054 13437510132 022306 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => undef $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Disabled => { title => 'Status', # loc attribute => 'Disabled', value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, }, InitialPriority => { title => 'InitialPriority', # loc value => sub { $_[0]->DefaultValue('InitialPriority') || '' }, }, FinalPriority => { title => 'FinalPriority', # loc value => sub { $_[0]->DefaultValue('FinalPriority') || '' }, }, Priority => { title => 'Priority', # loc value => sub { return join '-', $_[0]->DefaultValue('InitialPriority') || '', $_[0]->DefaultValue('FinalPriority') || '' }, }, DefaultDueIn => { title => 'DefaultDueIn', # loc value => sub { return $_[0]->DefaultValue('Due') || '' }, }, DefaultStarts => { title => 'DefaultStarts', # loc value => sub { return $_[0]->DefaultValue('Starts') || '' }, }, Address => { title => 'Address', # loc value => sub { return ($_[0]->CorrespondAddress||'-') .'/'. ($_[0]->CommentAddress||'-') }, }, # SubjectTag is special as we can not sort SubjectTag => { title => 'SubjectTag', # loc attribute => 'SubjectTag', value => sub { return $_[0]->SubjectTag }, }, Sign => { title => 'Sign', # loc value => sub { return $_[0]->Sign? $_[0]->loc('yes') : $_[0]->loc('no') }, }, Encrypt => { title => 'Encrypt', # loc value => sub { return $_[0]->Encrypt? $_[0]->loc('yes') : $_[0]->loc('no') }, }, Lifecycle => { title => 'Lifecycle', attribute => 'Lifecycle', value => sub { return $_[0]->Lifecycle }, }, ScripStage => { title => 'Stage', # loc value => sub { my $os = RT::ObjectScrip->new( $_[0]->CurrentUser ); $os->LoadByCols( Scrip => $_[-1], ObjectId => $_[0]->id ); return $_[0]->loc( $os->FriendlyStage ); }, }, }; foreach my $field (qw( Name Description CorrespondAddress CommentAddress SortOrder )) { $COLUMN_MAP->{$field} = { title => $field, attribute => $field, value => sub { return $_[0]->$field() }, }, } <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Elements/RT__Class/ColumnMap000644 000765 000024 00000005434 13437510132 022274 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name $Attr => undef $GenericMap => {} <%ONCE> my $COLUMN_MAP = { Name => { title => 'Name', # loc attribute => 'Name', value => sub { return $_[0]->Name() }, }, Description => { title => 'Description', # loc attribute => 'Description', value => sub { return $_[0]->Description() }, }, Disabled => { title => 'Status', # loc attribute => 'Disabled', value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, }, }; <%INIT> $m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); rt-4.4.4/share/html/Search/Build.html000644 000765 000024 00000025116 13437510132 020222 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# %# Data flow here: %# The page receives a Query from the previous page, and maybe arguments %# corresponding to actions. (If it doesn't get a Query argument, it pulls %# one out of the session hash. Also, it could be getting just a raw query from %# Build/Edit.html (Advanced).) %# %# After doing some stuff with default arguments and saved searches, the ParseQuery %# function (which is similar to, but not the same as, _parser in lib/RT/Tickets.pm) %# converts the Query into a RT::Interface::Web::QueryBuilder::Tree. This mason file %# then adds stuff to or modifies the tree based on the actions that had been requested %# by clicking buttons. It then calls GetQueryAndOptionList on the tree to generate %# the SQL query (which is saved as a hidden input) and the option list for the Clauses %# box in the top right corner. %# %# Worthwhile refactoring: the tree manipulation code for the actions could use some cleaning %# up. The node-adding code is different in the "add" actions from in ParseQuery, which leads %# to things like ParseQuery correctly not quoting numbers in numerical fields, while the "add" %# action does quote it (this breaks SQLite). %# <& /Elements/Header, Title => $title &> <& /Elements/Tabs, %TabArgs &>
    <& Elements/PickCriteria, query => $query{'Query'}, queues => $queues &>
    <& /Elements/Submit, Label => loc('Add these terms'), SubmitId => 'AddClause', Name => 'AddClause'&> <& /Elements/Submit, Label => loc('Add these terms and Search'), SubmitId => 'DoSearch', Name => 'DoSearch'&>
    <& Elements/EditQuery, %ARGS, actions => \@actions, optionlist => $optionlist, Description => $saved_search{'Description'}, &>
    <& Elements/EditSearches, %saved_search, CurrentSearch => \%query &>
    <& Elements/DisplayOptions, %ARGS, %query, AvailableColumns => $AvailableColumns, CurrentFormat => $CurrentFormat, &> <& /Elements/Submit, Label => loc('Update format and Search'), Name => 'DoSearch', id=>"formatbuttons"&>
    <%INIT> use RT::Interface::Web::QueryBuilder; use RT::Interface::Web::QueryBuilder::Tree; $ARGS{SavedChartSearchId} ||= 'new'; my $title = loc("Query Builder"); my %query; for( qw(Query Format OrderBy Order RowsPerPage) ) { $query{$_} = $ARGS{$_}; } my %saved_search; my @actions = $m->comp( 'Elements/EditSearches:Init', %ARGS, Query => \%query, SavedSearch => \%saved_search); if ( $NewQuery ) { # Wipe all data-carrying variables clear if we want a new # search, or we're deleting an old one.. %query = (); %saved_search = ( Id => 'new' ); # ..then wipe the session out.. delete $session{'CurrentSearchHash'}; # ..and the search results. $session{'tickets'}->CleanSlate if defined $session{'tickets'}; } { # Attempt to load what we can from the session and preferences, set defaults my $current = $session{'CurrentSearchHash'}; my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {}; my $default = { Query => '', Format => '', OrderBy => RT->Config->Get('DefaultSearchResultOrderBy'), Order => RT->Config->Get('DefaultSearchResultOrder'), RowsPerPage => 50 }; for( qw(Query Format OrderBy Order RowsPerPage) ) { $query{$_} = $current->{$_} unless defined $query{$_}; $query{$_} = $prefs->{$_} unless defined $query{$_}; $query{$_} = $default->{$_} unless defined $query{$_}; } for( qw(Order OrderBy) ) { if (ref $query{$_} eq "ARRAY") { $query{$_} = join( '|', @{ $query{$_} } ); } } if ( $query{'Format'} ) { # Clean unwanted junk from the format $query{'Format'} = $m->comp( '/Elements/ScrubHTML', Content => $query{'Format'} ); } } my $ParseQuery = sub { my ($string, $results) = @_; my $tree = RT::Interface::Web::QueryBuilder::Tree->new('AND'); @$results = $tree->ParseSQL( Query => $string, CurrentUser => $session{'CurrentUser'} ); return $tree; }; my @parse_results; my $tree = $ParseQuery->( $query{'Query'}, \@parse_results ); # if parsing went poorly, send them to the edit page to fix it if ( @parse_results ) { push @actions, @parse_results; return $m->comp( "Edit.html", Query => $query{'Query'}, Format => $query{'Format'}, SavedSearchId => $saved_search{'Id'}, SavedChartSearchId => $ARGS{'SavedChartSearchId'}, actions => \@actions, ); } my @options = $tree->GetDisplayedNodes; my @current_values = grep defined, @options[@clauses]; my @new_values = (); my $cf_field_names = join "|", map quotemeta, grep { $RT::Tickets::FIELD_METADATA{$_}->[0] eq 'CUSTOMFIELD' } sort keys %RT::Tickets::FIELD_METADATA; # Try to find if we're adding a clause foreach my $arg ( keys %ARGS ) { next unless $arg =~ m/^ValueOf(\w+|($cf_field_names).\{.*?\}|CustomRole.\{.*?\})$/ && ( ref $ARGS{$arg} eq "ARRAY" ? grep $_ ne '', @{ $ARGS{$arg} } : $ARGS{$arg} ne '' ); # We're adding a $1 clause my $field = $1; my ($op, $value); #figure out if it's a grouping my $keyword = $ARGS{ $field . "Field" } || $field; my ( @ops, @values ); if ( ref $ARGS{ 'ValueOf' . $field } eq "ARRAY" ) { # we have many keys/values to iterate over, because there is # more than one CF with the same name. @ops = @{ $ARGS{ $field . 'Op' } }; @values = @{ $ARGS{ 'ValueOf' . $field } }; } else { @ops = ( $ARGS{ $field . 'Op' } ); @values = ( $ARGS{ 'ValueOf' . $field } ); } $RT::Logger->error("Bad Parameters passed into Query Builder") unless @ops == @values; for ( my $i = 0; $i < @ops; $i++ ) { my ( $op, $value ) = ( $ops[$i], $values[$i] ); next if !defined $value || $value eq ''; my $clause = { Key => $keyword, Op => $op, Value => $value, }; push @new_values, RT::Interface::Web::QueryBuilder::Tree->new($clause); } } push @actions, $m->comp('Elements/EditQuery:Process', %ARGS, Tree => $tree, Selected => \@current_values, New => \@new_values, ); # Rebuild $Query based on the additions / movements my $optionlist_arrayref; ($query{'Query'}, $optionlist_arrayref) = $tree->GetQueryAndOptionList(\@current_values); my $optionlist = join "\n", map { qq() } @$optionlist_arrayref; my $queues = $tree->GetReferencedQueues; # Deal with format changes my ( $AvailableColumns, $CurrentFormat ); ( $query{'Format'}, $AvailableColumns, $CurrentFormat ) = $m->comp( 'Elements/BuildFormatString', %ARGS, queues => $queues, Format => $query{'Format'}, ); # if we're asked to save the current search, save it push @actions, $m->comp( 'Elements/EditSearches:Save', %ARGS, Query => \%query, SavedSearch => \%saved_search); # Populate the "query" context with saved search data if ($ARGS{SavedSearchSave}) { $query{'SavedSearchId'} = $saved_search{'Id'}; } # Push the updates into the session so we don't lose 'em $session{'CurrentSearchHash'} = { %query, SearchId => $saved_search{'Id'}, Object => $saved_search{'Object'}, Description => $saved_search{'Description'}, }; # Show the results, if we were asked. if ( $ARGS{'DoSearch'} ) { my $redir_query_string = $m->comp( '/Elements/QueryString', %query, SavedChartSearchId => $ARGS{'SavedChartSearchId'}, SavedSearchId => $saved_search{'Id'}, ); RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Search/Results.html?' . $redir_query_string); $m->abort; } # Build a querystring for the tabs my %TabArgs = (); if ($NewQuery) { $TabArgs{QueryString} = 'NewQuery=1'; } elsif ( $query{'Query'} ) { $TabArgs{QueryArgs} = \%query; } <%ARGS> $NewQuery => 0 @clauses => () rt-4.4.4/share/html/Search/Results.tsv000644 000765 000024 00000005330 13437510132 020470 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Format => undef $Query => '' $OrderBy => 'id' $Order => 'ASC' $PreserveNewLines => 0 $UserData => 0 <%INIT> my $Tickets = RT::Tickets->new( $session{'CurrentUser'} ); $Tickets->FromSQL( $Query ); if ( $OrderBy =~ /\|/ ) { # Multiple Sorts my @OrderBy = split /\|/, $OrderBy; my @Order = split /\|/, $Order; $Tickets->OrderByCols( map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0 .. $#OrderBy ) ); } else { $Tickets->OrderBy( FIELD => $OrderBy, ORDER => $Order ); } my $filename = $UserData ? 'UserTicketData.tsv' : undef; $m->comp( "/Elements/TSVExport", Collection => $Tickets, Format => $Format, PreserveNewLines => $PreserveNewLines, Filename => $filename ); rt-4.4.4/share/html/Search/index.html000644 000765 000024 00000004214 13437510132 020266 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Searches') &> <& /Elements/Tabs &> <& /Elements/ListMenu, menu => Menu()->child('search'), show_children => 1 &> rt-4.4.4/share/html/Search/Article.html000644 000765 000024 00000004330 13437510132 020541 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> RT::Interface::Web::Redirect(RT->Config->Get('WebURL'). 'Articles/Article/Search.html?' . $m->comp( '/Elements/QueryString', %ARGS, Load => 'Load', CurrentSearch => $ARGS{LoadSavedSearch} ) ); rt-4.4.4/share/html/Search/Chart000644 000765 000024 00000037340 13437510132 017263 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Cache => undef $Query => "id > 0" @GroupBy => () $ChartStyle => 'bar+table+sql' @ChartFunction => 'COUNT' $Width => undef $Height => undef <%init> use GD; use GD::Text; my %font_config = RT->Config->Get('ChartFont'); my $font = $font_config{ $session{CurrentUser}->UserObj->Lang || '' } || $font_config{'others'}; s/\D//g for grep defined, $Width, $Height; $Width ||= 600; $Height ||= ($ChartStyle =~ /\bpie\b/ ? $Width : 400); $Height = $Width if $ChartStyle =~ /\bpie\b/; my $plot_error = sub { my $text = shift; my ($plot, $error); my $create_plot = sub { my ($width, $height) = @_; my $plot = GD::Image->new($width => $height); $plot->colorAllocate(255, 255, 255); # background my $black = $plot->colorAllocate(0, 0, 0); require GD::Text::Wrap; my $error = GD::Text::Wrap->new($plot, color => $black, text => $text, align => "left", width => $width - 20, preserve_nl => 1, ); $error->set_font( $font, 16 ); return ($plot, $error); }; ($plot, $error) = $create_plot->($Width, $Height); my $text_height = ($error->get_bounds(0, 0))[3]; # GD requires us to replot it all with the new height ($plot, $error) = $create_plot->($Width, $text_height + 20); $error->draw(10, 10); $m->comp( 'SELF:Plot', plot => $plot, %ARGS ); }; use RT::Report::Tickets; my $report = RT::Report::Tickets->new( $session{'CurrentUser'} ); my %columns; if ( $Cache and my $data = delete $session{'charts_cache'}{ $Cache } ) { %columns = %{ $data->{'columns'} }; $report->Deserialize( $data->{'report'} ); $session{'i'}++; } else { %columns = $report->SetupGroupings( Query => $Query, GroupBy => \@GroupBy, Function => \@ChartFunction, ); $report->SortEntries; } my @data = ([],[]); my $max_value = 0; my $min_value; my $max_key_length = 0; while ( my $entry = $report->Next ) { push @{ $data[0] }, [ map $entry->LabelValue( $_ ), @{ $columns{'Groups'} } ]; my @values; foreach my $column ( @{ $columns{'Functions'} } ) { my $v = $entry->RawValue( $column ); unless ( ref $v ) { push @values, $v; next; } my @subs = $report->FindImplementationCode( $report->ColumnInfo( $column )->{'META'}{'SubValues'} )->( $report ); push @values, map $v->{$_}, @subs; } my $i = 0; push @{ $data[++$i] }, $_ foreach @values; foreach my $v ( @values ) { $max_value = $v if $max_value < $v; $min_value = $v if !defined $min_value || $min_value > $v; } } $ChartStyle =~ s/\bpie\b/bar/ if @data > 2; my $chart_class; if ($ChartStyle =~ /\bpie\b/) { require GD::Graph::pie; $chart_class = "GD::Graph::pie"; } else { require GD::Graph::bars; $chart_class = "GD::Graph::bars"; } # Pie charts don't like having no input, so we show a special image # that indicates an error message. Because this is used in an # context, it can't be a simple error message. Without this check, # the chart will just be a non-loading image. unless ( $report->Count ) { return $plot_error->(loc("No tickets found.")); } my $chart = $chart_class->new( $Width => $Height ); my %chart_options; if ($chart_class eq "GD::Graph::bars") { my $count = @{ $data[0] }; $chart_options{'bar_spacing'} = $count > 30 ? 1 : $count > 20 ? 2 : $count > 10 ? 3 : 5 ; if ( my $code = $report->LabelValueCode( $columns{'Functions'}[0] ) ) { my %info = %{ $report->ColumnInfo( $columns{'Functions'}[0] ) }; $chart_options{'values_format'} = $chart_options{'y_number_format'} = sub { return $code->($report, %info, VALUE => shift ); }; } $report->GotoFirstItem; # normalize min/max values to graph boundaries { my $integer = 1; $integer = 0 for grep $_ ne int $_, $min_value, $max_value; $max_value *= $max_value > 0 ? 1.1 : 0.9 if $max_value; $min_value *= $min_value > 0 ? 0.9 : 1.1 if $min_value; if ($integer) { $max_value = int($max_value + ($max_value > 0? 1 : 0) ); $min_value = int($min_value + ($min_value < 0? -1 : 0) ); my $span = abs($max_value - $min_value); $max_value += 5 - ($span % 5); } $chart_options{'y_label_skip'} = 2; $chart_options{'y_tick_number'} = 10; } my $text_size = sub { my ($size, $text) = (@_); my $font_handle = GD::Text::Align->new( $chart->get('graph'), valign => 'top', 'halign' => 'center', ); $font_handle->set_font($font, $size); $font_handle->set_text($text); return $font_handle; }; my $fitter = sub { my %args = @_; foreach my $font_size ( @{$args{'sizes'}} ) { my $line_height = $text_size->($font_size, 'Q')->get('height'); my $keyset_height = $line_height; if ( ref $args{data}->[0] ) { $keyset_height = $text_size->($font_size, join "\n", ('Q')x scalar @{ $args{data}->[0] }) ->get('height'); } my $status = 1; foreach my $e ( @{ $args{data} } ) { $status = $args{'cb'}->( element => $e, size => $font_size, line_height => $line_height, keyset_height => $keyset_height, ); last unless $status; } next unless $status; return $font_size; } return 0; }; # try to fit in labels on X axis values, aka key { # we have several labels layouts: # 1) horizontal, one line per label # 2) horizontal, multi-line - doesn't work, GD::Chart bug # 3) vertical, one line # 4) vertical, multi-line my %can = ( 'horizontal, one line' => 1, 'vertical, one line' => 1, 'vertical, multi line' => @{$data[0][0]} > 1, ); my $x_space_for_label = $Width*0.8/($count+1.5); my $y_space_for_label = $Height*0.4; my $found_solution = $fitter->( sizes => [12,11,10], data => $data[0], cb => sub { my %args = @_; # if horizontal space doesn't allow us to fit one vertical line, # then we need smaller font return 0 if $args{'line_height'} > $x_space_for_label; my $width = $text_size->( $args{'size'}, join ' - ', @{ $args{'element'} } ) ->get('width'); if ( $width > $x_space_for_label ) { $can{'horizontal, one line'} = 0; } if ( $width > $y_space_for_label ) { $can{'vertical, one line'} = 0; } if ( $args{'keyset_height'} >= $x_space_for_label ) { $can{'vertical, multi line'} = 0; } if ( $can{'vertical, multi line'} ) { my $width = $text_size->( $args{'size'}, join "\n", @{ $args{'element'} } ) ->get('width'); if ( $width > $y_space_for_label ) { $can{'vertical, multi line'} = 0; } } return 0 unless grep $_, values %can; return 1; }, ); if ( $found_solution ) { $chart_options{'x_axis_font'} = [$font, $found_solution]; if ( $can{'horizontal, one line'} ) { $chart_options{'x_labels_vertical'} = 0; $_ = join ' - ', @$_ foreach @{$data[0]}; } elsif ( $can{'vertical, multi line'} ) { $chart_options{'x_labels_vertical'} = 1; $_ = join "\n", @$_ foreach @{$data[0]}; } else { $chart_options{'x_labels_vertical'} = 1; $_ = join " - ", @$_ foreach @{$data[0]}; } } else { my $font_handle = $text_size->(10, 'Q'); my $line_height = $font_handle->get('height'); if ( $line_height > $x_space_for_label ) { $Width *= $line_height/$x_space_for_label; $Width = int( $Width+1 ); } $_ = join " - ", @$_ foreach @{$data[0]}; my $max_text_width = 0; foreach (@{$data[0]}) { $font_handle->set_text($_); my $width = $font_handle->get('width'); $max_text_width = $width if $width > $max_text_width; } if ( $max_text_width > $Height*0.4 ) { $Height = int($max_text_width / 0.4 + 1); } $chart_options{'x_labels_vertical'} = 1; $chart_options{'x_axis_font'} = [$font, 10]; } } # use the same size for y axis labels { $chart_options{'y_axis_font'} = $chart_options{'x_axis_font'}; } # try to fit in values above bars { # 0.8 is guess, labels for ticks on Y axis can be wider # 1.5 for paddings around bars that GD::Graph adds my $x_space_for_label = $Width*0.8/($count*(@data - 1)+1.5); my %can = ( 'horizontal, one line' => 1, 'vertical, one line' => 1, ); my %seen; my $found_solution = $fitter->( sizes => [ grep $_ <= $chart_options{'x_axis_font'}[1], 12, 11, 10, 9 ], data => [ map {@$_} @data[1..(@data-1)] ], cb => sub { my %args = @_; # if horizontal space doesn't allow us to fit one vertical line, # then we need smaller font return 0 if $args{'line_height'} > $x_space_for_label; my $value = $args{'element'}; $value = $chart_options{'values_format'}->($value) if $chart_options{'values_format'}; return 1 if $seen{$value}++; my $width = $text_size->( $args{'size'}, $value )->get('width'); if ( $width > $x_space_for_label ) { $can{'horizontal, one line'} = 0; } my $y_space_for_label; if ($max_value == $min_value) { $y_space_for_label = 0; } else { $y_space_for_label = $Height * 0.6 *( 1 - ($args{'element'}-$min_value)/($max_value-$min_value) ); } if ( $width > $y_space_for_label ) { $can{'vertical, one line'} = 0; } return 0 unless grep $_, values %can; return 1; }, ); $chart_options{'show_values'} = 1; $chart_options{'hide_overlapping_values'} = 1; if ( $found_solution ) { $chart_options{'values_font'} = [ $font, $found_solution ], $chart_options{'values_space'} = 2; $chart_options{'values_vertical'} = $can{'horizontal, one line'} ? 0 : 1; } else { $chart_options{'values_font'} = [ $font, 9 ], $chart_options{'values_space'} = 1; $chart_options{'values_vertical'} = 1; } } %chart_options = ( %chart_options, x_label => join( ' - ', map $report->Label( $_ ), @{ $columns{'Groups'} } ), x_label_position => 0.6, y_label => $report->Label( $columns{'Functions'}[0] ), y_label_position => 0.6, # use a top margin enough to display values over the top line if needed t_margin => 18, # the following line to make sure there's enough space for values to show y_max_value => $max_value, y_min_value => $min_value, # if there're too many bars or at least one key is too long, use vertical bargroup_spacing => $chart_options{'bar_spacing'}*5, ); } else { my $i = 0; while ( my $entry = $report->Next ) { push @{ $data[0][$i++] }, $entry->LabelValue( $columns{'Functions'}[0] ); } $_ = join ' - ', @$_ foreach @{$data[0]}; } if ($chart->get('width') != $Width || $chart->get('height') != $Height ) { $chart = $chart_class->new( $Width => $Height ); } %chart_options = ( '3d' => 0, title_font => [ $font, 16 ], legend_font => [ $font, 16 ], x_label_font => [ $font, 14 ], y_label_font => [ $font, 14 ], label_font => [ $font, 14 ], y_axis_font => [ $font, 12 ], values_font => [ $font, 12 ], value_font => [ $font, 12 ], %chart_options, ); foreach my $opt ( grep /_font$/, keys %chart_options ) { my $v = delete $chart_options{$opt}; next unless my $can = $chart->can("set_$opt"); $can->($chart, @$v); } $chart->set(%chart_options) if keys %chart_options; $chart->{dclrs} = [ RT->Config->Get("ChartColors") ]; { no warnings 'redefine'; *GD::Graph::pick_data_clr = sub { my $self = shift; my $color_hex = $self->{dclrs}[ $_[0] % @{ $self->{dclrs} } - 1 ]; return map { hex } ( $color_hex =~ /(..)(..)(..)/ ); }; } if (my $plot = eval { $chart->plot( \@data ) }) { $m->comp( 'SELF:Plot', plot => $plot, %ARGS ); } else { my $error = join "\n", grep defined && length, $chart->error, $@; $plot_error->(loc("Error plotting chart: [_1]", $error)); } <%METHOD Plot> <%ARGS> $plot => undef <%INIT> my @types = ('png', 'gif'); for my $type (@types) { $plot->can($type) or next; $r->content_type("image/$type"); $m->out( $plot->$type ); $m->abort(); } die "Your GD library appears to support none of the following image types: " . join(', ', @types); rt-4.4.4/share/html/Search/Chart.html000644 000765 000024 00000017770 13437510132 020233 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $default_value = { Query => 'id > 0', GroupBy => ['Status'], ChartStyle => 'bar+table+sql', ChartFunction => ['COUNT'], }; $m->callback( ARGSRef => \%ARGS, CallbackName => 'Initial' ); my $title = loc( "Grouped search results"); my @search_fields = qw(Query GroupBy ChartStyle ChartFunction Width Height); my $saved_search = $m->comp( '/Widgets/SavedSearch:new', SearchType => 'Chart', SearchFields => [@search_fields], ); my @actions = $m->comp( '/Widgets/SavedSearch:process', args => \%ARGS, defaults => $default_value, self => $saved_search, ); my %query; { if ($saved_search->{'CurrentSearch'}->{'Object'}) { foreach my $search_field (@{ $saved_search->{'SearchFields'} }) { $query{$search_field} = $saved_search->{'CurrentSearch'}->{'Object'}->Content->{$search_field}; } } my $current = $session{'CurrentSearchHash'}; my @session_fields = qw( Query SavedChartSearchId SavedSearchDescription SavedSearchLoad SavedSearchLoadButton SavedSearchOwner ); for(@session_fields) { $query{$_} = $DECODED_ARGS->{$_} unless defined $query{$_}; $query{$_} = $current->{$_} unless defined $query{$_}; } if ($DECODED_ARGS->{'SavedSearchLoadSubmit'}) { $query{'SavedChartSearchId'} = $DECODED_ARGS->{'SavedSearchLoad'}; } if ($DECODED_ARGS->{'SavedSearchSave'}) { $query{'SavedChartSearchId'} = $saved_search->{'SearchId'}; } } foreach (@search_fields) { if ( ref $default_value->{$_} ) { $query{$_} = ref $ARGS{$_} ? $ARGS{$_} : [ $ARGS{$_} ]; $query{$_} = $default_value->{$_} unless defined $query{$_} && defined $query{$_}[0]; } else { $query{$_} = ref $ARGS{$_} ? $ARGS{$_} : $ARGS{$_}; $query{$_} = $default_value->{$_} unless defined $query{$_}; } } $m->callback( ARGSRef => \%ARGS, QueryArgsRef => \%query ); <& /Elements/Header, Title => $title &> <& /Elements/Tabs, QueryArgs => \%query &> <& /Elements/ListActions, actions => \@actions &> % $m->callback( ARGSRef => \%ARGS, CallbackName => 'BeforeChart' ); <& /Search/Elements/Chart, %ARGS &> % $m->callback( ARGSRef => \%ARGS, CallbackName => 'AfterChart' );
    <&| /Widgets/TitleBox, title => loc('Group by'), class => "chart-group-by" &>
    <% loc('Group tickets by') %> <& Elements/SelectGroupBy, Name => 'GroupBy', Query => $query{Query}, Default => $query{'GroupBy'}[0], &>
    <% loc('and then') %> <& Elements/SelectGroupBy, Name => 'GroupBy', Query => $query{Query}, Default => $query{'GroupBy'}[1] // q{}, ShowEmpty => 1, &>
    <% loc('and then') %> <& Elements/SelectGroupBy, Name => 'GroupBy', Query => $query{Query}, Default => $query{'GroupBy'}[2] // q{}, ShowEmpty => 1, &>
    <&| /Widgets/TitleBox, title => loc("Calculate"), class => "chart-calculate" &>
    <% loc('Calculate values of') %> <& Elements/SelectChartFunction, Default => $query{'ChartFunction'}[0] &>
    <% loc('and then') %> <& Elements/SelectChartFunction, Default => $query{'ChartFunction'}[1] // q{}, ShowEmpty => 1 &>
    <% loc('and then') %> <& Elements/SelectChartFunction, Default => $query{'ChartFunction'}[2] // q{}, ShowEmpty => 1 &>
    <&| /Widgets/TitleBox, title => loc('Picture'), class => "chart-picture" &> ×
    > <% loc('Include data table') %>
    > <% loc('Include TicketSQL query') %>
    <& /Elements/Submit, Label => loc('Update Chart'), Name => 'Update' &>
    rt-4.4.4/share/html/Search/Elements/000755 000765 000024 00000000000 13437510132 020044 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Search/Edit.html000644 000765 000024 00000006522 13437510132 020050 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title&> <& /Elements/Tabs &> <& Elements/NewListActions, actions => \@actions &>
    <&|/Widgets/TitleBox, title => loc('Query'), &> <&|/Widgets/TitleBox, title => loc('Format'), &> <& /Elements/Submit, Label => loc("Apply"), Reset => 1, Caption => loc("Apply your changes")&>
    <%INIT> my $title = loc("Edit Query"); $Format = $m->comp('/Elements/ScrubHTML', Content => $Format); my $QueryString = $m->comp('/Elements/QueryString', Query => $Query, Format => $Format, RowsPerPage => $Rows, OrderBy => $OrderBy, Order => $Order, ); <%ARGS> $SavedSearchId => 'new' $SavedChartSearchId => 'new' $Query => '' $Format => '' $Rows => '50' $OrderBy => 'id' $Order => 'ASC' @actions => () rt-4.4.4/share/html/Search/Results.html000644 000765 000024 00000020625 13437510132 020624 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title, Refresh => $refresh, LinkRel => \%link_rel &> <& /Elements/Tabs &> % my $DisplayFormat; % $m->callback( ARGSRef => \%ARGS, Format => \$Format, DisplayFormat => \$DisplayFormat, CallbackName => 'BeforeResults' ); % unless ($ok) { % $msg =~ s{ at .*? line .*}{}s; <&| /Widgets/TitleBox, title => loc("Error"), class => "error-titlebox" &> <&|/l_unsafe, "".$m->interp->apply_escapes($msg, "h")."" &>There was an error parsing your search query: [_1]. Your RT admin can find more information in the error logs. % } else { <& /Elements/CollectionList, Query => $Query, TotalFound => $ticketcount, AllowSorting => 1, OrderBy => $OrderBy, Order => $Order, Rows => $Rows, Page => $Page, Format => $Format, DisplayFormat => $DisplayFormat, # in case we set it in callbacks Class => 'RT::Tickets', BaseURL => $BaseURL, SavedSearchId => $ARGS{'SavedSearchId'}, SavedChartSearchId => $ARGS{'SavedChartSearchId'}, PassArguments => [qw(Query Format Rows Page Order OrderBy SavedSearchId SavedChartSearchId)], &> % } % $m->callback( ARGSRef => \%ARGS, CallbackName => 'AfterResults' ); % my %hiddens = (Query => $Query, Format => $Format, Rows => $Rows, OrderBy => $OrderBy, Order => $Order, HideResults => $HideResults, Page => $Page, SavedChartSearchId => $SavedChartSearchId );
    % foreach my $key (keys(%hiddens)) { % } <& /Elements/Refresh, Name => 'TicketsRefreshInterval', Default => $session{'tickets_refresh_interval'}||RT->Config->Get('SearchResultsRefreshInterval', $session{'CurrentUser'}) &>
    %# Keyboard shortcuts info
    <%INIT> $m->callback( ARGSRef => \%ARGS, CallbackName => 'Initial' ); # Read from user preferences my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {}; # These variables are what define a search_hash; this is also # where we give sane defaults. $Format ||= $prefs->{'Format'} || RT->Config->Get('DefaultSearchResultFormat'); $Order ||= $prefs->{'Order'} || RT->Config->Get('DefaultSearchResultOrder'); $OrderBy ||= $prefs->{'OrderBy'} || RT->Config->Get('DefaultSearchResultOrderBy'); # Some forms pass in "RowsPerPage" rather than "Rows" # We call it RowsPerPage everywhere else. if ( !defined($Rows) ) { if (defined $ARGS{'RowsPerPage'} ) { $Rows = $ARGS{'RowsPerPage'}; } elsif ( defined $prefs->{'RowsPerPage'} ) { $Rows = $prefs->{'RowsPerPage'}; } else { $Rows = 50; } } $Page = 1 unless $Page && $Page > 0; $session{'i'}++; $session{'tickets'} = RT::Tickets->new($session{'CurrentUser'}) ; my ($ok, $msg) = $Query ? $session{'tickets'}->FromSQL($Query) : (1, "Vacuously OK"); # Provide an empty search if parsing failed $session{'tickets'}->FromSQL("id < 0") unless ($ok); if ($OrderBy =~ /\|/) { # Multiple Sorts my @OrderBy = split /\|/,$OrderBy; my @Order = split /\|/,$Order; $session{'tickets'}->OrderByCols( map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0 .. $#OrderBy ) );; } else { $session{'tickets'}->OrderBy(FIELD => $OrderBy, ORDER => $Order); } $session{'tickets'}->RowsPerPage( $Rows ) if $Rows; $session{'tickets'}->GotoPage( $Page - 1 ); $session{'CurrentSearchHash'} = { Format => $Format, Query => $Query, Page => $Page, Order => $Order, OrderBy => $OrderBy, RowsPerPage => $Rows }; my ($title, $ticketcount) = (loc("Find tickets"), 0); if ( $session{'tickets'}->Query()) { $ticketcount = $session{tickets}->CountAll(); $title = loc('Found [quant,_1,ticket,tickets]', $ticketcount); } my $QueryString = "?".$m->comp('/Elements/QueryString', Query => $Query, Format => $Format, Rows => $Rows, OrderBy => $OrderBy, Order => $Order, Page => $Page); my $ShortQueryString = "?".$m->comp('/Elements/QueryString', Query => $Query); if ($ARGS{'TicketsRefreshInterval'}) { $session{'tickets_refresh_interval'} = $ARGS{'TicketsRefreshInterval'}; } my $refresh = $session{'tickets_refresh_interval'} || RT->Config->Get('SearchResultsRefreshInterval', $session{'CurrentUser'} ); # Check $m->request_args, not $DECODED_ARGS, to avoid creating a new CSRF token on each refresh if (RT->Config->Get('RestrictReferrer') and $refresh and not $m->request_args->{CSRF_Token}) { my $token = RT::Interface::Web::StoreRequestToken( $session{'CurrentSearchHash'} ); $m->notes->{RefreshURL} = RT->Config->Get('WebURL') . "Search/Results.html?CSRF_Token=" . $token; } my %link_rel; my $genpage = sub { return $m->comp( '/Elements/QueryString', Query => $Query, Format => $Format, Rows => $Rows, OrderBy => $OrderBy, Order => $Order, Page => shift(@_), ); }; if ( RT->Config->Get('SearchResultsAutoRedirect') && $ticketcount == 1 && $session{tickets}->First ) { # $ticketcount is not always precise unless $UseSQLForACLChecks is set to true, # check $session{tickets}->First here is to make sure the ticket is there. RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Ticket/Display.html?id=". $session{tickets}->First->id ); } my $BaseURL = RT->Config->Get('WebPath')."/Search/Results.html?"; $link_rel{first} = $BaseURL . $genpage->(1) if $Page > 1; $link_rel{prev} = $BaseURL . $genpage->($Page - 1) if $Page > 1; $link_rel{next} = $BaseURL . $genpage->($Page + 1) if ($Page * $Rows) < $ticketcount; $link_rel{last} = $BaseURL . $genpage->(POSIX::ceil($ticketcount/$Rows)) if $Rows and ($Page * $Rows) < $ticketcount; <%CLEANUP> $session{'tickets'}->PrepForSerialization(); <%ARGS> $Query => undef $Format => undef $HideResults => 0 $Rows => undef $Page => 1 $OrderBy => undef $Order => undef $SavedSearchId => undef $SavedChartSearchId => undef rt-4.4.4/share/html/Search/Bulk.html000644 000765 000024 00000033362 13437510132 020062 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % foreach my $var (qw(Query Format OrderBy Order Rows Page SavedSearchId SavedChartSearchId Token)) { %} <& /Elements/CollectionList, Query => $Query, DisplayFormat => $DisplayFormat, Format => $Format, Verbatim => 1, AllowSorting => 1, OrderBy => $OrderBy, Order => $Order, Rows => $Rows, Page => $Page, BaseURL => RT->Config->Get('WebPath')."/Search/Bulk.html?", Class => 'RT::Tickets' &> % $m->callback(CallbackName => 'AfterTicketList', ARGSRef => \%ARGS);
    <& /Elements/Submit, Label => loc('Update'), CheckboxNameRegex => '/^UpdateTicket(All)?$/', CheckAll => 1, ClearAll => 1 &>
    <&|/Widgets/TitleBox, title => $title &>
    % my $single_roles = RT::CustomRoles->new($session{CurrentUser}); % $single_roles->LimitToSingleValue; % $single_roles->LimitToObjectId($_) for keys %$seen_queues; % while (my $role = $single_roles->Next) { % } % my $multi_roles = RT::CustomRoles->new($session{CurrentUser}); % $multi_roles->LimitToMultipleValue; % $multi_roles->LimitToObjectId($_) for keys %$seen_queues; % while (my $role = $multi_roles->Next) { % }
    <&|/l&>Make Owner: <& /Elements/SelectOwner, Name => "Owner", Default => $ARGS{Owner} || '' &>
    <&|/l&>Add Requestor: <& /Elements/EmailInput, Name => "AddRequestor", Size=> 20, Default => $ARGS{AddRequestor} &>
    <&|/l&>Remove Requestor: <& /Elements/EmailInput, Name => "DeleteRequestor", Size=> 20, Default => $ARGS{DeleteRequestor} &>
    <&|/l&>Add Cc: <& /Elements/EmailInput, Name => "AddCc", Size=> 20, Default => $ARGS{AddCc} &>
    <&|/l&>Remove Cc: <& /Elements/EmailInput, Name => "DeleteCc", Size=> 20, Default => $ARGS{DeleteCc} &>
    <&|/l&>Add AdminCc: <& /Elements/EmailInput, Name => "AddAdminCc", Size=> 20, Default => $ARGS{AddAdminCc} &>
    <&|/l&>Remove AdminCc: <& /Elements/EmailInput, Name => "DeleteAdminCc", Size=> 20, Default => $ARGS{DeleteAdminCc} &>
    <&|/l, $role->Name &>Make [_1]: <& /Elements/SingleUserRoleInput, role => $role, ShowPlaceholder => 0, ShowEntryHint => 0, Size => 20, Default => $ARGS{"RT::CustomRole-" . $role->Id} &>
    <&|/l, $role->Name &>Add [_1]: <& /Elements/EmailInput, Name => "AddRT::CustomRole-" . $role->Id, Size=> 20, Default => $ARGS{"AddRT::CustomRole-" . $role->Id} &>
    <&|/l, $role->Name &>Remove [_1]: <& /Elements/EmailInput, Name => "DeleteRT::CustomRole-" . $role->Id, Size=> 20, Default => $ARGS{"DeleteRT::CustomRole-" . $role->Id} &>
    % if ($hasSLA) { % }
    <&|/l&>Make subject:
    <&|/l&>Make priority: <& /Elements/SelectPriority, Name => "Priority", Default => $ARGS{Priority} &>
    <&|/l&>Make queue: <& /Elements/SelectQueue, Name => "Queue", Default => $ARGS{Queue} &>
    <&|/l&>Make Status: <& /Ticket/Elements/SelectStatus, Name => "Status", Default => $ARGS{Status}, Queues => $seen_queues &>
    <&|/l&>Make SLA: <& /Elements/SelectSLA, Name => "SLA", Default => $ARGS{SLA} &>
    <&|/l&>Make date Starts: <& /Elements/SelectDate, Name => "Starts_Date", Default => $ARGS{Starts_Date} || '' &>
    <&|/l&>Make date Started: <& /Elements/SelectDate, Name => "Started_Date", Default => $ARGS{Started_Date} || '' &>
    <&|/l&>Make date Told: <& /Elements/SelectDate, Name => "Told_Date", Default => $ARGS{Told_Date} || '' &>
    <&|/l&>Make date Due: <& /Elements/SelectDate, Name => "Due_Date", Default => $ARGS{Due_Date} || '' &>
    <&| /Widgets/TitleBox, title => loc('Add comments or replies to selected tickets') &> % $m->callback( CallbackName => 'BeforeTransactionCustomFields', CustomFields => $TxnCFs ); % while (my $CF = $TxnCFs->Next()) { % } # end if while <& /Ticket/Elements/AddAttachments, %ARGS &>
    <&|/l&>Update Type:
    <&|/l&>Subject: " /> % $m->callback( %ARGS, CallbackName => 'AfterUpdateSubject' );
    <% $CF->Name %>: <& /Elements/EditCustomField, CustomField => $CF, Object => RT::Transaction->new( $session{'CurrentUser'} ), &><% $CF->EntryHint // '' %>
    <&|/l&>Message: % $m->callback( %ARGS, CallbackName => 'BeforeMessageBox' ); %# Currently, bulk update always starts with Comment not Reply selected, so we check this unconditionally % my $IncludeSignature = RT->Config->Get('MessageBoxIncludeSignatureOnComment'); <& /Elements/MessageBox, Name => "UpdateContent", $ARGS{UpdateContent} ? ( Default => $ARGS{UpdateContent}, IncludeSignature => 0 ) : ( IncludeSignature => $IncludeSignature ), &>
    <%perl> my $cfs = RT::CustomFields->new($session{'CurrentUser'}); $cfs->LimitToGlobal(); $cfs->LimitToQueue($_) for keys %$seen_queues; $cfs->SetContextObject( values %$seen_queues ) if keys %$seen_queues == 1; % if ( $cfs->Count ) { <&|/Widgets/TitleBox, title => loc('Edit Custom Fields') &> <& /Elements/BulkCustomFields, $ARGS{'AddMoreAttach'} ? %ARGS : (), CustomFields => $cfs &> % } <&|/Widgets/TitleBox, title => loc('Edit Links'), color => "#336633"&> <&|/l&>Enter tickets or URIs to link tickets to. Separate multiple entries with spaces.
    <& /Elements/BulkLinks, Collection => $Tickets, $ARGS{'AddMoreAttach'} ? %ARGS : () &> <&| /Widgets/TitleBox, title => loc('Merge'), color => '#336633' &> <& /Ticket/Elements/EditMerge, Tickets => $Tickets, %ARGS &> <& /Elements/Submit, Label => loc('Update') &>
    %# Keyboard shortcuts info
    <%INIT> my (@results); $m->callback(CallbackName => 'Initial', ARGSRef => \%ARGS, results_ref => \@results, QueryRef => \$Query, UpdateTicketRef => \@UpdateTicket); unless ( defined $Rows ) { $Rows = $RowsPerPage; $ARGS{Rows} = $RowsPerPage; } my $title = loc("Update multiple tickets"); # Iterate through the ARGS hash and remove anything with a null value. map ( $ARGS{$_} =~ /^$/ && ( delete $ARGS{$_} ), keys %ARGS ); ProcessAttachments(ARGSRef => \%ARGS); $Page ||= 1; $Format ||= RT->Config->Get('DefaultSearchResultFormat'); my $DisplayFormat = "'__CheckBox.{UpdateTicket}__',". $Format; $DisplayFormat =~ s/\s*,\s*('?__NEWLINE__'?)/,$1,''/gi; $DECODED_ARGS->{'UpdateTicketAll'} = 1 unless @UpdateTicket; my $Tickets = RT::Tickets->new( $session{'CurrentUser'} ); $Tickets->FromSQL($Query); if ( $OrderBy =~ /\|/ ) { # Multiple Sorts my @OrderBy = split /\|/, $OrderBy; my @Order = split /\|/, $Order; $Tickets->OrderByCols( map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0 .. $#OrderBy ) ); } else { $Tickets->OrderBy( FIELD => $OrderBy, ORDER => $Order ); } $Tickets->RowsPerPage($Rows) if ($Rows); $Tickets->GotoPage( $Page - 1 ); # SB uses page 0 as the first page Abort( loc("No search to operate on.") ) unless ($Tickets); # build up a list of all custom fields for tickets that we're displaying, so # we can display sane edit widgets. my $fields = {}; my $seen_queues = {}; while ( my $ticket = $Tickets->Next ) { next if $seen_queues->{ $ticket->Queue }; $seen_queues->{ $ticket->Queue } ||= $ticket->QueueObj; my $custom_fields = $ticket->CustomFields; while ( my $field = $custom_fields->Next ) { $fields->{ $field->id } = $field; } } # determine if any of the queues seen has a SLA active my $queue = RT::Queue->new($session{CurrentUser}); my $hasSLA = 0; for (keys %$seen_queues) { $queue->Load($_); $hasSLA ||= ! $queue->SLADisabled(); } #Iterate through each ticket we've been handed my @linkresults; $Tickets->RedoSearch(); unless ( $ARGS{'AddMoreAttach'} ) { $RT::Handle->BeginTransaction; while ( my $Ticket = $Tickets->Next ) { my $tid = $Ticket->id; next unless grep $tid == $_, @UpdateTicket; $Ticket->LockForUpdate; #Update the links $ARGS{'id'} = $Ticket->id; my @updateresults = ProcessUpdateMessage( TicketObj => $Ticket, ARGSRef => \%ARGS, KeepAttachments => 1, ); #Update the basics. my @basicresults = ProcessTicketBasics( TicketObj => $Ticket, ARGSRef => \%ARGS ); my @dateresults = ProcessTicketDates( TicketObj => $Ticket, ARGSRef => \%ARGS ); #Update the watchers my @watchresults = ProcessTicketWatchers( TicketObj => $Ticket, ARGSRef => \%ARGS ); @linkresults = ProcessTicketLinks( TicketObj => $Ticket, TicketId => 'Ticket', ARGSRef => \%ARGS ); my @cfresults = ProcessRecordBulkCustomFields( RecordObj => $Ticket, ARGSRef => \%ARGS ); my @tempresults = ( grep { defined } @watchresults, @basicresults, @dateresults, @updateresults, @linkresults, @cfresults ); @tempresults = map { loc( "Ticket [_1]: [_2]", $Ticket->Id, $_ ) } @tempresults; @results = ( @results, @tempresults ); } $RT::Handle->Commit; delete $session{'Attachments'}{ $ARGS{'Token'} }; $Tickets->RedoSearch(); } my $TxnCFs = RT::CustomFields->new( $session{CurrentUser} ); $TxnCFs->LimitToLookupType( RT::Transaction->CustomFieldLookupType ); $TxnCFs->LimitToGlobalOrObjectId( keys %$seen_queues ); $TxnCFs->SetContextObject( values %$seen_queues ) if keys %$seen_queues == 1; <%args> $Format => undef $Page => 1 $Rows => undef $RowsPerPage => undef $Order => 'ASC' $OrderBy => 'id' $Query => undef @UpdateTicket => () rt-4.4.4/share/html/Search/Simple.html000644 000765 000024 00000012237 13437510132 020414 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> % $m->callback( %ARGS, CallbackName => 'PreForm' );
    % my @strong = qw( );

    <&|/l_unsafe, @strong &>Search for tickets by entering [_1]id[_2] numbers, subject words [_1]"in quotes"[_2], [_1]queues[_2] by name, Owners by [_1]username[_2], Requestors by [_1]email address[_2], and ticket [_1]statuses[_2]. Searching for [_1]@domainname.com[_2] will return tickets with requestors from that domain.

    <&|/l&>Any word not recognized by RT is searched for in ticket subjects.

    % my $config = RT->Config->Get('FullTextSearch') || {}; % my $fulltext_keyword = 'fulltext:'; % if ( $config->{'Enable'} ) { % if ( $config->{'Indexed'} ) {

    <&|/l, $fulltext_keyword &>You can search for any word in full ticket history by typing [_1]word.

    % } else {

    <&|/l, $fulltext_keyword &>Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history by typing [_1]word.

    % } % }

    <&|/l_unsafe, map { "$_" } qw(initial active inactive any) &>Entering [_1], [_2], [_3], or [_4] limits results to tickets with one of the respective types of statuses. Any individual status name limits results to just the statuses named. % if (RT->Config->Get('OnlySearchActiveTicketsInSimpleSearch', $session{'CurrentUser'})) { % my $status_str = join ', ', map { loc($_) } RT::Queue->ActiveStatusArray; <&|/l, $status_str &>Unless you specify a specific status, only tickets with active statuses ([_1]) are searched. % }

    <&|/l_unsafe, map { "$_" } 'queue:"Example Queue"', 'owner:email@example.com' &>Start the search term with the name of a supported field followed by a colon, as in [_1] and [_2], to explicitly specify the search type.

    <&|/l_unsafe, 'cf.Name:value' &>CFs may be searched using a similar syntax as above with [_1].

    % my $link_start = ''; % my $link_end = '';

    <&|/l_unsafe, $link_start, $link_end &>For the full power of RT's searches, please visit the [_1]search builder interface[_2].

    % $m->callback( %ARGS, CallbackName => 'PostForm' );
    <%INIT> my $title = loc("Search for tickets"); use RT::Search::Simple; if ($q) { my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); $m->callback( %ARGS, query => \$q, CallbackName => 'ModifyQuery' ); if ($q =~ /^#?(\d+)$/) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Ticket/Display.html?id=".$1); } my %args = ( Argument => $q, TicketsObj => $tickets, ); $m->callback( %ARGS, CallbackName => 'SearchArgs', args => \%args); my $search = RT::Search::Simple->new(%args); $m->comp( "Results.html", Query => $search->QueryToSQL() ); $m->comp( "/Elements/Footer" ); $m->abort(); } <%ARGS> $q => undef rt-4.4.4/share/html/Search/Elements/EditFormat000644 000765 000024 00000013653 13437510132 022035 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&|/l&>Add Columns: <&|/l&>Format: <&|/l&>Show Columns:
    <&|/l&>Link:
    <&|/l&>Title:
    <&|/l&>Size:
    <&|/l&>Style:

    <%init> my $selected = $ARGS{AddCol} ? [] : $ARGS{SelectDisplayColumns}; $selected = [ $selected ] unless ref $selected; my %selected; $selected{$_}++ for grep {defined} @{ $selected }; <%ARGS> $CurrentFormat => undef $AvailableColumns => undef $IncludeTicketLinks => 1 rt-4.4.4/share/html/Search/Elements/ChartTable000644 000765 000024 00000010552 13437510132 022003 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> %Table => () $Query => undef <%INIT> my $base_query = $m->comp('/Elements/QueryString', Format => $ARGS{Format}, Rows => $ARGS{Rows}, OrderBy => $ARGS{OrderBy}, Order => $ARGS{Order}, ); my $interp = $m->interp; my $eh = sub { $interp->apply_escapes( @_, 'h' ) }; my $eu = sub { $interp->apply_escapes( @_, 'u' ) }; $m->out(''. "\n"); foreach my $section (qw(thead tbody tfoot)) { next unless $Table{ $section } && @{ $Table{ $section } }; $m->out("<$section>\n"); foreach my $row ( @{ $Table{ $section } } ) { $m->out(' out(' class="'. ($row->{'even'}? 'evenline' : 'oddline') .'"') if defined $row->{'even'}; $m->out(">"); foreach my $cell ( @{ $row->{'cells'} } ) { my $tag = $cell->{'type'} eq 'value'? 'td' : 'th'; $m->out("<$tag"); my @class = ('collection-as-table'); push @class, ($cell->{'type'}) unless $cell->{'type'} eq 'head'; push @class, $cell->{'even'} ? 'evenline' : 'oddline' if defined $cell->{'even'}; $m->out(' class="'. $eh->( join ' ', @class ) .'"'); foreach my $dir ( grep $cell->{$_}, qw(rowspan colspan) ) { my $value = int $cell->{ $dir }; $m->out(qq{ $dir="$value"}); } $m->out(' style="background-color: #'. $m->interp->apply_escapes($cell->{color}) .'"') if $cell->{color}; $m->out('>'); if ( defined $cell->{'value'} ) { if ( my $q = $cell->{'query'} ) { $m->out( '('&') . $base_query . '">' ); $m->out( $eh->( $cell->{'value'} ) ); $m->out(''); } else { $m->out( $eh->( $cell->{'value'} ) ); } } else { $m->out(' '); } $m->out(""); } $m->out("\n"); } $m->out("\n\n"); } $m->out("
    "); rt-4.4.4/share/html/Search/Elements/PickTicketCFs000644 000765 000024 00000005126 13437510132 022421 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> %queues => () <%init> my $CustomFields = RT::CustomFields->new( $session{'CurrentUser'}); foreach my $id (keys %queues) { # Gotta load up the $queue object, since queues get stored by name now. my $queue = RT::Queue->new($session{'CurrentUser'}); $queue->Load($id); next unless $queue->Id; $CustomFields->LimitToQueue($queue->Id); $CustomFields->SetContextObject( $queue ) if keys %queues == 1; } $CustomFields->LimitToGlobal; $CustomFields->OrderBy( FIELD => 'Name', ORDER => 'ASC' ); <& PickCFs, %ARGS, TicketSQLField => 'CF', CustomFields => $CustomFields &> rt-4.4.4/share/html/Search/Elements/SelectChartType000644 000765 000024 00000004464 13437510132 023042 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Name => 'ChartType' $Default => 'bar' rt-4.4.4/share/html/Search/Elements/PickBasics000644 000765 000024 00000021231 13437510132 022001 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % foreach( @lines ) { <& ConditionRow, Condition => $_ &> % } <%INIT> my @lines = ( { Name => 'id', Field => loc('id'), Op => { Type => 'component', Path => '/Elements/SelectEqualityOperator', }, Value => { Type => 'text', Size => 5 } }, { Name => 'Attachment', Field => { Type => 'component', Path => '/Elements/SelectAttachmentField', }, Op => { Type => 'component', Path => '/Elements/SelectBoolean', Arguments => { True => loc("matches"), False => loc("doesn't match"), TrueVal => 'LIKE', FalseVal => 'NOT LIKE', }, }, Value => { Type => 'text', Size => 20 }, }, { Name => 'Queue', Field => loc('Queue'), Op => { Type => 'component', Path => '/Elements/SelectMatch', Arguments => { Default => '=' }, }, Value => { Type => 'component', Path => '/Elements/SelectQueue', Arguments => { NamedValues => 1, }, }, }, { Name => 'Status', Field => loc('Status'), Op => { Type => 'component', Path => '/Elements/SelectBoolean', Arguments => { TrueVal=> '=', FalseVal => '!=' }, }, Value => { Type => 'component', Path => '/Ticket/Elements/SelectStatus', Arguments => { SkipDeleted => 1, Queues => \%queues, ShowActiveInactive => 1 }, }, }, { Name => 'SLA', Field => loc('SLA'), Op => { Type => 'component', Path => '/Elements/SelectMatch', Arguments => { Default => '=' }, }, Value => { Type => 'component', Path => '/Elements/SelectSLA', Arguments => { NamedValues => 1 }, }, }, { Name => 'Actor', Field => { Type => 'select', Options => [ Owner => loc('Owner'), Creator => loc('Creator'), LastUpdatedBy => loc('Last updated by'), UpdatedBy => loc('Updated by'), ], }, Op => { Type => 'component', Path => '/Elements/SelectBoolean', Arguments => { TrueVal=> '=', FalseVal => '!=' }, }, Value => { Type => 'component', Path => '/Elements/SelectOwner', Arguments => { ValueAttribute => 'Name', Queues => \%queues }, }, }, { Name => 'Watcher', Field => { Type => 'component', Path => 'SelectPersonType', Arguments => { Default => 'Requestor' }, }, Op => { Type => 'component', Path => '/Elements/SelectMatch', }, Value => { Type => 'text', Size => 20 } }, { Name => 'WatcherGroup', Field => { Type => 'component', Path => 'SelectPersonType', Arguments => { Default => 'Owner', Suffix => 'Group' }, }, Op => { Type => 'select', Options => [ '=' => loc('is') ], }, Value => { Type => 'text', Size => 20, "data-autocomplete" => "Groups" } }, { Name => 'Date', Field => { Type => 'component', Path => '/Elements/SelectDateType', }, Op => { Type => 'component', Path => '/Elements/SelectDateRelation', }, Value => { Type => 'component', Path => '/Elements/SelectDate', Arguments => { ShowTime => 0, Default => '' }, }, }, { Name => 'Time', Field => { Type => 'select', Options => [ TimeWorked => loc('Time Worked'), TimeEstimated => loc('Time Estimated'), TimeLeft => loc('Time Left'), ], }, Op => { Type => 'component', Path => '/Elements/SelectEqualityOperator', }, Value => [ { Type => 'text', Size => 5 }, { Type => 'component', Path => '/Elements/SelectTimeUnits', }, ], }, { Name => 'Priority', Field => { Type => 'select', Options => [ Priority => loc('Priority'), InitialPriority => loc('Initial Priority'), FinalPriority => loc('Final Priority'), ], }, Op => { Type => 'component', Path => '/Elements/SelectEqualityOperator', }, Value => { Type => 'component', Path => '/Elements/SelectPriority', }, }, { Name => 'Links', Field => { Type => 'component', Path => 'SelectLinks' }, Op => { Type => 'component', Path => '/Elements/SelectBoolean', Arguments => { TrueVal=> '=', FalseVal => '!=' }, }, Value => { Type => 'text', Size => 5 } }, ); $m->callback( Conditions => \@lines ); <%ARGS> %queues => () rt-4.4.4/share/html/Search/Elements/EditSearches000644 000765 000024 00000026577 13437510132 022353 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&| /Widgets/TitleBox, title => loc($Title)&> %# Hide all the save functionality if the user shouldn't see it. % if ( $can_modify ) { <&|/l&>Privacy: <& SelectSearchObject, Name => 'SavedSearchOwner', Objects => \@Objects, Object => ( $Object && $Object->id ) ? $Object->Object : '' &>
    <&|/l&>Description: % if ($Id ne 'new') { % if ( $Dirty ) { % } % if ( $AllowCopy ) { % } % } % if ( $Object && $Object->Id && $Object->CurrentUserHasRight('update') ) { % } elsif ( !$Object ) { %} % }

    <&|/l&>Load saved search: <& SelectSearchesForObjects, Name => 'SavedSearchLoad', Objects => \@Objects, SearchType => $Type &>
    <%INIT> return unless $session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch', Object => $RT::System, ); my $can_modify = $session{'CurrentUser'}->HasRight( Right => 'CreateSavedSearch', Object => $RT::System, ); use RT::SavedSearch; my @Objects = RT::SavedSearch->new($session{CurrentUser})->_PrivacyObjects; push @Objects, RT::System->new( $session{'CurrentUser'} ) if $session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser' ); my $is_dirty = sub { my %arg = ( Query => {}, SavedSearch => {}, SearchFields => [qw(Query Format OrderBy Order RowsPerPage)], @_ ); my $obj = $arg{'SavedSearch'}->{'Object'}; return 0 unless $obj && $obj->id; foreach( @{ $arg{'SearchFields'} } ) { return 1 if $obj->SubValue( $_ ) ne $arg{'Query'}->{$_}; } return 0; }; # If we're modifying an old query, check if it's been changed my $Dirty = $is_dirty->( Query => $CurrentSearch, SavedSearch => { Id => $Id, Object => $Object, Description => $Description }, SearchFields => \@SearchFields, ); <%ARGS> $Id => 'new' $Object => undef $Type => 'Ticket' $Description => '' $CurrentSearch => {} @SearchFields => () $AllowCopy => 1 $Title => loc('Saved searches') <%METHOD Init> <%ARGS> $Query => {} $SavedSearch => {} @SearchFields => qw(Query Format OrderBy Order RowsPerPage) <%INIT> $SavedSearch->{'Id'} = ( $ARGS{Type} && $ARGS{Type} eq 'Chart' ? $ARGS{'SavedChartSearchId'} : $ARGS{'SavedSearchId'} ) || 'new'; $SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'} || ''; $SavedSearch->{'Privacy'} = $ARGS{'SavedSearchOwner'} || undef; my @results; if ( $ARGS{'SavedSearchRevert'} ) { $ARGS{'SavedSearchLoad'} = $SavedSearch->{'Id'}; } if ( $ARGS{'SavedSearchLoad'} ) { my ($container, $id ) = _parse_saved_search ($ARGS{'SavedSearchLoad'}); if ( $container ) { my $search = RT::Attribute->new( $session{'CurrentUser'} ); $search->Load( $id ); $SavedSearch->{'Id'} = $ARGS{'SavedSearchLoad'}; $SavedSearch->{'Object'} = $search; $SavedSearch->{'Description'} = $search->Description; $Query->{$_} = $search->SubValue($_) foreach @SearchFields; if ( $ARGS{'SavedSearchRevert'} ) { push @results, loc('Loaded original "[_1]" saved search', $SavedSearch->{'Description'} ); } else { push @results, loc('Loaded saved search "[_1]"', $SavedSearch->{'Description'} ); } } else { push @results, loc( 'Can not load saved search "[_1]"', $ARGS{'SavedSearchLoad'} ); return @results; } } elsif ( $ARGS{'SavedSearchDelete'} ) { # We set $SearchId to 'new' above already, so peek into the %ARGS my ($container, $id) = _parse_saved_search( $SavedSearch->{'Id'} ); if ( $container && $container->id ) { # We have the object the entry is an attribute on; delete the entry... my ($val, $msg) = $container->Attributes->DeleteEntry( Name => 'SavedSearch', id => $id ); unless ( $val ) { push @results, $msg; return @results; } } $SavedSearch->{'Id'} = 'new'; $SavedSearch->{'Object'} = undef; $SavedSearch->{'Description'} = undef; push @results, loc("Deleted saved search"); } elsif ( $ARGS{'SavedSearchCopy'} ) { my ($container, $id ) = _parse_saved_search( $ARGS{'SavedSearchId'} ); $SavedSearch->{'Object'} = RT::Attribute->new( $session{'CurrentUser'} ); $SavedSearch->{'Object'}->Load( $id ); if ( $ARGS{'SavedSearchDescription'} && $ARGS{'SavedSearchDescription'} ne $SavedSearch->{'Object'}->Description ) { $SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'}; } else { $SavedSearch->{'Description'} = loc( "[_1] copy", $SavedSearch->{'Object'}->Description ); } $SavedSearch->{'Id'} = 'new'; $SavedSearch->{'Object'} = undef; } if ( $SavedSearch->{'Id'} && $SavedSearch->{'Id'} ne 'new' && !$SavedSearch->{'Object'} ) { my ($container, $id ) = _parse_saved_search( $ARGS{'SavedSearchId'} ); $SavedSearch->{'Object'} = RT::Attribute->new( $session{'CurrentUser'} ); $SavedSearch->{'Object'}->Load( $id ); $SavedSearch->{'Description'} ||= $SavedSearch->{'Object'}->Description; } return @results; <%METHOD Save> <%ARGS> $Query => {} $SavedSearch => {} @SearchFields => qw(Query Format OrderBy Order RowsPerPage) <%INIT> return unless $ARGS{'SavedSearchSave'} || $ARGS{'SavedSearchCopy'}; my @results; my $obj = $SavedSearch->{'Object'}; my $id = $SavedSearch->{'Id'}; my $desc = $SavedSearch->{'Description'}; my $privacy = $SavedSearch->{'Privacy'}; my %params = map { $_ => $Query->{$_} } @SearchFields; my ($new_obj_type, $new_obj_id) = split(/\-/, ($privacy || '')); if ( $obj && $obj->id ) { # permission check if ($obj->Object->isa('RT::System')) { unless ($session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser')) { push @results, loc("No permission to save system-wide searches"); return @results; } } $obj->SetSubValues( %params ); $obj->SetDescription( $desc ); my $obj_type = ref($obj->Object); # We need to get current obj_id now, because when we change obj_type to # RT::System, $obj->Object->Id returns 1, not the old one :( my $obj_id = $obj->Object->Id; if ( $new_obj_type && $new_obj_id ) { my ($val, $msg); # we need to check right before we change any of ObjectType and ObjectId, # or it will fail the 2nd change if we use SetObjectType and # SetObjectId sequentially if ( $obj->CurrentUserHasRight('update') ) { if ( $new_obj_type ne $obj_type ) { ( $val, $msg ) = $obj->__Set( Field => 'ObjectType', Value => $new_obj_type, ); push @results, loc( 'Unable to set privacy object: [_1]', $msg ) unless ($val); } if ( $new_obj_id != $obj_id ) { ( $val, $msg ) = $obj->__Set( Field => 'ObjectId', Value => $new_obj_id, ); push @results, loc( 'Unable to set privacy id: [_1]', $msg ) unless ($val); } } else { # two loc are just for convenience so we don't need to # write an extra i18n translation item push @results, loc( 'Unable to set privacy object or id: [_1]', loc('Permission Denied') ) } } else { push @results, loc('Unable to determine object type or id'); } push @results, loc('Updated saved search "[_1]"', $desc); } elsif ( $id eq 'new' and defined $desc and length $desc ) { my $saved_search = RT::SavedSearch->new( $session{'CurrentUser'} ); my ($status, $msg) = $saved_search->Save( Privacy => $privacy, Name => $desc, Type => $SavedSearch->{'Type'}, SearchParams => \%params, ); if ( $status ) { $SavedSearch->{'Object'} = RT::Attribute->new( $session{'CurrentUser'} ); $SavedSearch->{'Object'}->Load( $saved_search->Id ); # Build new SearchId $SavedSearch->{'Id'} = ref( $session{'CurrentUser'}->UserObj ) . '-' . $session{'CurrentUser'}->UserObj->Id . '-SavedSearch-' . $SavedSearch->{'Object'}->Id; } else { push @results, loc("Can't find a saved search to work with").': '.loc($msg); } } elsif ( $id eq 'new' ) { push @results, loc("Can't save a search without a Description"); } else { push @results, loc("Can't save this search"); } return @results; rt-4.4.4/share/html/Search/Elements/PickObjectCFs000644 000765 000024 00000005437 13437510132 022411 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Class %queues => () <%init> my $CustomFields = RT::CustomFields->new( $session{'CurrentUser'} ); $CustomFields->ApplySortOrder; $CustomFields->LimitToLookupType( "RT::$Class"->CustomFieldLookupType ); $CustomFields->LimitToObjectId(0); foreach my $name (keys %queues) { my $queue = RT::Queue->new($session{'CurrentUser'}); $queue->Load($name); next unless $queue->Id; $CustomFields->LimitToObjectId($queue->Id); $CustomFields->SetContextObject( $queue ) if keys %queues == 1; } my $has_cf = $CustomFields->First ? 1 : 0; $CustomFields->GotoFirstItem; % if ($has_cf) {
    <% loc("[_1] CFs", loc($Class)) %> % } <& PickCFs, %ARGS, TicketSQLField => "${Class}CF", CustomFields => $CustomFields &> rt-4.4.4/share/html/Search/Elements/SearchesForObject000644 000765 000024 00000004740 13437510132 023327 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object => undef <%init> # Returns an array of search objects associated on $Object, # in the form of [Description, LocalizedDescription, searchObj] my @result; while (my $search = $Object->Attributes->Next) { my $desc; if ($search->Name eq 'SavedSearch') { push @result, [$search->Description, $search->Description, $search]; } elsif ($search->Name =~ m/^Search - (.*)/) { push @result, [$1, loc($1), $search]; } } return @result; rt-4.4.4/share/html/Search/Elements/EditQuery000644 000765 000024 00000017162 13437510132 021711 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& NewListActions, actions => $actions &> <&|/Widgets/TitleBox, title => join(': ', grep defined, loc("Current search"), $Description) &>

    %#

    <%ARGS> $Description => undef $optionlist => '' $actions => [] <%METHOD Process> <%ARGS> $Tree $Selected @New => () <%INIT> my @NewSelection = (); my @results; if ( $ARGS{'Up'} || $ARGS{'Down'} ) { if (@$Selected) { foreach my $value (@$Selected) { my $parent = $value->getParent; my $index = $value->getIndex; my $newindex = $index; $newindex++ if $ARGS{'Down'}; $newindex-- if $ARGS{'Up'}; if ( $newindex < 0 || $newindex >= $parent->getChildCount ) { push( @results, [ loc("error: can't move up"), -1 ] ) if $ARGS{'Up'}; push( @results, [ loc("error: can't move down"), -1 ] ) if $ARGS{'Down'}; next; } $parent->removeChild( $index ); $parent->insertChild( $newindex, $value ); } } else { push( @results, [ loc("error: nothing to move"), -1 ] ); } } elsif ( $ARGS{"Left"} ) { if (@$Selected) { foreach my $value (@$Selected) { my $parent = $value->getParent; if( $value->isRoot || $parent->isRoot ) { push( @results, [ loc("error: can't move left"), -1 ] ); next; } my $grandparent = $parent->getParent; if( $grandparent->isRoot ) { push( @results, [ loc("error: can't move left"), -1 ] ); next; } my $index = $parent->getIndex; $parent->removeChild($value); $grandparent->insertChild( $index, $value ); if ( $parent->isLeaf ) { $grandparent->removeChild($parent); } } } else { push( @results, [ loc("error: nothing to move"), -1 ] ); } } elsif ( $ARGS{"Right"} ) { if (@$Selected) { foreach my $value (@$Selected) { my $parent = $value->getParent; my $index = $value->getIndex; my $newparent; if ( $index > 0 ) { my $sibling = $parent->getChild( $index - 1 ); $newparent = $sibling unless $sibling->isLeaf; } $newparent ||= RT::Interface::Web::QueryBuilder::Tree->new( $ARGS{'AndOr'} || 'AND', $parent ); $parent->removeChild($value); $newparent->addChild($value); } } else { push( @results, [ loc("error: nothing to move"), -1 ] ); } } elsif ( $ARGS{"DeleteClause"} ) { if (@$Selected) { my (@top); my %Selected = map { $_ => 1 } @$Selected; foreach my $node ( @$Selected ) { my $tmp = $node->getParent; while ( !$Selected{ $tmp } && !$tmp->isRoot ) { $tmp = $tmp->getParent; } next if $Selected{ $tmp }; push @top, $node; } my %seen; my @non_siblings_top = grep !$seen{ $_->getParent }++, @top; foreach ( @New ) { my $add = $_->clone; foreach my $selected( @non_siblings_top ) { my $newindex = $selected->getIndex + 1; $selected->insertSibling( $newindex, $add ); } $add->getParent->setNodeValue( $ARGS{'AndOr'} ); push @NewSelection, $add; } @New = (); while( my $node = shift @top ) { my $parent = $node->getParent; $parent->removeChild($node); $node->DESTROY; } @$Selected = (); } else { push( @results, [ loc("error: nothing to delete"), -1 ] ); } } elsif ( $ARGS{"Toggle"} ) { if (@$Selected) { my %seen; my @unique_nodes = grep !$seen{ $_ + 0 }++, map ref $_->getNodeValue? $_->getParent: $_, @$Selected; foreach my $node ( @unique_nodes ) { if ( $node->getNodeValue eq 'AND' ) { $node->setNodeValue('OR'); } else { $node->setNodeValue('AND'); } } } else { push( @results, [ loc("error: nothing to toggle"), -1 ] ); } } if ( @New && @$Selected ) { my %seen; my @non_siblings_selected = grep !$seen{ $_->getParent }++, @$Selected; foreach ( @New ) { my $add = $_->clone; foreach my $selected( @non_siblings_selected ) { my $newindex = $selected->getIndex + 1; $selected->insertSibling( $newindex, $add ); } $add->getParent->setNodeValue( $ARGS{'AndOr'} ); push @NewSelection, $add; } @$Selected = (); } elsif ( @New ) { foreach ( @New ) { my $add = $_->clone; $Tree->addChild( $add ); push @NewSelection, $add; } $Tree->setNodeValue( $ARGS{'AndOr'} ); } $_->DESTROY foreach @New; push @$Selected, @NewSelection; $Tree->PruneChildlessAggregators; return @results; rt-4.4.4/share/html/Search/Elements/SelectGroup000644 000765 000024 00000004763 13437510132 022235 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $groups = RT::Groups->new($session{'CurrentUser'}); $groups->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => $Domain, CASESENSITIVE => 0); <%ARGS> $AllowNull => 1 $Default=> '' $Name => 'Group' $Domain => 'UserDefined'; rt-4.4.4/share/html/Search/Elements/Chart000644 000765 000024 00000006414 13437510132 021035 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Query => "id > 0" @GroupBy => () $ChartStyle => 'bar+table+sql' @ChartFunction => 'COUNT' <%init> use RT::Report::Tickets; my $report = RT::Report::Tickets->new( $session{'CurrentUser'} ); my %columns = $report->SetupGroupings( Query => $Query, GroupBy => \@GroupBy, Function => \@ChartFunction, ); $report->SortEntries; my $query_string = $m->comp('/Elements/QueryString', %ARGS, GroupBy => \@GroupBy );
    % if ( ($ChartStyle || '') =~ /\b(pie|bar)\b/ ) { % if (RT->Config->Get('DisableGD')) { <% loc('Graphical charts are not available.') %>
    % } else { % my $key = Digest::MD5::md5_hex( rand(1024) ); % $session{'charts_cache'}{$key} = { columns => \%columns, report => $report->Serialize }; % $session{'i'}++; % }
    % } % if ( ($ChartStyle || '') =~ /\btable\b/ ) { <& ChartTable, %ARGS, Table => { $report->FormatTable( %columns ) } &> % } % $m->callback( CallbackName => 'AfterChartTable', ARGSRef => \%ARGS ); % if ( ($ChartStyle || '') =~ /\bsql\b/ ) {
    <% loc('Query') %>:<% $Query %>
    % }
    rt-4.4.4/share/html/Search/Elements/Graph000644 000765 000024 00000004100 13437510132 021023 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> return $m->comp('/Ticket/Graphs/Elements/ShowGraph', %ARGS); rt-4.4.4/share/html/Search/Elements/ConditionRow000644 000765 000024 00000007265 13437510132 022417 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <% $handle_block->( $Condition->{'Field'}, $Condition->{'Name'} .'Field' ) |n %> <% $handle_block->( $Condition->{'Op'}, $Condition->{'Name'} .'Op') |n %> <% $handle_block->( $Condition->{'Value'}, 'ValueOf'. $Condition->{'Name'} ) |n %> <%INIT> return unless $Condition && $Condition->{'Name'}; $m->callback( Condition => \$Condition ); return unless $Condition; my $handle_block; $handle_block = sub { my $box = shift; return $box unless ref $box; my $name = shift; if ( UNIVERSAL::isa($box, 'ARRAY') ) { my $res = ''; $res .= $handle_block->( $_, $name ) foreach @$box; return $res; } return undef unless UNIVERSAL::isa($box, 'HASH'); if ( $box->{'Type'} eq 'component' ) { $box->{'Arguments'} ||= {}, return $m->scomp( $box->{'Path'}, %{ $box->{'Arguments'} }, Name => $name ); } if ( $box->{'Type'} eq 'text' ) { $box->{id} ||= $box->{name} ||= $name; $box->{value} ||= delete($box->{Default}) || ''; return "interp->apply_escapes(lc($_),'h') .q{="}.$m->interp->apply_escapes($box->{$_},'h').q{"}} sort keys %$box)." />"; } if ( $box->{'Type'} eq 'select' ) { my $res = ''; $res .= qq{}; return $res; } }; <%ARGS> $Condition => {} rt-4.4.4/share/html/Search/Elements/PickCriteria000644 000765 000024 00000005323 13437510132 022343 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('Add Criteria')&> % $m->callback( %ARGS, CallbackName => "BeforeBasics" ); <& PickBasics, queues => \%queues &> <& PickCustomRoles, queues => \%queues &> <& PickTicketCFs, queues => \%queues &> <& PickObjectCFs, Class => 'Transaction', queues => \%queues &> <& PickObjectCFs, Class => 'Queue', queues => \%queues &> % $m->callback( %ARGS, CallbackName => "AfterCFs" );

    <&|/l&>Aggregator <& SelectAndOr, Name => "AndOr" &>
    <%ARGS> $addquery => 0 $query => undef %queues => () rt-4.4.4/share/html/Search/Elements/ResultsRSSView000644 000765 000024 00000007741 13437510132 022664 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $Tickets = RT::Tickets->new($session{'CurrentUser'}); $Tickets->FromSQL($ARGS{'Query'}); if ($OrderBy =~ /\|/) { # Multiple Sorts my @OrderBy = split /\|/,$OrderBy; my @Order = split /\|/,$Order; $Tickets->OrderByCols( map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0 .. $#OrderBy ) );; } else { $Tickets->OrderBy(FIELD => $OrderBy, ORDER => $Order); } $r->content_type('application/rss+xml; charset=utf-8'); use XML::RSS; my $rss = XML::RSS->new(version => '1.0'); my $url; if ( RT->Config->Get('CanonicalizeURLsInFeeds') ) { $url = RT->Config->Get('WebURL'); } else { $url = RT::Interface::Web::GetWebURLFromRequest(); } my $base_date = RT::Date->new( RT->SystemUser ); $base_date->SetToNow; $base_date->SetToMidnight; $rss->channel( title => RT->Config->Get('rtname').": Search " . $ARGS{'Query'}, link => $url, description => "", dc => { }, generator => "RT v" . $RT::VERSION, syn => { updatePeriod => "hourly", updateFrequency => "1", updateBase => $base_date->W3CDTF, }, ); while ( my $Ticket = $Tickets->Next()) { my $creator_str = $Ticket->CreatorObj->Format; $creator_str =~ s/[\r\n]//g; # Get the plain-text content; it is interpreted as HTML by RSS # readers, so it must be escaped (and is escaped _again_ when # inserted into the XML). my $content = $Ticket->Transactions->First->Content; $content = $m->interp->apply_escapes( $content, 'h'); $rss->add_item( title => $Ticket->Subject || loc('No Subject'), link => $url . "Ticket/Display.html?id=".$Ticket->id, description => $content, dc => { creator => $creator_str, date => $Ticket->CreatedObj->W3CDTF, }, guid => $Ticket->Queue . '_' . $Ticket->id, ); } $m->out($rss->as_string); $m->abort(); <%ARGS> $OrderBy => 'Created' $Order => 'ASC' rt-4.4.4/share/html/Search/Elements/SelectSearchesForObjects000644 000765 000024 00000005541 13437510132 024652 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> @Objects => undef $Name => undef $SearchType => 'Ticket', rt-4.4.4/share/html/Search/Elements/SearchPrivacy000644 000765 000024 00000004511 13437510132 022533 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object => undef <%init> my $label; if (ref($Object) eq 'RT::User') { $label = $Object->id == $session{'CurrentUser'}->Id ? loc("My saved searches") : loc("[_1]'s saved searches", $Object->Format); } else { $label = loc("[_1]'s saved searches", $Object->Name); } <% $label %>\ rt-4.4.4/share/html/Search/Elements/PickCFs000644 000765 000024 00000006665 13437510132 021266 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % foreach( @lines ) { <& ConditionRow, Condition => $_ &> % } <%INIT> $m->callback( CallbackName => 'MassageCustomFields', CustomFields => $CustomFields, ); my @lines; while ( my $CustomField = $CustomFields->Next ) { my %line; $line{'Name'} = "$TicketSQLField.{" . $CustomField->Name . "}"; $line{'Field'} = $CustomField->Name; # Op if ($CustomField->Type =~ /^Date(Time)?$/ ) { $line{'Op'} = { Type => 'component', Path => '/Elements/SelectDateRelation', Arguments => {}, }; } elsif ($CustomField->Type =~ /^IPAddress(Range)?$/ ) { $line{'Op'} = { Type => 'component', Path => '/Elements/SelectIPRelation', Arguments => {}, }; } else { $line{'Op'} = { Type => 'component', Path => '/Elements/SelectCustomFieldOperator', Arguments => { True => loc("is"), False => loc("isn't"), TrueVal=> '=', FalseVal => '!=', }, }; } # Value $line{'Value'} = { Type => 'component', Path => '/Elements/SelectCustomFieldValue', Arguments => { CustomField => $CustomField }, }; push @lines, \%line; } $m->callback( Conditions => \@lines, Queues => \%queues ); <%ARGS> %queues => () $CustomFields $TicketSQLField => 'CF' rt-4.4.4/share/html/Search/Elements/SelectLinks000644 000765 000024 00000004727 13437510132 022221 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => 'LinksField' <%INIT> my @fields = ( [ HasMember => loc("Child") ], [ MemberOf => loc("Parent") ], [ DependsOn => loc("Depends on") ], [ DependedOnBy => loc("Depended on by") ], [ RefersTo => loc("Refers to") ], [ ReferredToBy => loc("Referred to by") ], [ LinkedTo => loc("Links to") ], ); rt-4.4.4/share/html/Search/Elements/SelectChartFunction000644 000765 000024 00000005533 13437510132 023704 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => 'ChartFunction' $Default => 'COUNT' $ShowEmpty => 0 <%INIT> my @functions = RT::Report::Tickets->Statistics; $Default = '' unless defined $Default; rt-4.4.4/share/html/Search/Elements/BuildFormatString000644 000765 000024 00000020763 13437510132 023376 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Format => RT->Config->Get('DefaultSearchResultFormat') %queues => () $Face => undef $Size => undef $Link => undef $Title => undef $AddCol => undef $RemoveCol => undef $ColUp => undef $ColDown => undef $SelectDisplayColumns => undef $CurrentDisplayColumns => undef <%init> # This can't be in a block, because otherwise we return the # same \@fields every request, and keep tacking more CustomFields onto # it -- and it grows per request. # All the things we can display in the format string by default my @fields = qw( id QueueName Subject Status ExtendedStatus UpdateStatus Type OwnerName Requestors Cc AdminCc CreatedBy LastUpdatedBy Priority InitialPriority FinalPriority TimeWorked TimeLeft TimeEstimated Starts StartsRelative Started StartedRelative Created CreatedRelative LastUpdated LastUpdatedRelative Told ToldRelative Due DueRelative Resolved ResolvedRelative SLA RefersTo ReferredToBy DependsOn DependedOnBy MemberOf Members Parents Children Bookmark Timer NEWLINE NBSP ); # loc_qw # Total time worked is an optional ColumnMap enabled for rolling up child # TimeWorked push @fields, 'TotalTimeWorked' if (RT->Config->Get('DisplayTotalTimeWorked')); my $CustomFields = RT::CustomFields->new( $session{'CurrentUser'}); foreach my $id (keys %queues) { # Gotta load up the $queue object, since queues get stored by name now. my $queue = RT::Queue->new($session{'CurrentUser'}); $queue->Load($id); next unless $queue->Id; $CustomFields->LimitToQueue($queue->Id); $CustomFields->SetContextObject( $queue ) if keys %queues == 1; } $CustomFields->LimitToGlobal; while ( my $CustomField = $CustomFields->Next ) { push @fields, "CustomField.{" . $CustomField->Name . "}"; } my $CustomRoles = RT::CustomRoles->new( $session{'CurrentUser'}); foreach my $id (keys %queues) { # Gotta load up the $queue object, since queues get stored by name now. my $queue = RT::Queue->new($session{'CurrentUser'}); $queue->Load($id); next unless $queue->Id; $CustomRoles->LimitToObjectId($queue->Id); } while ( my $Role = $CustomRoles->Next ) { push @fields, "CustomRole.{" . $Role->Name . "}"; } $m->callback( Fields => \@fields, ARGSRef => \%ARGS ); my ( @seen); $Format ||= RT->Config->Get('DefaultSearchResultFormat'); my @format = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $Format); foreach my $field (@format) { # "title" is for columns like NEWLINE, which doesn't have "attribute" $field->{Column} = $field->{attribute} || $field->{title} || ''; push @seen, $field; } if ( $RemoveCol ) { # we do this regex match to avoid a non-numeric warning my ($index) = ($CurrentDisplayColumns // '') =~ /^(\d+)/; if ( defined($index) ) { delete $seen[$index]; my @temp = @seen; @seen = (); foreach my $element (@temp) { next unless $element; push @seen, $element; } } } elsif ( $AddCol ) { if ( defined $SelectDisplayColumns ) { my $selected = $SelectDisplayColumns; my @columns; if (ref($selected) eq 'ARRAY') { @columns = @$selected; } else { push @columns, $selected; } foreach my $col (@columns) { my %column = (); $column{Column} = $col; if ( $Face eq "Bold" ) { $column{Prefix} .= ""; $column{Suffix} .= ""; } if ( $Face eq "Italic" ) { $column{Prefix} .= ""; $column{Suffix} .= ""; } if ($Size) { if ( $Size eq 'Large' ) { $column{Prefix} .= ''; $column{Suffix} .= ''; } else { $column{Prefix} .= "<" . $m->interp->apply_escapes( $Size, 'h' ) . ">"; $column{Suffix} .= "interp->apply_escapes( $Size, 'h' ) . ">"; } } if ( $Link eq "Display" ) { $column{Prefix} .= q{}; $column{Suffix} .= ""; } elsif ( $Link eq "Take" ) { $column{Prefix} .= q{}; $column{Suffix} .= ""; } elsif ( $Link eq "Respond" ) { $column{Prefix} .= q{}; $column{Suffix} .= ""; } elsif ( $Link eq "Comment" ) { $column{Prefix} .= q{}; $column{Suffix} .= ""; } elsif ( $Link eq "Resolve" ) { $column{Prefix} .= q{}; $column{Suffix} .= ""; } if ($Title) { $column{Suffix} .= "/TITLE:" . $m->interp->apply_escapes( $Title, 'h' ); } push @seen, \%column; } } } elsif ( $ColUp ) { my ($index) = ($CurrentDisplayColumns // '') =~ /^(\d+)/; if ( defined $index && ( $index - 1 ) >= 0 ) { my $column = $seen[$index]; $seen[$index] = $seen[ $index - 1 ]; $seen[ $index - 1 ] = $column; $CurrentDisplayColumns = $index - 1; } } elsif ( $ColDown ) { my ($index) = ($CurrentDisplayColumns // '') =~ /^(\d+)/; if ( defined $index && ( $index + 1 ) < scalar @seen ) { my $column = $seen[$index]; $seen[$index] = $seen[ $index + 1 ]; $seen[ $index + 1 ] = $column; $CurrentDisplayColumns = $index + 1; } } my @format_string; foreach my $field (@seen) { next unless $field; my $row = ""; if ( $field->{'original_string'} ) { $row = $field->{'original_string'}; } else { $row .= $field->{'Prefix'} if defined $field->{'Prefix'}; $row .= "__$field->{'Column'}__" unless ( $field->{'Column'} eq "" ); $row .= $field->{'Suffix'} if defined $field->{'Suffix'}; $row =~ s!([\\'])!\\$1!g; $row = "'$row'"; } push( @format_string, $row ); } $Format = join(",\n", @format_string); return($Format, \@fields, \@seen); rt-4.4.4/share/html/Search/Elements/EditSort000644 000765 000024 00000010501 13437510132 021521 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % for my $o (0..3) { % $Order[$o] ||= ''; $OrderBy[$o] ||= ''; % }
    % if ($o == 0) { <&|/l&>Order by: % }
    <&|/l&>Rows per page: <& /Elements/SelectResultsPerPage, Name => "RowsPerPage", Default => $RowsPerPage &>
    <%INIT> my $tickets = RT::Tickets->new($session{'CurrentUser'}); my %FieldDescriptions = %{$tickets->FIELDS}; my %fields; for my $field (keys %FieldDescriptions) { next if $field eq 'EffectiveId'; next unless $FieldDescriptions{$field}->[0] =~ /^(?:ENUM|QUEUE|INT|DATE|STRING|ID)$/; $fields{$field} = $field; } $fields{'Owner'} = 'Owner'; $fields{ $_ . '.EmailAddress' } = $_ . '.EmailAddress' for qw(Requestor Cc AdminCc); # Add all available CustomFields to the list of sortable columns. my @cfs = grep /^CustomField/, @{$ARGS{AvailableColumns}}; $fields{$_} = $_ for @cfs; # Add all available CustomRoles to the list of sortable columns. my @roles = grep /^CustomRole/, @{$ARGS{AvailableColumns}}; for my $role (@roles) { my ($label) = $role =~ /^CustomRole.\{(.*)\}$/; my $value = $role; $fields{$label . '.EmailAddress' } = $value . '.EmailAddress'; } # Add PAW sort $fields{'Custom.Ownership'} = 'Custom.Ownership'; $m->callback(CallbackName => 'MassageSortFields', Fields => \%fields ); my @Order = split /\|/, $Order; my @OrderBy = split /\|/, $OrderBy; if ($Order =~ /\|/) { @Order = split /\|/, $Order; } else { @Order = ( $Order ); } <%ARGS> $Order => '' $OrderBy => '' $RowsPerPage => undef $Format => undef $GroupBy => 'id' rt-4.4.4/share/html/Search/Elements/DisplayOptions000644 000765 000024 00000004270 13437510132 022753 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc("Sorting"), id => 'sorting' &> <& EditSort, %ARGS &> <&| /Widgets/TitleBox, title => loc("Display Columns"), id => 'columns' &> <& EditFormat, %ARGS &> rt-4.4.4/share/html/Search/Elements/NewListActions000644 000765 000024 00000004521 13437510132 022677 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%loc('Results')%>
    % foreach my $action (@actions) { % my @item = @$action; % if ($item[1] < 0) { % }  <%$item[0]%>
    % if ($item[1] < 0) {
    % } % }
    <%init> @actions = map ref $_? $_: [$_, 0], grep defined && length, @actions; return unless @actions; <%ARGS> @actions => undef rt-4.4.4/share/html/Search/Elements/PickCustomRoles000644 000765 000024 00000006070 13437510132 023060 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> %queues => () <%INIT> my $CustomRoles = RT::CustomRoles->new( $session{'CurrentUser'}); foreach my $id (keys %queues) { # Gotta load up the $queue object, since queues get stored by name now. my $queue = RT::Queue->new($session{'CurrentUser'}); $queue->Load($id); next unless $queue->Id; $CustomRoles->LimitToObjectId($queue->Id); } $m->callback( CallbackName => 'MassageCustomRoles', CustomRoles => $CustomRoles, ); my @lines; while ( my $Role = $CustomRoles->Next ) { my $name = "CustomRole.{" . $Role->Name . "}"; my %line = ( Name => $name, Field => { Type => 'component', Path => 'SelectPersonType', Arguments => { Role => $Role, Default => $name }, }, Op => { Type => 'component', Path => '/Elements/SelectMatch', }, Value => { Type => 'text', Size => 20 }, ); push @lines, \%line; } $m->callback( Conditions => \@lines, Queues => \%queues ); % foreach( @lines ) { <& ConditionRow, Condition => $_ &> % } rt-4.4.4/share/html/Search/Elements/SelectGroupBy000644 000765 000024 00000005603 13437510132 022522 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Name => 'GroupBy' $Default => 'Status' $Query => '' $ShowEmpty => 0 <%init> use RT::Report::Tickets; my $report = RT::Report::Tickets->new( $session{'CurrentUser'} ); my @options = $report->Groupings( Query => $Query ); rt-4.4.4/share/html/Search/Elements/SelectSearchObject000644 000765 000024 00000004722 13437510132 023470 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> @Objects => undef $Name => undef $Object => undef <%init> my $default_privacy = ''; if ( $Object && $Object->Id ) { $default_privacy = ref($Object).'-'.$Object->Id; } rt-4.4.4/share/html/Search/Elements/Article000644 000765 000024 00000005071 13437510132 021355 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/CollectionList, %ARGS, Collection => $articles, Class => 'RT::Articles', Format => q{ '__id__/TITLE:#', '__Name__/TITLE:Name', '__ClassName__', '__CreatedRelative__', '__LastUpdatedRelative__', '__Summary__', '__Topics__', } &> <%INIT> my $QueryString = "?".$m->comp('/Elements/QueryString', %{$ARGS{args}}); my $articles = RT::Articles->new( $session{CurrentUser} ); $articles->Search( %{$ARGS{args}} ); rt-4.4.4/share/html/Search/Elements/SelectPersonType000644 000765 000024 00000006211 13437510132 023237 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my @types; if ($Role) { @types = ( [ "CustomRole.{" . $Role->Name . "}", $Role->Name ], ); } elsif ($Scope =~ /queue/) { @types = qw(Cc AdminCc); } elsif ($Suffix eq 'Group') { @types = qw(Owner Requestor Cc AdminCc Watcher); } else { @types = qw(Requestor Cc AdminCc Watcher Owner QueueCc QueueAdminCc QueueWatcher); } my @subtypes = @{ $RT::Tickets::SEARCHABLE_SUBFIELDS{'User'} }; <%ARGS> $AllowNull => 1 $Suffix => '' $Default=>undef $Scope => 'ticket' $Name => 'WatcherType' $Role => undef rt-4.4.4/share/html/Search/Elements/SelectAndOr000644 000765 000024 00000004346 13437510132 022141 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => "Operator" rt-4.4.4/share/html/User/RelatedData.tsv000644 000765 000024 00000006674 13437510132 020726 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $PreserveNewLines => 0 $Type => 'User' $Format => undef $id <%INIT> # Abort unless supported type for export found Abort('Incorrect value passed for Type') unless $Type && ( $Type eq 'User' || $Type eq 'Transaction'); if ( $session{'CurrentUser'}->id ne $id ) { Abort('User does not have the right to view other users') unless $session{'CurrentUser'}->UserObj->HasRight( Object => $RT::System, Right =>'AdminUsers'); } my $Collection; my $filename; if ( $Type eq 'User' ) { $Format = RT->Config->Get('UserDataResultFormat') unless $Format; $filename = 'UserData.tsv'; $Collection = RT::Users->new( $session{'CurrentUser'} ); $Collection->Limit( FIELD => 'id', VALUE => $id ); } elsif ( $Type eq 'Transaction' ) { $Format = RT->Config->Get('UserTransactionDataResultFormat') unless $Format; $filename = 'UserTransactionData.tsv'; $Collection = RT::Transactions->new( $session{'CurrentUser'} ); $Collection->Limit( FIELD => 'ObjectType', VALUE => 'RT::Ticket' ); $Collection->Limit( FIELD => 'Creator', VALUE => $id ); $Collection->Limit( FIELD => 'Type', VALUE => 'Create' ); $Collection->Limit( FIELD => 'Type', VALUE => 'Correspond' ); $Collection->Limit( FIELD => 'Type', VALUE => 'Comment' ); } $m->comp( "/Elements/TSVExport", Collection => $Collection, Format => $Format, PreserveNewLines => $PreserveNewLines, Filename => $filename ); rt-4.4.4/share/html/User/Elements/000755 000765 000024 00000000000 13437510132 017555 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/User/History.html000644 000765 000024 00000004707 13437510132 020340 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('History of the user [_1]', $User->Format) &> <& /Elements/Tabs &> <& /Elements/ShowHistory, Object => $User, ShowDisplayModes => 0, DisplayPath => 'History.html', &> <%INIT> my $User = RT::User->new( $session{'CurrentUser'} ); my ($status, $msg) = $User->Load($id); unless ($status) { RT->Logger->error("Unable to load user $id: $msg"); Abort("Unable to load User $id"); } <%ARGS> $id => undef rt-4.4.4/share/html/User/Search.html000644 000765 000024 00000006652 13437510132 020105 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('User Search'), Focus => '#autocomplete-UserString' &> <& /Elements/Tabs &> <& /Elements/GotoUser, Default => $UserString||'' &>

    <&|/l&>This will search for users by looking in the following fields: <% $search_fields %>

    % if ($UserString) { % unless ( $users->Count ) {

    <&|/l&>No users matching search criteria found.

    % } else {

    <&|/l&>Select a user:

    <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', Rows => 100, %ARGS, Format => $Format, Collection => $users, AllowSorting => 1, PassArguments => [qw(Format Rows Page Order OrderBy UserString)], &> % } % } <%INIT> my $users; my $Format; if ( $UserString ) { my $exclude = [RT->Nobody->Id, RT->System->Id]; $users = RT::Users->new($session{'CurrentUser'}); $users->SimpleSearch( Return => 'Name', Term => $UserString, Max => 100, Exclude => $exclude ); my $first = $users->First; RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."User/Summary.html?id=".$first->Id) if $users->Count == 1; $users->GotoFirstItem; $Format = RT->Config->Get('UserSearchResultFormat'); } my $search_fields = join ", ", sort map {s/^CF\.(?:\{(.*)}|(.*))/$1 || $2/e; loc($_)} keys %{RT->Config->Get('UserSearchFields')}; <%ARGS> $UserString => undef rt-4.4.4/share/html/User/Summary.html000644 000765 000024 00000007040 13437510132 020325 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('User: [_1]', $User->Format) &> <& /Elements/Tabs &> <& /Elements/GotoUser &> <& /Elements/ListActions, actions => \@results &> <%perl> $m->callback( CallbackName => 'BeforePortlets', User => $User ); for my $portlet (@$portlets) { $show_portlet->($portlet); } $m->callback( CallbackName => 'AfterPortlets', User => $User ); <%INIT> my $User = RT::User->new( $session{'CurrentUser'} ); my ($status, $msg) = $User->Load($id); unless ($status) { RT->Logger->error("Unable to load user $id: $msg"); Abort("Unable to load User $id"); } my @results; if ( $User->Disabled ){ if ( $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'AdminUsers' ) ){ push @results, loc('User [_1] is currently disabled. Edit the user and select "Let this user access RT" to enable.', $User->Name); } else{ push @results, loc('User [_1] is currently disabled.', $User->Name); } } my $portlets = RT->Config->Get('UserSummaryPortlets'); my $show_portlet = sub { my $portlet = shift; my $full_path = "/User/Elements/Portlets/$portlet"; unless ( RT::Interface::Web->ComponentPathIsSafe($full_path) ) { RT->Logger->error("unsafe portlet $portlet specified in UserSummaryPortlets"); return; } unless ( $m->comp_exists($full_path) ) { RT->Logger->error("Unable to find $portlet in /User/Elements/Portlets - specified in UserSummaryPortlets"); return; } $m->comp( $full_path, User => $User ); }; <%ARGS> $id => undef rt-4.4.4/share/html/User/Elements/Portlets/000755 000765 000024 00000000000 13437510132 021371 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/User/Elements/AssetList000644 000765 000024 00000005745 13437510132 021426 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $assets = RT::Assets->new($session{CurrentUser}); $m->callback( CallbackName => 'ModifyAssetSearch', %ARGS, Assets => $assets, Roles => \@Roles ); for my $role (@Roles) { $assets->RoleLimit( TYPE => $role, VALUE => $User->PrincipalId, SUBCLAUSE => "Role$role", ); } my $Format = q[ '__id__/TITLE:#', '__Name__/TITLE:Name', Description, ]; $m->callback( CallbackName => 'ModifyFormat', %ARGS, Format => \$Format ); <&| /Widgets/TitleBox, title => $Title, class => "user asset-list" &> <& /Elements/CollectionList, Collection => $assets, OrderBy => 'id', Order => 'ASC', Format => $Format, AllowSorting => 0, HasResults => $HasResults, &> <%args> $User $Title @Roles $HasResults => undef rt-4.4.4/share/html/User/Elements/RelatedData000644 000765 000024 00000011327 13437510132 021656 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, class => 'user-related-info', title => loc("Manage user data"), &>
    <&|/l&>Download User Information
    <% $UserDataButton %> <&|/l&>Core user data
    <% $UserTicketsButton %> <&|/l&>Tickets with this user as a requestor
    <% $UserTxnButton %> <&|/l&>Ticket transactions this user created
    % if ( $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'AdminUsers' ) ) {
    <&|/l&>Remove User Information
    <&|/l&>Anonymize User <&|/l&>Clear core user data, set anonymous username
    % if ( $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'SuperUser' ) ) {
    <&|/l&>Replace User <&|/l&>Replace this user's activity records with "Nobody" user
    <&|/l&>Delete User <&|/l&>Delete this user, tickets associated with this user must be shredded first
    % }
    % }
    <%INIT> my $Format = RT->Config->Get('UserTicketDataResultFormat') || RT->Config->Get('DefaultSearchResultFormat'); <%ARGS> $UserObj $UserDataButton => loc( 'User Data' ) $UserTicketsButton => loc( 'User Tickets' ) $UserTxnButton => loc( 'User Transactions' ) rt-4.4.4/share/html/User/Elements/TicketList000644 000765 000024 00000007755 13437510132 021575 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $TitleBox ) { <& /Widgets/TitleBoxStart, title => $Title, title_raw => $title_raw, title_href => $url, class => $Class &> % } else { <% $Title %>: % } <& /Elements/CollectionList, %QueryProperties, Class => 'RT::Tickets', Page => 1, AllowSorting => 0, ShowNavigation => 0, &> % if ( $TitleBox ) { <& /Widgets/TitleBoxEnd &> % } <%INIT> my $sql = ''; $sql = join(' OR ', map { "$_.id = ".$User->Id } @WatcherTypes ); $sql = "( $sql )"; $m->callback( CallbackName => 'ModifyWatcherSQL', %ARGS, sql => \$sql, ); if (@$conditions) { $sql .= " AND (".join( " OR ", map $_->{cond}, @$conditions).")"; } my %QueryProperties = ( Query => $sql, OrderBy => 'Priority|id', Order => 'DESC|DESC', Rows => $Rows || 10, ShowHeader => $ShowHeader, Format => $Format, ); $m->callback( CallbackName => 'ModifyQueryProperties', %ARGS, QueryProperties => \%QueryProperties, ); my $url = RT->Config->Get('WebPath') . '/Search/Results.html?'; $url .= $m->comp('/Elements/QueryString', Query => $QueryProperties{'Query'}, OrderBy => $QueryProperties{'OrderBy'}, Order => $QueryProperties{'Order'}, ); my $title_raw; if ($ShowCount) { my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); $tickets->FromSQL($QueryProperties{Query}); my $count = $tickets->CountAll(); $title_raw = '' . loc('(Found [quant,_1,ticket,tickets])', $count) . ''; # don't repeat the search in CollectionList $QueryProperties{Collection} = $tickets; $QueryProperties{TotalFound} = $count; } <%ARGS> $Title => '' $Class => '' @WatcherTypes => (qw(Watcher)) $User => undef $conditions $Rows => 10 $Description => '' $TitleBox => 0 $Format => '' $ShowHeader => 0 $ShowCount => RT->Config->Get('ShowSearchResultCount') rt-4.4.4/share/html/User/Elements/UserInfo000644 000765 000024 00000004672 13437510132 021243 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ShowRecord, Object => $User, Format => $format, TrustFormat => 1, # Only modifiable by the RT server admin, so no need to scrub. Class => "$ClassPrefix-extra", &> <%INIT> return unless blessed($User) and $User->id; return unless $FormatConfig; my $format = RT->Config->Get($FormatConfig); return unless $format; <%ARGS> $User => undef $FormatConfig => undef $ClassPrefix => undef rt-4.4.4/share/html/User/Elements/Portlets/CreateTicket000644 000765 000024 00000004630 13437510132 023666 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('Quick ticket creation'), class => "user create-ticket" &>
    <&|/l&>Create a ticket with this user as the Requestor in Queue <& /Elements/SelectNewTicketQueue &>
    <%ARGS> $User rt-4.4.4/share/html/User/Elements/Portlets/InactiveTickets000644 000765 000024 00000004727 13437510132 024417 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /User/Elements/TicketList , User => $User, conditions => $conditions, Rows => $Rows, WatcherTypes => [qw(Watcher)], Class => "user inactive-tickets", Title => loc('Inactive Tickets'), TitleBox => 1, ShowHeader => 1, Format => RT->Config->Get('UserSummaryTicketListFormat'), &> <%INIT> unless ( @$conditions ) { push @$conditions, { cond => "Status = '__Inactive__'" }; } <%ARGS> $User => undef $conditions => [] $Rows => 10 rt-4.4.4/share/html/User/Elements/Portlets/CreateAsset000644 000765 000024 00000005236 13437510132 023525 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('Quick asset creation'), class => "user create-asset" &>
    /Asset/Create.html"> % for my $key (keys %ARGS) { % next if grep { lc $key eq $_ } qw(user catalog); % } <&|/l_unsafe, $m->scomp("/Asset/Elements/SelectCatalog", Default => $ARGS{Catalog}), &>Create a new asset in the catalog [_1]
    <%INIT> my %default_values = (); $m->callback( CallbackName => 'ModifyDefaultValues', ARGSRef => \%ARGS ); <%ARGS> $User rt-4.4.4/share/html/User/Elements/Portlets/ExtraInfo000644 000765 000024 00000004437 13437510132 023223 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('User Information'), class => "user extra-info" &> % $m->callback( User => $User, CallbackName => 'BeforeExtraInfo' ); <& /User/Elements/UserInfo, User => $User, FormatConfig => 'UserSummaryExtraInfo', ClassPrefix => 'user-summary' &> <%ARGS> $User rt-4.4.4/share/html/User/Elements/Portlets/ActiveTickets000644 000765 000024 00000004721 13437510132 024062 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /User/Elements/TicketList , User => $User, conditions => $conditions, Rows => $Rows, WatcherTypes => [qw(Watcher)], Class => "user active-tickets", Title => loc('Active Tickets'), TitleBox => 1, ShowHeader => 1, Format => RT->Config->Get('UserSummaryTicketListFormat'), &> <%INIT> unless ( @$conditions ) { push @$conditions, { cond => "Status = '__Active__'" }; } <%ARGS> $User => undef $conditions => [] $Rows => 10 rt-4.4.4/share/html/User/Elements/Portlets/UserAssets000644 000765 000024 00000004266 13437510132 023425 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# Roles => [''] triggers the magical RoleLimit behavior that matches any role <& /User/Elements/AssetList, User => $User, Roles => [''], Title => loc('Assigned Assets') &> <%ARGS> $User rt-4.4.4/share/html/Admin/Tools/000755 000765 000024 00000000000 13437510132 017213 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/index.html000644 000765 000024 00000004313 13437510132 020111 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('RT Administration') &> <& /Elements/Tabs &> <& /Elements/ListMenu, menu => Menu()->child('admin') &> % if (RT->Config->Get('ShowRTPortal')) { <& /Admin/Elements/Portal &> % } rt-4.4.4/share/html/Admin/CustomRoles/000755 000765 000024 00000000000 13437510132 020372 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/autohandler000644 000765 000024 00000004245 13437510132 020351 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> return $m->call_next(%ARGS) if $session{'CurrentUser'}->UserObj->HasRight( Right => 'ShowConfigTab', Object => $RT::System, ); $m->clear_and_abort(403); rt-4.4.4/share/html/Admin/Articles/000755 000765 000024 00000000000 13437510132 017661 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Groups/000755 000765 000024 00000000000 13437510132 017372 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Scrips/000755 000765 000024 00000000000 13437510132 017356 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Elements/000755 000765 000024 00000000000 13437510132 017667 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Users/000755 000765 000024 00000000000 13437510132 017214 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Conditions/000755 000765 000024 00000000000 13437510132 020224 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Actions/000755 000765 000024 00000000000 13437510132 017513 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/CustomFields/000755 000765 000024 00000000000 13437510132 020514 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Queues/000755 000765 000024 00000000000 13437510132 017362 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Assets/000755 000765 000024 00000000000 13437510132 017355 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Global/000755 000765 000024 00000000000 13437510132 017313 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Global/Topics.html000644 000765 000024 00000004451 13437510132 021446 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Articles/Elements/Topics, RootObj => $RT::System, title => $title, %ARGS &> <%INIT> my $title = $Modify ? loc("Modify global topics") : loc("Edit global topic hierarchy"); <%ARGS> $id => undef $Modify => "" rt-4.4.4/share/html/Admin/Global/Actions.html000644 000765 000024 00000004331 13437510132 021602 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditActions, title => $title, id => $id, %ARGS &> <%init> my $title = loc("Actions"); my (@actions); <%ARGS> $id => 0 rt-4.4.4/share/html/Admin/Global/DashboardsInMenu.html000644 000765 000024 00000007622 13437510132 023376 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Dashboards in menu") &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &>
    % for my $pane (@panes) { <&|/Widgets/TitleBox, title => loc('Dashboards in menu'), bodyclass => "" &> <& /Widgets/SelectionBox:show, self => $pane &>
    % } <%init> my @actions; my $sys = RT::System->new( $session{'CurrentUser'} ); my $has_right = $session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser'); my ($dashboard_attr) = $sys->Attributes->Named('DashboardsInMenu'); my $default_dashboards_in_menu = $dashboard_attr && $dashboard_attr->Content->{dashboards} ? $dashboard_attr->Content->{dashboards} : []; use RT::Dashboards; my $dashboards = RT::Dashboards->new( $RT::SystemUser ); $dashboards->LimitToPrivacy('RT::System-' . $sys->id); my @dashboards; while ( my $dashboard = $dashboards->Next ) { push @dashboards, [$dashboard->id, $dashboard->Name]; } my @panes = $m->comp( '/Admin/Elements/ConfigureDashboardsInMenu', Action => 'DashboardsInMenu.html', panes => ['dashboards_in_menu'], ReadOnly => !$has_right, items => \@dashboards, current_portlets => $default_dashboards_in_menu, OnSave => sub { my ( $conf ) = @_; my ( $status, $msg ); if (!$has_right) { push @actions, loc( 'Permission Denied' ); } elsif ( $dashboard_attr ) { ($status, $msg) = $dashboard_attr->SetContent($conf); } else { $dashboard_attr = RT::Attribute->new($RT::SystemUser); ( $status, $msg ) = $dashboard_attr->Create( Name => 'DashboardsInMenu', Object => $sys, Content => $conf, ); } push @actions, $status ? loc('Global dashboards in menu saved.') : $msg; } ); $m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_ ) for @panes; rt-4.4.4/share/html/Admin/Global/index.html000644 000765 000024 00000004232 13437510132 021311 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Admin/Global configuration') &> <& /Elements/Tabs &> <& /Elements/ListMenu, menu => Menu()->child('admin')->child('global') &> rt-4.4.4/share/html/Admin/Global/GroupRights.html000644 000765 000024 00000005044 13437510132 022461 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify global group rights') &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Admin/Elements/EditRights, Context => $RT::System, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%INIT> # Update the acls. my @results = ProcessACLs(\%ARGS); # Principal collections my @principals = GetPrincipalsMap($RT::System, qw(System Roles Groups)); rt-4.4.4/share/html/Admin/Global/MyRT.html000644 000765 000024 00000007600 13437510132 021037 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("RT at a glance") &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &>
    % for my $pane (@panes) { <&|/Widgets/TitleBox, title => loc('RT at a glance').': '.loc($pane->{Name}), bodyclass => "" &> <& /Widgets/SelectionBox:show, self => $pane &>
    % } <%init> my @actions; my @items = map { [ "component-$_", loc($_) ] } sort @{ RT->Config->Get('HomepageComponents') }; my $sys = RT::System->new( $session{'CurrentUser'} ); # XXX: put this in savedsearches_to_portlet_items for ( $m->comp( "/Search/Elements/SearchesForObject", Object => $sys )) { my ( $desc, $loc_desc, $search ) = @$_; my $SearchType = $search->Content->{'SearchType'} || 'Ticket'; if ( $SearchType eq 'Ticket' ) { push @items, [ "system-$desc", $loc_desc ]; } else { my $oid = ref($sys) . '-' . $sys->Id . '-SavedSearch-' . $search->Id; my $type = ( $SearchType eq 'Ticket' ) ? 'Saved Search' # loc : $SearchType; push @items, [ "saved-$oid", loc($type) . ": $loc_desc" ]; } } my ($default_portlets) = $sys->Attributes->Named('HomepageSettings'); my $has_right = $session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser'); my @panes = $m->comp( '/Admin/Elements/ConfigureMyRT', panes => [ 'body', #loc 'sidebar', #loc ], Action => 'MyRT.html', items => \@items, ReadOnly => !$has_right, current_portlets => $default_portlets->Content, OnSave => sub { my ( $conf, $pane ) = @_; if (!$has_right) { push @actions, loc( 'Permission Denied' ); } else { $default_portlets->SetContent( $conf ); push @actions, loc( 'Global portlet [_1] saved.', $pane ); } } ); $m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_ ) for @panes; rt-4.4.4/share/html/Admin/Global/Templates.html000644 000765 000024 00000004416 13437510132 022144 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title, FeedURI => 'templates' &> <& /Elements/Tabs &> <& /Admin/Elements/EditTemplates, title => $title, %ARGS &> <%init> my $title = loc("Modify templates which apply to all queues"); my (@actions); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Global/CustomFields/000755 000765 000024 00000000000 13437510132 021714 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Global/Conditions.html000644 000765 000024 00000004324 13437510132 022315 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditConditions, title => $title, %ARGS &> <%init> my $title = loc("Conditions"); my (@actions); <%ARGS> $id => 0 rt-4.4.4/share/html/Admin/Global/Scrips.html000644 000765 000024 00000004370 13437510132 021450 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditScrips, title => $title, id => $id, %ARGS &> <%init> my $title = loc("Modify scrips which apply to all queues"); my (@actions); <%ARGS> $id => 0 rt-4.4.4/share/html/Admin/Global/Template.html000644 000765 000024 00000007610 13437510132 021760 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    %if ($Create ) { % } else { % } %# hang onto the queue id <& /Admin/Elements/ModifyTemplate, Name => $TemplateObj->Name // $ARGS{Name}, Description => $TemplateObj->Description // $ARGS{Description}, Content => $TemplateObj->Content // $ARGS{Content}, Type => $TemplateObj->Type // $ARGS{Type}, &> <& /Elements/Submit, Label => $SubmitLabel, Reset => 1 &>
    <%INIT> my $TemplateObj = RT::Template->new($session{'CurrentUser'}); my ($title, @results, $SubmitLabel); if (!$Create) { if (defined ($Template) && $Template eq 'new') { my ($val, $msg) = $TemplateObj->Create(Queue => $Queue, Name => $Name, Type => $Type); push @results, $msg; } else { $TemplateObj->Load($Template) || Abort(loc('No Template')); } } if ($TemplateObj->Id()) { my @attribs = qw( Name Description Queue Type Content ); my @aresults = UpdateRecordObject( AttributesRef => \@attribs, Object => $TemplateObj, ARGSRef => \%ARGS); push @results, @aresults; my ($ok, $msg) = $TemplateObj->CompileCheck; push @results, $msg if !$ok; } else { $Create = 1; } if ($Create) { $title = loc("Create a template"); $SubmitLabel = loc('Create'); } else { $title = loc('Modify template [_1]', loc($TemplateObj->Name())); $SubmitLabel = loc('Save Changes'); } <%ARGS> $Queue => '' $Template => '' $Create => '' $Name => '' $Type => '' rt-4.4.4/share/html/Admin/Global/UserRights.html000644 000765 000024 00000004741 13437510132 022306 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify global user rights') &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Admin/Elements/EditRights, Context => $RT::System, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%INIT> my @results = ProcessACLs(\%ARGS); my @principals = GetPrincipalsMap($RT::System, 'Users'); rt-4.4.4/share/html/Admin/Global/CustomFields/index.html000644 000765 000024 00000006514 13437510132 023717 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->callback( %ARGS, tabs => $tabs ); <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <%INIT> my $title = loc("Global custom field configuration"); my $tabs = { A => { title => loc('Users'), text => loc('Select custom fields for all users'), path => 'Users.html', }, B => { title => loc('Groups'), text => loc('Select custom fields for all user groups'), path => 'Groups.html', }, C => { title => loc('Queues'), text => loc('Select custom fields for all queues'), path => 'Queues.html', }, F => { title => loc('Tickets'), text => loc('Select custom fields for tickets in all queues'), path => 'Queue-Tickets.html', }, G => { title => loc('Ticket Transactions'), text => loc('Select custom fields for transactions on tickets in all queues'), path => 'Queue-Transactions.html', }, H => { title => loc('Articles'), text => loc('Select Custom Fields for Articles in all Classes'), path => 'Class-Article.html' }, }; $m->callback( tabs => $tabs ); rt-4.4.4/share/html/Admin/Global/CustomFields/Queues.html000644 000765 000024 00000004453 13437510132 024057 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, ObjectType => 'RT::Queue', Object=> $object &> <%INIT> my $title = loc( 'Edit Custom Fields for all queues'); my $object = RT::Queue->new($session{'CurrentUser'}); rt-4.4.4/share/html/Admin/Global/CustomFields/Groups.html000644 000765 000024 00000004453 13437510132 024067 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, ObjectType => 'RT::Group', Object=> $object &> <%INIT> my $title = loc( 'Edit Custom Fields for all groups'); my $object = RT::Group->new($session{'CurrentUser'}); rt-4.4.4/share/html/Admin/Global/CustomFields/Users.html000644 000765 000024 00000004450 13437510132 023706 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, ObjectType => 'RT::User', Object=> $object &> <%INIT> my $title = loc( 'Edit Custom Fields for all users'); my $object = RT::User->new($session{'CurrentUser'}); rt-4.4.4/share/html/Admin/Global/CustomFields/Queue-Transactions.html000644 000765 000024 00000004537 13437510132 026345 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, ObjectType => 'RT::Queue', Object=> $object, SubType => 'RT::Ticket-RT::Transaction' &> <%INIT> my $title = loc( 'Edit Custom Fields for tickets in all queues'); my $object = RT::Queue->new($session{'CurrentUser'}); rt-4.4.4/share/html/Admin/Global/CustomFields/Class-Article.html000644 000765 000024 00000004513 13437510132 025233 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, ObjectType => 'RT::Class', Object => $object, SubType => 'RT::Article' &> <%INIT> my $title = loc( 'Edit Custom Fields for articles in all classes'); my $object = RT::Class->new($session{'CurrentUser'}); rt-4.4.4/share/html/Admin/Global/CustomFields/Queue-Tickets.html000644 000765 000024 00000004517 13437510132 025301 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, ObjectType => 'RT::Queue', Object=> $object, SubType => 'RT::Ticket' &> <%INIT> my $title = loc( 'Edit Custom Fields for tickets in all queues'); my $object = RT::Queue->new($session{'CurrentUser'}); rt-4.4.4/share/html/Admin/Global/CustomFields/Catalog-Assets.html000644 000765 000024 00000004506 13437510132 025421 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, ObjectType => "RT::Catalog", Object=> $object, SubType => "RT::Asset" &> <%init> my $title = loc('Edit Custom Fields for Assets in all Catalogs'); my $object = RT::Catalog->new($session{'CurrentUser'}); rt-4.4.4/share/html/Admin/Assets/index.html000644 000765 000024 00000004216 13437510132 021355 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Asset Administration') &> <& /Elements/Tabs &> <& /Elements/ListMenu, menu => Menu()->child('admin')->child('assets') &> rt-4.4.4/share/html/Admin/Assets/Catalogs/000755 000765 000024 00000000000 13437510132 021112 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Assets/Catalogs/index.html000644 000765 000024 00000010560 13437510132 023111 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Admin Catalogs") &> <& /Elements/Tabs &>

    <% $caption %>

    <&|/l&>Select a catalog:

    % unless ( $catalogs->Count ) { <&|/l&>No catalogs matching search criteria found. % } else { <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', Rows => $Rows, %ARGS, Format => $Format, Collection => $catalogs, AllowSorting => 1, PassArguments => [qw( Rows Page Order OrderBy FindDisabled String Op Field )], &> % }
    % foreach my $field( qw(Rows Page Order OrderBy) ) { % next unless defined $ARGS{ $field } && length $ARGS{ $field }; % } <& /Elements/SelectMatch, Name => 'Op', Default => $Op &>
    />
    <%INIT> my $catalogs = RT::Catalogs->new($session{'CurrentUser'}); $catalogs->FindAllRows if $FindDisabled; my ($caption); if ( defined $String && length $String ) { $caption = $FindDisabled ? loc("All catalogs matching search criteria") : loc("Enabled catalogs matching search criteria"); $catalogs->Limit( FIELD => $Field, OPERATOR => $Op, VALUE => $String, ); RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Admin/Assets/Catalogs/Modify.html?id=".$catalogs->First->id) if $catalogs->Count == 1; } else { $catalogs->UnLimit; $caption = $FindDisabled ? loc("All Catalogs") : loc("Enabled Catalogs"); } my $Format = RT->Config->Get('AdminSearchResultFormat')->{'Catalogs'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Catalogs'} || 50; <%ARGS> $FindDisabled => 0 $Field => 'Name' $Op => '=' $String => '' rt-4.4.4/share/html/Admin/Assets/Catalogs/GroupRights.html000644 000765 000024 00000005230 13437510132 024255 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Catalog [_1]: Modify group rights", $Catalog->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Admin/Elements/EditRights, Context => $Catalog, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%init> my $Catalog = LoadCatalog($id); my @results = ProcessACLs(\%ARGS); my @principals = GetPrincipalsMap($Catalog, qw(System Roles Groups)); <%args> $id => undef rt-4.4.4/share/html/Admin/Assets/Catalogs/Modify.html000644 000765 000024 00000006222 13437510132 023231 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Catalog [_1]: Modify basics", $catalog->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc("Basics"), class => "catalog-basics" &> <& Elements/EditBasics, %ARGS, CatalogObj => $catalog &> <& /Elements/Submit, Label => loc('Save'), Name => "Update" &>
    <%args> $id => undef $Update => 0 <%init> my @results; my $catalog = LoadCatalog($id); if ($Update) { my @attributes = $catalog->WritableAttributes; # Disabled isn't submitted if unchecked, so use our hidden field to know if # it was included in the form. $ARGS{Disabled} = $ARGS{Disabled} ? 1 : 0 if $ARGS{SetDisabled}; push @results, UpdateRecordObject( Object => $catalog, AttributesRef => \@attributes, ARGSRef => \%ARGS, ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $catalog->id }, ); } rt-4.4.4/share/html/Admin/Assets/Catalogs/Create.html000644 000765 000024 00000006224 13437510132 023207 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Create catalog") &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc("Basics"), class => "catalog-basics" &> <& Elements/EditBasics, %ARGS, CatalogObj => $catalog &> <& /Elements/Submit, Label => loc('Create catalog'), Name => "Update" &>
    <%args> $id => "" <%init> my @results; my $catalog = RT::Catalog->new( $session{CurrentUser} ); if ($id eq "new") { my %create; for ($catalog->WritableAttributes) { $create{$_} = $ARGS{$_} if exists $ARGS{$_}; } $m->callback( %ARGS, CatalogObj => $catalog, Create => \%create, CallbackName => 'MassageCreate' ); my ($ok, $msg, $nonfatal) = $catalog->Create( %create ); push @results, $msg, @{$nonfatal || []}; if ($ok) { MaybeRedirectForResults( Actions => \@results, Path => "/Admin/Assets/Catalogs/Modify.html", Arguments => { id => $catalog->id }, ); } } rt-4.4.4/share/html/Admin/Assets/Catalogs/CustomFields.html000644 000765 000024 00000004505 13437510132 024405 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Catalog [_1]: Edit Custom Fields", $Catalog->Name) &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, Object => $Catalog, ObjectType => 'RT::Catalog', SubType => 'RT::Asset', &> <%init> my $Catalog = LoadCatalog($id); <%args> $id => undef rt-4.4.4/share/html/Admin/Assets/Catalogs/DefaultValues.html000644 000765 000024 00000010025 13437510132 024542 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Elements/EditCustomFieldCustomGroupings, CustomFieldGenerator => sub { $catalog->AssetCustomFields->LimitToDefaultValuesSupportedTypes }, TitleBoxARGS => { title_class => "inverse" }, Object => RT::Asset->new($session{CurrentUser}) &> <& /Elements/Submit, Name => 'Update', Label => loc('Save Changes') &> <& /Elements/Submit, Name => 'Reset', Label => loc('Reset Custom Field Values to Default') &>
    <%INIT> my $catalog = RT::Catalog->new( $session{CurrentUser} ); $catalog->Load($id) || Abort( loc( "Couldn't load asset [_1]", $id ) ); my $title = loc( 'Default Values for catalog [_1]', $catalog->Name ); my @results; if ( $ARGS{Reset} ) { my $attr = $catalog->FirstAttribute( 'CustomFieldDefaultValues' ); if ( $attr ) { $attr->Delete; push @results, "Custom Field default values are reset"; } } elsif ( $ARGS{Update} ) { my $cfs = _ParseObjectCustomFieldArgs(\%ARGS)->{'RT::Asset'}{0}; for my $cf_id (keys %$cfs) { # In the case of inconsistent CFV submission, # we'll get the 1st grouping in the hash, alphabetically my ($ret, $grouping_name) = _ValidateConsistentCustomFieldValues($cf_id, $cfs->{$cf_id}); my $grouping = $cfs->{$cf_id}{$grouping_name}; my $value = $grouping->{Value} // $grouping->{Values}; my $cf = RT::CustomField->new($session{CurrentUser}); $cf->Load($cf_id); if ( $cf->id && $cf->SupportDefaultValues ) { my ($ret, $msg) = $cf->SetDefaultValues( Object => $catalog, Values => $value, ); push @results, $msg; } } } MaybeRedirectForResults( Actions => \@results, Arguments => { id => $catalog->id }, ); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Assets/Catalogs/Elements/000755 000765 000024 00000000000 13437510132 022666 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Assets/Catalogs/Roles.html000644 000765 000024 00000005746 13437510132 023100 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Catalog [_1]: Modify roles", $catalog->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc("Roles"), class => "catalog-roles" &>
    <& /Asset/Elements/EditCatalogPeople, %ARGS, Object => $catalog &> <& /Asset/Elements/AddCatalogPeople, Object => $catalog &>
    <& /Elements/Submit, Label => loc('Save'), Name => "Update" &>
    <%args> $id => undef $Update => 0 <%init> my $catalog = LoadCatalog($id); my @results; if ($Update) { push @results, ProcessAssetRoleMembers( $catalog => %ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $catalog->id }, ); } rt-4.4.4/share/html/Admin/Assets/Catalogs/UserRights.html000644 000765 000024 00000005206 13437510132 024102 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Catalog [_1]: Modify user rights", $Catalog->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Admin/Elements/EditRights, Context => $Catalog, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%init> my $Catalog = LoadCatalog($id); my @results = ProcessACLs(\%ARGS); my @principals = GetPrincipalsMap($Catalog, qw(Users)); <%args> $id => undef rt-4.4.4/share/html/Admin/Assets/Catalogs/Elements/EditBasics000644 000765 000024 00000006232 13437510132 024626 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <& /Widgets/Form/Select:InputOnly, Name => 'Lifecycle', Values => [ sort { loc($a) cmp loc($b) } RT::Lifecycle->List( $CatalogObj->LifecycleType ) ], CurrentValue => $current{Lifecycle}, Default => 0, &>
    >
    <%args> $CatalogObj <%init> my %current = map { $_ => ($ARGS{$_} || $CatalogObj->$_ || '') } $CatalogObj->WritableAttributes; rt-4.4.4/share/html/Admin/Queues/index.html000644 000765 000024 00000011122 13437510132 021354 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Admin queues") &> <& /Elements/Tabs &>

    <%$caption%>

    % foreach my $field( qw(Format Rows Page Order OrderBy) ) { % next unless defined $ARGS{ $field } && length $ARGS{ $field }; % } <& /Elements/SelectMatch, Name => 'QueueOp', Default => $QueueOp &>
    />

    <&|/l&>Select a queue:

    % unless ( $queues->Count ) { <&|/l&>No queues matching search criteria found. % } else { <& /Elements/CollectionList, OrderBy => ['SortOrder','Name'], Order => ['ASC','ASC'], Rows => $Rows, %ARGS, Format => $Format, Collection => $queues, AllowSorting => 1, PassArguments => [qw( Format Rows Page Order OrderBy FindDisabledQueues QueueString QueueOp QueueField )], &> % } <%INIT> my $queues = RT::Queues->new($session{'CurrentUser'}); $queues->FindAllRows if $FindDisabledQueues; my ($caption); if ( defined $QueueString && length $QueueString ) { $caption = $FindDisabledQueues ? loc("All queues matching search criteria") : loc("Enabled queues matching search criteria"); $queues->Limit( FIELD => $QueueField, OPERATOR => $QueueOp, VALUE => $QueueString, CASESENSITIVE => 0 ); RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Admin/Queues/Modify.html?id=".$queues->First->id) if $queues->Count == 1; } else { $queues->UnLimit; $caption = $FindDisabledQueues ? loc("All Queues") : loc("Enabled Queues"); } $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Queues'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Queues'} || 50; <%ARGS> $FindDisabledQueues => 0 $Format => undef $QueueField => 'Name' $QueueOp => 'LIKE' $QueueString => '' rt-4.4.4/share/html/Admin/Queues/People.html000644 000765 000024 00000013641 13437510132 021501 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>

    <&|/l&>Current watchers

    <&|/l&>(Check box to delete)

    % for my $Name ($QueueObj->ManageableRoleGroupTypes) { <& /Admin/Elements/EditQueueWatcherGroup, Label => loc($QueueObj->LabelForRole($Name)), QueueObj => $QueueObj, Watchers => $QueueObj->RoleGroup($Name, CheckRight => 'SeeQueue') &> % } % $m->callback(CallbackName => 'CurrentWatchers', QueueObj => $QueueObj);

    <&|/l&>New watchers

    <&|/l&>Find people whose
    <& /Elements/SelectUsers &>
    <&|/l&>Find groups whose
    <& /Elements/SelectGroups &>

    <&|/l&>Add new watchers:

    <&|/l&>Users % if ($user_msg) {
    <%$user_msg%> % } elsif ($Users) {

      % while (my $u = $Users->Next ) {
    • <& /Elements/SelectWatcherType, Scope => 'queue', Name => "Queue-AddWatcher-Principal-". $u->PrincipalId, Queue => $QueueObj, &> <& /Elements/ShowUser, User => $u &>
    • % }
    % }

    <&|/l&>Groups % if ($group_msg) {
    <%$group_msg%> % } elsif ($Groups) {

      % while (my $g = $Groups->Next ) {
    • <& /Elements/SelectWatcherType, Scope => 'queue', Name => "Queue-AddWatcher-Principal-".$g->PrincipalId, Queue => $QueueObj, &> <%$g->Name%> (<%$g->Description%>) % }
    % }
    <& /Elements/Submit, Label => loc('Save Changes'), Caption => loc("If you've updated anything above, be sure to"), Reset => 1 &>
    <%INIT> my ($field, @results, $User, $Users, $Groups, $watcher, $user_msg, $group_msg); my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id) || Abort(loc("Couldn't load queue", $id)); unless ($OnlySearchForPeople or $OnlySearchForGroup) { # Delete deletable watchers foreach my $key (keys %ARGS) { my $id = $QueueObj->Id; if (($key =~ /^Queue-$id-DeleteWatcher-Type-(.*?)-Principal-(\d*)$/)) {; my ($code, $msg) = $QueueObj->DeleteWatcher(Type => $1, PrincipalId => $2); push @results, $msg; } } # Add new watchers foreach my $key (keys %ARGS) { my $type = $ARGS{$key}; next unless $key =~ /^Queue-AddWatcher-Principal-(\d*)$/; my $id = $1; next unless $QueueObj->IsManageableRoleGroupType($type); my ($code, $msg) = $QueueObj->AddWatcher( Type => $type, PrincipalId => $id, ); push @results, $msg; } } if ( $ARGS{'UserString'} ) { $Users = RT::Users->new( $session{'CurrentUser'} ); $Users->Limit( FIELD => $ARGS{'UserField'}, VALUE => $ARGS{'UserString'}, OPERATOR => $ARGS{'UserOp'} ); } else { $user_msg = loc("No principals selected."); } if ( $ARGS{'GroupString'} ) { $Groups = RT::Groups->new( $session{'CurrentUser'} ); $Groups->LimitToUserDefinedGroups; $Groups->Limit( FIELD => $ARGS{'GroupField'}, VALUE => $ARGS{'GroupString'}, OPERATOR => $ARGS{'GroupOp'} ); } else { $group_msg = loc("No principals selected."); } my $title = loc('People related to queue [_1]', $QueueObj->Name); <%ARGS> $OnlySearchForPeople => undef $OnlySearchForGroup => undef $UserField => 'Name' $UserOp => '=' $UserString => undef $GroupField => 'Name' $GroupOp => '=' $GroupString => undef $Type => undef $id => undef rt-4.4.4/share/html/Admin/Queues/GroupRights.html000644 000765 000024 00000005701 13437510132 022530 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify group rights for queue [_1]', $QueueObj->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % $m->callback( %ARGS, QueueObj => $QueueObj, results => \@results, principals => \@principals ); <& /Admin/Elements/EditRights, Context => $QueueObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%INIT> # Update the acls. my @results = ProcessACLs(\%ARGS); if (!defined $id) { Abort(loc("No Queue defined")); } my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id) || Abort(loc("Couldn't load queue [_1]",$id)); # Principal collections my @principals = GetPrincipalsMap($QueueObj, qw(System Roles Groups)); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Queues/Modify.html000644 000765 000024 00000025047 13437510132 021507 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % $m->callback( CallbackName => 'FormStart', Create => $Create, ARGSRef => \%ARGS ); % my $CFs = $QueueObj->CustomFields; % while (my $CF = $CFs->Next) { % } % if ( RT->Config->Get('Crypt')->{'Enable'} ) { % } % unless ($InternalQueue) { % } % if ( RT->Config->Get('Crypt')->{'Enable'} ) { % }
    <&|/l&>Queue Name: % if ($InternalQueue) { <% $QueueObj->Name %> % } else { Name || $Name %>" /> % }
    <&|/l&>Description: Description || $Description || '' %>" size="60" />
    <&|/l&>Lifecycle: % if ($InternalQueue) { <% $QueueObj->Lifecycle %> % } else { <& /Widgets/Form/Select:InputOnly, Name => 'Lifecycle', Values => [ sort { loc($a) cmp loc($b) } RT::Lifecycle->List ], CurrentValue => $Create ? "default" : $QueueObj->Lifecycle || $ARGS{'Lifecycle'}, Default => 0, &> % }
    <&|/l&>Subject Tag: SubjectTag || '' ) %>" size="60" />
    <&|/l&>Sort Order:
    <&|/l&>Reply Address: CorrespondAddress || $CorrespondAddress || '' %>" />
    <&|/l , RT->Config->Get('CorrespondAddress')&>(If left blank, will default to [_1])
    <&|/l&>Comment Address: CommentAddress || $CommentAddress || '' %>" />
    <&|/l , RT->Config->Get('CommentAddress')&>(If left blank, will default to [_1])
    id && !$QueueObj->SLADisabled ) { checked="checked" % } />
    <% $CF->Name %>: <& /Elements/EditCustomField, CustomField => $CF, Object => $QueueObj, &>
    Sign? 'checked="checked"': '' |n%> /> Encrypt? 'checked="checked"': '' |n%> />
    SignAuto? 'checked="checked"': '' |n%> />
    />
    % $m->callback( %ARGS, QueueObj => $QueueObj, results => \@results );
    % if ( my $email = $QueueObj->CorrespondAddress || RT->Config->Get('CorrespondAddress') ) { <& /Admin/Elements/ShowKeyInfo, Type => 'private', EmailAddress => $email &> % } else { <&|/Widgets/TitleBox, title => loc( 'Private keys') &> <&|/l&>You have enabled encryption support but have not set a correspondence address for this queue. <&|/l&>You must set a correspondence address for this queue in order to configure a private key. % }
    % if ( my $email = $QueueObj->CommentAddress || RT->Config->Get('CommentAddress') ) { <& /Admin/Elements/ShowKeyInfo, Type => 'private', EmailAddress => $email &> % } else { <&|/Widgets/TitleBox, title => loc( 'Private keys') &> <&|/l&>You have enabled encryption support but have not set a comment address for this queue. <&|/l&>You must set a comment address for this queue in order to configure a private key. %}
    % if ( $Create ) { <& /Elements/Submit, Label => loc('Create') &> % } else { <& /Elements/Submit, Label => loc('Save Changes') &> % }
    <%INIT> my ($title, @results, @no_redirect_results, $Disabled, $EnabledChecked); my $QueueObj = RT::Queue->new( $session{'CurrentUser'} ); $QueueObj->Load( $id ) if !$id || $id eq 'new'; $EnabledChecked = 'checked="checked"'; unless ($Create) { if ( defined $id && $id eq 'new' ) { my ($val, $msg) = $QueueObj->Create( Name => $Name ); if (!$val) { $Create = 1; # Create failed, so bring us back to step 1 } push @results, $msg; } else { $QueueObj->Load($id) || $QueueObj->Load($Name) || Abort(loc("Couldn't load queue '[_1]'", $Name)); } } if ( $QueueObj->Id ) { $title = loc('Configuration for queue [_1]', $QueueObj->Name ); my @attribs= qw(Description CorrespondAddress CommentAddress Name SortOrder Sign SignAuto Encrypt Lifecycle SubjectTag SLADisabled Disabled); # we're asking about enabled on the web page but really care about disabled if ( $SetEnabled ) { $Disabled = $ARGS{'Disabled'} = $Enabled? 0: 1; } if ( $SetSLAEnabled ) { $ARGS{'SLADisabled'} = $SLAEnabled? 0: 1; } if ( $SetCrypt ) { $ARGS{$_} = 0 foreach grep !defined $ARGS{$_} || !length $ARGS{$_}, qw(Sign SignAuto Encrypt); } $m->callback( CallbackName => 'BeforeUpdate', Queue => $QueueObj, AttributesRef => \@attribs, ARGSRef => \%ARGS, ); push @results, UpdateRecordObject( AttributesRef => \@attribs, Object => $QueueObj, ARGSRef => \%ARGS ); $Disabled = $ARGS{'Disabled'} = $Enabled? 0: 1; $EnabledChecked = "" if $QueueObj->Disabled; my @linkresults; $m->callback( results => \@linkresults, RecordObj => $QueueObj, ARGSRef => \%ARGS, CallbackName => 'ProcessLinks' ); push @results, @linkresults; push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $QueueObj ); if ( RT->Config->Get('RTAddressRegexp') ) { foreach my $address ( $QueueObj->CorrespondAddress, $QueueObj->CommentAddress ) { next unless defined $address && length $address; next if RT::EmailParser->IsRTAddress( $address ); push @no_redirect_results, loc("RTAddressRegexp option in the config doesn't match [_1]", $address ); } } if ( !$QueueObj->SLADisabled && !( RT->Config->Get('ServiceAgreements') && keys %{RT->Config->Get('ServiceAgreements')}) ) { push @no_redirect_results, loc("You enabled [_1] but [_2] hasn't been configured in RT_SiteConfig.pm, please check '[_3]' for more help", 'SLA', '%ServiceAgreements', 'docs/customizing/sla.pod'); } } else { $title = loc("Create a queue"); } my $InternalQueue = ($QueueObj->Id and $QueueObj->Disabled == 2); # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@results, Arguments => { id => $QueueObj->Id }, ) if $QueueObj->id; push @results, @no_redirect_results; <%ARGS> $id => undef $result => undef $Name => undef $Create => undef $Description => undef $CorrespondAddress => undef $CommentAddress => undef $SetSLAEnabled => undef $SetEnabled => undef $SetCrypt => undef $SLAEnabled => undef $Enabled => undef $SortOrder => undef rt-4.4.4/share/html/Admin/Queues/CustomFields.html000644 000765 000024 00000005110 13437510132 022646 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, Object => $Object, ObjectType => 'RT::Queue' &> <%INIT> my $Object = RT::Queue->new( $session{'CurrentUser'} ); $Object->Load($id) || Abort( loc( "Couldn't load object [_1]", $id ) ); my $FriendlySubTypes = RT::CustomField->new( $session{'CurrentUser'} ) ->FriendlyLookupType( $Object->CustomFieldLookupType ); my $title = loc( 'Custom Fields for queue [_1]', $Object->Name ); <%ARGS> $id => undef $SubType => 'RT::Queue-RT::Ticket' rt-4.4.4/share/html/Admin/Queues/DefaultValues.html000644 000765 000024 00000015712 13437510132 023022 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc('Basics') &> <& /Elements/EditCustomFields, Object => RT::Ticket->new($session{CurrentUser}), CustomFields => $queue->TicketCustomFields->LimitToDefaultValuesSupportedTypes, Grouping => 'Basics', InTable => 1, &>
    <&|/l&>Priority: <& /Elements/SelectPriority, Name => "InitialPriority", Default => $queue->DefaultValue('InitialPriority'), &>
    <&|/l&>Final Priority: <& /Elements/SelectPriority, Name => "FinalPriority", Default => $queue->DefaultValue('FinalPriority'), &>
    <&|/l&>requires running rt-crontool
    <&|/Widgets/TitleBox, title => loc("Dates") &> <& /Elements/EditCustomFields, Object => RT::Ticket->new($session{CurrentUser}), CustomFields => $queue->TicketCustomFields->LimitToDefaultValuesSupportedTypes, Grouping => 'Dates', InTable => 1, &>
    <&|/l&>Starts:<& /Elements/SelectDate, Name => "Starts", Default => $queue->DefaultValue('Starts') || '' &>
    <&|/l&>Due:<& /Elements/SelectDate, Name => "Due", Default => $queue->DefaultValue('Due') || '' &>
    % if ( RT->Config->ObjectHasCustomFieldGrouping(Object => RT::Ticket->new($session{CurrentUser}), Grouping => 'People') ) {
    <&|/Widgets/TitleBox, title => loc("People") &> <& /Elements/EditCustomFields, Object => RT::Ticket->new($session{CurrentUser}), CustomFields => $queue->TicketCustomFields->LimitToDefaultValuesSupportedTypes, Grouping => 'People', InTable => 1, &>
    % } % if ( RT->Config->ObjectHasCustomFieldGrouping(Object => RT::Ticket->new($session{CurrentUser}), Grouping => 'Links') ) { % } <& /Elements/EditCustomFieldCustomGroupings, CustomFieldGenerator => sub { $queue->TicketCustomFields->LimitToDefaultValuesSupportedTypes }, Object => RT::Ticket->new($session{CurrentUser}) &>
    <&|/Widgets/TitleBox, title => loc("Transaction Custom Fields") &> <& /Elements/EditCustomFields, CustomFields => $queue->TicketTransactionCustomFields->LimitToDefaultValuesSupportedTypes, Object => RT::Transaction->new($session{CurrentUser}), QueueObj => $queue, InTable => 1 &>
    <& /Elements/Submit, Name => 'Update', Label => loc('Save Changes') &> <& /Elements/Submit, Name => 'Reset', Label => loc('Reset Custom Field Values to Default') &>
    <%INIT> my $queue = RT::Queue->new( $session{CurrentUser} ); $queue->Load($id) || Abort( loc( "Couldn't load object [_1]", $id ) ); my $title = loc( 'Default Values for queue [_1]', $queue->Name ); my @results; if ( $ARGS{Reset} ) { my $attr = $queue->FirstAttribute( 'CustomFieldDefaultValues' ); if ( $attr ) { $attr->Delete; push @results, "Custom Field default values are reset"; } } elsif ( $ARGS{Update} ) { for my $field ( qw/InitialPriority FinalPriority Starts Due/ ) { my ($ret, $msg) = $queue->SetDefaultValue( Name => $field, Value => $ARGS{$field}, ); push @results, $msg; } my $cfs = _ParseObjectCustomFieldArgs(\%ARGS)->{'RT::Ticket'}{0}; for my $cf_id (keys %$cfs) { # In the case of inconsistent CFV submission, # we'll get the 1st grouping in the hash, alphabetically my ($ret, $grouping_name) = _ValidateConsistentCustomFieldValues($cf_id, $cfs->{$cf_id}); my $grouping = $cfs->{$cf_id}{$grouping_name}; my $value = $grouping->{Value} // $grouping->{Values}; my $cf = RT::CustomField->new($session{CurrentUser}); $cf->Load($cf_id); if ( $cf->id && $cf->SupportDefaultValues ) { my ($ret, $msg) = $cf->SetDefaultValues( Object => $queue, Values => $value, ); push @results, $msg; } } } MaybeRedirectForResults( Actions => \@results, Arguments => { id => $queue->id }, ); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Queues/Templates.html000644 000765 000024 00000004641 13437510132 022213 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditTemplates, title => $title, %ARGS &> <%INIT> my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id); if (!$QueueObj->id) { Abort(loc("Queue [_1] not found",$id)); } my $title = loc("Templates for queue [_1]", $QueueObj->Name); <%ARGS> $id => undef #some identifier that a Queue could rt-4.4.4/share/html/Admin/Queues/History.html000644 000765 000024 00000004636 13437510132 021722 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ShowHistory, Object => $QueueObj, ShowDisplayModes => 0, DisplayPath => 'History.html', &> <%INIT> my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id) || Abort("Couldn't load queue '$id'"); my $title = loc("History of the queue [_1]", $QueueObj->Name); <%ARGS> $id => '' unless defined $id rt-4.4.4/share/html/Admin/Queues/Scrips.html000644 000765 000024 00000004631 13437510132 021517 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditScrips, title => $title, %ARGS &> <%init> my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id); Abort(loc("Queue [_1] not found",$id)) unless $QueueObj->id; my $title = loc("Modify scrips for queue [_1]", $QueueObj->Name); <%ARGS> $id => undef #some identifier that a Queue could rt-4.4.4/share/html/Admin/Queues/CustomField.html000644 000765 000024 00000005073 13437510132 022473 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomField, title => $title, %ARGS &> <%INIT> my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($Queue); my ($title); unless($QueueObj->id) { Abort(loc("Queue [_1] not found", $Queue)); } if ($CustomField) { $title = loc('Modify a CustomField for queue [_1]', $QueueObj->Name()); }else { $title = loc('Create a CustomField for queue [_1]', $QueueObj->Name()); } <%ARGS> $CustomField => undef $Queue => 0 <%ATTR> AutoFlush => 0 rt-4.4.4/share/html/Admin/Queues/Template.html000644 000765 000024 00000010312 13437510132 022020 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    %if ($Create ) { % } else { % } %# hang onto the queue id <& /Admin/Elements/ModifyTemplate, Name => $TemplateObj->Name // $ARGS{Name}, Description => $TemplateObj->Description // $ARGS{Description}, Content => $TemplateObj->Content // $ARGS{Content}, Type => $TemplateObj->Type // $ARGS{Type}, &> <& /Elements/Submit, Label => $SubmitLabel, Reset => 1 &>
    <%INIT> my $TemplateObj = RT::Template->new( $session{'CurrentUser'} ); my $QueueObj; my $SubmitLabel; my $title; my @results; if ( !$Create ) { if ( $Template eq 'new' ) { my ( $val, $msg ) = $TemplateObj->Create( Queue => $Queue, Name => $Name, Type => $Type ); push @results, $msg; } else { $TemplateObj->Load($Template) || Abort( loc('No Template') ); } } if ( $TemplateObj->Id() ) { $Queue = $TemplateObj->Queue; $QueueObj = $TemplateObj->QueueObj; my @attribs = qw( Name Description Queue Type Content ); my @aresults = UpdateRecordObject( AttributesRef => \@attribs, Object => $TemplateObj, ARGSRef => \%ARGS ); push @results, @aresults; my ( $ok, $msg ) = $TemplateObj->CompileCheck; push @results, $msg if !$ok; } else { $Create = 1; $QueueObj = RT::Queue->new( $session{'CurrentUser'} ); $QueueObj->Load($Queue); } if ($Create) { $title = loc( 'Create a new template for queue [_1]', $QueueObj->Name ); $SubmitLabel = loc('Create'); } else { $title = loc( 'Modify template [_1] for queue [_2]', loc( $TemplateObj->Name()), $QueueObj->Name ); $SubmitLabel = loc('Save Changes'); } <%ARGS> $Queue => '' $Template => '' $Create => undef $Name => undef $Type => undef rt-4.4.4/share/html/Admin/Queues/UserRights.html000644 000765 000024 00000005753 13437510132 022361 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify user rights for queue [_1]', $QueueObj->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    %# XXX TODO put this somewhere more reasonable % $m->callback( %ARGS, QueueObj => $QueueObj, results => \@results ); <& /Admin/Elements/EditRights, Context => $QueueObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%INIT> # Update the acls. my @results = ProcessACLs(\%ARGS); if (!defined $id) { Abort(loc("No Queue defined")); } my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id) || Abort(loc("Couldn't load queue [_1]",$id)); my @principals = GetPrincipalsMap($QueueObj, 'Users'); <%ARGS> $id => undef $UserString => undef $UserOp => undef $UserField => undef rt-4.4.4/share/html/Admin/CustomFields/Objects.html000644 000765 000024 00000012742 13437510132 023001 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % if ( $CF->IsGlobal ) {

    <&|/l&>Applies to all objects

    % } else {

    <&|/l&>Apply globally

    % unless ( $CF->IsOnlyGlobal ) {

    <&|/l&>Selected objects

    <& /Elements/CollectionList, OrderBy => $class->isa('RT::Queue') ? ['SortOrder', 'Name'] : 'id', Order => $class->isa('RT::Queue') ? ['ASC', 'ASC'] : 'ASC', %ARGS, Collection => $added, Rows => 0, Page => 1, Format => $format, DisplayFormat => "'__CheckBox.{RemoveCustomField-". $CF->id ."}__',". $format, AllowSorting => 0, ShowEmpty => 0, PassArguments => [ qw(id Format Rows Page Order OrderBy), ], &>

    <&|/l&>Unselected objects

    <& /Elements/CollectionList, OrderBy => $class->isa('RT::Queue') ? ['SortOrder', 'Name'] : 'id', Order => $class->isa('RT::Queue') ? ['ASC', 'ASC'] : 'ASC', %ARGS, Collection => $not_added, Rows => $rows, Format => $format, DisplayFormat => "'__CheckBox.{AddCustomField-". $CF->id ."}__',". $format, AllowSorting => 1, ShowEmpty => 0, PassArguments => [ qw(id Format Rows Page Order OrderBy), ], &> % } % } <& /Elements/Submit, Name => 'UpdateObjs' &>
    <%INIT> my $CF = RT::CustomField->new($session{'CurrentUser'}); $CF->Load($id) or Abort(loc("Could not load CustomField [_1]", $id)); my $class = $CF->RecordClassFromLookupType; Abort(loc("Something wrong. Contact system administrator")) unless $class; my (@results); if ( $UpdateObjs ) { if ( defined (my $del = $ARGS{'RemoveCustomField-'.$CF->id}) ) { foreach my $id ( ref $del? (@$del) : ($del) ) { my $object = $class->new( $session{'CurrentUser'} ); if ( $id ) { $object->Load( $id ); next unless $object->id; } my ($status, $msg) = $CF->RemoveFromObject( $object ); push @results, $msg; } } if ( defined (my $add = $ARGS{'AddCustomField-'.$CF->id}) ) { foreach my $id ( ref $add? (@$add) : ($add) ) { my $object = $class->new( $session{'CurrentUser'} ); if ( $id ) { $object->Load( $id ); next unless $object->id; } my ($status, $msg) = $CF->AddToObject( $object ); push @results, $msg; } } } my $added = $CF->AddedTo; my $not_added = $CF->NotAddedTo; my $collection_class = ref($added); $collection_class =~ s/^RT:://; my $format = RT->Config->Get('AdminSearchResultFormat')->{$collection_class} || '__id__,__Name__'; my $rows = RT->Config->Get('AdminSearchResultRows')->{$collection_class} || 50; my $title = loc('Modify associated objects for [_1]', $CF->Name); <%ARGS> $id => undef $FindDisabledObjects => 0 $UpdateObjs => 0 rt-4.4.4/share/html/Admin/CustomFields/index.html000644 000765 000024 00000007632 13437510132 022521 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> % my $tmp = RT::CustomField->new( $session{'CurrentUser'} );

    <% $Type ? loc("Custom Fields for [_1]", $Type) : loc('All Custom Fields') %>

    <&|/l&>Only show custom fields for:
    />
    % $m->callback(CallbackName => 'BeforeSubmit');
    <& /Elements/CollectionList, OrderBy => 'LookupType|Name', Order => 'ASC|ASC', Rows => $Rows, %ARGS, Collection => $CustomFields, Format => $Format, DisplayFormat => ($Type? '' : '__FriendlyLookupType__,'). $Format, AllowSorting => 1, PassArguments => [ qw(Format Rows Page Order OrderBy), qw(Type ShowDisabled) ], &> <%args> $Type => '' $ShowDisabled => 0 $Format => undef <%INIT> my $title = loc('Select a Custom Field'); my $CustomFields = RT::CustomFields->new($session{'CurrentUser'}); $CustomFields->UnLimit; $CustomFields->FindAllRows if $ShowDisabled; $CustomFields->LimitToLookupType( $Type ) if $Type; $m->callback(CallbackName => 'MassageCustomFields', CustomFields => $CustomFields); $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'CustomFields'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'CustomFields'} || 50; rt-4.4.4/share/html/Admin/CustomFields/GroupRights.html000644 000765 000024 00000005744 13437510132 023671 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Admin/Elements/EditRights, Context => $CustomFieldObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%INIT> if (!defined $id) { $m->comp("/Elements/Error", Why => loc("No CustomField defined")); } my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'}); $CustomFieldObj->Load($id) || $m->comp("/Elements/Error", Why => loc("Couldn't load CustomField [_1]",$id)); my @results = ProcessACLs( \%ARGS ); my $title = loc('Modify group rights for custom field [_1]', $CustomFieldObj->Name); # Principal collections my @principals = GetPrincipalsMap($CustomFieldObj, qw(System Roles Groups)); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/CustomFields/Modify.html000644 000765 000024 00000041653 13437510132 022642 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title, Focus => (($added_cfv or $ARGS{FocusAddValue}) ? "input[name=CustomField-$id-Value-new-Name]" : undef), &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % if ( $CustomFieldObj->Id and $CustomFieldObj->HasRenderTypes ) { % } % if ( $CustomFieldObj->Id and $CustomFieldObj->IsSelectionType and RT->Config->Get('CustomFieldValuesSources') and ( scalar(@{RT->Config->Get('CustomFieldValuesSources')}) > 0 ) ) { % } % if ( $CustomFieldObj->Id and $CustomFieldObj->IsCanonicalizeType and RT->Config->Get('CustomFieldValuesCanonicalizers') and ( scalar(@{RT->Config->Get('CustomFieldValuesCanonicalizers')}) > 0 ) ) { % } % if ( $CustomFieldObj->SupportDefaultValues ) { % } % if ( $CustomFieldObj->Id && $CustomFieldObj->IsSelectionType ) { % } % $m->callback(CallbackName => 'BeforeEnabled', CustomField => $CustomFieldObj, CFvalidations => \@CFvalidations); % $m->callback(CallbackName => 'EndOfTable', CustomField => $CustomFieldObj, CFvalidations => \@CFvalidations);
    <&|/l&>Name
    <&|/l&>Description
    <&|/l&>Type <& /Admin/Elements/SelectCustomFieldType, Name => "TypeComposite", Default => $CustomFieldObj->TypeComposite, &>
    <&|/l&>Render Type <& /Admin/Elements/SelectCustomFieldRenderType, Name => "RenderType", TypeComposite => $CustomFieldObj->TypeComposite, Default => $CustomFieldObj->RenderType, BasedOn => $CustomFieldObj->BasedOnObj->id, &>
    <&|/l&>Field values source: <& /Admin/Elements/EditCustomFieldValuesSource, CustomField => $CustomFieldObj &>
    <&|/l&>Canonicalizer: <& /Admin/Elements/EditCustomFieldValuesCanonicalizer, CustomField => $CustomFieldObj &>
    <&|/l&>Applies to <& /Admin/Elements/SelectCustomFieldLookupType, Name => "LookupType", Default => $CustomFieldObj->LookupType || $LookupType, &>
    <&|/l&>Entry Hint
    <&|/l&>Validation <& /Widgets/ComboBox, Name => 'Pattern', Default => $CustomFieldObj->Pattern || $Pattern, Size => 20, Values => \@CFvalidations, &>
    <&|/l, $CustomFieldObj->MaxValues &>Default [numerate,_1,value,values] <& /Elements/EditCustomField, NamePrefix => 'Default-', CustomField => $CustomFieldObj, ShowEmptyOption => 1 &>
    <&|/l&>Link values to
    <&|/l&>RT can make this custom field's values into hyperlinks to another service. <&|/l&>Fill in this field with a URL. <&|/l_unsafe, '__id__', '__CustomField__' &>RT will replace [_1] and [_2] with the record's id and the custom field's value, respectively.
    <&|/l&>Include page
    <&|/l&>RT can include content from another web service when showing this custom field. <&|/l&>Fill in this field with a URL. <&|/l_unsafe, '__id__', '__CustomField__' &>RT will replace [_1] and [_2] with the record's id and the custom field's value, respectively. <&|/l&>Some browsers may only load content from the same domain as your RT server.
    <&|/l&>Categories are based on <& /Admin/Elements/SelectCustomField, Name => "BasedOn", LookupType => $CustomFieldObj->LookupType, Default => $CustomFieldObj->BasedOnObj || $BasedOn, Not => $CustomFieldObj->id, &>
      />
      />
    % if ( $CustomFieldObj->Id && $CustomFieldObj->IsSelectionType && !$CustomFieldObj->IsExternalValues ) {

    <&|/l&>Values

    <& /Admin/Elements/EditCustomFieldValues, CustomField => $CustomFieldObj &> <& /Admin/Elements/AddCustomFieldValue, CustomField => $CustomFieldObj &>
    % } <& /Elements/Submit, Name => 'Update', Label => $id eq 'new'? loc('Create'): loc('Save Changes') &>
    % $m->callback(%ARGS, CallbackName => 'EndOfPage', CustomFieldObj => $CustomFieldObj); <%INIT> my ($title, @results, $added_cfv); my $CustomFieldObj = RT::CustomField->new( $session{'CurrentUser'} ); $m->callback(CallbackName => 'Initial', Pattern => \$Pattern, Results => \@results, ARGSRef => \%ARGS); unless ( $id ) { $title = loc("Create a CustomField"); $id = 'new'; } else { if ( $id eq 'new' ) { my ( $val, $msg ) = $CustomFieldObj->Create( Name => $Name, TypeComposite => $TypeComposite, LookupType => $LookupType, Description => $Description, Pattern => $Pattern, LinkValueTo => $LinkValueTo, IncludeContentForValue => $IncludeContentForValue, BasedOn => $BasedOn, Disabled => ($Enabled ? 0 : 1), EntryHint => $EntryHint, UniqueValues => $UniqueValues, ); if (!$val) { push @results, loc("Could not create CustomField: [_1]", $msg); $title = loc( 'Create a CustomField'); } else { push @results, loc("Object created"); $title = loc( 'Created CustomField [_1]', $CustomFieldObj->Name ); } } else { push @results, loc('No CustomField') unless $CustomFieldObj->Load( $id ); $title = loc( 'Editing CustomField [_1]', $CustomFieldObj->Name ); } } if ( $ARGS{'Update'} && $id ne 'new' ) { #we're asking about enabled on the web page but really care about disabled. $ARGS{'Disabled'} = $Enabled? 0 : 1; # make sure the unchecked checkbox still causes an update $ARGS{UniqueValues} ||= 0 if $SetUniqueValues; my @attribs = qw(Disabled Pattern Name TypeComposite LookupType Description LinkValueTo IncludeContentForValue EntryHint UniqueValues); push @results, UpdateRecordObject( AttributesRef => \@attribs, Object => $CustomFieldObj, ARGSRef => \%ARGS ); if ( ($ValuesClass||'RT::CustomFieldValues') ne $CustomFieldObj->ValuesClass ) { my $original = $CustomFieldObj->ValuesClass; my ($good, $msg) = $CustomFieldObj->SetValuesClass( $ValuesClass ); if ( $good ) { $msg = loc("[_1] changed from '[_2]' to '[_3]'", loc("Field values source"), $original, $ValuesClass ); } else { RT->Logger->debug("Unable to SetValuesClass to '$ValuesClass': $msg"); } push @results, $msg; } if ( ($CanonicalizeClass||'') ne ($CustomFieldObj->CanonicalizeClass||'') ) { my $original = $CustomFieldObj->CanonicalizeClass; my ($good, $msg) = $CustomFieldObj->SetCanonicalizeClass( $CanonicalizeClass ); if ( $good ) { # Improve message from class names to their friendly descriptions $original = $original->Description if $original && $original->require; $CanonicalizeClass = $CanonicalizeClass->Description if $CanonicalizeClass && $CanonicalizeClass->require; if (!$original) { $msg = loc("[_1] '[_2]' added", loc("Canonicalizer"), $CanonicalizeClass); } elsif (!$CanonicalizeClass) { $msg = loc("[_1] '[_2]' removed", loc("Canonicalizer"), $original); } else { $msg = loc("[_1] changed from '[_2]' to '[_3]'", loc("Canonicalizer"), $original, $CanonicalizeClass ); } } else { RT->Logger->debug("Unable to SetCanonicalizeClass to '$CanonicalizeClass': $msg"); } push @results, $msg; } # Set the render type if we have it, but unset it if the new type doesn't # support render types if ( $CustomFieldObj->HasRenderTypes($TypeComposite) ) { my $original = $CustomFieldObj->RenderType; if ( defined $RenderType and $RenderType ne $original ) { # It's changed! Let's update it. my ($good, $msg) = $CustomFieldObj->SetRenderType( $RenderType ); if ( $good ) { $msg = loc("[_1] changed from '[_2]' to '[_3]'", loc("Render Type"), $original, $RenderType ); } else { RT->Logger->debug("Unable to SetRenderType to '$RenderType': $msg"); } push @results, $msg; } } else { # Delete it if we no longer support render types $CustomFieldObj->SetRenderType( undef ); } if (($CustomFieldObj->BasedOn||'') ne ($BasedOn||'')) { my ($good, $msg) = $CustomFieldObj->SetBasedOn( $BasedOn ); push @results, $msg; } if ( $CustomFieldObj->SupportDefaultValues ) { my ($ret, $msg) = $CustomFieldObj->SetDefaultValues( Object => RT->System, Values => $ARGS{'Default-' . $CustomFieldObj->id . '-Value'} // $ARGS{'Default-' . $CustomFieldObj->id . '-Values'}, ); push @results, $msg; } my $paramtag = "CustomField-". $CustomFieldObj->Id ."-Value"; # Delete any fields that want to be deleted foreach my $key ( keys %ARGS ) { next unless $key =~ /^Delete-$paramtag-(\d+)$/; my ($val, $msg) = $CustomFieldObj->DeleteValue( $1 ); my $cf_delete = $ARGS{ $paramtag . "-$1-Name" }; $msg = loc("Custom field value [_1] deleted", $cf_delete) if $val; push (@results, $msg); } # Update any existing values my $values = $CustomFieldObj->ValuesObj; while ( my $value = $values->Next ) { foreach my $attr (qw(Name Description SortOrder Category)) { my $param = join("-", $paramtag, $value->Id, $attr); next unless exists $ARGS{$param}; $ARGS{$param} =~ s/^\s+//; $ARGS{$param} =~ s/\s+$//; next if ($value->$attr()||'') eq ($ARGS{$param}||''); my $mutator = "Set$attr"; my ($id, $msg) = $value->$mutator( $ARGS{$param} ); push (@results, $msg); } $m->callback(CallbackName => 'AfterUpdateCustomFieldValue', CustomFieldObj => $CustomFieldObj, CustomFieldValueObj => $value, ARGSRef => \%ARGS ); } # Add any new values if ( defined $ARGS{ $paramtag ."-new-Name" } && length $ARGS{ $paramtag ."-new-Name" } ) { my ($id, $msg) = $CustomFieldObj->AddValue( map { $ARGS{$paramtag."-new-$_"} =~ s/^\s+//; $ARGS{$paramtag."-new-$_"} =~ s/\s+$//; $_ => $ARGS{ $paramtag ."-new-$_" } } grep { defined $ARGS{ $paramtag ."-new-$_" } } qw/ Name Description SortOrder Category/ ); my $cf_add = $ARGS{ $paramtag.'-new-Name' }; $msg = loc("Custom field value [_1] added", $cf_add) if $id; push (@results, $msg); $added_cfv = 1 if $id; my $cfv = RT::CustomFieldValue->new( $session{CurrentUser} ); $cfv->Load($id); $m->callback(CallbackName => 'AfterCreateCustomFieldValue', CustomFieldObj => $CustomFieldObj, CustomFieldValueObj => $cfv, ARGSRef => \%ARGS ); } } if ( $CustomFieldObj->id && $CustomFieldObj->IsOnlyGlobal ) { my ( $ret, $msg ); my $object = $CustomFieldObj->RecordClassFromLookupType->new( $session{'CurrentUser'} ); if ( $CustomFieldObj->Disabled && $CustomFieldObj->IsGlobal ) { ( $ret, $msg ) = $CustomFieldObj->RemoveFromObject($object); } elsif ( !$CustomFieldObj->Disabled && !$CustomFieldObj->IsGlobal ) { ( $ret, $msg ) = $CustomFieldObj->AddToObject($object); } # successful msg("object created" or "object deleted ) is useless here push @results, $msg unless $ret; } $id = $CustomFieldObj->id if $CustomFieldObj->id; # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@results, Arguments => { id => $id, FocusAddValue => ($added_cfv ? 1 : 0) }, ) if $CustomFieldObj->id; my $EnabledChecked = qq[checked="checked"]; $EnabledChecked = '' if $CustomFieldObj->Disabled; my $UniqueValuesChecked = qq[checked="checked"]; $UniqueValuesChecked = '' if !$CustomFieldObj->UniqueValues; my @CFvalidations = ( '(?#Mandatory).', '(?#Digits)^[\d.]+$', '(?#Year)^[12]\d{3}$', ); $m->callback(CallbackName => 'ValidationPatterns', Values => \@CFvalidations); <%ARGS> $id => undef $TypeComposite => undef $LookupType => RT::Ticket->CustomFieldLookupType $MaxValues => undef $SortOrder => undef $Description => undef $Pattern => undef $Name => undef $SetEnabled => undef $Enabled => 0 $SetUniqueValues => undef $UniqueValues => 0 $ValuesClass => 'RT::CustomFieldValues' $CanonicalizeClass => undef $RenderType => undef $LinkValueTo => undef $IncludeContentForValue => undef $BasedOn => undef $EntryHint => undef rt-4.4.4/share/html/Admin/CustomFields/UserRights.html000644 000765 000024 00000005745 13437510132 023514 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Admin/Elements/EditRights, Context => $CustomFieldObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
    <%INIT> # Update the acls. my @results = ProcessACLs( \%ARGS ); if (!defined $id) { $m->comp("/Elements/Error", Why => loc("No Custom Field defined")); } my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'}); $CustomFieldObj->Load($id) || $m->comp("/Elements/Error", Why => loc("Couldn't load Custom Field #[_1]",$id)); my $title = loc('Modify user rights for custom field [_1]', $CustomFieldObj->Name); # Principal collections my @principals = GetPrincipalsMap($CustomFieldObj, qw(Users)); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Actions/Modify.html000644 000765 000024 00000006647 13437510132 021645 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Modify action #[_1]", $id) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/EditBasics, %ARGS, Action => $action, &>
    <& /Elements/Submit, Label => loc('Copy Action'), Name => 'Copy' &> <& /Elements/Submit, Label => loc('Save Changes'), Name => 'Update', Reset => 1 &>
    <%ARGS> $id => undef $Update => undef $Copy => undef <%INIT> my $action = RT::ScripAction->new( $session{'CurrentUser'} ); $action->Load( $id ); Abort(loc("Couldn't load action #[_1]", $id)) unless $action->id; if ( $action->Creator == RT->SystemUser->id ) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Admin/Actions/Display.html?id=$id" ); } my @results; if ( $Update ) { my @attribs = qw( Name Description ExecModule Argument ); @results = UpdateRecordObject( AttributesRef => \@attribs, Object => $action, ARGSRef => \%ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $action->id }, ); } elsif ( $Copy ) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Admin/Actions/Create.html?id=$id" ); } rt-4.4.4/share/html/Admin/Actions/autohandler000644 000765 000024 00000004413 13437510132 021746 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> return $m->call_next(%ARGS) if $session{'CurrentUser'}->UserObj->HasRight( Right => 'ShowScrips', Object => $RT::System, ) && $session{'CurrentUser'}->UserObj->HasRight( Right => 'ModifyScrips', Object => $RT::System, ); $m->clear_and_abort(403); rt-4.4.4/share/html/Admin/Actions/Create.html000644 000765 000024 00000006442 13437510132 021612 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => "Create a global action" &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/EditBasics, %ARGS, Action => $action, &>
    <& /Elements/Submit, Label => loc('Create'), Name => 'Create', &>
    <%ARGS> $Create => undef $id => undef <%INIT> my @results; if ( $id ) { my $action = RT::ScripAction->new( $session{'CurrentUser'} ); $action->Load( $id ); if ( $action ) { for my $item ( qw/Name Description ExecModule Argument/ ) { $ARGS{$item} ||= $action->$item; } } } my $action = RT::ScripAction->new( $session{'CurrentUser'} ); if ( $Create ) { my ($status, $msg) = $action->Create( Name => $ARGS{"Name"}, Description => $ARGS{"Description"}, ExecModule => $ARGS{"ExecModule"}, Argument => $ARGS{"Argument"}, ); MaybeRedirectForResults( Force => 1, Actions => [ $msg ], Path => 'Admin/Actions/Modify.html', Arguments => { id => $action->id }, ) if $status; push @results, $msg; } rt-4.4.4/share/html/Admin/Actions/Display.html000644 000765 000024 00000005263 13437510132 022014 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Display action #[_1]", $id) &> <& /Elements/Tabs &> <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/ShowBasics, %ARGS, Action => $action, &>
    <& /Elements/Submit, Label => loc('Copy Action'), Name => 'Copy' &>
    <%ARGS> $id => undef $Copy => undef <%INIT> if ( $Copy ) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Admin/Actions/Create.html?id=$id" ); } my $action = RT::ScripAction->new( $session{'CurrentUser'} ); $action->Load( $id ); Abort(loc("Couldn't load action #[_1]", $id)) unless $action->id; rt-4.4.4/share/html/Admin/Actions/Elements/000755 000765 000024 00000000000 13437510132 021267 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Actions/Elements/EditBasics000644 000765 000024 00000005402 13437510132 023225 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Name: Name || '' %>" /> <&|/l&>Description: Description || '' %>" /> <&|/l&>Action Module: ExecModule || ''%>" /> <&|/l&>Parameters to Pass: Argument || '' %>"/> <%ARGS> $Action rt-4.4.4/share/html/Admin/Actions/Elements/ShowBasics000644 000765 000024 00000005122 13437510132 023257 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Name: <% $ARGS{"Name"} || $Action->Name || '' %> <&|/l&>Description: <% $ARGS{"Description"} || $Action->Description || '' %> <&|/l&>Action Module: <% $ARGS{"ExecModule"} || $Action->ExecModule || ''%> <&|/l&>Parameters to Pass: <% $ARGS{"Argument"} || $Action->Argument || '' %> <%ARGS> $Action rt-4.4.4/share/html/Admin/Conditions/Modify.html000644 000765 000024 00000006753 13437510132 022354 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Modify condition #[_1]", $id) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/EditBasics, %ARGS, Condition => $condition, &>
    <& /Elements/Submit, Label => loc('Copy Condition'), Name => 'Copy' &> <& /Elements/Submit, Label => loc('Save Changes'), Name => 'Update', Reset => 1 &>
    <%ARGS> $id => undef $Update => undef $Copy => undef <%INIT> my $condition = RT::ScripCondition->new( $session{'CurrentUser'} ); $condition->Load( $id ); Abort(loc("Couldn't load condition #[_1]", $id)) unless $condition->id; if ( $condition->Creator == RT->SystemUser->id ) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Admin/Conditions/Display.html?id=$id" ); } my @results; if ( $Update ) { my @attribs = qw( Name Description ExecModule Argument ApplicableTransTypes ); @results = UpdateRecordObject( AttributesRef => \@attribs, Object => $condition, ARGSRef => \%ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $condition->id }, ); } elsif ( $Copy ) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Admin/Conditions/Create.html?id=$id" ); } rt-4.4.4/share/html/Admin/Conditions/autohandler000644 000765 000024 00000004413 13437510132 022457 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> return $m->call_next(%ARGS) if $session{'CurrentUser'}->UserObj->HasRight( Right => 'ShowScrips', Object => $RT::System, ) && $session{'CurrentUser'}->UserObj->HasRight( Right => 'ModifyScrips', Object => $RT::System, ); $m->clear_and_abort(403); rt-4.4.4/share/html/Admin/Conditions/Create.html000644 000765 000024 00000006651 13437510132 022325 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => "Create a global condition" &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/EditBasics, %ARGS, Condition => $condition, &>
    <& /Elements/Submit, Label => loc('Create'), Name => 'Create', &>
    <%ARGS> $Create => undef $id => undef <%INIT> my @results; if ( $id ) { my $condition = RT::ScripCondition->new( $session{'CurrentUser'} ); $condition->Load( $id ); if ( $condition ) { for my $item ( qw/Name Description ExecModule Argument ApplicableTransTypes/ ) { $ARGS{$item} ||= $condition->$item; } } } my $condition = RT::ScripCondition->new( $session{'CurrentUser'} ); if ( $Create ) { my ($status, $msg) = $condition->Create( Name => $ARGS{"Name"}, Description => $ARGS{"Description"}, ExecModule => $ARGS{"ExecModule"}, Argument => $ARGS{"Argument"}, ApplicableTransTypes => $ARGS{"ApplicableTransTypes"}, ); MaybeRedirectForResults( Force => 1, Actions => [ $msg ], Path => 'Admin/Conditions/Modify.html', Arguments => { id => $condition->id }, ) if $status; push @results, $msg; } rt-4.4.4/share/html/Admin/Conditions/Display.html000644 000765 000024 00000005317 13437510132 022525 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Display condition #[_1]", $id) &> <& /Elements/Tabs &> <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/ShowBasics, %ARGS, Condition => $condition, &>
    <& /Elements/Submit, Label => loc('Copy Condition'), Name => 'Copy' &>
    <%ARGS> $id => undef $Copy => undef <%INIT> if ( $Copy ) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Admin/Conditions/Create.html?id=$id" ); } my $condition = RT::ScripCondition->new( $session{'CurrentUser'} ); $condition->Load( $id ); Abort(loc("Couldn't load condition #[_1]", $id)) unless $condition->id; rt-4.4.4/share/html/Admin/Conditions/Elements/000755 000765 000024 00000000000 13437510132 022000 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Conditions/Elements/EditBasics000644 000765 000024 00000006011 13437510132 023733 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Name: Name || '' %>" /> <&|/l&>Description: Description || '' %>" /> <&|/l&>Condition Module: ExecModule || ''%>" /> <&|/l&>Parameters to Pass: Argument || '' %>"/> <&|/l&>Applicable Transaction Types: ApplicableTransTypes || '' %>" /> <%ARGS> $Condition rt-4.4.4/share/html/Admin/Conditions/Elements/ShowBasics000644 000765 000024 00000005441 13437510132 023774 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Name: <% $ARGS{"Name"} || $Condition->Name || '' %> <&|/l&>Description: <% $ARGS{"Description"} || $Condition->Description || '' %> <&|/l&>Condition Module: <% $ARGS{"ExecModule"} || $Condition->ExecModule || ''%> <&|/l&>Parameters to Pass: <% $ARGS{"Argument"} || $Condition->Argument || '' %> <&|/l&>Applicable Transaction Types: <% $ARGS{"ApplicableTransTypes"} || $Condition->ApplicableTransTypes || '' %> <%ARGS> $Condition rt-4.4.4/share/html/Admin/Users/DashboardsInMenu.html000644 000765 000024 00000010114 13437510132 023265 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &>

    % for my $pane (@panes) { <&|/Widgets/TitleBox, title => loc('Dashboards in menu'), bodyclass => "" &> <& /Widgets/SelectionBox:show, self => $pane &>
    % } <%init> my @actions; my $UserObj = RT::User->new($session{'CurrentUser'}); $UserObj->Load($id) || Abort("Couldn't load user '" . ($id || '') . "'"); my $title = loc("Dashboards in menu for the user [_1]", $UserObj->Name); if ($ARGS{Reset}) { my ($ok, $msg) = $UserObj->SetPreferences('DashboardsInMenu', {}); push @actions, $ok ? loc('Preferences saved for user [_1].', $UserObj->Name) : $msg; } my ($default_dashboards) = RT::System->new($session{'CurrentUser'})->Attributes->Named('DashboardsInMenu'); my $user = RT::CurrentUser->new( $session{CurrentUser} ); $user->Load( $UserObj->id ); my @dashboards = map { [ $_->id, $_->Name ] } $m->comp( "/Dashboards/Elements/ListOfDashboards", User => $user, IncludeSuperuserGroups => 0 ); my $current_pref = $UserObj->Preferences( 'DashboardsInMenu', $default_dashboards ? $default_dashboards->Content : () ); my $current_portlets = $current_pref && $current_pref->{dashboards} ? $current_pref->{dashboards} : []; my @panes = $m->comp( '/Admin/Elements/ConfigureDashboardsInMenu', Action => "DashboardsInMenu.html?id=$id", panes => ['dashboards_in_menu'], items => \@dashboards, current_portlets => $current_portlets, OnSave => sub { my ($conf) = @_; my ( $ok, $msg ) = $UserObj->SetPreferences( 'DashboardsInMenu', $conf ); push @actions, $ok ? loc('Preferences saved for dashboards in menu.') : $msg; } ); $m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_ ) for @panes; <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Users/index.html000644 000765 000024 00000016671 13437510132 021224 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Select a user') &> <& /Elements/Tabs &>

    <% $caption %>

    % foreach my $field( qw(Format Rows Page Order OrderBy) ) { % next unless defined $ARGS{ $field } && length $ARGS{ $field }; % } <&|/l&>Go to user
    % foreach my $field( qw(Format Rows Page Order OrderBy) ) { % next unless defined $ARGS{ $field } && length $ARGS{ $field }; % }
    <&|/l&>Find all users whose <& /Elements/SelectUsers, %ARGS, Fields => \@fields &>
    <&|/l&>And all users whose <& /Elements/SelectUsers, %ARGS, Fields => \@fields, SelectFieldName => 'UserField2', SelectOpName => 'UserOp2', InputStringName => 'UserString2', UserField => $UserField2, UserOp => $UserOp2, UserString => $UserString2, &>
    <&|/l&>And all users whose <& /Elements/SelectUsers, %ARGS, Fields => \@fields, SelectFieldName => 'UserField3', SelectOpName => 'UserOp3', InputStringName => 'UserString3', UserField => $UserField3, UserOp => $UserOp3, UserString => $UserString3, &>
    />
    % unless ( $users->Count ) { <&|/l&>No users matching search criteria found. % } else {

    <&|/l&>Select a user:

    <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', Rows => $Rows, %ARGS, Format => $Format, Collection => $users, AllowSorting => 1, PassArguments => [qw(Format Rows Page Order OrderBy UserString UserOp UserField UserString2 UserOp2 UserField2 UserString3 UserOp3 UserField3 IdLike EmailLike FindDisabledUsers)], &> % } <%INIT> my $caption; my $users = RT::Users->new( $session{'CurrentUser'} ); $users->FindAllRows if $FindDisabledUsers; $caption = loc("Users matching search criteria"); my @users_queries = (); push @users_queries, { field => $UserField, op => $UserOp, string => $UserString } if length $UserString; push @users_queries, { field => $UserField2, op => $UserOp2, string => $UserString2 } if length $UserString2; push @users_queries, { field => $UserField3, op => $UserOp3, string => $UserString3 } if length $UserString3; if ( scalar @users_queries ) { foreach my $user ( @users_queries ) { if ( $user->{'field'} =~ /^CustomField-(\d+)/ ) { $users->LimitCustomField( CUSTOMFIELD => $1, OPERATOR => $user->{'op'}, VALUE => $user->{'string'}, ENTRYAGGREGATOR => 'AND', ); } else { $users->Limit( FIELD => $user->{'field'}, OPERATOR => $user->{'op'}, VALUE => $user->{'string'}, ENTRYAGGREGATOR => 'AND', ); } } RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Admin/Users/Modify.html?id=".$users->First->id) if $users->Count == 1; } else { $caption = loc("Privileged users"); $users->LimitToPrivileged; } $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Users'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Users'} || 50; # Build up the list of fields to display for searching my $i = 0; my %sorted = map { $_ => $i++ } qw( Name EmailAddress RealName Organization NickName WorkPhone HomePhone MobilePhone PagerPhone Address1 Address2 City State Zip Country Timezone Lang Gecos SMIMECertificate Comments ); my @attrs = sort { $sorted{$a} <=> $sorted{$b} } grep { !/(?:^id$|ContactInfo|AuthToken|^Last|^Creat(?:ed|or)$|^Signature$)/ } RT::User->ReadableAttributes; my @fields; for my $name (@attrs) { my $label = $m->comp( '/Elements/ColumnMap', Class => 'RT__User', Name => $name, Attr => 'title' ); push @fields, [ $name, $label || $name ]; } <%ARGS> $Format => undef, $UserString => undef $UserOp => undef $UserField => 'Name' $UserString2 => undef $UserOp2 => undef $UserField2 => 'Name' $UserString3 => undef $UserOp3 => undef $UserField3 => 'Name' $IdLike => undef $EmailLike => undef $FindDisabledUsers => 0 rt-4.4.4/share/html/Admin/Users/Modify.html000644 000765 000024 00000027251 13437510132 021340 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    %if ($Create) { % } else { % }
    <&| /Widgets/TitleBox, title => loc('Identity'), class => 'user-info-identity' &> <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Identity', InTable => 1 &>
    <&|/l&>Username: <&|/l&>(required)
    <&|/l&>Email:
    <&|/l&>Real Name:
    <&|/l&>Nickname:
    <&|/l&>Unix login:
    <&|/l&>Language: <& /Elements/SelectLang, Name => 'Lang', Default => $UserObj->Lang//$ARGS{Lang} &>
    <&|/l&>Timezone: <& /Elements/SelectTimezone, Name => 'Timezone', Default => $UserObj->Timezone &>
    <&|/l&>Extra info:

    <&| /Widgets/TitleBox, title => loc('Access control'), class => 'user-info-access-control' &> Id && $UserObj->Disabled) ? '' : 'checked="checked"' |n%> />
    % my $PrivilegedChecked = ((!$Create && $UserObj->Privileged()) or (!$UserObj->Id and $ARGS{Privileged})) ? 'checked="checked"' : ''; />
    <& /Elements/EditPassword, User => $UserObj, Name => [qw(CurrentPass Pass1 Pass2)], &> <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Access control' &> <&| /Widgets/TitleBox, title => loc('Comments about this user'), class => 'user-info-comments' &> % $m->callback( %ARGS, CallbackName => 'LeftColumnBottom', UserObj => $UserObj );
    <&| /Widgets/TitleBox, title => loc('Location'), class => 'user-info-location' &> <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Location', InTable => 1 &>
    <&|/l&>Organization:
    <&|/l&>Address1:
    <&|/l&>Address2:
    <&|/l&>City:
    <&|/l&>State:
    <&|/l&>Zip:
    <&|/l&>Country:

    <&| /Widgets/TitleBox, title => loc('Phone numbers'), class => 'user-info-phones' &> <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Phones', InTable => 1 &>
    <&|/l&>Residence:
    <&|/l&>Work:
    <&|/l&>Mobile:
    <&|/l&>Pager:

    <& /Elements/EditCustomFieldCustomGroupings, Object => $UserObj &> % unless ( $Create ) { <& /User/Elements/RelatedData, UserObj => $UserObj &> % } % $m->callback( %ARGS, CallbackName => 'RightColumnBottom', UserObj => $UserObj );
    %if (!$Create && $UserObj->Privileged) {
    <&| /Widgets/TitleBox, title => loc('Signature'), class => 'user-info-signature' &> % }
    % if ( $Create ) { <& /Elements/Submit, Label => loc('Create') &> % } else { <& /Elements/Submit, Label => loc('Save Changes') &> % }
    % if ( $UserObj->Id ) { <& /Elements/Modal, ModalId => "user-info-modal", Method => 'POST', Action => RT->Config->Get('WebPath') . '/Admin/Users/Modify.html', Fields => [ { Label => loc("Are you sure you want to anonymize user: [_1]?", $UserObj->Name) }, { Input => 'Hidden', Value => $UserObj->Id, Name => 'id' }, { Input => 'Hidden', Value => 1, Name => 'Anonymize' }, { Label => loc("Check to clear user custom fields") . ":", Input => 'checkbox', Class => 'checkbox', Name => 'clear_customfields', Value => 'On', }, ] &> % } <%INIT> my $UserObj = RT::User->new($session{'CurrentUser'}); my ($title, @results); my ($val, $msg); $ARGS{Privileged} = $ARGS{Privileged} ? 1 : 0; delete $ARGS{Privileged} unless $ARGS{SetPrivileged}; $ARGS{Disabled} = $ARGS{Enabled} ? 0 : 1; delete $ARGS{Disabled} unless $ARGS{SetEnabled}; my @fields = qw(Name Comments Signature EmailAddress FreeformContactInfo Organization RealName NickName Lang Gecos HomePhone WorkPhone MobilePhone PagerPhone Address1 Address2 City State Zip Country Timezone ); if ($Create) { $title = loc("Create a new user"); } elsif ( defined $id && $id eq 'new') { $m->callback( CallbackName => 'BeforeCreate', ARGSRef => \%ARGS, Fields => \@fields, Results => \@results ); ( $val, $msg ) = $UserObj->Create( (map {($_ => $ARGS{$_})} @fields), Privileged => $ARGS{'Privileged'}, Disabled => $ARGS{'Disabled'}, ); if ($val) { push @results, $msg; push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $UserObj ); $title = loc("Modify the user [_1]", $UserObj->Name); } else { push @results, loc('User could not be created: [_1]', $msg); $title = loc("Create a new user"); $Create = 1; } } else { $UserObj->Load($id) || $UserObj->Load($ARGS{Name}) || Abort("Couldn't load user '" . ( $ARGS{Name} || '') . "'"); $title = loc("Modify the user [_1]", $UserObj->Name); $m->callback( %ARGS, CallbackName => 'BeforeUpdate', User => $UserObj, ARGSRef => \%ARGS, Results => \@results ); my @fieldresults = UpdateRecordObject ( AttributesRef => \@fields, Object => $UserObj, ARGSRef => \%ARGS ); push (@results,@fieldresults); push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $UserObj ); if ( defined $ARGS{Privileged} and $ARGS{Privileged} != ($UserObj->Privileged || 0) ) { my ($code, $msg) = $UserObj->SetPrivileged($ARGS{Privileged}); push @results, loc('Privileged status: [_1]', loc_fuzzy($msg)); } if ( defined $ARGS{Disabled} and $ARGS{Disabled} != $UserObj->Disabled ) { my ($code, $msg) = $UserObj->SetDisabled($ARGS{Disabled}); push @results, $msg; } } if ( $ARGS{'Anonymize'} and $UserObj->Id ) { my ($ret, $msg) = $UserObj->AnonymizeUser(ClearCustomFields => $ARGS{'clear_customfields'}); push @results, $msg; } if ( $UserObj->Id ) { # Deal with Password field my ($status, $msg) = $UserObj->SafeSetPassword( Current => $CurrentPass, New => $Pass1, Confirmation => $Pass2, ); push @results, $msg; if ( $id eq 'new' && !$status ) { push @results, loc("A password was not set, so user won't be able to login."); } } # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@results, Arguments => { id => $UserObj->Id }, ) if $UserObj->Id; <%ARGS> $id => undef $CurrentPass => undef $Pass1 => undef $Pass2 => undef $Create=> undef rt-4.4.4/share/html/Admin/Users/MyRT.html000644 000765 000024 00000011164 13437510132 020740 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &>

    % for my $pane (@panes) { <&|/Widgets/TitleBox, title => loc('RT at a glance').': '.loc($pane->{Name}), bodyclass => "" &> <& /Widgets/SelectionBox:show, self => $pane &>
    % } <%init> my @actions; my $UserObj = RT::User->new($session{'CurrentUser'}); $UserObj->Load($id) || Abort("Couldn't load user '" . ($id || '') . "'"); my $title = loc("RT at a glance for the user [_1]", $UserObj->Name); if ($ARGS{Reset}) { my ($ok, $msg) = $UserObj->SetPreferences('HomepageSettings', {}); push @actions, $ok ? loc('Preferences saved for user [_1].', $UserObj->Name) : $msg; } my ($default_portlets) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings'); my $portlets = $UserObj->Preferences('HomepageSettings', $default_portlets ? $default_portlets->Content : {}); my %allowed_components = map {$_ => 1} @{ RT->Config->Get('HomepageComponents') }; my @items; push @items, map {["component-$_", loc($_)]} sort keys %allowed_components; my $sys = RT::System->new( RT::CurrentUser->new($UserObj) ); my @objs = ($sys); push @objs, RT::SavedSearch->new( RT::CurrentUser->new( $UserObj ) )->ObjectsForLoading; for my $object (@objs) { for ($m->comp("/Search/Elements/SearchesForObject", Object => $object)) { my ($desc, $loc_desc, $search) = @$_; my $SearchType = $search->Content->{'SearchType'} || 'Ticket'; if ($object eq $sys && $SearchType eq 'Ticket') { push @items, ["system-$desc", $loc_desc]; } else { my $oid = ref($object).'-'.$object->Id.'-SavedSearch-'.$search->Id; my $type = ($SearchType eq 'Ticket') ? 'Saved Search' # loc : $SearchType; push @items, ["saved-$oid", loc($type).": $loc_desc"]; } } } my @panes = $m->comp( '/Admin/Elements/ConfigureMyRT', panes => ['body', 'sidebar'], Action => "MyRT.html?id=$id", items => \@items, current_portlets => $portlets, OnSave => sub { my ( $conf, $pane ) = @_; my ($ok, $msg) = $UserObj->SetPreferences( 'HomepageSettings', $conf ); push @actions, $ok ? loc('Preferences [_1] for user [_2].', $pane, $UserObj->Name) : $msg; } ); $m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_ ) for @panes; <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Users/Keys.html000644 000765 000024 00000011025 13437510132 021014 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("[_1]'s encryption keys",$UserObj->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> % if ( $email ) { <& /Admin/Elements/ShowKeyInfo, EmailAddress => $email &> % } else {

    <% loc("User has empty email address") %>

    % }
    % if (RT::Crypt->UseForOutgoing eq 'GnuPG') { <&|/Widgets/TitleBox, title => loc('GnuPG private key') &> <& /Widgets/Form/Select, Name => 'PrivateKey', Description => loc('Private Key'), Values => \@potential_keys, CurrentValue => $UserObj->PrivateKey, DefaultLabel => loc('No private key'), &> % } % if (RT::Crypt->UseForOutgoing eq 'SMIME') { <&|/Widgets/TitleBox, title => loc('SMIME Certificate') &> % } <& /Elements/Submit, Name => 'Update', Label => loc('Save Changes') &>
    <%ARGS> $id => undef $Update => undef <%INIT> return unless RT->Config->Get('Crypt')->{'Enable'}; my @results; my $UserObj = RT::User->new( $session{'CurrentUser'} ); $UserObj->Load( $id ); unless ( $UserObj->id ) { Abort( loc("Couldn't load user #[_1]", $id) ); } $id = $ARGS{'id'} = $UserObj->id; my @potential_keys; my $email = $UserObj->EmailAddress; if (RT::Crypt->UseForOutgoing eq 'GnuPG') { my %keys_meta = RT::Crypt->GetKeysForSigning( Signer => $email, Protocol => 'GnuPG' ); @potential_keys = map $_->{'Key'}, @{ $keys_meta{'info'} || [] }; $ARGS{'PrivateKey'} = $m->comp('/Widgets/Form/Select:Process', Name => 'PrivateKey', Arguments => \%ARGS, Default => 1, ); if ( $Update ) { if (not $ARGS{'PrivateKey'} or grep {$_ eq $ARGS{'PrivateKey'}} @potential_keys) { if (($ARGS{'PrivateKey'}||'') ne ($UserObj->PrivateKey||'')) { my ($status, $msg) = $UserObj->SetPrivateKey( $ARGS{'PrivateKey'} ); push @results, $msg; } } else { push @results, loc("Invalid key [_1] for address '[_2]'", $ARGS{'PrivateKey'}, $email); } } } if (RT::Crypt->UseForOutgoing eq 'SMIME') { if ( $Update and ($ARGS{'SMIMECertificate'}||'') ne ($UserObj->SMIMECertificate||'') ) { my ($status, $msg) = $UserObj->SetSMIMECertificate( $ARGS{'SMIMECertificate'} ); push @results, $msg; } } rt-4.4.4/share/html/Admin/Users/CustomFields.html000644 000765 000024 00000005042 13437510132 022504 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, Object => $Object, ObjectType => 'RT::User' &> <%INIT> my $Object = RT::User->new( $session{'CurrentUser'} ); $Object->Load($id) || Abort( loc( "Couldn't load object [_1]", $id ) ); my $FriendlySubTypes = RT::CustomField->new( $session{'CurrentUser'} ) ->FriendlyLookupType( $Object->CustomFieldLookupType ); my $title = loc( 'Edit Custom Fields for [_1]', $Object->Name ); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Users/Memberships.html000644 000765 000024 00000004037 13437510132 022364 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/MembershipsPage, %ARGS &> rt-4.4.4/share/html/Admin/Users/History.html000644 000765 000024 00000004604 13437510132 021547 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ShowHistory, Object => $UserObj, ShowDisplayModes => 0, DisplayPath => 'History.html', &> <%INIT> my $UserObj = RT::User->new($session{'CurrentUser'}); $UserObj->Load($id) || Abort("Couldn't load user '$id'"); my $title = loc("History of the user [_1]", $UserObj->Name); <%ARGS> $id => '' rt-4.4.4/share/html/Admin/Elements/EditCustomField000644 000765 000024 00000012576 13437510132 022651 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@results &>
    <&|/l&>Name:
    <&|/l&>Description:
    <&|/l&>Type: <& /Admin/Elements/SelectCustomFieldType, Name => "Type", Default => $CustomFieldObj->Type &>
    />

    % if ($CustomFieldObj->Id and $CustomFieldObj->Type =~ /Select/) {

    <&|/l&>Values

    <& /Admin/Elements/EditCustomFieldValues, CustomField => $CustomFieldObj &> <& /Admin/Elements/AddCustomFieldValue, CustomField => $CustomFieldObj &> % } <&/Elements/Submit, Label => loc('Create') &>
    <%INIT> my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'}); my $EnabledChecked = 'checked="checked"'; my (@results); if (! $CustomField ) { $title = loc("Create a CustomField"); $id = 'new'; } else { if ($CustomField eq 'new') { my ($val, $msg) = $CustomFieldObj->Create(Queue => $Queue, Name => $Name, Type => $Type, Description => $Description, ); # if there is an error, then abort. But since at this point there's # stuff already printed, clear it out. # (This only works in conjunction with temporarily turning autoflush # off in the files that use this component.) unless ($val) { $m->clear_buffer; Abort(loc("Could not create CustomField: [_1]", $msg), SuppressHeader => 1); } push @results, $msg; $CustomFieldObj->SetSortOrder($CustomFieldObj->id); $title = loc('Created CustomField [_1]', $CustomFieldObj->Name()); } else { $CustomFieldObj->Load($CustomField) || Abort(loc('No CustomField'), SuppressHeader => 1); $title = loc('Editing CustomField [_1]', $CustomFieldObj->Name()); my @aresults = ProcessCustomFieldUpdates ( CustomFieldObj => $CustomFieldObj, ARGSRef => \%ARGS ); push @results, @aresults; } $id = $CustomFieldObj->id; #we're asking about enabled on the web page but really care about disabled. my $Disabled = ($Enabled ? 0 : 1); if ( ($SetEnabled) and ( $Disabled != $CustomFieldObj->Disabled) ) { my ($code, $msg) = $CustomFieldObj->SetDisabled($Disabled); push @results, loc('Enabled status [_1]', loc_fuzzy($msg)); } if ($CustomFieldObj->Disabled()) { $EnabledChecked =""; } } <%ARGS> $id => undef $title => undef $Queue => undef $CustomField => undef $Type => undef $Description => undef $Name => undef $SetEnabled => undef $Enabled => undef rt-4.4.4/share/html/Admin/Elements/SelectCustomField000644 000765 000024 00000005523 13437510132 023175 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $CustomFields = RT::CustomFields->new($session{'CurrentUser'}); $CustomFields->UnLimit; $CustomFields->LimitToLookupType( $LookupType ) if $LookupType; $CustomFields->OrderByCols( { FIELD => 'LookupType' }, { FIELD => 'Name' } ); $Default = $Default->id || 0 if ref $Default; <%ARGS> $None => 1 $Name => 'BasedOn' $Default => 0 $LookupType => 'RT::Queue-RT::Ticket' $OnlySelectionType => 1 $Not => 0 rt-4.4.4/share/html/Admin/Elements/SelectCustomFieldRenderType000644 000765 000024 00000004657 13437510132 025206 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $cf = RT::CustomField->new($session{'CurrentUser'}); $Default ||= $cf->DefaultRenderType($TypeComposite); my @types = $cf->RenderTypes($TypeComposite); <%ARGS> $Default => undef $TypeComposite => 'Select-0' $Name => 'RenderType' $BasedOn => 0 rt-4.4.4/share/html/Admin/Elements/ConfigureMyRT000644 000765 000024 00000005427 13437510132 022317 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Action $OnSave $items $panes $current_portlets $ReadOnly => 0 <%init> my $portlets = $current_portlets; my @panes; for my $pane (@$panes) { push @panes, $m->comp( '/Widgets/SelectionBox:new', Action => $Action, Name => $pane, Available => $items, AutoSave => 1, ReadOnly => $ReadOnly, OnSubmit => sub { my $sel = shift; $portlets->{$pane} = [ map { m/(\w+)-(.*)$/; { type => $1, name => $2 } } @{ $sel->{Current} } ]; $OnSave->( $portlets, $pane ); }, Selected => [ map { join( '-', @{$_}{qw/type name/} ) } @{ $portlets->{$pane} } ] ); } return @panes; rt-4.4.4/share/html/Admin/Elements/Portal000644 000765 000024 00000004313 13437510132 021054 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&| /Widgets/TitleBox, title => loc('RT Portal') &>
    rt-4.4.4/share/html/Admin/Elements/EditRights000644 000765 000024 00000023463 13437510132 021670 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Context $Principals $AddPrincipal => undef <%init> # Let callbacks get at principals and context before we do anything with them $m->callback( Principals => $Principals, Context => $Context ); # Try to detect if we want to include an add user/group box unless ( $AddPrincipal ) { my $last = $Principals->[-1]; if ( $last->[0] =~ /Groups/i ) { $AddPrincipal = 'group'; # loc } elsif ( $last->[0] =~ /Users/i ) { $AddPrincipal = 'user'; # loc } } my $anchor = $DECODED_ARGS->{Anchor} || ''; if ($anchor =~ /AddPrincipal/) { for my $type ("group", "user") { my $record = _ParseACLNewPrincipal($DECODED_ARGS, $type) or next; if ($record->PrincipalId) { $anchor = "#acl-" . $record->PrincipalId; last; } } } %# Principals is an array of arrays, where the inner arrays are like: %# [ 'Category name' => $CollectionObj => 'DisplayColumn' => 1 ] %# The last value is a boolean determining if the value of DisplayColumn %# should be loc()-ed before display.
    <%perl> # Now generate our rights panels for each principal for my $category (@$Principals) { my ($name, $collection, $col, $loc) = @$category; while ( my $obj = $collection->Next ) { my $display = ref $col eq 'CODE' ? $col->($obj) : $obj->$col; my $id = "acl-" . $obj->PrincipalId;

    <% $loc ? loc($display) : $display %> <%perl> if ($obj->isa('RT::Group') and $obj->Domain eq 'UserDefined') { my $subgroups = $obj->GroupMembersObj( Recursively => 1 ); $subgroups->LimitToUserDefinedGroups; $subgroups->Limit( FIELD => 'Name', OPERATOR => '!=', VALUE => $obj->Name, CASESENSITIVE => 0 ); if ( $subgroups->Count ) { my $inc = join ", ", map $_->Name, @{$subgroups->ItemsArrayRef}; <&|/l, $inc &>includes [_1]\ <%perl> } }

    <& EditRightsCategoryTabs, Context => $Context, Principal => $obj, id => $id &>
    <%perl> } } if ( $AddPrincipal ) {

    <&|/l, loc($AddPrincipal) &>Add rights for this [_1]

    <& EditRightsCategoryTabs, Context => $Context, id => 'acl-AddPrincipal' &>
    % }
    rt-4.4.4/share/html/Admin/Elements/EditActions000644 000765 000024 00000010247 13437510132 022024 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@actions &>

    <&|/l&>System Actions

    % if ( $system_actions->Count ){ <& /Elements/CollectionList, %common_applied_args, DisplayFormat => $Format, Collection => $system_actions &> % } else {

    <&|/l&>Click Create to add a new custom action.

    % }

    <&|/l&>Custom Actions

    % if ( $actions->Count ){ <& /Elements/CollectionList, %common_applied_args, Collection => $actions &> % } else {

    <&|/l&>Click Create to add a new custom action.

    % } <& /Elements/Submit, Name => 'RemoveActions', Caption => loc("Delete selected actions"), Label => loc("Delete"), &>
    <%init> unless ( $session{CurrentUser}->HasRight( Object => RT->System, Right => 'ShowScrips' ) && $session{CurrentUser}->HasRight( Object => RT->System, Right => 'ModifyScrips' ) ) { Abort( loc('You must have ShowScrips/ModifyScrips rights to work with actions.') ); } my (@actions); my $system_actions = RT::ScripActions->new($session{'CurrentUser'}); $system_actions->Limit( FIELD => 'Creator', VALUE => RT->SystemUser->id ); my $actions = RT::ScripActions->new($session{'CurrentUser'}); $actions->Limit( FIELD => 'Creator', VALUE => RT->SystemUser->id, OPERATOR => '!=' ); my $Format = RT->Config->Get('AdminSearchResultFormat')->{'Actions'} || q{'__id__/TITLE:#'} . q{,'__Name__/TITLE:Name'} . q{,'__Description__','__UsedBy__}; my $DisplayFormat = "__CheckBox.{RemoveAction}__, $Format"; my %common_applied_args = ( %ARGS, Format => $Format, DisplayFormat => $DisplayFormat, Rows => 0, Page => 1, AllowSorting => 1, ); if ( $RemoveActions ) { foreach my $id ( @RemoveAction ) { my $action = RT::ScripAction->new( $session{'CurrentUser'} ); $action->Load( $id ); next unless $action->id; my ($status, $msg) = $action->Delete(); push @actions, $msg; } } <%ARGS> @RemoveAction => () $RemoveActions => undef rt-4.4.4/share/html/Admin/Elements/EditCustomFields000644 000765 000024 00000014433 13437510132 023026 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@results &>

    <&|/l&>Selected Custom Fields

    <& /Elements/CollectionList, %ARGS, Collection => $added_cfs, Rows => 0, Page => 1, Format => $format, DisplayFormat => $display_format, AllowSorting => 0, ShowEmpty => 0, PassArguments => [ qw(Page Order OrderBy), qw(id ObjectType SubType), ], &>

    <&|/l&>Unselected Custom Fields

    <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', %ARGS, Collection => $not_added_cfs, Rows => $rows, Format => $format, DisplayFormat => "'__CheckBox.{AddCustomField}__',". $format, AllowSorting => 1, ShowEmpty => 0, PassArguments => [ qw(Page Order OrderBy), qw(id ObjectType SubType), ], &> <& /Elements/Submit, Name => 'UpdateCFs' &>
    <%INIT> my $id = $Object->Id || 0; if ($id and !$Object->CurrentUserHasRight('AssignCustomFields')) { $m->out('

    ', loc('(No custom fields)'), '

    '); return; } my @results; my $lookup = $ObjectType; $lookup .= "-$SubType" if $SubType; ## deal with moving sortorder of custom fields if ( $MoveCustomFieldUp ) { { my $record = RT::ObjectCustomField->new( $session{'CurrentUser'} ); $record->LoadByCols( ObjectId => $id, CustomField => $MoveCustomFieldUp ); unless ( $record->id ) { push @results, loc("Custom field #[_1] is not applied to this object", $MoveCustomFieldUp); last; } my ($status, $msg) = $record->MoveUp; push @results, $msg; } } if ( $MoveCustomFieldDown ) { { my $record = RT::ObjectCustomField->new( $session{'CurrentUser'} ); $record->LoadByCols( ObjectId => $id, CustomField => $MoveCustomFieldDown ); unless ( $record->id ) { push @results, loc("Custom field #[_1] is not applied to this object", $MoveCustomFieldDown); last; } my ($status, $msg) = $record->MoveDown; push @results, $msg; } } if ( $UpdateCFs ) { foreach my $cf_id ( @AddCustomField ) { my $CF = RT::CustomField->new( $session{'CurrentUser'} ); $CF->SetContextObject( $Object ); $CF->Load( $cf_id ); unless ( $CF->id ) { push @results, loc("Couldn't load CustomField #[_1]", $cf_id); next; } my ($status, $msg) = $CF->AddToObject( $Object ); push @results, $msg; } foreach my $cf_id ( @RemoveCustomField ) { my $CF = RT::CustomField->new( $session{'CurrentUser'} ); $CF->SetContextObject( $Object ); $CF->Load( $cf_id ); unless ( $CF->id ) { push @results, loc("Couldn't load CustomField #[_1]", $cf_id); next; } my ($status, $msg) = $CF->RemoveFromObject( $Object ); push @results, $msg; } } $m->callback(CallbackName => 'UpdateExtraFields', Results => \@results, Object => $Object, %ARGS); my $added_cfs = RT::CustomFields->new( $session{'CurrentUser'} ); $added_cfs->LimitToLookupType($lookup); $added_cfs->LimitToGlobalOrObjectId($id); $added_cfs->SetContextObject( $Object ); $added_cfs->ApplySortOrder; my $not_added_cfs = RT::CustomFields->new( $session{'CurrentUser'} ); $not_added_cfs->LimitToLookupType($lookup); $not_added_cfs->LimitToNotAdded( $id ? ($id, 0) : (0) ); my $format = RT->Config->Get('AdminSearchResultFormat')->{'CustomFields'}; my $rows = RT->Config->Get('AdminSearchResultRows')->{'CustomFields'} || 50; my $display_format = $id ? ("'__RemoveCheckBox.{$id}__',". $format .", '__MoveCF.{$id}__'") : ("'__CheckBox.{RemoveCustomField}__',". $format .", '__MoveCF.{$id}__'"); $m->callback(CallbackName => 'EditDisplayFormat', DisplayFormat => \$display_format, id => $id); <%ARGS> $Object $ObjectType $SubType => '' $UpdateCFs => undef @RemoveCustomField => () @AddCustomField => () $MoveCustomFieldUp => undef $MoveCustomFieldDown => undef rt-4.4.4/share/html/Admin/Elements/LoggingSummary000644 000765 000024 00000007321 13437510132 022561 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my @summary; if (my $level = RT->Config->Get("LogToSTDERR")) { push @summary, loc("Logging [_1] level messages and higher to STDERR, which will usually end up in your webserver's error logs.", $level); } if (my $level = RT->Config->Get("LogToFile") and my $logger = RT->Logger->output("file")) { # Using the Log::Dispatch::File object let's us avoid duplicating # filename logic from RT::InitLogging() push @summary, loc("Logging [_1] level messages and higher to [_2]", $level, $logger->{filename}); } if (my $level = RT->Config->Get("LogToSyslog")) { my %conf = RT->Config->Get("LogToSyslogConf"); my $conf = join ", ", map { "$_=$conf{$_}" } keys %conf; if ($conf) { push @summary, loc("Logging [_1] level messages and higher to syslog with the following configuration: [_2]", $level, $conf); } else { push @summary, loc("Logging [_1] level messages and higher to syslog.", $level); } } if (my $level = RT->Config->Get("LogStackTraces")) { push @summary, loc("Stack traces are added to message levels [_1] and higher.", $level); } else { push @summary, loc("Stack traces are not logged."); } if (my $level = RT->Config->Get("StatementLog")) { my $url = RT->Config->Get("WebPath") . "/Admin/Tools/Queries.html"; push @summary, \loc("SQL queries are logged at the [_1] level and also available in the [_2]query tool[_3].", $m->interp->apply_escapes($level, 'h'), qq[], ''); } else { push @summary, loc("SQL queries are not logged."); }

    <&|/l&>RT's logging configuration is summarized below:

      % for my $msg (@summary) {
    • <% ref($msg) ? $$msg : $m->interp->apply_escapes($msg, 'h') |n %>
    • % }

    rt-4.4.4/share/html/Admin/Elements/EditConditions000644 000765 000024 00000010404 13437510132 022530 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@actions &>

    <&|/l&>System Conditions

    % if ( $system_conditions->Count ){ <& /Elements/CollectionList, %common_applied_args, DisplayFormat => $Format, Collection => $system_conditions &> % } else {

    <&|/l&>Click Create to add a new custom condition.

    % }

    <&|/l&>Custom Conditions

    % if ( $conditions->Count ){ <& /Elements/CollectionList, %common_applied_args, Collection => $conditions &> % } else {

    <&|/l&>Click Create to add a new custom condition.

    % } <& /Elements/Submit, Name => 'RemoveConditions', Caption => loc("Delete selected conditions"), Label => loc("Delete"), &>
    <%init> unless ( $session{CurrentUser}->HasRight( Object => RT->System, Right => 'ShowScrips' ) && $session{CurrentUser}->HasRight( Object => RT->System, Right => 'ModifyScrips' ) ) { Abort( loc('You must have ShowScrips/ModifyScrips rights to work with conditions.') ); } my (@actions); my $system_conditions = RT::ScripConditions->new($session{'CurrentUser'}); $system_conditions->Limit( FIELD => 'Creator', VALUE => RT->SystemUser->id ); my $conditions = RT::ScripConditions->new($session{'CurrentUser'}); $conditions->Limit( FIELD => 'Creator', VALUE => RT->SystemUser->id, OPERATOR => '!=' ); my $Format = RT->Config->Get('AdminSearchResultFormat')->{'Conditions'} || q{'__id__/TITLE:#'} . q{,'__Name__/TITLE:Name'} . q{,'__Description__','__UsedBy__}; my $DisplayFormat = "__CheckBox.{RemoveCondition}__, $Format"; my %common_applied_args = ( %ARGS, Format => $Format, DisplayFormat => $DisplayFormat, Rows => 0, Page => 1, AllowSorting => 1, ); if ( $RemoveConditions ) { foreach my $id ( @RemoveCondition ) { my $condition = RT::ScripCondition->new( $session{'CurrentUser'} ); $condition->Load( $id ); next unless $condition->id; my ($status, $msg) = $condition->Delete(); push @actions, $msg; } } <%ARGS> @RemoveCondition => () $RemoveConditions => undef rt-4.4.4/share/html/Admin/Elements/AddCustomFieldValue000644 000765 000024 00000006230 13437510132 023437 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}

    <&|/l&>Add Value

    % if ( $CustomField->Type ne 'Combobox' && $Categories ) { % } % my $paramtag = "CustomField-". $CustomField->Id ."-Value-new"; % if ( $CustomField->Type ne 'Combobox' && $Categories ) { % } % $m->callback(CallbackName => 'AfterCustomFieldValueInput', CustomFieldObj => $CustomField, ARGSRef => \%ARGS );
    <&|/l&>Sort <&|/l&>Name <&|/l&>Description<&|/l&>Category
    <%init> my $BasedOnObj = $CustomField->BasedOnObj; my $Categories; if ($BasedOnObj and $BasedOnObj->Id) { $Categories = $BasedOnObj->Values; } <%args> $CustomField => undef rt-4.4.4/share/html/Admin/Elements/SelectNewGroupMembers000644 000765 000024 00000006754 13437510132 024047 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $Show ne 'Groups' ) { % } % if ( $Show ne 'Users' ) { % }
    <%INIT> my $user_ids = join(',', grep { $SkipUsers->{$_} } keys %$SkipUsers); my $group_ids = join(',', grep { $SkipGroups->{$_} } keys %$SkipGroups); <%ARGS> $Name => 'Users' $Show => 'All' $Group $SkipUsers => {} $SkipGroups => {} rt-4.4.4/share/html/Admin/Elements/MembershipsPage000644 000765 000024 00000011712 13437510132 022667 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions &>

    <&|/l&>Groups the principal is member of (check box to delete)

    <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', %ARGS, Rows => $Rows, DisplayFormat => "__CheckBox.{Delete}__,$Format", Format => $Format, Collection => $is_member, AllowSorting => 1, PassArguments => [qw(Format Rows Page Order OrderBy id)], &>

    <&|/l&>Groups the principal is not member of (check box to add)

    <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', Rows => $Rows, %ARGS, DisplayFormat => "__CheckBox.{Add}__,'__HasMemberRecursively.{$id}__/TITLE:Recursive member',$Format", Format => $Format, Collection => $is_not_member, AllowSorting => 1, PassArguments => [qw(Format Rows Page Order OrderBy id)], &> <& /Elements/Submit, Label => loc('Update'), Name => 'Update' &>
    <%INIT> my $principal = RT::Principal->new( $session{'CurrentUser'} ); $principal->Load( $id ) || Abort(loc("Couldn't load principal #[_1]", $id)); my $object = $principal->Object; $id = $object->id; if ( $Update ) { my @results; foreach my $gid( @Add ) { my $group = RT::Group->new( $session{'CurrentUser'} ); $group->LoadUserDefinedGroup( $gid ); unless ( $group->id ) { push @results, loc( "Couldn't load group #[_1]", $gid ); next; } my ($status, $msg) = $group->AddMember( $id ); push @results, $msg; } foreach my $gid( @Delete ) { my $group = RT::Group->new( $session{'CurrentUser'} ); $group->LoadUserDefinedGroup( $gid ); unless ( $group->id ) { push @results, loc( "Couldn't load group #[_1]", $gid ); next; } my ($status, $msg) = $group->DeleteMember( $id ); push @results, $msg; } MaybeRedirectForResults( Arguments => { id => $id }, Actions => \@results, ); } my $is_member = RT::Groups->new( $session{'CurrentUser'} ); $is_member->LimitToUserDefinedGroups; $is_member->WithMember( PrincipalId => $id ); my $is_not_member = RT::Groups->new( $session{'CurrentUser'} ); $is_not_member->LimitToUserDefinedGroups; $is_not_member->WithoutMember( PrincipalId => $id ); $is_not_member->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $id ); $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Groups'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Groups'} || 50; my $title; if ( $principal->IsUser ) { $title = loc("Memberships of the user [_1]", $object->Name); } elsif ( $principal->IsGroup ) { $title = loc("Memberships of the group [_1]", $object->Name); } else { $title = loc("Memberships of the principal #[_1]", $id); } <%ARGS> $id => undef $Update => 0, @Add => (), @Delete => (), $Format => undef rt-4.4.4/share/html/Admin/Elements/EditTemplates000644 000765 000024 00000007661 13437510132 022370 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@actions &>
    % unless ( $Templates->Count ) {

    <&|/l&>(No templates)

    % } else { <& /Elements/CollectionList, OrderBy => 'id', Order => 'ASC', Rows => $Rows, %ARGS, DisplayFormat => '__CheckBox.{DeleteTemplates}__,'. $Format, Format => $Format, Collection => $Templates, AllowSorting => 1, PassArguments => [qw(Format Rows Page Order OrderBy FindDisabledQueues)], &> <&|/l&>(Check box to delete) % } <& /Elements/Submit, Label => loc('Delete Template') &>
    <%INIT> $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Templates'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Templates'} || 50; my $QueueObj = RT::Queue->new( $session{'CurrentUser'} ); $QueueObj->Load( $id ) if $id; my $Templates = RT::Templates->new($session{'CurrentUser'}); if ( $QueueObj->id ) { $Templates->LimitToQueue( $id ); } else { $Templates->LimitToGlobal; } # Now let callbacks add their extra limits $m->callback( %ARGS, Templates => $Templates ); $Templates->RedoSearch; # deal with deleting existing templates my @actions; # backwards compatibility, use DeleteTemplates array for this foreach my $key (keys %ARGS) { next unless $key =~ /^DeleteTemplate-(\d+)/; push @DeleteTemplates, $1; } foreach my $id( @DeleteTemplates ) { my $TemplateObj = RT::Template->new( $session{'CurrentUser'} ); $TemplateObj->Load( $id ); unless ( $TemplateObj->id ) { push @actions, loc("Couldn't load template #[_1]", $id); next; } my ($retval, $msg) = $TemplateObj->Delete; if ( $retval ) { push @actions, loc("Template #[_1] deleted", $id); } else { push @actions, $msg; } } <%ARGS> $id => 0 $Format => undef @DeleteTemplates => () rt-4.4.4/share/html/Admin/Elements/SelectScripAction000644 000765 000024 00000005462 13437510132 023177 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $ScripActions = RT::ScripActions->new($session{'CurrentUser'}); # hide user-defined if the user can't execute code if ($session{CurrentUser}->HasRight(Object => $RT::System, Right => 'ExecuteCode')) { $ScripActions->UnLimit; } else { $ScripActions->Limit( FIELD => 'ExecModule', OPERATOR => '!=', VALUE => 'UserDefined', ); } $ScripActions->OrderBy(FIELD => 'Name'); <%ARGS> $Default => undef $Name => 'ScripAction' rt-4.4.4/share/html/Admin/Elements/SelectGroups000644 000765 000024 00000004560 13437510132 022236 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $groups = RT::Groups->new($session{'CurrentUser'}); $groups->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => $Domain, CASESENSITIVE => 0 ); <%ARGS> $Name => 'groups' $Domain => 'UserDefined'; rt-4.4.4/share/html/Admin/Elements/EditQueueWatcherGroup000644 000765 000024 00000004221 13437510132 024036 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Label $QueueObj $Watchers <% $Label %>: <& /Admin/Elements/EditQueueWatchers, QueueObj => $QueueObj, Watchers => $Watchers &> rt-4.4.4/share/html/Admin/Elements/SelectScripCondition000644 000765 000024 00000005515 13437510132 023707 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $ScripConditions = RT::ScripConditions->new($session{'CurrentUser'}); # hide user-defined if the user can't execute code if ($session{CurrentUser}->HasRight(Object => $RT::System, Right => 'ExecuteCode')) { $ScripConditions->UnLimit; } else { $ScripConditions->Limit( FIELD => 'ExecModule', OPERATOR => '!=', VALUE => 'UserDefined', ); } $ScripConditions->OrderBy(FIELD => 'Name'); <%ARGS> $Default => undef $Name => 'ScripCondition' rt-4.4.4/share/html/Admin/Elements/SelectUsers000644 000765 000024 00000004726 13437510132 022064 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $users = RT::Users->new($session{'CurrentUser'}); $users->Limit(FIELD => 'id', VALUE => RT->SystemUser->id, OPERATOR => '!=' ); $users->Limit(FIELD => 'id', VALUE => RT->Nobody->id, OPERATOR => '!=' ); $users->LimitToPrivileged(); <%ARGS> $Name => 'Users' rt-4.4.4/share/html/Admin/Elements/EditCustomFieldValues000644 000765 000024 00000007475 13437510132 024033 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % unless ( $values->Count ) {

    <&|/l&>(no values)

    % return; % } % if ( $CustomField->Type ne 'Combobox' && $Categories ) { % } % while ( my $value = $values->Next ) { % my $paramtag = "CustomField-". $CustomField->Id ."-Value-". $value->Id; % if ( $CustomField->Type ne 'Combobox' && $Categories ) { % } % $m->callback(CallbackName => 'AfterCustomFieldValueInput', CustomFieldObj => $CustomField, CustomFieldValueObj => $value, ARGSRef => \%ARGS ); % }
    <&|/l&>Sort <&|/l&>Name <&|/l&>Description<&|/l&>Category
    % my $selected = $value->Category; % $selected = '' unless defined $selected;
    <&|/l&>(Check box to delete) <%init> my $values = $CustomField->ValuesObj(); my $BasedOnObj = $CustomField->BasedOnObj; my $Categories; if ($BasedOnObj and $BasedOnObj->Id) { $Categories = $BasedOnObj->Values; } <%args> $CustomField => undef rt-4.4.4/share/html/Admin/Elements/SelectStage000644 000765 000024 00000005014 13437510132 022015 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> if ( !defined $Default || $Default eq '') { $Default = 'TransactionCreate'; } my @stages = ('TransactionCreate', 'TransactionBatch'); <%ARGS> $Default => 'TransactionCreate' $Name => 'Stage' rt-4.4.4/share/html/Admin/Elements/ConfigureDashboardsInMenu000644 000765 000024 00000005037 13437510132 024647 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Action $OnSave $items $panes $current_portlets $ReadOnly => 0 <%init> my $portlets = $current_portlets; my @panes; for my $pane (@$panes) { push @panes, $m->comp( '/Widgets/SelectionBox:new', Action => $Action, Name => $pane, Available => $items, AutoSave => 1, ReadOnly => $ReadOnly, OnSubmit => sub { my $sel = shift; $OnSave->( { dashboards => $sel->{Current} } ); }, Selected => $portlets, ); } return @panes; rt-4.4.4/share/html/Admin/Elements/EditScrips000644 000765 000024 00000013675 13437510132 021677 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@actions &>

    <&|/l&>Scrips

    <&|/l&>Scrips normally run after each individual change to a ticket.
    % my $scrips = $find_scrips->(Stage => 'TransactionCreate'); <& /Elements/CollectionList, %common_applied_args, Collection => $scrips &> % unless ( $scrips->Count ) {

    <&|/l&>(No scrips)

    % }

    <&|/l&>Batch scrips

    <&|/l&>Batch scrips run after a set of related changes to a ticket.
    % $scrips = $find_scrips->(Stage => 'TransactionBatch'); <& /Elements/CollectionList, %common_applied_args, Collection => $scrips &> % unless ( $scrips->Count ) {

    <&|/l&>(No scrips)

    % } <& /Elements/Submit, Name => 'RemoveScrips', Caption => loc("Un-apply selected scrips"), Label => loc("Update"), &>

    <&|/l&>Not applied scrips

    % $scrips = $find_scrips->(Added => 0); <& /Elements/CollectionList, Rows => $Rows, Page => 1, %ARGS, Collection => $scrips, Format => $Format, DisplayFormat => "__CheckBox.{AddScrip}__, $Format", AllowSorting => 1, PassArguments => [ qw(Format Rows Page Order OrderBy id) ], &> % unless ( $scrips->Count ) {

    <&|/l&>(No scrips)

    % } <& SelectStageForAdded &> <& /Elements/Submit, Name => 'AddScrips', Caption => loc("Apply selected scrips"), Label => loc("Update"), &>
    <%init> my (@actions); if ( $id ) { my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load( $id ); Abort(loc("Couldn't load queue #[_1]", $id)) unless $QueueObj->id; } $id ||= 0; my $find_scrips = sub { my %args = (Added => 1, @_); my $scrips = RT::Scrips->new($session{'CurrentUser'}); $scrips->LimitByStage( $args{'Stage'} ) if $args{'Stage'}; my $method = $args{'Added'}? 'LimitToAdded' : 'LimitToNotAdded'; $scrips->$method(0, $id); $scrips->ApplySortOrder if $args{'Added'}; $scrips->FindAllRows; return $scrips; }; $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Scrips'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Scrips'} || 50; my $DisplayFormat = $Format; if ( $id ) { $DisplayFormat = "__RemoveCheckBox__, $DisplayFormat"; } else { $DisplayFormat = "__CheckBox.{RemoveScrip}__, $DisplayFormat"; } $DisplayFormat .= ", __Move.{$id}__"; my %common_applied_args = ( %ARGS, Format => $Format, DisplayFormat => $DisplayFormat, Rows => 0, Page => 1, AllowSorting => 0, PassArguments => [ qw(Format id) ], ); if ( $RemoveScrips ) { foreach my $sid ( @RemoveScrip ) { my $scrip = RT::Scrip->new( $session{'CurrentUser'} ); $scrip->Load( $sid ); next unless $scrip->id; my ($status, $msg) = $scrip->RemoveFromObject( $id ); push @actions, $msg; } } if ( $AddScrips ) { foreach my $sid ( @AddScrip ) { my $scrip = RT::Scrip->new( $session{'CurrentUser'} ); $scrip->Load( $sid ); next unless $scrip->id; my ($status, $msg) = $scrip->AddToObject( $id, Stage => $Stage ); push @actions, $msg; } } if ( $MoveScripUp ) { my $scrip = RT::ObjectScrip->new( $session{'CurrentUser'} ); $scrip->LoadByCols( Scrip => $MoveScripUp, ObjectId => $id ); if ( $scrip->id ) { my ($status, $msg) = $scrip->MoveUp; push @actions, $msg; } } if ( $MoveScripDown ) { my $scrip = RT::ObjectScrip->new( $session{'CurrentUser'} ); $scrip->LoadByCols( Scrip => $MoveScripDown, ObjectId => $id ); if ( $scrip->id ) { my ($status, $msg) = $scrip->MoveDown; push @actions, $msg; } } <%ARGS> $id => undef $title => undef $Format => undef @RemoveScrip => () $RemoveScrips => undef @AddScrip => () $AddScrips => undef $Stage => 'TransactionCreate' $MoveScripUp => undef $MoveScripDown => undef rt-4.4.4/share/html/Admin/Elements/ShowKeyInfo000644 000765 000024 00000010210 13437510132 022011 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => $title &> % while ( my $protocol = shift @protocols ) { % my %res = RT::Crypt->GetKeyInfo( % Protocol => $protocol, % Key => $EmailAddress, % Type => $Type, % ); % if ( $res{'exit_code'} ) { % } elsif ( !keys %{ $res{'info'} } ) { % } else { % if ( $Type ne 'private' && $res{'info'}{'Trust'} ) { % } % $_->CurrentUser( $session{CurrentUser} ) for grep {$_} (@{$res{'info'}}{qw|Created Expire|}); % foreach my $uinfo( @{ $res{'info'}{'User'} } ) { % if ($uinfo->{'Created'} or $uinfo->{'Expire'}) { % $_->CurrentUser( $session{CurrentUser} ) for grep {$_} ($uinfo->{'Created'}, $uinfo->{'Expire'}); % } else { % } % } % } % if ( @protocols ) { % } % }
    <% loc("Couldn't get [_1] keys information", $protocol) %>
    <% loc('No [_1] keys for this address', $protocol) %>
    <% loc("[_1] key '[_2]'", $protocol, $res{'info'}{'Formatted'} ) %>
    <% loc('Trust') %>: <% loc( $res{'info'}{'Trust'} ) %>
    <% loc('Fingerprint') %>: <% $res{'info'}{'Fingerprint'} %>
    <% loc('Created') %>: <% $res{'info'}{'Created'}? $res{'info'}{'Created'}->AsString( Time => 0 ): loc('never') %>
    <% loc('Expire') %>: <% $res{'info'}{'Expire'}? $res{'info'}{'Expire'}->AsString( Time => 0 ): loc('never') %>
    <% loc('User (created - expire)') %>: <% $uinfo->{'String'} %> \ (<% $uinfo->{'Created'}? $uinfo->{'Created'}->AsString( Time => 0 ): loc('never') %> - \ <% $uinfo->{'Expire'}? $uinfo->{'Expire'}->AsString( Time => 0 ): loc('never') %>)
    <% loc('User') %>: <% $uinfo->{'String'} %>
     
    <%ARGS> $EmailAddress $Type => 'public' <%INIT> my @protocols = RT::Crypt->EnabledProtocols; my $title; unless ( $Type eq 'private' ) { $title = loc('Public key(s) for [_1]', $EmailAddress); } else { $title = loc('Private key(s) for [_1]', $EmailAddress); } rt-4.4.4/share/html/Admin/Elements/EditCustomFieldValuesSource000644 000765 000024 00000005713 13437510132 025205 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <%INIT> return unless $CustomField->IsSelectionType; my @sources; foreach my $class( 'RT::CustomFieldValues', RT->Config->Get('CustomFieldValuesSources') ) { next unless $class; unless ($class->require) { $RT::Logger->crit("Couldn't load class '$class': $@"); next; } my %res = ( Class => $class ); $res{'Description'} = $class->SourceDescription if $class->can('SourceDescription'); $res{'Description'} ||= $class; $res{'Description'} = 'Provide list of values below' if $class eq 'RT::CustomFieldValues'; push @sources, \%res; } return unless grep $_->{'Class'} ne 'RT::CustomFieldValues', @sources; <%ARGS> $CustomField => undef rt-4.4.4/share/html/Admin/Elements/UpgradeHistoryRow000644 000765 000024 00000007731 13437510132 023263 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($top) { % } % if ($row->{'action'} eq 'upgrade') { # type is more specific for upgrades <&|/l, $row->{'from'}, $row->{'to'} &>Upgrade from [_1] to [_2] % } elsif ( $row->{'action'} eq 'insert' ) { <&|/l, $row->{filename} &>Insert from [_1] % } elsif ( $row->{'action'} eq 'schema' ) { <&|/l, $row->{filename} &>Schema updates from [_1] % } elsif ( $row->{'action'} eq 'acl' ) { <&|/l, $row->{filename} &>ACL updates from [_1] % } elsif ( $row->{'action'} eq 'indexes' ) { <&|/l, $row->{filename} &>Index updates from [_1] % } else { <% ucfirst($row->{action}) %> % } % if (not $complete) { <&|/l&>(Incomplete) % } <% $timestamp->AsString %> <% $duration %> <% $row->{ext_version} || $row->{rt_version} %> % for (@{$kids || []}) { <& UpgradeHistoryRow, row => $_, indent => $indent+1, i => $i &> % } <%args> $indent => 0 $i $row <%init> my $complete = $row->{return_value} ? $row->{return_value}[0] : $row->{end}; my $kids = $row->{sub_events}; my $top = $row->{full_id} eq $row->{individual_id}; my @classes; push @classes, $complete ? 'complete' : 'incomplete'; push @classes, $$i++ % 2 ? 'oddline' : 'evenline'; push @classes, 'upgrade-history-'.$row->{full_id} unless $top; my $timestamp = RT::Date->new($session{CurrentUser}); $timestamp->Set(Value => $row->{timestamp}); my $duration = $row->{end} ? $timestamp->DurationAsString($row->{end} - $row->{timestamp}) : ''; rt-4.4.4/share/html/Admin/Elements/ModifyTemplate000644 000765 000024 00000006142 13437510132 022540 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&|/l&>Name:
    <&|/l&>Description:
    <&|/l&>Type: >
    >
    <&|/l&>Content:
    <%INIT> unless ($Type) { $Type = $session{'CurrentUser'}->HasRight(Right => 'ExecuteCode', Object => $RT::System) ? 'Perl' : 'Simple'; } <%ARGS> $Name => '' $Description => '' $Content => '' $Type => '' rt-4.4.4/share/html/Admin/Elements/EditRightsCategoryTabs000644 000765 000024 00000011766 13437510132 024203 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Context $Principal => undef $id $acldesc => '' <%init> # Find all our available rights... my (%available_rights, %categories); if ( blessed($Context) and $Context->can('AvailableRights') ) { %available_rights = %{$Context->AvailableRights( $Principal ? $Principal->PrincipalObj : undef )}; } else { %available_rights = ( loc('System Error') => loc("No rights found") ); } # ...and their categories if ( blessed($Context) and $Context->can('RightCategories') ) { my %right_categories = %{$Context->RightCategories}; for my $right (keys %available_rights) { my $category = $right_categories{$right} || 'Miscellaneous'; # loc push @{$categories{$category}}, $right; } } # Find all the current rights for this principal my %current_rights; if ($Principal) { my $acls = RT::ACL->new($session{'CurrentUser'}); $acls->LimitToObject( $Context ); $acls->LimitToPrincipal( Id => $Principal->PrincipalId ); while ( my $ace = $acls->Next ) { my $right = $ace->RightName; $current_rights{$right} = 1; } } my %category_desc = ( 'General' => loc('General rights'), 'Staff' => loc('Rights for Staff'), 'Admin' => loc('Rights for Administrators'), 'Status' => loc('Status changes'), ); my %catsort = ( General => 1, Staff => 2, Admin => 3, Status => 4, Miscellaneous => 999 ); my $i = 5; for my $category ( sort keys %categories ) { next if $catsort{$category}; $catsort{$category} = $i++; } $acldesc ||= join '-', ($Principal ? $Principal->PrincipalId : 'addprincipal'), ref($Context), $Context->Id; $available_rights{$_} = loc( $available_rights{$_} ) for keys %available_rights;
    % for my $category (sort { $catsort{$a} <=> $catsort{$b} } keys %categories) {
    ">
      % for my $right (sort { $available_rights{$a} cmp $available_rights{$b} } @{$categories{$category}}) {
    • " data-principal-tab="<% "principal-tab-$id" %>" <% $current_rights{$right} ? 'checked' : '' %> />
    • % }
    % }
    rt-4.4.4/share/html/Admin/Elements/SelectStageForAdded000644 000765 000024 00000004213 13437510132 023406 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <% $Label %> <& SelectStage, %ARGS &>
    <%args> $Label => loc('Select scrip stage for newly added queues:') rt-4.4.4/share/html/Admin/Elements/EditCustomFieldValuesCanonicalizer000644 000765 000024 00000005326 13437510132 026526 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <%INIT> return unless $CustomField->IsCanonicalizeType; my @canonicalizers; foreach my $class( RT->Config->Get('CustomFieldValuesCanonicalizers') ) { next unless $class; unless ($class->require) { $RT::Logger->crit("Couldn't load class '$class': $@"); next; } push @canonicalizers, $class; } return if !@canonicalizers; <%ARGS> $CustomField => undef rt-4.4.4/share/html/Admin/Elements/UpgradeHistory000644 000765 000024 00000005476 13437510132 022577 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % for my $package (@packages) { % my ($version_status, @lines) = RT->System->ParsedUpgradeHistory($package);

    <% $package %> (<% $version_status %>)

    % my $i = 0; % for my $upgrade (@lines) { <& UpgradeHistoryRow, i => \$i, row => $upgrade &> % }
      <&|/l&>Action <&|/l&>Date <&|/l&>Elapsed <&|/l, $package &>[_1] Version
    % } <%init> my $upgrade_history = RT->System->UpgradeHistory; my @packages = ('RT', sort grep { $_ ne 'RT' } keys %$upgrade_history); rt-4.4.4/share/html/Admin/Elements/Header000644 000765 000024 00000004062 13437510132 021004 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, %ARGS &> <%ARGS> $Title => undef rt-4.4.4/share/html/Admin/Elements/SelectCustomFieldLookupType000644 000765 000024 00000004527 13437510132 025234 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $cf = RT::CustomField->new($session{'CurrentUser'}); <%ARGS> $Default=> '' $Name => 'LookupType' rt-4.4.4/share/html/Admin/Elements/EditQueueWatchers000644 000765 000024 00000005231 13437510132 023206 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %if ($Members->Count == 0 ) {
    • <&|/l&>none % } else {
        % while (my $watcher=$Members->Next) {
      • % if ($watcher->MemberObj->IsUser) { <& /Elements/ShowUser, User => $watcher->MemberObj->Object &> % } else { <%$watcher->MemberObj->Object->Name%> % } % } % }
      <%INIT> my $Members = $Watchers->MembersObj; <%ARGS> $QueueObj => undef $Watchers => undef rt-4.4.4/share/html/Admin/Elements/SelectCustomFieldType000644 000765 000024 00000004566 13437510132 024045 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $cf = RT::CustomField->new($session{'CurrentUser'}); $Default = "Freeform-1" if $Default eq "-0"; <%ARGS> $Default=>undef $Name => 'TypeComposite' rt-4.4.4/share/html/Admin/Scrips/Objects.html000644 000765 000024 00000012720 13437510132 021637 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions &>
      % if ( $global ) {

      <&|/l&>Applies to all objects

      <& /Admin/Elements/SelectStageForAdded, Default => $Stage || $global->Stage, Label => loc("Select global scrip stage:") &> % } else {

      <&|/l&>Apply globally

      <&|/l&>Selected objects

      <& /Elements/CollectionList, OrderBy => ['SortOrder','Name'], Order => ['ASC', 'ASC'], %ARGS, Collection => $added, Rows => 0, Page => 1, Format => $format, DisplayFormat => "'__CheckBox.{RemoveScrip-$id}__','__ScripStage.{$id}__',". $format, AllowSorting => 0, ShowEmpty => 0, PassArguments => [ qw(id Stage Format Rows Page Order OrderBy), ], &>

      <&|/l&>Unselected objects

      <& /Elements/CollectionList, OrderBy => ['SortOrder','Name'], Order => ['ASC', 'ASC'], %ARGS, Collection => $not_added, Rows => $rows, Format => $format, DisplayFormat => "'__CheckBox.{AddScrip-". $id ."}__',". $format, AllowSorting => 1, ShowEmpty => 0, PassArguments => [ qw(id Stage Format Rows Page Order OrderBy), ], &> <& /Admin/Elements/SelectStageForAdded, Default => $Stage &>
      <% loc('You can change template if needed') %>: <& Elements/SelectTemplate, Scrip => $scrip, Default => $Template &>
      % } <& /Elements/Submit, Name => 'Update' &>
      <%ARGS> $id => undef $Stage => undef $Template => '' $Update => 0 $From => undef <%INIT> my $scrip = RT::Scrip->new( $session{'CurrentUser'} ); $scrip->Load($id) or Abort(loc("Could not load scrip #[_1]", $id)); $id = $scrip->id; my $global = $scrip->IsGlobal; if ( $Update ) { my (@results); if ( $Template ) { my ($status, $msg) = $scrip->SetTemplate( $Template ); push @results, loc('Template: [_1]', $msg); } if ( defined (my $del = $ARGS{"RemoveScrip-$id"}) ) { foreach my $id ( ref $del? (@$del) : ($del) ) { my ($status, $msg) = $scrip->RemoveFromObject( $id ); push @results, $msg; } } if ( defined (my $add = $ARGS{"AddScrip-$id"}) ) { foreach my $id ( ref $add? (@$add) : ($add) ) { my ($status, $msg) = $scrip->AddToObject( $id, Stage => $Stage ); push @results, $msg; } } if ($global and $global->Stage ne $Stage) { my ($status, $msg) = $global->SetStage($Stage); push @results, $msg; } MaybeRedirectForResults( Actions => \@results, Arguments => { id => $id, From => $From, }, ); } my $added = $scrip->AddedTo; my $not_added = $scrip->NotAddedTo; my $format = RT->Config->Get('AdminSearchResultFormat')->{'Queues'}; my $rows = RT->Config->Get('AdminSearchResultRows')->{'Queues'} || 50; my $title = loc('Modify associated objects for scrip #[_1]', $id); rt-4.4.4/share/html/Admin/Scrips/index.html000644 000765 000024 00000006471 13437510132 021363 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Select a Scrip') &> <& /Elements/Tabs &>

      <%$caption%>

      />
      <& /Elements/CollectionList, OrderBy => 'Description', Order => 'ASC', Rows => $Rows, %ARGS, Collection => $scrips, Format => $Format, AllowSorting => 1, PassArguments => [qw( FindDisabledScrips Page Order OrderBy )], &> <%INIT> my $scrips = RT::Scrips->new( $session{'CurrentUser'} ); $scrips->FindAllRows if $FindDisabledScrips; $scrips->UnLimit; my ($caption); $caption = $FindDisabledScrips ? loc("All Scrips") : loc("Enabled Scrips"); $m->callback(CallbackName => 'Massage', Scrips => $scrips); $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Scrips'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Scrips'} || 50; <%ARGS> $FindDisabledScrips => 0 $Format => undef rt-4.4.4/share/html/Admin/Scrips/Modify.html000644 000765 000024 00000011370 13437510132 021475 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Modify scrip #[_1]", $id) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/EditBasics, %ARGS, Scrip => $scrip &> % if ( not $disabled ) { % }
      <&|/l&>Applies to: \ % if ( $scrip->IsGlobal ) { <% loc('Global') %> % } else { % my $added_to = $scrip->AddedTo; % my $found = 0; % while ( my $queue = $added_to->Next ) { % $m->out(', ') if $found++; \ <% $queue->Name %>\ % last if $found == 10; % } % $m->out(', ...') if $found == 10; % }
        />
      <& /Elements/Submit, Label => loc('Save Changes'), Name => 'Update', Reset => 1 &> % if ($session{CurrentUser}->HasRight(Object => $RT::System, Right => 'ExecuteCode')) { <& Elements/EditCustomCode, %ARGS, Scrip => $scrip &> <& /Elements/Submit, Label => loc('Save Changes'), Name => 'Update', Reset => 1 &> % }
      <%ARGS> $id => undef $Update => undef $From => undef <%INIT> my $scrip = RT::Scrip->new( $session{'CurrentUser'} ); $scrip->Load( $id ); Abort(loc("Couldn't load scrip #[_1]", $id)) unless $scrip->id; my $disabled = $scrip->Disabled; if ( $Update ) { my @attribs = qw( Description ScripAction ScripCondition CustomPrepareCode CustomCommitCode CustomIsApplicableCode ); push @attribs, "Template" if defined $ARGS{Template} and length $ARGS{Template}; if ($ARGS{"SetEnabled"}) { push @attribs, "Disabled"; $ARGS{"Disabled"} = not $ARGS{"Enabled"}; } my @results = UpdateRecordObject( AttributesRef => \@attribs, Object => $scrip, ARGSRef => \%ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $scrip->id, From => $From, }, ); } my $EnabledChecked = qq[checked="checked"]; $EnabledChecked = '' if $disabled; my @results; my ($ok, $msg) = $scrip->CompileCheck; push @results, $msg if !$ok; rt-4.4.4/share/html/Admin/Scrips/Create.html000644 000765 000024 00000011421 13437510132 021446 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <&| /Widgets/TitleBox, title => loc('Basics') &> <& Elements/EditBasics, %ARGS, Scrip => $scrip, Queue => $queue_obj &>
      <&|/l&>Stage:\ <& /Admin/Elements/SelectStage, Default => $ARGS{"Stage"} &>
        />
      <& /Elements/Submit, Label => loc('Create'), Name => 'Create', &> % if ($session{CurrentUser}->HasRight(Object => $RT::System, Right => 'ExecuteCode')) { <& Elements/EditCustomCode, %ARGS, Scrip => $scrip &> <& /Elements/Submit, Label => loc('Create'), Name => 'Create', &> % }
      <%ARGS> $Queue => 0 $Create => undef $Global => undef <%INIT> my @results; $ARGS{'Enabled'} = 1 unless $ARGS{'SetEnabled'}; my $queue_obj; if ( $Queue ) { $queue_obj = RT::Queue->new( $session{'CurrentUser'} ); $queue_obj->Load( $Queue ); Abort( loc("Couldn't load queue [_1]", $Queue) ) unless $queue_obj->id; } my $title; if ( $queue_obj ) { $title = loc('Create a scrip and add to queue [_1]', $queue_obj->Name ); } else { $title = loc('Create a global scrip'); } my $scrip = RT::Scrip->new( $session{'CurrentUser'} ); if ( $Create ) { my ($status, $msg) = $scrip->Create( Description => $ARGS{"Description"}, Queue => $Queue || 0, Stage => $ARGS{"Stage"}, Disabled => $ARGS{"Disabled"}, ScripAction => $ARGS{"ScripAction"}, ScripCondition => $ARGS{"ScripCondition"}, Template => $ARGS{"Template"}, CustomPrepareCode => $ARGS{"CustomPrepareCode"}, CustomCommitCode => $ARGS{"CustomCommitCode"}, CustomIsApplicableCode => $ARGS{"CustomIsApplicableCode"}, ); MaybeRedirectForResults( Force => 1, Actions => [ $msg ], Path => 'Admin/Scrips/Modify.html', Arguments => { id => $scrip->id, $Queue ? ( From => $Queue, ) : $Global ? ( From => 'Global', ) : () }, ) if $status; push @results, $msg; } rt-4.4.4/share/html/Admin/Scrips/Elements/000755 000765 000024 00000000000 13437510132 021132 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Scrips/Elements/EditBasics000644 000765 000024 00000005412 13437510132 023071 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Description:\ Description || '' %>" /> <&|/l&>Condition:\ <& /Admin/Elements/SelectScripCondition, Default => $ARGS{"ScripCondition"} || $Scrip->ConditionObj->Id, &> <&|/l&>Action:\ <& /Admin/Elements/SelectScripAction, Default => $ARGS{"ScripAction"} || $Scrip->ActionObj->Id, &> <&|/l&>Template:\ <& SelectTemplate, Default => $ARGS{"Template"}, Scrip => $Scrip, Queue => $Queue, &> <%ARGS> $Scrip $Queue => undef <%INIT> rt-4.4.4/share/html/Admin/Scrips/Elements/EditCustomCode000644 000765 000024 00000005532 13437510132 023735 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('User Defined conditions and results') &> % while ( my ($method, $desc) = splice @list, 0, 2 ) { % }
      <&|/l&>(Use these fields when you choose 'User Defined' for a condition or action)
      <% $desc %>: % my $code = $ARGS{ $method } || $Scrip->$method() || ''; % my $lines = @{[ $code =~ /\n/gs ]} + 3; % $lines = $min_lines if $lines < $min_lines;
      <%ARGS> $Scrip <%INIT> my @list = ( CustomIsApplicableCode => loc('Custom condition'), CustomPrepareCode => loc('Custom action preparation code'), CustomCommitCode => loc('Custom action commit code'), ); my $min_lines = 10; rt-4.4.4/share/html/Admin/Scrips/Elements/SelectTemplate000644 000765 000024 00000007071 13437510132 023775 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Name => 'Template' $Queue => undef $Scrip => undef $Default => undef <%INIT> my $current; $current = $Scrip->Template if $Scrip; my @list; if ( $Scrip && $Scrip->id && !$Scrip->IsAddedToAny ) { my $templates = RT::Templates->new($session{'CurrentUser'}); $templates->UnLimit; @list = $templates->DistinctFieldValues('Name'); } else { my $global = RT::Templates->new($session{'CurrentUser'}); $global->LimitToGlobal; my %global; while (my $t = $global->Next) { $global{ lc $t->Name } = $t->Name } my @queues; push @queues, @{ $Scrip->AddedTo->ItemsArrayRef } if $Scrip && $Scrip->id; push @queues, $Queue if $Queue && $Queue->id; my (%names, %counters); foreach my $queue ( @queues ) { my $templates = RT::Templates->new($session{'CurrentUser'}); $templates->LimitToQueue( $queue->id ); foreach my $name ( map $_->Name, @{ $templates->ItemsArrayRef } ) { next if $global{ lc $name }; $counters{ lc $name }++; $names{lc $name} = $name; } } delete $counters{ $_ } foreach grep $counters{$_} != @queues, keys %counters; @list = map $global{$_} || $names{$_}, keys %global, keys %counters; } @list = sort { lc loc($a) cmp lc loc($b) } @list if @list; rt-4.4.4/share/html/Admin/Groups/index.html000644 000765 000024 00000014352 13437510132 021374 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &>

      <% $caption %>

      <&|/l&>Go to group
      <&|/l&>Find groups whose <& /Elements/SelectGroups, GroupField => $GroupField, GroupOp => $GroupOp, GroupString => $GroupString, &>
      <&|/l&>And groups whose <& /Elements/SelectGroups, SelectFieldName => 'GroupField2', SelectOpName => 'GroupOp2', InputStringName => 'GroupString2', GroupField => $GroupField2, GroupOp => $GroupOp2, GroupString => $GroupString2, &>
      <&|/l&>And groups whose <& /Elements/SelectGroups, SelectFieldName => 'GroupField3', SelectOpName => 'GroupOp3', InputStringName => 'GroupString3', GroupField => $GroupField3, GroupOp => $GroupOp3, GroupString => $GroupString3, &>
      />
      % unless ( $Groups->Count ) { <&|/l&>No groups matching search criteria found. % } else {

      <&|/l&>Select a group:

      <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', Rows => $Rows, %ARGS, Format => $Format, Collection => $Groups, AllowSorting => 1, PassArguments => [qw(Format Rows Page Order OrderBy GroupString GroupOp GroupField GroupString2 GroupOp2 GroupField2 GroupString3 GroupOp3 GroupField3 FindDisabledGroups)], &> % } <%INIT> my $Groups = RT::Groups->new($session{'CurrentUser'}); $Groups->LimitToUserDefinedGroups(); my $title = loc('Select a group'); my $caption; if ($FindDisabledGroups) { $Groups->FindAllRows(); } $caption = loc("Groups matching search criteria"); my @groups = (); push @groups, { field => $GroupField, op => $GroupOp, string => $GroupString } if length $GroupString; push @groups, { field => $GroupField2, op => $GroupOp2, string => $GroupString2 } if length $GroupString2; push @groups, { field => $GroupField3, op => $GroupOp3, string => $GroupString3 } if length $GroupString3; if ( scalar @groups ) { foreach my $group ( @groups ) { if ( $group->{'field'} =~ /^CustomField-(\d+)/ ) { $Groups->LimitCustomField( CUSTOMFIELD => $1, OPERATOR => $group->{'op'}, VALUE => $group->{'string'}, ENTRYAGGREGATOR => 'AND', ); } else { $Groups->Limit( FIELD => $group->{'field'}, OPERATOR => $group->{'op'}, VALUE => $group->{'string'}, CASESENSITIVE => 0, ENTRYAGGREGATOR => 'AND', ); } } RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Admin/Groups/Modify.html?id=".$Groups->First->id) if $Groups->Count == 1 and $Groups->First; } else { $caption = loc("User-defined groups"); } $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Groups'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Groups'} || 50; <%ARGS> $Format => undef, $GroupString => undef $GroupOp => undef $GroupField => 'Name' $GroupString2 => undef $GroupOp2 => undef $GroupField2 => 'Name' $GroupString3 => undef $GroupOp3 => undef $GroupField3 => 'Name' $FindDisabledGroups => 0 rt-4.4.4/share/html/Admin/Groups/GroupRights.html000644 000765 000024 00000005511 13437510132 022537 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify group rights for group [_1]', $GroupObj->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <& /Admin/Elements/EditRights, Context => $GroupObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
      <%INIT> # Update the acls. my @results = ProcessACLs(\%ARGS); if (!defined $id) { Abort(loc("No Group defined")); } my $GroupObj = RT::Group->new($session{'CurrentUser'}); $GroupObj->Load($id) || Abort(loc("Couldn't load group [_1]",$id)); my @principals = GetPrincipalsMap($GroupObj, 'System', 'Groups'); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Groups/Modify.html000644 000765 000024 00000014203 13437510132 021507 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      %unless ($Group->Id) { % } else { % } % $m->callback( %ARGS, GroupObj => $Group, results => \@results );
      <&| /Widgets/TitleBox, title => loc('Basics'), class => 'group-info-basics' &> <& /Elements/EditCustomFields, Object => $Group, Grouping => 'Basics', InTable => 1 &>
      <&|/l&>Name:
      <&|/l&>Description:
      />
      <& /Elements/EditCustomFieldCustomGroupings , Object => $Group, &>
      % if ( $Create ) { <& /Elements/Submit, Label => loc('Create'), Reset => 1 &> % } else { <& /Elements/Submit, Label => loc('Save Changes'), Reset => 1 &> % }
      <%INIT> my ($title, @results, @warnings, $Disabled, $EnabledChecked); my $Group = RT::Group->new($session{'CurrentUser'}); if ($Create) { $title = loc("Create a new group"); } else { if ($id eq 'new' ) { my ($create_id, $create_msg) = $Group->CreateUserDefinedGroup(Name => $Name ); if ($create_id) { $id = $Group->Id; push @results, $create_msg; } else { push @results, loc("Group could not be created: [_1]", $create_msg); } } else { $Group->Load($id) || Abort('Could not load group'); } if ($Group->Id) { $title = loc("Modify the group [_1]", $Group->Name); } # If the create failed else { $title = loc("Create a new group"); $Create = 1; } } if ($Group->Id) { my @fields = qw(Description Name ); my @fieldresults = UpdateRecordObject ( AttributesRef => \@fields, Object => $Group, ARGSRef => \%ARGS ); push (@results,@fieldresults); push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $Group ); # Warn about duplicate groups my $dupcheck = RT::Groups->new(RT->SystemUser); $dupcheck->LimitToUserDefinedGroups(); $dupcheck->Limit( FIELD => 'Name', VALUE => $Group->Name, CASESENSITIVE => 0 ); if ($dupcheck->Count > 1) { push @warnings, loc("There is more than one group with the name '[_1]'. This may cause inconsistency in parts of the admin interface, and therefore it's recommended you rename the conflicting groups.", $Group->Name); } } #we're asking about enabled on the web page but really care about disabled. if (defined $Enabled && $Enabled == 1) { $Disabled = 0; } else { $Disabled = 1; } if ( $Group->Id and ($SetEnabled) and ( $Disabled != $Group->Disabled) ) { my ($code, $msg) = $Group->SetDisabled($Disabled); push @results, $msg; } # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@results, Arguments => { id => $Group->id }, ) if $Group->Id; push @results, @warnings; $EnabledChecked = ( $Group->Disabled() ? '' : 'checked="checked"' ); <%ARGS> $Create => undef $Name => undef $Description => undef $SetEnabled => undef $Enabled => undef $id => '' unless defined $id rt-4.4.4/share/html/Admin/Groups/autohandler000644 000765 000024 00000004730 13437510132 021627 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> if ( exists $ARGS{'id'} and length $ARGS{'id'} and $ARGS{'id'} ne 'new' ){ my $group = RT::Group->new($session{'CurrentUser'}); my ($ret, $msg) = $group->Load($ARGS{'id'}); RT::Logger->error("Unable to load group by id " . $ARGS{'id'} . " $msg") unless $ret; # Must have SeeGroup for pages that operate on an individual group unless( $group->CurrentUserHasRight('SeeGroup') ){ $m->clear_and_abort(403); } } return $m->call_next(%ARGS) rt-4.4.4/share/html/Admin/Groups/Members.html000644 000765 000024 00000012377 13437510132 021664 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <&| /Widgets/TitleBox, title => loc('Editing membership for group [_1]', $Group->Label) &>

      <&|/l&>Current members

      <&|/l&>Add members

      % if ($Group->MembersObj->Count == 0 ) { <&|/l&>(No members) % } else { <&|/l&>Users % my $Users = $Group->UserMembersObj( Recursively => 0 ); <%perl> my @users = map {$_->[1]} sort { lc($a->[0]) cmp lc($b->[0]) } map { [$_->Format, $_] } @{ $Users->ItemsArrayRef };
        % for my $user (@users) { % $UsersSeen{ $user->id } = 1 if $SkipSeenUsers;
      • <& /Elements/ShowUser, User => $user &>
      • % }
      <&|/l&>Groups
        % my $GroupMembers = $Group->MembersObj; % $GroupMembers->LimitToGroups(); % while ( my $member = $GroupMembers->Next ) { % $GroupsSeen{ $member->MemberId } = 1 if $SkipSeenGroups;
      • <% $member->MemberObj->Object->Name %> % }
      % }
      <& /Admin/Elements/SelectNewGroupMembers, Name => "AddMembers", Group => $Group, SkipUsers => \%UsersSeen, SkipGroups => \%GroupsSeen &>
      <&|/l&>(Check box to delete) <& /Elements/Submit, Label => loc('Modify Members'), Reset => 1 &>
      <%INIT> my $Group = RT::Group->new($session{'CurrentUser'}); $Group->Load($id) || Abort(loc('Could not load group')); my $title = loc("Modify the group [_1]", $Group->Label); my (%UsersSeen, %GroupsSeen); $GroupsSeen{ $Group->id } = 1; # can't be a member of ourself my (@results); # XXX: safe member id in value instead of name foreach my $key (keys %ARGS) { next unless $key =~ /^DeleteMember-(\d+)$/; my ($val,$msg) = $Group->DeleteMember($1); push (@results, $msg); } # Process new users foreach my $member (grep $_, @AddMembersUsers) { my $principal = RT::User->new($session{'CurrentUser'}); if ($member =~ /^User-(\d+)$/) { # Old style, using id $principal->Load($1); } else { # New style, just a username $principal->Load($member); } my ($val, $msg) = $Group->AddMember($principal->PrincipalId); push (@results, $msg); } # Process new groups foreach my $member (grep $_, @AddMembersGroups) { my $principal = RT::Group->new($session{'CurrentUser'}); if ($member =~ /^Group-(\d+)$/) { # Old style, using id $principal->Load($1); } else { # New style, just a group name $principal->LoadUserDefinedGroup($member); } my ($val, $msg) = $Group->AddMember($principal->PrincipalId); push (@results, $msg); } <%ARGS> @AddMembersUsers => () @AddMembersGroups => () $id => undef $SkipSeenUsers => 1 $SkipSeenGroups => 1 rt-4.4.4/share/html/Admin/Groups/Memberships.html000644 000765 000024 00000004037 13437510132 022542 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/MembershipsPage, %ARGS &> rt-4.4.4/share/html/Admin/Groups/History.html000644 000765 000024 00000004636 13437510132 021732 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ShowHistory, Object => $GroupObj, ShowDisplayModes => 0, DisplayPath => 'History.html', &> <%INIT> my $GroupObj = RT::Group->new($session{'CurrentUser'}); $GroupObj->Load($id) || Abort("Couldn't load group '$id'"); my $title = loc("History of the group [_1]", $GroupObj->Name); <%ARGS> $id => '' unless defined $id rt-4.4.4/share/html/Admin/Groups/UserRights.html000644 000765 000024 00000005473 13437510132 022370 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify user rights for group [_1]', $GroupObj->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <& /Admin/Elements/EditRights, Context => $GroupObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
      <%INIT> # Update the acls. my @results = ProcessACLs(\%ARGS); if (!defined $id) { Abort(loc("No Group defined")); } my $GroupObj = RT::Group->new($session{'CurrentUser'}); $GroupObj->Load($id) || Abort(loc("Couldn't load group [_1]",$id)); my @principals = GetPrincipalsMap($GroupObj, 'Users'); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Articles/index.html000644 000765 000024 00000004222 13437510132 021656 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Article Administration') &> <& /Elements/Tabs &> <& /Elements/ListMenu, menu => Menu()->child('admin')->child('articles') &> rt-4.4.4/share/html/Admin/Articles/Classes/000755 000765 000024 00000000000 13437510132 021256 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Articles/Elements/000755 000765 000024 00000000000 13437510132 021435 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Articles/Elements/Topics000644 000765 000024 00000015441 13437510132 022626 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@results &>
      % if (!$Modify) {
      <&|/l&>Topic Name
      <&|/l&>Description
      % } else { New topic % } <& .tree, Element => $tree, Action => $Modify ? "Move" : "Add", Prefix => $Modify ? "Topic-$Modify-Parent" : "Insert", RootObj => $RootObj, Modify => $Modify &>
      <%def .edit>  
      Topic Name:
      Description:
      <%args> $topic <%def .tree> % my $topic = $Element->getNodeValue; % unless ($Element->isRoot) { % if ($Modify and $topic->Id == $Modify) { % $Action = ""; <& .edit, topic => $topic &> % } else { <%$topic->Name || loc("(no name)") %> % } % }
        % for my $e (sort {$a->getNodeValue->Name cmp $b->getNodeValue->Name} $Element->getAllChildren) {
      • <& .tree, Element => $e, Action => $Action, Prefix => $Prefix, RootObj => $RootObj, Modify => $Modify &>
      • % } % if ($Action) { % unless ($Action eq "Move" and grep {$_->getNodeValue->Id == $Modify} $Element->getAllChildren) {
      • Id%>" value="<% $Action eq 'Move' ? loc('Move here') : loc('Add here') %>" />
      • % } % }
      <%args> $Element $Action $Prefix $RootObj $Modify <%INIT> my @results; for my $k (keys %ARGS) { if ($k =~ /^Topic-(\d+)-(Name|Description)/) { my $topic = RT::Topic->new($session{'CurrentUser'}); $topic->Load($1); if ($topic->Id) { next if $ARGS{$k} eq $topic->$2; my $proc = "Set$2"; my ($val, $msg) = $topic->$proc($ARGS{$k}); push @results, $msg; } else { $m->comp("/Elements/Error", Why => loc("Topic not found")); } } elsif ($k =~ /^Topic-(\d+)-Parent-(\d+)/) { my $topic = RT::Topic->new($session{'CurrentUser'}); $topic->Load($1); if ($topic->Id) { next if $2 eq $topic->Parent; my $old = $topic->Parent; my $new = "$2"; my ($val, $msg) = $topic->setParent($new); push @results, $msg; } else { $m->comp("/Elements/Error", Why => loc("Topic not found")); } } elsif ($k =~ /^Insert-(\d+)/) { my $topic = RT::Topic->new($session{'CurrentUser'}); my ($id, $msg) = $topic->Create( Parent => $1, Name => $ARGS{'Name'}, Description => $ARGS{'Description'}, ObjectType => ref($RootObj), ObjectId => $RootObj->Id, ); push @results, $msg; } } for my $k (keys %ARGS) { next unless $k =~ /^Delete-Topic-(\d+)/; my $topic = RT::Topic->new($session{'CurrentUser'}); $topic->Load($1); if ($topic->Id) { my ($val, $msg) = $topic->DeleteAll(); push @results, $msg; } else { $m->comp("/Elements/Error", Why => loc("Topic not found")); } } my $topics = RT::Topics->new($session{'CurrentUser'}); $topics->LimitToObject($RootObj); $topics->OrderByCols({FIELD => 'Parent'}, {FIELD => 'id'}); use Tree::Simple; my $tree = Tree::Simple->new(Tree::Simple->ROOT); my %lookup = (0 => $tree); my @todo; while (my $topic = $topics->Next) { push @todo, $topic; } { my $changed = 0; my @work = @todo; @todo = (); for my $topic (@work) { if (defined $lookup{$topic->Parent}) { $lookup{$topic->Id} = Tree::Simple->new($topic, $lookup{$topic->Parent}); $changed = 1; } else { push @todo, $topic; } } redo unless $changed == 0; } for my $topic (@todo) { $topic->setParent(0); $lookup{$topic->Id} = Tree::Simple->new($topic, $tree); push @results, "Reparented orphan ".$topic->Id." to root"; } <%ARGS> $RootObj => undef $title => "" $Modify => "" rt-4.4.4/share/html/Admin/Articles/Classes/Topics.html000644 000765 000024 00000004751 13437510132 023414 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Articles/Elements/Topics, title => $title, RootObj => $ClassObj, %ARGS &> <%INIT> my $ClassObj = RT::Class->new($session{'CurrentUser'}); $ClassObj->Load($ARGS{'id'}) || $m->comp("/Elements/Error", Why => "Couldn't load class '$id'"); my $title = $Modify ? loc("Modify topic for [_1]", $ClassObj->Name) : loc("Edit topic hierarchy for [_1]", $ClassObj->Name); <%ARGS> $id => undef $Modify => "" rt-4.4.4/share/html/Admin/Articles/Classes/Objects.html000644 000765 000024 00000012311 13437510132 023533 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      % if ( $is_global ) {

      <&|/l&>Applies to all objects

      % } else {

      <&|/l&>Apply globally

      <&|/l&>Selected Queues

      <& /Elements/CollectionList, OrderBy => ['SortOrder','Name'], Order => ['ASC', 'ASC'], %ARGS, Collection => $applied, Rows => 0, Page => 1, Format => $format, DisplayFormat => "'__CheckBox.{RemoveClass-". $Class->id ."}__',". $format, AllowSorting => 0, ShowEmpty => 0, PassArguments => [ qw(id Format Rows Page Order OrderBy), ], &>

      <&|/l&>Unselected Queues

      <& /Elements/CollectionList, OrderBy => ['SortOrder','Name'], Order => ['ASC', 'ASC'], %ARGS, Collection => $not_applied, Rows => $rows, Format => $format, DisplayFormat => "'__CheckBox.{AddClass-". $Class->id ."}__',". $format, AllowSorting => 1, ShowEmpty => 0, PassArguments => [ qw(id Format Rows Page Order OrderBy), ], &> % } <& /Elements/Submit, Name => 'UpdateObjs' &>
      <%INIT> my $Class = RT::Class->new($session{'CurrentUser'}); $Class->Load($id) or Abort(loc("Could not load Class [_1]"), $id); my (@results); if ( $UpdateObjs ) { if ( defined (my $del = $ARGS{'RemoveClass-'.$Class->id}) ) { foreach my $id ( ref $del? (@$del) : ($del) ) { my $object = RT::Queue->new( $session{'CurrentUser'} ); if ( $id ) { $object->Load( $id ); next unless $object->id; } my ($status, $msg) = $Class->RemoveFromObject( $object ); push @results, $msg; } } if ( defined (my $add = $ARGS{'AddClass-'.$Class->id}) ) { foreach my $id ( ref $add? (@$add) : ($add) ) { my $object = RT::Queue->new( $session{'CurrentUser'} ); if ( $id ) { $object->Load( $id ); next unless $object->id; } my ($status, $msg) = $Class->AddToObject( $object ); push @results, $msg; } } } my $is_global = $Class->IsApplied(0); my $applied = $Class->AppliedTo; my $not_applied = $Class->NotAppliedTo; my $collection_class = ref($applied); $collection_class =~ s/^RT:://; my $format = RT->Config->Get('AdminSearchResultFormat')->{$collection_class} || '__id__,__Name__'; my $rows = RT->Config->Get('AdminSearchResultRows')->{$collection_class} || 50; my $title = loc('Modify associated objects for [_1]', $Class->Name); <%ARGS> $id => undef $FindDisabledObjects => 0 $UpdateObjs => 0 rt-4.4.4/share/html/Admin/Articles/Classes/index.html000644 000765 000024 00000006522 13437510132 023260 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Select a Class") &> <& /Elements/Tabs &>

      <%$caption%>:

      <&|/l&>Select a Class:

      % unless ($Classes->Count) { <&|/l&>No Classes matching search criteria found. % } else { <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', Rows => $Rows, %ARGS, Format => $Format, Collection => $Classes, AllowSorting => 1, PassArguments => [qw( Format Rows Page Order OrderBy FindDisabledClasses )], &> % }

      <%INIT> my $caption; my $Classes = RT::Classes->new($session{'CurrentUser'}); if ($FindDisabledClasses) { $caption = loc("All Classes"); $Classes->{'find_disabled_rows'} = 1; $Classes->UnLimit(); } else { $caption = loc("Enabled Classes"); $Classes->LimitToEnabled(); } $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Classes'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'Classes'} || 50; <%ARGS> $FindDisabledClasses => 0 $Format => undef rt-4.4.4/share/html/Admin/Articles/Classes/GroupRights.html000644 000765 000024 00000005526 13437510132 024431 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify group rights for Class [_1]', $ClassObj->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <& /Admin/Elements/EditRights, Context => $ClassObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &>
      <%INIT> if (!defined $id) { $m->comp("/Elements/Error", Why => loc("No Class defined")); } my $ClassObj = RT::Class->new($session{'CurrentUser'}); $ClassObj->Load($id) || $m->comp("/Elements/Error", Why => loc("Couldn't load Class [_1]",$id)); my @results = ProcessACLs(\%ARGS); my @principals = GetPrincipalsMap($ClassObj, qw(System Groups)); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Articles/Classes/Modify.html000644 000765 000024 00000020221 13437510132 023370 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      %if ($Create ) { % } else { % }
      <&|/l&>Class Name:
      <&|/l&>Description:
        >
        >

      <&|/l&>When inserting articles in this class into emails:

      • >
      • >
      • >
      • % if ( $cfs ) { % while (my $cf = $cfs->Next) {
      • <&|/l, $cf->Name &>Include custom field '[_1]'
        • Id} %> />
        • Id} %> />
      • % } }
      % if ( @$subject_cfs ) {

      <&|/l&>Change email subject:

      <&|/l&>If a Custom Field is selected, the Subject of your outgoing email will be overridden by this article.

      <& /Widgets/Form/Select, Name => 'SubjectOverride', DefaultLabel => loc('No Subject Override'), Values => $subject_cfs, ValuesLabel => $subject_cf_labels, CurrentValue => $ClassObj->SubjectOverride, &> % } %$m->callback( CallbackName => 'BeforeSubmit', CustomFields => $cfs, ClassObj => $ClassObj ); % if ( $Create ) { <& /Elements/Submit, Label => loc('Create') &> % } else { <& /Elements/Submit, Label => loc('Save Changes') &> % }
      <%INIT> my $ClassObj = RT::Class->new($session{'CurrentUser'}); my ($title, @results, $Disabled); if ($Create) { $title = loc("Create a Class"); } else { my ( $val, $msg ); if ($id eq 'new') { ($val, $msg) = $ClassObj->Create(Name => $Name); if ( $val ) { push @results, $msg; } else { push @results, loc('Class could not be created: [_1]', $msg); } } else { $ClassObj->Load($id) || $ClassObj->Load($Name) || $m->comp("/Elements/Error", Why => "Couldn't load class '$Name'"); $val = $ClassObj->id; } if ( $val ) { $title = loc('Modify the Class [_1]', $ClassObj->Name); } else { $title = loc("Create a Class"); $Create = 1; } } if ($ClassObj->Id()) { if ($ARGS{SubjectOverride}) { $ARGS{SubjectOverride} = $m->comp('/Widgets/Form/Select:Process', Arguments => \%ARGS, Name => 'SubjectOverride', DefaultValue => (''), ); } $ARGS{HotList} ||= 0 if $Submitted; my @attribs= qw(Description Name HotList SubjectOverride); $m->callback( CallbackName => 'AttributeList', Attributes => \@attribs, ARGSRef => \%ARGS ); push @results, UpdateRecordObject( AttributesRef => \@attribs, Object => $ClassObj, ARGSRef => \%ARGS); } #we're asking about enabled on the web page but really care about disabled. if ((defined $Enabled && $Enabled == 1) or (not defined $Enabled and $Create)) { $Disabled = 0; } else { $Disabled = 1; } my %include = (Name => 1, Summary => 1, EscapeHTML => 1); my $subject_cfs = []; my $subject_cf_labels = {}; my $cfs; if ( $ClassObj->id ) { $cfs = $ClassObj->ArticleCustomFields; while ( my $cf = $cfs->Next ) { $include{"CF-Title-".$cf->Id} = $include{"CF-Value-".$cf->Id} = 1; push @$subject_cfs,$cf->Id; $subject_cf_labels->{$cf->Id} = $cf->Name; } } if ( $ClassObj->id && $Submitted ) { if ( $Disabled != $ClassObj->Disabled) { my ($code, $msg) = $ClassObj->SetDisabled($Disabled); push @results, loc('Enabled status [_1]', loc_fuzzy($msg)); } for (keys %include) { if ($ARGS{"Include-$_"}) { $ClassObj->DeleteAttribute("Skip-$_"); } else { $ClassObj->SetAttribute(Name => "Skip-$_", Content => 1); } } } # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@results, Arguments => { id => $ClassObj->Id }, ) if $ClassObj->id; if ( $ClassObj->id ) { $include{$_} = not $ClassObj->FirstAttribute("Skip-$_") for keys %include; } $include{$_} = $include{$_} ? " CHECKED" : "" for keys %include; my $EnabledChecked = ($Create ? $Disabled : $ClassObj->Disabled()) ? "" : "CHECKED"; my $HotListChecked = $ClassObj->id && $ClassObj->HotList ? "CHECKED" : ""; <%ARGS> $id => undef $result => undef $Name => undef $Create => undef $Description => undef $Submitted => undef $Enabled => undef rt-4.4.4/share/html/Admin/Articles/Classes/CustomFields.html000644 000765 000024 00000005054 13437510132 024551 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, Object => $Object, ObjectType => 'RT::Class', SubType => 'RT::Article' &> <%INIT> my $Object = RT::Class->new( $session{'CurrentUser'} ); $Object->Load($id) || Abort( loc( "Couldn't load object [_1]", $id ) ); my $FriendlySubTypes = RT::CustomField->new( $session{'CurrentUser'} ) ->FriendlyLookupType( $Object->CustomFieldLookupType ); my $title = loc( 'Edit Custom Fields for [_1]', $Object->Name ); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/Articles/Classes/UserRights.html000644 000765 000024 00000005501 13437510132 024244 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Modify user rights for class [_1]', $ClassObj->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <& /Admin/Elements/EditRights, Context => $ClassObj, Principals => \@principals &> <& /Elements/Submit, Label => loc('Save Changes') &> <%INIT> my @results = ProcessACLs(\%ARGS); if (!defined $id) { $m->comp("/Elements/Error", Why => loc("No Class defined")); } my $ClassObj = RT::Class->new($session{'CurrentUser'}); $ClassObj->Load($id) || $m->comp("/Elements/Error", Why => loc("Couldn't load Class [_1]",$id)); my @principals = GetPrincipalsMap($ClassObj, 'Users'); <%ARGS> $id => undef rt-4.4.4/share/html/Admin/CustomRoles/Objects.html000644 000765 000024 00000010551 13437510132 022653 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions &>

      <&|/l&>Selected objects

      <& /Elements/CollectionList, OrderBy => 'id', Order => 'ASC', %ARGS, Collection => $added, Rows => 0, Page => 1, Format => $format, DisplayFormat => "'__CheckBox.{RemoveRole-$id}__',". $format, AllowSorting => 0, ShowEmpty => 0, PassArguments => [ qw(id Format Rows Page Order OrderBy), ], &>

      <&|/l&>Unselected objects

      <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', %ARGS, Collection => $not_added, Rows => $rows, Format => $format, DisplayFormat => "'__CheckBox.{AddRole-". $id ."}__',". $format, AllowSorting => 1, ShowEmpty => 0, PassArguments => [ qw(id Format Rows Page Order OrderBy), ], &> <& /Elements/Submit, Name => 'Update' &> <%ARGS> $id => undef $Update => 0 $From => undef <%INIT> my $role = RT::CustomRole->new( $session{'CurrentUser'} ); $role->Load($id) or Abort(loc("Could not load custom role #[_1]", $id)); $id = $role->id; if ($role->Disabled) { Abort(loc("Cannot modify objects of disabled custom role #[_1]", $id)); } if ( $Update ) { my (@results); if ( defined (my $del = $ARGS{"RemoveRole-$id"}) ) { foreach my $id ( ref $del ? (@$del) : ($del) ) { my ($status, $msg) = $role->RemoveFromObject( $id ); push @results, $msg; } } if ( defined (my $add = $ARGS{"AddRole-$id"}) ) { foreach my $id ( ref $add ? (@$add) : ($add) ) { my ($status, $msg) = $role->AddToObject( $id ); push @results, $msg; } } MaybeRedirectForResults( Actions => \@results, Arguments => { id => $id, From => $From, }, ); } my $added = $role->AddedTo; my $not_added = $role->NotAddedTo; my $format = RT->Config->Get('AdminSearchResultFormat')->{'Queues'}; my $rows = RT->Config->Get('AdminSearchResultRows')->{'Queues'} || 50; my $title = loc('Modify associated objects for [_1]', $role->Name); rt-4.4.4/share/html/Admin/CustomRoles/index.html000644 000765 000024 00000010401 13437510132 022363 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &>

      <%$title%>

      % foreach my $field( qw(Format Rows Page Order OrderBy) ) { % next unless defined $ARGS{ $field } && length $ARGS{ $field }; % } <& /Elements/SelectMatch, Name => 'SearchOp', Default => $SearchOp &>
      />

      <&|/l&>Select a custom role:

      % unless ( $roles->Count ) { <&|/l&>No custom roles matching search criteria found. % } else { <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', Rows => $Rows, %ARGS, Format => $Format, Collection => $roles, AllowSorting => 1, PassArguments => [qw( Format Rows Page Order OrderBy FindDisabled SearchString SearchOp SearchField )], &> % } <%INIT> my $title = loc("Select a Custom Role"); my $roles = RT::CustomRoles->new($session{'CurrentUser'}); $roles->FindAllRows if $FindDisabled; if ( defined $SearchString && length $SearchString ) { $roles->Limit( FIELD => $SearchField, OPERATOR => $SearchOp, VALUE => $SearchString, ); RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Admin/CustomRoles/Modify.html?id=".$roles->First->id) if $roles->Count == 1; } else { $roles->UnLimit; } $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'CustomRoles'}; my $Rows = RT->Config->Get('AdminSearchResultRows')->{'CustomRoles'} || 50; <%ARGS> $FindDisabled => 0 $Format => undef $SearchField => 'Name' $SearchOp => 'LIKE' $SearchString => '' rt-4.4.4/share/html/Admin/CustomRoles/Modify.html000644 000765 000024 00000014357 13437510132 022521 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      % $m->callback( CallbackName => 'FormStart', Create => $Create, ARGSRef => \%ARGS );
      <&|/l&>Role Name: Name || $Name %>" />
      <&|/l&>Description: Description || $Description || '' %>" size="60" />
      <&|/l&>Entry Hint: EntryHint || $EntryHint || '' %>" size="60" />
      UnlimitedValues ) { checked="checked" % } % if ( !$Create ) { disabled="disabled" % } />
      />
      % $m->callback( %ARGS, RoleObj => $RoleObj, results => \@results );
      % if ( $Create ) { <& /Elements/Submit, Label => loc('Create') &> % } else { <& /Elements/Submit, Label => loc('Save Changes') &> % }
      <%INIT> my ($title, @results, @no_redirect_results, $Disabled, $EnabledChecked); my $RoleObj = RT::CustomRole->new( $session{'CurrentUser'} ); $RoleObj->Load( $id ) if !$id || $id eq 'new'; $EnabledChecked = 'checked="checked"'; unless ($Create) { if ( defined $id && $id eq 'new' ) { my ($val, $msg) = $RoleObj->Create( Name => $Name ); if (!$val) { $Create = 1; # Create failed, so bring us back to step 1 push @results, $msg; } else { push @results, loc("Custom role created"); } } else { $RoleObj->Load($id) || $RoleObj->Load($Name) || Abort(loc("Couldn't load custom role '[_1]'", $Name)); } } if ( $RoleObj->Id ) { $title = loc('Configuration for role [_1]', $RoleObj->Name ); my @attribs = qw(Description Name EntryHint Disabled); # we just created the role if (!$id || $id eq 'new') { push @attribs, 'MaxValues'; if ( $SetMultiple ) { $ARGS{'MaxValues'} = $Multiple ? 0 : 1; } } # we're asking about enabled on the page but really care about disabled if ( $SetEnabled ) { $Disabled = $ARGS{'Disabled'} = $Enabled? 0: 1; } $m->callback( CallbackName => 'BeforeUpdate', Role => $RoleObj, AttributesRef => \@attribs, ARGSRef => \%ARGS, ); my @update_results = UpdateRecordObject( AttributesRef => \@attribs, Object => $RoleObj, ARGSRef => \%ARGS ); # if we're creating, then don't bother listing updates since it's just # noise for finishing the setup of the newly created record if ($id && $id ne 'new') { push @results, @update_results; } $Disabled = $ARGS{'Disabled'} = $Enabled? 0: 1; $EnabledChecked = "" if $RoleObj->Disabled; } else { $title = loc("Create a custom role"); } MaybeRedirectForResults( Actions => \@results, Arguments => { id => $RoleObj->Id }, ) if $RoleObj->id; push @results, @no_redirect_results; <%ARGS> $id => undef $result => undef $Name => undef $Create => undef $Description => undef $EntryHint => undef $SetEnabled => undef $SetMultiple => undef $Multiple => undef $Enabled => undef rt-4.4.4/share/html/Admin/Tools/index.html000644 000765 000024 00000004213 13437510132 021210 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('System Tools') &> <& /Elements/Tabs &> <& /Elements/ListMenu, menu => Menu()->child('admin')->child('tools') &> rt-4.4.4/share/html/Admin/Tools/Configuration.html000644 000765 000024 00000027414 13437510132 022720 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> require Module::Versions::Report; my $title = loc('System Configuration'); unless ($session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser')) { Abort(loc('This feature is only available to system administrators')); } <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <&|/Widgets/TitleBox, title => loc("RT Configuration") &> <%PERL> my $index_conf; foreach my $key ( RT->Config->Options( Overridable => undef, Sorted => 0 ) ) { my $val = RT->Config->GetObfuscated( $key, $session{'CurrentUser'} ); next unless defined $val; my $meta = RT->Config->Meta( $key ); my $description = ''; if ( $meta->{'Source'}{'Extension'} && $meta->{'Source'}{'SiteConfig'} ) { $description = loc("[_1] site config", $meta->{'Source'}{'Extension'}); } elsif ( $meta->{'Source'}{'Extension'} ) { $description = loc("[_1] core config", $meta->{'Source'}{'Extension'}); } elsif ( $meta->{'Source'}{'SiteConfig'} ) { $description = loc("site config"); } else { $description = loc("core config"); } $index_conf++; % }
      <&|/l&>Option <&|/l&>Value <&|/l&>Source
      <% $key %> % if ( $key =~ /Password/i and $key !~ /MinimumPasswordLength|AllowLoginPasswordAutoComplete/ ) { <% loc('Password not printed' ) %>\ % } else { <% stringify($val) |n %>\ % } % if ( $meta->{'Source'}{'SiteConfig'} ) { <% $description %> % } else { <% $description %> % }
      <&|/Widgets/TitleBox, title=> loc("RT core variables") &> <%PERL> { no strict qw/refs/; my %config_opt = map { $_ => 1 } RT->Config->Options( Overridable => undef ); my $index_var; foreach my $key ( sort keys %{*RT::} ) { next if !${'RT::'.$key} || ref ${'RT::'.$key} || $config_opt{ $key }; $index_var++; % } % }
      <&|/l&>Variable <&|/l&>Value
      RT::<% $key %> % if ( $key =~ /Password(?!Length)/i ) { <% loc('Password not printed' ) %>\ % } else { <% ${'RT::'.$key} %> % }
      <&|/Widgets/TitleBox, title => loc("RT Size") &> <%PERL> my ($index_size, $user_count, $privileged_count); for my $type (qw/Tickets Queues Transactions Groups PrivilegedUsers UnprivilegedUsers/) { my $count; my $class = 'RT::' . $type; $class =~ s/Privileged|Unprivileged//; my $collection = $class->new(RT->SystemUser); $collection->UnLimit; $collection->FindAllRows; # find disabled if ($type =~ /PrivilegedUsers/) { $user_count = $collection->CountAll; $collection->LimitToPrivileged; $count = $privileged_count = $collection->CountAll; } elsif ($type =~ /UnprivilegedUsers/) { $count = $user_count - $privileged_count; } else { $count = $collection->CountAll; } $index_size++; % }
      <&|/l&>Object <&|/l&>Size
      <% $type %> <% $count %>
      <&|/Widgets/TitleBox, title => loc("Mason template search order") &>
        % foreach my $path ( RT::Interface::Web->ComponentRoots ) {
      1. <% $path %>
      2. % }
      <&|/Widgets/TitleBox, title => loc("Static file search order") &>
        % foreach my $path ( (map {$_->{root}} RT->Config->Get('StaticRoots')), % RT::Interface::Web->StaticRoots ) {
      1. <% $path %>
      2. % }
      <&|/Widgets/TitleBox, title => loc("Perl library search order") &>
        % foreach my $inc (@INC) {
      1. <% $inc %>
      2. % }
      <&|/Widgets/TitleBox, title=> loc("Loaded config files") &>
        % foreach my $config (RT->Config->LoadedConfigs) { % if ($config->{site}) {
      1. <% $config->{filename} %>
      2. % } else {
      3. <% $config->{filename} %>
      4. % } % }
      <&|/Widgets/TitleBox, title=> loc("Logging summary") &> <& /Admin/Elements/LoggingSummary &>
      <&|/Widgets/TitleBox, title => loc("Global Attributes") &> % my $attrs = $RT::System->Attributes; % my $index_size = 0; % while ( my $attr = $attrs->Next ) { % next if $attr->Name eq 'UpgradeHistory'; % if ($attr->Name eq 'UserLogo') { % my $content = $attr->Content; % $content->{data} = defined $content->{data} ? 'DATA' : 'undef' % if exists $content->{data}; % } else { % } % $index_size++; % }
      <&|/l&>Name <&|/l&>Value
      <% $attr->Name %><% stringify($content) |n %><% $attr->Name %><% stringify($attr->Content) |n %>
      <&|/Widgets/TitleBox, title => loc("Loaded RT Extensions")&> % my $row = 0; % foreach my $pluginName (grep $_, RT->Config->Get('Plugins')) { % my $plugin = RT::Plugin->new( name => $pluginName ); % }
      <&|/l&>Extension <&|/l&>Version
      <%$plugin->Name%> <%$plugin->Version%>
      <&|/Widgets/TitleBox, title => loc("Loaded perl modules")&> <%perl> my $i = 0; my $report = Module::Versions::Report::report(); my @report = grep /v\d/, split("\n",$report); shift @report; # throw away the perl version my ($ver, $source, $distfile); foreach my $item (@report) { if ($item =~ /^\s*(.*?)\s*v(\S+);/) { $item = $1; $ver = $2; $distfile = $item.".pm"; $distfile =~ s|::|/|g; } % }
      <&|/l&>Module <&|/l&>Version <&|/l&>Source
      <% $item %> <%$ver%> <% $INC{$distfile} || '' %>
      <&|/Widgets/TitleBox, title => loc("RT upgrade history")&> <& /Admin/Elements/UpgradeHistory &> <&|/Widgets/TitleBox, title => loc("Perl configuration") &> % require Config;
      <% Config::myconfig() %>
      
      <&|/Widgets/TitleBox, title=> loc("Environment variables") &> % my $row = 0; % for my $key (sort keys %ENV) { % }
      <&|/l&>Variable <&|/l&>Value
      <% $key %> <% $ENV{$key} %>
      <&|/Widgets/TitleBox, title => loc("Operating System") &> <%perl> my @os = ( "Distribution" => 'lsb_release --all', "uname -a" => 'uname -a', "SELinux status" => 'getenforce', "Apache" => [map { "$_ -V" } qw(apache2ctl apachectl httpdctl)], "nginx" => 'nginx -V 2>&1', "lighttpd" => 'lighttpd -V', ); my @os_info; while (my ($name, $cmd) = splice @os, 0, 2) { $cmd = [$cmd] unless ref $cmd eq 'ARRAY'; for my $run (@$cmd) { $run .= " /; my $result = `$run`; if (defined $result and $result =~ /\S/) { push @os_info, $name => $result; last; } } } my $row = 1; % while (my ($name, $output) = splice @os_info, 0, 2) { "> % }
      Deployment type <% $INC{'mod_perl.pm'} ? "mod_perl" : $INC{'FCGI.pm'} ? "fastcgi" : "standalone" %>
      <% $name %> <% $output %>
      <%INIT> use Data::Dumper; local $Data::Dumper::Terse = 1; local $Data::Dumper::Indent = 2; sub stringify { my $value = shift; my $output = Dumper $value; RT::Interface::Web::EscapeHTML(\$output); $output =~ s/ / /g; $output =~ s!\n!
      !g; return $output; } rt-4.4.4/share/html/Admin/Tools/Queries.html000644 000765 000024 00000013723 13437510132 021524 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Undup => 1 $ShowElem => 0 <%init> my $title = loc('SQL Queries'); unless ($session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser')) { Abort(loc('This feature is only available to system administrators.')); } <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <&|/Widgets/TitleBox, title => loc('SQL Queries') &> % my $history = $RT::Handle->QueryHistory; % if (!RT->Config->Get('StatementLog')) {

      <&|/l&>You must set StatementLog to true to enable this query history page.

      % } elsif (!$history) {

      <&|/l&>This server process has recorded no SQL queries.

      % } else {
        % my $r = 0; % for my $request (@$history) { % ++$r; % my ($seconds, $count) = (0, 0); % for my $statement (@{ $request->{Queries} }) { % $seconds += $statement->[3]; % $count++; % }
      1. <% $request->{Path} %> - <&|/l, sprintf('%.4f', $seconds) &>[_1]s );"><&|/l, $count &>Toggle [quant,_1,query,queries] % my $s = 0; % my @undup; % for my $statement (@{ $request->{Queries} }) { % my ($dup) = grep {$_->[1] eq $statement->[1]} @undup[-(@undup > 3?3:@undup)..-1]; % if ($Undup and $dup) { % $dup->[2] = [$dup->[2]] unless $dup->[5]; % push @{$dup->[2]}, $statement->[2]; % $dup->[3] += $statement->[3]; % $dup->[5] ||= 1; $dup->[5]++; % } else { % push @undup, $statement; % } % } % my $element = ''; % for my $statement (@undup) { % my ( $time, $sql, $bind, $duration, $trace, $dup ) = @$statement; % if ($ShowElem) { % my($cur_element) = $trace =~ m{called at (.*?) line \d+\n\s+HTML::Mason::Commands::__ANON__}; % if ($element ne $cur_element) { % $element = $cur_element; % } % } % $sql = $RT::Handle->FillIn($sql, $bind) unless $dup; % }
      2. % }
      % } rt-4.4.4/share/html/Admin/Tools/Shredder/000755 000765 000024 00000000000 13437510132 020753 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Tools/Theme.html000644 000765 000024 00000033156 13437510132 021153 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc("Theme"), &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>

      <&|/l&>Customize the RT theme

      1. <&|/l&>Select a color for the section:
        % if ($colors) {
        % for (@$colors) { % my $fg = $_->{l} >= $text_threshold ? 'black' : 'white'; % }
        % }

      <&|/l&>Custom CSS (Advanced)


      <%ONCE> my @sections = ( ['Page' => ['body', 'div#body']], ['Menu bar' => ['div#quickbar', '#main-navigation #app-nav.sf-shadow > li, #main-navigation #app-nav.sf-shadow > li > a, #prefs-menu > li, #prefs-menu > li > a, #logo .rtname']], ['Title bar' => ['div#header']], ['Page title' => ['div#header h1']], ['Page content' => ['div#body']], ['Buttons' => ['input[type="reset"], input[type="submit"], input[class="button"]']], ['Button hover' => ['input[type="reset"]:hover, input[type="submit"]:hover, input[class="button"]:hover']], ['Search results' => ['table.collection-as-table th.collection-as-table a']], ['Portlet Text' => ['.titlebox .titlebox-title .left a, .titlebox .titlebox-title .left']], ); <%INIT> unless ($session{'CurrentUser'}->HasRight( Object=> RT->System, Right => 'SuperUser')) { Abort(loc('This feature is only available to system administrators.')); } use Digest::MD5 'md5_hex'; my $text_threshold = 0.6; my @results; my $imgdata; my $colors; my $valid_image_types; if (not RT->Config->Get('DisableGD') and Convert::Color->require) { require GD; # Always find out what GD can read... my %gd_can; for my $type (qw(Png Jpeg Gif)) { $gd_can{$type}++ if GD::Image->can("newFrom${type}Data"); } $valid_image_types = join(", ", map { uc } sort { lc $a cmp lc $b } keys %gd_can); } my $analyze_img = sub { return undef unless $valid_image_types; my $imgdata = shift; return undef unless $imgdata; # ...but only analyze the image if we have data my $img = GD::Image->new($imgdata); unless ($img) { # This has to be one damn long line because the loc() needs to be # source parsed correctly. push @results, loc("Automatically suggested theme colors aren't available for your image. This might be because you uploaded an image type that your installed version of GD doesn't support. Supported types are: [_1]. You can recompile libgd and GD.pm to include support for other image types.", $valid_image_types); return undef; } my %colors; my @wsamples; my @hsamples; if ($img->width > 200) { @wsamples = map { int($img->width*($_/200)) } (0..199); } else { @wsamples = ( 0 .. $img->width - 1 ); } if ($img->height > 200) { @hsamples = map { int($img->height*($_/200)) } (0..199); } else { @hsamples = ( 0 .. $img->height - 1 ); } for my $i (@wsamples) { for my $j (@hsamples) { my @color = $img->rgb( $img->getPixel($i,$j) ); my $hsl = Convert::Color->new('rgb:'.join(',',map { $_ / 255 } @color))->convert_to('hsl'); my $c = join(',',@color); next if $hsl->lightness < 0.1; $colors{$c} ||= { h => $hsl->hue, s => $hsl->saturation, l => $hsl->lightness, cnt => 0, c => $c}; $colors{$c}->{cnt}++; } } for (values %colors) { $_->{rank} = $_->{s} * $_->{cnt}; } my @top5 = grep { defined and $_->{'l'} and $_->{'c'} } (sort { $b->{rank} <=> $a->{rank} } values %colors)[0..5]; return \@top5; }; if (my $file_hash = _UploadedFile( 'logo-upload' )) { $colors = $analyze_img->($file_hash->{LargeContent}); my $my_system = RT::System->new( $session{CurrentUser} ); my ( $id, $msg ) = $my_system->SetAttribute( Name => "UserLogo", Description => "User-provided logo", Content => { type => $file_hash->{ContentType}, data => $file_hash->{LargeContent}, hash => md5_hex($file_hash->{LargeContent}), colors => $colors, }, ); push @results, loc("Unable to set UserLogo: [_1]", $msg) unless $id; $imgdata = $file_hash->{LargeContent}; } elsif ($ARGS{'reset_logo'}) { RT->System->DeleteAttribute('UserLogo'); } else { if (my $attr = RT->System->FirstAttribute('UserLogo')) { my $content = $attr->Content; if (ref($content) eq 'HASH') { $imgdata = $content->{data}; $colors = $content->{colors}; unless ($colors) { # No colors cached; attempt to generate them $colors = $content->{colors} = $analyze_img->($content->{data}); if ($content->{colors}) { # Found colors; update the attribute RT->System->SetAttribute( Name => "UserLogo", Description => "User-provided logo", Content => $content, ); } } } else { RT->System->DeleteAttribute('UserLogo'); } } } if ($user_css) { if ($ARGS{'reset_css'}) { RT->System->DeleteAttribute('UserCSS'); undef $user_css; } else { my ($id, $msg) = RT->System->SetAttribute( Name => "UserCSS", Description => "User-provided css", Content => $user_css ); push @results, loc("Unable to set UserCSS: [_1]", $msg) unless $id; } } if (!$user_css) { my $attr = RT->System->FirstAttribute('UserCSS'); $user_css = $attr ? $attr->Content : join( "\n\n" => map { join "\n" => "/* ". $_->[0] ." */", map { "$_ {}" } @{$_->[1]} } @sections ); } <%ARGS> $user_css => '' rt-4.4.4/share/html/Admin/Tools/Shredder/Dumps/000755 000765 000024 00000000000 13437510132 022043 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Tools/Shredder/index.html000644 000765 000024 00000013740 13437510132 022755 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Plugin => '' $Search => '' $Wipeout => '' @WipeoutObject => () <& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &>
      <& /Elements/ListActions, actions => $messages{'Errors'} &> <& /Elements/ListActions, actions => $messages{'Success'} &> <& Elements/DumpFileLink, File => $dump_file &> <& Elements/SelectPlugin, Plugin => $Plugin, %ARGS &>
      <& /Elements/Submit, Name => 'Search', Label => loc('Search') &>

      % if( $Search || $Wipeout ) { <& Elements/SelectObjects, Objects => \@objs &> % }
      <%INIT> require RT::Shredder; my $title = loc('Shredder'); my %messages = ( Errors => [], Success => [] ); my ($plugin_obj, @objs); my $catch_non_fatals = sub { require RT::Shredder::Exceptions; if ( my $e = RT::Shredder::Exception::Info->caught ) { push @{ $messages{Errors} }, "$e"; $Search = ''; @objs = (); return 1; } if ( UNIVERSAL::isa( $@, 'Class::Exception' ) ) { $@->rethrow; } else { die $@; } }; if( $Plugin ) { { # use additional block({}) to effectively exit block on errors use RT::Shredder::Plugin; $plugin_obj = RT::Shredder::Plugin->new; my( $status, $msg ) = $plugin_obj->LoadByName( $Plugin ); unless( $status ) { push @{ $messages{Errors} }, $msg; $Search = ''; last; } my %args; foreach my $k( keys %ARGS ) { next unless $k =~ /^\Q$Plugin\E:(.*)$/; $args{ $1 } = $ARGS{$k}; } ( $status, $msg ) = $plugin_obj->HasSupportForArgs( keys %args ); unless( $status ) { push @{ $messages{Errors} }, $msg; $Search = ''; last; } ($status, $msg) = eval { $plugin_obj->TestArgs( %args ) }; $catch_non_fatals->() && last if $@; unless( $status ) { push @{ $messages{Errors} }, $msg; $Search = ''; last; } } } my $dump_file = ''; if( $Plugin && $Wipeout ) { { # use additional block({}) to effectively exit block on errors my $shredder = RT::Shredder->new( force => 1 ); my $backup_plugin = RT::Shredder::Plugin->new; my ($status, $msg) = $backup_plugin->LoadByName('SQLDump'); unless( $status ) { push @{ $messages{Errors} }, $msg; $Search = ''; @objs = (); last; } ($status, $msg) = $backup_plugin->TestArgs; unless( $status ) { push @{ $messages{Errors} }, $msg; $Search = ''; @objs = (); last; } ($dump_file) = $backup_plugin->FileName; push @{ $messages{'Success'} }, "SQL dump file is '$dump_file'"; $shredder->AddDumpPlugin( Object => $backup_plugin ); $shredder->PutObjects( Objects => \@WipeoutObject ); ($status, $msg) = $plugin_obj->SetResolvers( Shredder => $shredder ); unless( $status ) { push @{ $messages{Errors} }, $msg; $Search = ''; @objs = (); last; } eval { $shredder->WipeoutAll }; $catch_non_fatals->() && last if $@; push @{ $messages{Success} }, loc('objects were successfuly removed'); } } if( $Plugin && ( $Search || $Wipeout ) ) { { # use additional block({}) to effectively exit block on errors my $status; ($status, @objs) = eval { $plugin_obj->Run }; $catch_non_fatals->() && last if $@; unless( $status ) { push @{ $messages{Errors} }, $objs[0]; $Search = ''; @objs = (); last; } push @{ $messages{Success} }, loc('executed plugin successfuly'); my $shredder = RT::Shredder->new; foreach my $o( grep defined, splice @objs ) { eval { push @objs, $shredder->CastObjectsToRecords( Objects => $o ) }; $catch_non_fatals->() && last if $@; } unless( @objs ) { push @{ $messages{Success} }, loc('plugin returned empty list'); } else { push @{ $messages{Success} }, loc('see object list below'); } } } rt-4.4.4/share/html/Admin/Tools/Shredder/autohandler000644 000765 000024 00000004510 13437510132 023204 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> unless( $session{'CurrentUser'}->HasRight( Right => 'SuperUser', Object => $RT::System ) ) { return $m->comp( 'Elements/Error/NoRights' ); } use RT::Shredder (); my $path = RT::Shredder->StoragePath; unless( -d $path && -w _ ) { return $m->comp( 'Elements/Error/NoStorage', Path => $path ); } $m->call_next(%ARGS); rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/000755 000765 000024 00000000000 13437510132 022527 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/SelectObjects000644 000765 000024 00000005051 13437510132 025204 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> @Objects => ()
      % unless( @Objects ) { <& /Elements/ListActions, actions => [loc("Objects list is empty")] &> % } else {
      <% loc("click to check/uncheck all objects at once") %>
      % foreach my $o( @Objects ) { <& ObjectCheckBox, Object => $o &> % }
      <& /Elements/Submit, Name => 'Wipeout', Label => loc('Wipeout') &> % }
      <%INIT> rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/ObjectCheckBox000644 000765 000024 00000004560 13437510132 025274 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Object => undef % if( $m->comp_exists( $path ) ) { % $m->comp( $path, Object => $Object ); % } else { <% $Object->UID %> % }
      <%ONCE> require File::Spec; <%INIT> my $path = ref $Object; $path =~ s/:/-/g; $path = File::Spec->catfile( 'Object', $path ); rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/PluginArguments000644 000765 000024 00000005126 13437510132 025602 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Plugin => ''
      <% loc('Fill arguments') %>:
      % for my $a ( $plugin_obj->SupportArgs ) { % }
      " id="<% "$Plugin:$a" %>" value="<% $ARGS{ "$Plugin:$a" } || '' %>" />
      <%INIT> use RT::Shredder::Plugin; my $plugin_obj = RT::Shredder::Plugin->new; my ($status, $msg) = $plugin_obj->LoadByName( $Plugin ); die $msg unless $status; rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/Object/000755 000765 000024 00000000000 13437510132 023735 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/SelectPlugin000644 000765 000024 00000005400 13437510132 025047 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Plugin => '' <& PluginHelp, %ARGS, Plugin => 'Base' &>
      Select plugin:
      % foreach my $p( keys %plugins ) {
      <& PluginHelp, %ARGS, Plugin => $p &> <& PluginArguments, %ARGS, Plugin => $p &>
      % }
      <%ONCE> use RT::Shredder::Plugin; my $plugin_obj = RT::Shredder::Plugin->new; my %plugins = $plugin_obj->List('Search'); rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/DumpFileLink000644 000765 000024 00000004604 13437510132 025001 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $File => '' <%INIT> return unless $File; use File::Spec (); use RT::Shredder (); $File = File::Spec->abs2rel( $File, RT::Shredder->StoragePath ) if File::Spec->file_name_is_absolute($File); rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/Error/000755 000765 000024 00000000000 13437510132 023620 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/PluginHelp000644 000765 000024 00000005257 13437510132 024532 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Plugin => ''
      <% $text |n%>
      <%ONCE> use RT::Shredder::Plugin; my $plugin_obj = RT::Shredder::Plugin->new; my %plugins = $plugin_obj->List; <%INIT> my $file = $plugins{ $Plugin }; unless( $file ) { $RT::Logger->error( "Couldn't find plugin '$Plugin'" ); return; } use RT::Shredder::POD qw(); my $text = ''; open( my $io_handle, ">:scalar", \$text ) or die "Can't open scalar for write: $!"; RT::Shredder::POD::plugin_html( $file, $io_handle ); if ( $Plugin eq 'Base' ) { $file =~ s/\.pm$/\/Search.pm/; RT::Shredder::POD::plugin_html( $file, $io_handle ); } close $io_handle; rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/Error/NoRights000644 000765 000024 00000004206 13437510132 025302 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => 'Error' &> <& /Elements/Tabs &>
      <% loc("You don't have SuperUser right.") |n%>
      rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage000644 000765 000024 00000004566 13437510132 025457 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Path => '' <& /Admin/Elements/Header, Title => 'Error' &> <& /Elements/Tabs &>
      % my $path_tag = q{} . $m->interp->apply_escapes($Path, 'h') . q{}; <&|/l_unsafe, $path_tag &>Shredder needs a directory to write dumps to. Please ensure that the directory [_1] exists and that it is writable by your web server.
      rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/Object/RT--Attachment000644 000765 000024 00000004560 13437510132 026355 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Object => undef % my $name = (defined $Object->Filename and length $Object->Filename) ? $Object->Filename : loc("(no value)"); <% loc('Attachment') %>(<% loc('id') %>:<% $Object->id %>, <% loc('Filename') %>: <% $name %>) rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/Object/RT--Ticket000644 000765 000024 00000004345 13437510132 025511 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Object => undef <% loc('Ticket') %>(<% loc('id') %>:<% $Object->id %>, <% loc('Subject') %>: <% substr($Object->Subject, 0, 30) %>...) rt-4.4.4/share/html/Admin/Tools/Shredder/Elements/Object/RT--User000644 000765 000024 00000004317 13437510132 025203 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Object => undef <% loc('User') %>(<% loc('id') %>:<% $Object->id %>, <% loc('Name') %>: <% $Object->Name %>) rt-4.4.4/share/html/Admin/Tools/Shredder/Dumps/dhandler000644 000765 000024 00000004577 13437510132 023564 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ATTR> AutoFlush => 0 <%INIT> my $arg = $m->dhandler_arg; $m->abort(404) if $arg =~ m{\.\.|/|\\}; use File::Spec (); use RT::Shredder (); my $File = File::Spec->catfile( RT::Shredder->StoragePath, $arg ); $r->content_type('application/octets-stream'); open my $fh, "<:raw", $File or $m->abort(404); my $buf; while( read $fh, $buf, 1024*1024 ) { $m->out($buf); } $m->abort; rt-4.4.4/share/html/Articles/Topics.html000644 000765 000024 00000014413 13437510132 020763 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Browse by topic') &> <& /Elements/Tabs &> <&|/l&>All topics % if (defined $class) { > <% $currclass_name %> % } % if ($id != 0) { > <& /Articles/Elements/ShowTopic, topic => $currtopic &> % }

      <&|/l&>Browse by topic

      % if (defined $class) {

      <% $currclass_name %>

      % my $rtopic = RT::Topic->new( $session{'CurrentUser'} ); % $rtopic->Load($id); % unless ( $rtopic->Id() % && $rtopic->ObjectId() == $currclass->Id ) % { % # Show all of them % $ProduceTree->( 0 ); % } else { % my @showtopics = ( $rtopic ); % my $parent = $rtopic->ParentObj; % while ( $parent->Id ) { % unshift @showtopics, $parent; % $parent = $parent->ParentObj; % } % # List the topics. % for my $t ( @showtopics ) {
      • <& /Articles/Elements/ShowTopicLink, Topic => $t, Class => $currclass_id &> % $ProduceTree->( $id ) if $t->Id == $id; % } % for ( @showtopics ) {
      % } % } % } else { % }
      % if (@articles) { % if ($id) {

      <&|/l, $currtopic->Name&>Articles in [_1]

      % } elsif ($class) {

      <&|/l&>Articles with no topics

      % } % } <%init> my $Classes; my $currclass; my $currclass_id; my $currclass_name; my $currtopic; if ( defined $class ) { if ($class) { $currclass = RT::Class->new( $session{'CurrentUser'} ); $currclass->Load($class); $currclass_id = $currclass->Id; $currclass_name = $currclass->Name; } else { $currclass = $RT::System; $currclass_id = 0; $currclass_name = 'Global Topics'; } } else { $Classes = RT::Classes->new( $session{'CurrentUser'} ); $Classes->LimitToEnabled(); } if ($id) { $currtopic = RT::Topic->new( $session{'CurrentUser'} ); $currtopic->Load($id); } my $ProduceTree; $ProduceTree = sub { my ( $parentid ) = @_; my $topics = RT::Topics->new( $session{'CurrentUser'} ); $topics->LimitToObject($currclass); $topics->LimitToKids($parentid || 0); $topics->OrderBy( FIELD => 'Name' ); return unless $topics->Count; $m->out("
        "); while ( my $t = $topics->Next ) { $m->out("
      • "); $m->comp("/Articles/Elements/ShowTopicLink", Topic => $t, Class => $currclass_id, ); $ProduceTree->( $t->Id ) if $t->Children->Count; $m->out("
      • "); } $m->out("
      "); }; my @articles; if ($id) { my $Articles = RT::ObjectTopics->new($session{'CurrentUser'}); $Articles->Limit(FIELD => 'ObjectType', VALUE => 'RT::Article'); $Articles->Limit(FIELD => 'Topic', VALUE => $id); while (my $objtopic = $Articles->Next) { my $a = RT::Article->new($session{'CurrentUser'}); $a->Load($objtopic->ObjectId); push @articles, $a; } } elsif ($class) { my $Articles = RT::Articles->new($session{'CurrentUser'}); my $TopicsAlias = $Articles->Join( TYPE => 'left', ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'ObjectTopics', FIELD2 => 'ObjectId', ); $Articles->Limit( LEFTJOIN => $TopicsAlias, FIELD => 'ObjectType', VALUE => 'RT::Article', ); $Articles->Limit( ALIAS => $TopicsAlias, FIELD => 'Topic', OPERATOR => 'IS', VALUE => 'NULL', QUOTEVALUE => 0, ); $Articles->Limit( FIELD => 'Class', OPERATOR => '=', VALUE => $class, ); @articles = @{$Articles->ItemsArrayRef}; } <%args> $id => 0 $class => undef $showall => undef rt-4.4.4/share/html/Articles/index.html000644 000765 000024 00000004561 13437510132 020634 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Articles') &> <& /Elements/Tabs &> <& /Articles/Elements/MaybeNeedsSetup &>
      <& /Articles/Elements/NewestArticles &>
      <& /Articles/Elements/UpdatedArticles &>
      <& /Articles/Elements/QuickSearch &>
      <& /Articles/Elements/CreateArticle &>
      rt-4.4.4/share/html/Articles/Elements/000755 000765 000024 00000000000 13437510132 020405 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Articles/Article/000755 000765 000024 00000000000 13437510132 020214 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Articles/Article/ExtractIntoClass.html000644 000765 000024 00000006313 13437510132 024337 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Extract a new article from ticket #[_1]',$Ticket) &> <& /Elements/Tabs &>

      <&|/l&>Create a new article in:

        % my $Classes = RT::Classes->new($session{'CurrentUser'}); % $Classes->LimitToEnabled(); % while (my $Class = $Classes->Next) {
      • <%$Class->Name%>: <%$Class->Description || ''%>
      • % }
      <%args> $Ticket => undef rt-4.4.4/share/html/Articles/Article/Display.html000644 000765 000024 00000007647 13437510132 022525 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <&| /Widgets/TitleBox, title => loc('The Basics'), class => 'article-basics', &>
      <&|/l&>Summary: <%$article->Summary%>
      <&|/l&>Class: <%$article->ClassObj->Name%>
      <&|/l&>Creator: <& /Elements/ShowUser, User => $article->CreatorObj &>
      <&|/l&>Created: <%$article->CreatedObj->AsString%>
      <&|/l&>Updated: <%$article->LastUpdatedObj->AsString%>
      % $m->callback( %ARGS, CallbackName => 'AfterBasics' ); <&| /Widgets/TitleBox, title => loc('Content'), class => 'article-content', &> <& /Elements/ShowCustomFields, Object => $article &> <&| /Widgets/TitleBox, title => loc('Links'), class => 'article-links', &> <& Elements/ShowLinks, article => $article &> <&| /Widgets/TitleBox, title => loc('Topics'), class => 'article-topics', &> <& Elements/ShowTopics, article => $article &> <%init> my $article = RT::Article->new( $session{'CurrentUser'} ); if ($Name) { $article->LoadByCols( Name => $Name ); } elsif ($id) { $article->Load($id); } unless ( $article->Id ) { if ( $ARGS{'Name'} ) { $m->comp( 'Edit.html', %ARGS ); return (); } else { $m->comp( "/Elements/Error", Why => loc("Article not found") ); } } unless ( $article->CurrentUserHasRight('ShowArticle') ) { $m->comp( "/Elements/Error", Why => loc("Permission Denied") ); } my $title = loc( "Article #[_1]: [_2]", $article->Id, $article->Name || loc("(no name)")); $id = $article->id; <%args> $id => undef $Name => undef rt-4.4.4/share/html/Articles/Article/Elements/000755 000765 000024 00000000000 13437510132 021770 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Articles/Article/History.html000644 000765 000024 00000005015 13437510132 022544 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('History for article #[_1]', $id) &> <& /Elements/Tabs &> <& /Elements/ShowHistory, Object => $article, ShowHeaders => 0, ShowDisplayModes => 0, ShowActions => 0, DisplayPath => 'History.html', &> <%init> my $article = RT::Article->new($session{'CurrentUser'}); $article->Load($id); Abort(loc("Article #[_1] not found", $id)) unless $article->Id; Abort(loc("Permission Denied")) unless $article->CurrentUserHasRight('ShowArticle'); <%args> $id => undef rt-4.4.4/share/html/Articles/Article/Edit.html000644 000765 000024 00000021375 13437510132 021777 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
      <&| /Widgets/TitleBox, title => $title, class => 'article-basics', &> <& Elements/EditBasics, ArticleObj => $ArticleObj, EditClass =>$EditClass, ClassObj => $ClassObj, %ARGS , id => $id &> <&| /Widgets/TitleBox, title => 'Content', class => 'article-content', &> <& Elements/EditCustomFields, ArticleObj => $ArticleObj, CFContent => \%CFContent, ClassObj => $ClassObj, %ARGS, id => $id, ForCreation => ($id eq 'new'), &> <&| /Widgets/TitleBox, title => 'Links', class => 'article-links', &> <& Elements/EditLinks, ArticleObj => $ArticleObj, %ARGS, id => $id &> <&| /Widgets/TitleBox, title => 'Topics', class => 'article-topics', &> <& Elements/EditTopics, ArticleObj => $ArticleObj, Classes => [$ArticleObj->Id ? $ArticleObj->ClassObj : $ClassObj], OnlyThisClass => 1, %ARGS, id => $id &> <& /Elements/Submit, Label => ($id eq 'new' ? loc('Create') : loc('Save Changes')), color => "#993333" &>
      <%INIT> if ( exists $ARGS{'Topics'} ) { $ARGS{'Topics'} = ref( $ARGS{'Topics'} ) ? $ARGS{'Topics'} : [ $ARGS{'Topics'} ]; } my @results; my $title; my $Entries = {}; my $ArticleObj = RT::Article->new( $session{'CurrentUser'} ); my $ClassObj = RT::Class->new( $session{'CurrentUser'} ); if ($Class) { $ClassObj->Load($Class); Abort(loc("'[_1]' isn't a valid class", $Class)) unless $ClassObj->Id; } my %create_args; my %CFContent; my $EditClass = 1; if ( $ARGS{SetEnabled} ) { $ARGS{Disabled} = $ARGS{Enabled} ? 0 : 1; } if ( !$id ) { $title = loc('Create a new article'); foreach my $arg ( sort keys %ARGS ) { if ( $arg =~ /^Transaction-(\d+)$/ ) { my $trans = RT::Transaction->new( $session{'CurrentUser'} ); $trans->Load($1); $CFContent{ $ARGS{$arg} } .= "\n\n" if $CFContent{ $ARGS{$arg} }; $CFContent{ $ARGS{$arg} } .= $trans->Content; } } $EditClass = 0; $id = 'new'; } elsif ( $id eq 'new' ) { if ( $ARGS{'RefersTo-new'} ) { @{ $create_args{'RefersTo-new'} } = split( /\s+/, $ARGS{'RefersTo-new'} ); } if ( $ARGS{'new-RefersTo'} ) { @{ $create_args{'new-RefersTo'} } = split( /\s+/, $ARGS{'new-RefersTo'} ); } my %cfs = ProcessObjectCustomFieldUpdatesForCreate( ARGSRef => \%ARGS, ContextObject => $ClassObj, ); my $msg; ( $id, $msg ) = $ArticleObj->Create( Summary => $ARGS{'Summary'}, Name => $ARGS{'Name'}, Class => $ARGS{'Class'}, Topics => $ARGS{'Topics'}, Disabled => $ARGS{'Disabled'}, %create_args, %cfs ); push( @results, $msg ); if ($id) { $ArticleObj->Load($id); $title = loc( 'Modify article #[_1]', $ArticleObj->Id ); delete $ARGS{id}; if ( $ARGS{next} ) { $m->redirect($ARGS{next}); } else { MaybeRedirectForResults( Actions => \@results, Arguments => { id => $ArticleObj->id }, ); } } else { $ArticleObj = RT::Article->new( $session{'CurrentUser'} ); $id = 'new'; $EditClass = 0; $title = loc('Create a new article'); } } else { $ArticleObj->Load($id); unless ( $ArticleObj->id ) { $m->comp( "/Elements/Error", Why => loc("Unable to load article") ); } my @attribs = qw(Name Summary Class Disabled); @results = UpdateRecordObject( AttributesRef => \@attribs, Object => $ArticleObj, ARGSRef => \%ARGS ); my @cf_results = ProcessObjectCustomFieldUpdates( Object => $ArticleObj, ARGSRef => \%ARGS ); @results = ( @results, @cf_results ); # Delete links that are gone gone gone. foreach my $arg ( keys %ARGS ) { if ( $arg =~ /DeleteLink-(.*?)-(RefersTo|MemberOf|RefersTo)-(.*)$/ ) { my $base = $1; my $type = $2; my $target = $3; my ( $val, $msg ) = $ArticleObj->DeleteLink( Base => $base, Type => $type, Target => $target ); push @results, $msg; } } my @linktypes = qw(DependsOn MemberOf RefersTo ); foreach my $linktype (@linktypes) { for my $luri ( split( / /, ( $ARGS{ $ArticleObj->Id . "-$linktype" } || '' )) ) { $luri =~ s/\s*$//; # Strip trailing whitespace my ( $val, $msg ) = $ArticleObj->AddLink( Target => $luri, Type => $linktype ); push @results, $msg; delete $ARGS{ $ArticleObj->Id . "-$linktype" } if $val; } for my $luri ( split( / /, ( $ARGS{ "$linktype-" . $ArticleObj->Id } || '' )) ) { my ( $val, $msg ) = $ArticleObj->AddLink( Base => $luri, Type => $linktype ); push @results, $msg; delete $ARGS{ "$linktype-" . $ArticleObj->Id } if $val; } } my %topics; if ( $ARGS{'EditTopics'} ) { $topics{$_}++ for @{ $ARGS{'Topics'} }; my $objTopics = RT::ObjectTopics->new( $session{'CurrentUser'} ); $objTopics->LimitToObject($ArticleObj); while ( my $t = $objTopics->Next ) { $topics{ $t->Topic }--; } for my $id ( keys %topics ) { if ( $topics{$id} > 0 ) { my ( $val, $msg ) = $ArticleObj->AddTopic( Topic => $id ); push @results, $msg; } elsif ( $topics{$id} < 0 ) { my ( $val, $msg ) = $ArticleObj->DeleteTopic( Topic => $id ); push @results, $msg; } } } $title = loc( 'Modify article #[_1]', $ArticleObj->Id ); } # if they're working on an existing article if ( $ArticleObj->id ) { unless ( $ArticleObj->CurrentUserHasRight('ShowArticle') ) { $m->comp( "/Elements/Error", Why => loc("No permission to view Article") ); } } <%ARGS> $id => undef $Class => undef rt-4.4.4/share/html/Articles/Article/PreCreate.html000644 000765 000024 00000006161 13437510132 022760 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Create an article in class...') &> <& /Elements/Tabs &> % if (not $classes_configured) { <& /Articles/Elements/NeedsSetup &> % } elsif (not @classes) { <&|/l&>You don't have permission to create Articles in any Class % } else { % } <%init> my $Classes = RT::Classes->new($session{'CurrentUser'}); $Classes->LimitToEnabled(); # This is a COUNT(), which doesn't apply ACLs; as such, we don't display # the warning if there are classes, but the user can't see them. my $classes_configured = $Classes->Count; # ->Next applies SeeClass, but we also want to check CreateArticle my @classes; while (my $class = $Classes->Next) { push @classes, $class if $class->CurrentUserHasRight("CreateArticle"); } # If there is only one, redirect to it MaybeRedirectForResults( Path => "/Articles/Article/Edit.html", Force => 1, Arguments => { Class => $classes[0]->id }, ) if @classes == 1; rt-4.4.4/share/html/Articles/Article/ExtractIntoTopic.html000644 000765 000024 00000005440 13437510132 024350 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Extract a new article from ticket #[_1]',$Ticket) &> <& /Elements/Tabs &> <&|/l&>Select topics for this article:
      <& Elements/EditTopics, Classes => [$ClassObj], OnlyThisClass => 1, id => 'new', &>
      <%args> $Ticket => undef $Class => undef <%init> my $ClassObj = RT::Class->new($session{'CurrentUser'}); $ClassObj->Load($Class); unless ($ClassObj->Id) { $m->comp("/Elements/Error", Why => loc("'[_1]' isn't a valid class identifier", $Class)); } rt-4.4.4/share/html/Articles/Article/ExtractFromTicket.html000644 000765 000024 00000007732 13437510132 024515 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Extract article from ticket #[_1] into class [_2]',$Ticket, $ClassObj->Name) &> <& /Elements/Tabs &>
      % for (@Topics) { % }

      <&|/l&>Use the dropdown menus to select which ticket updates you want to extract into a new article. <&|/l&>You can insert ticket content into any freeform, text or wiki field.

      % my $i; % while ( my $trans = $transactions->Next ) { % next unless $trans->HasContent && $trans->Content; % }
      <&|/l&>Field <&|/l&>Ticket update
      <%$trans->CreatedObj->AsString%>: <%$trans->Description%>
      <%$trans->Content%>
      <& /Elements/Submit, Label => loc('Create'), color => "#993333" &>
      <%INIT> my $ticket=LoadTicket($Ticket); my $transactions = $ticket->Transactions; my $ClassObj = RT::Class->new($session{'CurrentUser'}); $ClassObj->Load($Class); unless ($ClassObj->Id) { $m->comp("/Elements/Error", Why => loc("'[_1]' isn't a valid class identifier", $Class)); } my $CustomFields = $ClassObj->ArticleCustomFields(); $CustomFields->Limit(FIELD => 'Type', OPERATOR => '=', VALUE => 'Text'); $CustomFields->Limit(FIELD => 'Type', OPERATOR => '=', VALUE => 'Wikitext'); $CustomFields->Limit(FIELD => 'Type', OPERATOR => '=', VALUE => 'Freeform'); <%ARGS> $Class => undef $Ticket => undef @Topics => () rt-4.4.4/share/html/Articles/Article/Search.html000644 000765 000024 00000023405 13437510132 022313 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Search for articles") &> <& /Elements/Tabs &> % unless ( keys %ARGS ) {
      % if (not $classes_configured) { <& /Articles/Elements/NeedsSetup &> % } elsif (not @classes) { <&|/l&>You don't have permission to view Articles in any Class % } else { % }
      <& /Widgets/TitleBoxStart, title => loc('Saved searches') &> <&|/l&>Load saved search:
      <& Elements/SelectSavedSearches, Name => 'LoadSavedSearch', Default => $CurrentSearch &> <& /Widgets/TitleBoxEnd &>
      % return; % } <& /Elements/ListActions, actions => \@results &> % if ($articles->BuildSelectCountQuery =~ /WHERE/i) {

      <&|/l&>Search results

      <& /Elements/CollectionList, Collection => $articles, AllowSorting => 1, OrderBy => \@OrderBy, Order => \@Order, Format => $format, GenericQueryArgs => { %filtered, Format => $format, }, &> % }


      <& Elements/ShowSearchCriteria, dates => \%dates, RefersTo => $RefersTo, customfields => $customfields, ReferredToBy => $ReferredToBy, %ARGS &>

      <& Elements/ShowSavedSearches, CurrentSearch => $CurrentSearch, Name => ($search ? $search->Name : undef), Privacy => ($search ? $search->Privacy : undef) &>
      <%init> my $Classes = RT::Classes->new($session{'CurrentUser'}); $Classes->LimitToEnabled(); # This is a COUNT(), which doesn't apply ACLs; as such, we don't display # the warning if there are classes, but the user can't see them. my $classes_configured = $Classes->Count; my @classes = @{ $Classes->ItemsArrayRef }; $ARGS{Class} = $classes[0]->id if @classes == 1; use RT::SavedSearch; my @results; my $articles = RT::Articles->new( $session{'CurrentUser'} ); my $format = q{ '__id__/TITLE:#', '__Name__/TITLE:Name', '__ClassName__', '__CreatedRelative__', '__LastUpdatedRelative__', '__Summary__', '__Topics__', }; # {{{ Quicksearch logic # If it is a number, load the article with that ID. Otherwise, search # on name and summary. if ($ARGS{'q'} && $ARGS{'q'} =~ /^(\d+)$/) { RT::Interface::Web::Redirect( RT->Config->Get('WebURL') . "Articles/Article/Display.html?id=" . $1 ); } # }}} # {{{ Saved search logic my $search; # The keys in %ARGS that are not saved and loaded with named searches. # These need to be treated specially. my @metakeys = qw/NewSearchName CurrentSearch SearchPrivacy Save Load Update Delete/; if ($CurrentSearch =~ /^(.*-\d+)-SavedSearch-(\d+)$/) { $search = RT::SavedSearch->new($session{'CurrentUser'}); $search->Load($1, $2); } # Have we been asked to load a search? if ($ARGS{'Load'}) { if ($ARGS{'LoadSavedSearch'} =~ /^(.*-\d+)-SavedSearch-(\d+)$/ ) { my $privacy = $1; my $search_id = $2; $search = RT::SavedSearch->new($session{'CurrentUser'}); my ($ret, $msg) = $search->Load($privacy, $search_id); if ($ret) { my $searchargs = $search->GetParameter('args'); # Clean out ARGS and fill it in with the saved args from the # loaded search. foreach my $key (@metakeys) { $searchargs->{$key} = $ARGS{$key}; } %ARGS = %{$searchargs}; $CurrentSearch = "$privacy-SavedSearch-$search_id"; } else { push(@results, loc("Error: could not load saved search [_1]: [_2]", $ARGS{'LoadSavedSearch'}, $msg)); } } else { push(@results, loc("Invalid [_1] argument", 'LoadSavedSearch')); } } # ...or have we been asked to save, update, or delete a search? if ($ARGS{'Save'}) { my %searchargs = %ARGS; foreach my $key (@metakeys) { delete $searchargs{$key}; } $search = RT::SavedSearch->new($session{'CurrentUser'}); unless ($ARGS{'SearchPrivacy'} =~ /^(.*)-(\d+)$/) { # This shouldn't really happen, but hey. push(@results, loc("WARNING: Saving search to user-level privacy")); $ARGS{'SearchPrivacy'} = 'RT::User-'.$session{'CurrentUser'}->Id; } my ($ret, $msg) = $search->Save(Privacy => $ARGS{'SearchPrivacy'}, Type => 'Article', Name => $ARGS{'NewSearchName'}, SearchParams => {'args' => \%searchargs}); if ($ret) { $CurrentSearch = $ARGS{'SearchPrivacy'} . "-SavedSearch-" . $search->Id; push(@results, loc("Created search [_1]", $search->Name)); } else { undef $search; # if we bomb out creating a search # we don't want to have the empty object hang around push(@results, loc("Could not create search: [_1]", $msg)); } } elsif ($ARGS{'Update'}) { if ($ARGS{'SearchPrivacy'} != $search->Privacy) { push(@results, loc("Error: cannot change privacy value of existing search")); } else { my %searchargs = %ARGS; foreach my $key (@metakeys) { delete $searchargs{$key}; } # We already have a search loaded, because CurrentSearch is set, # or else we would not have gotten here. my ($ret, $msg) = $search->Update(Name => $ARGS{'NewSearchName'}, SearchParams => \%searchargs); if ($ret) { push(@results, loc("Search [_1] updated", $search->Name)); } else { push(@results, loc("Error: search [_1] not updated: [_2]", $search->Name, $msg)); } } } elsif ($ARGS{'Delete'}) { # Keep track of this, as we are about to delete the search. my $searchname = $search->Name; my ($ret, $msg) = $search->Delete; if ($ret) { $ARGS{'CurrentSearch'} = undef; push(@results, loc("Deleted search [_1]", $searchname)); # Get rid of all the state. foreach my $key (keys %ARGS) { delete $ARGS{$key}; } $CurrentSearch = 'new'; $search = undef; $RefersTo = undef; $ReferredToBy = undef; } else { push(@results, loc("Could not delete search [_1]: [_2]", $searchname, $msg)); } } # }}} # Don't want to search for a null class when there is no class specced my $customfields = RT::CustomFields->new( $session{'CurrentUser'} ); my %dates; $articles->Search( %ARGS, CustomFields => $customfields, Dates => \%dates, OrderBy => \@OrderBy, Order => \@Order, ); $m->callback( %ARGS, _Search => $articles ); my %filtered = %ARGS; delete $filtered{$_} for (@metakeys, "EditTopics", "ExpandTopics"); delete $filtered{$_} for grep {$filtered{$_} !~ /\S/} keys %filtered; @filtered{qw(OrderBy Order)} = (\@OrderBy, \@Order); my $QueryString = "?".$m->comp('/Elements/QueryString', %filtered); <%ARGS> $CreatedBefore => '' $CreatedAfter => '' $LastUpdatedBefore => '' $LastUpdatedAfter => '' $RefersTo => undef $ReferredToBy => undef $CurrentSearch => 'new' @OrderBy => () @Order => () rt-4.4.4/share/html/Articles/Article/Elements/EditLinks000644 000765 000024 00000010053 13437510132 023600 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
      <&|/l&>Enter articles, tickets, or other URLs related to this article. <& LinkEntryInstructions &> % unless ($id eq 'new') { <&|/l&>(Check boxes to delete)
      % }
      <&|/l&>Refers to:
        % if ($id ne 'new') { % my $refersto = $ArticleObj->RefersTo; % while (my $link = $refersto->Next) { % my $member = $link->TargetURI;
      • % if ($link->TargetURI->IsLocal) { <% loc($member->Object->RecordType) %> <%$member->Object->Id%>: % if (UNIVERSAL::isa($member->Object, "RT::Article") or UNIVERSAL::can($member->Object, 'Name')) { <%$member->Object->Name%> % } elsif (UNIVERSAL::isa($member->Object, "RT::Ticket") or UNIVERSAL::can($member->Object, 'Subject')) { <%$member->Object->Subject%> % } % } else { <%$link->Target%> % } % } % }
      <&|/l&>Referred to by:
      <%ARGS> $ArticleObj => undef $id => undef rt-4.4.4/share/html/Articles/Article/Elements/ShowTopics000644 000765 000024 00000004476 13437510132 024030 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
      <&|/l&>Topics: % my $topics = RT::ObjectTopics->new($session{'CurrentUser'}); % $topics->LimitToObject($article); % while (my $t = $topics->Next) { <& /Articles/Elements/ShowTopic, topic => $t->TopicObj &>
      % }
      <%args> $article => undef rt-4.4.4/share/html/Articles/Article/Elements/EditTopics000644 000765 000024 00000011467 13437510132 023773 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
      <&|/l&>Topics:
      <%INIT> use Tree::Simple; my $inClass = RT::Topics->new($session{'CurrentUser'}); # global topics should always be available push @Classes,$RT::System unless grep { $_ == $RT::System } @Classes; $inClass->LimitToObject($_) for @Classes; $inClass->OrderByCols({FIELD => 'Name'}); my $inTree = buildTree($inClass); my $otherClass = RT::Topics->new($session{'CurrentUser'}); if (@Classes) { $otherClass->Limit(FIELD => 'ObjectType', VALUE => 'RT::Class'); for (@Classes) { $otherClass->Limit(FIELD => 'ObjectId', OPERATOR => '!=', VALUE => $_->Id); } } else { $otherClass->UnLimit; } my $otherTree = buildTree($otherClass); my $articleTopics = RT::ObjectTopics->new($session{'CurrentUser'}); $articleTopics->LimitToObject($ArticleObj); my %topics; while (my $topicObj = $articleTopics->Next) { $topics{$topicObj->Topic} = 1; } $topics{$_} = 1 for @Topics; sub buildTree { my $query = shift; use Tree::Simple; my $tree = Tree::Simple->new(Tree::Simple->ROOT); my %lookup = (0 => $tree); my @todo; while (my $topic = $query->Next) { push @todo, $topic; } { my $changed = 0; my @work = @todo; @todo = (); for my $topic (@work) { if (defined $lookup{$topic->Parent}) { $lookup{$topic->Id} = Tree::Simple->new($topic, $lookup{$topic->Parent}); $changed = 1; } else { push @todo, $topic; } } redo unless $changed == 0; } return $tree; } <%ARGS> $ArticleObj => RT::Article->new($session{'CurrentUser'}) @Classes => () @Topics => () $OnlyThisClass => undef rt-4.4.4/share/html/Articles/Article/Elements/EditCustomFields000644 000765 000024 00000005366 13437510132 025134 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % while (my $CustomField = $CustomFields->Next()) { % }
      <%$CustomField->Name%>:
      <%$CustomField->EntryHint // ''%>
      <& /Elements/EditCustomField, Object => $ArticleObj, CustomField => $CustomField, Default => $CFContent->{$CustomField->Id}, Rows => 15, Cols => 70 &>
      <%INIT> my $CustomFields; if ($ArticleObj->id && $ArticleObj->ClassObj->id) { $CustomFields = $ArticleObj->CustomFields(); } else { $CustomFields = $ClassObj->ArticleCustomFields(); } <%ARGS> $ArticleObj => undef $ClassObj => undef $CFContent => undef $id => undef rt-4.4.4/share/html/Articles/Article/Elements/SearchByCustomField000644 000765 000024 00000005276 13437510132 025564 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# if the custom field is a select, enumerate the options % if ($Field->Type =~ /^Select/) { % my $CustomFieldValues = $Field->ValuesObj(); % } %# otherwise, put in a textedity field % else { % } <%init> my @Values =ref( $Values ) ? @{ $Values } : ( $Values ); <%ARGS> $Field => undef $Name => 'CustomField' $Values => undef rt-4.4.4/share/html/Articles/Article/Elements/ShowLinks000644 000765 000024 00000006545 13437510132 023646 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
      <&|/l&>Refers to: % my $refersto = $article->RefersTo; % while (my $link = $refersto->Next) { % my $member = $link->TargetURI;
    • % if ($link->TargetURI->IsLocal) { <% loc($member->Object->RecordType) %> <%$member->Object->Id%>: % if (UNIVERSAL::isa($member->Object, "RT::Article") or UNIVERSAL::can($member->Object, 'Name')) { <%$member->Object->Name%> % } elsif (UNIVERSAL::isa($member->Object, "RT::Ticket") or UNIVERSAL::can($member->Object, 'Subject')) { <%$member->Object->Subject%> % } % } else { <%$link->Target%> % }
    • % }
      <&|/l&>Referred to by: % my $referredtoby = $article->ReferredToBy; % while (my $link = $referredtoby->Next) { % my $member = $link->BaseURI;
    • % if ($member->IsLocal) { <% loc($member->Object->RecordType) %> <%$member->Object->Id%>: % if (UNIVERSAL::isa($member->Object, "RT::Article") or UNIVERSAL::can($member->Object, 'Name')) { <%$member->Object->Name%> % } elsif (UNIVERSAL::isa($member->Object, "RT::Ticket") or UNIVERSAL::can($member->Object, 'Subject')) { <%$member->Object->Subject%> % } % } else { <%$link->Base%> % }
    • % }
      <%args> $article => undef rt-4.4.4/share/html/Articles/Article/Elements/LinkEntryInstructions000644 000765 000024 00000004172 13437510132 026263 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/l&>Type a: before article numbers and t: before ticket numbers. <&|/l&>Separate multiple entries with spaces. rt-4.4.4/share/html/Articles/Article/Elements/Preformatted000644 000765 000024 00000007663 13437510132 024363 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($include{Name}) { #<%$Article->Id%>: <%$Article->Name || loc('(no name)')%> <%'-' x length("#".$Article->Id.": ".($Article->Name || loc('(no name)'))) %> % } % if ( $include{Summary} && ($Article->Summary||'') =~ /\S/ ) { <% $Article->Summary %> % } % while (my $cf = $cfs->Next) { % next unless $include{"CF-Title-".$cf->Id} or $include{"CF-Value-".$cf->Id}; % my $values = $Article->CustomFieldValues($cf->Id); % if ($values->Count == 1) { % my $value = $values->First; % if ($include{"CF-Title-".$cf->Id}) { <% $cf->Name%>: <% '-' x length($cf->Name) %> % } % if ($value && $include{"CF-Value-".$cf->Id}) { <% $get_content->( $value ) %> % } % } else { % my $val = $values->Next; % if ($include{"CF-Title-".$cf->Id}) { <% $cf->Name%>: \ % } % if ($val && $include{"CF-Value-".$cf->Id}) { <% $get_content->( $val ) %> % } % while ($val = $values->Next) { % if ($include{"CF-Title-".$cf->Id}) { <% ' ' x length($cf->Name)%> \ % } % if ($include{"CF-Value-".$cf->Id}) { <% $get_content->( $val ) %> % } % } % } % } <%init> my $class = $Article->ClassObj; my %include = (Name => 1, Summary => 1, EscapeHTML => 1); my $cfs = $class->ArticleCustomFields; while ( my $cf = $cfs->Next ) { $include{"CF-Title-" . $cf->Id} = 1; $include{"CF-Value-" . $cf->Id} = 1; } foreach my $key ( keys %include ) { $include{$key} = not $class->FirstAttribute("Skip-$key"); } my $get_content = sub { my $value = shift; return '' unless $value; my $content = $value->Content; return '' unless defined $content && length $content; $m->callback( %ARGS, CallbackName => 'ProcessContent', content => \$content, ); if ( $include{'EscapeHTML'} && $content =~ /<.{1,5}>/ ) { $content = RT::Interface::Email::ConvertHTMLToText( $content ); } return $content; }; <%args> $Article rt-4.4.4/share/html/Articles/Article/Elements/EditBasics000644 000765 000024 00000007141 13437510132 023730 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($ARGS{'id'} ne 'new') { % } % if ($ARGS{'id'} eq 'new' || $ArticleObj->CurrentUserHasRight('DisableArticle')) {
      <&|/l&>Name:
      <&|/l&>Summary:
      <&|/l&>Class: % if ($EditClass) { <& /Articles/Elements/SelectClass, Name => 'Class', Default =>$ArticleObj->ClassObj->Id&> % } else { <%$ClassObj->Name%> % }
      <&|/l&>Creator: <& /Elements/ShowUser, User => $ArticleObj->CreatorObj &>
      <&|/l&>Created: <%$ArticleObj->CreatedObj->AsString%>
      <&|/l&>Updated: <%$ArticleObj->LastUpdatedObj->AsString%>
      id && $ArticleObj->Disabled || $ARGS{'Disabled'} ) ? '' : 'checked="checked"' |n %> />
      % } <%INIT> <%ARGS> $EditClass => 1 $ClassObj => undef $ArticleObj => undef rt-4.4.4/share/html/Articles/Article/Elements/ShowSearchCriteria000644 000765 000024 00000014154 13437510132 025451 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($ARGS{'HideOptions'}) { <& /Widgets/TitleBoxStart, title => loc('Advanced search'), class => "rolled-up", bodyclass => "hidden" &> % } else { <& /Widgets/TitleBoxStart, title => loc('Advanced search') &> % } % while (my $field = $customfields->Next ) { % }

      <&|/l&>Basics

      <&|/l&>Classis <& /Articles/Elements/SelectClass, Name => 'Class', Multiple =>1, Size => 5 , ShowNullOption => undef, Default => $ARGS{'Class'} &> <&|/l&>and not <& /Articles/Elements/SelectClass, Name => 'Class!', Multiple =>1, Size => 5 , ShowNullOption => undef, Default => $ARGS{'Class!'} &>
      <&|/l&>Name <&|/l&>matches <&|/l&>and not
      <&|/l&>Summary <&|/l&>matches <&|/l&>and not

      <&|/l&>Content

      <&|/l&>Any field <&|/l&>matches <&|/l&>and not
      <% $field->Name %> <&|/l&>matches % my $matches = $field->Name."~"; % my $nomatches = $field->Name."!~"; <& /Articles/Article/Elements/SearchByCustomField, Field => $field, Name => $matches, Values => $ARGS{$matches} &> <&|/l&>and not <& /Articles/Article/Elements/SearchByCustomField, Field => $field, Name => $nomatches, Values => $ARGS{$nomatches} &>

      <&|/l&>Dates

      <&|/l&>Created <&|/l&>after <& /Elements/SelectDate, Name=>"Created>", Default => ($dates->{'Created>'} ? $dates->{'Created>'}->ISO : '') &> <&|/l&>and before <& /Elements/SelectDate, Name=>"Created<", Default => ($dates->{'Created<'} ? $dates->{'Created<'}->ISO:'')&>
      <&|/l&>Last updated <&|/l&>after <& /Elements/SelectDate, Name=>"LastUpdated>", Default => ($dates->{'LastUpdated>'} ? $dates->{'LastUpdated>'}->AsString:'')&> <&|/l&>and before <& /Elements/SelectDate, Name=>"LastUpdated<", Default => ($dates->{'LastUpdated<'} ? $dates->{'LastUpdated<'}->AsString:'')&>

      <&|/l&>Links

      <& LinkEntryInstructions &>
      <&|/l&>Refer to
      <&|/l&>Referred to by

      <&|/l&>Topics

      <& /Articles/Article/Elements/EditTopics, %ARGS, Classes => \@Classes, OnlyThisClass => 1 &>
      />
      <& /Elements/Submit, Label => loc('Search') &> <& /Widgets/TitleBoxEnd &> <%init> my @Classes = ( ref $ARGS{'Class'} eq 'ARRAY' ) ? @{ $ARGS{'Class'} } : ( $ARGS{'Class'} ); for (@Classes) { my $class = RT::Class->new( $session{'CurrentUser'} ); $class->LoadById($_); $_ = $class; } for my $field ( qw/Class Name Summary Article/ ) { $ARGS{"$field~"} = '' unless defined $ARGS{"$field~"}; $ARGS{"$field!~"} = '' unless defined $ARGS{"$field!~"}; } $RefersTo = '' unless defined $RefersTo; $ReferredToBy = '' unless defined $ReferredToBy; <%ARGS> $dates =>undef $RefersTo => '' $ReferredToBy => '' $customfields => undef rt-4.4.4/share/html/Articles/Article/Elements/ShowSavedSearches000644 000765 000024 00000006643 13437510132 025305 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Widgets/TitleBoxStart, title => loc('Saved searches') &> %# Keep track of what our current search ID is. %# Hide all the save functionality if the user shouldn't see it. % if ($session{'CurrentUser'}->HasRight( Right => 'CreateSavedSearch', % Object=> $RT::System )) {

      <&|/l&>Save this search

      <&|/l&>Name: <&|/l&>Privacy: <& SelectSearchPrivacy, Name => 'SearchPrivacy', Default => $Privacy &>
      % if ($CurrentSearch && $CurrentSearch ne 'new') {       % } else { % }
      % } # if HasRight 'CreateSavedSearch'

      <&|/l&>Load a saved search

      <& SelectSavedSearches, Name => 'LoadSavedSearch', Default => $CurrentSearch &> <& /Widgets/TitleBoxEnd &> <%INIT> unless ($session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch', Object=> $RT::System )) { return; } <%ARGS> $CurrentSearch => undef $Name => undef $Privacy => undef rt-4.4.4/share/html/Articles/Article/Elements/SelectSavedSearches000644 000765 000024 00000005744 13437510132 025605 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> use RT::SavedSearches; my $groups = $session{'CurrentUser'}->UserObj->OwnGroups; my %privacies; $privacies{'RT::User-' . $session{'CurrentUser'}->UserObj->Id} = 1; map { $privacies{'RT::Group-'.$_->Id} = $_ } @{$groups->ItemsArrayRef}; <%args> $Name => undef $Default => undef rt-4.4.4/share/html/Articles/Article/Elements/SelectSearchPrivacy000644 000765 000024 00000005034 13437510132 025620 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $user = $session{'CurrentUser'}->UserObj; my $groups = $session{'CurrentUser'}->UserObj->OwnGroups; $Default = '' unless defined $Default; <%ARGS> $Name => 'GroupField' $Default => '' rt-4.4.4/share/html/Articles/Elements/ShowTopicLink000644 000765 000024 00000005125 13437510132 023070 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Topic $Class => 0 % if ($Link) { \ % } <% $Topic->Name() || loc("(no name)") %>\ % if ($Topic->Description) { : <% $Topic->Description %> % } % if ( $Articles->Count ) { (<&|/l, $Articles->Count &>[quant,_1,article,articles]) % } % if ($Link) { % } <%init> my $Articles = RT::ObjectTopics->new( $session{'CurrentUser'} ); $Articles->Limit( FIELD => 'ObjectType', VALUE => 'RT::Article' ); $Articles->Limit( FIELD => 'Topic', VALUE => $Topic->Id ); my $Link = $Topic->Children->Count || $Articles->Count; rt-4.4.4/share/html/Articles/Elements/BeforeMessageBox000644 000765 000024 00000020071 13437510132 023510 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ( $ARGS{id} && $ARGS{id} ne 'new' && RT->Config->Get('LinkArticlesOnInclude') ) { % } % unless (RT->Config->Get('HideArticleSearchOnReplyCreate')) { % } % if ($hotlist->Count) { % } % my %dedupe_articles; % while (my $article = $articles_content->Next) { % $dedupe_articles{$article->Id}++; % } % while (my $article = $articles_basics->Next) { % next if $dedupe_articles{$article->Id}; % } % if ( @$topics ) { % if ( $ARGS{$name_prefix .'Articles-Include-Topic'} ) { % } % }
      <&|/l&>Search for Articles matching
      <&|/l&>Include Article:
      <&|/l&>Select an Article to include
        <%$article->Name|| loc('(no name)')%>: <%$article->Summary%>
        <%$article->Name || loc('(no name)')%>: <%$article->Summary || ''%>
      <&|/l, $QueueObj->Name &>Choose from Topics for [_1]
      <&|/l, $included_topic->Name &>Select an Article from [_1]
      <%init> my $QueueObj = $ARGS{QueueObj}; if ( $ARGS{id} && $ARGS{id} ne 'new' && !$QueueObj ) { my $ticket = RT::Ticket->new( $session{CurrentUser} ); $ticket->Load( $ARGS{id} ); $QueueObj = $ticket->QueueObj; } my $skip = 0; $m->callback(CallbackName => "Init", skip => \$skip, Queue => $QueueObj); return if $skip; my $name_prefix = ''; if ( $ARGS{'MessageBoxName'} ) { $name_prefix = $ARGS{'MessageBoxName'} .'-'; } # convert Articles-Include-Article => $id to Articles-Include-Article-$id if ( my $tmp = $ARGS{$name_prefix ."Articles-Include-Article"} ) { $ARGS{$name_prefix ."Articles-Include-Article-$tmp"}++; } my %uri; if ( $ARGS{id} && $ARGS{id} ne 'new' ) { $uri{$_}++ for split ' ', ($ARGS{$ARGS{'id'}.'-RefersTo'} || ''); foreach my $arg (keys %ARGS) { next if $name_prefix && substr($arg, 0, length($name_prefix)) ne $name_prefix; my $article = RT::Article->new($session{'CurrentUser'}); $article->LoadByInclude( Field => substr($arg, length($name_prefix)), Value => $ARGS{$arg}, ); if ($article->Id) { $uri{$article->URI}++; } } } use RT::Articles; my $articles_content = RT::Articles->new( $session{'CurrentUser'} ); my $articles_basics = RT::Articles->new( $session{'CurrentUser'} ); if ( my $tmp = $ARGS{ $name_prefix ."Articles_Content" } ) { $articles_content->LimitCustomField( VALUE => $tmp, OPERATOR => 'LIKE' ); $articles_content->LimitAppliedClasses( Queue => $QueueObj ); $articles_basics->Limit( SUBCLAUSE => 'all', FIELD => 'Name', OPERATOR => 'LIKE', VALUE => $tmp, ENTRYAGGREGATOR => "OR" ); $articles_basics->Limit( SUBCLAUSE => 'all', FIELD => 'Summary', OPERATOR => 'LIKE', VALUE => $tmp, ENTRYAGGREGATOR => "OR" ); $articles_basics->LimitAppliedClasses( Queue => $QueueObj ); } my $hotlist = RT::Articles->new( $session{'CurrentUser'} ); $hotlist->LimitHotlistClasses; $hotlist->LimitAppliedClasses( Queue => $QueueObj ); my ( $topic_articles, $topics, $included_topic ); $topic_articles = RT::Articles->new( $session{CurrentUser} ); $topics = []; my $top_topic = RT::Topic->new( $session{CurrentUser} ); $top_topic->LoadByCols( Name => 'Queues', Parent => 0 , ObjectType => 'RT::System', ObjectId => 1); if ( $top_topic->id ) { my $queue_topic = RT::Topic->new( $session{CurrentUser} ); $queue_topic->LoadByCols( Name => $QueueObj->Name, Parent => $top_topic->id ); if ( $queue_topic->id ) { # store all topics below $queue_topic to $topics topics( $queue_topic, $topics, 0 ); if ( my $tmp = $ARGS{ $name_prefix .'Articles-Include-Topic'} ) { $included_topic = RT::Topic->new( $session{CurrentUser} ); $included_topic->Load( $tmp ); $topic_articles->LimitTopics( $tmp ); $topic_articles->OrderBy( FIELD => 'Name' ); } } } # recursively get all the topics given a top topic sub topics { my $parent = shift; my $out = shift; my $depth = shift; while ( my $topic = $parent->Children->Next ) { push @$out, { id => $topic->id, name => $topic->Name, depth => $depth }; topics( $topic, $out, $depth+1 ); } } rt-4.4.4/share/html/Articles/Elements/UpdatedArticles000644 000765 000024 00000007160 13437510132 023411 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Widgets/TitleBoxStart, title => loc("[_1] most recently updated articles", $rows), bodyclass=> '' &> % while (my $Article = $MyArticles->Next) { % $i++; % }
      <&|/l&># <&|/l&>Name <&|/l&>Created by  
      <%$Article->Id%> <%$Article->Name || loc('(no name)')%> <%$Article->CreatorObj->Name%> [<&|/l&>Update]
        <%$Article->Summary || loc('(no Summary)')%>
      <& /Widgets/TitleBoxEnd &> <%INIT> my $rows = 10; my $i; my $Classes = RT::Classes->new($session{'CurrentUser'}); $Classes->LimitToEnabled; my @classes; while (my $Class = $Classes->Next) { push @classes, $Class->id if $Class->CurrentUserHasRight('ShowArticle'); } my $MyArticles; $MyArticles = RT::Articles->new($session{'CurrentUser'}); $MyArticles->Limit(FIELD => 'Class', OPERATOR => 'IN', VALUE => \@classes) if @classes; $MyArticles->Limit(FIELD => 'Created', OPERATOR => '!=', VALUE => 'LastUpdated', QUOTEVALUE => 0 ); $MyArticles->RowsPerPage($rows); $MyArticles->OrderBy(FIELD => 'Created', ORDER => 'DESC'); rt-4.4.4/share/html/Articles/Elements/GotoArticle000644 000765 000024 00000005577 13437510132 022562 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
      % if ($class or $topic) { % }
      <%args> $topic => "" $class => "" rt-4.4.4/share/html/Articles/Elements/ShowTopic000644 000765 000024 00000004676 13437510132 022264 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % for (@path) { %# this isn't always a class, it can be the system object % my $class_id = ($_->ObjectType eq 'RT::Class' ? $_->ObjectId : 0 ); <% $_->ParentObj->Id ? " > " : "" %><% $_->Name || loc("(no name)") %> % } <%args> $topic <%init> my @path; while ($topic->Id) { unshift @path, $topic; $topic = $topic->ParentObj; } rt-4.4.4/share/html/Articles/Elements/QuickSearch000644 000765 000024 00000004563 13437510132 022542 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Widgets/TitleBoxStart, title => loc('Quick search') &> <& /Widgets/TitleBoxEnd &> <%init> my $classes = RT::Classes->new($session{'CurrentUser'}); $classes->LimitToEnabled; rt-4.4.4/share/html/Articles/Elements/IncludeArticle000644 000765 000024 00000007132 13437510132 023222 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $parent_args = $m->caller_args(-1); my $name_prefix = ''; $name_prefix = $ARGS{'Name'} .'-' if $ARGS{'Name'} && grep rindex($_, "$ARGS{'Name'}-Articles-", 0) == 0, keys %$parent_args; foreach my $arg ( keys %$parent_args ) { next if $name_prefix && substr($arg, 0, length($name_prefix)) ne $name_prefix; my $Ticket = $ARGS{Ticket}; if ( !$Ticket and $parent_args->{id} and $parent_args->{id} ne 'new' ) { $Ticket = RT::Ticket->new($session{'CurrentUser'}); $Ticket->Load($parent_args->{id}); unless ( $Ticket->id ) { $RT::Logger->error("Couldn't load ticket ". $parent_args->{id} ) } } my $Queue = RT::Queue->new($session{CurrentUser}); if ($Ticket && $Ticket->Id) { $Queue = $Ticket->QueueObj; } my $article = RT::Article->new($session{'CurrentUser'}); $article->LoadByInclude( Field => substr($arg, length($name_prefix)), Value => $parent_args->{$arg}, Queue => $Queue->Id, ); next unless $article && $article->id; my $formatted_article = $m->scomp('/Articles/Article/Elements/Preformatted', Article => $article, Ticket => $Ticket ); $m->callback( Article => $article, Ticket => $Ticket, formatted_article => \$formatted_article, ARGSRef => \%ARGS ); if (RT->Config->Get('MessageBoxRichText', $session{'CurrentUser'})) { $formatted_article =~ s/>/>/g; $formatted_article =~ s//g; } $m->print($formatted_article); } return; rt-4.4.4/share/html/Articles/Elements/MaybeNeedsSetup000644 000765 000024 00000004420 13437510132 023365 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $Classes = RT::Classes->new( $session{'CurrentUser'} ); $Classes->LimitToEnabled(); # This is a COUNT(), which doesn't apply ACLs; as such, we don't display # the warning if there are classes, but the user can't see them. return if $Classes->Count; <& NeedsSetup &> rt-4.4.4/share/html/Articles/Elements/CreateArticle000644 000765 000024 00000004471 13437510132 023045 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Widgets/TitleBoxStart, title => loc('Create an article') &> <& /Widgets/TitleBoxEnd &> <%init> my $Classes = RT::Classes->new($session{'CurrentUser'}); $Classes->LimitToEnabled; rt-4.4.4/share/html/Articles/Elements/SelectClass000644 000765 000024 00000006051 13437510132 022537 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($Lite) { % } else { % } <%ARGS> $Multiple => undef $Size => undef $ShowNullOption => 1 $ShowAllClasses => 1 $Name => undef $Verbose => undef $Default => undef $Lite => 0 <%INIT> my @Default = ref($Default) eq 'ARRAY' ? @$Default : ( $Default); my $Classes= RT::Classes->new($session{'CurrentUser'}); $Classes->LimitToEnabled(); my $d = RT::Class->new($session{'CurrentUser'}); $d->Load($Default[0]); rt-4.4.4/share/html/Articles/Elements/NewestArticles000644 000765 000024 00000006755 13437510132 023301 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Widgets/TitleBoxStart, title => loc("[_1] newest articles", $rows), bodyclass=> '' &> % while (my $Article = $MyArticles->Next) { % $i++; % }
      <&|/l&># <&|/l&>Name <&|/l&>Created by  
      <%$Article->Id%> <%$Article->Name || loc('(no name)')%> <%$Article->CreatorObj->Name%> [<&|/l&>Update]
        <%$Article->Summary || loc('(no Summary)')%>
      <& /Widgets/TitleBoxEnd &> <%INIT> my $rows = 10; my $i; my $Classes = RT::Classes->new($session{'CurrentUser'}); $Classes->LimitToEnabled; my @classes; while (my $Class = $Classes->Next) { push @classes, $Class->id if $Class->CurrentUserHasRight('ShowArticle'); } my $MyArticles; $MyArticles = RT::Articles->new($session{'CurrentUser'}); $MyArticles->Limit(FIELD => 'Class', OPERATOR => 'IN', VALUE => \@classes) if @classes; $MyArticles->RowsPerPage($rows); $MyArticles->OrderBy(FIELD => 'LastUpdated', ORDER => 'DESC'); rt-4.4.4/share/html/Articles/Elements/NeedsSetup000644 000765 000024 00000005470 13437510132 022415 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} %# Stupidly long lines because our extract-message-catalog doesn't handle multiple lines! <&|/Widgets/TitleBox, id => "articles-needs-setup", class => "error-titlebox", title => loc("Setup needed") &>

      <&|/l_unsafe, qq[], '' &>Before Articles can be used, your RT administrator must [_1]create Classes[_2], apply Article custom fields to them, and grant users rights on the classes and CFs.

      <&|/l_unsafe, qq[], qq[], '' &>An [_1]introduction to getting started with articles[_3] is available from [_2]Best Practical's online documentation[_3].

      rt-4.4.4/share/html/Articles/Elements/SubjectOverride000644 000765 000024 00000006137 13437510132 023436 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> foreach my $arg ( keys %$ARGSRef) { my $Queue = $QueueObj || RT::Queue->new($session{CurrentUser}); if (!$Queue->Id && $Ticket && $Ticket->Id) { $Queue = $Ticket->QueueObj; } my $article = RT::Article->new($session{'CurrentUser'}); $article->LoadByInclude( Field => $arg, Value => $ARGSRef->{$arg}, Queue => $Queue->Id, ); next unless $article && $article->id; my $class = $article->ClassObj; next unless $class->SubjectOverride; my $cfs = $class->ArticleCustomFields; $cfs->Limit( FIELD => 'id', VALUE => $class->SubjectOverride ); my $subjectCF = $cfs->First; next unless $subjectCF; my $subject = $article->CustomFieldValuesAsString($subjectCF->Id); $m->callback( CallbackName => 'ProcessContent', Ticket => $Ticket, Article => $article, content => \$subject); if ( exists $ARGSRef->{UpdateSubject} ) { $ARGSRef->{UpdateSubject} = $subject; } else { $ARGSRef->{Subject} = $subject; } } return; <%ARGS> $Ticket => undef $ARGSRef => undef $results => undef $QueueObj => undef rt-4.4.4/share/html/Articles/Elements/CheckSkipCreate000644 000765 000024 00000005254 13437510132 023326 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> return if $checks_failure; # we're already skipping Create return unless RT->Config->Get('ArticleOnTicketCreate'); my $article = RT::Article->new($session{'CurrentUser'}); foreach my $arg ( keys %$ARGSRef) { if ( $ARGSRef->{Articles_Content} || # search for an article $ARGSRef->{'Articles-Include-Topic'} || # using Queue Topics ( $article->LoadByInclude( Field => $arg, Value => $ARGSRef->{$arg} ) && $article->id ) ) { # including an article $$skip_create = 1; last; } } return; <%ARGS> $ARGSRef => undef $skip_create => undef $checks_failure => undef $results => undef rt-4.4.4/share/html/NoAuth/iCal/000755 000765 000024 00000000000 13437510132 017131 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/css/000755 000765 000024 00000000000 13437510132 017051 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/js/000755 000765 000024 00000000000 13437510132 016675 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/rss/000755 000765 000024 00000000000 13437510132 017070 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/Login.html000644 000765 000024 00000004416 13437510132 020224 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my ($good, $msg) = RT::Interface::Web::AttemptPasswordAuthentication(\%ARGS); $ARGS{'actions'} = [$msg] if not $good and $msg; % if ( RT::Interface::Web::MobileClient() || $ARGS{mobile} ) { <& /m/_elements/login, %ARGS &> % } else { <& /Elements/Login, %ARGS &> % } rt-4.4.4/share/html/NoAuth/RichText/000755 000765 000024 00000000000 13437510132 020013 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/Logout.html000644 000765 000024 00000005720 13437510132 020424 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('Logout'), Refresh => RT->Config->Get('LogoutRefresh') &>
    <& /Elements/Footer, Menu => 0 &> % $m->abort(); <%INIT> my $URL = RT->Config->Get('WebPath')."/"; # Allow a callback to modify the URL we redirect to, which is useful for # external webauth systems $m->callback( %ARGS, CallbackName => 'ModifyLoginRedirect', URL => \$URL ); $m->callback( %ARGS, CallbackName => 'BeforeSessionDelete' ); if (keys %session) { RT::Interface::Web::InstantiateNewSession(); $session{'CurrentUser'} = RT::CurrentUser->new; } $m->callback( %ARGS, CallbackName => 'AfterSessionDelete' ); $m->notes->{RefreshURL} = $URL; rt-4.4.4/share/html/NoAuth/Helpers/000755 000765 000024 00000000000 13437510132 017663 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/Helpers/CustomLogo/000755 000765 000024 00000000000 13437510132 021756 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/Helpers/CustomLogo/dhandler000644 000765 000024 00000004564 13437510132 023473 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> if ( my $attr = $RT::System->FirstAttribute('UserLogo') ) { # The extra path in the url doesn't matter, we always want to serve the # latest logo if we have one. RT::Interface::Web::StaticFileHeaders(); my $content = $attr->Content; $r->content_type( $content->{type} ); $m->out( $content->{data} ); } else { # 404 return $m->decline; } rt-4.4.4/share/html/NoAuth/RichText/autohandler000644 000765 000024 00000004326 13437510132 022251 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $file = $m->base_comp->source_file; if ($file =~ m{RichText/+ckeditor}) { $RT::Logger->crit("Invalid request directly to the rich text editor: $file"); $m->abort(403); } else { $m->call_next(); } rt-4.4.4/share/html/NoAuth/rss/dhandler000644 000765 000024 00000005531 13437510132 020600 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $path = $m->dhandler_arg; my $notfound = sub { my $mesg = shift; $r->headers_out->{'Status'} = '404 Not Found'; $RT::Logger->info("Error encountered in rss generation: $mesg"); $m->clear_and_abort; }; $notfound->("Invalid path: $path") unless $path =~ m!^([^/]+)/([^/]+)/?!; my ( $name, $auth ) = ( $1, $2 ); # Unescape parts $name =~ s/\%([0-9a-z]{2})/chr(hex($1))/gei; # convert to perl strings $name = Encode::decode( "UTF-8", $name); my $user = RT::User->new(RT->SystemUser); $user->Load($name); $notfound->("Invalid user: $user") unless $user->id; $notfound->("Invalid authstring") unless $user->ValidateAuthString( $auth, $ARGS{Query} . $ARGS{Order} . $ARGS{OrderBy} ); my $cu = RT::CurrentUser->new; $cu->Load($user); local $session{'CurrentUser'} = $cu; $m->comp("/Search/Elements/ResultsRSSView", %ARGS); rt-4.4.4/share/html/NoAuth/js/dhandler000644 000765 000024 00000004534 13437510132 020407 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> my $arg = $m->dhandler_arg; if ( $arg =~ m{squished-[a-f0-9]{32}\.js$} ) { my $squished = RT::Interface::Web::SquishedJS(); # Don't send Last-Modified since we don't handle If-Modified-Since #$r->header_out( 'Last-Modified' => $squished->ModifiedTimeString ); $m->out( $squished->Content ); } else { return $m->decline; } rt-4.4.4/share/html/NoAuth/js/autohandler000644 000765 000024 00000004204 13437510132 021126 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> RT::Interface::Web::StaticFileHeaders(); $r->content_type('application/x-javascript; charset=utf-8'); $m->call_next(); return(); rt-4.4.4/share/html/NoAuth/css/rudder/000755 000765 000024 00000000000 13437510132 020336 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/css/ballard/000755 000765 000024 00000000000 13437510132 020452 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/css/dhandler000644 000765 000024 00000004635 13437510132 020565 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ONCE> my $squisher; <%INIT> my $arg = $m->dhandler_arg; if ( $arg =~ m{(.*)/squished-[0-9a-f]{32}\.css$} ) { my $style = $1; my $squished = RT::Interface::Web::SquishedCSS( $style ); # Don't send Last-Modified since we don't handle If-Modified-Since #$r->header_out( 'Last-Modified' => $squished->ModifiedTimeString ); $m->out( $squished->Content ); } else { return $m->decline; } rt-4.4.4/share/html/NoAuth/css/autohandler000644 000765 000024 00000004165 13437510132 021310 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> RT::Interface::Web::StaticFileHeaders(); $r->content_type('text/css; charset=utf-8') ; $m->call_next(); return(); rt-4.4.4/share/html/NoAuth/css/web2/000755 000765 000024 00000000000 13437510132 017710 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/css/aileron/000755 000765 000024 00000000000 13437510132 020502 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/css/base/000755 000765 000024 00000000000 13437510132 017763 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/NoAuth/css/base/farbtastic.css000644 000765 000024 00000002772 13437510132 022627 0ustar00sunnavystaff000000 000000 /** * Farbtastic Color Picker 1.2 * © 2008 Steven Wittens * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ .farbtastic { position: relative; } .farbtastic * { position: absolute; cursor: crosshair; } .farbtastic, .farbtastic .wheel { width: 195px; height: 195px; } .farbtastic .color, .farbtastic .overlay { top: 47px; left: 47px; width: 101px; height: 101px; } .farbtastic .wheel { background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/farbtastic/wheel.png) no-repeat; width: 195px; height: 195px; } .farbtastic .overlay { background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/farbtastic/mask.png) no-repeat; } .farbtastic .marker { width: 17px; height: 17px; margin: -8px 0 0 -8px; overflow: hidden; background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/farbtastic/marker.png) no-repeat; } rt-4.4.4/share/html/NoAuth/css/aileron/AfterMenus000644 000765 000024 00000005535 13437510132 022506 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} rt-4.4.4/share/html/NoAuth/css/aileron/InHeader000644 000765 000024 00000004441 13437510132 022107 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} rt-4.4.4/share/html/NoAuth/css/web2/AfterMenus000644 000765 000024 00000006432 13437510132 021711 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} rt-4.4.4/share/html/NoAuth/css/web2/InHeader000644 000765 000024 00000004434 13437510132 021317 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} rt-4.4.4/share/html/NoAuth/css/ballard/InHeader000644 000765 000024 00000004437 13437510132 022064 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} rt-4.4.4/share/html/NoAuth/css/rudder/AfterMenus000644 000765 000024 00000005547 13437510132 022345 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} rt-4.4.4/share/html/NoAuth/css/rudder/InHeader000644 000765 000024 00000004210 13437510132 021735 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} rt-4.4.4/share/html/NoAuth/iCal/dhandler000644 000765 000024 00000012517 13437510132 020643 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> use Data::ICal; use Data::ICal::Entry::Event; my $path = $m->dhandler_arg; my $notfound = sub { $r->headers_out->{'Status'} = '404 Not Found'; $m->clear_and_abort; }; $notfound->() unless $path =~ m!^([^/]+)/([^/]+)/(.*)(\.(ical|ics))?!; my ($name, $auth, $search) = ($1, $2, $3); # Unescape parts $_ =~ s/\%([0-9a-z]{2})/chr(hex($1))/gei for $name, $search; # Decode from bytes to characters $_ = Encode::decode( "UTF-8", $_ ) for $name, $search; my $user = RT::User->new( RT->SystemUser ); $user->Load( $name ); $notfound->() unless $user->id; $notfound->() unless $user->ValidateAuthString( $auth, $search ); my $cu = RT::CurrentUser->new; $cu->Load($user); my $tickets = RT::Tickets->new( $cu ); $tickets->FromSQL($search); $r->headers_out->{'Content-Type'} = 'text/calendar; charset=utf-8'; my $feed = Data::ICal->new(); $feed->add_properties('x-wr-calname' => ["RT due dates" => {value => "TEXT"}]); $feed->add_properties('x-wr-caldesc' => ["Due dates for RT tickets: $search" => {value => "TEXT"}]); $feed->add_properties('calscale' => ['gregorian']); $feed->add_properties('method' => ['publish']); $feed->add_properties('prodid' => ["-//" . RT->Config->Get('rtname') ."//"]); while (my $t = $tickets->Next) { next unless $t->DueObj->IsSet; my $starttime = $t->StartsObj->IsSet ? $t->StartsObj : $t->CreatedObj; my $url; if ( RT->Config->Get('CanonicalizeURLsInFeeds') ) { $url = RT->Config->Get('WebURL'); } else { $url = RT::Interface::Web::GetWebURLFromRequest(); } $url .= "Ticket/Display.html?id=".$t->id, my $now = RT::Date->new( $cu ); $now->SetToNow; my $start = Data::ICal::Entry::Event->new; my $end = Data::ICal::Entry::Event->new; $_->add_properties( url => $url, description => $url, organizer => $t->OwnerObj->Name, dtstamp => $now->iCal, created => $t->CreatedObj->iCal, 'last-modified' => $t->LastUpdatedObj->iCal, ) for $start, $end; my %time = ( Time => 0 ); my %ical_value = ( value => 'DATE' ); if ( defined $ARGS{Time} ? $ARGS{Time} : RT->Config->Get('TimeInICal', $user) ) { $time{Time} = 1; $ical_value{value} = 'DATE-TIME'; } if( $ARGS{SingleEvent} ){ $start->add_properties( summary => $t->Subject, dtstart => [$starttime->iCal( %time ) => \%ical_value ], dtend => [$t->DueObj->iCal( %time ) => \%ical_value ], ); $feed->add_entry($start); } else{ $start->add_properties( summary => "Start: ".$t->Subject, dtstart => [$starttime->iCal( %time ) => \%ical_value ], dtend => [$starttime->iCal( %time ) => \%ical_value ], ); $end->add_properties( summary => "Due: ".$t->Subject, dtstart => [$t->DueObj->iCal( %time ) => \%ical_value ], dtend => [$t->DueObj->iCal( %time ) => \%ical_value ], ); $feed->add_entry($start); $feed->add_entry($end); } } $m->clear_buffer; $m->out($feed->as_string); $m->abort; rt-4.4.4/share/html/Asset/index.html000644 000765 000024 00000005045 13437510132 020143 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $assets = RT::Assets->new($session{CurrentUser}); $assets->UnLimit; <& /Elements/Header, Title => loc("Assets") &> <& /Elements/Tabs &> <& /Elements/CollectionList, Collection => $assets, OrderBy => 'Name', Order => 'ASC', Format => q[ '__id__/TITLE:#', '__Name__/TITLE:Name', Description, Status, ], AllowSorting => 0, &> rt-4.4.4/share/html/Asset/ModifyCFs.html000644 000765 000024 00000007472 13437510132 020665 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Modify [_3] for asset #[_1]: [_2]", $asset->id, $asset->Name, $Grouping || loc("Custom Fields") ) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => $Grouping ? loc($Grouping) : loc("Custom Fields"), class => "asset-info-cfs ".($Grouping ? CSSClass("asset-info-cfs-\L$Grouping") : ""), title_class => "inverse" &> <& /Elements/EditCustomFields, Object => $asset, Grouping => $Grouping &> <& /Elements/Submit, Label => loc('Save asset'), Name => "Update" &>
    <%args> $id => undef $Update => 0 $Grouping => '' <%init> my $asset = LoadAsset($id); my @results; my $CFs = $asset->CustomFields; $CFs->LimitToGrouping($asset => $Grouping); Abort(loc("No custom fields found for grouping '[_1]'", $Grouping)) if $Grouping and not $CFs->Count; $m->callback( Asset => $asset, ARGSRef => \%ARGS, Update => \$Update, results => \@results ); if ($Update) { my ($cf_ok, @cf_errors) = $m->comp( '/Elements/ValidateCustomFields', Object => $asset, CustomFields => $CFs, ARGSRef => \%ARGS ); if ($cf_ok) { push @results, ProcessObjectCustomFieldUpdates( Object => $asset, ARGSRef => \%ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $asset->id, Grouping => $Grouping, }, ); } else { push @results, @cf_errors; } } rt-4.4.4/share/html/Asset/ModifyPeople.html000644 000765 000024 00000007743 13437510132 021437 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Modify people related to asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', ARGSRef => \%ARGS, Asset => $asset, Actions => \@results); <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc("People"), class => "asset-people", title_class => "inverse" &>
    <& /Asset/Elements/EditCatalogPeople, %ARGS, Object => $asset &> <& /Asset/Elements/AddCatalogPeople, Object => $asset &> <& /Elements/EditCustomFields, Object => $asset, Grouping => 'People', AsTable => 1 &>
    <& /Elements/Submit, Label => loc('Save'), Name => "Update" &>
    <%init> my $asset = LoadAsset($id); my @results; $m->callback( Asset => $asset, ARGSRef => \%ARGS, Update => \$Update, results => \@results ); if ($Update) { my $CFs = $asset->CustomFields; $CFs->LimitToGrouping($asset => "People"); my ($cf_ok, @cf_errors) = $m->comp( '/Elements/ValidateCustomFields', Object => $asset, CustomFields => $CFs, ARGSRef => \%ARGS ); if ($cf_ok) { push @results, ProcessAssetRoleMembers( $asset => %ARGS ); push @results, ProcessObjectCustomFieldUpdates( Object => $asset, ARGSRef => \%ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $asset->id }, ); } else { push @results, @cf_errors; } } $m->callback(CallbackName => 'BeforeDisplay', ARGSRef => \%ARGS, Asset => $asset); <%args> $id => undef $Update => 0 rt-4.4.4/share/html/Asset/Modify.html000644 000765 000024 00000011320 13437510132 020254 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Modify asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc("Basics"), class => "asset-basics", title_class => "inverse" &> <& Elements/EditBasics, %ARGS, AssetObj => $asset &> <&| /Widgets/TitleBox, title => loc("Custom Fields"), class => "asset-info-cfs", title_class => "inverse" &> <& /Elements/EditCustomFields, Object => $asset, Grouping => '' &> <& /Elements/Submit, Label => loc('Save asset'), Name => "Update" &>
    <%args> $id => undef $Update => 0 $DisplayAfter => 0 <%init> my $asset = LoadAsset($id); my @results; $m->callback( Asset => $asset, ARGSRef => \%ARGS, Update => \$Update, results => \@results ); if ($Update) { my $skip_update = 0; my @attributes = $asset->WritableAttributes; # Don't update status unless we have a value; otherwise RT complains @attributes = grep { $_ ne "Status" } @attributes unless $ARGS{Status}; my ($cf_ok, @cf_errors) = $m->comp( '/Elements/ValidateCustomFields', Object => $asset, CustomFields => $asset->CustomFields, ARGSRef => \%ARGS ); $m->callback( CallbackName => 'BeforeUpdate', AssetObj => $asset, UpdatableAttributes => \@attributes, results => \@results, cf_ok => \$cf_ok, skip_update => \$skip_update, ARGSRef => \%ARGS, ); if ($cf_ok and not $skip_update) { push @results, ProcessObjectCustomFieldUpdates( Object => $asset, ARGSRef => \%ARGS ); push @results, UpdateRecordObject( Object => $asset, AttributesRef => \@attributes, ARGSRef => \%ARGS ); $m->callback( CallbackName => 'AfterUpdate', AssetObj => $asset, UpdatableAttributes => \@attributes, results => \@results, ARGSRef => \%ARGS, ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $asset->id }, $DisplayAfter ? (Path => "/Asset/Display.html") : (), ); } else { push @results, @cf_errors; } } rt-4.4.4/share/html/Asset/Create.html000644 000765 000024 00000014337 13437510132 020243 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Create a new asset in catalog [_1]", $catalog->Name), RT->Config->Get('AssetBasicCustomFieldsOnCreate') ? ( onload => "function () { hide('Asset-Create-details') }" ) : (), &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <& /Elements/EditCustomFieldCustomGroupings, Object => $asset, TitleBoxARGS => { title_class => "inverse" }, KeepValue => 1, CustomFieldGenerator => sub { $catalog->AssetCustomFields }, ForCreation => 1, &>
    <& /Elements/Submit, Label => loc('Create asset') &>
    <%args> $id => "" $Catalog => undef <%init> my $asset = RT::Asset->new( $session{CurrentUser} ); my $catalog = RT::Catalog->new( $session{CurrentUser} ); $catalog->Load($Catalog); Abort(loc("Unable to find catalog '[_1]'", $Catalog)) unless $catalog->id; Abort(loc("You don't have permission to create assets in catalog [_1].", $catalog->Name || $catalog->id)) unless $catalog->CurrentUserHasRight("CreateAsset"); # Update the current default with the latest selection $session{'DefaultCatalog'} = $catalog->Id; my @results; if ($id eq "new") { my $skip_create = 0; my ($cf_ok, @cf_errors) = $m->comp( '/Elements/ValidateCustomFields', Object => $asset, CustomFields => $catalog->AssetCustomFields, ARGSRef => \%ARGS ); $m->callback( CallbackName => 'BeforeCreate', AssetObj => $asset, CatalogObj => $catalog, results => \@results, cf_ok => \$cf_ok, skip_create => \$skip_create, ARGSRef => \%ARGS ); if ($cf_ok and not $skip_create) { # Handle CFs and links my %create = ( ProcessObjectCustomFieldUpdatesForCreate( ARGSRef => \%ARGS, ContextObject => $catalog, ), ProcessLinksForCreate( ARGSRef => \%ARGS ), map { $_ => $ARGS{$_} } $asset->Roles, ); # Handle basic fields for ($asset->WritableAttributes) { $create{$_} = $ARGS{$_} if exists $ARGS{$_}; } $m->callback( %ARGS, AssetObj => $asset, CatalogObj => $catalog, Create => \%create, CallbackName => 'MassageCreate' ); my ($ok, $msg, $nonfatal) = $asset->Create( %create ); push @results, $msg, @{$nonfatal || []}; if ($ok) { MaybeRedirectForResults( Actions => \@results, Path => "/Asset/Display.html", Arguments => { id => $asset->id }, ); } } else { push @results, @cf_errors; } } if ( RT->Config->Get('AssetBasicCustomFieldsOnCreate') ) { PageMenu->child( basics => raw_html => q[] . loc('Basics') . q[]); PageMenu->child( details => raw_html => q[] . loc('Details') . q[]); } rt-4.4.4/share/html/Asset/Display.html000644 000765 000024 00000005537 13437510132 020447 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', ARGSRef => \%ARGS, Asset => $asset, Results => \@results); <& /Elements/ListActions, actions => \@results &> <& Elements/ShowSummary, AssetObj => $asset &> % $m->callback(CallbackName => 'AfterShowSummary', ARGSRef => \%ARGS, Asset => $asset); <& /Elements/ShowHistory, Object => $asset, ShowDisplayModes => 0, DisplayPath => 'History.html', &> % $m->callback(CallbackName => 'AfterShowHistory', ARGSRef => \%ARGS, Asset => $asset); <%args> $id => undef <%init> my @results; my $asset = LoadAsset($id); $m->callback(CallbackName => 'BeforeDisplay', ARGSRef => \%ARGS, Asset => $asset, Results => \@results); rt-4.4.4/share/html/Asset/Search/000755 000765 000024 00000000000 13437510132 017347 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Asset/CreateInCatalog.html000644 000765 000024 00000004152 13437510132 022017 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Create new asset") &> <& /Elements/Tabs &> <& /Asset/Elements/CreateInCatalog &> rt-4.4.4/share/html/Asset/ModifyLinks.html000644 000765 000024 00000006763 13437510132 021274 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Modify links for asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> <%init> my $asset = LoadAsset($id); my @results; $m->callback( Asset => $asset, ARGSRef => \%ARGS, Update => \$Update, results => \@results ); if ($Update) { my $CFs = $asset->CustomFields; $CFs->LimitToGrouping($asset => "Links"); my ($cf_ok, @cf_errors) = $m->comp( '/Elements/ValidateCustomFields', Object => $asset, CustomFields => $CFs, ARGSRef => \%ARGS ); if ($cf_ok) { push @results, ProcessRecordLinks( RecordObj => $asset, ARGSRef => \%ARGS ); push @results, ProcessObjectCustomFieldUpdates( Object => $asset, ARGSRef => \%ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $asset->id }, ); } else { push @results, @cf_errors; } } <%args> $id => undef $Update => 0 rt-4.4.4/share/html/Asset/Elements/000755 000765 000024 00000000000 13437510132 017716 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Asset/History.html000644 000765 000024 00000004560 13437510132 020476 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("History of Asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/Tabs &> <& /Elements/ShowHistory, Object => $asset, ShowDisplayModes => 0, DisplayPath => 'History.html', &> <%args> $id => undef <%init> my $asset = LoadAsset($id); rt-4.4.4/share/html/Asset/CreateLinkedTicket.html000644 000765 000024 00000005416 13437510132 022534 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Asset => undef @Assets => () $Requestors => '' <%init> my @asset_objs; my $single_asset; # Support passing a single asset or many, as with bulk update. if ( $Asset ){ push @asset_objs, LoadAsset($Asset); $single_asset = 1; } elsif ( @Assets ){ @asset_objs = map { LoadAsset($_) } @Assets; $single_asset = 1 if @asset_objs == 1; } else { Abort('No asset specified'); } % if ($single_asset){ <& /Elements/Header, Title => loc("Create linked ticket for asset #[_1]: [_2]", $asset_objs[0]->id, $asset_objs[0]->Name) &> %} %else{ <& /Elements/Header, Title => loc("Create linked ticket for multiple assets") &> %} <& /Elements/Tabs &> <& /Asset/Elements/CreateLinkedTicket, AssetObj => \@asset_objs, Requestors => $Requestors &> rt-4.4.4/share/html/Asset/ModifyDates.html000644 000765 000024 00000006623 13437510132 021247 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Modify dates for asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    <&| /Widgets/TitleBox, title => loc("Dates"), class => "asset-dates", title_class => "inverse" &> <& Elements/EditDates, %ARGS, AssetObj => $asset &> <& /Elements/Submit, Label => loc('Save asset'), Name => "Update" &>
    <%init> my $asset = LoadAsset($id); my @results; $m->callback( Asset => $asset, ARGSRef => \%ARGS, Update => \$Update, results => \@results ); if ($Update) { my $CFs = $asset->CustomFields; $CFs->LimitToGrouping($asset => "Dates"); my ($cf_ok, @cf_errors) = $m->comp( '/Elements/ValidateCustomFields', Object => $asset, CustomFields => $CFs, ARGSRef => \%ARGS ); if ($cf_ok) { push @results, ProcessObjectCustomFieldUpdates( Object => $asset, ARGSRef => \%ARGS ); MaybeRedirectForResults( Actions => \@results, Arguments => { id => $asset->id }, ); } else { push @results, @cf_errors; } } <%args> $id => undef $Update => 0 rt-4.4.4/share/html/Asset/Helpers/000755 000765 000024 00000000000 13437510132 017544 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Asset/Helpers/CreateLinkedTicket000644 000765 000024 00000004475 13437510132 023177 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> @Asset => () $Asset => undef $Requestors => '' <%init> my @asset_objs; if ( @Asset ){ @asset_objs = map { LoadAsset($_) } @Asset; } elsif ( $Asset ){ push @asset_objs, LoadAsset($Asset); } <& /Asset/Elements/CreateLinkedTicket, AssetObj => \@asset_objs, Requestors => $Requestors &> % $m->abort; rt-4.4.4/share/html/Asset/Helpers/CreateInCatalog000644 000765 000024 00000004045 13437510132 022457 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Asset/Elements/CreateInCatalog &> % $m->abort; rt-4.4.4/share/html/Asset/Elements/ShowDates000644 000765 000024 00000005332 13437510132 021545 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ShowCustomFields, Object => $AssetObj, Grouping => 'Dates', Table => 0 &> % $m->callback(%ARGS, CallbackName => "AfterFields");
    <&|/l&>Created: <&|/l_unsafe, $m->interp->apply_escapes($AssetObj->CreatedAsString, 'h'), $m->scomp('/Elements/ShowUser', User => $AssetObj->CreatorObj) &>[_1] by [_2]
    <&|/l&>Last Updated: <&|/l_unsafe, $m->interp->apply_escapes($AssetObj->LastUpdatedAsString, 'h'), $m->scomp('/Elements/ShowUser', User => $AssetObj->LastUpdatedByObj) &>[_1] by [_2]
    <%args> $AssetObj rt-4.4.4/share/html/Asset/Elements/SelectRoleType000644 000765 000024 00000004370 13437510132 022550 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object $Name $AllowNull => 0 rt-4.4.4/share/html/Asset/Elements/EditPeople000644 000765 000024 00000004540 13437510132 021676 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % for my $role ( $AssetObj->Roles ) { % }
    <% loc($role) %>: <& /Elements/EmailInput, Name => $role, Size => undef, Default => $ARGS{$role}, Autocomplete => 1 &>
    <%args> $AssetObj rt-4.4.4/share/html/Asset/Elements/SelectCatalog000644 000765 000024 00000005106 13437510132 022355 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/SelectObject, Name => "Catalog", ShowAll => $ShowAll, ShowNullOption => $ShowNullOption, CheckRight => "CreateAsset", %ARGS, ObjectType => "Catalog", CacheNeedsUpdate => RT::Catalog->CacheNeedsUpdate, Default => $Default, &> <%args> $ShowAll => 0 $Default => undef $UpdateSession => 1 $ShowNullOption => 0 <%init> my $catalog_obj = LoadDefaultCatalog($Default || ''); if ( $UpdateSession && $catalog_obj->Id ){ $session{'DefaultCatalog'} = $catalog_obj->Id; $Default = $catalog_obj->Id; } rt-4.4.4/share/html/Asset/Elements/ShowRoleMembers000644 000765 000024 00000006407 13437510132 022725 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % my $users = $Group->UserMembersObj( Recursively => 0 ); % while ( my $user = $users->Next ) { % next if $Skip and $Skip->HasMember( $user->PrincipalId ); % if (not $Title) { % } elsif ($Single) {

    <& /Elements/ShowUser, User => $user, Link => 1 &>

    % next if $user->id == RT->Nobody->id; % } else {

    <& /Elements/ShowUser, User => $user, Link => 0 &> % if ($Note) { <% $Note %> % } % if ( $session{'CurrentUser'}->Privileged ){ <&|/l&>User Summary % }

    % }
    <& /User/Elements/UserInfo, User => $user, FormatConfig => 'UserAssetExtraInfo', ClassPrefix => 'asset-user' &> % $m->callback(CallbackName => 'AfterRecord', User => $user, Group => $Group );
    % } % my $groups = $Group->GroupMembersObj( Recursively => 0 ); % $groups->LimitToUserDefinedGroups; % while (my $g = $groups->Next) { % next if $Skip and $Skip->HasMember( $g->PrincipalId );

    <&|/l, $g->Name &>Group: [_1] % if ($Note) { <% $Note %> % }

    % } <%ARGS> $Group => undef $Note => '' $Skip => undef $Single => 0 $Title => 1 rt-4.4.4/share/html/Asset/Elements/CreateLinkedTicket000644 000765 000024 00000007775 13437510132 023357 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $AssetObj $Requestors => '' <%init> my @asset_objs; if ( ref $AssetObj eq 'ARRAY' ){ # Accept an array of asset objects @asset_objs = @$AssetObj; } else{ # Also support passing a single asset object push @asset_objs, $AssetObj; } my @description = map { $m->interp->apply_escapes($_, 'h') } $asset_objs[0]->id, $asset_objs[0]->Name; my $refers_to = join ' ', map { "asset:" . $_->id } @asset_objs; # Find possible requestors my %role_addresses; foreach my $asset (@asset_objs){ for my $role ($asset->Roles) { # Create a hash with email addresses to easily de-dupe the lists from multiple assets map { $role_addresses{$role}{$_} = 1 } $asset->RoleGroup($role)->MemberEmailAddresses; } }
    <% $session{CurrentUser}->Privileged ? "/Ticket" : "/SelfService" %>/Create.html" id="AssetCreateLinkedTicket"> % if ( @asset_objs == 1 ){ <&|/l_unsafe, $m->scomp("/Elements/SelectNewTicketQueue"), @description &>Create a new ticket in the [_1] queue about asset #[_2]: [_3]. % } % else { <&|/l_unsafe, $m->scomp("/Elements/SelectNewTicketQueue"), &>Create a new ticket in the [_1] queue about multiple assets. % } % if ($Requestors) { % } else { % my $first = 1; % for my $role ($asset_objs[0]->Roles) { % my $addr = join ', ', keys %{$role_addresses{$role}}; % next unless defined $addr and length $addr;
    % $first = 0; % } % } <& /Elements/Submit, Label => loc("Go"), Caption => loc("This will take you to a partially prefilled ticket creation form.") &>
    rt-4.4.4/share/html/Asset/Elements/ShowPeople000644 000765 000024 00000005723 13437510132 021735 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $AssetObj <%init> my $CatalogObj = $AssetObj->CatalogObj; % for my $role ($AssetObj->Roles) { % next if $user->id == RT->Nobody->id; % } else { % } % } <& /Elements/ShowCustomFields, Object => $AssetObj, Grouping => 'People', Table => 0 &>
    <% loc($role) %>: % if ($AssetObj->Role($role)->{Single}) { % my $users = $AssetObj->RoleGroup($role)->UserMembersObj(Recursively => 0); % $users->FindAllRows; % my $user = $users->Next; <& /Elements/ShowUser, User => $user, Link => 1 &>
    <& ShowRoleMembers, Group => $AssetObj->RoleGroup($role), Title => 0 &>
    <& ShowRoleMembers, Group => $AssetObj->RoleGroup($role) &> <& ShowRoleMembers, Group => $CatalogObj->RoleGroup($role), Skip => $AssetObj->RoleGroup($role), Note => loc("(via this asset's catalog)") &>
    % $m->callback( %ARGS, CallbackName => 'AfterPeople' ); rt-4.4.4/share/html/Asset/Elements/ShowCatalog000644 000765 000024 00000005172 13437510132 022061 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <% $value %> <%ARGS> $Asset => undef $Catalog => undef <%INIT> $Catalog ||= $Asset->CatalogObj if $Asset; return unless $Catalog; my $value = $Catalog->Name; if ( $Asset and $Asset->CurrentUserHasRight('ShowCatalog') ) { # Grab the name anyway if the current user can see the catalog based on his # role for this asset. Simply checking ShowCatalog on the catalog itself # won't work since the role membership is on the asset. We need to # implement context objects (like CFs do) for catalogs. $value = $Catalog->__Value('Name'); } $value = '#'. $Catalog->id unless defined $value and length $value; rt-4.4.4/share/html/Asset/Elements/AssetSearchBasics000644 000765 000024 00000010560 13437510132 023175 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => loc('Basics'), class=>'asset-search-grouping asset-search-basics' &> % my $CFs = RT::CustomFields->new( $session{CurrentUser} ); % $CFs->LimitToCatalog( $CatalogObj->Id ); % $CFs->LimitToObjectId(0); # LimitToGlobal but no LookupType restriction % $CFs->LimitToGrouping( "RT::Asset" => "Basics" ); % while (my $cf = $CFs->Next) { % my $name = "CF.{" . $cf->Name . "}"; % my $value = ref($ARGS{$name}) ? $ARGS{$name}[0] : $ARGS{$name} || ''; % my $negval = ref($ARGS{"!$name"}) ? $ARGS{"!$name"}[0] : $ARGS{"!$name"} || ''; % }
    <& /Asset/Elements/SelectCatalog, Name => 'Catalog', CheckRight => "ShowCatalog", Default => $ARGS{'Catalog'}, OnChange => "jQuery('#AssetSearch').submit()" &>
    <& /Asset/Elements/SelectStatus, Name => 'Status', Catalogs => { $CatalogObj->id => 1 }, DefaultValue => 1, Default => ($ARGS{'Status'} || '') &>
    " />
    " />
    <& /Elements/SelectCustomFieldValue, CustomField => $cf, Name => $name, Default => $value &> <& /Elements/SelectCustomFieldValue, CustomField => $cf, Name => "!$name", Default => $negval &>
    <%args> $CatalogObj => undef rt-4.4.4/share/html/Asset/Elements/ShowLinks000644 000765 000024 00000004065 13437510132 021567 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ShowLinks, Object => delete $ARGS{AssetObj}, %ARGS &> rt-4.4.4/share/html/Asset/Elements/EditDates000644 000765 000024 00000005334 13437510132 021514 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/EditCustomFields, Object => $AssetObj, Grouping => 'Dates', InTable => 1 &> % $m->callback(%ARGS, CallbackName => "AfterFields");
    <&|/l&>Created: <&|/l_unsafe, $m->interp->apply_escapes($AssetObj->CreatedAsString, 'h'), $m->scomp('/Elements/ShowUser', User => $AssetObj->CreatorObj) &>[_1] by [_2]
    <&|/l&>Last Updated: <&|/l_unsafe, $m->interp->apply_escapes($AssetObj->LastUpdatedAsString, 'h'), $m->scomp('/Elements/ShowUser', User => $AssetObj->LastUpdatedByObj) &>[_1] by [_2]
    <%args> $AssetObj rt-4.4.4/share/html/Asset/Elements/Search000644 000765 000024 00000004502 13437510132 021047 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $value = defined $DECODED_ARGS->{q} ? $DECODED_ARGS->{q} : ''; rt-4.4.4/share/html/Asset/Elements/SelectStatus000644 000765 000024 00000005371 13437510132 022272 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/SelectStatus, %ARGS, Type => 'asset', Object => $AssetObj && $AssetObj->id ? $AssetObj : $CatalogObj, Lifecycles => \@Lifecycles &> <%init> my @Lifecycles; for my $id (keys %Catalogs) { my $catalog = RT::Catalog->new($session{'CurrentUser'}); $catalog->Load($id); push @Lifecycles, $catalog->LifecycleObj if $catalog->id; } if ($AssetObj && $AssetObj->id) { $ARGS{DefaultValue} = 0; $ARGS{Default} = $DECODED_ARGS->{Status} || $ARGS{Default}; $ARGS{Object} = $AssetObj; } elsif ( $CatalogObj ) { my $lifecycle = $CatalogObj->LifecycleObj; $ARGS{DefaultValue} = 0; $ARGS{Default} ||= $DECODED_ARGS->{Status} || $lifecycle->DefaultOnCreate; } <%args> $AssetObj => undef $CatalogObj => undef %Catalogs => () rt-4.4.4/share/html/Asset/Elements/AddCatalogPeople000644 000765 000024 00000005156 13437510132 023000 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object

    <&|/l&>Add a person

    <& SelectRoleType, Object => $Object, Name => "AddUserRoleMember-Role" &> ">

    <&|/l&>Add a group

    <& SelectRoleType, Object => $Object, Name => "AddGroupRoleMember-Role" &> ">
    rt-4.4.4/share/html/Asset/Elements/EditCatalogPeople000644 000765 000024 00000004411 13437510132 023166 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Object <%init> % for my $role ($Object->Roles( ACLOnly => 0 )) {

    <% loc($role) %>

    <& EditRoleMembers, Group => $Object->RoleGroup($role) &>
    % } <&|/l&>(Check box to delete) rt-4.4.4/share/html/Asset/Elements/AssetSearchCFs000644 000765 000024 00000006245 13437510132 022451 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => $Grouping ? loc($Grouping) : loc('Custom Fields'), hide_empty => 1, class=>'asset-search-grouping asset-search-cfs' &> % my $CFs = RT::CustomFields->new( $session{CurrentUser} ); % $CFs->LimitToCatalog( $CatalogObj->Id ); % $CFs->LimitToObjectId(0); # LimitToGlobal but no LookupType restriction % $CFs->LimitToGrouping( "RT::Asset" => $Grouping ); % if ( $CFs->Count > 0 ){ % while (my $cf = $CFs->Next) { % $$has_assets_cfs = 1 if $has_assets_cfs; % my $name = "CF.{" . $cf->Name . "}"; % my $value = ref($ARGS{$name}) ? $ARGS{$name}[0] : $ARGS{$name} || ''; % my $negval = ref($ARGS{"!$name"}) ? $ARGS{"!$name"}[0] : $ARGS{"!$name"} || ''; % }
    <& /Elements/SelectCustomFieldValue, CustomField => $cf, Name => $name, Default => $value &> <& /Elements/SelectCustomFieldValue, CustomField => $cf, Name => "!$name", Default => $negval &>
    % } <%args> $Grouping $CatalogObj => undef $has_assets_cfs => undef rt-4.4.4/share/html/Asset/Elements/EditBasics000644 000765 000024 00000007033 13437510132 021656 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if ($AssetObj->id) { % } % if ( $AssetObj->id ) { <& /Elements/EditCustomFields, Object => $AssetObj, Grouping => 'Basics', InTable => 1 &> % } elsif ( my @cf_names = grep { defined } @{RT->Config->Get('AssetBasicCustomFieldsOnCreate') || []} ) { % my $cfs = $CatalogObj->AssetCustomFields; % for my $name ( @cf_names ) { % $cfs->Limit( FIELD => 'Name', VALUE => $name, CASESENSITIVE => 0 ); % } <& /Elements/EditCustomFields, Object => $AssetObj, CustomFields => $cfs, InTable => 1, KeepValue => 1 &> % } % $m->callback(%ARGS, CallbackName => "AfterFields");
    <& /Asset/Elements/SelectCatalog, Default => $current{Catalog} &>
    <& /Asset/Elements/SelectStatus, Name => 'Status', AssetObj => $AssetObj, CatalogObj => $CatalogObj &>
    <%args> $AssetObj $CatalogObj => undef <%init> my %current = map { $_ => ($ARGS{$_} || $AssetObj->$_ || '') } $AssetObj->WritableAttributes; rt-4.4.4/share/html/Asset/Elements/ShowBasics000644 000765 000024 00000005302 13437510132 021706 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/ShowCustomFields, Object => $AssetObj, Grouping => 'Basics', Table => 0 &> % $m->callback(%ARGS, CallbackName => "AfterFields");
    <&|/l&>Catalog: <& ShowCatalog, Asset => $AssetObj &>
    <&|/l&>Name: <% $AssetObj->Name || '' %>
    <&|/l&>Description: <% $AssetObj->Description || '' %>
    <&|/l&>Status: <% loc($AssetObj->Status) %>
    <%args> $AssetObj rt-4.4.4/share/html/Asset/Elements/ShowSummary000644 000765 000024 00000005703 13437510132 022144 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $AssetObj <%init> my @sections = ( "Basics", #loc "People", #loc "Dates", #loc "Links", #loc ); my $can_edit = $session{CurrentUser}->Privileged && $AssetObj->CurrentUserHasRight("ModifyAsset"); my %link; for my $section (@sections) { my $page = $section eq 'Basics' ? "Modify.html" : "Modify$section.html"; $link{$section} = RT->Config->Get("WebPath") . "/Asset/$page?id=" . $AssetObj->id; } rt-4.4.4/share/html/Asset/Elements/AssetSearchPeople000644 000765 000024 00000007073 13437510132 023222 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, class => "asset-search-people", title => loc('People') &> % for my $role (RT::Asset->Roles) { % } % my $CFs = RT::CustomFields->new( $session{CurrentUser} ); % $CFs->LimitToCatalog( $CatalogObj->Id ); % $CFs->LimitToObjectId(0); # LimitToGlobal but no LookupType restriction % $CFs->LimitToGrouping( "RT::Asset" => "People" ); % while (my $cf = $CFs->Next) { % my $name = "CF.{" . $cf->Name . "}"; % my $value = ref($ARGS{$name}) ? $ARGS{$name}[0] : $ARGS{$name} || ''; % my $negval = ref($ARGS{"!$name"}) ? $ARGS{"!$name"}[0] : $ARGS{"!$name"} || ''; % }
    " /> " />
    <& /Elements/SelectCustomFieldValue, CustomField => $cf, Name => $name, Default => $value &> <& /Elements/SelectCustomFieldValue, CustomField => $cf, Name => "!$name", Default => $negval &>
    <%args> $CatalogObj => undef rt-4.4.4/share/html/Asset/Elements/TSVExport000644 000765 000024 00000010032 13437510132 021513 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%ARGS> $Collection $Format $PreserveNewLines => 0 <%ONCE> my $no_html = HTML::Scrubber->new( deny => '*' ); <%INIT> require HTML::Entities; $r->content_type('application/vnd.ms-excel'); my $DisplayFormat = $m->comp('/Elements/ScrubHTML', Content => $Format); my @Format = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $DisplayFormat); my @columns; my $should_loc = { map { $_ => 1 } qw(Status) }; my $col_entry = sub { my $col = shift; # in tsv output, "#" is often a comment character but we use it for "id" delete $col->{title} if $col->{title} and $col->{title} =~ /^\s*#\s*$/; return { header => Encode::encode_utf8(loc($col->{title} || $col->{attribute})), map => $m->comp( "/Elements/ColumnMap", Class => "RT__Asset", Name => $col->{attribute}, Attr => 'value' ), should_loc => $should_loc->{$col->{attribute}}, } }; if ($PreserveNewLines) { my $col = []; push @columns, $col; for (@Format) { if ($_->{title} eq 'NEWLINE') { $col = []; push @columns, $col; } else { push @$col, $col_entry->($_); } } } else { push @columns, [map { $_->{attribute} ? $col_entry->($_) : () } @Format]; } for (@columns) { $m->out(join("\t", map { $_->{header} } @$_)."\n"); } my $ii = 0; while (my $row = $Collection->Next) { for my $col (@columns) { $m->out(join("\t", map { my $val = ProcessColumnMapValue($_->{map}, Arguments => [$row, $ii++], Escape => 0); $val = loc($val) if $_->{should_loc}; # remove tabs from all field values, they screw up the tsv $val = '' unless defined $val; $val =~ s/(?:\n|\r)//g; $val =~ s{\t}{ }g; $val = $no_html->scrub($val); $val = HTML::Entities::decode_entities($val); Encode::encode_utf8($val); } @$col)."\n"); } } $m->abort(); rt-4.4.4/share/html/Asset/Elements/CreateInCatalog000644 000765 000024 00000004512 13437510132 022630 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    /Asset/Create.html" id="AssetCreateInCatalog"> <&|/l_unsafe, $m->scomp("/Asset/Elements/SelectCatalog"), &>Create a new asset in the catalog [_1]. <& /Elements/Submit, Label => loc("Go"), Caption => loc("This will take you to a partially prefilled asset creation form.") &>
    rt-4.4.4/share/html/Asset/Elements/EditRoleMembers000644 000765 000024 00000005724 13437510132 022673 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Group => undef $Recursively => 0 <%init> my $field_name = "RemoveRoleMember-" . $Group->Name;
      % my $Users = $Group->UserMembersObj( Recursively => $Recursively ); % if ($Group->SingleMemberRoleGroup) {
      % } else { % while ( my $user = $Users->Next ) {
    • % } % my $Groups = $Group->GroupMembersObj( Recursively => $Recursively ); % $Groups->LimitToUserDefinedGroups; % while (my $group = $Groups->Next) {
    • % } % }
    rt-4.4.4/share/html/Asset/Search/Results.tsv000644 000765 000024 00000005563 13437510132 021557 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $catalog_obj = LoadDefaultCatalog($ARGS{'Catalog'} || ''); $ARGS{'Catalog'} = $catalog_obj->Id; my $assets = RT::Assets->new($session{CurrentUser}); ProcessAssetsSearchArguments( Assets => $assets, Catalog => $catalog_obj, ARGSRef => \%ARGS, ); my $Format = q|id, Name, Description, Status, Catalog, |; $Format .= "$_, " for RT::Asset->Roles; my $CFs = RT::CustomFields->new( $session{CurrentUser} ); $CFs->LimitToCatalog( $catalog_obj->Id ); $CFs->LimitToObjectId( 0 ); # LimitToGlobal but no LookupType restriction $Format .= "'__CF.{$_}__/TITLE:$_', " for map {$_ = $_->Name; s/(['\\])/\\$1/g; $_} @{$CFs->ItemsArrayRef}; $m->callback(CallbackName => "ModifyFormat", Format => \$Format ); my $comp = "/Asset/Elements/TSVExport"; $comp = "/Elements/TSVExport" if $m->comp_exists("/Elements/TSVExport"); $m->comp($comp, Collection => $assets, Format => $Format ); rt-4.4.4/share/html/Asset/Search/index.html000644 000765 000024 00000010252 13437510132 021344 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> my $catalog_obj = LoadDefaultCatalog($ARGS{'Catalog'} || ''); $ARGS{'Catalog'} = $catalog_obj->Id; my $assets = RT::Assets->new($session{CurrentUser}); my %search = ProcessAssetsSearchArguments( Assets => $assets, Catalog => $catalog_obj, ARGSRef => \%ARGS, ); my $title = ( $ARGS{'SearchAssets'} or $ARGS{q} ) ? loc("Found [quant,_1,asset,assets]",$assets->Count) : loc("Assets"); $m->callback( CallbackName => 'Initial', Assets => $assets, ARGSRef => \%ARGS); <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> % if ( $ARGS{'SearchAssets'} or $ARGS{q} ){ <& /Elements/CollectionList, %search, Collection => $assets, AllowSorting => 1, &> % if (not $assets->Count) { <&|/l&>No assets matching search criteria found. % } % }
    <&| /Widgets/TitleBox, title => loc("Search Assets") &> <& /Asset/Elements/AssetSearchBasics, %ARGS, CatalogObj => $catalog_obj &> <& /Asset/Elements/AssetSearchPeople, %ARGS, CatalogObj => $catalog_obj &> <& /Elements/Submit, Label => loc('Search'), Name => 'SearchAssets' &> % my $has_assets_cfs = 0; % foreach my $group ( 'Dates', 'Links', RT::CustomField->CustomGroupings( "RT::Asset" ), '' ) { <& /Asset/Elements/AssetSearchCFs, %ARGS, Grouping => $group, CatalogObj => $catalog_obj, has_assets_cfs => \$has_assets_cfs &> % } % if ( $has_assets_cfs ) { <& /Elements/Submit, Label => loc('Search'), Name => 'SearchAssets' &> % }
    rt-4.4.4/share/html/Asset/Search/Bulk.html000644 000765 000024 00000022152 13437510132 021134 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Assets") &> <& /Elements/Tabs &> % $m->callback(CallbackName => 'BeforeActionList', ARGSRef => \%ARGS, Assets => $assets, Actions => \@results); <& /Elements/ListActions, actions => \@results &>
    % foreach my $var ( @{$search{'PassArguments'}} ) { % } <& /Elements/CollectionList, %search, Collection => $assets, AllowSorting => 1, DisplayFormat => $DisplayFormat, &> % if (not $assets->Count) { <&|/l&>No assets matching search criteria found. % } <& /Elements/Submit, Name => 'Update', Label => loc('Update'), CheckboxNameRegex => '/^UpdateAsset(All)?$/', CheckAll => 1, ClearAll => 1, &>
    <&| /Widgets/TitleBox, title => loc("Basics"), class => "asset-basics asset-bulk-basics", title_class => "inverse" &>
    <& /Asset/Elements/SelectCatalog, Name => 'UpdateCatalog', Default => $catalog_obj->id, UpdateSession => 0, &>
    <& /Asset/Elements/SelectStatus, Name => 'UpdateStatus', DefaultValue => 1, CatalogObj => $catalog_obj &>
    % my $cfs = $catalog_obj->AssetCustomFields; % $cfs->LimitToGrouping( 'RT::Asset' => 'Basics'); % if ( $cfs->Count ) { <& /Elements/BulkCustomFields, CustomFields => $cfs, &> % } <&| /Widgets/TitleBox, title => loc("People"), class => "asset-people asset-bulk-people", title_class => "inverse" &> % for my $rname ( $asset->Roles( ACLOnly => 0 ) ) { % my $role = $asset->Role( $rname ); % if ( $role->{'Single'} ) { % my $input = "SetRoleMember-$rname"; % } else { % my $input = "AddRoleMember-$rname"; % $input = "RemoveRoleMember-$rname"; % } % } % my $cfs = $catalog_obj->AssetCustomFields; % $cfs->LimitToGrouping( 'RT::Asset' => 'People'); % if ( $cfs->Count ) { <& /Elements/BulkCustomFields, CustomFields => $cfs, &> % }
    % my $cfs = $catalog_obj->AssetCustomFields; % $cfs->LimitToGrouping( 'RT::Asset' => 'Dates'); % if ( $cfs->Count ) { <&| /Widgets/TitleBox, title => loc("Dates"), class => "asset-dates asset-bulk-dates", title_class => "inverse" &> <& /Elements/BulkCustomFields, CustomFields => $cfs, &> % } % for my $group ( RT::CustomField->CustomGroupings( 'RT::Asset' ), '' ) { % my $cfs = $catalog_obj->AssetCustomFields; % $cfs->LimitToGrouping( 'RT::Asset' => $group); % if ( $cfs->Count ) { <&| /Widgets/TitleBox, class=>'asset-bulk-grouping asset-info-cfs asset-bulk-cfs', title => loc('Edit [_1]', ($group? loc($group) : loc('Custom Fields')) ), title_class => "inverse" &> <& /Elements/BulkCustomFields, CustomFields => $cfs, &> % } % } <&|/Widgets/TitleBox, title => loc('Edit Links'), class => "asset-links asset-bulk-links", title_class => "inverse" &> <& /Elements/BulkLinks, Collection => $assets, %ARGS &> % my $cfs = $catalog_obj->AssetCustomFields; % $cfs->LimitToGrouping( 'RT::Asset' => 'Links'); % if ( $cfs->Count ) { <& /Elements/BulkCustomFields, CustomFields => $cfs, &> % } <& /Elements/Submit, Label => loc('Update'), Name => 'Update' &>
    <%INIT> my @results; $m->callback(ARGSRef => \%ARGS, Results => \@results, CallbackName => 'Initial'); my $catalog_obj = LoadDefaultCatalog($ARGS{'Catalog'} || ''); $ARGS{'Catalog'} = $catalog_obj->Id; my $assets = RT::Assets->new($session{CurrentUser}); my %search = ProcessAssetsSearchArguments( Assets => $assets, Catalog => $catalog_obj, ARGSRef => \%ARGS, ); my $DisplayFormat = "'__CheckBox.{UpdateAsset}__',". $search{'Format'}; $DisplayFormat =~ s/\s*,\s*('?__NEWLINE__'?)/,$1,''/gi; my $asset = RT::Asset->new( $session{'CurrentUser'} ); delete $ARGS{$_} foreach grep { $ARGS{$_} =~ /^$/ } keys %ARGS; $DECODED_ARGS->{'UpdateAssetAll'} = 1 unless @UpdateAsset; if ( $ARGS{'CreateLinkedTicket'} ){ my $url = RT->Config->Get('WebURL') . "Asset/CreateLinkedTicket.html"; $url .= '?'. $m->comp( '/Elements/QueryString', 'Assets' => \@UpdateAsset ); RT::Interface::Web::Redirect($url); } elsif ( $ARGS{Update} ) { my @attributes = $asset->WritableAttributes; @attributes = grep exists $ARGS{ 'Update'. $_ }, @attributes; my %basics = map { $_ => $ARGS{ 'Update'. $_ } } @attributes; foreach my $aid ( @UpdateAsset ) { my $asset = LoadAsset($aid); my @tmp_res; push @tmp_res, UpdateRecordObject( Object => $asset, AttributesRef => \@attributes, ARGSRef => \%basics, ); push @tmp_res, ProcessAssetRoleMembers( $asset => %ARGS ); push @tmp_res, ProcessObjectCustomFieldUpdates( Object => $asset, ARGSRef => \%ARGS ); push @tmp_res, ProcessRecordLinks( RecordObj => $asset, RecordId => 'Asset', ARGSRef => \%ARGS ); push @tmp_res, ProcessRecordBulkCustomFields( RecordObj => $asset, ARGSRef => \%ARGS ); push @results, map { loc( "Asset #[_1]: [_2]", $asset->id, $_ ) } @tmp_res; } MaybeRedirectForResults( Actions => \@results, Arguments => { map { $_ => $ARGS{$_} } grep { defined $ARGS{$_} } @{$search{'PassArguments'}} }, ); } <%ARGS> @UpdateAsset => () rt-4.4.4/share/html/Install/index.html000644 000765 000024 00000011671 13437510132 020474 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Elements/Wrapper, Title => loc('Welcome to RT!') &> <& Elements/Errors, Errors => \@errors &> % return if $locked;

    <% loc('Language') %>

    <&|/l&>Select another language: <& /Elements/SelectLang, Name => 'Lang', Default => $lang_handle? $lang_handle->language_tag : undef, &>

    <% loc('What is RT?') %>

    <&|/l&>RT is an enterprise-grade issue tracking system designed to let you intelligently and efficiently manage tasks, issues, requests, defects or anything else that looks like an "action item."

    <&|/l&>RT is used by Fortune 100 companies, one-person businesses, government agencies, educational institutions, hospitals, nonprofits, NGOs, libraries, open source projects and all sorts of other organizations on all seven continents. (Yes, even Antarctica.)

    <% loc('Getting started') %>

    <&|/l, loc("Let's go!") &>You're seeing this screen because you started up an RT server without a working database. Most likely, this is the first time you're running RT. If you click "[_1]" below, RT will guide you through setting up your RT server and database.

    <&|/l&>If you already have a working RT server and database, you should take this opportunity to make sure that your database server is running and that the RT server can connect to it. Once you've done that, stop and start the RT server.

    <& /Elements/Submit, Label => loc( "Let's go!"), Name => 'Run' &>
    <%init> my @errors; my $locked; my $file = RT::Installer->ConfigFile; if ( ! -e $file ) { # write a blank RT_SiteConfig.pm open( my $fh, '>', $file ) or die $!; close $fh; } elsif ( ! -w $file ) { $locked = 1; } if ( $locked ) { push @errors, loc("Config file [_1] is locked", $file); } elsif ( $Run ) { $RT::Installer->{InstallConfig} ||= {}; for my $field ( qw/DatabaseType DatabaseName DatabaseHost DatabasePort DatabaseUser rtname Organization CommentAddress CorrespondAddress SendmailPath WebDomain WebPort/ ) { $RT::Installer->{InstallConfig}{$field} ||= RT->Config->Get($field); } for my $field ( qw/OwnerEmail Password DatabasePassword DatabaseAdminPassword/ ) { # stuff we don't want to keep null $RT::Installer->{InstallConfig}{$field} = ''; } RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/DatabaseType.html'); } elsif ( $ChangeLang && $Lang ) { # hackish, but works $session{'CurrentUser'} = RT::CurrentUser->new; $session{'CurrentUser'}->LanguageHandle( $Lang ); } my $lang_handle = do { local $@; eval { ($session{'CurrentUser'} || RT::CurrentUser->new(RT->SystemUser->Id)) ->LanguageHandle } }; <%args> $Run => 0 $ChangeLang => undef $Lang => undef rt-4.4.4/share/html/Install/Finish.html000644 000765 000024 00000006537 13437510132 020612 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Elements/Wrapper, Title => loc('Step [_1] of [_2]', 7, 7) .': '. loc('Finish') &>

    <&|/l&>Click "Finish Installation" below to complete this wizard.

    <&|/l_unsafe, 'root' &>You should be taken directly to a login page. You'll be able to log in with username of [_1] and the password you set earlier.

    <&|/l&>If you've changed the Port that RT runs on, you'll need to restart the server in order to log in.

    <&|/l, RT::Installer->ConfigFile &>The settings you've chosen are stored in [_1].

    <& /Elements/Submit, Label => 'Finish Installation' &>
    <%init> if ( $Run ) { RT->InstallMode(0); RT->ConnectToDatabase(); RT->InitSystemObjects(); RT->InitClasses(); RT->InitPlugins(); my $ret = chmod 0440, RT::Installer->ConfigFile; if ( !$ret ) { $RT::Logger->error( 'failed to make ' . RT::Installer->ConfigFile . ' readonly' ); } my $root = RT::User->new( RT->SystemUser ); $root->Load('root'); my ($ok, $val) = $root->SetPassword( $RT::Installer->{InstallConfig}{Password} ); $RT::Logger->warning("Unable to set root password: $val") if !$ok; RT::Interface::Web::Redirect(RT->Config->Get('WebURL')); } <%args> $Run => undef rt-4.4.4/share/html/Install/Initialize.html000644 000765 000024 00000012070 13437510132 021460 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|Elements/Wrapper, Title => loc('Step [_1] of [_2]', 6, 7) .': '. loc('Initialize Database') &> <& Elements/Errors, Errors => \@errors &> % unless ( @errors ) {
    <&|/l&>Click "Initialize Database" to create RT's database and insert initial metadata. This may take a few moments
    % }
    <& /Elements/Submit, Label => loc('Initialize Database'), Back => 1, BackLabel => loc('Back') .': '. loc('Customize Email Addresses'), &>
    <%init> my @errors; if ( $Run ) { if ( $Back ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Global.html'); } my @actions = split /,/, $RT::Installer->{DatabaseAction}; # RT::Handle's ISA is dynamical, so we need to unshift the right one. my $class = 'DBIx::SearchBuilder::Handle::' . RT->Config->Get('DatabaseType'); $class->require or die $UNIVERSAL::require::ERROR; unshift @RT::Handle::ISA, $class; my $sysdbh = DBI->connect( RT::Handle->SystemDSN, $RT::Installer->{InstallConfig}{DatabaseAdmin}, $RT::Installer->{InstallConfig}{DatabaseAdminPassword}, { RaiseError => 0, PrintError => 0 }, ); die $DBI::errstr unless $sysdbh; my ( $status, $msg ) = ( 1, '' ); if ( $actions[0] eq 'create' ) { ($status, $msg) = RT::Handle->CreateDatabase( $sysdbh ); unless ( $status ) { push @errors, loc('ERROR: [_1]', $msg ); } shift @actions; # shift the 'create' action since its job is done. } if ( $status ) { my $dbh = DBI->connect( RT::Handle->DSN, $RT::Installer->{InstallConfig}{DatabaseAdmin}, $RT::Installer->{InstallConfig}{DatabaseAdminPassword}, { RaiseError => 0, PrintError => 0 }, ); die $DBI::errstr unless $dbh; foreach my $action ( @actions ) { ($status, $msg) = (1, ''); if ( $action eq 'schema' ) { ($status, $msg) = RT::Handle->InsertSchema( $dbh ); } elsif ( $action eq 'acl' ) { ($status, $msg) = RT::Handle->InsertACL( $dbh ); } elsif ( $action eq 'coredata' ) { $RT::Handle = RT::Handle->new; $RT::Handle->dbh( undef ); RT::ConnectToDatabase(); RT::InitLogging(); RT::InitClasses(); ($status, $msg) = $RT::Handle->InsertInitialData; } elsif ( $action eq 'insert' ) { $RT::Handle = RT::Handle->new; RT::Init(); my $file = $RT::EtcPath . "/initialdata"; ($status, $msg) = $RT::Handle->InsertData( $file, undef, disconnect_after => 0 ); } unless ( $status ) { push @errors, loc('ERROR: [_1]', $msg); last; } } } unless ( @errors ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Finish.html'); } } <%args> $Run => undef $Back => undef rt-4.4.4/share/html/Install/autohandler000644 000765 000024 00000004615 13437510132 020730 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%flags> inherit => undef <%init> if (RT->InstallMode) { $r->content_type("text/html; charset=utf-8"); require RT::Installer; $RT::Installer->{'CurrentUser'} = RT::CurrentUser->new(); $RT::Installer->{Meta} = RT::Installer->Meta; $m->call_next; } else { # redirect to login page if not in install mode RT::Interface::Web::Redirect(RT->Config->Get('WebURL')) } rt-4.4.4/share/html/Install/Global.html000644 000765 000024 00000010315 13437510132 020557 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Elements/Wrapper, Title => loc('Step [_1] of [_2]', 5, 7 ) .': '. loc('Customize Email Addresses') &> <& Elements/Errors, Errors => \@errors &>

    <&|/l&>Help us set up some useful defaults for RT.

    <&|/l&>When RT sends an email it sets the From: and Reply-To: headers so users can add to the conversation by just hitting Reply in their mail client. It uses different addresses for Replies and Comments. These can be changed for each of your queues. These addresses will need to be configured to use the rt-mailgate program.

    <& /Widgets/BulkEdit, Types => \@Types,Meta => $RT::Installer->{Meta}, CurrentValue => RT::Installer->CurrentValues(@Types) &> <& /Elements/Submit, Label => $RT::Installer->{DatabaseAction} eq 'none' ? loc('Next') .': '. loc('Finish') : loc('Next') .': '. loc('Initialize Database'), Back => 1, BackLabel => loc('Back') .': '. loc('Customize Email Configuration'), &>
    <%init> my @errors; my @Types = qw/CommentAddress CorrespondAddress/; if ( $Run ) { $m->comp('/Widgets/BulkProcess', Types => \@Types, Arguments => \%ARGS, Store => $RT::Installer->{InstallConfig}, Meta => $RT::Installer->{Meta}, KeepUndef => 1 ); if ( $Back ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Sendmail.html'); } for ( qw/CommentAddress CorrespondAddress/ ) { if ( $ARGS{$_} && $ARGS{$_} !~ /.+@.+/ ) { push @errors, loc("Invalid [_1]: '[_2]' doesn't look like an email address", $_, $ARGS{$_}); } } unless ( @errors ) { my ( $status, $msg ) = RT::Installer->SaveConfig; if ( $status ) { RT->LoadConfig; if ( $RT::Installer->{DatabaseAction} ne 'none' ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Initialize.html'); } else { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Finish.html'); } } else { push @errors, loc($msg); } } } <%args> $Run => undef $Back => undef rt-4.4.4/share/html/Install/Basics.html000644 000765 000024 00000007445 13437510132 020575 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Elements/Wrapper, Title => loc('Step [_1] of [_2]', 3, 7) .': '. loc('Customize Basics') &> <& Elements/Errors, Errors => \@errors &>

    <&|/l&>These configuration options cover some of the basics needed to get RT up and running. We need to know the name of your RT installation and the domain name where RT will live. You will also need to set a password for your default administrative user.

    <& /Widgets/BulkEdit, Types => \@Types,Meta => $RT::Installer->{Meta}, CurrentValue => RT::Installer->CurrentValues(@Types) &> <& /Elements/Submit, Label => loc('Next') .': '. loc('Customize Email Configuration'), Back => 1, BackLabel => loc('Back') .': '. loc('Check Database Credentials'), &>
    <%init> my @errors; my @Types = qw/rtname WebDomain WebPort Password/; if ( $Run ) { $m->comp('/Widgets/BulkProcess', Types => \@Types, Arguments => \%ARGS, Store => $RT::Installer->{InstallConfig}, Meta => $RT::Installer->{Meta} ); if ( $ARGS{WebPort} && $ARGS{WebPort} !~ /^\d+$/ ) { push @errors, loc("Invalid [_1]: it should be a number", 'WebPort'); } if ( !$ARGS{Password} ) { push @errors, loc("You must enter an Administrative password"); } else { my $dummy_user = RT::User->new($session{CurrentUser}); my ($ok, $msg) = $dummy_user->ValidatePassword($ARGS{Password}); unless ($ok) { push @errors, $msg; } } if ( $Back ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/DatabaseDetails.html'); } unless ( @errors ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Sendmail.html'); } } <%args> $Run => undef $Back => undef rt-4.4.4/share/html/Install/DatabaseDetails.html000644 000765 000024 00000020104 13437510132 022366 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| Elements/Wrapper, Title => loc('Step [_1] of [_2]', 2, 7 ) .': '. loc('Check Database Credentials') &> % if ( @errors ) { <& Elements/Errors, Errors => \@errors &>

    <&|/l&>Tell us a little about how to find the database RT will be using

    <&|/l&>We need to know the name of the database RT will use and where to find it. We also need to know the username and password of the user RT should use. RT can create the database and user for you, which is why we ask for the username and password of a user with DBA privileges. During step 6 of the installation process we will use this information to create and initialize RT's database.

    <&|/l&>When you click on 'Check Database Connectivity' there may be a small delay while RT tries to connect to your database % } elsif ( @results ) { <& /Elements/ListActions, actions => \@results &>

    <&|/l&>We are able to find your database and connect as the DBA. You can click on 'Customize Basics' to continue customizing RT. % }

    % if ( @results && !@errors ) { <& /Elements/Submit, Label => loc('Next') .': '. loc('Customize Basics'), Back => 1, BackLabel => loc('Back') .': '. loc('Select Database Type'), Name => 'Next', &> % } else { <& /Widgets/BulkEdit, Types => \@Types, Meta => $RT::Installer->{Meta}, CurrentValue => { %{RT::Installer->CurrentValues(@Types)}, DatabaseAdmin => RT::Installer->CurrentValue( 'DatabaseAdmin' ) || $RT::Installer->{InstallConfig}{DatabaseAdmin} || ( $db_type eq 'mysql' ? 'root' : $db_type eq 'Pg' ? 'postgres' : '' ), } &> <& /Elements/Submit, Label => loc('Check Database Connectivity'), Back => 1, BackLabel => loc('Back') .': '. loc('Choose Database Engine'), &> % }
    <%init> my (@results, @errors); my $ConnectionSucceeded; my @Types = 'DatabaseName'; my $db_type = $RT::Installer->{InstallConfig}{DatabaseType}; unless ( $db_type eq 'SQLite' ) { push @Types, 'DatabaseHost', 'DatabasePort', 'DatabaseAdmin', 'DatabaseAdminPassword', 'DatabaseUser', 'DatabasePassword'; } if ( $Run ) { if ( $Back ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/DatabaseType.html'); } if ( $ARGS{Next} ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Basics.html'); } $m->comp('/Widgets/BulkProcess', Types => \@Types, Arguments => \%ARGS, Store => $RT::Installer->{InstallConfig}, Meta => $RT::Installer->{Meta}, KeepUndef => 1 ); my ( $status, $msg ) = RT::Installer->SaveConfig; if ( $status ) { RT->LoadConfig; RT::Handle->FinalizeDatabaseType(); # dba connect systemdsn my $dbh = DBI->connect( RT::Handle->SystemDSN, $ARGS{DatabaseAdmin}, $ARGS{DatabaseAdminPassword}, { RaiseError => 0, PrintError => 0 }, ); if ( $dbh ) { push @results, loc('Connection succeeded'); # dba connect dsn, which has table info $dbh = DBI->connect( RT::Handle->DSN, $ARGS{DatabaseAdmin}, $ARGS{DatabaseAdminPassword}, { RaiseError => 0, PrintError => 0 }, ); if ( $dbh and $db_type eq "Oracle") { # The database _existing_ is itself insufficient for Oracle -- we need to check for the RT user my $sth = $dbh->prepare('SELECT username FROM dba_users WHERE username = ?'); $sth->execute( $ARGS{DatabaseUser} ); undef $dbh unless $sth->fetchrow_array; push @errors, loc("Oracle users cannot have empty passwords") unless $ARGS{DatabasePassword}; } if ( $dbh ) { # check if table Users exists eval { my $dbh = DBI->connect( RT::Handle->DSN, $ARGS{DatabaseAdmin}, $ARGS{DatabaseAdminPassword}, { RaiseError => 1, PrintError => 0 }, ); my $sth = $dbh->prepare('select * from Users'); $sth->execute(); }; unless ( $@ ) { my $sth = $dbh->prepare('select id from Users where Name=?'); $sth->execute('RT_System'); if ( $sth->fetchrow_array ) { $RT::Installer->{DatabaseAction} = 'none'; push @results, loc("[_1] appears to be fully initialized. We won't need to create any tables or insert metadata, but you can continue to customize RT by clicking 'Customize Basics' below", $RT::DatabaseName); } else { $RT::Installer->{DatabaseAction} = 'acl,coredata,insert'; push @results, loc("[_1] already exists and has RT's tables in place, but does not contain RT's metadata. The 'Initialize Database' step later on can insert metadata into this existing database. If this is acceptable, click 'Customize Basics' below to continue customizing RT.", $RT::DatabaseName); } } else { $RT::Installer->{DatabaseAction} = 'schema,acl,coredata,insert'; push @results, loc("[_1] already exists, but does not contain RT's tables or metadata. The 'Initialize Database' step later on can insert tables and metadata into this existing database. if this is acceptable, click 'Customize Basic' below to continue customizing RT.", $RT::DatabaseName ); } } else { $RT::Installer->{DatabaseAction} = 'create,schema,acl,coredata,insert'; } } else { $RT::Installer->{DatabaseAction} = 'error'; push @errors, loc("Failed to connect to database: [_1]", $DBI::errstr ); } } else { push @results, loc($msg); } } <%args> $Run => undef $Back => undef rt-4.4.4/share/html/Install/Sendmail.html000644 000765 000024 00000007337 13437510132 021125 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|Elements/Wrapper, Title => loc('Step [_1] of [_2]', 4, 7 ) .': '. loc('Customize Email Configuration') &> <& Elements/Errors, Errors => \@errors &>

    <&|/l&>RT can communicate with your users about new tickets or new correspondence on tickets. Tell us where to find sendmail (or a sendmail compatible binary such as the one provided by postifx). RT also needs to know who to notify when someone sends invalid email. This must not be an address that feeds back into RT.

    <& /Widgets/BulkEdit, Types => \@Types,Meta => $RT::Installer->{Meta}, CurrentValue => RT::Installer->CurrentValues(@Types) &> <& /Elements/Submit, Label => loc('Next') .': '. loc('Customize Email Addresses'), Back => 1, BackLabel => loc('Back' ) .': '. loc('Customize Basics'), &>
    <%init> my @errors; my @Types = qw/SendmailPath OwnerEmail/; if ( $Run ) { $m->comp('/Widgets/BulkProcess', Types => \@Types, Arguments => \%ARGS, Store => $RT::Installer->{InstallConfig}, Meta => $RT::Installer->{Meta}, KeepUndef => 1); if ( $Back ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Basics.html'); } unless ( -e $ARGS{SendmailPath} ) { push @errors, loc( "[_1] doesn't exist.", $ARGS{SendmailPath} ); } if ( ! $ARGS{OwnerEmail} || $ARGS{OwnerEmail} !~ /.+@.+/ ) { push @errors, loc("Invalid [_1]: '[_2]' doesn't look like an email address", 'Administrator Email', $ARGS{OwnerEmail} ); } unless ( @errors ) { RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/Global.html'); } } <%args> $Run => undef $Back => undef rt-4.4.4/share/html/Install/Elements/000755 000765 000024 00000000000 13437510132 020245 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Install/DatabaseType.html000644 000765 000024 00000007122 13437510132 021727 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|Elements/Wrapper, Title => loc('Step [_1] of [_2]', 1, 7 ) .': '. loc('Choose Database Engine') &>

    <&|/l&>RT works with a number of different databases. MySQL, PostgreSQL, Oracle and SQLite are all supported.

    <&|/l&>You should choose the database you or your local database administrator is most comfortable with.

    <&|/l&>SQLite is a database that doesn't need a server or any configuration whatsoever. RT's authors recommend it for testing, demoing and development, but it's not quite right for a high-volume production RT server.

    <&|/l_unsafe, 'CPAN' &>If your preferred database isn't listed in the dropdown below, that means RT couldn't find a database driver for it installed locally. You may be able to remedy this by using [_1] to download and install DBD::MySQL, DBD::Oracle or DBD::Pg.

    <& /Widgets/BulkEdit, Types => \@Types, Meta => $RT::Installer->{Meta}, CurrentValue => RT::Installer->CurrentValues(@Types) &> <& /Elements/Submit, Label => loc('Next') .': '. loc( 'Check Database Credentials') &>
    <%init> my @Types = 'DatabaseType'; if ( $Run ) { $m->comp('/Widgets/BulkProcess', Types => \@Types, Arguments => \%ARGS, Meta => $RT::Installer->{Meta}, Store => $RT::Installer->{InstallConfig} ); RT::Interface::Web::Redirect(RT->Config->Get('WebURL') . 'Install/DatabaseDetails.html'); } <%args> $Run => undef rt-4.4.4/share/html/Install/Elements/Wrapper000644 000765 000024 00000004361 13437510132 021614 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&/Elements/Header, title => $Title &> <& /Elements/PageLayout, title => $Title, show_menu => 1 &> <% $m->content() |n%> <& /Elements/Footer &> % $m->abort; <%args> $Title => 'Install RT' rt-4.4.4/share/html/Install/Elements/Errors000644 000765 000024 00000004300 13437510132 021441 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % if (@Errors) { <&| "/Widgets/TitleBox", title => loc('Error'), hideable => 0, class => 'error' &>
      % for my $Error ( @Errors ) {
    • <% $Error %>
    • % }
    % } <%args> @Errors rt-4.4.4/share/html/SelfService/Update.html000644 000765 000024 00000011172 13437510132 021407 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title =>loc('Update ticket #[_1]', $Ticket->id) &> % $m->callback(CallbackName => 'BeforeForm', %ARGS, ARGSRef => \%ARGS, Ticket => $Ticket );
    <& /Ticket/Elements/AddAttachments, %ARGS, TicketObj => $Ticket &>
    <&|/l&>Status <& /Ticket/Elements/SelectStatus, Name => "Status", TicketObj => $Ticket, Default => $DefaultStatus &>
    <&|/l&>Subject
    <& /Elements/EditCustomFields, Object => $Ticket, AsTable => 0 &>
    % if (exists $ARGS{UpdateContent}) { % # preserve QuoteTransaction so we can use it to set up sane references/in/reply to % my $temp = $ARGS{'QuoteTransaction'}; % delete $ARGS{'QuoteTransaction'}; <& /Elements/MessageBox, Name=>"UpdateContent", Default=>$ARGS{UpdateContent}, IncludeSignature => 0, %ARGS&> % $ARGS{'QuoteTransaction'} = $temp; % } else { % my $IncludeSignature = 1; <& /Elements/MessageBox, Name=>"UpdateContent", IncludeSignature => $IncludeSignature, %ARGS &> % }
    <& /Elements/Submit, Label => loc('Update Ticket'), Name => 'SubmitTicket', id => 'SubmitTicket' &>
    <%INIT> my $Ticket = LoadTicket($id); $m->callback( Ticket => $Ticket, ARGSRef => \%ARGS, CallbackName => 'Initial' ); my $title = loc( "Update ticket #[_1]", $Ticket->id ); $DefaultStatus = $ARGS{Status} || $Ticket->Status() unless ($DefaultStatus); Abort( loc("No permission to view update ticket") ) unless ( $Ticket->CurrentUserHasRight('ReplyToTicket') or $Ticket->CurrentUserHasRight('ModifyTicket') ); ProcessAttachments(ARGSRef => \%ARGS); if ( exists $ARGS{SubmitTicket} ) { $m->callback(CallbackName => 'BeforeDisplay', Ticket => \$Ticket, ARGSRef => \%ARGS); return $m->comp('Display.html', TicketObj => $Ticket, %ARGS); } <%ARGS> $id => undef $Action => undef $DefaultStatus => undef rt-4.4.4/share/html/SelfService/index.html000644 000765 000024 00000004711 13437510132 021275 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc('Open tickets') &> % $m->callback(CallbackName => 'BeforeMyRequests', ARGSRef => \%ARGS, Page => $Page); <& /SelfService/Elements/MyRequests, %ARGS, status => '__Active__', title => loc('My open tickets'), BaseURL => RT->Config->Get('WebPath') ."/SelfService/?", Page => $Page, &> % $m->callback(CallbackName => 'AfterMyRequests', ARGSRef => \%ARGS, Page => $Page); <%ARGS> $Page => 1 rt-4.4.4/share/html/SelfService/CreateTicketInQueue.html000644 000765 000024 00000004706 13437510132 024035 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& Elements/Header, Title => loc("Create a ticket") &>

    <&|/l&>Select a queue for your new ticket

    % while (my $queue = $queues->Next) { % next unless $queue->CurrentUserHasRight('CreateTicket');
    <%$queue->Name%>
    <%$queue->Description%>
    % }
    <%init> my $queues = RT::Queues->new($session{'CurrentUser'}); $queues->UnLimit; rt-4.4.4/share/html/SelfService/Asset/000755 000765 000024 00000000000 13437510132 020354 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Attachment/000755 000765 000024 00000000000 13437510132 021365 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Create.html000644 000765 000024 00000011733 13437510132 021373 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& Elements/Header, Title => loc("Create a ticket in [_1]", $m->scomp("/Ticket/Elements/ShowQueue", QueueObj => $queue_obj)) &> <& /Elements/ListActions, actions => \@results &>
    % for my $key (grep {defined $ARGS{$_}} map {+("new-$_", "$_-new")} keys %RT::Link::DIRMAP) { % } <% $m->callback( CallbackName => 'AfterQueue', %ARGS, QueueObj => $queue_obj ) %> <& /Ticket/Elements/AddAttachments, %ARGS, QueueObj => $queue_obj &>
    <&|/l&>Queue: <%$queue_obj->Name || ''%> <% $queue_obj->Description ? '('.$queue_obj->Description.')' : '' %>
    <&|/l&>Requestors: <& /Elements/EmailInput, Name => 'Requestors', Size => '20', Default => $ARGS{Requestors} || $session{CurrentUser}->EmailAddress, AutocompleteMultiple => 1 &>
    <&|/l&>Cc: <& /Elements/EmailInput, Name => 'Cc', Size => '20', Default => $ARGS{Cc} || '', AutocompleteMultiple => 1 &>
    <&|/l&>Subject:
    <& /Elements/EditCustomFields, %ARGS, Object => RT::Ticket->new($session{CurrentUser}), CustomFields => $queue_obj->TicketCustomFields, AsTable => 0, ForCreation => 1, &>
    <&|/l&>Describe the issue below:
    <& /Elements/MessageBox, Default => $ARGS{Content} || '' &>
    <& /Elements/Submit, Label => loc("Create ticket")&>
    <%args> $Queue => undef <%init> my @results; my $queue_obj = RT::Queue->new($session{'CurrentUser'}); $queue_obj->Load($Queue); ProcessAttachments(ARGSRef => \%ARGS); my $skip_create = 0; { my ($status, @msg) = $m->comp( '/Elements/ValidateCustomFields', CustomFields => $queue_obj->TicketCustomFields, ARGSRef => \%ARGS ); unless ($status) { push @results, @msg; $skip_create = 1; } } $m->callback( CallbackName => 'BeforeCreate', ARGSRef => \%ARGS, skip_create => \$skip_create, results => \@results ); if ( !exists $ARGS{'AddMoreAttach'} and defined($ARGS{'id'}) and $ARGS{'id'} eq 'new' ) { # new ticket? if ( !$skip_create ) { $m->comp('Display.html', %ARGS); $RT::Logger->crit("After display call; error is $@"); $m->abort(); } } rt-4.4.4/share/html/SelfService/User/000755 000765 000024 00000000000 13437510132 020213 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Display.html000644 000765 000024 00000014044 13437510132 021573 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc('#[_1]: [_2]', $Ticket->id, $Ticket->Subject) &> % $m->callback(CallbackName => 'BeforeActionList', %ARGS, Actions => \@results, ARGSRef => \%ARGS, Ticket => $Ticket ); <& /Elements/ListActions, actions => \@results &> <& /Ticket/Elements/ShowUpdateStatus, Ticket => $Ticket &>
    <&| /Widgets/TitleBox, title => loc('The Basics'), class => 'ticket-info-basics', ($LinkBasicsTitle ? (title_href => $title_box_link) : ()), title_class=> 'inverse', color => "#993333" &> <& /Ticket/Elements/ShowBasics, Ticket => $Ticket, UngroupedCFs => 1 &> <& /Elements/ShowCustomFieldCustomGroupings, Object => $Ticket, title_href => ($LinkBasicsTitle ? RT->Config->Get('WebPath')."/SelfService/Update.html" : "" ), Groupings => [ grep {$_ !~ /^(Basics|Dates)$/} RT::CustomField->Groupings( "RT::Ticket" ) ], &> <&| /Widgets/TitleBox, title => loc("Dates"), class => 'ticket-info-dates', title_class=> 'inverse', color => "#663366" &> <& /Ticket/Elements/ShowDates, Ticket => $Ticket, UpdatedLink => 0 &>
    <& /Ticket/Elements/ShowAssets, Ticket => $Ticket &> % $m->callback(CallbackName => 'BeforeShowHistory', ARGSRef=> \%ARGS, Ticket => $Ticket ); <& /Elements/ShowHistory, Object => $Ticket, ShowHeaders => $ARGS{'ShowHeaders'}, DownloadableHeaders => 0, &> <%INIT> my ( $field, @results ); $m->callback( ARGSRef => \%ARGS, CallbackName => 'Initial' ); # Load the ticket #If we get handed two ids, mason will make them an array. bleck. # We want teh first one. Just because there's no other sensible way # to deal my @id = ( ref $id eq 'ARRAY' ) ? @{$id} : ($id); my $Ticket = RT::Ticket->new( $session{'CurrentUser'} ); if ( ($id[0]||'') eq 'new' ) { my $Queue = RT::Queue->new( $session{'CurrentUser'} ); Abort( loc('Queue not found') ) unless $Queue->Load( $ARGS{'Queue'} ); Abort( loc('You have no permission to create tickets in that queue.') ) unless $Queue->CurrentUserHasRight('CreateTicket'); ( $Ticket, @results ) = CreateTicket( %ARGS ); Abort( join("\n", @results ) ) unless $Ticket->id; } else { $Ticket = LoadTicket($ARGS{'id'}); $Ticket->Atomic(sub{ push @results, ProcessUpdateMessage( ARGSRef => \%ARGS, TicketObj => $Ticket ); my @cfupdates = ProcessObjectCustomFieldUpdates(Object => $Ticket, ARGSRef => \%ARGS); push (@results, @cfupdates); #Update the status if ( ( defined $ARGS{'Status'} ) and $ARGS{'Status'} and ( $ARGS{'Status'} ne $Ticket->Status ) ) { my ($code, $msg) = $Ticket->SetStatus( $ARGS{'Status'} ); push @results, "$msg"; } }); } # This code does automatic redirection if any updates happen. unless ( $Ticket->CurrentUserHasRight('ShowTicket') ) { Abort( loc("No permission to display that ticket") ); } if ( $ARGS{'MarkAsSeen'} ) { $Ticket->SetAttribute( Name => 'User-'. $Ticket->CurrentUser->id .'-SeenUpTo', Content => $Ticket->LastUpdated, ); push @results, loc('Marked all messages as seen'); } MaybeRedirectForResults( Actions => \@results, Path => '/SelfService/Display.html', Anchor => $ARGS{'Anchor'}, Arguments => { 'id' => $Ticket->id }, ); my $LinkBasicsTitle = $Ticket->CurrentUserHasRight('ModifyTicket') || $Ticket->CurrentUserHasRight('ReplyToTicket'); my $title_box_link = RT->Config->Get('WebPath')."/SelfService/Update.html?id=".$Ticket->Id; $m->callback(CallbackName => 'BeforeDisplay', Ticket => \$Ticket, ARGSRef => \%ARGS, title_box_link => \$title_box_link); <%ARGS> $id => undef rt-4.4.4/share/html/SelfService/Search/000755 000765 000024 00000000000 13437510132 020502 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Elements/000755 000765 000024 00000000000 13437510132 021051 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Closed.html000644 000765 000024 00000004771 13437510132 021405 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc('Closed tickets') &> % $m->callback(CallbackName => 'BeforeMyRequests', ARGSRef => \%ARGS, Page => $Page); <& /SelfService/Elements/MyRequests, %ARGS, status => '__Inactive__', title => loc('My closed tickets'), BaseURL => RT->Config->Get('WebPath') ."/SelfService/Closed.html?", Page => $Page, &> % $m->callback(CallbackName => 'AfterMyRequests', ARGSRef => \%ARGS, Page => $Page); <%ARGS> $Page => 1 rt-4.4.4/share/html/SelfService/Prefs.html000644 000765 000024 00000013501 13437510132 021242 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc('Preferences') &> <& /Elements/ListActions, actions => \@results &> % if ( $pref eq 'full-edit' ) { <& /Prefs/Elements/EditAboutMe, UserObj => $user, PasswordName => $password, AccessControlName => 'Change Password' &> % } % if ( $pref eq 'edit-prefs' || $pref eq 'edit-prefs-view-info' ) {
    <&| /Widgets/TitleBox, title => loc('Locale'), id => "user-prefs-identity" &>
    <&|/l&>Language: <& /Elements/SelectLang, Name => 'Lang', Default => $user->Lang &>
    <&|/l&>Timezone: <& /Elements/SelectTimezone, Name => 'Timezone', Default => $user->Timezone &>
    <&| /Widgets/TitleBox, title => loc('Change password') &> % if ( $user->__Value('Password') ne '*NO-PASSWORD*' ) { <& /Elements/EditPassword, User => $user, Name => $password, &> % }

    <& /Elements/Submit, Label => loc('Save Changes') &>
    % } % if ( $pref eq 'view-info' || $pref eq 'edit-prefs-view-info' ) { <& /Prefs/Elements/ShowAboutMe, UserObj => $user &> % if ( $request_queue->id ) { <& Elements/RequestUpdate, User=> $user &> % } % } % if( RT->Config->Get('SelfServiceDownloadUserData') ) { <& /SelfService/User/Elements/RelatedData, UserObj => $user &> % } <%INIT> my @results; my $user = $session{'CurrentUser'}->UserObj; my $password = [ qw(CurrentPass NewPass1 NewPass2) ]; my $pref = RT->Config->Get( 'SelfServiceUserPrefs' ) || ''; my $request_queue = RT::Queue->new( $session{CurrentUser} ); if ( my $queue_name = RT->Config->Get('SelfServiceRequestUpdateQueue') ) { $request_queue->Load($queue_name); unless ( $request_queue->id ) { RT->Logger->error("Couldn't load $queue_name"); } } if ( $pref eq 'edit-prefs' || $pref eq 'edit-prefs-view-info' || $pref eq 'full-edit' ) { if ( defined $NewPass1 && length $NewPass1 ) { my ($status, $msg) = $user->SafeSetPassword( Current => $CurrentPass, New => $NewPass1, Confirmation => $NewPass2, ); push @results, loc("Password: [_1]", $msg); } my @fields; if ( $pref eq 'edit-prefs' || $pref eq 'edit-prefs-view-info' ) { @fields = qw( Lang Timezone ); } else { @fields = qw( Name Comments EmailAddress FreeformContactInfo Organization RealName NickName Lang Gecos HomePhone WorkPhone MobilePhone PagerPhone Address1 Address2 City State Zip Country Timezone ); } $m->callback( CallbackName => 'UpdateLogic', fields => \@fields, results => \@results, UserObj => $user, ARGSRef => \%ARGS, ); push @results, UpdateRecordObject ( AttributesRef => \@fields, Object => $user, ARGSRef => \%ARGS, ); push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $user ) if $pref eq 'full-edit'; if ( $Lang ) { $session{'CurrentUser'}->LanguageHandle($Lang); $session{'CurrentUser'} = $session{'CurrentUser'}; # force writeback } } if ( $request_queue->id ) { my $path = RT->Config->Get('WebPath') . '/SelfService/Prefs.html'; push @results, ProcessQuickCreate( Path => $path, ARGSRef => { %ARGS, Queue => $request_queue->id, Requestors => $session{CurrentUser}->EmailAddress }, ); } #A hack to make sure that session gets rewritten. $session{'i'}++; MaybeRedirectForResults( Actions => \@results, ); <%ARGS> $CurrentPass => undef $NewPass1 => undef $NewPass2 => undef $Lang => undef rt-4.4.4/share/html/SelfService/Article/000755 000765 000024 00000000000 13437510132 020660 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Helpers/000755 000765 000024 00000000000 13437510132 020677 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Helpers/Autocomplete/000755 000765 000024 00000000000 13437510132 023340 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Helpers/ShortcutHelp000644 000765 000024 00000004224 13437510132 023250 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $show_search => 0 $show_bulk_update => 0 $show_ticket_reply => 0 $show_ticket_comment => 0 <& /Elements/ShortcutHelp, %ARGS &> % $m->abort; rt-4.4.4/share/html/SelfService/Helpers/Upload/000755 000765 000024 00000000000 13437510132 022123 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Helpers/Upload/Delete000644 000765 000024 00000004373 13437510132 023257 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Name => '' $Token => '' <%init> delete $session{'Attachments'}{ $Token }{ $Name }; $session{'Attachments'} = $session{'Attachments'}; $r->content_type('application/json; charset=utf-8'); $m->out( JSON({status => 'success'}) ); $m->abort; rt-4.4.4/share/html/SelfService/Helpers/Upload/Add000644 000765 000024 00000004550 13437510132 022542 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Token => '' <%init> my ( $status, $msg ) = ProcessAttachments( Token => $Token, ARGSRef => \%ARGS ); if ( $status ) { $r->content_type( 'application/json; charset=utf-8' ); $m->out( JSON( { status => 'success' } ) ); } else { $r->status( 400 ); $r->content_type( 'text/plain; charset=utf-8' ); $m->out( $msg ); } $m->abort; rt-4.4.4/share/html/SelfService/Helpers/Autocomplete/CustomFieldValues000644 000765 000024 00000004060 13437510132 026661 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->comp('/Helpers/Autocomplete/CustomFieldValues', %ARGS); rt-4.4.4/share/html/SelfService/Helpers/Autocomplete/Users000644 000765 000024 00000004044 13437510132 024366 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % $m->comp('/Helpers/Autocomplete/Users', %ARGS); rt-4.4.4/share/html/SelfService/Article/autohandler000644 000765 000024 00000004411 13437510132 023111 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> if ( $session{'CurrentUser'}->HasRight( Right => 'ShowArticle', Object => $RT::System )) { $m->comp( { base_comp => $m->request_comp }, $m->fetch_next, %ARGS); } else { RT::Interface::Web::Redirect($RT::WebURL."SelfService/"); } rt-4.4.4/share/html/SelfService/Article/Display.html000644 000765 000024 00000005333 13437510132 023157 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc('Display Article [_1]', $id) &> <%$article->Name || loc("(no name)")%>
    <%$article->Summary%> <& /Elements/ShowCustomFields, Object => $article &> <%init> my $article = RT::Article->new( $session{'CurrentUser'} ); if ($id) { $article->Load($id); } unless ( $article->Id ) { $m->comp( "/Elements/Error", Why => loc("Article not found") ); } unless ( $article->CurrentUserHasRight('ShowArticle') ) { $m->comp( "/Elements/Error", Why => loc("Permission Denied") ); } my $title = loc( "Article #[_1]: [_2]", $article->Id, $article->Name || loc("(no name)")); $id = $article->id; <%args> $id => undef rt-4.4.4/share/html/SelfService/Article/Search.html000644 000765 000024 00000010032 13437510132 022747 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc('Search Articles') &> % my %dedupe_articles; % while (my $article = $articles_content->Next) { % $dedupe_articles{$article->Id}++; % } % while (my $article = $articles_basics->Next) { % next if $dedupe_articles{$article->Id}; % }
    <&|/l&>Search for Articles matching
      % if ($Articles_Content) { % if ($articles_basics->Count || $articles_content->Count) { <&|/l,$Articles_Content&>Articles matching [_1] % } else { <&|/l,$Articles_Content&>No Articles match [_1] % } % }
      <%$article->Name || loc('(no name)')%>: <%$article->Summary%>
      <%$article->Name || loc('(no name)')%>: <%$article->Summary%>
    <%init> use RT::Articles; my $articles_content = RT::Articles->new( $session{'CurrentUser'} ); my $articles_basics = RT::Articles->new( $session{'CurrentUser'} ); if ( $ARGS{'Articles_Content'} ) { $articles_content->LimitCustomField( VALUE => $ARGS{'Articles_Content'}, OPERATOR => 'LIKE' ); $articles_basics->Limit( SUBCLAUSE => 'all', FIELD => 'Name', OPERATOR => 'LIKE', VALUE => $ARGS{'Articles_Content'}, ENTRYAGGREGATOR => "OR" ); $articles_basics->Limit( SUBCLAUSE => 'all', FIELD => 'Summary', OPERATOR => 'LIKE', VALUE => $ARGS{'Articles_Content'}, ENTRYAGGREGATOR => "OR" ); } <%args> $Articles_Content => '' rt-4.4.4/share/html/SelfService/Elements/GotoTicket000644 000765 000024 00000004313 13437510132 023051 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    rt-4.4.4/share/html/SelfService/Elements/MyRequests000644 000765 000024 00000005363 13437510132 023124 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&| /Widgets/TitleBox, title => $title &> <& /Elements/CollectionList, Title => $title, Format => $Format, Query => $Query, Order => @Order, OrderBy => @OrderBy, BaseURL => $BaseURL, AllowSorting => 1, Class => 'RT::Tickets', Rows => $Rows, Page => $Page &> <%INIT> $title ||= loc("My [_1] tickets", $friendly_status); my $id = $session{'CurrentUser'}->id; my $Query = "( Watcher.id = $id )"; if ($status) { $status =~ s/(['\\])/\\$1/g; $Query .= " AND Status = '$status'"; } my $Format = RT->Config->Get('DefaultSelfServiceSearchResultFormat'); <%ARGS> $title => undef $friendly_status => loc('open') $status => undef $BaseURL => undef $Page => 1 @Order => ('ASC') @OrderBy => ('Created') $Rows => 50 rt-4.4.4/share/html/SelfService/Elements/SearchArticle000644 000765 000024 00000004311 13437510132 023504 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    rt-4.4.4/share/html/SelfService/Elements/Header000644 000765 000024 00000004045 13437510132 022167 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, %ARGS &> <& /Elements/Tabs &> rt-4.4.4/share/html/SelfService/Elements/RequestUpdate000644 000765 000024 00000006037 13437510132 023575 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&| /Widgets/TitleBox, title => loc('Request user information update') &>
    <&|/l&>Please indicate which user fields you would like updated
    callback(CallbackName => 'InFormElement'); >
    <&|/l&>Subject:
    <&|/l&>Description:
    <& /Elements/Submit, Label => loc('Submit') &>
    <%INIT> my $args = delete $session{QuickCreate} || {}; <%ARGS> $User rt-4.4.4/share/html/SelfService/Search/Results.tsv000644 000765 000024 00000004053 13437510132 022703 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> $m->comp('/Search/Results.tsv', %ARGS); rt-4.4.4/share/html/SelfService/User/RelatedData.tsv000644 000765 000024 00000004055 13437510132 023127 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%INIT> $m->comp('/User/RelatedData.tsv', %ARGS); rt-4.4.4/share/html/SelfService/User/Elements/000755 000765 000024 00000000000 13437510132 021767 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/User/Elements/RelatedData000644 000765 000024 00000006236 13437510132 024073 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <&|/Widgets/TitleBox, class => 'user-related-info', title => loc("Download My Data"), &>
    <% $UserDataButton %> <&|/l&>Base user data
    <% $UserTicketsButton %> <&|/l&>Tickets with you as a requestor
    <% $UserTxnButton %> <&|/l&>Replies you sent
    <%INIT> my $Format = RT->Config->Get('UserTicketDataResultFormat') || RT->Config->Get('DefaultSelfServiceSearchResultFormat'); <%ARGS> $UserObj $UserDataButton => loc( 'My Personal Data' ) $UserTicketsButton => loc( 'My Tickets' ) $UserTxnButton => loc( 'My Transactions' ) rt-4.4.4/share/html/SelfService/Attachment/dhandler000644 000765 000024 00000004076 13437510132 023100 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%init> $m->comp('/Ticket/Attachment/dhandler', %ARGS); $m->abort; rt-4.4.4/share/html/SelfService/Asset/index.html000644 000765 000024 00000004243 13437510132 022354 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc("My Assets") &> <& /User/Elements/AssetList, User => $session{'CurrentUser'}->UserObj, Roles => [''], Title => loc('My Assets') &> rt-4.4.4/share/html/SelfService/Asset/Display.html000644 000765 000024 00000004325 13437510132 022653 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc("Asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Asset/Elements/ShowSummary, AssetObj => $asset &> <%args> $id => undef <%init> my $asset = LoadAsset($id); rt-4.4.4/share/html/SelfService/Asset/History.html000644 000765 000024 00000004374 13437510132 022713 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /SelfService/Elements/Header, Title => loc("History of Asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/ShowHistory, Object => $asset, ShowDisplayModes => 0, &> <%args> $id => undef <%init> my $asset = LoadAsset($id); rt-4.4.4/share/html/SelfService/Asset/CreateLinkedTicket.html000644 000765 000024 00000004400 13437510132 024736 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $id => undef <%init> my $asset = LoadAsset($id); <& /Elements/Header, Title => loc("Create linked ticket for asset #[_1]: [_2]", $asset->id, $asset->Name) &> <& /Elements/Tabs &> <& /Asset/Elements/CreateLinkedTicket, AssetObj => $asset &> rt-4.4.4/share/html/SelfService/Asset/Helpers/000755 000765 000024 00000000000 13437510132 021756 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/SelfService/Asset/Helpers/CreateLinkedTicket000644 000765 000024 00000004204 13437510132 025377 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <%args> $Asset <%init> my $asset = LoadAsset($Asset); <& /Asset/Elements/CreateLinkedTicket, AssetObj => $asset &> % $m->abort; rt-4.4.4/share/html/Tools/index.html000644 000765 000024 00000004156 13437510132 020166 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Tools") &> <& /Elements/Tabs &> <& /Elements/ListMenu, menu => Menu()->child('tools') &> rt-4.4.4/share/html/Tools/MyDay.html000644 000765 000024 00000010544 13437510132 020100 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>

    <&|/l, $session{'CurrentUser'}->Name &>Active tickets for [_1]

    % while ( my $Ticket = $Tickets->Next()) { % $i++; % my $class = $i % 2 ? 'class="evenline"' : 'class="oddline"'; >>> % }

    <%$Ticket->Id%>: <%$Ticket->Subject%>

    <&|/l&>Worked: <&|/l&>minutes <&|/l&>Comments:
    <&|/l&>Status: <& /Ticket/Elements/SelectStatus, Name=> 'UpdateStatus-'.$Ticket->Id, TicketObj => $Ticket &>
    <& /Elements/Submit, Label => loc('Record all updates') , Reset => 1, ResetLabel => loc('Clear')&>
    <%INIT> my $title = loc("What I did today"); my $i = 0; my @results; foreach my $arg ( keys %ARGS ) { next unless ( $arg =~ /^UpdateStatus-(\d*)$/ ); my $id = $1; my $ticket = LoadTicket($id); next unless ( $ticket->id ); if ( my $content = $ARGS{'UpdateContent-'.$id} ) { my ( $val, $msg ) = $ticket->Comment( Content => $content, TimeTaken => $ARGS{ 'UpdateTimeWorked-' . $id } ); push @results, loc( "Ticket [_1]: [_2]", $id, $msg ); } elsif ( my $worked = $ARGS{ 'UpdateTimeWorked-' . $id } ) { my ( $val, $msg ) = $ticket->SetTimeWorked( $worked + $ticket->TimeWorked ); push @results, loc( "Ticket [_1]: [_2]", $id, $msg ); } if ( my $status = $ARGS{ 'UpdateStatus-' . $id } ) { if ( $status ne $ticket->Status ) { my ( $val, $msg ) = $ticket->SetStatus($status); push @results, loc( "Ticket [_1]: [_2]", $id, $msg ); } } } my $Tickets = RT::Tickets->new($session{'CurrentUser'}); $Tickets->LimitOwner(VALUE => $session{'CurrentUser'}->Id); $Tickets->LimitToActiveStatus; $Tickets->OrderBy ( FIELD => 'Priority', ORDER => 'DESC'); rt-4.4.4/share/html/Tools/MyReminders.html000644 000765 000024 00000004261 13437510132 021312 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc('My reminders') &> <& /Elements/Tabs &> <& /Elements/ShowReminders, OnlyOverdue => 0 &> <%INIT> return unless RT->Config->Get('EnableReminders'); rt-4.4.4/share/html/Prefs/DashboardsInMenu.html000644 000765 000024 00000007542 13437510132 022226 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % for my $pane ( @panes ) { <&|/Widgets/TitleBox, title => loc('Dashboards in menu'), bodyclass => "" &> <& /Widgets/SelectionBox:show, self => $pane &> % } <&|/Widgets/TitleBox, title => loc("Reset dashboards in menu") &>
    <%INIT> my @results; my $title = loc("Customize").' '.loc("dashboards in menu"); my $user = $session{'CurrentUser'}->UserObj; if ($ARGS{Reset}) { my ($ok, $msg) = $user->SetPreferences('DashboardsInMenu', {}); push @results, $ok ? loc('Preferences saved.') : $msg; delete $session{'dashboards_in_menu'}; } my ($default_dashboards) = RT::System->new($session{'CurrentUser'})->Attributes->Named('DashboardsInMenu'); my $dashboard_pref = $session{CurrentUser}->UserObj->Preferences( 'DashboardsInMenu', $default_dashboards ? $default_dashboards->Content : () ); my $current_dashboards = $dashboard_pref->{dashboards} || []; my @dashboards = map { [$_->id, $_->Name] } $m->comp("/Dashboards/Elements/ListOfDashboards", IncludeSuperuserGroups => 0 ); my @panes = $m->comp( '/Admin/Elements/ConfigureDashboardsInMenu', Action => 'DashboardsInMenu.html', panes => ['dashboards_in_menu'], items => \@dashboards, current_portlets => $current_dashboards, OnSave => sub { my ( $conf ) = @_; my ( $ok, $msg ) = $user->SetPreferences( 'DashboardsInMenu', $conf ); push @results, $ok ? loc('Preferences saved for dashboards in menu.') : $msg; delete $session{'dashboards_in_menu'}; } ); $m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_ ) for @panes; rt-4.4.4/share/html/Prefs/MyRT.html000644 000765 000024 00000013455 13437510132 017673 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % for my $pane ( @panes ) { <&|/Widgets/TitleBox, title => loc('RT at a glance') .': '. loc( $pane->{Name} ), bodyclass => "" &> <& /Widgets/SelectionBox:show, self => $pane &> % } <&|/Widgets/TitleBox, title => loc('Options'), bodyclass => "" &>
    <&|/l&>Rows per box:
    <&|/Widgets/TitleBox, title => loc("Reset RT at a glance") &>
    <%INIT> my @results; my $title = loc("Customize").' '.loc("RT at a glance"); my $user = $session{'CurrentUser'}->UserObj; if ( $ARGS{'UpdateSummaryRows'} ) { unless ( $ARGS{SummaryRows} && int $ARGS{SummaryRows} > 0 ) { push @results, loc ("Illegal '[_1]' preference value.", loc('summary rows')); $ARGS{SummaryRows} = 0; } else { my ($ok, $msg) = $user->SetPreferences( 'SummaryRows', int $ARGS{SummaryRows} ); push @results, $ok ? loc('Preferences saved for [_1].', loc('summary rows')) : $msg; } } $ARGS{'SummaryRows'} ||= $user->Preferences('SummaryRows', RT->Config->Get('DefaultSummaryRows')); if ($ARGS{Reset}) { for my $pref_name ('HomepageSettings', 'SummaryRows') { next unless $user->Preferences($pref_name); my ($ok, $msg) = $user->DeletePreferences($pref_name); push @results, $msg unless $ok; } push @results, loc('Preferences saved.') unless @results; } my $portlets = $user->Preferences('HomepageSettings'); unless ($portlets) { my ($defaults) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings'); $portlets = $defaults ? $defaults->Content : {}; } my %seen; my @items = map ["component-$_", loc($_)], grep !$seen{$_}++, @{RT->Config->Get('HomepageComponents')}; my $sys = RT::System->new($session{'CurrentUser'}); my @objs = ($sys); push @objs, RT::SavedSearch->new( $session{CurrentUser} )->ObjectsForLoading if $session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch', Object => $RT::System ); my @sys_searches; for my $object (@objs) { for ($m->comp("/Search/Elements/SearchesForObject", Object => $object)) { my ($desc, $loc_desc, $search) = @$_; my $SearchType = 'Ticket'; if ((ref($search->Content)||'') eq 'HASH') { $SearchType = $search->Content->{'SearchType'} if $search->Content->{'SearchType'}; } else { $RT::Logger->debug("Search ".$search->id." ($desc) appears to have no Content"); } if ($object eq $sys && $SearchType eq 'Ticket') { push @items, ["system-$desc", $loc_desc]; push @sys_searches, [$desc, $search]; } else { my $oid = ref($object).'-'.$object->Id.'-SavedSearch-'.$search->Id; my $type = ($SearchType eq 'Ticket') ? 'Saved Search' # loc : $SearchType; push @items, ["saved-$oid", loc($type).": $loc_desc"]; } } } my @panes = $m->comp( '/Admin/Elements/ConfigureMyRT', panes => ['body', 'sidebar'], Action => 'MyRT.html', items => \@items, current_portlets => $portlets, OnSave => sub { my ( $conf, $pane ) = @_; my ($ok, $msg) = $user->SetPreferences( 'HomepageSettings', $conf ); push @results, $ok ? loc('Preferences saved for [_1].', $pane) : $msg; } ); $m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_ ) for @panes; rt-4.4.4/share/html/Prefs/Elements/000755 000765 000024 00000000000 13437510132 017716 5ustar00sunnavystaff000000 000000 rt-4.4.4/share/html/Prefs/QueueList.html000644 000765 000024 00000010241 13437510132 020746 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &>

    <&|/l&>Select queues to be displayed on the "RT at a glance" page

      % for my $queue (@queues) {
    • {$queue->Name}) { checked="checked" % } />
    • % }
    <& /Elements/Submit, Caption => loc("Save Changes"), Label => loc('Save'), Name => 'Save', Reset => 1, CheckAll => 1, ClearAll => 1, CheckboxNameRegex => '/^Want-/', &>
    <%INIT> my @actions; my $title = loc("Customize").' '.loc("Queue list"); my $user = $session{'CurrentUser'}->UserObj; my $unwanted = $user->Preferences('QueueList', {}); my $Queues = RT::Queues->new($session{'CurrentUser'}); $Queues->UnLimit; my $right = 'ShowTicket'; $m->callback( CallbackName => 'ModifyQueues', Queues => \$Queues, Right => \$right, Unwanted => $unwanted, ); my @queues = grep { $right ? $_->CurrentUserHasRight($right) : 1 } @{$Queues->ItemsArrayRef}; if ($ARGS{'Save'}) { for my $queue (@queues) { if ($ARGS{"Want-".$queue->Name}) { delete $unwanted->{$queue->Name}; } else { ++$unwanted->{$queue->Name}; } } my ($ok, $msg) = $user->SetPreferences('QueueList', $unwanted); push @actions, $ok ? loc('Preferences saved.') : $msg; # Clear queue caches if ( $ok ){ # Clear for 'CreateTicket' my $cache_key = GetObjectSessionCacheKey( ObjectType => 'RT::Queue', CheckRight => 'CreateTicket', ShowAll => 0 ); delete $session{$cache_key}; # Clear for 'ShowTicket' $cache_key = GetObjectSessionCacheKey( ObjectType => 'RT::Queue', CheckRight => 'ShowTicket', ShowAll => 0 ); delete $session{$cache_key}; } } rt-4.4.4/share/html/Prefs/AboutMe.html000644 000765 000024 00000011473 13437510132 020372 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title=>loc("Preferences") &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> <& Elements/EditAboutMe, UserObj => $UserObj, PasswordName => [ qw(CurrentPass Pass1 Pass2) ] &> % $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormEnd' ); <%INIT> my $UserObj = RT::User->new( $session{'CurrentUser'} ); $UserObj->Load($id) if $id; $UserObj->Load($Name) if $Name && !$UserObj->id; unless ( $UserObj->id ) { Abort(loc("Couldn't load user #[_1] or user '[_2]'", $id, $Name)) if $id && $Name; Abort(loc("Couldn't load user #[_1]", $id)) if $id; Abort(loc("Couldn't load user '[_1]'", $Name)) if $Name; Abort(loc("Couldn't load user")); } $id = $UserObj->id; my @results; if ( $ARGS{'ResetAuthToken'} ) { my ($status, $msg) = $UserObj->GenerateAuthToken; push @results, $msg; } else { my @fields = qw( Name Comments Signature EmailAddress FreeformContactInfo Organization RealName NickName Lang Gecos HomePhone WorkPhone MobilePhone PagerPhone Address1 Address2 City State Zip Country Timezone ); $m->callback( CallbackName => 'UpdateLogic', fields => \@fields, results => \@results, UserObj => $UserObj, ARGSRef => \%ARGS, ); push @results, UpdateRecordObject ( AttributesRef => \@fields, Object => $UserObj, ARGSRef => \%ARGS, ); push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $UserObj ); # Deal with special fields: Privileged, Enabled, and Password if ( $SetPrivileged and $Privileged != $UserObj->Privileged ) { my ($code, $msg) = $UserObj->SetPrivileged( $Privileged ); push @results, loc('Privileged status: [_1]', loc_fuzzy($msg)); } my %password_cond = $UserObj->CurrentUserRequireToSetPassword; if (defined $Pass1 && length $Pass1 ) { my ($status, $msg) = $UserObj->SafeSetPassword( Current => $CurrentPass, New => $Pass1, Confirmation => $Pass2, ); push @results, loc("Password: [_1]", $msg); } } MaybeRedirectForResults( Actions => \@results, ); <%ARGS> $id => $session{'CurrentUser'}->Id $Name => undef $Comments => undef $Signature => undef $EmailAddress => undef $FreeformContactInfo => undef $Organization => undef $RealName => undef $NickName => undef $Privileged => undef $SetPrivileged => undef $Enabled => undef $SetEnabled => undef $Lang => undef $Gecos => undef $HomePhone => undef $WorkPhone => undef $MobilePhone => undef $PagerPhone => undef $Address1 => undef $Address2 => undef $City => undef $State => undef $Zip => undef $Country => undef $CurrentPass => undef $Pass1 => undef $Pass2 => undef $Create=> undef rt-4.4.4/share/html/Prefs/Other.html000644 000765 000024 00000010275 13437510132 020116 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
    % foreach my $section( RT->Config->Sections ) { <&|/Widgets/TitleBox, title => loc( $section ) &> % foreach my $option( RT->Config->Options( Section => $section ) ) { % next if $option eq 'EmailFrequency' && !RT->Config->Get('RecordOutgoingEmail'); % my $meta = RT->Config->Meta( $option ); <& $meta->{'Widget'}, Default => 1, %{ $m->comp('/Widgets/FinalizeWidgetArguments', WidgetArguments => $meta->{'WidgetArguments'} ) }, Name => $option, DefaultValue => scalar RT->Config->Get( $option ), CurrentValue => $preferences->{ $option }, &> % } % } % if ( RT->Config->Get('Crypt')->{'Enable'} ) { <&|/Widgets/TitleBox, title => loc( 'Cryptography' ) &> <&|/l&>Preferred key: <& /Elements/Crypt/SelectKeyForEncryption, EmailAddress => $UserObj->EmailAddress, Default => $UserObj->PreferredKey &> % } <& /Elements/Submit, Name => 'Update', Label => loc('Save Changes') &>
    <%INIT> my @results; my $title = loc("Preferences"); my $UserObj = $session{'CurrentUser'}->UserObj; my $preferences = $UserObj->Preferences( $RT::System ); if (defined($PreferredKey) and (not $UserObj->FirstAttribute('PreferredKey') or $PreferredKey ne $UserObj->FirstAttribute('PreferredKey')->Content)) { my ($code, $msg) = $UserObj->SetAttribute(Name => 'PreferredKey', Content => $PreferredKey); push @results, loc('Preferred Key: [_1]', $msg) unless $code; } if ( $Update ) { $preferences ||= {}; $m->comp( '/Widgets/BulkProcess', Meta => { map { $_ => RT->Config->Meta($_) } RT->Config->Options }, Store => $preferences, Types => [RT->Config->Options], Default => 1, Arguments => \%ARGS, DefaultValue => { map { $_ => RT->Config->Get($_) } RT->Config->Options }, ); my ($ok, $msg) = $UserObj->SetPreferences( $RT::System, $preferences ); push @results, $ok ? loc("Preferences saved.") : $msg; } <%ARGS> $Update => 0, $User => undef, $PreferredKey => undef, rt-4.4.4/share/html/Prefs/Search.html000644 000765 000024 00000011541 13437510132 020237 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &> % if ($session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser')) {

    <&|/l&>You can also edit the predefined search itself: <% $search->Name %>

    % }
    <& /Search/Elements/DisplayOptions, %$SearchArg, %ARGS, AvailableColumns => $AvailableColumns, CurrentFormat => $CurrentFormat &> <& /Elements/Submit, Caption => loc("Save Changes"), Label => loc('Save'), Name => 'Save'&>
    <&|/Widgets/TitleBox, title => loc("Reset") &>
    <%INIT> my @actions; my $title = loc("Customize").' '; my @fields = qw(Format Order OrderBy RowsPerPage); $ARGS{name} ||= ''; my ($class, $id) = ( $ARGS{name} =~ m/^(.*)-(\d+)$/ ); Abort('No search specified') unless defined $class and $class eq 'RT::Attribute'; my $search = $class->new ($session{'CurrentUser'}); $search->LoadById ($id); # If we are resetting prefs, do so before attempting to load them if ($ARGS{'Reset'}) { my ($ok, $msg) = $session{'CurrentUser'}->UserObj->DeletePreferences($ARGS{name}); push @actions, $ok ? loc('Preferences reset.') : $msg; } $title .= loc (RT::SavedSearch->EscapeDescription($search->Description), loc ('"N"')); my $user = $session{'CurrentUser'}->UserObj; my $SearchArg = $user->Preferences($search, $search->Content); $ARGS{Order} = (ref $ARGS{Order} ? join('|',grep {/\S/} @{$ARGS{Order}}) : $ARGS{Order}); $ARGS{OrderBy} = (ref $ARGS{OrderBy} ? join('|',grep {/\S/} @{$ARGS{OrderBy}}) : $ARGS{OrderBy}); for (@fields) { $ARGS{$_} = $SearchArg->{$_} unless defined $ARGS{$_}; } $ARGS{'Order'} = join '|', grep defined && /\S/, (ref $ARGS{'Order'})? @{$ARGS{'Order'}}: $ARGS{'Order'}; $ARGS{'OrderBy'} = join '|', grep defined && /\S/, (ref $ARGS{'OrderBy'})? @{$ARGS{'OrderBy'}}: $ARGS{'OrderBy'}; my ( $AvailableColumns, $CurrentFormat ); ( $ARGS{Format}, $AvailableColumns, $CurrentFormat ) = $m->comp( '/Search/Elements/BuildFormatString', %ARGS ); if ($ARGS{'Save'}) { my $hash = {map { $_ => $ARGS{$_}} @fields}; my ($ok, $msg) = $user->SetPreferences($search, $hash); push @actions, $ok ? loc('Preferences saved.') : $msg; } rt-4.4.4/share/html/Prefs/SearchOptions.html000644 000765 000024 00000010677 13437510132 021624 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} <& /Elements/Header, Title => loc("Search Preferences") &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@actions &>
    <& /Search/Elements/DisplayOptions, %ARGS, Format=> $Format, AvailableColumns => $AvailableColumns, CurrentFormat => $CurrentFormat, RowsPerPage => $RowsPerPage, OrderBy => $OrderBy, Order => $Order &> <& /Elements/Submit, Name => 'SavePreferences', Label => loc('Save Changes') &>
    % if ($session{'CurrentUser'}->UserObj->Preferences("SearchDisplay")) { <& /Elements/Submit, Name => 'Reset', Label => loc('Restore Default Preferences')&> % }
    <%INIT> my @actions; # If we're saving search preferences, do that now $Order = join '|', grep defined && /\S/, (ref $Order)? @{$Order}: $Order; $OrderBy = join '|', grep defined && /\S/, (ref $OrderBy)? @{$OrderBy}: $OrderBy; $Order = (ref $Order ? join('|',grep {/\S/} @{$Order}) : $Order); $OrderBy = (ref $OrderBy ? join('|',grep {/\S/} @{$OrderBy}) : $OrderBy); if ($ARGS{'SavePreferences'}) { my ($ok, $msg) = $session{'CurrentUser'}->UserObj->SetPreferences("SearchDisplay", { Format => $Format, Order => $Order, OrderBy => $OrderBy, RowsPerPage => $RowsPerPage, }); push @actions, $ok ? loc("Preferences saved.") : $msg; } # If we're restoring default preferences, delete the user's changes if ($Reset) { my ($ok, $msg) = $session{'CurrentUser'}->UserObj->DeletePreferences("SearchDisplay"); push @actions, $ok ? loc("Default preferences restored.") : $msg; } # Read from user preferences my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {}; $Format ||= $prefs->{'Format'}; $Order ||= ($prefs->{'Order'} || RT->Config->Get('DefaultSearchResultOrder')); $OrderBy ||= ($prefs->{'OrderBy'} || RT->Config->Get('DefaultSearchResultOrderBy')); ($RowsPerPage = defined( $prefs->{'RowsPerPage'} ) ? $prefs->{'RowsPerPage'} : 50) unless defined ($RowsPerPage); my ( $AvailableColumns, $CurrentFormat ); ( $Format, $AvailableColumns, $CurrentFormat ) = $m->comp( '/Search/Elements/BuildFormatString', %ARGS, Format => $Format ); <%ARGS> $Format => undef $Description => undef $Order => undef $OrderBy => undef $RowsPerPage => undef $Reset => undef rt-4.4.4/share/html/Prefs/Elements/EditAboutMe000644 000765 000024 00000016602 13437510132 022010 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&| /Widgets/TitleBox, title => loc('Identity'), id => "user-prefs-identity" &> <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Identity', InTable => 1 &>
    <&|/l&>Email:
    <&|/l&>Real Name:
    <&|/l&>Nickname:
    <&|/l&>Language: <& /Elements/SelectLang, Name => 'Lang', Default => $UserObj->Lang &>
    <&|/l&>Timezone: <& /Elements/SelectTimezone, Name => 'Timezone', Default => $UserObj->Timezone &>
    <&| /Widgets/TitleBox, title => loc('Phone numbers'), id => "user-prefs-phone" &> <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Phones', InTable => 1 &>
    <&|/l&>Residence:
    <&|/l&>Work:
    <&|/l&>Mobile:
    <&|/l&>Pager:
    %if ($UserObj->Privileged) { <&| /Widgets/TitleBox, title => loc('Signature'), id => "user-prefs-signature" &> % } % $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormLeftColumn' );
    <&| /Widgets/TitleBox, title => loc( $AccessControlName ), id => "user-prefs-password" &> % if ( $UserObj->__Value('Password') ne '*NO-PASSWORD*' ) { <& /Elements/EditPassword, User => $UserObj, Name => $PasswordName, &> % } <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Access control' &> %my $AdminUser = $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'AdminUsers' ); <&| /Widgets/TitleBox, title => loc('Location'), id => "user-prefs-location" &> %if ( $AdminUser ) { %} else { %} <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Location', InTable => 1 &>
    <&|/l&>Organization:<%$UserObj->Organization || ''%>
    <&|/l&>Address1:
    <&|/l&>Address2:
    <&|/l&>City:
    <&|/l&>State:
    <&|/l&>Zip:
    <&|/l&>Country:
    <& /Elements/EditCustomFieldCustomGroupings, Object => $UserObj &> <& /Elements/Submit, Label => loc('Save Preferences') &> %if ( $AdminUser ) { <&| /Widgets/TitleBox, title => loc('Secret authentication token'), id => "user-prefs-feeds" &> <&|/l&>All iCal feeds embed a secret token which authorizes you. If the URL for one of your iCal feeds was exposed to the outside world, you can get a new secret, breaking all existing iCal feeds, below. <& /Elements/Submit, Label => loc('Reset secret authentication token'), Name => "ResetAuthToken", id => "ResetAuthTokenContainer" &> %} % $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormRightColumn' );
    <%ARGS> $UserObj $PasswordName $AccessControlName => 'Access control' rt-4.4.4/share/html/Prefs/Elements/ShowAboutMe000644 000765 000024 00000013276 13437510132 022047 0ustar00sunnavystaff000000 000000 %# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}}
    <&| /Widgets/TitleBox, title => loc('Identity'), id => "user-prefs-identity" &> % if ( $UserObj->Lang ) { % } else { % } % if ( $UserObj->Timezone ) { % } else { % } <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Identity', InTable => 1 &>
    <&|/l&>Email: <%$UserObj->EmailAddress%>
    <&|/l&>Real Name: <%$UserObj->RealName%>
    <&|/l&>Nickname: <%$UserObj->NickName || ''%>
    <&|/l&>Language:<&|/l, $lang &>[_1]<&|/l&>System Default (<% I18N::LangTags::List::name($session{CurrentUser}->LanguageHandle->language_tag) %>)
    <&|/l&>Timezone:<%$UserObj->Timezone%><&|/l&>System Default (<% RT->Config->Get('Timezone') %>)
    <&| /Widgets/TitleBox, title => loc('Phone numbers'), id => "user-prefs-phone" &> <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Phones', InTable => 1 &>
    <&|/l&>Residence: <%$UserObj->HomePhone || ''%>
    <&|/l&>Work: <%$UserObj->WorkPhone || ''%>
    <&|/l&>Mobile: <%$UserObj->MobilePhone || ''%>
    <&|/l&>Pager: <%$UserObj->PagerPhone || ''%>
    <&| /Widgets/TitleBox, title => loc('Location'), id => "user-prefs-location" &> <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Location', InTable => 1 &>
    <&|/l&>Organization: <%$UserObj->Organization || ''%>
    <&|/l&>Address1: <%$UserObj->Address1 || ''%>
    <&|/l&>Address2: <%$UserObj->Address2 || ''%>
    <&|/l&>City: <%$UserObj->City || ''%>
    <&|/l&>State: <%$UserObj->State || ''%>
    <&|/l&>Zip: <%$UserObj->Zip || ''%>
    <&|/l&>Country: <%$UserObj->Country || ''%>
    <& /Elements/ShowCustomFieldCustomGroupings, Object => $UserObj &>
    <%INIT> use I18N::LangTags::List; my $lang = I18N::LangTags::List::name( $UserObj->Lang ); <%ARGS> $UserObj rt-4.4.4/lib/RT.pm000644 000765 000024 00000067645 13437510132 014470 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} use strict; use warnings; use 5.010; package RT; use Encode (); use File::Spec (); use Cwd (); use Scalar::Util qw(blessed); use UNIVERSAL::require; use vars qw($Config $System $SystemUser $Nobody $Handle $Logger $_Privileged $_Unprivileged $_INSTALL_MODE); use vars qw($BasePath $EtcPath $BinPath $SbinPath $VarPath $FontPath $LexiconPath $StaticPath $PluginPath $LocalPath $LocalEtcPath $LocalLibPath $LocalLexiconPath $LocalStaticPath $LocalPluginPath $MasonComponentRoot $MasonLocalComponentRoot $MasonDataDir $MasonSessionDir); # Set Email::Address module var before anything else loads. # This avoids an algorithmic complexity denial of service vulnerability. # See T#157608 and CVE-2015-7686 for more information. $Email::Address::COMMENT_NEST_LEVEL = 1; RT->LoadGeneratedData(); =head1 NAME RT - Request Tracker =head1 SYNOPSIS A fully featured request tracker package. This documentation describes the point-of-entry for RT's Perl API. To learn more about what RT is and what it can do for you, visit L. =head1 DESCRIPTION =head2 INITIALIZATION If you're using RT's Perl libraries, you need to initialize RT before using any of the modules. You have the option of handling the timing of config loading and the actual init sequence yourself with: use RT; BEGIN { RT->LoadConfig; RT->Init; } or you can let RT do it all: use RT -init; This second method is particular useful when writing one-liners to interact with RT: perl -MRT=-init -e '...' The first method is necessary if you need to delay or conditionalize initialization or if you want to fiddle with C<< RT->Config >> between loading the config files and initializing the RT environment. =cut { my $DID_IMPORT_INIT; sub import { my $class = shift; my $action = shift || ''; if ($action eq "-init" and not $DID_IMPORT_INIT) { $class->LoadConfig; $class->Init; $DID_IMPORT_INIT = 1; } } } =head2 LoadConfig Load RT's config file. First, the site configuration file (F) is loaded, in order to establish overall site settings like hostname and name of RT instance. Then, the core configuration file (F) is loaded to set fallback values for all settings; it bases some values on settings from the site configuration file. In order for the core configuration to not override the site's settings, the function C is used; it only sets values if they have not been set already. =cut sub LoadConfig { require RT::Config; $Config = RT::Config->new; $Config->LoadConfigs; require RT::I18N; # RT::Essentials mistakenly recommends that WebPath be set to '/'. # If the user does that, do what they mean. $RT::WebPath = '' if ($RT::WebPath eq '/'); # Fix relative LogDir; It cannot be fixed in a PostLoadCheck, as # they are run after logging is enabled. unless ( File::Spec->file_name_is_absolute( $Config->Get('LogDir') ) ) { $Config->Set( LogDir => File::Spec->catfile( $BasePath, $Config->Get('LogDir') ) ); } return $Config; } =head2 Init L, L, L, L, and L. =cut sub Init { shift if @_%2; # code is inconsistent about calling as method my %args = (@_); CheckPerlRequirements(); InitPluginPaths(); #Get a database connection ConnectToDatabase(); InitSystemObjects(); InitClasses(%args); InitLogging(); ProcessPreInitMessages(); InitPlugins(); _BuildTableAttributes(); RT::I18N->Init; RT::CustomRoles->RegisterRoles unless $args{SkipCustomRoles}; RT->Config->PostLoadCheck; RT::Lifecycle->FillCache; } =head2 ConnectToDatabase Get a database connection. See also L. =cut sub ConnectToDatabase { require RT::Handle; $Handle = RT::Handle->new unless $Handle; $Handle->Connect; return $Handle; } =head2 InitLogging Create the Logger object and set up signal handlers. =cut sub InitLogging { # We have to set the record separator ($, man perlvar) # or Log::Dispatch starts getting # really pissy, as some other module we use unsets it. $, = ''; use Log::Dispatch 1.6; my %level_to_num = ( map( { $_ => } 0..7 ), debug => 0, info => 1, notice => 2, warning => 3, error => 4, 'err' => 4, critical => 5, crit => 5, alert => 6, emergency => 7, emerg => 7, ); unless ( $RT::Logger ) { # preload UTF-8 encoding so that Encode:encode doesn't fail to load # as part of throwing an exception Encode::encode("UTF-8",""); $RT::Logger = Log::Dispatch->new; my $stack_from_level; if ( $stack_from_level = RT->Config->Get('LogStackTraces') ) { # if option has old style '\d'(true) value $stack_from_level = 0 if $stack_from_level =~ /^\d+$/; $stack_from_level = $level_to_num{ $stack_from_level } || 0; } else { $stack_from_level = 99; # don't log } my $simple_cb = sub { # if this code throw any warning we can get segfault no warnings; my %p = @_; # skip Log::* stack frames my $frame = 0; $frame++ while caller($frame) && caller($frame) =~ /^Log::/; my ($package, $filename, $line) = caller($frame); # Encode to bytes, so we don't send wide characters $p{message} = Encode::encode("UTF-8", $p{message}); $p{'message'} =~ s/(?:\r*\n)+$//; return "[$$] [". gmtime(time) ."] [". $p{'level'} ."]: " . $p{'message'} ." ($filename:$line)\n"; }; my $syslog_cb = sub { # if this code throw any warning we can get segfault no warnings; my %p = @_; my $frame = 0; # stack frame index # skip Log::* stack frames $frame++ while caller($frame) && caller($frame) =~ /^Log::/; my ($package, $filename, $line) = caller($frame); # Encode to bytes, so we don't send wide characters $p{message} = Encode::encode("UTF-8", $p{message}); $p{message} =~ s/(?:\r*\n)+$//; if ($p{level} eq 'debug') { return "[$$] $p{message} ($filename:$line)\n"; } else { return "[$$] $p{message}\n"; } }; my $stack_cb = sub { no warnings; my %p = @_; return $p{'message'} unless $level_to_num{ $p{'level'} } >= $stack_from_level; require Devel::StackTrace; my $trace = Devel::StackTrace->new( ignore_class => [ 'Log::Dispatch', 'Log::Dispatch::Base' ] ); return $p{'message'} . $trace->as_string; # skip calling of the Log::* subroutins my $frame = 0; $frame++ while caller($frame) && caller($frame) =~ /^Log::/; $frame++ while caller($frame) && (caller($frame))[3] =~ /^Log::/; $p{'message'} .= "\nStack trace:\n"; while( my ($package, $filename, $line, $sub) = caller($frame++) ) { $p{'message'} .= "\t$sub(...) called at $filename:$line\n"; } return $p{'message'}; }; if ( $Config->Get('LogToFile') ) { my ($filename, $logdir) = ( $Config->Get('LogToFileNamed') || 'rt.log', $Config->Get('LogDir') || File::Spec->catdir( $VarPath, 'log' ), ); if ( $filename =~ m![/\\]! ) { # looks like an absolute path. ($logdir) = $filename =~ m{^(.*[/\\])}; } else { $filename = File::Spec->catfile( $logdir, $filename ); } unless ( -d $logdir && ( ( -f $filename && -w $filename ) || -w $logdir ) ) { # localizing here would be hard when we don't have a current user yet die "Log file '$filename' couldn't be written or created.\n RT can't run."; } require Log::Dispatch::File; $RT::Logger->add( Log::Dispatch::File->new ( name=>'file', min_level=> $Config->Get('LogToFile'), filename=> $filename, mode=>'append', callbacks => [ $simple_cb, $stack_cb ], )); } if ( $Config->Get('LogToSTDERR') ) { require Log::Dispatch::Screen; $RT::Logger->add( Log::Dispatch::Screen->new ( name => 'screen', min_level => $Config->Get('LogToSTDERR'), callbacks => [ $simple_cb, $stack_cb ], stderr => 1, )); } if ( $Config->Get('LogToSyslog') ) { require Log::Dispatch::Syslog; $RT::Logger->add(Log::Dispatch::Syslog->new ( name => 'syslog', ident => 'RT', min_level => $Config->Get('LogToSyslog'), callbacks => [ $syslog_cb, $stack_cb ], stderr => 1, $Config->Get('LogToSyslogConf'), )); } } InitSignalHandlers(); } # Some messages may have been logged before the logger was available. # Output them here. sub ProcessPreInitMessages { foreach my $message ( @RT::Config::PreInitLoggerMessages ){ RT->Logger->debug($message); } } sub InitSignalHandlers { # Signal handlers ## This is the default handling of warnings and die'ings in the code ## (including other used modules - maybe except for errors catched by ## Mason). It will log all problems through the standard logging ## mechanism (see above). $SIG{__WARN__} = sub { # use 'goto &foo' syntax to hide ANON sub from stack unshift @_, $RT::Logger, qw(level warning message); goto &Log::Dispatch::log; }; #When we call die, trap it and log->crit with the value of the die. $SIG{__DIE__} = sub { # if we are not in eval and perl is not parsing code # then rollback transactions and log RT error unless ($^S || !defined $^S ) { $RT::Handle->Rollback(1) if $RT::Handle; $RT::Logger->crit("$_[0]") if $RT::Logger; } die $_[0]; }; } sub CheckPerlRequirements { eval {require 5.010_001}; if ($@) { die sprintf "RT requires Perl v5.10.1 or newer. Your current Perl is v%vd\n", $^V; } # use $error here so the following "die" can still affect the global $@ my $error; { local $@; eval { my $x = ''; my $y = \$x; require Scalar::Util; Scalar::Util::weaken($y); }; $error = $@; } if ($error) { die <<"EOF"; RT requires the Scalar::Util module be built with support for the 'weaken' function. It is sometimes the case that operating system upgrades will replace a working Scalar::Util with a non-working one. If your system was working correctly up until now, this is likely the cause of the problem. Please reinstall Scalar::Util, being careful to let it build with your C compiler. Usually this is as simple as running the following command as root. perl -MCPAN -e'install Scalar::Util' EOF } } =head2 InitClasses Load all modules that define base classes. =cut sub InitClasses { shift if @_%2; # so we can call it as a function or method my %args = (@_); require RT::Tickets; require RT::Transactions; require RT::Attachments; require RT::Users; require RT::Principals; require RT::CurrentUser; require RT::Templates; require RT::Queues; require RT::ScripActions; require RT::ScripConditions; require RT::Scrips; require RT::Groups; require RT::GroupMembers; require RT::CustomFields; require RT::CustomFieldValues; require RT::ObjectCustomFields; require RT::ObjectCustomFieldValues; require RT::CustomRoles; require RT::ObjectCustomRoles; require RT::Attributes; require RT::Dashboard; require RT::Approval; require RT::Lifecycle; require RT::Link; require RT::Links; require RT::Article; require RT::Articles; require RT::Class; require RT::Classes; require RT::ObjectClass; require RT::ObjectClasses; require RT::ObjectTopic; require RT::ObjectTopics; require RT::Topic; require RT::Topics; require RT::Link; require RT::Links; require RT::Catalog; require RT::Catalogs; require RT::Asset; require RT::Assets; require RT::CustomFieldValues::Canonicalizer; _BuildTableAttributes(); if ( $args{'Heavy'} ) { # load scrips' modules my $scrips = RT::Scrips->new(RT->SystemUser); while ( my $scrip = $scrips->Next ) { local $@; eval { $scrip->LoadModules } or $RT::Logger->error("Invalid Scrip ".$scrip->Id.". Unable to load the Action or Condition. ". "You should delete or repair this Scrip in the admin UI.\n$@\n"); } foreach my $class ( grep $_, RT->Config->Get('CustomFieldValuesSources') ) { $class->require or $RT::Logger->error( "Class '$class' is listed in CustomFieldValuesSources option" ." in the config, but we failed to load it:\n$@\n" ); } } } sub _BuildTableAttributes { # on a cold server (just after restart) people could have an object # in the session, as we deserialize it so we never call constructor # of the class, so the list of accessible fields is empty and we die # with "Method xxx is not implemented in RT::SomeClass" # without this, we also can never call _ClassAccessible, because we # won't have filled RT::Record::_TABLE_ATTR $_->_BuildTableAttributes foreach qw( RT::Ticket RT::Transaction RT::Attachment RT::User RT::Principal RT::Template RT::Queue RT::ScripAction RT::ScripCondition RT::Scrip RT::ObjectScrip RT::Group RT::GroupMember RT::CustomField RT::CustomFieldValue RT::ObjectCustomField RT::ObjectCustomFieldValue RT::Attribute RT::ACE RT::Article RT::Class RT::Link RT::ObjectClass RT::ObjectTopic RT::Topic RT::Asset RT::Catalog RT::CustomRole RT::ObjectCustomRole ); } =head2 InitSystemObjects Initializes system objects: C<$RT::System>, C<< RT->SystemUser >> and C<< RT->Nobody >>. =cut sub InitSystemObjects { #RT's system user is a genuine database user. its id lives here require RT::CurrentUser; $SystemUser = RT::CurrentUser->new; $SystemUser->LoadByName('RT_System'); #RT's "nobody user" is a genuine database user. its ID lives here. $Nobody = RT::CurrentUser->new; $Nobody->LoadByName('Nobody'); require RT::System; $System = RT::System->new( $SystemUser ); } =head1 CLASS METHODS =head2 Config Returns the current L, but note that you must L first otherwise this method returns undef. Method can be called as class method. =cut sub Config { return $Config || shift->LoadConfig(); } =head2 DatabaseHandle Returns the current L. See also L. =cut sub DatabaseHandle { return $Handle } =head2 Logger Returns the logger. See also L. =cut sub Logger { return $Logger } =head2 System Returns the current L. See also L. =cut sub System { return $System } =head2 SystemUser Returns the system user's object, it's object of L class that represents the system. See also L. =cut sub SystemUser { return $SystemUser } =head2 Nobody Returns object of Nobody. It's object of L class that represents a user who can own ticket and nothing else. See also L. =cut sub Nobody { return $Nobody } sub PrivilegedUsers { if (!$_Privileged) { $_Privileged = RT::Group->new(RT->SystemUser); $_Privileged->LoadSystemInternalGroup('Privileged'); } return $_Privileged; } sub UnprivilegedUsers { if (!$_Unprivileged) { $_Unprivileged = RT::Group->new(RT->SystemUser); $_Unprivileged->LoadSystemInternalGroup('Unprivileged'); } return $_Unprivileged; } =head2 Plugins Returns a listref of all Plugins currently configured for this RT instance. You can define plugins by adding them to the @Plugins list in your RT_SiteConfig =cut sub Plugins { state @PLUGINS; state $DID_INIT = 0; my $self = shift; unless ($DID_INIT) { $self->InitPluginPaths; @PLUGINS = $self->InitPlugins; $DID_INIT++; } return [@PLUGINS]; } =head2 PluginDirs Takes an optional subdir (e.g. po, lib, etc.) and returns a list of directories from plugins where that subdirectory exists. This code does not check plugin names, plugin validitity, or load plugins (see L) in any way, and requires that RT's configuration have been already loaded. =cut sub PluginDirs { my $self = shift; my $subdir = shift; require RT::Plugin; my @res; foreach my $plugin (grep $_, RT->Config->Get('Plugins')) { my $path = RT::Plugin->new( name => $plugin )->Path( $subdir ); next unless -d $path; push @res, $path; } return @res; } =head2 InitPluginPaths Push plugins' lib paths into @INC right after F. In case F isn't in @INC, append them to @INC =cut sub InitPluginPaths { my $self = shift || __PACKAGE__; my @lib_dirs = $self->PluginDirs('lib'); my @tmp_inc; my $added; for (@INC) { my $realpath = Cwd::realpath($_); next unless defined $realpath; if ( $realpath eq $RT::LocalLibPath) { push @tmp_inc, $_, @lib_dirs; $added = 1; } else { push @tmp_inc, $_; } } # append @lib_dirs in case $RT::LocalLibPath isn't in @INC push @tmp_inc, @lib_dirs unless $added; my %seen; @INC = grep !$seen{$_}++, @tmp_inc; } =head2 InitPlugins Initialize all Plugins found in the RT configuration file, setting up their lib and L component roots. =cut our %CORED_PLUGINS = ( 'RT::Extension::SLA' => '4.4', 'RT::Extension::ExternalStorage' => '4.4', 'RT::Extension::Assets' => '4.4', 'RT::Authen::ExternalAuth' => '4.4', 'RT::Extension::LDAPImport' => '4.4', 'RT::Extension::SpawnLinkedTicketInQueue' => '4.4', 'RT::Extension::ParentTimeWorked' => '4.4', 'RT::Extension::FutureMailgate' => '4.4', 'RT::Extension::AdminConditionsAndActions' => '4.4.2', ); sub InitPlugins { my $self = shift; my @plugins; require RT::Plugin; foreach my $plugin (grep $_, RT->Config->Get('Plugins')) { if ( $CORED_PLUGINS{$plugin} ) { RT->Logger->warning( "$plugin has been cored since RT $CORED_PLUGINS{$plugin}, please check the upgrade document for more details" ); } $plugin->require; die $UNIVERSAL::require::ERROR if ($UNIVERSAL::require::ERROR); push @plugins, RT::Plugin->new(name =>$plugin); } return @plugins; } sub InstallMode { my $self = shift; if (@_) { my ($integrity, $state, $msg) = RT::Handle->CheckIntegrity; if ($_[0] and $integrity) { # Trying to turn install mode on but we have a good DB! require Carp; $RT::Logger->error( Carp::longmess("Something tried to turn on InstallMode but we have DB integrity!") ); } else { $_INSTALL_MODE = shift; if($_INSTALL_MODE) { require RT::CurrentUser; $SystemUser = RT::CurrentUser->new(); } } } return $_INSTALL_MODE; } sub LoadGeneratedData { my $class = shift; my $pm_path = ( File::Spec->splitpath( $INC{'RT.pm'} ) )[1]; $pm_path = File::Spec->rel2abs( $pm_path ); require "$pm_path/RT/Generated.pm" || die "Couldn't load RT::Generated: $@"; $class->CanonicalizeGeneratedPaths(); } sub CanonicalizeGeneratedPaths { my $class = shift; unless ( File::Spec->file_name_is_absolute($EtcPath) ) { # if BasePath exists and is absolute, we won't infer it from $INC{'RT.pm'}. # otherwise RT.pm will make the source dir(where we configure RT) be the # BasePath instead of the one specified by --prefix unless ( -d $BasePath && File::Spec->file_name_is_absolute($BasePath) ) { my $pm_path = ( File::Spec->splitpath( $INC{'RT.pm'} ) )[1]; # need rel2abs here is to make sure path is absolute, since $INC{'RT.pm'} # is not always absolute $BasePath = File::Spec->rel2abs( File::Spec->catdir( $pm_path, File::Spec->updir ) ); } $BasePath = Cwd::realpath($BasePath); for my $path ( qw/EtcPath BinPath SbinPath VarPath LocalPath StaticPath LocalEtcPath LocalLibPath LexiconPath LocalLexiconPath PluginPath FontPath LocalPluginPath LocalStaticPath MasonComponentRoot MasonLocalComponentRoot MasonDataDir MasonSessionDir/ ) { no strict 'refs'; # just change relative ones $$path = File::Spec->catfile( $BasePath, $$path ) unless File::Spec->file_name_is_absolute($$path); } } } =head2 AddJavaScript Helper method to add JS files to the C<@JSFiles> config at runtime. To add files, you can add the following line to your extension's main C<.pm> file: RT->AddJavaScript( 'foo.js', 'bar.js' ); Files are expected to be in a static root in a F directory, such as F in your extension or F for local overlays. =cut sub AddJavaScript { my $self = shift; my @old = RT->Config->Get('JSFiles'); RT->Config->Set( 'JSFiles', @old, @_ ); return RT->Config->Get('JSFiles'); } =head2 AddStyleSheets Helper method to add CSS files to the C<@CSSFiles> config at runtime. To add files, you can add the following line to your extension's main C<.pm> file: RT->AddStyleSheets( 'foo.css', 'bar.css' ); Files are expected to be in a static root in a F directory, such as F in your extension or F for local overlays. =cut sub AddStyleSheets { my $self = shift; my @old = RT->Config->Get('CSSFiles'); RT->Config->Set( 'CSSFiles', @old, @_ ); return RT->Config->Get('CSSFiles'); } =head2 JavaScript helper method of RT->Config->Get('JSFiles') =cut sub JavaScript { return RT->Config->Get('JSFiles'); } =head2 StyleSheets helper method of RT->Config->Get('CSSFiles') =cut sub StyleSheets { return RT->Config->Get('CSSFiles'); } =head2 Deprecated Notes that a particular call path is deprecated, and will be removed in a particular release. Puts a warning in the logs indicating such, along with a stack trace. Optional arguments include: =over =item Remove The release which is slated to remove the method or component =item Instead A suggestion of what to use in place of the deprecated API =item Arguments Used if not the entire method is being removed, merely a manner of calling it; names the arguments which are deprecated. =item Message Overrides the auto-built phrasing of C with a custom message. =item Detail Provides more context (e.g. callback paths) after the Message but before the Stack =item Object An L object to print the class and numeric id of. Useful if the admin will need to hunt down a particular object to fix the deprecation warning. =back =cut sub Deprecated { my $class = shift; my %args = ( Arguments => undef, Remove => undef, Instead => undef, Message => undef, Detail => undef, Stack => 1, LogLevel => "warn", @_, ); my ($function) = (caller(1))[3]; my $stack; if ($function eq "HTML::Mason::Commands::__ANON__") { eval { HTML::Mason::Exception->throw() }; my $error = $@; my $info = $error->analyze_error; $function = "Mason component ".$info->{frames}[0]->filename; $stack = join("\n", map { sprintf("\t[%s:%d]", $_->filename, $_->line) } @{$info->{frames}}); } else { $function = "function $function"; $stack = Carp::longmess(); } $stack =~ s/^.*?\n//; # Strip off call to ->Deprecated my $msg; if ($args{Message}) { $msg = $args{Message}; } elsif ($args{Arguments}) { $msg = "Calling $function with $args{Arguments} is deprecated"; } else { $msg = "The $function is deprecated"; } $msg .= ", and will be removed in RT $args{Remove}" if $args{Remove}; $msg .= "."; $msg .= " You should use $args{Instead} instead." if $args{Instead}; $msg .= sprintf " Object: %s #%d.", blessed($args{Object}), $args{Object}->id if $args{Object}; $msg .= "\n$args{Detail}\n" if $args{Detail}; $msg .= " Call stack:\n$stack" if $args{Stack}; my $loglevel = $args{LogLevel}; RT->Logger->$loglevel($msg); } =head1 BUGS Please report them to rt-bugs@bestpractical.com, if you know what's broken and have at least some idea of what needs to be fixed. If you're not sure what's going on, start a discussion in the RT Developers category on the community forum at L or send email to sales@bestpractical.com for professional assistance. =head1 SEE ALSO L L =cut require RT::Base; RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/000755 000765 000024 00000000000 13437512113 014111 5ustar00sunnavystaff000000 000000 rt-4.4.4/lib/RT/System.pm000644 000765 000024 00000031157 13437510132 015741 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} =head1 NAME RT::System =head1 DESCRIPTION RT::System is a simple global object used as a focal point for things that are system-wide. It works sort of like an RT::Record, except it's really a single object that has an id of "1" when instantiated. This gets used by the ACL system so that you can have rights for the scope "RT::System" In the future, there will probably be other API goodness encapsulated here. =cut package RT::System; use strict; use warnings; use base qw/RT::Record/; use Role::Basic 'with'; with "RT::Record::Role::Roles", "RT::Record::Role::Rights" => { -excludes => [qw/AvailableRights RightCategories/] }; use RT::ACL; use RT::ACE; use Data::GUID; __PACKAGE__->AddRight( Admin => SuperUser => 'Do anything and everything'); # loc __PACKAGE__->AddRight( Staff => ShowUserHistory => 'Show history of public user properties'); # loc __PACKAGE__->AddRight( Admin => AdminUsers => 'Create, modify and delete users'); # loc __PACKAGE__->AddRight( Admin => AdminCustomRoles => 'Create, modify and delete custom roles'); # loc __PACKAGE__->AddRight( Staff => ModifySelf => "Modify one's own RT account"); # loc __PACKAGE__->AddRight( Staff => ShowArticlesMenu => 'Show Articles menu'); # loc __PACKAGE__->AddRight( Admin => ShowConfigTab => 'Show Admin menu'); # loc __PACKAGE__->AddRight( Admin => ShowApprovalsTab => 'Show Approvals tab'); # loc __PACKAGE__->AddRight( Staff => ShowAssetsMenu => 'Show Assets menu'); # loc __PACKAGE__->AddRight( Staff => ShowGlobalTemplates => 'Show global templates'); # loc __PACKAGE__->AddRight( General => LoadSavedSearch => 'Allow loading of saved searches'); # loc __PACKAGE__->AddRight( General => CreateSavedSearch => 'Allow creation of saved searches'); # loc __PACKAGE__->AddRight( Admin => ExecuteCode => 'Allow writing Perl code in templates, scrips, etc'); # loc =head2 AvailableRights Returns a hashref of available rights for this object. The keys are the right names and the values are a description of what the rights do. This method as well returns rights of other RT objects, like L or L, to allow users to apply those rights globally. If an L is passed as the first argument, the available rights will be limited to ones which make sense for the principal. Currently only role groups are supported and rights announced by object types to which the role group doesn't apply are not returned. =cut sub AvailableRights { my $self = shift; my $principal = shift; my $class = ref($self) || $self; my @rights; if ($principal and $principal->IsRoleGroup) { my $role = $principal->Object->Name; for my $class (keys %RT::ACE::RIGHTS) { next unless $class->DOES('RT::Record::Role::Roles') and $class->HasRole($role) and $class ne "RT::System"; push @rights, values %{ $RT::ACE::RIGHTS{$class} }; } } else { @rights = map {values %{$_}} values %RT::ACE::RIGHTS; } my %rights; $rights{$_->{Name}} = $_->{Description} for @rights; delete $rights{ExecuteCode} if RT->Config->Get('DisallowExecuteCode'); return \%rights; } =head2 RightCategories Returns a hashref where the keys are rights for this type of object and the values are the category (General, Staff, Admin) the right falls into. =cut sub RightCategories { my $self = shift; my $class = ref($self) || $self; my %rights; $rights{$_->{Name}} = $_->{Category} for map {values %{$_}} values %RT::ACE::RIGHTS; return \%rights; } sub _Init { my $self = shift; $self->SUPER::_Init (@_) if @_ && $_[0]; } =head2 id Returns RT::System's id. It's 1. =cut *Id = \&id; sub id { return 1 } sub UID { return "RT::System" } =head2 Load Since this object is pretending to be an RT::Record, we need a load method. It does nothing =cut sub Load { return 1 } sub Name { return 'RT System' } sub __Set { return 0 } sub __Value { return 0 } sub Create { return 0 } sub Delete { return 0 } sub SubjectTag { my $self = shift; my $queue = shift; return $queue->SubjectTag if $queue; my $queues = RT::Queues->new( $self->CurrentUser ); $queues->Limit( FIELD => 'SubjectTag', OPERATOR => 'IS NOT', VALUE => 'NULL' ); return $queues->DistinctFieldValues('SubjectTag'); } =head2 QueueCacheNeedsUpdate ( 1 ) Attribute to decide when SelectQueue needs to flush the list of queues and retrieve new ones. Set when queues are created, enabled/disabled and on certain acl changes. Should also better understand group management. If passed a true value, will update the attribute to be the current time. =cut sub QueueCacheNeedsUpdate { my $self = shift; my $update = shift; if ($update) { return $self->SetAttribute(Name => 'QueueCacheNeedsUpdate', Content => time); } else { my $cache = $self->FirstAttribute('QueueCacheNeedsUpdate'); return (defined $cache ? $cache->Content : 0 ); } } =head2 CustomRoleCacheNeedsUpdate ( 1 ) Attribute to decide when we need to flush the list of custom roles and re-register any changes. Set when roles are created, enabled/disabled, etc. If passed a true value, will update the attribute to be the current time. =cut sub CustomRoleCacheNeedsUpdate { my $self = shift; my $update = shift; if ($update) { return $self->SetAttribute(Name => 'CustomRoleCacheNeedsUpdate', Content => time); } else { my $cache = $self->FirstAttribute('CustomRoleCacheNeedsUpdate'); return (defined $cache ? $cache->Content : 0 ); } } =head2 AddUpgradeHistory package, data Adds an entry to the upgrade history database. The package can be either C for core RT upgrades, or the fully qualified name of a plugin. The data must be a hash reference. =cut sub AddUpgradeHistory { my $self = shift; my $package = shift; my $data = shift; $data->{timestamp} ||= time; $data->{rt_version} ||= $RT::VERSION; my $upgrade_history_attr = $self->FirstAttribute('UpgradeHistory'); my $upgrade_history = $upgrade_history_attr ? $upgrade_history_attr->Content : {}; push @{ $upgrade_history->{$package} }, $data; $self->SetAttribute( Name => 'UpgradeHistory', Content => $upgrade_history, ); } =head2 UpgradeHistory [package] Returns the entries of RT's upgrade history. If a package is specified, the list of upgrades for that package will be returned. Otherwise a hash reference of C<< package => [upgrades] >> will be returned. =cut sub UpgradeHistory { my $self = shift; my $package = shift; my $upgrade_history_attr = $self->FirstAttribute('UpgradeHistory'); my $upgrade_history = $upgrade_history_attr ? $upgrade_history_attr->Content : {}; if ($package) { return @{ $upgrade_history->{$package} || [] }; } return $upgrade_history; } sub ParsedUpgradeHistory { my $self = shift; my $package = shift; my $version_status = "Current version: "; if ( $package eq 'RT' ){ $version_status .= $RT::VERSION; } elsif ( grep {/$package/} @{RT->Config->Get('Plugins')} ) { no strict 'refs'; $version_status .= ${ $package . '::VERSION' }; } else { $version_status = "Not currently loaded"; } my %ids; my @lines; my @events = $self->UpgradeHistory( $package ); for my $event (@events) { if ($event->{stage} eq 'before' or (($event->{action}||'') eq 'insert' and not $event->{full_id})) { if (not $event->{full_id}) { # For upgrade done in the 4.1 series without GUIDs if (($event->{type}||'') eq 'full upgrade') { $event->{full_id} = $event->{individual_id} = Data::GUID->new->as_string; } else { $event->{individual_id} = Data::GUID->new->as_string; $event->{full_id} = (@lines ? $lines[-1]{full_id} : Data::GUID->new->as_string); } $event->{return_value} = [1] if $event->{stage} eq 'after'; } if ($ids{$event->{full_id}}) { my $kids = $ids{$event->{full_id}}{sub_events} ||= []; # Stitch non-"upgrade"s beneath the previous "upgrade" if ( @{$kids} and $event->{action} ne 'upgrade' and $kids->[-1]{action} eq 'upgrade') { push @{ $kids->[-1]{sub_events} }, $event; } else { push @{ $kids }, $event; } } else { push @lines, $event; } $ids{$event->{individual_id}} = $event; } elsif ($event->{stage} eq 'after') { if (not $event->{individual_id}) { if (($event->{type}||'') eq 'full upgrade') { $lines[-1]{end} = $event->{timestamp} if @lines; } elsif (($event->{type}||'') eq 'individual upgrade') { $lines[-1]{sub_events}[-1]{end} = $event->{timestamp} if @lines and @{ $lines[-1]{sub_events} }; } } elsif ($ids{$event->{individual_id}}) { my $end = $event; $event = $ids{$event->{individual_id}}; $event->{end} = $end->{timestamp}; $end->{return_value} = [ split ', ', $end->{return_value}, 2 ] if $end->{return_value} and not ref $end->{return_value}; $event->{return_value} = $end->{return_value}; $event->{content} ||= $end->{content}; } } } return ($version_status, @lines); } =head2 ExternalStorage Accessor for the storage engine selected by L. Will be undefined if external storage is not configured. =cut sub ExternalStorage { my $self = shift; if (@_) { $self->{ExternalStorage} = shift; } return $self->{ExternalStorage}; } =head2 ExternalStorageURLFor object Returns a URL for direct linking to an L engine. Will return C if external storage is not configured, or if direct linking is disabled in config (C<$ExternalStorageDirectLink>), or if the external storage engine doesn't support hyperlinking (as in L), or finally, if the object is for whatever reason not present in external storage. =cut sub ExternalStorageURLFor { my $self = shift; my $Object = shift; # external storage not configured return undef if !$self->ExternalStorage; # external storage direct links disabled return undef if !RT->Config->Get('ExternalStorageDirectLink'); return undef unless $Object->ContentEncoding eq 'external'; return $self->ExternalStorage->DownloadURLFor($Object); } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Generated.pm000644 000765 000024 00000005700 13437512113 016347 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} package RT; use warnings; use strict; our $VERSION = '4.4.4'; our ($MAJOR_VERSION, $MINOR_VERSION, $REVISION) = $VERSION =~ /^(\d)\.(\d)\.(\d+)/; $BasePath = '/opt/rt4'; $EtcPath = 'etc'; $BinPath = 'bin'; $SbinPath = 'sbin'; $VarPath = 'var'; $FontPath = 'share/fonts'; $LexiconPath = 'share/po'; $StaticPath = 'share/static'; $PluginPath = 'plugins'; $LocalPath = 'local'; $LocalEtcPath = 'local/etc'; $LocalLibPath = 'local/lib'; $LocalLexiconPath = 'local/po'; $LocalStaticPath = 'local/static'; $LocalPluginPath = 'local/plugins'; # $MasonComponentRoot is where your rt instance keeps its mason html files $MasonComponentRoot = 'share/html'; # $MasonLocalComponentRoot is where your rt instance keeps its site-local # mason html files. $MasonLocalComponentRoot = 'local/html'; # $MasonDataDir Where mason keeps its datafiles $MasonDataDir = 'var/mason_data'; # RT needs to put session data (for preserving state between connections # via the web interface) $MasonSessionDir = 'var/session_data'; 1; rt-4.4.4/lib/RT/PlackRunner.pm000644 000765 000024 00000013057 13437510132 016700 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} use warnings; use strict; package RT::PlackRunner; use base 'Plack::Runner'; sub new { my $class = shift; return $class->SUPER::new( default_middleware => 0, @_ ); } sub parse_options { my $self = shift; my @args = @_; # handle "rt-server 8888" for back-compat, but complain about it if (@args && $args[0] =~ m/^\d+$/) { warn "Deprecated: please run $0 --port $ARGV[0] instead\n"; unshift @args, '--port'; } $self->SUPER::parse_options(@args); $self->{app} ||= $self->app; $self->{server} ||= $self->loader->guess; my %args = @{$self->{options}}; $self->{webpath} ||= $args{webpath} if $args{webpath}; if ($self->{server} eq "FCGI") { # We deal with the possible failure modes of this in ->run } elsif ($args{port}) { $self->{explicit_port} = 1; my $old_app = $self->{app}; $self->{app} = sub { my $env = shift; $env->{'rt.explicit_port'} = $args{port}; $old_app->($env, @_); }; } else { $self->set_options(port => (RT->Config->Get('WebPort') || '8080')); } } # Don't assume port 5000 with no port or socket supplied; this allows # the WebPort default to kick in (above), and also to provide useful # error messages when starting FCGI without any options. sub mangle_host_port_socket { my $self = shift; my ($host, $port, $socket, @listen) = @_; return $self->SUPER::mangle_host_port_socket(@_) if @listen or $port or $socket; return host => $host, port => $port, socket => $socket, @listen ? (listen => \@listen) : (); } sub app { require RT::Interface::Web::Handler; my $app = RT::Interface::Web::Handler->PSGIApp; if ($ENV{RT_TESTING}) { my $screen_logger = $RT::Logger->remove('screen'); require Log::Dispatch::Perl; $RT::Logger->add( Log::Dispatch::Perl->new( name => 'rttest', min_level => $screen_logger->min_level, action => { error => 'warn', critical => 'warn' } ) ); require Plack::Middleware::Test::StashWarnings; $app = Plack::Middleware::Test::StashWarnings->wrap($app); } return $app; } sub run { my $self = shift; my %args = @{$self->{options}}; # Plack::Handler::FCGI has its own catch for this, but doesn't # notice that listen is an empty list, and we can also provide a # better error message. if ($self->{server} eq "FCGI" and not -S STDIN and not @{$args{listen} || []}) { print STDERR "STDIN is not a socket, and no --listen, --socket, or --port provided\n"; exit 1; } if ( $self->{webpath} ){ require Plack::App::URLMap; my $urlmap = Plack::App::URLMap->new; $urlmap->map($self->{webpath} => $self->{app}); $self->{app} = $urlmap->to_app; } eval { $self->SUPER::run(@_) }; my $err = $@; exit 0 unless $err; if ( $err =~ /listen/ ) { print STDERR < EOF if ($self->{explicit_port}) { print STDERR "Please check your system configuration or choose another port\n\n"; } exit 1; } else { die "Something went wrong while trying to run RT's standalone web server:\n\t" . $err; } } 1; rt-4.4.4/lib/RT/Ruleset.pm000644 000765 000024 00000005157 13437510132 016101 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} package RT::Ruleset; use strict; use warnings; use base 'Class::Accessor::Fast'; __PACKAGE__->mk_accessors(qw(Name Rules)); my @RULE_SETS; sub FindAllRules { my ($class, %args) = @_; return [ grep { $_->Prepare } map { $_->new(CurrentUser => RT->SystemUser, %args) } grep { $_->_Stage eq $args{Stage} } map { @{$_->Rules} } @RULE_SETS ]; } sub CommitRules { my ($class, $rules) = @_; $_->Commit for @$rules; } sub Add { my ($class, %args) = @_; for (@{$args{Rules}}) { $_->require or die $UNIVERSAL::require::ERROR; } push @RULE_SETS, $class->new(\%args); } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Ticket.pm000644 000765 000024 00000310313 13437510132 015672 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} =head1 SYNOPSIS use RT::Ticket; my $ticket = RT::Ticket->new($CurrentUser); $ticket->Load($ticket_id); =head1 DESCRIPTION This module lets you manipulate RT's ticket object. =head1 METHODS =cut package RT::Ticket; use strict; use warnings; use base 'RT::Record'; use Role::Basic 'with'; # SetStatus and _SetStatus are reimplemented below (using other pieces of the # role) to deal with ACLs, moving tickets between queues, and automatically # setting dates. with "RT::Record::Role::Status" => { -excludes => [qw(SetStatus _SetStatus)] }, "RT::Record::Role::Links", "RT::Record::Role::Roles"; use RT::Queue; use RT::User; use RT::Record; use RT::Link; use RT::Links; use RT::Date; use RT::CustomFields; use RT::Tickets; use RT::Transactions; use RT::Reminders; use RT::URI::fsck_com_rt; use RT::URI; use RT::SLA; use MIME::Entity; use Devel::GlobalDestruction; sub LifecycleColumn { "Queue" } my %ROLES = ( # name => description Owner => 'The owner of a ticket', # loc_pair Requestor => 'The requestor of a ticket', # loc_pair Cc => 'The CC of a ticket', # loc_pair AdminCc => 'The administrative CC of a ticket', # loc_pair ); for my $role (sort keys %ROLES) { RT::Ticket->RegisterRole( Name => $role, EquivClasses => ['RT::Queue'], ( $role eq "Owner" ? ( Column => "Owner") : () ), ( $role !~ /Cc/ ? ( ACLOnlyInEquiv => 1) : () ), ); } our %MERGE_CACHE = ( effective => {}, merged => {}, ); =head2 Load Takes a single argument. This can be a ticket id, ticket alias or local ticket uri. If the ticket can't be loaded, returns undef. Otherwise, returns the ticket id. =cut sub Load { my $self = shift; my $id = shift; $id = '' unless defined $id; # TODO: modify this routine to look at EffectiveId and # do the recursive load thing. be careful to cache all # the interim tickets we try so we don't loop forever. unless ( $id =~ /^\d+$/ ) { $RT::Logger->debug("Tried to load a bogus ticket id: '$id'"); return (undef); } $id = $MERGE_CACHE{'effective'}{ $id } if $MERGE_CACHE{'effective'}{ $id }; my ($ticketid, $msg) = $self->LoadById( $id ); unless ( $self->Id ) { $RT::Logger->debug("$self tried to load a bogus ticket: $id"); return (undef); } #If we're merged, resolve the merge. if ( $self->EffectiveId && $self->EffectiveId != $self->Id ) { $RT::Logger->debug( "We found a merged ticket. " . $self->id ."/". $self->EffectiveId ); my $real_id = $self->Load( $self->EffectiveId ); $MERGE_CACHE{'effective'}{ $id } = $real_id; return $real_id; } #Ok. we're loaded. lets get outa here. return $self->Id; } =head2 Create (ARGS) Arguments: ARGS is a hash of named parameters. Valid parameters are: id Queue - Either a Queue object or a Queue Name Requestor - A reference to a list of email addresses or RT user Names Cc - A reference to a list of email addresses or Names AdminCc - A reference to a list of email addresses or Names SquelchMailTo - A reference to a list of email addresses - who should this ticket not mail Type -- The ticket's type. ignore this for now Owner -- This ticket's owner. either an RT::User object or this user's id Subject -- A string describing the subject of the ticket Priority -- an integer from 0 to 99 InitialPriority -- an integer from 0 to 99 FinalPriority -- an integer from 0 to 99 Status -- any valid status for Queue's Lifecycle, otherwises uses on_create from Lifecycle default TimeEstimated -- an integer. estimated time for this task in minutes TimeWorked -- an integer. time worked so far in minutes TimeLeft -- an integer. time remaining in minutes Starts -- an ISO date describing the ticket's start date and time in GMT Due -- an ISO date describing the ticket's due date and time in GMT MIMEObj -- a MIME::Entity object with the content of the initial ticket request. CustomField- -- a scalar or array of values for the customfield with the id Ticket links can be set up during create by passing the link type as a hask key and the ticket id to be linked to as a value (or a URI when linking to other objects). Multiple links of the same type can be created by passing an array ref. For example: Parents => 45, DependsOn => [ 15, 22 ], RefersTo => 'http://www.bestpractical.com', Supported link types are C, C, C, C, C and C. Also, C is alias for C and C and C are aliases for C. Returns: TICKETID, Transaction Object, Error Message =cut sub Create { my $self = shift; my %args = ( id => undef, EffectiveId => undef, Queue => undef, Requestor => undef, Cc => undef, AdminCc => undef, SquelchMailTo => undef, TransSquelchMailTo => undef, Type => 'ticket', Owner => undef, Subject => '', InitialPriority => undef, FinalPriority => undef, Priority => undef, Status => undef, TimeWorked => "0", TimeLeft => 0, TimeEstimated => 0, Due => undef, Starts => undef, Started => undef, Resolved => undef, SLA => undef, MIMEObj => undef, _RecordTransaction => 1, @_ ); my ($ErrStr, @non_fatal_errors); my $QueueObj = RT::Queue->new( RT->SystemUser ); if ( ref $args{'Queue'} eq 'RT::Queue' ) { $QueueObj->Load( $args{'Queue'}->Id ); } elsif ( $args{'Queue'} ) { $QueueObj->Load( $args{'Queue'} ); } else { $RT::Logger->debug("'". ( $args{'Queue'} ||''). "' not a recognised queue object." ); } #Can't create a ticket without a queue. unless ( $QueueObj->Id ) { $RT::Logger->debug("$self No queue given for ticket creation."); return ( 0, 0, $self->loc('Could not create ticket. Queue not set') ); } #Now that we have a queue, Check the ACLS unless ( $self->CurrentUser->HasRight( Right => 'CreateTicket', Object => $QueueObj ) and $QueueObj->Disabled != 1 ) { return ( 0, 0, $self->loc( "No permission to create tickets in the queue '[_1]'", $QueueObj->Name)); } my $cycle = $QueueObj->LifecycleObj; unless ( defined $args{'Status'} && length $args{'Status'} ) { $args{'Status'} = $cycle->DefaultOnCreate; } $args{'Status'} = lc $args{'Status'}; unless ( $cycle->IsValid( $args{'Status'} ) ) { return ( 0, 0, $self->loc("Status '[_1]' isn't a valid status for tickets in this queue.", $self->loc($args{'Status'})) ); } unless ( $cycle->IsTransition( '' => $args{'Status'} ) ) { return ( 0, 0, $self->loc("New tickets can not have status '[_1]' in this queue.", $self->loc($args{'Status'})) ); } #Since we have a queue, we can set queue defaults #Initial Priority # If there's no queue default initial priority and it's not set, set it to 0 $args{'InitialPriority'} = $QueueObj->DefaultValue('InitialPriority') || 0 unless defined $args{'InitialPriority'}; #Final priority # If there's no queue default final priority and it's not set, set it to 0 $args{'FinalPriority'} = $QueueObj->DefaultValue('FinalPriority') || 0 unless defined $args{'FinalPriority'}; # Priority may have changed from InitialPriority, for the case # where we're importing tickets (eg, from an older RT version.) $args{'Priority'} = $args{'InitialPriority'} unless defined $args{'Priority'}; # Dates my $Now = RT::Date->new( $self->CurrentUser ); $Now->SetToNow(); #TODO we should see what sort of due date we're getting, rather + # than assuming it's in ISO format. #Set the due date. if we didn't get fed one, use the queue default due in my $Due = RT::Date->new( $self->CurrentUser ); if ( defined $args{'Due'} ) { $Due->Set( Format => 'ISO', Value => $args{'Due'} ); } elsif ( my $default = $QueueObj->DefaultValue('Due') ) { $Due->Set( Format => 'unknown', Value => $default ); } my $Starts = RT::Date->new( $self->CurrentUser ); if ( defined $args{'Starts'} ) { $Starts->Set( Format => 'ISO', Value => $args{'Starts'} ); } elsif ( my $default = $QueueObj->DefaultValue('Starts') ) { $Starts->Set( Format => 'unknown', Value => $default ); } my $Started = RT::Date->new( $self->CurrentUser ); if ( defined $args{'Started'} ) { $Started->Set( Format => 'ISO', Value => $args{'Started'} ); } # If the status is not an initial status, set the started date elsif ( !$cycle->IsInitial($args{'Status'}) ) { $Started->Set( Format => 'ISO', Value => $Now->ISO ); } my $Resolved = RT::Date->new( $self->CurrentUser ); if ( defined $args{'Resolved'} ) { $Resolved->Set( Format => 'ISO', Value => $args{'Resolved'} ); } #If the status is an inactive status, set the resolved date elsif ( $cycle->IsInactive( $args{'Status'} ) ) { $RT::Logger->debug( "Got a ". $args{'Status'} ."(inactive) ticket with undefined resolved date. Setting to now." ); $Resolved->Set( Format => 'ISO', Value => $Now->ISO ); } # Dealing with time fields $args{'TimeEstimated'} = 0 unless defined $args{'TimeEstimated'}; $args{'TimeWorked'} = 0 unless defined $args{'TimeWorked'}; $args{'TimeLeft'} = 0 unless defined $args{'TimeLeft'}; # Figure out users for roles my $roles = {}; push @non_fatal_errors, $QueueObj->_ResolveRoles( $roles, %args ); $args{'Type'} = lc $args{'Type'} if $args{'Type'} =~ /^(ticket|approval|reminder)$/i; $args{'Subject'} =~ s/\n//g; $RT::Handle->BeginTransaction(); my %params = ( Queue => $QueueObj->Id, Subject => $args{'Subject'}, InitialPriority => $args{'InitialPriority'}, FinalPriority => $args{'FinalPriority'}, Priority => $args{'Priority'}, Status => $args{'Status'}, TimeWorked => $args{'TimeWorked'}, TimeEstimated => $args{'TimeEstimated'}, TimeLeft => $args{'TimeLeft'}, Type => $args{'Type'}, Created => $Now->ISO, Starts => $Starts->ISO, Started => $Started->ISO, Resolved => $Resolved->ISO, Due => $Due->ISO, $args{ 'Type' } eq 'ticket' ? ( SLA => $args{ SLA } || RT::SLA->GetDefaultServiceLevel( Queue => $QueueObj ), ) : (), ); # Parameters passed in during an import that we probably don't want to touch, otherwise foreach my $attr (qw(id Creator Created LastUpdated LastUpdatedBy)) { $params{$attr} = $args{$attr} if $args{$attr}; } # Delete null integer parameters foreach my $attr (qw(TimeWorked TimeLeft TimeEstimated InitialPriority FinalPriority)) { delete $params{$attr} unless ( exists $params{$attr} && $params{$attr} ); } # Delete the time worked if we're counting it in the transaction delete $params{'TimeWorked'} if $args{'_RecordTransaction'}; my ($id,$ticket_message) = $self->SUPER::Create( %params ); unless ($id) { $RT::Logger->crit( "Couldn't create a ticket: " . $ticket_message ); $RT::Handle->Rollback(); return ( 0, 0, $self->loc("Ticket could not be created due to an internal error") ); } #Set the ticket's effective ID now that we've created it. my ( $val, $msg ) = $self->__Set( Field => 'EffectiveId', Value => ( $args{'EffectiveId'} || $id ) ); unless ( $val ) { $RT::Logger->crit("Couldn't set EffectiveId: $msg"); $RT::Handle->Rollback; return ( 0, 0, $self->loc("Ticket could not be created due to an internal error") ); } # Create (empty) role groups my $create_groups_ret = $self->_CreateRoleGroups(); unless ($create_groups_ret) { $RT::Logger->crit( "Couldn't create ticket groups for ticket " . $self->Id . ". aborting Ticket creation." ); $RT::Handle->Rollback(); return ( 0, 0, $self->loc("Ticket could not be created due to an internal error") ); } # Codify what it takes to add each kind of group my $always_ok = sub { 1 }; my %acls = ( (map { $_ => $always_ok } $QueueObj->Roles), AdminCc => sub { my $principal = shift; return 1 if $self->CurrentUserHasRight('ModifyTicket'); return unless $self->CurrentUserHasRight("WatchAsAdminCc"); return unless $principal->id == $self->CurrentUser->PrincipalId; return 1; }, Owner => sub { my $principal = shift; return 1 if $principal->id == RT->Nobody->PrincipalId; return $principal->HasRight( Object => $self, Right => 'OwnTicket' ); }, ); # Populate up the role groups. This call modifies $roles. push @non_fatal_errors, $self->_AddRolesOnCreate( $roles, %acls ); # Squelching if ($args{'SquelchMailTo'}) { my @squelch = ref( $args{'SquelchMailTo'} ) ? @{ $args{'SquelchMailTo'} } : $args{'SquelchMailTo'}; $self->_SquelchMailTo( @squelch ); } # Add all the custom fields foreach my $arg ( keys %args ) { next unless $arg =~ /^CustomField-(\d+)$/i; my $cfid = $1; my $cf = $self->LoadCustomFieldByIdentifier($cfid); $cf->{include_set_initial} = 1; next unless $cf->ObjectTypeFromLookupType($cf->__Value('LookupType'))->isa(ref $self); foreach my $value ( UNIVERSAL::isa( $args{$arg} => 'ARRAY' ) ? @{ $args{$arg} } : ( $args{$arg} ) ) { next if $self->CustomFieldValueIsEmpty( Field => $cf, Value => $value, ); # Allow passing in uploaded LargeContent etc by hash reference my ($status, $msg) = $self->_AddCustomFieldValue( (UNIVERSAL::isa( $value => 'HASH' ) ? %$value : (Value => $value) ), Field => $cfid, RecordTransaction => 0, ForCreation => 1, ); push @non_fatal_errors, $msg unless $status; } } my ( $status, @msgs ) = $self->AddCustomFieldDefaultValues; push @non_fatal_errors, @msgs unless $status; # Deal with setting up links # TODO: Adding link may fire scrips on other end and those scrips # could create transactions on this ticket before 'Create' transaction. # # We should implement different lifecycle: record 'Create' transaction, # create links and only then fire create transaction's scrips. # # Ideal variant: add all links without firing scrips, record create # transaction and only then fire scrips on the other ends of links. # # //RUZ push @non_fatal_errors, $self->_AddLinksOnCreate(\%args, { Silent => !$args{'_RecordTransaction'} || ($self->Type || '') eq 'reminder', }); # Try to add roles once more. push @non_fatal_errors, $self->_AddRolesOnCreate( $roles, %acls ); # Anything left is failure of ACLs; Cc and Requestor have no ACLs, # so we don't bother checking them. if (@{ $roles->{Owner} }) { my $owner = $roles->{Owner}[0]->Object; $RT::Logger->warning( "User " . $owner->Name . "(" . $owner->id . ") was proposed as a ticket owner but has no rights to own " . "tickets in " . $QueueObj->Name ); push @non_fatal_errors, $self->loc( "Owner '[_1]' does not have rights to own this ticket.", $owner->Name ); } for my $principal (@{ $roles->{AdminCc} }) { push @non_fatal_errors, $self->loc( "No rights to add '[_1]' as an AdminCc on this ticket", $principal->Object->Name ); } if ( $args{'_RecordTransaction'} ) { # Add a transaction for the create my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( Type => "Create", TimeTaken => $args{'TimeWorked'}, MIMEObj => $args{'MIMEObj'}, SquelchMailTo => $args{'TransSquelchMailTo'}, ); if ( $self->Id && $Trans ) { $TransObj->UpdateCustomFields( %args ); $RT::Logger->info( "Ticket " . $self->Id . " created in queue '" . $QueueObj->Name . "' by " . $self->CurrentUser->Name ); $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); } else { $RT::Handle->Rollback(); $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); $RT::Logger->error("Ticket couldn't be created: $ErrStr"); return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error")); } $RT::Handle->Commit(); return ( $self->Id, $TransObj->Id, $ErrStr ); } else { # Not going to record a transaction $RT::Handle->Commit(); $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); return ( $self->Id, 0, $ErrStr ); } } sub SetType { my $self = shift; my $value = shift; # Force lowercase on internal RT types $value = lc $value if $value =~ /^(ticket|approval|reminder)$/i; return $self->_Set(Field => 'Type', Value => $value, @_); } =head2 OwnerGroup A constructor which returns an RT::Group object containing the owner of this ticket. =cut sub OwnerGroup { my $self = shift; return $self->RoleGroup( 'Owner' ); } sub _HasModifyWatcherRight { my $self = shift; my ($type, $principal) = @_; # ModifyTicket works in any case return 1 if $self->CurrentUserHasRight('ModifyTicket'); # If the watcher isn't the current user then the current user has no right return 0 unless $self->CurrentUser->PrincipalId == $principal->id; # If it's an AdminCc and they don't have 'WatchAsAdminCc', bail return 0 if $type eq 'AdminCc' and not $self->CurrentUserHasRight('WatchAsAdminCc'); # If it's a Requestor or Cc and they don't have 'Watch', bail return 0 if ($type eq "Cc" or $type eq 'Requestor') and not $self->CurrentUserHasRight('Watch'); return 1; } =head2 AddWatcher Applies access control checking, then calls L. Additionally, C is accepted as an alternative argument name for C. Returns a tuple of (status, message). =cut sub AddWatcher { my $self = shift; my %args = ( Type => undef, PrincipalId => undef, Email => undef, @_ ); $args{User} ||= delete $args{Email}; my ($principal, $msg) = $self->CanonicalizePrincipal(%args); if (!$principal) { return (0, $msg); } my $original_user; my $group = $self->RoleGroup( $args{Type} ); if ($group->id && $group->SingleMemberRoleGroup) { my $users = $group->UserMembersObj( Recursively => 0 ); $users->{find_disabled_rows} = 1; $original_user = $users->First; if ($original_user->PrincipalId == $principal->Id) { return 1; } } else { $original_user = RT->Nobody; } ((my $ok), $msg) = $self->AddRoleMember( Principal => $principal, ACL => sub { $self->_HasModifyWatcherRight( @_ ) }, Type => $args{Type}, InsideTransaction => 1, ); return ( 0, $msg) unless $ok; # reload group in case it was lazily created $group = $self->RoleGroup( $args{Type} ); if ($group->SingleMemberRoleGroup) { return ( 1, $self->loc( "[_1] changed from [_2] to [_3]", $group->Label, $original_user->Name, $principal->Object->Name ) ); } else { return ( 1, $self->loc('Added [_1] as [_2] for this ticket', $principal->Object->Name, $group->Label) ); } } =head2 DeleteWatcher Applies access control checking, then calls L. Additionally, C is accepted as an alternative argument name for C. Returns a tuple of (status, message). =cut sub DeleteWatcher { my $self = shift; my %args = ( Type => undef, PrincipalId => undef, Email => undef, @_ ); $args{ACL} = sub { $self->_HasModifyWatcherRight( @_ ) }; $args{User} ||= delete $args{Email}; my ($principal, $msg) = $self->DeleteRoleMember( %args ); return ( 0, $msg ) unless $principal; my $group = $self->RoleGroup( $args{Type} ); return ( 1, $self->loc( "[_1] is no longer [_2] for this ticket", $principal->Object->Name, $group->Label ) ); } =head2 SquelchMailTo ADDRESSES Takes a list of email addresses to never email about updates to this ticket. Subsequent calls to this method add, rather than replace, the list of squelched addresses. Returns an array of the L objects for this ticket's 'SquelchMailTo' attributes. =cut sub SquelchMailTo { my $self = shift; if (@_) { unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return (); } } else { unless ( $self->CurrentUserHasRight('ShowTicket') ) { return (); } } return $self->_SquelchMailTo(@_); } sub _SquelchMailTo { my $self = shift; while (@_) { my $attr = shift; $self->AddAttribute( Name => 'SquelchMailTo', Content => $attr ) unless grep { $_->Content eq $attr } $self->Attributes->Named('SquelchMailTo'); } my @attributes = $self->Attributes->Named('SquelchMailTo'); return (@attributes); } =head2 UnsquelchMailTo ADDRESS Takes an address and removes it from this ticket's "SquelchMailTo" list. If an address appears multiple times, each instance is removed. Returns a tuple of (status, message) =cut sub UnsquelchMailTo { my $self = shift; my $address = shift; unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } my ($val, $msg) = $self->Attributes->DeleteEntry ( Name => 'SquelchMailTo', Content => $address); return ($val, $msg); } =head2 RequestorAddresses B String: All Ticket Requestor email addresses as a string. =cut sub RequestorAddresses { my $self = shift; return $self->RoleAddresses('Requestor'); } =head2 AdminCcAddresses returns String: All Ticket AdminCc email addresses as a string =cut sub AdminCcAddresses { my $self = shift; return $self->RoleAddresses('AdminCc'); } =head2 CcAddresses returns String: All Ticket Ccs as a string of email addresses =cut sub CcAddresses { my $self = shift; return $self->RoleAddresses('Cc'); } =head2 RoleAddresses Takes a role name and returns a string of all the email addresses for users in that role =cut sub RoleAddresses { my $self = shift; my $role = shift; unless ( $self->CurrentUserHasRight('ShowTicket') ) { return undef; } return ( $self->RoleGroup($role)->MemberEmailAddressesAsString); } =head2 Requestor Takes nothing. Returns this ticket's Requestors as an RT::Group object =cut sub Requestor { my $self = shift; return RT::Group->new($self->CurrentUser) unless $self->CurrentUserHasRight('ShowTicket'); return $self->RoleGroup( 'Requestor' ); } sub Requestors { my $self = shift; return $self->Requestor; } =head2 Cc Takes nothing. Returns an RT::Group object which contains this ticket's Ccs. If the user doesn't have "ShowTicket" permission, returns an empty group =cut sub Cc { my $self = shift; return RT::Group->new($self->CurrentUser) unless $self->CurrentUserHasRight('ShowTicket'); return $self->RoleGroup( 'Cc' ); } =head2 AdminCc Takes nothing. Returns an RT::Group object which contains this ticket's AdminCcs. If the user doesn't have "ShowTicket" permission, returns an empty group =cut sub AdminCc { my $self = shift; return RT::Group->new($self->CurrentUser) unless $self->CurrentUserHasRight('ShowTicket'); return $self->RoleGroup( 'AdminCc' ); } # a generic routine to be called by IsRequestor, IsCc and IsAdminCc =head2 IsWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID, Email => EMAIL } Takes a param hash with the attributes Type and either PrincipalId or Email Type is one of Requestor, Cc, AdminCc and Owner PrincipalId is an RT::Principal id, and Email is an email address. Returns true if the specified principal (or the one corresponding to the specified address) is a member of the group Type for this ticket. XX TODO: This should be Memoized. =cut sub IsWatcher { my $self = shift; my %args = ( Type => 'Requestor', PrincipalId => undef, Email => undef, @_ ); # Load the relevant group. my $group = $self->RoleGroup( $args{'Type'} ); # Find the relevant principal. if (!$args{PrincipalId} && $args{Email}) { # Look up the specified user. my $user = RT::User->new($self->CurrentUser); $user->LoadByEmail($args{Email}); if ($user->Id) { $args{PrincipalId} = $user->PrincipalId; } else { # A non-existent user can't be a group member. return 0; } } # Ask if it has the member in question return $group->HasMember( $args{'PrincipalId'} ); } =head2 IsRequestor PRINCIPAL_ID Takes an L id. Returns true if the principal is a requestor of the current ticket. =cut sub IsRequestor { my $self = shift; my $person = shift; return ( $self->IsWatcher( Type => 'Requestor', PrincipalId => $person ) ); }; =head2 IsCc PRINCIPAL_ID Takes an RT::Principal id. Returns true if the principal is a Cc of the current ticket. =cut sub IsCc { my $self = shift; my $cc = shift; return ( $self->IsWatcher( Type => 'Cc', PrincipalId => $cc ) ); } =head2 IsAdminCc PRINCIPAL_ID Takes an RT::Principal id. Returns true if the principal is an AdminCc of the current ticket. =cut sub IsAdminCc { my $self = shift; my $person = shift; return ( $self->IsWatcher( Type => 'AdminCc', PrincipalId => $person ) ); } =head2 IsOwner Takes an RT::User object. Returns true if that user is this ticket's owner. returns undef otherwise =cut sub IsOwner { my $self = shift; my $person = shift; # no ACL check since this is used in acl decisions # unless ($self->CurrentUserHasRight('ShowTicket')) { # return(undef); # } #Tickets won't yet have owners when they're being created. unless ( $self->OwnerObj->id ) { return (undef); } if ( $person->id == $self->OwnerObj->id ) { return (1); } else { return (undef); } } =head2 TransactionAddresses Returns a composite hashref of the results of L for all this ticket's Create, Comment or Correspond transactions. The keys are stringified email addresses. Each value is an L object. NOTE: For performance reasons, this method might want to skip transactions and go straight for attachments. But to make that work right, we're going to need to go and walk around the access control in Attachment.pm's sub _Value. =cut sub TransactionAddresses { my $self = shift; my $txns = $self->Transactions; my %addresses = (); my $attachments = RT::Attachments->new( $self->CurrentUser ); $attachments->LimitByTicket( $self->id ); $attachments->Columns( qw( id Headers TransactionId)); # If $TreatAttachedEmailAsFiles is set, don't parse child attachments # for email addresses. if ( RT->Config->Get('TreatAttachedEmailAsFiles') ){ $attachments->Limit( FIELD => 'Parent', VALUE => 0, ); } $attachments->Limit( ALIAS => $attachments->TransactionAlias, FIELD => 'Type', OPERATOR => 'IN', VALUE => [ qw(Create Comment Correspond) ], ); while ( my $att = $attachments->Next ) { foreach my $addrlist ( values %{$att->Addresses } ) { foreach my $addr (@$addrlist) { $addr->address( lc $addr->address ); # force lower-case # Skip addresses without a phrase (things that are just raw addresses) if we have a phrase next if ( $addresses{ $addr->address } && $addresses{ $addr->address }->phrase && not $addr->phrase ); # skips "comment-only" addresses next unless ( $addr->address ); $addresses{ $addr->address } = $addr; } } } return \%addresses; } sub ValidateQueue { my $self = shift; my $Value = shift; if ( !$Value ) { $RT::Logger->warning( " RT:::Queue::ValidateQueue called with a null value. this isn't ok."); return (1); } my $QueueObj = RT::Queue->new( $self->CurrentUser ); my $id = $QueueObj->Load($Value); if ($id) { return (1); } else { return (undef); } } sub SetQueue { my $self = shift; my $value = shift; unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } my ($ok, $msg, $status) = $self->_SetLifecycleColumn( Value => $value, RequireRight => "CreateTicket" ); if ($ok) { # Clear the queue object cache; $self->{_queue_obj} = undef; my $queue = $self->QueueObj; # Untake the ticket if we have no permissions in the new queue unless ($self->OwnerObj->HasRight( Right => 'OwnTicket', Object => $queue )) { my $clone = RT::Ticket->new( RT->SystemUser ); $clone->Load( $self->Id ); unless ( $clone->Id ) { return ( 0, $self->loc("Couldn't load copy of ticket #[_1].", $self->Id) ); } my ($status, $msg) = $clone->SetOwner( RT->Nobody->Id, 'Force' ); $RT::Logger->error("Couldn't set owner on queue change: $msg") unless $status; } # On queue change, change queue for reminders too my $reminder_collection = $self->Reminders->Collection; while ( my $reminder = $reminder_collection->Next ) { my ($status, $msg) = $reminder->_Set( Field => 'Queue', Value => $queue->Id(), RecordTransaction => 0 ); $RT::Logger->error('Queue change failed for reminder #' . $reminder->Id . ': ' . $msg) unless $status; } # Pick up any changes made by the clones above $self->Load( $self->id ); RT->Logger->error("Unable to reload ticket #" . $self->id) unless $self->id; } return ($ok, $msg); } =head2 QueueObj Takes nothing. returns this ticket's queue object =cut sub QueueObj { my $self = shift; if(!$self->{_queue_obj} || ! $self->{_queue_obj}->id) { $self->{_queue_obj} = RT::Queue->new( $self->CurrentUser ); #We call __Value so that we can avoid the ACL decision and some deep recursion my ($result) = $self->{_queue_obj}->Load( $self->__Value('Queue') ); } return ($self->{_queue_obj}); } sub Subject { my $self = shift; my $subject = $self->_Value( 'Subject' ); return $subject if defined $subject; if ( RT->Config->Get( 'DatabaseType' ) eq 'Oracle' && $self->CurrentUserHasRight( 'ShowTicket' ) ) { # Oracle treats empty strings as NULL, so it returns undef for empty subjects. # Since '' is the default Subject value, returning '' is more correct. return ''; } else { return undef; } } sub SetSubject { my $self = shift; my $value = shift; $value =~ s/\n//g; return $self->_Set( Field => 'Subject', Value => $value ); } =head2 SubjectTag Takes nothing. Returns SubjectTag for this ticket. Includes queue's subject tag or rtname if that is not set, ticket id and brackets, for example: [support.example.com #123456] =cut sub SubjectTag { my $self = shift; return '[' . ($self->QueueObj->SubjectTag || RT->Config->Get('rtname')) .' #'. $self->id .']' ; } =head2 DueObj Returns an RT::Date object containing this ticket's due date =cut sub DueObj { my $self = shift; my $time = RT::Date->new( $self->CurrentUser ); # -1 is RT::Date slang for never if ( my $due = $self->Due ) { $time->Set( Format => 'sql', Value => $due ); } else { $time->Set( Format => 'unix', Value => -1 ); } return $time; } =head2 ResolvedObj Returns an RT::Date object of this ticket's 'resolved' time. =cut sub ResolvedObj { my $self = shift; my $time = RT::Date->new( $self->CurrentUser ); $time->Set( Format => 'sql', Value => $self->Resolved ); return $time; } =head2 FirstActiveStatus Returns the first active status that the ticket could transition to, according to its current Queue's lifecycle. May return undef if there is no such possible status to transition to, or we are already in it. This is used in L, for instance. =cut sub FirstActiveStatus { my $self = shift; my $lifecycle = $self->LifecycleObj; my $status = $self->Status; my @active = $lifecycle->Active; # no change if no active statuses in the lifecycle return undef unless @active; # no change if the ticket is already has first status from the list of active return undef if lc $status eq lc $active[0]; my ($next) = grep $lifecycle->IsActive($_), $lifecycle->Transitions($status); return $next; } =head2 FirstInactiveStatus Returns the first inactive status that the ticket could transition to, according to its current Queue's lifecycle. May return undef if there is no such possible status to transition to, or we are already in it. This is used in L, for instance. =cut sub FirstInactiveStatus { my $self = shift; my $lifecycle = $self->LifecycleObj; my $status = $self->Status; my @inactive = $lifecycle->Inactive; # no change if no inactive statuses in the lifecycle return undef unless @inactive; # no change if the ticket is already has first status from the list of inactive return undef if lc $status eq lc $inactive[0]; my ($next) = grep $lifecycle->IsInactive($_), $lifecycle->Transitions($status); return $next; } =head2 SetStarted Takes a date in ISO format or undef Returns a transaction id and a message The client calls "Start" to note that the project was started on the date in $date. A null date means "now" =cut sub SetStarted { my $self = shift; my $time = shift || 0; unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } #We create a date object to catch date weirdness my $time_obj = RT::Date->new( $self->CurrentUser() ); if ( $time ) { $time_obj->Set( Format => 'ISO', Value => $time ); } else { $time_obj->SetToNow(); } return ( $self->_Set( Field => 'Started', Value => $time_obj->ISO ) ); } =head2 StartedObj Returns an RT::Date object which contains this ticket's 'Started' time. =cut sub StartedObj { my $self = shift; my $time = RT::Date->new( $self->CurrentUser ); $time->Set( Format => 'sql', Value => $self->Started ); return $time; } =head2 StartsObj Returns an RT::Date object which contains this ticket's 'Starts' time. =cut sub StartsObj { my $self = shift; my $time = RT::Date->new( $self->CurrentUser ); $time->Set( Format => 'sql', Value => $self->Starts ); return $time; } =head2 ToldObj Returns an RT::Date object which contains this ticket's 'Told' time. =cut sub ToldObj { my $self = shift; my $time = RT::Date->new( $self->CurrentUser ); $time->Set( Format => 'sql', Value => $self->Told ); return $time; } sub _DurationAsString { my $self = shift; my $value = shift; return "" unless $value; if ($value < 60) { return $self->loc("[quant,_1,minute,minutes]", $value); } else { my $h = sprintf("%.2f", $value / 60 ); return $self->loc("[quant,_1,hour,hours] ([quant,_2,minute,minutes])", $h, $value); } } =head2 TimeWorkedAsString Returns the amount of time worked on this ticket as a text string. =cut sub TimeWorkedAsString { my $self = shift; return $self->_DurationAsString( $self->TimeWorked ); } =head2 TimeLeftAsString Returns the amount of time left on this ticket as a text string. =cut sub TimeLeftAsString { my $self = shift; return $self->_DurationAsString( $self->TimeLeft ); } =head2 TimeEstimatedAsString Returns the amount of time estimated on this ticket as a text string. =cut sub TimeEstimatedAsString { my $self = shift; return $self->_DurationAsString( $self->TimeEstimated ); } =head2 TotalTimeWorked Returns the amount of time worked on this ticket and all child tickets =cut sub TotalTimeWorked { my $self = shift; my $seen = shift || {}; my $time = $self->TimeWorked; my $links = $self->Members; LINK: while (my $link = $links->Next) { my $obj = $link->BaseObj; next LINK unless $obj && UNIVERSAL::isa($obj,'RT::Ticket'); next LINK if $seen->{$obj->Id}; $seen->{ $obj->Id } = 1; $time += $obj->TotalTimeWorked($seen); } return $time; } =head2 TotalTimeWorkedAsString Returns the amount of time worked on this ticket and all its children as a formatted duration string =cut sub TotalTimeWorkedAsString { my $self = shift; return $self->_DurationAsString( $self->TotalTimeWorked ); } =head2 TimeWorkedPerUser Returns a hash of user id to the amount of time worked on this ticket for that user =cut sub TimeWorkedPerUser { my $self = shift; my %time_worked; my $transactions = $self->Transactions; $transactions->Limit( FIELD => 'TimeTaken', VALUE => 0, OPERATOR => '!=', ); while ( my $txn = $transactions->Next ) { $time_worked{ $txn->CreatorObj->Name } += $txn->TimeTaken; } return \%time_worked; } =head2 TotalTimeWorkedPerUser Returns the amount of time worked on this ticket and all child tickets calculated per user =cut sub TotalTimeWorkedPerUser { my $self = shift; my $seen = shift || {}; my $time = $self->TimeWorkedPerUser; my $links = $self->Members; LINK: while (my $link = $links->Next) { my $obj = $link->BaseObj; next LINK unless $obj && UNIVERSAL::isa($obj,'RT::Ticket'); next LINK if $seen->{$obj->Id}; $seen->{ $obj->Id } = 1; my $child_time = $obj->TotalTimeWorkedPerUser($seen); for my $user_id (keys %$child_time) { $time->{$user_id} += $child_time->{$user_id}; } } return $time; } =head2 Comment Comment on this ticket. Takes a hash with the following attributes: If MIMEObj is undefined, Content will be used to build a MIME::Entity for this comment. MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content Returns: Transaction id, Error Message, Transaction Object (note the different order from Create()!) =cut sub Comment { my $self = shift; my %args = ( CcMessageTo => undef, BccMessageTo => undef, MIMEObj => undef, Content => undef, TimeTaken => 0, @_ ); unless ( ( $self->CurrentUserHasRight('CommentOnTicket') ) or ( $self->CurrentUserHasRight('ModifyTicket') ) ) { return ( 0, $self->loc("Permission Denied"), undef ); } $args{'NoteType'} = 'Comment'; $RT::Handle->BeginTransaction(); my @results = $self->_RecordNote(%args); if ( not $results[0] ) { $RT::Handle->Rollback(); } else { $RT::Handle->Commit; } return(@results); } =head2 Correspond Correspond on this ticket. Takes a hashref with the following attributes: MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content if there's no MIMEObj, Content is used to build a MIME::Entity object Returns: Transaction id, Error Message, Transaction Object (note the different order from Create()!) =cut sub Correspond { my $self = shift; my %args = ( CcMessageTo => undef, BccMessageTo => undef, MIMEObj => undef, Content => undef, TimeTaken => 0, @_ ); unless ( ( $self->CurrentUserHasRight('ReplyToTicket') ) or ( $self->CurrentUserHasRight('ModifyTicket') ) ) { return ( 0, $self->loc("Permission Denied"), undef ); } $args{'NoteType'} = 'Correspond'; $RT::Handle->BeginTransaction(); my @results = $self->_RecordNote(%args); unless ( $results[0] ) { $RT::Handle->Rollback(); return @results; } #Set the last told date to now if this isn't mail from the requestor. #TODO: Note that this will wrongly ack mail from any non-requestor as a "told" unless ( $self->IsRequestor($self->CurrentUser->id) ) { my %squelch; $squelch{$_}++ for map {$_->Content} $self->SquelchMailTo, $results[2]->SquelchMailTo; $self->_SetTold if grep {not $squelch{$_}} $self->Requestors->MemberEmailAddresses; } $RT::Handle->Commit; return (@results); } =head2 _RecordNote the meat of both comment and correspond. Performs no access control checks. hence, dangerous. =cut sub _RecordNote { my $self = shift; my %args = ( CcMessageTo => undef, BccMessageTo => undef, Encrypt => undef, Sign => undef, MIMEObj => undef, Content => undef, NoteType => 'Correspond', TimeTaken => 0, SquelchMailTo => undef, AttachExisting => [], @_ ); unless ( $args{'MIMEObj'} || $args{'Content'} ) { return ( 0, $self->loc("No message attached"), undef ); } unless ( $args{'MIMEObj'} ) { my $data = ref $args{'Content'}? $args{'Content'} : [ $args{'Content'} ]; $args{'MIMEObj'} = MIME::Entity->build( Type => "text/plain", Charset => "UTF-8", Data => [ map {Encode::encode("UTF-8", $_)} @{$data} ], ); } $args{'MIMEObj'}->head->replace('X-RT-Interface' => 'API') unless $args{'MIMEObj'}->head->get('X-RT-Interface'); # convert text parts into utf-8 RT::I18N::SetMIMEEntityToUTF8( $args{'MIMEObj'} ); # Set the magic RT headers which include existing attachments on this note if ($args{'AttachExisting'}) { $args{'AttachExisting'} = [$args{'AttachExisting'}] if not ref $args{'AttachExisting'} eq 'ARRAY'; for my $attach (@{$args{'AttachExisting'}}) { next if $attach =~ /\D/; $args{'MIMEObj'}->head->add( 'RT-Attach' => $attach ); } } # If we've been passed in CcMessageTo and BccMessageTo fields, # add them to the mime object for passing on to the transaction handler # The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and # RT-Send-Bcc: headers foreach my $type (qw/Cc Bcc/) { if ( defined $args{ $type . 'MessageTo' } ) { my $addresses = join ', ', ( map { RT::User->CanonicalizeEmailAddress( $_->address ) } Email::Address->parse( $args{ $type . 'MessageTo' } ) ); $args{'MIMEObj'}->head->replace( 'RT-Send-' . $type, Encode::encode( "UTF-8", $addresses ) ); } } foreach my $argument (qw(Encrypt Sign)) { $args{'MIMEObj'}->head->replace( "X-RT-$argument" => $args{ $argument } ? 1 : 0 ) if defined $args{ $argument }; } # If this is from an external source, we need to come up with its # internal Message-ID now, so all emails sent because of this # message have a common Message-ID my $org = RT->Config->Get('Organization'); my $msgid = Encode::decode( "UTF-8", $args{'MIMEObj'}->head->get('Message-ID') ); unless (defined $msgid && $msgid =~ /<(rt-.*?-\d+-\d+)\.(\d+-0-0)\@\Q$org\E>/) { $args{'MIMEObj'}->head->replace( 'RT-Message-ID' => Encode::encode( "UTF-8", RT::Interface::Email::GenMessageId( Ticket => $self ) ) ); } #Record the correspondence (write the transaction) my ( $Trans, $msg, $TransObj ) = $self->_NewTransaction( Type => $args{'NoteType'}, Data => ( Encode::decode( "UTF-8", $args{'MIMEObj'}->head->get('Subject') ) || 'No Subject' ), TimeTaken => $args{'TimeTaken'}, MIMEObj => $args{'MIMEObj'}, SquelchMailTo => $args{'SquelchMailTo'}, ); unless ($Trans) { $RT::Logger->err("$self couldn't init a transaction $msg"); return ( $Trans, $self->loc("Message could not be recorded"), undef ); } if ($args{NoteType} eq "Comment") { $msg = $self->loc("Comments added"); } else { $msg = $self->loc("Correspondence added"); } return ( $Trans, $msg, $TransObj ); } =head2 Atomic Takes one argument, a subroutine reference. Starts a transaction, taking a write lock on this ticket object, and runs the subroutine in the context of that transaction. Commits the transaction at the end of the block. Returns whatever the subroutine returns. If the subroutine explicitly calls L or L, this function respects that, and will skip is usual commit step. If the subroutine dies, this function will abort the transaction (unless it is already aborted or committed, per above), and will re-die with the error. This method should be used to lock, and operate atomically on, all ticket changes via the UI (e.g. L). =cut sub Atomic { my $self = shift; my ($subref) = @_; my $has_id = defined $self->id; $RT::Handle->BeginTransaction; my $depth = $RT::Handle->TransactionDepth; $self->LockForUpdate if $has_id; $self->Load( $self->id ) if $has_id; my $context = wantarray; my @ret; local $@; eval { if ($context) { @ret = $subref->(); } elsif (defined $context) { @ret = scalar $subref->(); } else { $subref->(); } }; if ($@) { $RT::Handle->Rollback if $RT::Handle->TransactionDepth == $depth; die $@; } if ($RT::Handle->TransactionDepth == $depth) { $self->ApplyTransactionBatch; $RT::Handle->Commit; } return $context ? @ret : $ret[0]; } =head2 DryRun Takes one argument, a subroutine reference. Like L, starts a transaction and obtains a write lock on this ticket object, running the subroutine in the context of that transaction. In contrast to L, the transaction is B. As such, the body of the function should not call L or L, as that would break this method's ability to inspect the entire transaction. The return value of the subroutine reference is ignored. Returns the set of L objects that would have resulted from running the body of the transaction. =cut sub DryRun { my $self = shift; my ($subref) = @_; my @transactions; my $has_id = defined $self->id; $RT::Handle->BeginTransaction(); { # Getting nested "commit"s inside this rollback is fine local %DBIx::SearchBuilder::Handle::TRANSROLLBACK; local $self->{DryRun} = \@transactions; # Get a write lock for this whole transaction $self->LockForUpdate if $has_id; eval { $subref->() }; warn "Error is $@" if $@; $self->ApplyTransactionBatch; } @transactions = grep {$_} @transactions; $RT::Handle->Rollback(); return wantarray ? @transactions : $transactions[0]; } sub _Links { my $self = shift; #TODO: Field isn't the right thing here. but I ahave no idea what mnemonic --- #tobias meant by $f my $field = shift; my $type = shift || ""; my $cache_key = "$field$type"; return $self->{ $cache_key } if $self->{ $cache_key }; my $links = $self->{ $cache_key } = RT::Links->new( $self->CurrentUser ); unless ( $self->CurrentUserHasRight('ShowTicket') ) { $links->Limit( FIELD => 'id', VALUE => 0, SUBCLAUSE => 'acl' ); return $links; } # Maybe this ticket is a merge ticket my $limit_on = 'Local'. $field; # at least to myself $links->Limit( FIELD => $limit_on, OPERATOR => 'IN', VALUE => [ $self->id, $self->Merged ], ); $links->Limit( FIELD => 'Type', VALUE => $type, ) if $type; return $links; } =head2 MergeInto MergeInto take the id of the ticket to merge this ticket into. =cut sub MergeInto { my $self = shift; my $ticket_id = shift; unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } # Load up the new ticket. my $MergeInto = RT::Ticket->new($self->CurrentUser); $MergeInto->Load($ticket_id); # make sure it exists. unless ( $MergeInto->Id ) { return ( 0, $self->loc("New ticket doesn't exist") ); } # Can't merge into yourself if ( $MergeInto->Id == $self->Id ) { return ( 0, $self->loc("Can't merge a ticket into itself") ); } # Only tickets can be merged unless ($MergeInto->Type eq 'ticket' && $self->Type eq 'ticket'){ return(0, $self->loc("Only tickets can be merged")); } # Make sure the current user can modify the new ticket. unless ( $MergeInto->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } delete $MERGE_CACHE{'effective'}{ $self->id }; delete @{ $MERGE_CACHE{'merged'} }{ $ticket_id, $MergeInto->id, $self->id }; $RT::Handle->BeginTransaction(); my ($ok, $msg) = $self->_MergeInto( $MergeInto ); $RT::Handle->Commit() if $ok; return ($ok, $msg); } sub _MergeInto { my $self = shift; my $MergeInto = shift; # We use EffectiveId here even though it duplicates information from # the links table becasue of the massive performance hit we'd take # by trying to do a separate database query for merge info everytime # loaded a ticket. #update this ticket's effective id to the new ticket's id. my ( $id_val, $id_msg ) = $self->__Set( Field => 'EffectiveId', Value => $MergeInto->Id() ); unless ($id_val) { $RT::Handle->Rollback(); return ( 0, $self->loc("Merge failed. Couldn't set EffectiveId") ); } ( $id_val, $id_msg ) = $self->__Set( Field => 'IsMerged', Value => 1 ); unless ($id_val) { $RT::Handle->Rollback(); return ( 0, $self->loc("Merge failed. Couldn't set IsMerged") ); } # update all the links that point to that old ticket my $old_links_to = RT::Links->new($self->CurrentUser); $old_links_to->Limit(FIELD => 'Target', VALUE => $self->URI); my %old_seen; while (my $link = $old_links_to->Next) { if (exists $old_seen{$link->Base."-".$link->Type}) { $link->Delete; } elsif ($link->Base eq $MergeInto->URI) { $link->Delete; } else { # First, make sure the link doesn't already exist. then move it over. my $tmp = RT::Link->new(RT->SystemUser); $tmp->LoadByCols(Base => $link->Base, Type => $link->Type, LocalTarget => $MergeInto->id); if ($tmp->id) { $link->Delete; } else { $link->SetTarget($MergeInto->URI); $link->SetLocalTarget($MergeInto->id); } $old_seen{$link->Base."-".$link->Type} =1; } } my $old_links_from = RT::Links->new($self->CurrentUser); $old_links_from->Limit(FIELD => 'Base', VALUE => $self->URI); while (my $link = $old_links_from->Next) { if (exists $old_seen{$link->Type."-".$link->Target}) { $link->Delete; } if ($link->Target eq $MergeInto->URI) { $link->Delete; } else { # First, make sure the link doesn't already exist. then move it over. my $tmp = RT::Link->new(RT->SystemUser); $tmp->LoadByCols(Target => $link->Target, Type => $link->Type, LocalBase => $MergeInto->id); if ($tmp->id) { $link->Delete; } else { $link->SetBase($MergeInto->URI); $link->SetLocalBase($MergeInto->id); $old_seen{$link->Type."-".$link->Target} =1; } } } # Update time fields foreach my $type (qw(TimeEstimated TimeWorked TimeLeft)) { $MergeInto->_Set( Field => $type, Value => ( $MergeInto->$type() || 0 ) + ( $self->$type() || 0 ), RecordTransaction => 0, ); } # add all of this ticket's watchers to that ticket. for my $role ($self->Roles) { my $group = $self->RoleGroup($role); next unless $group->Id; # e.g. lazily-created custom role groups next if $group->SingleMemberRoleGroup; my $people = $group->MembersObj; while ( my $watcher = $people->Next ) { my ($val, $msg) = $MergeInto->AddRoleMember( Type => $role, Silent => 1, PrincipalId => $watcher->MemberId, InsideTransaction => 1, ); unless ($val) { $RT::Logger->debug($msg); } } } #find all of the tickets that were merged into this ticket. my $old_mergees = RT::Tickets->new( $self->CurrentUser ); $old_mergees->Limit( FIELD => 'EffectiveId', OPERATOR => '=', VALUE => $self->Id ); # update their EffectiveId fields to the new ticket's id while ( my $ticket = $old_mergees->Next() ) { my ( $val, $msg ) = $ticket->__Set( Field => 'EffectiveId', Value => $MergeInto->Id() ); } #make a new link: this ticket is merged into that other ticket. $self->AddLink( Type => 'MergedInto', Target => $MergeInto->Id()); $MergeInto->_SetLastUpdated; return ( 1, $self->loc("Merge Successful") ); } =head2 Merged Returns list of tickets' ids that's been merged into this ticket. =cut sub Merged { my $self = shift; my $id = $self->id; return @{ $MERGE_CACHE{'merged'}{ $id } } if $MERGE_CACHE{'merged'}{ $id }; my $mergees = RT::Tickets->new( $self->CurrentUser ); $mergees->LimitField( FIELD => 'EffectiveId', VALUE => $id, ); $mergees->LimitField( FIELD => 'id', OPERATOR => '!=', VALUE => $id, ); return @{ $MERGE_CACHE{'merged'}{ $id } ||= [] } = map $_->id, @{ $mergees->ItemsArrayRef || [] }; } =head2 OwnerObj Takes nothing and returns an RT::User object of this ticket's owner =cut sub OwnerObj { my $self = shift; #If this gets ACLed, we lose on a rights check in User.pm and #get deep recursion. if we need ACLs here, we need #an equiv without ACLs my $owner = RT::User->new( $self->CurrentUser ); $owner->Load( $self->__Value('Owner') ); #Return the owner object return ($owner); } =head2 OwnerAsString Returns the owner's email address =cut sub OwnerAsString { my $self = shift; return ( $self->OwnerObj->EmailAddress ); } =head2 SetOwner Takes two arguments: the Id or Name of the owner and (optionally) the type of the SetOwner Transaction. It defaults to 'Set'. 'Steal' is also a valid option. =cut sub SetOwner { my $self = shift; my $NewOwner = shift; my $Type = shift || "Set"; return $self->Atomic(sub{ my $OldOwnerObj = $self->OwnerObj; my $NewOwnerObj = RT::User->new( $self->CurrentUser ); $NewOwnerObj->Load( $NewOwner ); my ( $val, $msg ) = $self->CurrentUserCanSetOwner( NewOwnerObj => $NewOwnerObj, Type => $Type ); return ( $val, $msg ) unless $val; ($val, $msg ) = $self->OwnerGroup->_AddMember( PrincipalId => $NewOwnerObj->PrincipalId, InsideTransaction => 1, Object => $self, ); unless ($val) { $RT::Handle->Rollback; return ( 0, $self->loc("Could not change owner: [_1]", $msg) ); } $msg = $self->loc( "Owner changed from [_1] to [_2]", $OldOwnerObj->Name, $NewOwnerObj->Name ); return ($val, $msg); }); } =head2 CurrentUserCanSetOwner Confirm the current user can set the owner of the current ticket. There are several different rights to manage owner changes and this method evaluates these rights, guided by parameters provided. This method evaluates these rights in the context of the state of the current ticket. For example, it evaluates Take for tickets that are owned by Nobody because that is the context appropriate for the TakeTicket right. If you need to strictly test a user for a right, use HasRight to check for the right directly. For some custom types of owner changes (C and C), it also verifies that those actions are possible given the current ticket owner. =head3 Rights to Set Owner The current user can set or change the Owner field in the following cases: =over =item * ReassignTicket unconditionally grants the right to set the owner to any user who has OwnTicket. This can be used to break an Owner lock held by another user (see below) and can be a convenient right for managers or administrators who need to assign tickets without necessarily owning them. =item * ModifyTicket grants the right to set the owner to any user who has OwnTicket, provided the ticket is currently owned by the current user or is not owned (owned by Nobody). (See the details on the Force parameter below for exceptions to this.) =item * If the ticket is currently not owned (owned by Nobody), TakeTicket is sufficient to set the owner to yourself (but not an arbitrary person), but only if you have OwnTicket. It is thus a subset of the possible changes provided by ModifyTicket. This exists to allow granting TakeTicket freely, and the broader ModifyTicket only to Owners. =item * If the ticket is currently owned by someone who is not you or Nobody, StealTicket is sufficient to set the owner to yourself, but only if you have OwnTicket. This is hence non-overlapping with the changes provided by ModifyTicket, and is used to break a lock held by another user. =back =head3 Parameters This method returns ($result, $message) with $result containing true or false indicating if the current user can set owner and $message containing a message, typically in the case of a false response. If called with no parameters, this method determines if the current user could set the owner of the current ticket given any permutation of the rights described above. This can be useful when determining whether to make owner-setting options available in the GUI. This method accepts the following parameters as a paramshash: =over =item C Optional; an L object representing the proposed new owner of the ticket. =item C Optional; the type of set owner operation. Valid values are C, C, or C. Note that if the type is C, this method will return false if the current user is already the owner; similarly, it will return false for C if the ticket has no owner or the owner is the current user. =back As noted above, there are exceptions to the standard ticket-based rights described here. The Force option allows for these and is used when moving tickets between queues, for reminders (because the full owner rights system is too complex for them), and optionally during bulk update. =cut sub CurrentUserCanSetOwner { my $self = shift; my %args = ( Type => '', @_); my $OldOwnerObj = $self->OwnerObj; $args{NewOwnerObj} ||= $self->CurrentUser->UserObj if $args{Type} eq "Take" or $args{Type} eq "Steal"; # Confirm rights for new owner if we got one if ( $args{'NewOwnerObj'} ){ my ($ok, $message) = $self->_NewOwnerCanOwnTicket($args{'NewOwnerObj'}, $OldOwnerObj); return ($ok, $message) if not $ok; } # ReassignTicket allows you to SetOwner, but we also need to check ticket's # current owner for Take and Steal Types return ( 1, undef ) if $self->CurrentUserHasRight('ReassignTicket') && $args{Type} ne 'Take' && $args{Type} ne 'Steal'; # Ticket is unowned if ( $OldOwnerObj->Id == RT->Nobody->Id ) { # Steal is not applicable for unowned tickets. if ( $args{'Type'} eq 'Steal' ){ return ( 0, $self->loc("You can only steal a ticket owned by someone else") ) } # Can set owner to yourself with ModifyTicket, ReassignTicket, # or TakeTicket; in all of these cases, OwnTicket is checked by # _NewOwnerCanOwnTicket above. if ( $args{'Type'} eq 'Take' or ( $args{'NewOwnerObj'} and $args{'NewOwnerObj'}->id == $self->CurrentUser->id )) { unless ( $self->CurrentUserHasRight('ModifyTicket') or $self->CurrentUserHasRight('ReassignTicket') or $self->CurrentUserHasRight('TakeTicket') ) { return ( 0, $self->loc("Permission Denied") ); } } else { # Nobody -> someone else requires ModifyTicket or ReassignTicket unless ( $self->CurrentUserHasRight('ModifyTicket') or $self->CurrentUserHasRight('ReassignTicket') ) { return ( 0, $self->loc("Permission Denied") ); } } } # Ticket is owned by someone else # Can set owner to yourself with ModifyTicket or StealTicket # and OwnTicket. elsif ( $OldOwnerObj->Id != RT->Nobody->Id && $OldOwnerObj->Id != $self->CurrentUser->id ) { unless ( $self->CurrentUserHasRight('ModifyTicket') || $self->CurrentUserHasRight('ReassignTicket') || $self->CurrentUserHasRight('StealTicket') ) { return ( 0, $self->loc("Permission Denied") ) } if ( $args{'Type'} eq 'Steal' || $args{'Type'} eq 'Force' ){ return ( 1, undef ) if $self->CurrentUserHasRight('OwnTicket'); return ( 0, $self->loc("Permission Denied") ); } # Not a steal or force if ( $args{'Type'} eq 'Take' or ( $args{'NewOwnerObj'} and $args{'NewOwnerObj'}->id == $self->CurrentUser->id )) { return ( 0, $self->loc("You can only take tickets that are unowned") ); } unless ( $self->CurrentUserHasRight('ReassignTicket') ) { return ( 0, $self->loc( "You can only reassign tickets that you own or that are unowned")); } } # You own the ticket # Untake falls through to here, so we don't need to explicitly handle that Type else { if ( $args{'Type'} eq 'Take' || $args{'Type'} eq 'Steal' ) { return ( 0, $self->loc("You already own this ticket") ); } unless ( $self->CurrentUserHasRight('ModifyTicket') || $self->CurrentUserHasRight('ReassignTicket') ) { return ( 0, $self->loc("Permission Denied") ); } } return ( 1, undef ); } # Verify the proposed new owner can own the ticket. sub _NewOwnerCanOwnTicket { my $self = shift; my $NewOwnerObj = shift; my $OldOwnerObj = shift; unless ( $NewOwnerObj->Id ) { return ( 0, $self->loc("That user does not exist") ); } # The proposed new owner can't own the ticket if ( !$NewOwnerObj->HasRight( Right => 'OwnTicket', Object => $self ) ){ return ( 0, $self->loc("That user may not own tickets in that queue") ); } # Ticket's current owner is the same as the new owner, nothing to do elsif ( $NewOwnerObj->Id == $OldOwnerObj->Id ) { return ( 0, $self->loc("That user already owns that ticket") ); } return (1, undef); } =head2 Take A convenince method to set the ticket's owner to the current user =cut sub Take { my $self = shift; return ( $self->SetOwner( $self->CurrentUser->Id, 'Take' ) ); } =head2 Untake Convenience method to set the owner to 'nobody' if the current user is the owner. =cut sub Untake { my $self = shift; return ( $self->SetOwner( RT->Nobody->UserObj->Id, 'Untake' ) ); } =head2 Steal A convenience method to change the owner of the current ticket to the current user. Even if it's owned by another user. =cut sub Steal { my $self = shift; if ( $self->IsOwner( $self->CurrentUser ) ) { return ( 0, $self->loc("You already own this ticket") ); } else { return ( $self->SetOwner( $self->CurrentUser->Id, 'Steal' ) ); } } =head2 SetStatus STATUS Set this ticket's status. Alternatively, you can pass in a list of named parameters (Status => STATUS, Force => FORCE, SetStarted => SETSTARTED ). If FORCE is true, ignore unresolved dependencies and force a status change. if SETSTARTED is true (it's the default value), set Started to current datetime if Started is not set and the status is changed from initial to not initial. =cut sub SetStatus { my $self = shift; my %args; if (@_ == 1) { $args{Status} = shift; } else { %args = (@_); } # this only allows us to SetStarted, not we must SetStarted. # this option was added for rtir initially $args{SetStarted} = 1 unless exists $args{SetStarted}; my ($valid, $msg) = $self->ValidateStatusChange($args{Status}); return ($valid, $msg) unless $valid; my $lifecycle = $self->LifecycleObj; if ( !$args{Force} && !$lifecycle->IsInactive($self->Status) && $lifecycle->IsInactive($args{Status}) && $self->HasUnresolvedDependencies ) { return ( 0, $self->loc('That ticket has unresolved dependencies') ); } return $self->_SetStatus( Status => $args{Status}, SetStarted => $args{SetStarted}, ); } sub _SetStatus { my $self = shift; my %args = ( Status => undef, SetStarted => 1, RecordTransaction => 1, Lifecycle => $self->LifecycleObj, @_, ); $args{Status} = lc $args{Status} if defined $args{Status}; $args{NewLifecycle} ||= $args{Lifecycle}; my $now = RT::Date->new( $self->CurrentUser ); $now->SetToNow(); my $raw_started = RT::Date->new(RT->SystemUser); $raw_started->Set(Format => 'ISO', Value => $self->__Value('Started')); my $old = $self->__Value('Status'); # If we're changing the status from new, record that we've started if ( $args{SetStarted} && $args{Lifecycle}->IsInitial($old) && !$args{NewLifecycle}->IsInitial($args{Status}) && !$raw_started->IsSet) { # Set the Started time to "now" $self->_Set( Field => 'Started', Value => $now->ISO, RecordTransaction => 0 ); } # When we close a ticket, set the 'Resolved' attribute to now. # It's misnamed, but that's just historical. if ( $args{NewLifecycle}->IsInactive($args{Status}) ) { $self->_Set( Field => 'Resolved', Value => $now->ISO, RecordTransaction => 0, ); } # Actually update the status my ($val, $msg)= $self->_Set( Field => 'Status', Value => $args{Status}, TimeTaken => 0, CheckACL => 0, TransactionType => 'Status', RecordTransaction => $args{RecordTransaction}, ); return ($val, $msg); } sub SetTimeWorked { my $self = shift; my $value = shift; my $taken = ($value||0) - ($self->__Value('TimeWorked')||0); return $self->_Set( Field => 'TimeWorked', Value => $value, TimeTaken => $taken, ); } =head2 Delete Takes no arguments. Marks this ticket for garbage collection =cut sub Delete { my $self = shift; unless ( $self->LifecycleObj->IsValid('deleted') ) { return (0, $self->loc('Delete operation is disabled by lifecycle configuration') ); #loc } return ( $self->SetStatus('deleted') ); } =head2 SetTold ISO [TIMETAKEN] Updates the told and records a transaction =cut sub SetTold { my $self = shift; my $told; $told = shift if (@_); my $timetaken = shift || 0; unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } my $datetold = RT::Date->new( $self->CurrentUser ); if ($told) { $datetold->Set( Format => 'iso', Value => $told ); } else { $datetold->SetToNow(); } return ( $self->_Set( Field => 'Told', Value => $datetold->ISO, TimeTaken => $timetaken, TransactionType => 'Told' ) ); } =head2 _SetTold Updates the told without a transaction or acl check. Useful when we're sending replies. =cut sub _SetTold { my $self = shift; my $now = RT::Date->new( $self->CurrentUser ); $now->SetToNow(); #use __Set to get no ACLs ;) return ( $self->__Set( Field => 'Told', Value => $now->ISO ) ); } =head2 SeenUpTo =cut sub SeenUpTo { my $self = shift; my $uid = $self->CurrentUser->id; my $attr = $self->FirstAttribute( "User-". $uid ."-SeenUpTo" ); return if $attr && $attr->Content gt $self->LastUpdated; my $txns = $self->Transactions; $txns->Limit( FIELD => 'Type', VALUE => 'Comment' ); $txns->Limit( FIELD => 'Type', VALUE => 'Correspond' ); $txns->Limit( FIELD => 'Creator', OPERATOR => '!=', VALUE => $uid ); $txns->Limit( FIELD => 'Created', OPERATOR => '>', VALUE => $attr->Content ) if $attr; $txns->RowsPerPage(1); return $txns->First; } =head2 RanTransactionBatch Acts as a guard around running TransactionBatch scrips. Should be false until you enter the code that runs TransactionBatch scrips Accepts an optional argument to indicate that TransactionBatch Scrips should no longer be run on this object. =cut sub RanTransactionBatch { my $self = shift; my $val = shift; if ( defined $val ) { return $self->{_RanTransactionBatch} = $val; } else { return $self->{_RanTransactionBatch}; } } =head2 TransactionBatch Returns an array reference of all transactions created on this ticket during this ticket object's lifetime or since last application of a batch, or undef if there were none. Only works when the C config option is set to true. =cut sub TransactionBatch { my $self = shift; return $self->{_TransactionBatch}; } =head2 ApplyTransactionBatch Applies scrips on the current batch of transactions and shinks it. Usually batch is applied when object is destroyed, but in some cases it's too late. =cut sub ApplyTransactionBatch { my $self = shift; my $batch = $self->TransactionBatch; return unless $batch && @$batch; $self->_ApplyTransactionBatch; $self->{_TransactionBatch} = []; } sub _ApplyTransactionBatch { my $self = shift; return if $self->RanTransactionBatch; $self->RanTransactionBatch(1); my $still_exists = RT::Ticket->new( RT->SystemUser ); $still_exists->Load( $self->Id ); if (not $still_exists->Id) { # The ticket has been removed from the database, but we still # have pending TransactionBatch txns for it. Unfortunately, # because it isn't in the DB anymore, attempting to run scrips # on it may produce unpredictable results; simply drop the # batched transactions. $RT::Logger->warning("TransactionBatch was fired on a ticket that no longer exists; unable to run scrips! Call ->ApplyTransactionBatch before shredding the ticket, for consistent results."); return; } my $batch = $self->TransactionBatch; my %seen; my $types = join ',', grep !$seen{$_}++, grep defined, map $_->__Value('Type'), grep defined, @{$batch}; require RT::Scrips; my $scrips = RT::Scrips->new(RT->SystemUser); $scrips->Prepare( Stage => 'TransactionBatch', TicketObj => $self, TransactionObj => $batch->[0], Type => $types, ); # Entry point of the rule system my $rules = RT::Ruleset->FindAllRules( Stage => 'TransactionBatch', TicketObj => $self, TransactionObj => $batch->[0], Type => $types, ); if ($self->{DryRun}) { my $fake_txn = RT::Transaction->new( $self->CurrentUser ); $fake_txn->{scrips} = $scrips; $fake_txn->{rules} = $rules; push @{$self->{DryRun}}, $fake_txn; } else { $scrips->Commit; RT::Ruleset->CommitRules($rules); } } sub DESTROY { my $self = shift; # DESTROY methods need to localize $@, or it may unset it. This # causes $m->abort to not bubble all of the way up. See perlbug # http://rt.perl.org/rt3/Ticket/Display.html?id=17650 local $@; # The following line eliminates reentrancy. # It protects against the fact that perl doesn't deal gracefully # when an object's refcount is changed in its destructor. return if $self->{_Destroyed}++; if (in_global_destruction()) { unless ($ENV{'HARNESS_ACTIVE'}) { warn "Too late to safely run transaction-batch scrips!" ." This is typically caused by using ticket objects" ." at the top-level of a script which uses the RT API." ." Be sure to explicitly undef such ticket objects," ." or put them inside of a lexical scope."; } return; } return $self->ApplyTransactionBatch; } sub _OverlayAccessible { { EffectiveId => { 'read' => 1, 'write' => 1, 'public' => 1 }, Queue => { 'read' => 1, 'write' => 1 }, Requestors => { 'read' => 1, 'write' => 1 }, Owner => { 'read' => 1, 'write' => 1 }, Subject => { 'read' => 1, 'write' => 1 }, InitialPriority => { 'read' => 1, 'write' => 1 }, FinalPriority => { 'read' => 1, 'write' => 1 }, Priority => { 'read' => 1, 'write' => 1 }, Status => { 'read' => 1, 'write' => 1 }, TimeEstimated => { 'read' => 1, 'write' => 1 }, TimeWorked => { 'read' => 1, 'write' => 1 }, TimeLeft => { 'read' => 1, 'write' => 1 }, Told => { 'read' => 1, 'write' => 1 }, Resolved => { 'read' => 1 }, Type => { 'read' => 1 }, Starts => { 'read' => 1, 'write' => 1 }, Started => { 'read' => 1, 'write' => 1 }, Due => { 'read' => 1, 'write' => 1 }, Creator => { 'read' => 1, 'auto' => 1 }, Created => { 'read' => 1, 'auto' => 1 }, LastUpdatedBy => { 'read' => 1, 'auto' => 1 }, LastUpdated => { 'read' => 1, 'auto' => 1 } }; } sub _Set { my $self = shift; my %args = ( Field => undef, Value => undef, TimeTaken => 0, RecordTransaction => 1, CheckACL => 1, TransactionType => 'Set', @_ ); if ($args{'CheckACL'}) { unless ( $self->CurrentUserHasRight('ModifyTicket')) { return ( 0, $self->loc("Permission Denied")); } } # Avoid ACL loops using _Value my $Old = $self->SUPER::_Value($args{'Field'}); # Set the new value my ( $ret, $msg ) = $self->SUPER::_Set( Field => $args{'Field'}, Value => $args{'Value'} ); return ( 0, $msg ) unless $ret; return ( $ret, $msg ) unless $args{'RecordTransaction'}; my $trans; ( $ret, $msg, $trans ) = $self->_NewTransaction( Type => $args{'TransactionType'}, Field => $args{'Field'}, NewValue => $args{'Value'}, OldValue => $Old, TimeTaken => $args{'TimeTaken'}, ); # Ensure that we can read the transaction, even if the change # just made the ticket unreadable to us $trans->{ _object_is_readable } = 1; return ( $ret, scalar $trans->BriefDescription, $trans ); } =head2 _Value Takes the name of a table column. Returns its value as a string, if the user passes an ACL check =cut sub _Value { my $self = shift; my $field = shift; #if the field is public, return it. if ( $self->_Accessible( $field, 'public' ) ) { #$RT::Logger->debug("Skipping ACL check for $field"); return ( $self->SUPER::_Value($field) ); } #If the current user doesn't have ACLs, don't let em at it. unless ( $self->CurrentUserHasRight('ShowTicket') ) { return (undef); } return ( $self->SUPER::_Value($field) ); } =head2 Attachments Customization of L for tickets. =cut sub Attachments { my $self = shift; my %args = ( WithHeaders => 0, WithContent => 0, @_ ); my $res = RT::Attachments->new( $self->CurrentUser ); unless ( $self->CurrentUserHasRight('ShowTicket') ) { $res->Limit( SUBCLAUSE => 'acl', FIELD => 'id', VALUE => 0, ENTRYAGGREGATOR => 'AND' ); return $res; } my @columns = grep { not /^(Headers|Content)$/ } RT::Attachment->ReadableAttributes; push @columns, 'Headers' if $args{'WithHeaders'}; push @columns, 'Content' if $args{'WithContent'}; $res->Columns( @columns ); my $txn_alias = $res->TransactionAlias; $res->Limit( ALIAS => $txn_alias, FIELD => 'ObjectType', VALUE => ref($self), ); my $ticket_alias = $res->Join( ALIAS1 => $txn_alias, FIELD1 => 'ObjectId', TABLE2 => 'Tickets', FIELD2 => 'id', ); $res->Limit( ALIAS => $ticket_alias, FIELD => 'EffectiveId', VALUE => $self->id, ); return $res; } =head2 TextAttachments Customization of L for tickets. =cut sub TextAttachments { my $self = shift; my $res = $self->SUPER::TextAttachments( @_ ); unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { # if the user may not see comments do not return them $res->Limit( SUBCLAUSE => 'ACL', ALIAS => $res->TransactionAlias, FIELD => 'Type', OPERATOR => '!=', VALUE => 'Comment', ); } return $res; } =head2 _UpdateTimeTaken This routine will increment the timeworked counter. it should only be called from _NewTransaction =cut sub _UpdateTimeTaken { my $self = shift; my $Minutes = shift; my %rest = @_; if ( my $txn = $rest{'Transaction'} ) { return if $txn->__Value('Type') eq 'Set' && $txn->__Value('Field') eq 'TimeWorked'; } my $Total = $self->__Value("TimeWorked"); $Total = ( $Total || 0 ) + ( $Minutes || 0 ); $self->_Set( Field => "TimeWorked", Value => $Total, RecordTransaction => 0, CheckACL => 0, ); return ($Total); } =head2 CurrentUserCanSee Returns true if the current user can see the ticket, using ShowTicket =cut sub CurrentUserCanSee { my $self = shift; my ($what, $txn) = @_; return 0 unless $self->CurrentUserHasRight('ShowTicket'); return 1 if $what ne "Transaction"; # If it's a comment, we need to be extra special careful my $type = $txn->__Value('Type'); if ( $type eq 'Comment' ) { unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { return 0; } } elsif ( $type eq 'CommentEmailRecord' ) { unless ( $self->CurrentUserHasRight('ShowTicketComments') && $self->CurrentUserHasRight('ShowOutgoingEmail') ) { return 0; } } elsif ( $type eq 'EmailRecord' ) { unless ( $self->CurrentUserHasRight('ShowOutgoingEmail') ) { return 0; } } return 1; } =head2 Reminders Return the Reminders object for this ticket. (It's an RT::Reminders object.) It isn't acutally a searchbuilder collection itself. =cut sub Reminders { my $self = shift; unless ($self->{'__reminders'}) { $self->{'__reminders'} = RT::Reminders->new($self->CurrentUser); $self->{'__reminders'}->Ticket($self->id); } return $self->{'__reminders'}; } =head2 Transactions Returns an RT::Transactions object of all transactions on this ticket =cut sub Transactions { my $self = shift; my $transactions = RT::Transactions->new( $self->CurrentUser ); #If the user has no rights, return an empty object if ( $self->CurrentUserHasRight('ShowTicket') ) { $transactions->LimitToTicket($self->id); # if the user may not see comments do not return them unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { $transactions->Limit( SUBCLAUSE => 'acl', FIELD => 'Type', OPERATOR => '!=', VALUE => "Comment" ); $transactions->Limit( SUBCLAUSE => 'acl', FIELD => 'Type', OPERATOR => '!=', VALUE => "CommentEmailRecord", ENTRYAGGREGATOR => 'AND' ); } } else { $transactions->Limit( SUBCLAUSE => 'acl', FIELD => 'id', VALUE => 0, ENTRYAGGREGATOR => 'AND' ); } return ($transactions); } =head2 TransactionCustomFields Returns the custom fields that transactions on tickets will have. =cut sub TransactionCustomFields { my $self = shift; my $cfs = $self->QueueObj->TicketTransactionCustomFields; $cfs->SetContextObject( $self ); return $cfs; } =head2 LoadCustomFieldByIdentifier Finds and returns the custom field of the given name for the ticket, overriding L to look for queue-specific CFs before global ones. =cut sub LoadCustomFieldByIdentifier { my $self = shift; my $field = shift; return $self->SUPER::LoadCustomFieldByIdentifier($field) if ref $field or $field =~ /^\d+$/; my $cf = RT::CustomField->new( $self->CurrentUser ); $cf->SetContextObject( $self ); $cf->LoadByName( Name => $field, LookupType => $self->CustomFieldLookupType, ObjectId => $self->Queue, IncludeGlobal => 1, ); return $cf; } =head2 CustomFieldLookupType Returns the RT::Ticket lookup type, which can be passed to RT::CustomField->Create() via the 'LookupType' hash key. =cut sub CustomFieldLookupType { "RT::Queue-RT::Ticket"; } =head2 ACLEquivalenceObjects This method returns a list of objects for which a user's rights also apply to this ticket. Generally, this is only the ticket's queue, but some RT extensions may make other objects available too. This method is called from L. =cut sub ACLEquivalenceObjects { my $self = shift; return $self->QueueObj; } =head2 ModifyLinkRight =cut sub ModifyLinkRight { "ModifyTicket" } =head2 Forward Transaction => undef, To => '', Cc => '', Bcc => '' Forwards transaction with all attachments as 'message/rfc822'. =cut sub Forward { my $self = shift; my %args = ( Transaction => undef, Subject => '', To => '', Cc => '', Bcc => '', Content => '', ContentType => 'text/plain', @_ ); unless ( $self->CurrentUserHasRight('ForwardMessage') ) { return ( 0, $self->loc("Permission Denied") ); } $args{$_} = join ", ", map { $_->format } RT::EmailParser->ParseEmailAddress( $args{$_} || '' ) for qw(To Cc Bcc); return (0, $self->loc("Can't forward: no valid email addresses specified") ) unless grep {length $args{$_}} qw/To Cc Bcc/; my $mime = MIME::Entity->build( Type => $args{ContentType}, Data => Encode::encode( "UTF-8", $args{Content} ), ); $mime->head->replace( $_ => Encode::encode('UTF-8',$args{$_} ) ) for grep defined $args{$_}, qw(Subject To Cc Bcc); $mime->head->replace( From => Encode::encode( 'UTF-8', RT::Interface::Email::GetForwardFrom( Transaction => $args{Transaction}, Ticket => $self, ) ) ); for my $argument (qw(Encrypt Sign)) { if ( defined $args{ $argument } ) { $mime->head->replace( "X-RT-$argument" => $args{$argument} ? 1 : 0 ); } } my ( $ret, $msg ) = $self->_NewTransaction( $args{Transaction} ? ( Type => 'Forward Transaction', Field => $args{Transaction}->id, ) : ( Type => 'Forward Ticket', Field => $self->id, ), Data => join( ', ', grep { length } $args{To}, $args{Cc}, $args{Bcc} ), MIMEObj => $mime, ); unless ($ret) { $RT::Logger->error("Failed to create transaction: $msg"); } return ( $ret, $self->loc('Message recorded') ); } =head2 CurrentUserCanSeeTime Returns true if the current user can see time worked, estimated, left =cut sub CurrentUserCanSeeTime { my $self = shift; return $self->CurrentUser->Privileged || !RT->Config->Get('HideTimeFieldsFromUnprivilegedUsers'); } sub Table {'Tickets'} =head2 id Returns the current value of id. (In the database, id is stored as int(11).) =cut =head2 EffectiveId Returns the current value of EffectiveId. (In the database, EffectiveId is stored as int(11).) =head2 SetEffectiveId VALUE Set EffectiveId to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, EffectiveId will be stored as a int(11).) =cut =head2 Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) =head2 SetQueue VALUE Set Queue to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Queue will be stored as a int(11).) =cut =head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(16).) =head2 SetType VALUE Set Type to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Type will be stored as a varchar(16).) =cut =head2 Owner Returns the current value of Owner. (In the database, Owner is stored as int(11).) =head2 SetOwner VALUE Set Owner to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Owner will be stored as a int(11).) =cut =head2 Subject Returns the current value of Subject. (In the database, Subject is stored as varchar(200).) =head2 SetSubject VALUE Set Subject to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Subject will be stored as a varchar(200).) =cut =head2 InitialPriority Returns the current value of InitialPriority. (In the database, InitialPriority is stored as int(11).) =head2 SetInitialPriority VALUE Set InitialPriority to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, InitialPriority will be stored as a int(11).) =cut =head2 FinalPriority Returns the current value of FinalPriority. (In the database, FinalPriority is stored as int(11).) =head2 SetFinalPriority VALUE Set FinalPriority to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, FinalPriority will be stored as a int(11).) =cut =head2 Priority Returns the current value of Priority. (In the database, Priority is stored as int(11).) =head2 SetPriority VALUE Set Priority to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Priority will be stored as a int(11).) =cut =head2 TimeEstimated Returns the current value of TimeEstimated. (In the database, TimeEstimated is stored as int(11).) =head2 SetTimeEstimated VALUE Set TimeEstimated to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, TimeEstimated will be stored as a int(11).) =cut =head2 TimeWorked Returns the current value of TimeWorked. (In the database, TimeWorked is stored as int(11).) =head2 SetTimeWorked VALUE Set TimeWorked to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, TimeWorked will be stored as a int(11).) =cut =head2 Status Returns the current value of Status. (In the database, Status is stored as varchar(64).) =head2 SetStatus VALUE Set Status to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Status will be stored as a varchar(64).) =cut =head2 TimeLeft Returns the current value of TimeLeft. (In the database, TimeLeft is stored as int(11).) =head2 SetTimeLeft VALUE Set TimeLeft to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, TimeLeft will be stored as a int(11).) =cut =head2 Told Returns the current value of Told. (In the database, Told is stored as datetime.) =head2 SetTold VALUE Set Told to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Told will be stored as a datetime.) =cut =head2 Starts Returns the current value of Starts. (In the database, Starts is stored as datetime.) =head2 SetStarts VALUE Set Starts to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Starts will be stored as a datetime.) =cut =head2 Started Returns the current value of Started. (In the database, Started is stored as datetime.) =head2 SetStarted VALUE Set Started to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Started will be stored as a datetime.) =cut =head2 Due Returns the current value of Due. (In the database, Due is stored as datetime.) =head2 SetDue VALUE Set Due to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Due will be stored as a datetime.) =cut =head2 Resolved Returns the current value of Resolved. (In the database, Resolved is stored as datetime.) =head2 SetResolved VALUE Set Resolved to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Resolved will be stored as a datetime.) =cut =head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) =cut =head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) =cut =head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) =cut =head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) =cut sub _CoreAccessible { { id => {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, EffectiveId => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, IsMerged => {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => undef}, Queue => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Type => {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Owner => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Subject => {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => '[no subject]'}, InitialPriority => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, FinalPriority => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Priority => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, TimeEstimated => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, TimeWorked => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Status => {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, SLA => {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, TimeLeft => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Told => {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Starts => {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Started => {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Due => {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Resolved => {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Creator => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; sub FindDependencies { my $self = shift; my ($walker, $deps) = @_; $self->SUPER::FindDependencies($walker, $deps); # Links my $links = RT::Links->new( $self->CurrentUser ); $links->Limit( SUBCLAUSE => "either", FIELD => $_, VALUE => $self->URI, ENTRYAGGREGATOR => 'OR' ) for qw/Base Target/; $deps->Add( in => $links ); # Tickets which were merged in my $objs = RT::Tickets->new( $self->CurrentUser ); $objs->Limit( FIELD => 'EffectiveId', VALUE => $self->Id ); $objs->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $self->Id ); $deps->Add( in => $objs ); # Ticket role groups( Owner, Requestors, Cc, AdminCc ) $objs = RT::Groups->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Domain', VALUE => 'RT::Ticket-Role', CASESENSITIVE => 0 ); $objs->Limit( FIELD => 'Instance', VALUE => $self->Id ); $deps->Add( in => $objs ); # Queue $deps->Add( out => $self->QueueObj ); # Owner $deps->Add( out => $self->OwnerObj ); } sub __DependsOn { my $self = shift; my %args = ( Shredder => undef, Dependencies => undef, @_, ); my $deps = $args{'Dependencies'}; my $list = []; # Tickets which were merged in my $objs = RT::Tickets->new( $self->CurrentUser ); $objs->{'allow_deleted_search'} = 1; $objs->Limit( FIELD => 'EffectiveId', VALUE => $self->Id ); $objs->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $self->Id ); push( @$list, $objs ); # Ticket role groups( Owner, Requestors, Cc, AdminCc ) $objs = RT::Groups->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Domain', VALUE => 'RT::Ticket-Role', CASESENSITIVE => 0 ); $objs->Limit( FIELD => 'Instance', VALUE => $self->Id ); push( @$list, $objs ); #TODO: Users, Queues if we wish export tool $deps->_PushDependencies( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON, TargetObjects => $list, Shredder => $args{'Shredder'} ); return $self->SUPER::__DependsOn( %args ); } sub Serialize { my $self = shift; my %args = (@_); my %store = $self->SUPER::Serialize(@_); my $obj = RT::Ticket->new( RT->SystemUser ); $obj->Load( $store{EffectiveId} ); $store{EffectiveId} = \($obj->UID); return %store; } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Pod/000755 000765 000024 00000000000 13437510132 014632 5ustar00sunnavystaff000000 000000 rt-4.4.4/lib/RT/CachedGroupMember.pm000644 000765 000024 00000032211 13437510132 017761 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} package RT::CachedGroupMember; use strict; use warnings; use base 'RT::Record'; sub Table {'CachedGroupMembers'} =head1 NAME RT::CachedGroupMember =head1 SYNOPSIS use RT::CachedGroupMember; =head1 DESCRIPTION =head1 METHODS =cut # {{ Create =head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: 'Group' is the "top level" group we're building the cache for. This is an RT::Principal object 'Member' is the RT::Principal of the user or group we're adding to the cache. 'ImmediateParent' is the RT::Principal of the group that this principal belongs to to get here int(11) 'Via' is an internal reference to CachedGroupMembers->Id of the "parent" record of this cached group member. It should be empty if this member is a "direct" member of this group. (In that case, it will be set to this cached group member's id after creation) This routine should _only_ be called by GroupMember->Create =cut sub Create { my $self = shift; my %args = ( Group => '', Member => '', ImmediateParent => '', Via => '0', Disabled => '0', @_ ); unless ( $args{'Member'} && UNIVERSAL::isa( $args{'Member'}, 'RT::Principal' ) && $args{'Member'}->Id ) { $RT::Logger->debug("$self->Create: bogus Member argument"); } unless ( $args{'Group'} && UNIVERSAL::isa( $args{'Group'}, 'RT::Principal' ) && $args{'Group'}->Id ) { $RT::Logger->debug("$self->Create: bogus Group argument"); } unless ( $args{'ImmediateParent'} && UNIVERSAL::isa( $args{'ImmediateParent'}, 'RT::Principal' ) && $args{'ImmediateParent'}->Id ) { $RT::Logger->debug("$self->Create: bogus ImmediateParent argument"); } # If the parent group for this group member is disabled, it's disabled too, along with all its children if ( $args{'ImmediateParent'}->Disabled ) { $args{'Disabled'} = $args{'ImmediateParent'}->Disabled; } my $id = $self->SUPER::Create( GroupId => $args{'Group'}->Id, MemberId => $args{'Member'}->Id, ImmediateParentId => $args{'ImmediateParent'}->Id, Disabled => $args{'Disabled'}, Via => $args{'Via'}, ); unless ($id) { $RT::Logger->warning( "Couldn't create " . $args{'Member'} . " as a cached member of " . $args{'Group'}->Id . " via " . $args{'Via'} ); return (undef); #this will percolate up and bail out of the transaction } if ( $self->__Value('Via') == 0 ) { my ( $vid, $vmsg ) = $self->__Set( Field => 'Via', Value => $id ); unless ($vid) { $RT::Logger->warning( "Due to a via error, couldn't create " . $args{'Member'} . " as a cached member of " . $args{'Group'}->Id . " via " . $args{'Via'} ); return (undef) ; #this will percolate up and bail out of the transaction } } return $id if $args{'Member'}->id == $args{'Group'}->id; if ( $args{'Member'}->IsGroup() ) { my $GroupMembers = $args{'Member'}->Object->MembersObj(); while ( my $member = $GroupMembers->Next() ) { my $cached_member = RT::CachedGroupMember->new( $self->CurrentUser ); my $c_id = $cached_member->Create( Group => $args{'Group'}, Member => $member->MemberObj, ImmediateParent => $args{'Member'}, Disabled => $args{'Disabled'}, Via => $id ); unless ($c_id) { return (undef); #percolate the error upwards. # the caller will log an error and abort the transaction } } } return ($id); } =head2 Delete Deletes the current CachedGroupMember from the group it's in and cascades the delete to all submembers. =cut sub Delete { my $self = shift; my $member = $self->MemberObj(); if ( $member->IsGroup ) { my $deletable = RT::CachedGroupMembers->new( $self->CurrentUser ); $deletable->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $self->id ); $deletable->Limit( FIELD => 'Via', OPERATOR => '=', VALUE => $self->id ); while ( my $kid = $deletable->Next ) { my ($ok, $msg) = $kid->Delete(); unless ($ok) { $RT::Logger->error( "Couldn't delete CachedGroupMember " . $kid->Id ); return ($ok, $msg); } } } my ($ok, $msg) = $self->SUPER::Delete(); $RT::Logger->error( "Couldn't delete CachedGroupMember " . $self->Id ) unless $ok; return ($ok, $msg); } =head2 SetDisabled SetDisableds the current CachedGroupMember from the group it's in and cascades the SetDisabled to all submembers. This routine could be completely excised if mysql supported foreign keys with cascading SetDisableds. =cut sub SetDisabled { my $self = shift; my $val = shift; # if it's already disabled, we're good. return (1) if ( $self->__Value('Disabled') == $val); my $err = $self->_Set(Field => 'Disabled', Value => $val); my ($retval, $msg) = $err->as_array(); unless ($retval) { $RT::Logger->error( "Couldn't SetDisabled CachedGroupMember " . $self->Id .": $msg"); return ($err); } my $member = $self->MemberObj(); if ( $member->IsGroup ) { my $deletable = RT::CachedGroupMembers->new( $self->CurrentUser ); $deletable->Limit( FIELD => 'Via', OPERATOR => '=', VALUE => $self->id ); $deletable->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $self->id ); while ( my $kid = $deletable->Next ) { my $kid_err = $kid->SetDisabled($val ); unless ($kid_err) { $RT::Logger->error( "Couldn't SetDisabled CachedGroupMember " . $kid->Id ); return ($kid_err); } } } return ($err); } =head2 GroupObj Returns the RT::Principal object for this group Group =cut sub GroupObj { my $self = shift; my $principal = RT::Principal->new( $self->CurrentUser ); $principal->Load( $self->GroupId ); return ($principal); } =head2 ImmediateParentObj Returns the RT::Principal object for this group ImmediateParent =cut sub ImmediateParentObj { my $self = shift; my $principal = RT::Principal->new( $self->CurrentUser ); $principal->Load( $self->ImmediateParentId ); return ($principal); } =head2 MemberObj Returns the RT::Principal object for this group member =cut sub MemberObj { my $self = shift; my $principal = RT::Principal->new( $self->CurrentUser ); $principal->Load( $self->MemberId ); return ($principal); } # }}} =head2 id Returns the current value of id. (In the database, id is stored as int(11).) =cut =head2 GroupId Returns the current value of GroupId. (In the database, GroupId is stored as int(11).) =head2 SetGroupId VALUE Set GroupId to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, GroupId will be stored as a int(11).) =cut =head2 MemberId Returns the current value of MemberId. (In the database, MemberId is stored as int(11).) =head2 SetMemberId VALUE Set MemberId to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, MemberId will be stored as a int(11).) =cut =head2 Via Returns the current value of Via. (In the database, Via is stored as int(11).) =head2 SetVia VALUE Set Via to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Via will be stored as a int(11).) =cut =head2 ImmediateParentId Returns the current value of ImmediateParentId. (In the database, ImmediateParentId is stored as int(11).) =head2 SetImmediateParentId VALUE Set ImmediateParentId to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, ImmediateParentId will be stored as a int(11).) =cut =head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) =head2 SetDisabled VALUE Set Disabled to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Disabled will be stored as a smallint(6).) =cut sub _CoreAccessible { { id => {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, GroupId => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, MemberId => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Via => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, ImmediateParentId => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Disabled => {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; sub Serialize { die "CachedGroupMembers should never be serialized"; } sub __DependsOn { my $self = shift; my %args = ( Shredder => undef, Dependencies => undef, @_, ); my $deps = $args{'Dependencies'}; my $list = []; # deep memebership my $objs = RT::CachedGroupMembers->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Via', VALUE => $self->Id ); $objs->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $self->Id ); push( @$list, $objs ); # principal lost group membership and lost some rights which he could delegate to # some body # XXX: Here is problem cause HasMemberRecursively would return true allways # cause we didn't delete anything yet. :( # if pricipal is not member anymore(could be via other groups) then proceed if( $self->GroupObj->Object->HasMemberRecursively( $self->MemberObj ) ) { my $acl = RT::ACL->new( $self->CurrentUser ); $acl->LimitToPrincipal( Id => $self->GroupId ); } $deps->_PushDependencies( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON, TargetObjects => $list, Shredder => $args{'Shredder'} ); return $self->SUPER::__DependsOn( %args ); } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/User.pm000644 000765 000024 00000245346 13437510132 015402 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} =head1 NAME RT::User - RT User object =head1 SYNOPSIS use RT::User; =head1 DESCRIPTION =head1 METHODS =cut package RT::User; use strict; use warnings; use Scalar::Util qw(blessed); use base 'RT::Record'; sub Table {'Users'} use Digest::SHA; use Digest::MD5; use Crypt::Eksblowfish::Bcrypt qw(); use RT::Principals; use RT::ACE; use RT::Interface::Email; use Text::Password::Pronounceable; use RT::Util; sub _OverlayAccessible { { Name => { public => 1, admin => 1 }, # loc_left_pair Password => { read => 0 }, EmailAddress => { public => 1 }, # loc_left_pair Organization => { public => 1, admin => 1 }, # loc_left_pair RealName => { public => 1 }, # loc_left_pair NickName => { public => 1 }, # loc_left_pair Lang => { public => 1 }, # loc_left_pair Gecos => { public => 1, admin => 1 }, # loc_left_pair SMIMECertificate => { public => 1, admin => 1 }, # loc_left_pair City => { public => 1 }, # loc_left_pair Country => { public => 1 }, # loc_left_pair Timezone => { public => 1 }, # loc_left_pair } } =head2 Create { PARAMHASH } =cut sub Create { my $self = shift; my %args = ( Privileged => 0, Disabled => 0, EmailAddress => '', _RecordTransaction => 1, @_ # get the real argumentlist ); # remove the value so it does not cripple SUPER::Create my $record_transaction = delete $args{'_RecordTransaction'}; #Check the ACL unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return ( 0, $self->loc('Permission Denied') ); } unless ($self->CanonicalizeUserInfo(\%args)) { return ( 0, $self->loc("Could not set user info") ); } $args{'EmailAddress'} = $self->CanonicalizeEmailAddress($args{'EmailAddress'}); # if the user doesn't have a name defined, set it to the email address $args{'Name'} = $args{'EmailAddress'} unless ($args{'Name'}); my $privileged = delete $args{'Privileged'}; if ($args{'CryptedPassword'} ) { $args{'Password'} = $args{'CryptedPassword'}; delete $args{'CryptedPassword'}; } elsif ( !$args{'Password'} ) { $args{'Password'} = '*NO-PASSWORD*'; } else { my ($ok, $msg) = $self->ValidatePassword($args{'Password'}); return ($ok, $msg) if !$ok; $args{'Password'} = $self->_GeneratePassword($args{'Password'}); } #TODO Specify some sensible defaults. unless ( $args{'Name'} ) { return ( 0, $self->loc("Must specify 'Name' attribute") ); } my ( $val, $msg ) = $self->ValidateName( $args{'Name'} ); return ( 0, $msg ) unless $val; ( $val, $msg ) = $self->ValidateEmailAddress( $args{'EmailAddress'} ); return ( 0, $msg ) unless ($val); $RT::Handle->BeginTransaction(); # Groups deal with principal ids, rather than user ids. # When creating this user, set up a principal Id for it. my $principal = RT::Principal->new($self->CurrentUser); my $principal_id = $principal->Create(PrincipalType => 'User', Disabled => $args{'Disabled'}); # If we couldn't create a principal Id, get the fuck out. unless ($principal_id) { $RT::Handle->Rollback(); $RT::Logger->crit("Couldn't create a Principal on new user create."); $RT::Logger->crit("Strange things are afoot at the circle K"); return ( 0, $self->loc('Could not create user') ); } delete $args{'Disabled'}; $self->SUPER::Create(id => $principal_id , %args); my $id = $self->Id; #If the create failed. unless ($id) { $RT::Handle->Rollback(); $RT::Logger->error("Could not create a new user - " .join('-', %args)); return ( 0, $self->loc('Could not create user') ); } my $aclstash = RT::Group->new($self->CurrentUser); my $stash_id = $aclstash->_CreateACLEquivalenceGroup($principal); unless ($stash_id) { $RT::Handle->Rollback(); $RT::Logger->crit("Couldn't stash the user in groupmembers"); return ( 0, $self->loc('Could not create user') ); } my $everyone = RT::Group->new($self->CurrentUser); $everyone->LoadSystemInternalGroup('Everyone'); unless ($everyone->id) { $RT::Logger->crit("Could not load Everyone group on user creation."); $RT::Handle->Rollback(); return ( 0, $self->loc('Could not create user') ); } my ($everyone_id, $everyone_msg) = $everyone->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId); unless ($everyone_id) { $RT::Logger->crit("Could not add user to Everyone group on user creation."); $RT::Logger->crit($everyone_msg); $RT::Handle->Rollback(); return ( 0, $self->loc('Could not create user') ); } my $access_class = RT::Group->new($self->CurrentUser); if ($privileged) { $access_class->LoadSystemInternalGroup('Privileged'); } else { $access_class->LoadSystemInternalGroup('Unprivileged'); } unless ($access_class->id) { $RT::Logger->crit("Could not load Privileged or Unprivileged group on user creation"); $RT::Handle->Rollback(); return ( 0, $self->loc('Could not create user') ); } my ($ac_id, $ac_msg) = $access_class->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId); unless ($ac_id) { $RT::Logger->crit("Could not add user to Privileged or Unprivileged group on user creation. Aborted"); $RT::Logger->crit($ac_msg); $RT::Handle->Rollback(); return ( 0, $self->loc('Could not create user') ); } if ( $record_transaction ) { $self->_NewTransaction( Type => "Create" ); } $RT::Handle->Commit; return ( $id, $self->loc('User created') ); } =head2 ValidateName STRING Returns either (0, "failure reason") or 1 depending on whether the given name is valid. =cut sub ValidateName { my $self = shift; my $name = shift; return ( 0, $self->loc('empty name') ) unless defined $name && length $name; my $TempUser = RT::User->new( RT->SystemUser ); $TempUser->Load($name); if ( $TempUser->id && ( !$self->id || $TempUser->id != $self->id ) ) { return ( 0, $self->loc('Name in use') ); } else { return 1; } } =head2 GenerateAnonymousName Generate a random username proceeded by 'anon_' and then a random string, Returns the AnonymousName string. =cut sub GenerateAnonymousName { my $self = shift; my $name; do { $name = 'anon_' . Digest::MD5::md5_hex( time . {} . rand() ); } while !$self->ValidateName($name); return $name; } =head2 AnonymizeUser { ClearCustomfields => 1|0 } Remove all personal identifying information on the user record, but keep the user record alive. Additionally replace the username with an anonymous name. Submit ClearCustomfields in a paramhash, if true all customfield values applied to the user record will be cleared. =cut sub AnonymizeUser { my $self = shift; my %args = ( ClearCustomFields => undef, @_, ); my %skip_clear = map { $_ => 1 } qw/Name Password AuthToken/; my @user_identifying_info = grep { !$skip_clear{$_} && $self->_Accessible( $_, 'write' ) } keys %{ $self->_CoreAccessible() }; $RT::Handle->BeginTransaction(); # Remove identifying user information from record foreach my $attr (@user_identifying_info) { if ( defined $self->$attr && length $self->$attr ) { my $method = 'Set' . $attr; my ( $ret, $msg ) = $self->$method(''); unless ($ret) { RT::Logger->error( "Could not clear user $attr: " . $msg ); $RT::Handle->Rollback(); return ( $ret, $self->loc( "Couldn't clear user [_1]", $self->loc($attr) ) ); } } } # Do not do anything if password is already unset if ( $self->HasPassword ) { my ( $ret, $msg ) = $self->_Set( Field => 'Password', Value => '*NO-PASSWORD*' ); unless ($ret) { RT::Logger->error("Could not clear user password: $msg"); $RT::Handle->Rollback(); return ( $ret, "Could not clear user Password" ); } } # Generate the random anon username my ( $ret, $msg ) = $self->SetName( $self->GenerateAnonymousName ); unless ($ret) { RT::Logger->error( "Could not anonymize user Name: " . $msg ); $RT::Handle->Rollback(); return ( $ret, $self->loc( "Could not anonymize user [_1]", $self->loc('Name') ) ); } # Clear AuthToken if ( $self->_Value('AuthToken') ) { my ( $ret, $msg ) = $self->SetAuthToken(''); unless ($ret) { RT::Logger->error( "Could not clear user AuthToken: " . $msg ); $RT::Handle->Rollback(); return ( $ret, $self->loc( "Couldn't clear user [_1]", $self->loc('AuthToken') ) ); } } # Remove user customfield values if ( $args{'ClearCustomFields'} ) { my $cfs = RT::CustomFields->new( RT->SystemUser ); $cfs->LimitToLookupType('RT::User'); while ( my $cf = $cfs->Next ) { my $ocfvs = $self->CustomFieldValues($cf); while ( my $ocfv = $ocfvs->Next ) { my ( $ret, $msg ) = $ocfv->Delete; unless ($ret) { RT::Logger->error( "Could not delete ocfv #" . $ocfv->id . ": $msg" ); $RT::Handle->Rollback(); return ( $ret, $self->loc( "Could not clear user custom field [_1]", $cf->Name ) ); } } } } $RT::Handle->Commit(); return ( 1, $self->loc('User successfully anonymized') ); } =head2 ValidatePassword STRING Returns either (0, "failure reason") or 1 depending on whether the given password is valid. =cut sub ValidatePassword { my $self = shift; my $password = shift; if ( length($password) < RT->Config->Get('MinimumPasswordLength') ) { return ( 0, $self->loc("Password needs to be at least [quant,_1,character,characters] long", RT->Config->Get('MinimumPasswordLength')) ); } return 1; } =head2 SetPrivileged BOOL If passed a true value, makes this user a member of the "Privileged" PseudoGroup. Otherwise, makes this user a member of the "Unprivileged" pseudogroup. Returns a standard RT tuple of (val, msg); =cut sub SetPrivileged { my $self = shift; my $val = shift; #Check the ACL unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return ( 0, $self->loc('Permission Denied') ); } $self->_SetPrivileged($val); } sub _SetPrivileged { my $self = shift; my $val = shift; my $priv = RT::Group->new($self->CurrentUser); $priv->LoadSystemInternalGroup('Privileged'); unless ($priv->Id) { $RT::Logger->crit("Could not find Privileged pseudogroup"); return(0,$self->loc("Failed to find 'Privileged' users pseudogroup.")); } my $unpriv = RT::Group->new($self->CurrentUser); $unpriv->LoadSystemInternalGroup('Unprivileged'); unless ($unpriv->Id) { $RT::Logger->crit("Could not find unprivileged pseudogroup"); return(0,$self->loc("Failed to find 'Unprivileged' users pseudogroup")); } my $principal = $self->PrincipalId; if ($val) { if ($priv->HasMember($principal)) { #$RT::Logger->debug("That user is already privileged"); return (0,$self->loc("That user is already privileged")); } if ($unpriv->HasMember($principal)) { $unpriv->_DeleteMember($principal); } else { # if we had layered transactions, life would be good # sadly, we have to just go ahead, even if something # bogus happened $RT::Logger->crit("User ".$self->Id." is neither privileged nor ". "unprivileged. something is drastically wrong."); } my ($status, $msg) = $priv->_AddMember( InsideTransaction => 1, PrincipalId => $principal); if ($status) { $self->_NewTransaction( Type => 'Set', Field => 'Privileged', NewValue => 1, OldValue => 0, ); return (1, $self->loc("That user is now privileged")); } else { return (0, $msg); } } else { if ($unpriv->HasMember($principal)) { #$RT::Logger->debug("That user is already unprivileged"); return (0,$self->loc("That user is already unprivileged")); } if ($priv->HasMember($principal)) { $priv->_DeleteMember( $principal ); } else { # if we had layered transactions, life would be good # sadly, we have to just go ahead, even if something # bogus happened $RT::Logger->crit("User ".$self->Id." is neither privileged nor ". "unprivileged. something is drastically wrong."); } my ($status, $msg) = $unpriv->_AddMember( InsideTransaction => 1, PrincipalId => $principal); if ($status) { $self->_NewTransaction( Type => 'Set', Field => 'Privileged', NewValue => 0, OldValue => 1, ); return (1, $self->loc("That user is now unprivileged")); } else { return (0, $msg); } } } =head2 Privileged Returns true if this user is privileged. Returns undef otherwise. =cut sub Privileged { my $self = shift; if ( RT->PrivilegedUsers->HasMember( $self->id ) ) { return(1); } else { return(undef); } } #create a user without validating _any_ data. #To be used only on database init. # We can't localize here because it's before we _have_ a loc framework sub _BootstrapCreate { my $self = shift; my %args = (@_); $args{'Password'} = '*NO-PASSWORD*'; $RT::Handle->BeginTransaction(); # Groups deal with principal ids, rather than user ids. # When creating this user, set up a principal Id for it. my $principal = RT::Principal->new($self->CurrentUser); my $principal_id = $principal->Create(PrincipalType => 'User'); # If we couldn't create a principal Id, get the fuck out. unless ($principal_id) { $RT::Handle->Rollback(); $RT::Logger->crit("Couldn't create a Principal on new user create. Strange things are afoot at the circle K"); return ( 0, 'Could not create user' ); } $self->SUPER::Create(id => $principal_id, %args); my $id = $self->Id; #If the create failed. unless ($id) { $RT::Handle->Rollback(); return ( 0, 'Could not create user' ) ; #never loc this } my $aclstash = RT::Group->new($self->CurrentUser); my $stash_id = $aclstash->_CreateACLEquivalenceGroup($principal); unless ($stash_id) { $RT::Handle->Rollback(); $RT::Logger->crit("Couldn't stash the user in groupmembers"); return ( 0, $self->loc('Could not create user') ); } $RT::Handle->Commit(); return ( $id, 'User created' ); } sub Delete { my $self = shift; return ( 0, $self->loc('Deleting this object would violate referential integrity') ); } =head2 Load Load a user object from the database. Takes a single argument. If the argument is numerical, load by the column 'id'. If a user object or its subclass passed then loads the same user by id. Otherwise, load by the "Name" column which is the user's textual username. =cut sub Load { my $self = shift; my $identifier = shift || return undef; if ( $identifier !~ /\D/ ) { return $self->SUPER::LoadById( $identifier ); } elsif ( UNIVERSAL::isa( $identifier, 'RT::User' ) ) { return $self->SUPER::LoadById( $identifier->Id ); } else { return $self->LoadByCol( "Name", $identifier ); } } =head2 LoadByEmail Tries to load this user object from the database by the user's email address. =cut sub LoadByEmail { my $self = shift; my $address = shift; # Never load an empty address as an email address. unless ($address) { return (undef); } $address = $self->CanonicalizeEmailAddress($address); #$RT::Logger->debug("Trying to load an email address: $address"); return $self->LoadByCol( "EmailAddress", $address ); } =head2 LoadOrCreateByEmail ADDRESS Attempts to find a user who has the provided email address. If that fails, creates an unprivileged user with the provided email address and loads them. Address can be provided either as L object or string which is parsed using the module. Returns a tuple of the user's id and a status message. 0 will be returned in place of the user's id in case of failure. =cut sub LoadOrCreateByEmail { my $self = shift; my %create; if (@_ > 1) { %create = (@_); } elsif ( UNIVERSAL::isa( $_[0] => 'Email::Address' ) ) { @create{'EmailAddress','RealName'} = ($_[0]->address, $_[0]->phrase); } else { my ($addr) = RT::EmailParser->ParseEmailAddress( $_[0] ); @create{'EmailAddress','RealName'} = $addr ? ($addr->address, $addr->phrase) : (undef, undef); } $self->LoadByEmail( $create{EmailAddress} ); $self->Load( $create{EmailAddress} ) unless $self->Id; return wantarray ? ($self->Id, $self->loc("User loaded")) : $self->Id if $self->Id; $create{Name} ||= $create{EmailAddress}; $create{Privileged} ||= 0; $create{Comments} //= 'Autocreated when added as a watcher'; my ($val, $message) = $self->Create( %create ); return wantarray ? ($self->Id, $self->loc("User loaded")) : $self->Id if $self->Id; # Deal with the race condition of two account creations at once $self->LoadByEmail( $create{EmailAddress} ); unless ( $self->Id ) { sleep 5; $self->LoadByEmail( $create{EmailAddress} ); } if ( $self->Id ) { $RT::Logger->error("Recovered from creation failure due to race condition"); return wantarray ? ($self->Id, $self->loc("User loaded")) : $self->Id; } else { $RT::Logger->crit("Failed to create user $create{EmailAddress}: $message"); return wantarray ? (0, $message) : 0 unless $self->id; } } =head2 ValidateEmailAddress ADDRESS Returns true if the email address entered is not in use by another user or is undef or ''. Returns false if it's in use. =cut sub ValidateEmailAddress { my $self = shift; my $Value = shift; # if the email address is null, it's always valid return (1) if ( !$Value || $Value eq "" ); if ( RT->Config->Get('ValidateUserEmailAddresses') ) { # We only allow one valid email address my @addresses = Email::Address->parse($Value); return ( 0, $self->loc('Invalid syntax for email address') ) unless ( ( scalar (@addresses) == 1 ) && ( $addresses[0]->address ) ); } my $TempUser = RT::User->new(RT->SystemUser); $TempUser->LoadByEmail($Value); if ( $TempUser->id && ( !$self->id || $TempUser->id != $self->id ) ) { # if we found a user with that address # it's invalid to set this user's address to it return ( 0, $self->loc('Email address in use') ); } else { #it's a valid email address return (1); } } =head2 SetName Check to make sure someone else isn't using this name already =cut sub SetName { my $self = shift; my $Value = shift; my ( $val, $message ) = $self->ValidateName($Value); if ($val) { return $self->_Set( Field => 'Name', Value => $Value ); } else { return ( 0, $message ); } } =head2 SetEmailAddress Check to make sure someone else isn't using this email address already so that a better email address can be returned =cut sub SetEmailAddress { my $self = shift; my $Value = shift; $Value = '' unless defined $Value; my ($val, $message) = $self->ValidateEmailAddress( $Value ); if ( $val ) { return $self->_Set( Field => 'EmailAddress', Value => $Value ); } else { return ( 0, $message ) } } =head2 EmailFrequency Takes optional Ticket argument in paramhash. Returns a string, suitable for localization, describing any notable properties about email delivery to the user. This includes lack of email address, ticket-level squelching (if C is provided in the paramhash), or user email delivery preferences. Returns the empty string if there are no notable properties. =cut sub EmailFrequency { my $self = shift; my %args = ( Ticket => undef, @_ ); return '' unless $self->id && $self->id != RT->Nobody->id && $self->id != RT->SystemUser->id; return 'no email address set' # loc unless my $email = $self->EmailAddress; return 'email disabled for ticket' # loc if $args{'Ticket'} && grep lc $email eq lc $_->Content, $args{'Ticket'}->SquelchMailTo; my $frequency = RT->Config->Get( 'EmailFrequency', $self ) || ''; return 'receives daily digests' # loc if $frequency =~ /daily/i; return 'receives weekly digests' # loc if $frequency =~ /weekly/i; return 'email delivery suspended' # loc if $frequency =~ /suspend/i; return ''; } =head2 CanonicalizeEmailAddress ADDRESS CanonicalizeEmailAddress converts email addresses into canonical form. it takes one email address in and returns the proper canonical form. You can dump whatever your proper local config is in here. Note that it may be called as a static method; in this case the first argument is class name not an object. =cut sub CanonicalizeEmailAddress { my $self = shift; my $email = shift; # Example: the following rule would treat all email # coming from a subdomain as coming from second level domain # foo.com if ( my $match = RT->Config->Get('CanonicalizeEmailAddressMatch') and my $replace = RT->Config->Get('CanonicalizeEmailAddressReplace') ) { $email =~ s/$match/$replace/gi; } return ($email); } =head2 CanonicalizeUserInfo HASH of ARGS CanonicalizeUserInfo can convert all User->Create options. it takes a hashref of all the params sent to User->Create and returns that same hash, by default nothing is done. If external auth is enabled CanonicalizeUserInfoFromExternalAuth is called. This function is intended to allow users to have their info looked up via an outside source and modified upon creation. =cut sub CanonicalizeUserInfo { my $self = shift; my $args = shift; if ( my $config = RT->Config->Get('ExternalInfoPriority') ) { if ( ref $config && @$config ) { return $self->CanonicalizeUserInfoFromExternalAuth( $args ); } } return 1; # fall back to old RT::User::CanonicalizeUserInfo } =head2 CanonicalizeUserInfoFromExternalAuth Convert an ldap entry in to fields that can be used by RT as specified by the C configuration in the C<$ExternalSettings> variable for L. =cut sub CanonicalizeUserInfoFromExternalAuth { # Careful, this $args hashref was given to RT::User::CanonicalizeUserInfo and # then transparently passed on to this function. The whole purpose is to update # the original hash as whatever passed it to RT::User is expecting to continue its # code with an update args hash. my $UserObj = shift; my $args = shift; my $found = 0; my %params = (Name => undef, EmailAddress => undef, RealName => undef); $RT::Logger->debug( (caller(0))[3], "called by", caller, "with:", join(", ", map {sprintf("%s: %s", $_, ($args->{$_} ? $args->{$_} : ''))} sort(keys(%$args)))); # Get the list of defined external services my @info_services = @{ RT->Config->Get('ExternalInfoPriority') }; # For each external service... foreach my $service (@info_services) { $RT::Logger->debug( "Attempting to get user info using this external service:", $service); # Get the config for the service so that we know what attrs we can canonicalize my $config = RT->Config->Get('ExternalSettings')->{$service}; # For each attr we've been told to canonicalize in the match list foreach my $rt_attr (@{$config->{'attr_match_list'}}) { # Jump to the next attr in $args if this one isn't in the attr_match_list $RT::Logger->debug( "Attempting to use this canonicalization key:",$rt_attr); unless( ($args->{$rt_attr} // '') =~ /\S/ ) { $RT::Logger->debug("This attribute (", $rt_attr, ") is null or incorrectly defined in the attr_map for this service (", $service, ")"); next; } # Else, use it as a canonicalization key and lookup the user info my $key = $config->{'attr_map'}->{$rt_attr}; my $value = $args->{$rt_attr}; # Check to see that the key being asked for is defined in the config's attr_map my $valid = 0; my ($attr_key, $attr_value); my $attr_map = $config->{'attr_map'}; while (($attr_key, $attr_value) = each %$attr_map) { $valid = 1 if ($key eq $attr_value); } unless ($valid){ $RT::Logger->debug( "This key (", $key, "is not a valid attribute key (", $service, ")"); next; } # Use an if/elsif structure to do a lookup with any custom code needed # for any given type of external service, or die if no code exists for # the service requested. if($config->{'type'} eq 'ldap'){ ($found, %params) = RT::Authen::ExternalAuth::LDAP::CanonicalizeUserInfo($service,$key,$value); } elsif ($config->{'type'} eq 'db') { ($found, %params) = RT::Authen::ExternalAuth::DBI::CanonicalizeUserInfo($service,$key,$value); } # Don't Check any more attributes last if $found; } # Don't Check any more services last if $found; } # If found, Canonicalize Email Address and # update the args hash that we were given the hashref for if ($found) { # It's important that we always have a canonical email address if ($params{'EmailAddress'}) { $params{'EmailAddress'} = $UserObj->CanonicalizeEmailAddress($params{'EmailAddress'}); } %$args = (%$args, %params); } $RT::Logger->info( (caller(0))[3], "returning", join(", ", map {sprintf("%s: %s", $_, ($args->{$_} ? $args->{$_} : ''))} sort(keys(%$args)))); ### HACK: The config var below is to overcome the (IMO) bug in ### RT::User::Create() which expects this function to always ### return true or rejects the user for creation. This should be ### a different config var (CreateUncanonicalizedUsers) and ### should be honored in RT::User::Create() return($found || RT->Config->Get('AutoCreateNonExternalUsers')); } =head2 Password and authentication related functions =head3 SetRandomPassword Takes no arguments. Returns a status code and a new password or an error message. If the status is 1, the second value returned is the new password. If the status is anything else, the new value returned is the error code. =cut sub SetRandomPassword { my $self = shift; unless ( $self->CurrentUserCanModify('Password') ) { return ( 0, $self->loc("Permission Denied") ); } my $min = ( RT->Config->Get('MinimumPasswordLength') > 6 ? RT->Config->Get('MinimumPasswordLength') : 6); my $max = ( RT->Config->Get('MinimumPasswordLength') > 8 ? RT->Config->Get('MinimumPasswordLength') : 8); my $pass = $self->GenerateRandomPassword( $min, $max) ; # If we have "notify user on my ( $val, $msg ) = $self->SetPassword($pass); #If we got an error return the error. return ( 0, $msg ) unless ($val); #Otherwise, we changed the password, lets return it. return ( 1, $pass ); } =head3 ResetPassword Returns status, [ERROR or new password]. Resets this user's password to a randomly generated pronouncable password and emails them, using a global template called "PasswordChange". This function is currently unused in the UI, but available for local scripts. =cut sub ResetPassword { my $self = shift; unless ( $self->CurrentUserCanModify('Password') ) { return ( 0, $self->loc("Permission Denied") ); } my ( $status, $pass ) = $self->SetRandomPassword(); unless ($status) { return ( 0, "$pass" ); } my $ret = RT::Interface::Email::SendEmailUsingTemplate( To => $self->EmailAddress, Template => 'PasswordChange', Arguments => { NewPassword => $pass, }, ); if ($ret) { return ( 1, $self->loc('New password notification sent') ); } else { return ( 0, $self->loc('Notification could not be sent') ); } } =head3 GenerateRandomPassword MIN_LEN and MAX_LEN Returns a random password between MIN_LEN and MAX_LEN characters long. =cut sub GenerateRandomPassword { my $self = shift; # just to drop it return Text::Password::Pronounceable->generate(@_); } sub SafeSetPassword { my $self = shift; my %args = ( Current => undef, New => undef, Confirmation => undef, @_, ); return (1) unless defined $args{'New'} && length $args{'New'}; my %cond = $self->CurrentUserRequireToSetPassword; unless ( $cond{'CanSet'} ) { return (0, $self->loc('You can not set password.') .' '. $cond{'Reason'} ); } my $error = ''; if ( $cond{'RequireCurrent'} && !$self->CurrentUser->IsPassword($args{'Current'}) ) { if ( defined $args{'Current'} && length $args{'Current'} ) { $error = $self->loc("Please enter your current password correctly."); } else { $error = $self->loc("Please enter your current password."); } } elsif ( $args{'New'} ne $args{'Confirmation'} ) { $error = $self->loc("Passwords do not match."); } if ( $error ) { $error .= ' '. $self->loc('Password has not been set.'); return (0, $error); } return $self->SetPassword( $args{'New'} ); } =head3 SetPassword Takes a string. Checks the string's length and sets this user's password to that string. =cut sub SetPassword { my $self = shift; my $password = shift; unless ( $self->CurrentUserCanModify('Password') ) { return ( 0, $self->loc('Password: Permission Denied') ); } if ( !$password ) { return ( 0, $self->loc("No password set") ); } else { my ($val, $msg) = $self->ValidatePassword($password); return ($val, $msg) if !$val; my $new = !$self->HasPassword; $password = $self->_GeneratePassword($password); ( $val, $msg ) = $self->_Set(Field => 'Password', Value => $password); if ($val) { return ( 1, $self->loc("Password set") ) if $new; return ( 1, $self->loc("Password changed") ); } else { return ( $val, $msg ); } } } sub _GeneratePassword_bcrypt { my $self = shift; my ($password, @rest) = @_; my $salt; my $rounds; if (@rest) { # The first split is the number of rounds $rounds = $rest[0]; # The salt is the first 22 characters, b64 encoded usign the # special bcrypt base64. $salt = Crypt::Eksblowfish::Bcrypt::de_base64( substr($rest[1], 0, 22) ); } else { $rounds = RT->Config->Get('BcryptCost'); # Generate a random 16-octet base64 salt $salt = ""; $salt .= pack("C", int rand(256)) for 1..16; } my $hash = Crypt::Eksblowfish::Bcrypt::bcrypt_hash({ key_nul => 1, cost => $rounds, salt => $salt, }, Digest::SHA::sha512( Encode::encode( 'UTF-8', $password) ) ); return join("!", "", "bcrypt", sprintf("%02d", $rounds), Crypt::Eksblowfish::Bcrypt::en_base64( $salt ). Crypt::Eksblowfish::Bcrypt::en_base64( $hash ) ); } sub _GeneratePassword_sha512 { my $self = shift; my ($password, $salt) = @_; # Generate a 16-character base64 salt unless ($salt) { $salt = ""; $salt .= ("a".."z", "A".."Z","0".."9", "+", "/")[rand 64] for 1..16; } my $sha = Digest::SHA->new(512); $sha->add($salt); $sha->add(Encode::encode( 'UTF-8', $password)); return join("!", "", "sha512", $salt, $sha->b64digest); } =head3 _GeneratePassword PASSWORD [, SALT] Returns a string to store in the database. This string takes the form: !method!salt!hash By default, the method is currently C. =cut sub _GeneratePassword { my $self = shift; return $self->_GeneratePassword_bcrypt(@_); } =head3 HasPassword Returns true if the user has a valid password, otherwise returns false. =cut sub HasPassword { my $self = shift; my $pwd = $self->__Value('Password'); return undef if !defined $pwd || $pwd eq '' || $pwd eq '*NO-PASSWORD*'; return 1; } =head3 IsPassword Returns true if the passed in value is this user's password. Returns undef otherwise. =cut sub IsPassword { my $self = shift; my $value = shift; #TODO there isn't any apparent way to legitimately ACL this # RT does not allow null passwords if ( ( !defined($value) ) or ( $value eq '' ) ) { return (undef); } if ( $self->PrincipalObj->Disabled ) { $RT::Logger->info( "Disabled user " . $self->Name . " tried to log in" ); return (undef); } unless ($self->HasPassword) { return(undef); } my $stored = $self->__Value('Password'); if ($stored =~ /^!/) { # If it's a new-style (>= RT 4.0) password, it starts with a '!' my (undef, $method, @rest) = split /!/, $stored; if ($method eq "bcrypt") { return 0 unless RT::Util::constant_time_eq( $self->_GeneratePassword_bcrypt($value, @rest), $stored ); # Upgrade to a larger number of rounds if necessary return 1 unless $rest[0] < RT->Config->Get('BcryptCost'); } elsif ($method eq "sha512") { return 0 unless RT::Util::constant_time_eq( $self->_GeneratePassword_sha512($value, @rest), $stored ); } else { $RT::Logger->warn("Unknown hash method $method"); return 0; } } elsif (length $stored == 40) { # The truncated SHA256(salt,MD5(passwd)) form from 2010/12 is 40 characters long my $hash = MIME::Base64::decode_base64($stored); # Decoding yields 30 byes; first 4 are the salt, the rest are substr(SHA256,0,26) my $salt = substr($hash, 0, 4, ""); return 0 unless RT::Util::constant_time_eq( substr(Digest::SHA::sha256($salt . Digest::MD5::md5(Encode::encode( "UTF-8", $value))), 0, 26), $hash, 1 ); } elsif (length $stored == 32) { # Hex nonsalted-md5 return 0 unless RT::Util::constant_time_eq( Digest::MD5::md5_hex(Encode::encode( "UTF-8", $value)), $stored ); } elsif (length $stored == 22) { # Base64 nonsalted-md5 return 0 unless RT::Util::constant_time_eq( Digest::MD5::md5_base64(Encode::encode( "UTF-8", $value)), $stored ); } elsif (length $stored == 13) { # crypt() output return 0 unless RT::Util::constant_time_eq( crypt(Encode::encode( "UTF-8", $value), $stored), $stored ); } else { $RT::Logger->warning("Unknown password form"); return 0; } # We got here by validating successfully, but with a legacy # password form. Update to the most recent form. my $obj = $self->isa("RT::CurrentUser") ? $self->UserObj : $self; $obj->_Set(Field => 'Password', Value => $self->_GeneratePassword($value) ); return 1; } sub CurrentUserRequireToSetPassword { my $self = shift; my %res = ( CanSet => 1, Reason => '', RequireCurrent => 1, ); if ( RT->Config->Get('WebRemoteUserAuth') && !RT->Config->Get('WebFallbackToRTLogin') ) { $res{'CanSet'} = 0; $res{'Reason'} = $self->loc("External authentication enabled."); } elsif ( !$self->CurrentUser->HasPassword ) { if ( $self->CurrentUser->id == ($self->id||0) ) { # don't require current password if user has no $res{'RequireCurrent'} = 0; } else { $res{'CanSet'} = 0; $res{'Reason'} = $self->loc("Your password is not set."); } } return %res; } =head3 AuthToken Returns an authentication string associated with the user. This string can be used to generate passwordless URLs to integrate RT with services and programms like callendar managers, rss readers and other. =cut sub AuthToken { my $self = shift; my $secret = $self->_Value( AuthToken => @_ ); return $secret if $secret; $secret = substr(Digest::MD5::md5_hex(time . {} . rand()),0,16); my $tmp = RT::User->new( RT->SystemUser ); $tmp->Load( $self->id ); my ($status, $msg) = $tmp->SetAuthToken( $secret ); unless ( $status ) { $RT::Logger->error( "Couldn't set auth token: $msg" ); return undef; } return $secret; } =head3 GenerateAuthToken Generate a random authentication string for the user. =cut sub GenerateAuthToken { my $self = shift; my $token = substr(Digest::MD5::md5_hex(time . {} . rand()),0,16); return $self->SetAuthToken( $token ); } =head3 GenerateAuthString Takes a string and returns back a hex hash string. Later you can use this pair to make sure it's generated by this user using L =cut sub GenerateAuthString { my $self = shift; my $protect = shift; my $str = Encode::encode( "UTF-8", $self->AuthToken . $protect ); return substr(Digest::MD5::md5_hex($str),0,16); } =head3 ValidateAuthString Takes auth string and protected string. Returns true if protected string has been protected by user's L. See also L. =cut sub ValidateAuthString { my $self = shift; my $auth_string_to_validate = shift; my $protected = shift; my $str = Encode::encode( "UTF-8", $self->AuthToken . $protected ); my $valid_auth_string = substr(Digest::MD5::md5_hex($str),0,16); return RT::Util::constant_time_eq( $auth_string_to_validate, $valid_auth_string ); } =head2 SetDisabled Toggles the user's disabled flag. If this flag is set, all password checks for this user will fail. All ACL checks for this user will fail. The user will appear in no user listings. =cut sub SetDisabled { my $self = shift; my $val = shift; unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return (0, $self->loc('Permission Denied')); } $RT::Handle->BeginTransaction(); my ($status, $msg) = $self->PrincipalObj->SetDisabled($val); unless ($status) { $RT::Handle->Rollback(); $RT::Logger->warning(sprintf("Couldn't %s user %s", ($val == 1) ? "disable" : "enable", $self->PrincipalObj->Id)); return ($status, $msg); } $self->_NewTransaction( Type => ($val == 1) ? "Disabled" : "Enabled" ); $RT::Handle->Commit(); if ( $val == 1 ) { return (1, $self->loc("User disabled")); } else { return (1, $self->loc("User enabled")); } } =head2 Disabled Returns true if user is disabled or false otherwise =cut sub Disabled { my $self = shift; return $self->PrincipalObj->Disabled(@_); } =head2 PrincipalObj Returns the principal object for this user. returns an empty RT::Principal if there's no principal object matching this user. The response is cached. PrincipalObj should never ever change. =cut sub PrincipalObj { my $self = shift; unless ( $self->id ) { $RT::Logger->error("Couldn't get principal for an empty user"); return undef; } if ( !$self->{_principal_obj} ) { my $obj = RT::Principal->new( $self->CurrentUser ); $obj->LoadById( $self->id ); if (! $obj->id ) { $RT::Logger->crit( 'No principal for user #' . $self->id ); return undef; } elsif ( $obj->PrincipalType ne 'User' ) { $RT::Logger->crit( 'User #' . $self->id . ' has principal of ' . $obj->PrincipalType . ' type' ); return undef; } $self->{_principal_obj} = $obj; } return $self->{_principal_obj}; } =head2 PrincipalId Returns this user's PrincipalId =cut sub PrincipalId { my $self = shift; return $self->Id; } =head2 HasGroupRight Takes a paramhash which can contain these items: GroupObj => RT::Group or Group => integer Right => 'Right' Returns 1 if this user has the right specified in the paramhash for the Group passed in. Returns undef if they don't. =cut sub HasGroupRight { my $self = shift; my %args = ( GroupObj => undef, Group => undef, Right => undef, @_ ); if ( defined $args{'Group'} ) { $args{'GroupObj'} = RT::Group->new( $self->CurrentUser ); $args{'GroupObj'}->Load( $args{'Group'} ); } # Validate and load up the GroupId unless ( ( defined $args{'GroupObj'} ) and ( $args{'GroupObj'}->Id ) ) { return undef; } # Figure out whether a user has the right we're asking about. my $retval = $self->HasRight( Object => $args{'GroupObj'}, Right => $args{'Right'}, ); return ($retval); } =head2 OwnGroups Returns a group collection object containing the groups of which this user is a member. =cut sub OwnGroups { my $self = shift; my $groups = RT::Groups->new($self->CurrentUser); $groups->LimitToUserDefinedGroups; $groups->WithMember( PrincipalId => $self->Id, Recursively => 1 ); return $groups; } =head2 HasRight Shim around PrincipalObj->HasRight. See L. =cut sub HasRight { my $self = shift; return $self->PrincipalObj->HasRight(@_); } =head2 CurrentUserCanSee [FIELD] Returns true if the current user can see the user, based on if it is public, ourself, or we have AdminUsers =cut sub CurrentUserCanSee { my $self = shift; my ($what, $txn) = @_; # If it's a public property, fine return 1 if $self->_Accessible( $what, 'public' ); # Users can see all of their own properties return 1 if defined($self->Id) and $self->CurrentUser->Id == $self->Id; # If the user has the admin users right, that's also enough return 1 if $self->CurrentUserHasRight( 'AdminUsers' ); # Transactions of public properties are visible to users with ShowUserHistory if ($what eq "Transaction" and $self->CurrentUserHasRight( 'ShowUserHistory' )) { my $type = $txn->__Value('Type'); my $field = $txn->__Value('Field'); return 1 if $type eq "Set" and $self->CurrentUserCanSee($field, $txn); # RT::Transaction->CurrentUserCanSee deals with ensuring we meet # the ACLs on CFs, so allow them here return 1 if $type eq "CustomField"; } return 0; } =head2 CurrentUserCanModify RIGHT If the user has rights for this object, either because he has 'AdminUsers' or (if he's trying to edit himself and the right isn't an admin right) 'ModifySelf', return 1. otherwise, return undef. =cut sub CurrentUserCanModify { my $self = shift; my $field = shift; if ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return (1); } #If the field is marked as an "administrators only" field, # don't let the user touch it. elsif ( $self->_Accessible( $field, 'admin' ) ) { return (undef); } #If the current user is trying to modify themselves elsif ( ( $self->id == $self->CurrentUser->id ) and ( $self->CurrentUser->HasRight(Right => 'ModifySelf', Object => $RT::System) ) ) { return (1); } #If we don't have a good reason to grant them rights to modify # by now, they lose else { return (undef); } } =head2 CurrentUserHasRight Takes a single argument. returns 1 if $Self->CurrentUser has the requested right. returns undef otherwise =cut sub CurrentUserHasRight { my $self = shift; my $right = shift; return ( $self->CurrentUser->HasRight(Right => $right, Object => $RT::System) ); } sub _PrefName { my $name = shift; if (ref $name) { $name = ref($name).'-'.$name->Id; } return 'Pref-'. $name; } =head2 Preferences NAME/OBJ DEFAULT Obtain user preferences associated with given object or name. Returns DEFAULT if no preferences found. If DEFAULT is a hashref, override the entries with user preferences. =cut sub Preferences { my $self = shift; my $name = _PrefName(shift); my $default = shift; my ($attr) = $self->Attributes->Named( $name ); my $content = $attr ? $attr->Content : undef; unless ( ref $content eq 'HASH' ) { return defined $content ? $content : $default; } if (ref $default eq 'HASH') { for (keys %$default) { exists $content->{$_} or $content->{$_} = $default->{$_}; } } elsif (defined $default) { $RT::Logger->error("Preferences $name for user #".$self->Id." is hash but default is not"); } return $content; } =head2 SetPreferences NAME/OBJ VALUE Set user preferences associated with given object or name. =cut sub SetPreferences { my $self = shift; my $name = _PrefName( shift ); my $value = shift; return (0, $self->loc("No permission to set preferences")) unless $self->CurrentUserCanModify('Preferences'); my ($attr) = $self->Attributes->Named( $name ); if ( $attr ) { my ($ok, $msg) = $attr->SetContent( $value ); return (1, "No updates made") if $msg eq "That is already the current value"; return ($ok, $msg); } else { return $self->AddAttribute( Name => $name, Content => $value ); } } =head2 DeletePreferences NAME/OBJ VALUE Delete user preferences associated with given object or name. =cut sub DeletePreferences { my $self = shift; my $name = _PrefName( shift ); return (0, $self->loc("No permission to set preferences")) unless $self->CurrentUserCanModify('Preferences'); my ($attr) = $self->DeleteAttribute( $name ); return (0, $self->loc("Preferences were not found")) unless $attr; return 1; } =head2 Stylesheet Returns a list of valid stylesheets take from preferences. =cut sub Stylesheet { my $self = shift; my $style = RT->Config->Get('WebDefaultStylesheet', $self->CurrentUser); if (RT::Interface::Web->ComponentPathIsSafe($style)) { for my $root (RT::Interface::Web->StaticRoots) { if (-d "$root/css/$style") { return $style } } } # Fall back to the system stylesheet. return RT->Config->Get('WebDefaultStylesheet'); } =head2 WatchedQueues ROLE_LIST Returns a RT::Queues object containing every queue watched by the user. Takes a list of roles which is some subset of ('Cc', 'AdminCc'). Defaults to: $user->WatchedQueues('Cc', 'AdminCc'); =cut sub WatchedQueues { my $self = shift; my @roles = @_ ? @_ : ('Cc', 'AdminCc'); $RT::Logger->debug('WatcheQueues got user ' . $self->Name); my $watched_queues = RT::Queues->new($self->CurrentUser); my $group_alias = $watched_queues->Join( ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Groups', FIELD2 => 'Instance', ); $watched_queues->Limit( ALIAS => $group_alias, FIELD => 'Domain', VALUE => 'RT::Queue-Role', ENTRYAGGREGATOR => 'AND', CASESENSITIVE => 0, ); if (grep { $_ eq 'Cc' } @roles) { $watched_queues->Limit( SUBCLAUSE => 'LimitToWatchers', ALIAS => $group_alias, FIELD => 'Name', VALUE => 'Cc', ENTRYAGGREGATOR => 'OR', ); } if (grep { $_ eq 'AdminCc' } @roles) { $watched_queues->Limit( SUBCLAUSE => 'LimitToWatchers', ALIAS => $group_alias, FIELD => 'Name', VALUE => 'AdminCc', ENTRYAGGREGATOR => 'OR', ); } my $queues_alias = $watched_queues->Join( ALIAS1 => $group_alias, FIELD1 => 'id', TABLE2 => 'CachedGroupMembers', FIELD2 => 'GroupId', ); $watched_queues->Limit( ALIAS => $queues_alias, FIELD => 'MemberId', VALUE => $self->PrincipalId, ); $watched_queues->Limit( ALIAS => $queues_alias, FIELD => 'Disabled', VALUE => 0, ); $RT::Logger->debug("WatchedQueues got " . $watched_queues->Count . " queues"); return $watched_queues; } sub _Set { my $self = shift; my %args = ( Field => undef, Value => undef, TransactionType => 'Set', RecordTransaction => 1, @_ ); # Nobody is allowed to futz with RT_System or Nobody if ( ($self->Id == RT->SystemUser->Id ) || ($self->Id == RT->Nobody->Id)) { return ( 0, $self->loc("Can not modify system users") ); } unless ( $self->CurrentUserCanModify( $args{'Field'} ) ) { return ( 0, $self->loc("Permission Denied") ); } my $Old = $self->SUPER::_Value("$args{'Field'}"); my ($ret, $msg) = $self->SUPER::_Set( Field => $args{'Field'}, Value => $args{'Value'} ); #If we can't actually set the field to the value, don't record # a transaction. instead, get out of here. if ( $ret == 0 ) { return ( 0, $msg ); } if ( $args{'RecordTransaction'} == 1 ) { if ($args{'Field'} eq "Password") { $args{'Value'} = $Old = '********'; } my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( Type => $args{'TransactionType'}, Field => $args{'Field'}, NewValue => $args{'Value'}, OldValue => $Old, TimeTaken => $args{'TimeTaken'}, ); return ( $Trans, scalar $TransObj->BriefDescription ); } else { return ( $ret, $msg ); } } =head2 _Value Takes the name of a table column. Returns its value as a string, if the user passes an ACL check =cut sub _Value { my $self = shift; my $field = shift; # Defer to the abstraction above to know if the field can be read return $self->SUPER::_Value($field) if $self->CurrentUserCanSee($field); return undef; } =head2 FriendlyName Return the friendly name =cut sub FriendlyName { my $self = shift; return $self->RealName if defined $self->RealName and length $self->RealName; return $self->Name; } =head2 Format Class or object method. Returns a string describing a user in the current user's preferred format. May be invoked in three ways: $UserObj->Format; RT::User->Format( User => $UserObj ); # same as above RT::User->Format( Address => $AddressObj, CurrentUser => $CurrentUserObj ); Possible arguments are: =over =item User An L object representing the user to format. Preferred to Address. =item Address An L object representing the user address to format. Address will be used to lookup an L if possible. =item CurrentUser Required when Format is called as a class method with an Address argument. Otherwise, this argument is ignored in preference to the CurrentUser of the involved L object. =item Format Specifies the format to use, overriding any set from the config or current user's preferences. =back =cut sub Format { my $self = shift; my %args = ( User => undef, Address => undef, CurrentUser => undef, Format => undef, @_ ); if (blessed($self) and $self->id) { @args{"User", "CurrentUser"} = ($self, $self->CurrentUser); } elsif ($args{User} and $args{User}->id) { $args{CurrentUser} = $args{User}->CurrentUser; } elsif ($args{Address} and $args{CurrentUser}) { $args{User} = RT::User->new( $args{CurrentUser} ); $args{User}->LoadByEmail( $args{Address}->address ); if ($args{User}->id) { delete $args{Address}; } else { delete $args{User}; } } else { RT->Logger->warning("Invalid arguments to RT::User->Format at @{[join '/', caller]}"); return ""; } $args{Format} ||= RT->Config->Get("UsernameFormat", $args{CurrentUser}); $args{Format} =~ s/[^A-Za-z0-9_]+//g; my $method = "_FormatUser" . ucfirst lc $args{Format}; my $formatter = $self->can($method); unless ($formatter) { RT->Logger->error( "Either system config or user #" . $args{CurrentUser}->id . " picked UsernameFormat $args{Format}, but RT::User->$method doesn't exist" ); $formatter = $self->can("_FormatUserRole"); } return $formatter->( $self, map { $_ => $args{$_} } qw(User Address) ); } sub _FormatUserRole { my $self = shift; my %args = @_; my $user = $args{User}; return $self->_FormatUserVerbose(@_) unless $user and $user->Privileged; my $name = $user->Name; $name .= " (".$user->RealName.")" if $user->RealName and lc $user->RealName ne lc $user->Name; return $name; } sub _FormatUserConcise { my $self = shift; my %args = @_; return $args{User} ? $args{User}->FriendlyName : $args{Address}->address; } sub _FormatUserVerbose { my $self = shift; my %args = @_; my ($user, $address) = @args{"User", "Address"}; my $email = ''; my $phrase = ''; my $comment = ''; if ($user) { $email = $user->EmailAddress || ''; $phrase = $user->RealName if $user->RealName and lc $user->RealName ne lc $email; $comment = $user->Name if lc $user->Name ne lc $email; } else { ($email, $phrase, $comment) = (map { $address->$_ } "address", "phrase", "comment"); } return join " ", grep { $_ } ($phrase || $comment || ''), ($email ? "<$email>" : ""); } =head2 PreferredKey Returns the preferred key of the user. If none is set, then this will query GPG and set the preferred key to the maximally trusted key found (and then return it). Returns C if no preferred key can be found. =cut sub PreferredKey { my $self = shift; return undef unless RT->Config->Get('GnuPG')->{'Enable'}; if ( ($self->CurrentUser->Id != $self->Id ) && !$self->CurrentUser->HasRight(Right =>'AdminUsers', Object => $RT::System) ) { return undef; } my $prefkey = $self->FirstAttribute('PreferredKey'); return $prefkey->Content if $prefkey; # we don't have a preferred key for this user, so now we must query GPG my %res = RT::Crypt->GetKeysForEncryption($self->EmailAddress); return undef unless defined $res{'info'}; my @keys = @{ $res{'info'} }; return undef if @keys == 0; if (@keys == 1) { $prefkey = $keys[0]->{'Fingerprint'}; } else { # prefer the maximally trusted key @keys = sort { $b->{'TrustLevel'} <=> $a->{'TrustLevel'} } @keys; $prefkey = $keys[0]->{'Fingerprint'}; } $self->SetAttribute(Name => 'PreferredKey', Content => $prefkey); return $prefkey; } sub PrivateKey { my $self = shift; #If the user wants to see their own values, let them. #If the user is an admin, let them. #Otherwwise, don't let them. # if ( ($self->CurrentUser->Id != $self->Id ) && !$self->CurrentUser->HasRight(Right =>'AdminUsers', Object => $RT::System) ) { return undef; } my $key = $self->FirstAttribute('PrivateKey') or return undef; return $key->Content; } sub SetPrivateKey { my $self = shift; my $key = shift; # Users should not be able to change their own PrivateKey values unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return (0, $self->loc("Permission Denied")); } unless ( $key ) { my ($status, $msg) = $self->DeleteAttribute('PrivateKey'); unless ( $status ) { $RT::Logger->error( "Couldn't delete attribute: $msg" ); return ($status, $self->loc("Couldn't unset private key")); } return ($status, $self->loc("Unset private key")); } # check that it's really private key { my %tmp = RT::Crypt->GetKeysForSigning( Signer => $key, Protocol => 'GnuPG' ); return (0, $self->loc("No such key or it's not suitable for signing")) if $tmp{'exit_code'} || !$tmp{'info'}; } my ($status, $msg) = $self->SetAttribute( Name => 'PrivateKey', Content => $key, ); return ($status, $self->loc("Couldn't set private key")) unless $status; return ($status, $self->loc("Set private key")); } sub SetLang { my $self = shift; my ($lang) = @_; unless ($self->CurrentUserCanModify('Lang')) { return (0, $self->loc("Permission Denied")); } # Local hack to cause the result message to be in the _new_ language # if we're updating ourselves $self->CurrentUser->{LangHandle} = RT::I18N->get_handle( $lang ) if $self->CurrentUser->id == $self->id; return $self->_Set( Field => 'Lang', Value => $lang ); } sub BasicColumns { ( [ Name => 'Username' ], [ EmailAddress => 'Email' ], [ RealName => 'Name' ], [ Organization => 'Organization' ], ); } =head2 Bookmarks Returns an unordered list of IDs representing the user's bookmarked tickets. =cut sub Bookmarks { my $self = shift; my $bookmarks = $self->FirstAttribute('Bookmarks'); return if !$bookmarks; $bookmarks = $bookmarks->Content; return if !$bookmarks; return keys %$bookmarks; } =head2 HasBookmark TICKET Returns whether the provided ticket is bookmarked by the user. =cut sub HasBookmark { my $self = shift; my $ticket = shift; my $id = $ticket->id; # maintain bookmarks across merges my @ids = ($id, $ticket->Merged); my $bookmarks = $self->FirstAttribute('Bookmarks'); $bookmarks = $bookmarks ? $bookmarks->Content : {}; my @bookmarked = grep { $bookmarks->{ $_ } } @ids; return @bookmarked ? 1 : 0; } =head2 ToggleBookmark TICKET Toggles whether the provided ticket is bookmarked by the user. =cut sub ToggleBookmark { my $self = shift; my $ticket = shift; my $id = $ticket->id; # maintain bookmarks across merges my @ids = ($id, $ticket->Merged); my $bookmarks = $self->FirstAttribute('Bookmarks'); $bookmarks = $bookmarks ? $bookmarks->Content : {}; my $is_bookmarked; if ( grep { $bookmarks->{ $_ } } @ids ) { delete $bookmarks->{ $_ } foreach @ids; $is_bookmarked = 0; } else { $bookmarks->{ $id } = 1; $is_bookmarked = 1; } $self->SetAttribute( Name => 'Bookmarks', Content => $bookmarks, ); return $is_bookmarked; } =head2 RecentlyViewedTickets TICKET Returns a list of two-element (ticket id, timestamp) array references ordered by recently viewed first. =cut sub RecentlyViewedTickets { my $self = shift; my $content = $self->FirstAttribute('RecentlyViewedTickets'); return $content ? @{$content->Content} : (); } =head2 AddRecentlyViewedTicket TICKET Takes an RT::Ticket object and adds it to the current user's RecentlyViewedTickets =cut sub AddRecentlyViewedTicket { my $self = shift; my $ticket = shift; my $maxCount = 10; #The max number of tickets to keep #Nothing to do without a ticket return unless $ticket->Id; my @recentTickets; my $content = $self->FirstAttribute('RecentlyViewedTickets'); $content = $content ? $content->Content : []; if (defined $content) { @recentTickets = @$content; } my @tickets; my $i = 0; for (@recentTickets) { my ($ticketId, $timestamp) = @$_; #Skip the ticket if it exists in recents already if ($ticketId != $ticket->Id) { push @tickets, $_; if ($i >= $maxCount - 1) { last; } } $i++; } #Add the new ticket unshift @tickets, [$ticket->Id, time()]; $self->SetAttribute( Name => 'RecentlyViewedTickets', Content => \@tickets, ); } =head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: varchar(200) 'Name'. varbinary(256) 'Password'. varchar(16) 'AuthToken'. text 'Comments'. text 'Signature'. varchar(120) 'EmailAddress'. text 'FreeformContactInfo'. varchar(200) 'Organization'. varchar(120) 'RealName'. varchar(16) 'NickName'. varchar(16) 'Lang'. varchar(16) 'Gecos'. varchar(30) 'HomePhone'. varchar(30) 'WorkPhone'. varchar(30) 'MobilePhone'. varchar(30) 'PagerPhone'. varchar(200) 'Address1'. varchar(200) 'Address2'. varchar(100) 'City'. varchar(100) 'State'. varchar(16) 'Zip'. varchar(50) 'Country'. varchar(50) 'Timezone'. =cut =head2 id Returns the current value of id. (In the database, id is stored as int(11).) =cut =head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) =head2 SetName VALUE Set Name to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Name will be stored as a varchar(200).) =cut =head2 Password Returns the current value of Password. (In the database, Password is stored as varchar(256).) =head2 SetPassword VALUE Set Password to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Password will be stored as a varchar(256).) =cut =head2 AuthToken Returns the current value of AuthToken. (In the database, AuthToken is stored as varchar(16).) =head2 SetAuthToken VALUE Set AuthToken to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, AuthToken will be stored as a varchar(16).) =cut =head2 Comments Returns the current value of Comments. (In the database, Comments is stored as text.) =head2 SetComments VALUE Set Comments to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Comments will be stored as a text.) =cut =head2 Signature Returns the current value of Signature. (In the database, Signature is stored as text.) =head2 SetSignature VALUE Set Signature to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Signature will be stored as a text.) =cut =head2 EmailAddress Returns the current value of EmailAddress. (In the database, EmailAddress is stored as varchar(120).) =head2 SetEmailAddress VALUE Set EmailAddress to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, EmailAddress will be stored as a varchar(120).) =cut =head2 FreeformContactInfo Returns the current value of FreeformContactInfo. (In the database, FreeformContactInfo is stored as text.) =head2 SetFreeformContactInfo VALUE Set FreeformContactInfo to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, FreeformContactInfo will be stored as a text.) =cut =head2 Organization Returns the current value of Organization. (In the database, Organization is stored as varchar(200).) =head2 SetOrganization VALUE Set Organization to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Organization will be stored as a varchar(200).) =cut =head2 RealName Returns the current value of RealName. (In the database, RealName is stored as varchar(120).) =head2 SetRealName VALUE Set RealName to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, RealName will be stored as a varchar(120).) =cut =head2 NickName Returns the current value of NickName. (In the database, NickName is stored as varchar(16).) =head2 SetNickName VALUE Set NickName to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, NickName will be stored as a varchar(16).) =cut =head2 Lang Returns the current value of Lang. (In the database, Lang is stored as varchar(16).) =head2 SetLang VALUE Set Lang to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Lang will be stored as a varchar(16).) =cut =head2 Gecos Returns the current value of Gecos. (In the database, Gecos is stored as varchar(16).) =head2 SetGecos VALUE Set Gecos to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Gecos will be stored as a varchar(16).) =cut =head2 HomePhone Returns the current value of HomePhone. (In the database, HomePhone is stored as varchar(30).) =head2 SetHomePhone VALUE Set HomePhone to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, HomePhone will be stored as a varchar(30).) =cut =head2 WorkPhone Returns the current value of WorkPhone. (In the database, WorkPhone is stored as varchar(30).) =head2 SetWorkPhone VALUE Set WorkPhone to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, WorkPhone will be stored as a varchar(30).) =cut =head2 MobilePhone Returns the current value of MobilePhone. (In the database, MobilePhone is stored as varchar(30).) =head2 SetMobilePhone VALUE Set MobilePhone to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, MobilePhone will be stored as a varchar(30).) =cut =head2 PagerPhone Returns the current value of PagerPhone. (In the database, PagerPhone is stored as varchar(30).) =head2 SetPagerPhone VALUE Set PagerPhone to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, PagerPhone will be stored as a varchar(30).) =cut =head2 Address1 Returns the current value of Address1. (In the database, Address1 is stored as varchar(200).) =head2 SetAddress1 VALUE Set Address1 to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Address1 will be stored as a varchar(200).) =cut =head2 Address2 Returns the current value of Address2. (In the database, Address2 is stored as varchar(200).) =head2 SetAddress2 VALUE Set Address2 to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Address2 will be stored as a varchar(200).) =cut =head2 City Returns the current value of City. (In the database, City is stored as varchar(100).) =head2 SetCity VALUE Set City to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, City will be stored as a varchar(100).) =cut =head2 State Returns the current value of State. (In the database, State is stored as varchar(100).) =head2 SetState VALUE Set State to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, State will be stored as a varchar(100).) =cut =head2 Zip Returns the current value of Zip. (In the database, Zip is stored as varchar(16).) =head2 SetZip VALUE Set Zip to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Zip will be stored as a varchar(16).) =cut =head2 Country Returns the current value of Country. (In the database, Country is stored as varchar(50).) =head2 SetCountry VALUE Set Country to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Country will be stored as a varchar(50).) =cut =head2 Timezone Returns the current value of Timezone. (In the database, Timezone is stored as varchar(50).) =head2 SetTimezone VALUE Set Timezone to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Timezone will be stored as a varchar(50).) =cut =head2 SMIMECertificate Returns the current value of SMIMECertificate. (In the database, SMIMECertificate is stored as text.) =head2 SetSMIMECertificate VALUE Set SMIMECertificate to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, SMIMECertificate will be stored as a text.) =cut =head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) =cut =head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) =cut =head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) =cut =head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) =cut sub _CoreAccessible { { id => {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Password => {read => 1, write => 1, sql_type => 12, length => 256, is_blob => 0, is_numeric => 0, type => 'varchar(256)', default => ''}, AuthToken => {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Comments => {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, Signature => {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, EmailAddress => {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, FreeformContactInfo => {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, Organization => {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, RealName => {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, NickName => {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Lang => {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Gecos => {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, HomePhone => {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, WorkPhone => {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, MobilePhone => {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, PagerPhone => {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, Address1 => {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Address2 => {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, City => {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, State => {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, Zip => {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Country => {read => 1, write => 1, sql_type => 12, length => 50, is_blob => 0, is_numeric => 0, type => 'varchar(50)', default => ''}, Timezone => {read => 1, write => 1, sql_type => 12, length => 50, is_blob => 0, is_numeric => 0, type => 'varchar(50)', default => ''}, SMIMECertificate => {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, Creator => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; sub UID { my $self = shift; return undef unless defined $self->Name; return "@{[ref $self]}-@{[$self->Name]}"; } sub FindDependencies { my $self = shift; my ($walker, $deps) = @_; $self->SUPER::FindDependencies($walker, $deps); # ACL equivalence group my $objs = RT::Groups->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Domain', VALUE => 'ACLEquivalence', CASESENSITIVE => 0 ); $objs->Limit( FIELD => 'Instance', VALUE => $self->Id ); $deps->Add( in => $objs ); # Memberships in SystemInternal groups $objs = RT::GroupMembers->new( $self->CurrentUser ); $objs->Limit( FIELD => 'MemberId', VALUE => $self->Id ); my $groups = $objs->Join( ALIAS1 => 'main', FIELD1 => 'GroupId', TABLE2 => 'Groups', FIELD2 => 'id', ); $objs->Limit( ALIAS => $groups, FIELD => 'Domain', VALUE => 'SystemInternal', CASESENSITIVE => 0 ); $deps->Add( in => $objs ); # XXX: This ignores the myriad of "in" references from the Creator # and LastUpdatedBy columns. } sub __DependsOn { my $self = shift; my %args = ( Shredder => undef, Dependencies => undef, @_, ); my $deps = $args{'Dependencies'}; my $list = []; # Principal $deps->_PushDependency( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON | RT::Shredder::Constants::WIPE_AFTER, TargetObject => $self->PrincipalObj, Shredder => $args{'Shredder'} ); # ACL equivalence group # don't use LoadACLEquivalenceGroup cause it may not exists any more my $objs = RT::Groups->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Domain', VALUE => 'ACLEquivalence', CASESENSITIVE => 0 ); $objs->Limit( FIELD => 'Instance', VALUE => $self->Id ); push( @$list, $objs ); # Cleanup user's membership $objs = RT::GroupMembers->new( $self->CurrentUser ); $objs->Limit( FIELD => 'MemberId', VALUE => $self->Id ); push( @$list, $objs ); # Cleanup user's membership transactions $objs = RT::Transactions->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Type', OPERATOR => 'IN', VALUE => ['AddMember', 'DeleteMember'] ); $objs->Limit( FIELD => 'Field', VALUE => $self->PrincipalObj->id, ENTRYAGGREGATOR => 'AND' ); push( @$list, $objs ); $deps->_PushDependencies( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON, TargetObjects => $list, Shredder => $args{'Shredder'} ); # TODO: Almost all objects has Creator, LastUpdatedBy and etc. fields # which are references on users(Principal actualy) my @OBJECTS = qw( ACL Articles Attachments Attributes CachedGroupMembers Classes CustomFieldValues CustomFields GroupMembers Groups Links ObjectClasses ObjectCustomFieldValues ObjectCustomFields ObjectScrips Principals Queues ScripActions ScripConditions Scrips Templates Tickets Transactions Users ); my @var_objs; foreach( @OBJECTS ) { my $class = "RT::$_"; foreach my $method ( qw(Creator LastUpdatedBy) ) { my $objs = $class->new( $self->CurrentUser ); next unless $objs->RecordClass->_Accessible( $method => 'read' ); $objs->Limit( FIELD => $method, VALUE => $self->id ); push @var_objs, $objs; } } $deps->_PushDependencies( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON | RT::Shredder::Constants::VARIABLE, TargetObjects => \@var_objs, Shredder => $args{'Shredder'} ); return $self->SUPER::__DependsOn( %args ); } sub BeforeWipeout { my $self = shift; if( $self->Name =~ /^(RT_System|Nobody)$/ ) { RT::Shredder::Exception::Info->throw('SystemObject'); } return $self->SUPER::BeforeWipeout( @_ ); } sub Serialize { my $self = shift; return ( Disabled => $self->PrincipalObj->Disabled, Principal => $self->PrincipalObj->UID, PrincipalId => $self->PrincipalObj->Id, $self->SUPER::Serialize(@_), ); } sub PreInflate { my $class = shift; my ($importer, $uid, $data) = @_; my $principal_uid = delete $data->{Principal}; my $principal_id = delete $data->{PrincipalId}; my $disabled = delete $data->{Disabled}; my $obj = RT::User->new( RT->SystemUser ); $obj->LoadByCols( Name => $data->{Name} ); $obj->LoadByEmail( $data->{EmailAddress} ) unless $obj->Id; if ($obj->Id) { # User already exists -- merge # XXX: We might be merging a privileged user into an unpriv one, # in which case we should probably promote the unpriv user to # being privileged. Of course, we don't know if the user being # imported is privileged yet, as its group memberships show up # later in the stream... $importer->MergeValues($obj, $data); $importer->SkipTransactions( $uid ); # Mark both the principal and the user object as resolved $importer->Resolve( $principal_uid, ref($obj->PrincipalObj), $obj->PrincipalObj->Id ); $importer->Resolve( $uid => ref($obj) => $obj->Id ); return; } # Create a principal first, so we know what ID to use my $principal = RT::Principal->new( RT->SystemUser ); my ($id) = $principal->Create( PrincipalType => 'User', Disabled => $disabled, ); # Now we have a principal id, set the id for the user record $data->{id} = $id; $importer->Resolve( $principal_uid => ref($principal), $id ); $data->{id} = $id; return $class->SUPER::PreInflate( $importer, $uid, $data ); } sub PostInflate { my $self = shift; RT->InitSystemObjects if $self->Name eq "RT_System"; } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Principal.pm000644 000765 000024 00000054173 13437510132 016401 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} # package RT::Principal; use strict; use warnings; use base 'RT::Record'; sub Table {'Principals'} use RT; use RT::Group; use RT::User; # Set up the ACL cache on startup our $_ACL_CACHE; InvalidateACLCache(); require RT::ACE; RT::ACE->RegisterCacheHandler(sub { RT::Principal->InvalidateACLCache() }); =head2 IsGroup Returns true if this principal is a group. Returns undef, otherwise =cut sub IsGroup { my $self = shift; if ( defined $self->PrincipalType && $self->PrincipalType eq 'Group' ) { return 1; } return undef; } =head2 IsRoleGroup Returns true if this principal is a role group. Returns undef, otherwise. =cut sub IsRoleGroup { my $self = shift; return ($self->IsGroup and $self->Object->RoleClass) ? 1 : undef; } =head2 IsUser Returns true if this principal is a User. Returns undef, otherwise =cut sub IsUser { my $self = shift; if ($self->PrincipalType eq 'User') { return(1); } else { return undef; } } =head2 Object Returns the user or group associated with this principal =cut sub Object { my $self = shift; unless ( $self->{'object'} ) { if ( $self->IsUser ) { $self->{'object'} = RT::User->new($self->CurrentUser); } elsif ( $self->IsGroup ) { $self->{'object'} = RT::Group->new($self->CurrentUser); } else { $RT::Logger->crit("Found a principal (".$self->Id.") that was neither a user nor a group"); return(undef); } $self->{'object'}->Load( $self->id ); } return ($self->{'object'}); } =head2 DisplayName Returns the relevant display name for this principal =cut sub DisplayName { my $self = shift; return undef unless $self->Object; # If this principal is an ACLEquivalence group, return the user name return $self->Object->InstanceObj->Name if ($self->Object->Domain eq 'ACLEquivalence'); # Otherwise, show the group name return $self->Object->Label; } =head2 GrantRight { Right => RIGHTNAME, Object => undef } A helper function which calls RT::ACE->Create Returns a tuple of (STATUS, MESSAGE); If the call succeeded, STATUS is true. Otherwise it's false. =cut sub GrantRight { my $self = shift; my %args = ( Right => undef, Object => undef, @_ ); return (0, "Permission Denied") if $args{'Right'} eq 'ExecuteCode' and RT->Config->Get('DisallowExecuteCode'); #ACL check handled in ACE.pm my $ace = RT::ACE->new( $self->CurrentUser ); my $type = $self->_GetPrincipalTypeForACL(); # If it's a user, we really want to grant the right to their # user equivalence group my ($id, $msg) = $ace->Create( RightName => $args{'Right'}, Object => $args{'Object'}, PrincipalType => $type, PrincipalId => $self->Id, ); return ($id, $msg); } =head2 RevokeRight { Right => "RightName", Object => "object" } Delete a right that a user has Returns a tuple of (STATUS, MESSAGE); If the call succeeded, STATUS is true. Otherwise it's false. =cut sub RevokeRight { my $self = shift; my %args = ( Right => undef, Object => undef, @_ ); #if we haven't specified any sort of right, we're talking about a global right if (!defined $args{'Object'} && !defined $args{'ObjectId'} && !defined $args{'ObjectType'}) { $args{'Object'} = $RT::System; } #ACL check handled in ACE.pm my $type = $self->_GetPrincipalTypeForACL(); my $ace = RT::ACE->new( $self->CurrentUser ); my ($status, $msg) = $ace->LoadByValues( RightName => $args{'Right'}, Object => $args{'Object'}, PrincipalType => $type, PrincipalId => $self->Id ); if ( not $status and $msg =~ /Invalid right/ ) { $RT::Logger->warn("Tried to revoke the invalid right '$args{Right}', ignoring it."); return (1); } return ($status, $msg) unless $status; my $right = $ace->RightName; ($status, $msg) = $ace->Delete; return ($status, $msg); } =head2 HasRight (Right => 'right' Object => undef) Checks to see whether this principal has the right "Right" for the Object specified. This takes the params: =over 4 =item Right name of a right =item Object an RT style object (->id will get its id) =back Returns 1 if a matching ACE was found. Returns undef if no ACE was found. Use L to fill a fast cache, especially if you're going to check many different rights with the same principal and object. =cut sub HasRight { my $self = shift; my %args = ( Right => undef, Object => undef, EquivObjects => undef, @_, ); # RT's SystemUser always has all rights if ( $self->id == RT->SystemUser->id ) { return 1; } if ( my $right = RT::ACE->CanonicalizeRightName( $args{'Right'} ) ) { $args{'Right'} = $right; } else { $RT::Logger->error( "Invalid right. Couldn't canonicalize right '$args{'Right'}'"); return undef; } return undef if $args{'Right'} eq 'ExecuteCode' and RT->Config->Get('DisallowExecuteCode'); $args{'EquivObjects'} = [ @{ $args{'EquivObjects'} } ] if $args{'EquivObjects'}; if ( $self->__Value('Disabled') ) { $RT::Logger->debug( "Disabled User #" . $self->id . " failed access check for " . $args{'Right'} ); return (undef); } if ( eval { $args{'Object'}->id } ) { push @{ $args{'EquivObjects'} }, $args{'Object'}; } else { $RT::Logger->crit("HasRight called with no valid object"); return (undef); } { my $cached = $_ACL_CACHE->{ $self->id .';:;'. ref($args{'Object'}) .'-'. $args{'Object'}->id }; return $cached->{'SuperUser'} || $cached->{ $args{'Right'} } if $cached; } unshift @{ $args{'EquivObjects'} }, $args{'Object'}->ACLEquivalenceObjects; unshift @{ $args{'EquivObjects'} }, $RT::System; # If we've cached a win or loss for this lookup say so # Construct a hashkeys to cache decisions: # 1) full_hashkey - key for any result and for full combination of uid, right and objects # 2) short_hashkey - one key for each object to store positive results only, it applies # only to direct group rights and partly to role rights my $full_hashkey = join (";:;", $self->id, $args{'Right'}); foreach ( @{ $args{'EquivObjects'} } ) { my $ref_id = $self->_ReferenceId($_); $full_hashkey .= ";:;".$ref_id; my $short_hashkey = join(";:;", $self->id, $args{'Right'}, $ref_id); my $cached_answer = $_ACL_CACHE->{ $short_hashkey }; return $cached_answer > 0 if defined $cached_answer; } { my $cached_answer = $_ACL_CACHE->{ $full_hashkey }; return $cached_answer > 0 if defined $cached_answer; } my ( $hitcount, $via_obj ) = $self->_HasRight(%args); $_ACL_CACHE->{ $full_hashkey } = $hitcount ? 1 : -1; $_ACL_CACHE->{ join ';:;', $self->id, $args{'Right'}, $via_obj } = 1 if $via_obj && $hitcount; return ($hitcount); } =head2 HasRights Returns a hash reference with all rights this principal has on an object. Takes Object as a named argument. Main use case of this method is the following: $ticket->CurrentUser->PrincipalObj->HasRights( Object => $ticket ); ... $ticket->CurrentUserHasRight('A'); ... $ticket->CurrentUserHasRight('Z'); Results are cached and the cache is used in this and, as well, in L method speeding it up. Don't use hash reference returned by this method directly for rights checks as it's more complicated then it seems, especially considering config options like 'DisallowExecuteCode'. =cut sub HasRights { my $self = shift; my %args = ( Object => undef, EquivObjects => undef, @_ ); return {} if $self->__Value('Disabled'); my $object = $args{'Object'}; unless ( eval { $object->id } ) { $RT::Logger->crit("HasRights called with no valid object"); } my $cache_key = $self->id .';:;'. ref($object) .'-'. $object->id; my $cached = $_ACL_CACHE->{ $cache_key }; return $cached if $cached; push @{ $args{'EquivObjects'} }, $object; unshift @{ $args{'EquivObjects'} }, $args{'Object'}->ACLEquivalenceObjects; unshift @{ $args{'EquivObjects'} }, $RT::System; my %res = (); { my $query = "SELECT DISTINCT ACL.RightName " . $self->_HasGroupRightQuery( EquivObjects => $args{'EquivObjects'} ); my $rights = $RT::Handle->dbh->selectcol_arrayref($query); unless ($rights) { $RT::Logger->warning( $RT::Handle->dbh->errstr ); return (); } $res{$_} = 1 foreach @$rights; } my $roles; { my $query = "SELECT DISTINCT Groups.Name " . $self->_HasRoleRightQuery( EquivObjects => $args{'EquivObjects'} ); $roles = $RT::Handle->dbh->selectcol_arrayref($query); unless ($roles) { $RT::Logger->warning( $RT::Handle->dbh->errstr ); return (); } } if ( @$roles ) { my $query = "SELECT DISTINCT ACL.RightName " . $self->_RolesWithRightQuery( EquivObjects => $args{'EquivObjects'} ) . ' AND ('. join( ' OR ', map "PrincipalType = '$_'", @$roles ) .')' ; my $rights = $RT::Handle->dbh->selectcol_arrayref($query); unless ($rights) { $RT::Logger->warning( $RT::Handle->dbh->errstr ); return (); } $res{$_} = 1 foreach @$rights; } delete $res{'ExecuteCode'} if RT->Config->Get('DisallowExecuteCode'); $_ACL_CACHE->{ $cache_key } = \%res; return \%res; } =head2 _HasRight Low level HasRight implementation, use HasRight method instead. =cut sub _HasRight { my $self = shift; { my ( $hit, @other ) = $self->_HasGroupRight(@_); return ( $hit, @other ) if $hit; } { my ( $hit, @other ) = $self->_HasRoleRight(@_); return ( $hit, @other ) if $hit; } return (0); } # this method handles role rights partly in situations # where user plays role X on an object and as well the right is # assigned to this role X of the object, for example right CommentOnTicket # is granted to Cc role of a queue and user is in cc list of the queue sub _HasGroupRight { my $self = shift; my %args = ( Right => undef, EquivObjects => [], @_ ); my $query = "SELECT ACL.id, ACL.ObjectType, ACL.ObjectId " . $self->_HasGroupRightQuery( %args ); $self->_Handle->ApplyLimits( \$query, 1 ); my ( $hit, $obj, $id ) = $self->_Handle->FetchResult($query); return (0) unless $hit; $obj .= "-$id" if $id; return ( 1, $obj ); } sub _HasGroupRightQuery { my $self = shift; my %args = ( Right => undef, EquivObjects => [], @_ ); my $query = "FROM ACL, Principals, CachedGroupMembers WHERE " # Never find disabled groups. . "Principals.id = ACL.PrincipalId " . "AND Principals.PrincipalType = 'Group' " . "AND Principals.Disabled = 0 " # See if the principal is a member of the group recursively or _is the rightholder_ # never find recursively disabled group members # also, check to see if the right is being granted _directly_ to this principal, # as is the case when we want to look up group rights . "AND CachedGroupMembers.GroupId = ACL.PrincipalId " . "AND CachedGroupMembers.GroupId = Principals.id " . "AND CachedGroupMembers.MemberId = ". $self->Id . " " . "AND CachedGroupMembers.Disabled = 0 "; my @clauses; foreach my $obj ( @{ $args{'EquivObjects'} } ) { my $type = ref($obj) || $obj; my $clause = "ACL.ObjectType = '$type'"; if ( defined eval { $obj->id } ) { # it might be 0 $clause .= " AND ACL.ObjectId = " . $obj->id; } push @clauses, "($clause)"; } if (@clauses) { $query .= " AND (" . join( ' OR ', @clauses ) . ")"; } if ( my $right = $args{'Right'} ) { # Only find superuser or rights with the name $right $query .= " AND (ACL.RightName = 'SuperUser' " . ( $right ne 'SuperUser' ? "OR ACL.RightName = '$right'" : '' ) . ") "; } return $query; } sub _HasRoleRight { my $self = shift; my %args = ( Right => undef, EquivObjects => [], @_ ); my @roles = $self->RolesWithRight(%args); return 0 unless @roles; my $query = "SELECT Groups.id " . $self->_HasRoleRightQuery( %args, Roles => \@roles ); $self->_Handle->ApplyLimits( \$query, 1 ); my ($hit) = $self->_Handle->FetchResult($query); return (1) if $hit; return 0; } sub _HasRoleRightQuery { my $self = shift; my %args = ( Right => undef, EquivObjects => [], Roles => undef, @_ ); my $query = " FROM Groups, Principals, CachedGroupMembers WHERE " # Never find disabled things . "Principals.Disabled = 0 " . "AND CachedGroupMembers.Disabled = 0 " # We always grant rights to Groups . "AND Principals.id = Groups.id " . "AND Principals.PrincipalType = 'Group' " # See if the principal is a member of the group recursively or _is the rightholder_ # never find recursively disabled group members # also, check to see if the right is being granted _directly_ to this principal, # as is the case when we want to look up group rights . "AND Principals.id = CachedGroupMembers.GroupId " . "AND CachedGroupMembers.MemberId = " . $self->Id . " " ; if ( $args{'Roles'} ) { $query .= "AND (" . join( ' OR ', map $RT::Handle->__MakeClauseCaseInsensitive('Groups.Name', '=', "'$_'"), @{ $args{'Roles'} } ) . ")"; } my @object_clauses = RT::Users->_RoleClauses( Groups => @{ $args{'EquivObjects'} } ); $query .= " AND (" . join( ' OR ', @object_clauses ) . ")"; return $query; } =head2 RolesWithRight Returns list with names of roles that have right on set of objects. Takes Right, EquiveObjects, IncludeSystemRights and IncludeSuperusers arguments. IncludeSystemRights is true by default, rights granted systemwide are ignored when IncludeSystemRights is set to a false value. IncludeSuperusers is true by default, SuperUser right is not checked if it's set to a false value. =cut sub RolesWithRight { my $self = shift; my %args = ( Right => undef, IncludeSystemRights => 1, IncludeSuperusers => 1, EquivObjects => [], @_ ); return () if $args{'Right'} eq 'ExecuteCode' and RT->Config->Get('DisallowExecuteCode'); my $query = "SELECT DISTINCT PrincipalType " . $self->_RolesWithRightQuery( %args ); my $roles = $RT::Handle->dbh->selectcol_arrayref($query); unless ($roles) { $RT::Logger->warning( $RT::Handle->dbh->errstr ); return (); } return @$roles; } sub _RolesWithRightQuery { my $self = shift; my %args = ( Right => undef, IncludeSystemRights => 1, IncludeSuperusers => 1, EquivObjects => [], @_ ); my $query = " FROM ACL WHERE" # we need only roles . " PrincipalType != 'Group'"; if ( my $right = $args{'Right'} ) { $query .= # Only find superuser or rights with the requested right " AND ( RightName = '$right' " # Check SuperUser if we were asked to . ( $args{'IncludeSuperusers'} ? "OR RightName = 'SuperUser' " : '' ) . ")"; } # skip rights granted on system level if we were asked to unless ( $args{'IncludeSystemRights'} ) { $query .= " AND ObjectType != 'RT::System'"; } my (@object_clauses); foreach my $obj ( @{ $args{'EquivObjects'} } ) { my $type = ref($obj) ? ref($obj) : $obj; my $object_clause = "ObjectType = '$type'"; if ( my $id = eval { $obj->id } ) { $object_clause .= " AND ObjectId = $id"; } push @object_clauses, "($object_clause)"; } # find ACLs that are related to our objects only $query .= " AND (" . join( ' OR ', @object_clauses ) . ")" if @object_clauses; return $query; } =head2 InvalidateACLCache Cleans out and reinitializes the user rights cache =cut sub InvalidateACLCache { $_ACL_CACHE = {} } =head2 _GetPrincipalTypeForACL Gets the principal type. if it's a user, it's a user. if it's a role group and it has a Type, return that. if it has no type, return group. =cut sub _GetPrincipalTypeForACL { my $self = shift; if ($self->IsRoleGroup) { return $self->Object->Name; } else { return $self->PrincipalType; } } =head2 _ReferenceId Returns a list uniquely representing an object or normal scalar. For a scalar, its string value is returned. For an object that has an id() method which returns a value, its class name and id are returned as a string separated by a "-". For an object that has an id() method which returns false, its class name is returned. =cut sub _ReferenceId { my $self = shift; my $scalar = shift; my $id = eval { $scalar->id }; if ($@) { return $scalar; } elsif ($id) { return ref($scalar) . "-" . $id; } else { return ref($scalar); } } =head2 id Returns the current value of id. (In the database, id is stored as int(11).) =cut =head2 PrincipalType Returns the current value of PrincipalType. (In the database, PrincipalType is stored as varchar(16).) =head2 SetPrincipalType VALUE Set PrincipalType to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, PrincipalType will be stored as a varchar(16).) =cut =head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) =head2 SetDisabled VALUE Set Disabled to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Disabled will be stored as a smallint(6).) =cut sub _CoreAccessible { { id => {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, PrincipalType => {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Disabled => {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; sub __DependsOn { my $self = shift; my %args = ( Shredder => undef, Dependencies => undef, @_, ); my $deps = $args{'Dependencies'}; my $list = []; # Group or User # Could be wiped allready my $obj = $self->Object; if( defined $obj->id ) { push( @$list, $obj ); } # Access Control List my $objs = RT::ACL->new( $self->CurrentUser ); $objs->Limit( FIELD => 'PrincipalId', OPERATOR => '=', VALUE => $self->Id ); push( @$list, $objs ); # AddWatcher/DelWatcher txns foreach my $type ( qw(AddWatcher DelWatcher) ) { my $objs = RT::Transactions->new( $self->CurrentUser ); $objs->Limit( FIELD => $type =~ /Add/? 'NewValue': 'OldValue', VALUE => $self->Id ); $objs->Limit( FIELD => 'Type', VALUE => $type ); push( @$list, $objs ); } $deps->_PushDependencies( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON, TargetObjects => $list, Shredder => $args{'Shredder'} ); return $self->SUPER::__DependsOn( %args ); } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Tickets.pm000644 000765 000024 00000262304 13437510132 016063 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} =head1 NAME RT::Tickets - A collection of Ticket objects =head1 SYNOPSIS use RT::Tickets; my $tickets = RT::Tickets->new($CurrentUser); =head1 DESCRIPTION A collection of RT::Tickets. =head1 METHODS =cut package RT::Tickets; use strict; use warnings; use base 'RT::SearchBuilder'; use Role::Basic 'with'; with 'RT::SearchBuilder::Role::Roles'; use Scalar::Util qw/blessed/; use 5.010; use RT::Ticket; use RT::SQL; sub Table { 'Tickets'} use RT::CustomFields; use RT::CustomRoles; __PACKAGE__->RegisterCustomFieldJoin(@$_) for [ "RT::Transaction" => sub { $_[0]->JoinTransactions } ], [ "RT::Queue" => sub { # XXX: Could avoid join and use main.Queue with some refactoring? return $_[0]->{_sql_aliases}{queues} ||= $_[0]->Join( ALIAS1 => 'main', FIELD1 => 'Queue', TABLE2 => 'Queues', FIELD2 => 'id', ); } ]; # Configuration Tables: # FIELD_METADATA is a mapping of searchable Field name, to Type, and other # metadata. our %FIELD_METADATA = ( Status => [ 'STRING', ], #loc_left_pair SLA => [ 'STRING', ], #loc_left_pair Queue => [ 'QUEUE' ], #loc_left_pair Type => [ 'ENUM', ], #loc_left_pair Creator => [ 'ENUM' => 'User', ], #loc_left_pair LastUpdatedBy => [ 'ENUM' => 'User', ], #loc_left_pair Owner => [ 'WATCHERFIELD' => 'Owner', ], #loc_left_pair EffectiveId => [ 'INT', ], #loc_left_pair id => [ 'ID', ], #loc_left_pair InitialPriority => [ 'INT', ], #loc_left_pair FinalPriority => [ 'INT', ], #loc_left_pair Priority => [ 'INT', ], #loc_left_pair TimeLeft => [ 'INT', ], #loc_left_pair TimeWorked => [ 'INT', ], #loc_left_pair TimeEstimated => [ 'INT', ], #loc_left_pair Linked => [ 'LINK' ], #loc_left_pair LinkedTo => [ 'LINK' => 'To' ], #loc_left_pair LinkedFrom => [ 'LINK' => 'From' ], #loc_left_pair MemberOf => [ 'LINK' => To => 'MemberOf', ], #loc_left_pair DependsOn => [ 'LINK' => To => 'DependsOn', ], #loc_left_pair RefersTo => [ 'LINK' => To => 'RefersTo', ], #loc_left_pair HasMember => [ 'LINK' => From => 'MemberOf', ], #loc_left_pair DependentOn => [ 'LINK' => From => 'DependsOn', ], #loc_left_pair DependedOnBy => [ 'LINK' => From => 'DependsOn', ], #loc_left_pair ReferredToBy => [ 'LINK' => From => 'RefersTo', ], #loc_left_pair Told => [ 'DATE' => 'Told', ], #loc_left_pair Starts => [ 'DATE' => 'Starts', ], #loc_left_pair Started => [ 'DATE' => 'Started', ], #loc_left_pair Due => [ 'DATE' => 'Due', ], #loc_left_pair Resolved => [ 'DATE' => 'Resolved', ], #loc_left_pair LastUpdated => [ 'DATE' => 'LastUpdated', ], #loc_left_pair Created => [ 'DATE' => 'Created', ], #loc_left_pair Subject => [ 'STRING', ], #loc_left_pair Content => [ 'TRANSCONTENT', ], #loc_left_pair ContentType => [ 'TRANSFIELD', ], #loc_left_pair Filename => [ 'TRANSFIELD', ], #loc_left_pair TransactionDate => [ 'TRANSDATE', ], #loc_left_pair Requestor => [ 'WATCHERFIELD' => 'Requestor', ], #loc_left_pair Requestors => [ 'WATCHERFIELD' => 'Requestor', ], #loc_left_pair Cc => [ 'WATCHERFIELD' => 'Cc', ], #loc_left_pair AdminCc => [ 'WATCHERFIELD' => 'AdminCc', ], #loc_left_pair Watcher => [ 'WATCHERFIELD', ], #loc_left_pair QueueCc => [ 'WATCHERFIELD' => 'Cc' => 'Queue', ], #loc_left_pair QueueAdminCc => [ 'WATCHERFIELD' => 'AdminCc' => 'Queue', ], #loc_left_pair QueueWatcher => [ 'WATCHERFIELD' => undef => 'Queue', ], #loc_left_pair CustomRole => [ 'WATCHERFIELD' ], # loc_left_pair CustomFieldValue => [ 'CUSTOMFIELD' => 'Ticket' ], #loc_left_pair CustomField => [ 'CUSTOMFIELD' => 'Ticket' ], #loc_left_pair CF => [ 'CUSTOMFIELD' => 'Ticket' ], #loc_left_pair TxnCF => [ 'CUSTOMFIELD' => 'Transaction' ], #loc_left_pair TransactionCF => [ 'CUSTOMFIELD' => 'Transaction' ], #loc_left_pair QueueCF => [ 'CUSTOMFIELD' => 'Queue' ], #loc_left_pair Lifecycle => [ 'LIFECYCLE' ], #loc_left_pair Updated => [ 'TRANSDATE', ], #loc_left_pair UpdatedBy => [ 'TRANSCREATOR', ], #loc_left_pair OwnerGroup => [ 'MEMBERSHIPFIELD' => 'Owner', ], #loc_left_pair RequestorGroup => [ 'MEMBERSHIPFIELD' => 'Requestor', ], #loc_left_pair CCGroup => [ 'MEMBERSHIPFIELD' => 'Cc', ], #loc_left_pair AdminCCGroup => [ 'MEMBERSHIPFIELD' => 'AdminCc', ], #loc_left_pair WatcherGroup => [ 'MEMBERSHIPFIELD', ], #loc_left_pair HasAttribute => [ 'HASATTRIBUTE', 1 ], HasNoAttribute => [ 'HASATTRIBUTE', 0 ], ); # Lower Case version of FIELDS, for case insensitivity our %LOWER_CASE_FIELDS = map { ( lc($_) => $_ ) } (keys %FIELD_METADATA); our %SEARCHABLE_SUBFIELDS = ( User => [qw( EmailAddress Name RealName Nickname Organization Address1 Address2 City State Zip Country WorkPhone HomePhone MobilePhone PagerPhone id )], ); # Mapping of Field Type to Function our %dispatch = ( ENUM => \&_EnumLimit, INT => \&_IntLimit, ID => \&_IdLimit, LINK => \&_LinkLimit, DATE => \&_DateLimit, STRING => \&_StringLimit, QUEUE => \&_QueueLimit, TRANSFIELD => \&_TransLimit, TRANSCONTENT => \&_TransContentLimit, TRANSDATE => \&_TransDateLimit, TRANSCREATOR => \&_TransCreatorLimit, WATCHERFIELD => \&_WatcherLimit, MEMBERSHIPFIELD => \&_WatcherMembershipLimit, CUSTOMFIELD => \&_CustomFieldLimit, HASATTRIBUTE => \&_HasAttributeLimit, LIFECYCLE => \&_LifecycleLimit, ); # Default EntryAggregator per type # if you specify OP, you must specify all valid OPs my %DefaultEA = ( INT => 'AND', ENUM => { '=' => 'OR', '!=' => 'AND' }, DATE => { 'IS' => 'OR', 'IS NOT' => 'OR', '=' => 'OR', '>=' => 'AND', '<=' => 'AND', '>' => 'AND', '<' => 'AND' }, STRING => { '=' => 'OR', '!=' => 'AND', 'LIKE' => 'AND', 'NOT LIKE' => 'AND' }, QUEUE => { '=' => 'OR', '!=' => 'AND', 'LIKE' => 'OR', 'NOT LIKE' => 'AND' }, TRANSFIELD => 'AND', TRANSDATE => 'AND', LINK => 'OR', LINKFIELD => 'AND', TARGET => 'AND', BASE => 'AND', WATCHERFIELD => { '=' => 'OR', '!=' => 'AND', 'LIKE' => 'OR', 'NOT LIKE' => 'AND' }, HASATTRIBUTE => { '=' => 'AND', '!=' => 'AND', }, CUSTOMFIELD => 'OR', ); sub FIELDS { return \%FIELD_METADATA } our @SORTFIELDS = qw(id Status Queue Subject Owner Created Due Starts Started Told Resolved LastUpdated Priority TimeWorked TimeLeft); =head2 SortFields Returns the list of fields that lists of tickets can easily be sorted by =cut sub SortFields { my $self = shift; return (@SORTFIELDS); } # BEGIN SQL STUFF ********************************* sub CleanSlate { my $self = shift; $self->SUPER::CleanSlate( @_ ); delete $self->{$_} foreach qw( _sql_cf_alias _sql_group_members_aliases _sql_object_cfv_alias _sql_role_group_aliases _sql_trattachalias _sql_u_watchers_alias_for_sort _sql_u_watchers_aliases _sql_current_user_can_see_applied ); } =head1 Limit Helper Routines These routines are the targets of a dispatch table depending on the type of field. They all share the same signature: my ($self,$field,$op,$value,@rest) = @_; The values in @rest should be suitable for passing directly to DBIx::SearchBuilder::Limit. Essentially they are an expanded/broken out (and much simplified) version of what ProcessRestrictions used to do. They're also much more clearly delineated by the TYPE of field being processed. =head2 _IdLimit Handle ID field. =cut sub _IdLimit { my ( $sb, $field, $op, $value, @rest ) = @_; if ( $value eq '__Bookmarked__' ) { return $sb->_BookmarkLimit( $field, $op, $value, @rest ); } else { return $sb->_IntLimit( $field, $op, $value, @rest ); } } sub _BookmarkLimit { my ( $sb, $field, $op, $value, @rest ) = @_; die "Invalid operator $op for __Bookmarked__ search on $field" unless $op =~ /^(=|!=)$/; my @bookmarks = $sb->CurrentUser->UserObj->Bookmarks; return $sb->Limit( FIELD => $field, OPERATOR => $op, VALUE => 0, @rest, ) unless @bookmarks; # as bookmarked tickets can be merged we have to use a join # but it should be pretty lightweight my $tickets_alias = $sb->Join( TYPE => 'LEFT', ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Tickets', FIELD2 => 'EffectiveId', ); $op = $op eq '='? 'IN': 'NOT IN'; $sb->Limit( ALIAS => $tickets_alias, FIELD => 'id', OPERATOR => $op, VALUE => [ @bookmarks ], @rest, ); } =head2 _EnumLimit Handle Fields which are limited to certain values, and potentially need to be looked up from another class. This subroutine actually handles two different kinds of fields. For some the user is responsible for limiting the values. (i.e. Status, Type). For others, the value specified by the user will be looked by via specified class. Meta Data: name of class to lookup in (Optional) =cut sub _EnumLimit { my ( $sb, $field, $op, $value, @rest ) = @_; # SQL::Statement changes != to <>. (Can we remove this now?) $op = "!=" if $op eq "<>"; die "Invalid Operation: $op for $field" unless $op eq "=" or $op eq "!="; my $meta = $FIELD_METADATA{$field}; if ( defined $meta->[1] && defined $value && $value !~ /^\d+$/ ) { my $class = "RT::" . $meta->[1]; my $o = $class->new( $sb->CurrentUser ); $o->Load($value); $value = $o->Id || 0; } elsif ( $field eq "Type" ) { $value = lc $value if $value =~ /^(ticket|approval|reminder)$/i; } $sb->Limit( FIELD => $field, VALUE => $value, OPERATOR => $op, @rest, ); } =head2 _IntLimit Handle fields where the values are limited to integers. (For example, Priority, TimeWorked.) Meta Data: None =cut sub _IntLimit { my ( $sb, $field, $op, $value, @rest ) = @_; my $is_a_like = $op =~ /MATCHES|ENDSWITH|STARTSWITH|LIKE/i; # We want to support for ticket autocomplete, # but we need to explicitly typecast on Postgres if ( $is_a_like && RT->Config->Get('DatabaseType') eq 'Pg' ) { return $sb->Limit( FUNCTION => "CAST(main.$field AS TEXT)", OPERATOR => $op, VALUE => $value, @rest, ); } $sb->Limit( FIELD => $field, VALUE => $value, OPERATOR => $op, @rest, ); } =head2 _LinkLimit Handle fields which deal with links between tickets. (MemberOf, DependsOn) Meta Data: 1: Direction (From, To) 2: Link Type (MemberOf, DependsOn, RefersTo) =cut sub _LinkLimit { my ( $sb, $field, $op, $value, @rest ) = @_; my $meta = $FIELD_METADATA{$field}; die "Invalid Operator $op for $field" unless $op =~ /^(=|!=|IS|IS NOT)$/io; my $is_negative = 0; if ( $op eq '!=' || $op =~ /\bNOT\b/i ) { $is_negative = 1; } my $is_null = 0; $is_null = 1 if !$value || $value =~ /^null$/io; my $direction = $meta->[1] || ''; my ($matchfield, $linkfield) = ('', ''); if ( $direction eq 'To' ) { ($matchfield, $linkfield) = ("Target", "Base"); } elsif ( $direction eq 'From' ) { ($matchfield, $linkfield) = ("Base", "Target"); } elsif ( $direction ) { die "Invalid link direction '$direction' for $field\n"; } else { $sb->_OpenParen; $sb->_LinkLimit( 'LinkedTo', $op, $value, @rest ); $sb->_LinkLimit( 'LinkedFrom', $op, $value, @rest, ENTRYAGGREGATOR => (($is_negative && $is_null) || (!$is_null && !$is_negative))? 'OR': 'AND', ); $sb->_CloseParen; return; } my $is_local = 1; if ( $is_null ) { $op = ($op =~ /^(=|IS)$/i)? 'IS': 'IS NOT'; } elsif ( $value =~ /\D/ ) { $value = RT::URI->new( $sb->CurrentUser )->CanonicalizeURI( $value ); $is_local = 0; } $matchfield = "Local$matchfield" if $is_local; #For doing a left join to find "unlinked tickets" we want to generate a query that looks like this # SELECT main.* FROM Tickets main # LEFT JOIN Links Links_1 ON ( (Links_1.Type = 'MemberOf') # AND(main.id = Links_1.LocalTarget)) # WHERE Links_1.LocalBase IS NULL; if ( $is_null ) { my $linkalias = $sb->Join( TYPE => 'LEFT', ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Links', FIELD2 => 'Local' . $linkfield ); $sb->Limit( LEFTJOIN => $linkalias, FIELD => 'Type', OPERATOR => '=', VALUE => $meta->[2], ) if $meta->[2]; $sb->Limit( @rest, ALIAS => $linkalias, FIELD => $matchfield, OPERATOR => $op, VALUE => 'NULL', QUOTEVALUE => 0, ); } else { my $linkalias = $sb->Join( TYPE => 'LEFT', ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Links', FIELD2 => 'Local' . $linkfield ); $sb->Limit( LEFTJOIN => $linkalias, FIELD => 'Type', OPERATOR => '=', VALUE => $meta->[2], ) if $meta->[2]; $sb->Limit( LEFTJOIN => $linkalias, FIELD => $matchfield, OPERATOR => '=', VALUE => $value, ); $sb->Limit( @rest, ALIAS => $linkalias, FIELD => $matchfield, OPERATOR => $is_negative? 'IS': 'IS NOT', VALUE => 'NULL', QUOTEVALUE => 0, ); } } =head2 _DateLimit Handle date fields. (Created, LastTold..) Meta Data: 1: type of link. (Probably not necessary.) =cut sub _DateLimit { my ( $sb, $field, $op, $value, %rest ) = @_; die "Invalid Date Op: $op" unless $op =~ /^(=|>|<|>=|<=|IS(\s+NOT)?)$/i; my $meta = $FIELD_METADATA{$field}; die "Incorrect Meta Data for $field" unless ( defined $meta->[1] ); if ( $op =~ /^(IS(\s+NOT)?)$/i) { return $sb->Limit( FUNCTION => $sb->NotSetDateToNullFunction, FIELD => $meta->[1], OPERATOR => $op, VALUE => "NULL", %rest, ); } if ( my $subkey = $rest{SUBKEY} ) { if ( $subkey eq 'DayOfWeek' && $op !~ /IS/i && $value =~ /[^0-9]/ ) { for ( my $i = 0; $i < @RT::Date::DAYS_OF_WEEK; $i++ ) { # Use a case-insensitive regex for better matching across # locales since we don't have fc() and lc() is worse. Really # we should be doing Unicode normalization too, but we don't do # that elsewhere in RT. # # XXX I18N: Replace the regex with fc() once we're guaranteed 5.16. next unless lc $RT::Date::DAYS_OF_WEEK[ $i ] eq lc $value or $sb->CurrentUser->loc($RT::Date::DAYS_OF_WEEK[ $i ]) =~ /^\Q$value\E$/i; $value = $i; last; } return $sb->Limit( FIELD => 'id', VALUE => 0, %rest ) if $value =~ /[^0-9]/; } elsif ( $subkey eq 'Month' && $op !~ /IS/i && $value =~ /[^0-9]/ ) { for ( my $i = 0; $i < @RT::Date::MONTHS; $i++ ) { # Use a case-insensitive regex for better matching across # locales since we don't have fc() and lc() is worse. Really # we should be doing Unicode normalization too, but we don't do # that elsewhere in RT. # # XXX I18N: Replace the regex with fc() once we're guaranteed 5.16. next unless lc $RT::Date::MONTHS[ $i ] eq lc $value or $sb->CurrentUser->loc($RT::Date::MONTHS[ $i ]) =~ /^\Q$value\E$/i; $value = $i + 1; last; } return $sb->Limit( FIELD => 'id', VALUE => 0, %rest ) if $value =~ /[^0-9]/; } my $tz; if ( RT->Config->Get('ChartsTimezonesInDB') ) { my $to = $sb->CurrentUser->UserObj->Timezone || RT->Config->Get('Timezone'); $tz = { From => 'UTC', To => $to } if $to && lc $to ne 'utc'; } # $subkey is validated by DateTimeFunction my $function = $RT::Handle->DateTimeFunction( Type => $subkey, Field => $sb->NotSetDateToNullFunction, Timezone => $tz, ); return $sb->Limit( FUNCTION => $function, FIELD => $meta->[1], OPERATOR => $op, VALUE => $value, %rest, ); } my $date = RT::Date->new( $sb->CurrentUser ); $date->Set( Format => 'unknown', Value => $value ); if ( $op eq "=" ) { # if we're specifying =, that means we want everything on a # particular single day. in the database, we need to check for > # and < the edges of that day. $date->SetToMidnight( Timezone => 'server' ); my $daystart = $date->ISO; $date->AddDay; my $dayend = $date->ISO; $sb->_OpenParen; $sb->Limit( FIELD => $meta->[1], OPERATOR => ">=", VALUE => $daystart, %rest, ); $sb->Limit( FIELD => $meta->[1], OPERATOR => "<", VALUE => $dayend, %rest, ENTRYAGGREGATOR => 'AND', ); $sb->_CloseParen; } else { $sb->Limit( FUNCTION => $sb->NotSetDateToNullFunction, FIELD => $meta->[1], OPERATOR => $op, VALUE => $date->ISO, %rest, ); } } =head2 _StringLimit Handle simple fields which are just strings. (Subject,Type) Meta Data: None =cut sub _StringLimit { my ( $sb, $field, $op, $value, @rest ) = @_; # FIXME: # Valid Operators: # =, !=, LIKE, NOT LIKE if ( RT->Config->Get('DatabaseType') eq 'Oracle' && (!defined $value || !length $value) && lc($op) ne 'is' && lc($op) ne 'is not' ) { if ($op eq '!=' || $op =~ /^NOT\s/i) { $op = 'IS NOT'; } else { $op = 'IS'; } $value = 'NULL'; } if ($field eq "Status") { $value = lc $value; } $sb->Limit( FIELD => $field, OPERATOR => $op, VALUE => $value, CASESENSITIVE => 0, @rest, ); } =head2 _QueueLimit Handle Queue field supporting both "is" and "match". Input should be a queue name or a partial string. =cut sub _QueueLimit { my ($sb, $field, $op, $value, @rest ) = @_; if ($op eq 'LIKE' || $op eq 'NOT LIKE') { my $alias = $sb->{_sql_aliases}{queues} ||= $sb->Join( ALIAS1 => 'main', FIELD1 => 'Queue', TABLE2 => 'Queues', FIELD2 => 'id', ); return $sb->Limit( ALIAS => $alias, FIELD => 'Name', OPERATOR => $op, VALUE => $value, CASESENSITIVE => 0, @rest, ); } my $o = RT::Queue->new( $sb->CurrentUser ); $o->Load($value); $value = $o->Id || 0; $sb->Limit( FIELD => $field, OPERATOR => $op, VALUE => $value, CASESENSITIVE => 0, @rest, ); } =head2 _TransDateLimit Handle fields limiting based on Transaction Date. The inpupt value must be in a format parseable by Time::ParseDate Meta Data: None =cut # This routine should really be factored into translimit. sub _TransDateLimit { my ( $sb, $field, $op, $value, @rest ) = @_; # See the comments for TransLimit, they apply here too my $txn_alias = $sb->JoinTransactions; my $date = RT::Date->new( $sb->CurrentUser ); $date->Set( Format => 'unknown', Value => $value ); $sb->_OpenParen; if ( $op eq "=" ) { # if we're specifying =, that means we want everything on a # particular single day. in the database, we need to check for > # and < the edges of that day. $date->SetToMidnight( Timezone => 'server' ); my $daystart = $date->ISO; $date->AddDay; my $dayend = $date->ISO; $sb->Limit( ALIAS => $txn_alias, FIELD => 'Created', OPERATOR => ">=", VALUE => $daystart, @rest ); $sb->Limit( ALIAS => $txn_alias, FIELD => 'Created', OPERATOR => "<=", VALUE => $dayend, @rest, ENTRYAGGREGATOR => 'AND', ); } # not searching for a single day else { #Search for the right field $sb->Limit( ALIAS => $txn_alias, FIELD => 'Created', OPERATOR => $op, VALUE => $date->ISO, @rest ); } $sb->_CloseParen; } sub _TransCreatorLimit { my ( $sb, $field, $op, $value, @rest ) = @_; $op = "!=" if $op eq "<>"; die "Invalid Operation: $op for $field" unless $op eq "=" or $op eq "!="; # See the comments for TransLimit, they apply here too my $txn_alias = $sb->JoinTransactions; if ( defined $value && $value !~ /^\d+$/ ) { my $u = RT::User->new( $sb->CurrentUser ); $u->Load($value); $value = $u->id || 0; } $sb->Limit( ALIAS => $txn_alias, FIELD => 'Creator', OPERATOR => $op, VALUE => $value, @rest ); } =head2 _TransLimit Limit based on the ContentType or the Filename of a transaction. =cut sub _TransLimit { my ( $self, $field, $op, $value, %rest ) = @_; my $txn_alias = $self->JoinTransactions; unless ( defined $self->{_sql_trattachalias} ) { $self->{_sql_trattachalias} = $self->Join( TYPE => 'LEFT', # not all txns have an attachment ALIAS1 => $txn_alias, FIELD1 => 'id', TABLE2 => 'Attachments', FIELD2 => 'TransactionId', ); } $self->Limit( %rest, ALIAS => $self->{_sql_trattachalias}, FIELD => $field, OPERATOR => $op, VALUE => $value, CASESENSITIVE => 0, ); } =head2 _TransContentLimit Limit based on the Content of a transaction. =cut sub _TransContentLimit { # Content search # If only this was this simple. We've got to do something # complicated here: #Basically, we want to make sure that the limits apply to #the same attachment, rather than just another attachment #for the same ticket, no matter how many clauses we lump #on. # In the SQL, we might have # (( Content = foo ) or ( Content = bar AND Content = baz )) # The AND group should share the same Alias. # Actually, maybe it doesn't matter. We use the same alias and it # works itself out? (er.. different.) # Steal more from _ProcessRestrictions # FIXME: Maybe look at the previous FooLimit call, and if it was a # TransLimit and EntryAggregator == AND, reuse the Aliases? # Or better - store the aliases on a per subclause basis - since # those are going to be the things we want to relate to each other, # anyway. # maybe we should not allow certain kinds of aggregation of these # clauses and do a psuedo regex instead? - the problem is getting # them all into the same subclause when you have (A op B op C) - the # way they get parsed in the tree they're in different subclauses. my ( $self, $field, $op, $value, %rest ) = @_; $field = 'Content' if $field =~ /\W/; my $config = RT->Config->Get('FullTextSearch') || {}; unless ( $config->{'Enable'} ) { $self->Limit( %rest, FIELD => 'id', VALUE => 0 ); return; } my $txn_alias = $self->JoinTransactions; unless ( defined $self->{_sql_trattachalias} ) { $self->{_sql_trattachalias} = $self->Join( TYPE => 'LEFT', # not all txns have an attachment ALIAS1 => $txn_alias, FIELD1 => 'id', TABLE2 => 'Attachments', FIELD2 => 'TransactionId', ); } $self->_OpenParen; if ( $config->{'Indexed'} ) { my $db_type = RT->Config->Get('DatabaseType'); my $alias; if ( $config->{'Table'} and $config->{'Table'} ne "Attachments") { $alias = $self->{'_sql_aliases'}{'full_text'} ||= $self->Join( TYPE => 'LEFT', ALIAS1 => $self->{'_sql_trattachalias'}, FIELD1 => 'id', TABLE2 => $config->{'Table'}, FIELD2 => 'id', ); } else { $alias = $self->{'_sql_trattachalias'}; } #XXX: handle negative searches my $index = $config->{'Column'}; if ( $db_type eq 'Oracle' ) { my $dbh = $RT::Handle->dbh; my $alias = $self->{_sql_trattachalias}; $self->Limit( %rest, FUNCTION => "CONTAINS( $alias.$field, ".$dbh->quote($value) .")", OPERATOR => '>', VALUE => 0, QUOTEVALUE => 0, CASESENSITIVE => 1, ); # this is required to trick DBIx::SB's LEFT JOINS optimizer # into deciding that join is redundant as it is $self->Limit( ENTRYAGGREGATOR => 'AND', ALIAS => $self->{_sql_trattachalias}, FIELD => 'Content', OPERATOR => 'IS NOT', VALUE => 'NULL', ); } elsif ( $db_type eq 'Pg' ) { my $dbh = $RT::Handle->dbh; $self->Limit( %rest, ALIAS => $alias, FIELD => $index, OPERATOR => '@@', VALUE => 'plainto_tsquery('. $dbh->quote($value) .')', QUOTEVALUE => 0, ); } elsif ( $db_type eq 'mysql' and not $config->{Sphinx}) { my $dbh = $RT::Handle->dbh; $self->Limit( %rest, FUNCTION => "MATCH($alias.Content)", OPERATOR => 'AGAINST', VALUE => "(". $dbh->quote($value) ." IN BOOLEAN MODE)", QUOTEVALUE => 0, ); # As with Oracle, above, this forces the LEFT JOINs into # JOINS, which allows the FULLTEXT index to be used. # Orthogonally, the IS NOT NULL clause also helps the # optimizer decide to use the index. $self->Limit( ENTRYAGGREGATOR => 'AND', ALIAS => $alias, FIELD => "Content", OPERATOR => 'IS NOT', VALUE => 'NULL', QUOTEVALUE => 0, ); } elsif ( $db_type eq 'mysql' ) { # XXX: We could theoretically skip the join to Attachments, # and have Sphinx simply index and group by the TicketId, # and join Ticket.id to that attribute, which would be much # more efficient -- however, this is only a possibility if # there are no other transaction limits. # This is a special character. Note that \ does not escape # itself (in Sphinx 2.1.0, at least), so 'foo\;bar' becoming # 'foo\\;bar' is not a vulnerability, and is still parsed as # "foo, \, ;, then bar". Happily, the default mode is # "all", meaning that boolean operators are not special. $value =~ s/;/\\;/g; my $max = $config->{'MaxMatches'}; $self->Limit( %rest, ALIAS => $alias, FIELD => 'query', OPERATOR => '=', VALUE => "$value;limit=$max;maxmatches=$max", ); } } else { $self->Limit( %rest, ALIAS => $txn_alias, FIELD => 'Type', OPERATOR => 'NOT IN', VALUE => ['EmailRecord', 'CommentEmailRecord'], ); $self->Limit( ENTRYAGGREGATOR => 'AND', ALIAS => $self->{_sql_trattachalias}, FIELD => $field, OPERATOR => $op, VALUE => $value, CASESENSITIVE => 0, ); } if ( RT->Config->Get('DontSearchFileAttachments') ) { $self->Limit( ENTRYAGGREGATOR => 'AND', ALIAS => $self->{_sql_trattachalias}, FIELD => 'Filename', OPERATOR => 'IS', VALUE => 'NULL', ); } $self->_CloseParen; } =head2 _CustomRoleDecipher Try and turn a custom role descriptor (e.g. C) into (role, column, original name). =cut sub _CustomRoleDecipher { my ($self, $string) = @_; my ($field, $column) = ($string =~ /^\{(.+)\}(?:\.(\w+))?$/); my $role; if ( $field =~ /\D/ ) { my $roles = RT::CustomRoles->new( $self->CurrentUser ); $roles->Limit( FIELD => 'Name', VALUE => $field, CASESENSITIVE => 0 ); # custom roles are named uniquely, but just in case there are # multiple matches, bail out as we don't know which one to use $role = $roles->First; if ( $role ) { $role = undef if $roles->Next; } } else { $role = RT::CustomRole->new( $self->CurrentUser ); $role->Load( $field ); } return ($role, $column, $field); } =head2 _WatcherLimit Handle watcher limits. (Requestor, CC, etc..) Meta Data: 1: Field to query on =cut sub _WatcherLimit { my $self = shift; my $field = shift; my $op = shift; my $value = shift; my %rest = (@_); my $meta = $FIELD_METADATA{ $field }; my $type = $meta->[1] || ''; my $class = $meta->[2] || 'Ticket'; my $column = $rest{SUBKEY}; if ($field eq 'CustomRole') { my ($role, $col, $original_name) = $self->_CustomRoleDecipher( $column ); $column = $col || 'id'; $type = $role ? $role->GroupType : $original_name; } # Bail if the subfield is not allowed if ( $column and not grep { $_ eq $column } @{$SEARCHABLE_SUBFIELDS{'User'}}) { die "Invalid watcher subfield: '$column'"; } $self->RoleLimit( TYPE => $type, CLASS => "RT::$class", FIELD => $column, OPERATOR => $op, VALUE => $value, SUBCLAUSE => "ticketsql", %rest, ); } =head2 _WatcherMembershipLimit Handle watcher membership limits, i.e. whether the watcher belongs to a specific group or not. Meta Data: 1: Role to query on =cut sub _WatcherMembershipLimit { my ( $self, $field, $op, $value, %rest ) = @_; # we don't support anything but '=' die "Invalid $field Op: $op" unless $op =~ /^=$/; unless ( $value =~ /^\d+$/ ) { my $group = RT::Group->new( $self->CurrentUser ); $group->LoadUserDefinedGroup( $value ); $value = $group->id || 0; } my $meta = $FIELD_METADATA{$field}; my $type = $meta->[1] || ''; my ($members_alias, $members_column); if ( $type eq 'Owner' ) { ($members_alias, $members_column) = ('main', 'Owner'); } else { (undef, undef, $members_alias) = $self->_WatcherJoin( New => 1, Name => $type ); $members_column = 'id'; } my $cgm_alias = $self->Join( ALIAS1 => $members_alias, FIELD1 => $members_column, TABLE2 => 'CachedGroupMembers', FIELD2 => 'MemberId', ); $self->Limit( LEFTJOIN => $cgm_alias, ALIAS => $cgm_alias, FIELD => 'Disabled', VALUE => 0, ); $self->Limit( ALIAS => $cgm_alias, FIELD => 'GroupId', VALUE => $value, OPERATOR => $op, %rest, ); } =head2 _CustomFieldDecipher Try and turn a CF descriptor into (cfid, cfname) object pair. Takes an optional second parameter of the CF LookupType, defaults to Ticket CFs. =cut sub _CustomFieldDecipher { my ($self, $string, $lookuptype) = @_; $lookuptype ||= $self->_SingularClass->CustomFieldLookupType; my ($object, $field, $column) = ($string =~ /^(?:(.+?)\.)?\{(.+)\}(?:\.(Content|LargeContent))?$/); $field ||= ($string =~ /^\{(.*?)\}$/)[0] || $string; my ($cf, $applied_to); if ( $object ) { my $record_class = RT::CustomField->RecordClassFromLookupType($lookuptype); $applied_to = $record_class->new( $self->CurrentUser ); $applied_to->Load( $object ); if ( $applied_to->id ) { RT->Logger->debug("Limiting to CFs identified by '$field' applied to $record_class #@{[$applied_to->id]} (loaded via '$object')"); } else { RT->Logger->warning("$record_class '$object' doesn't exist, parsed from '$string'"); $object = 0; undef $applied_to; } } if ( $field =~ /\D/ ) { $object ||= ''; my $cfs = RT::CustomFields->new( $self->CurrentUser ); $cfs->Limit( FIELD => 'Name', VALUE => $field, CASESENSITIVE => 0 ); $cfs->LimitToLookupType($lookuptype); if ($applied_to) { $cfs->SetContextObject($applied_to); $cfs->LimitToObjectId($applied_to->id); } # if there is more then one field the current user can # see with the same name then we shouldn't return cf object # as we don't know which one to use $cf = $cfs->First; if ( $cf ) { $cf = undef if $cfs->Next; } } else { $cf = RT::CustomField->new( $self->CurrentUser ); $cf->Load( $field ); $cf->SetContextObject($applied_to) if $cf->id and $applied_to; } return ($object, $field, $cf, $column); } =head2 _CustomFieldLimit Limit based on CustomFields Meta Data: none =cut sub _CustomFieldLimit { my ( $self, $_field, $op, $value, %rest ) = @_; my $meta = $FIELD_METADATA{ $_field }; my $class = $meta->[1] || 'Ticket'; my $type = "RT::$class"->CustomFieldLookupType; my $field = $rest{'SUBKEY'} || die "No field specified"; # For our sanity, we can only limit on one object at a time my ($object, $cfid, $cf, $column); ($object, $field, $cf, $column) = $self->_CustomFieldDecipher( $field, $type ); $self->_LimitCustomField( %rest, LOOKUPTYPE => $type, CUSTOMFIELD => $cf || $field, KEY => $cf ? $cf->id : "$type-$object.$field", OPERATOR => $op, VALUE => $value, COLUMN => $column, SUBCLAUSE => "ticketsql", ); } sub _CustomFieldJoinByName { my $self = shift; my ($ObjectAlias, $cf, $type) = @_; my ($ocfvalias, $CFs, $ocfalias) = $self->SUPER::_CustomFieldJoinByName(@_); $self->Limit( LEFTJOIN => $ocfalias, ENTRYAGGREGATOR => 'OR', FIELD => 'ObjectId', VALUE => 'main.Queue', QUOTEVALUE => 0, ); return ($ocfvalias, $CFs, $ocfalias); } sub _HasAttributeLimit { my ( $self, $field, $op, $value, %rest ) = @_; my $alias = $self->Join( TYPE => 'LEFT', ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Attributes', FIELD2 => 'ObjectId', ); $self->Limit( LEFTJOIN => $alias, FIELD => 'ObjectType', VALUE => 'RT::Ticket', ENTRYAGGREGATOR => 'AND' ); $self->Limit( LEFTJOIN => $alias, FIELD => 'Name', OPERATOR => $op, VALUE => $value, ENTRYAGGREGATOR => 'AND' ); $self->Limit( %rest, ALIAS => $alias, FIELD => 'id', OPERATOR => $FIELD_METADATA{$field}->[1]? 'IS NOT': 'IS', VALUE => 'NULL', QUOTEVALUE => 0, ); } sub _LifecycleLimit { my ( $self, $field, $op, $value, %rest ) = @_; die "Invalid Operator $op for $field" if $op =~ /^(IS|IS NOT)$/io; my $queue = $self->{_sql_aliases}{queues} ||= $_[0]->Join( ALIAS1 => 'main', FIELD1 => 'Queue', TABLE2 => 'Queues', FIELD2 => 'id', ); $self->Limit( ALIAS => $queue, FIELD => 'Lifecycle', OPERATOR => $op, VALUE => $value, %rest, ); } # End Helper Functions # End of SQL Stuff ------------------------------------------------- =head2 OrderByCols ARRAY A modified version of the OrderBy method which automatically joins where C is set to the name of a watcher type. =cut sub OrderByCols { my $self = shift; my @args = @_; my $clause; my @res = (); my $order = 0; foreach my $row (@args) { if ( $row->{ALIAS} ) { push @res, $row; next; } if ( $row->{FIELD} !~ /\./ ) { my $meta = $FIELD_METADATA{ $row->{FIELD} }; unless ( $meta ) { push @res, $row; next; } if ( $meta->[0] eq 'QUEUE' ) { my $alias = $self->Join( TYPE => 'LEFT', ALIAS1 => 'main', FIELD1 => $row->{'FIELD'}, TABLE2 => 'Queues', FIELD2 => 'id', ); push @res, { %$row, ALIAS => $alias, FIELD => "Name", CASESENSITIVE => 0 }; } elsif ( ( $meta->[0] eq 'ENUM' && ($meta->[1]||'') eq 'User' ) || ( $meta->[0] eq 'WATCHERFIELD' && ($meta->[1]||'') eq 'Owner' ) ) { my $alias = $self->Join( TYPE => 'LEFT', ALIAS1 => 'main', FIELD1 => $row->{'FIELD'}, TABLE2 => 'Users', FIELD2 => 'id', ); push @res, { %$row, ALIAS => $alias, FIELD => "Name", CASESENSITIVE => 0 }; } else { push @res, $row; } next; } my ( $field, $subkey ) = split /\./, $row->{FIELD}, 2; my $meta = $FIELD_METADATA{$field}; if ( defined $meta->[0] && $meta->[0] eq 'WATCHERFIELD' ) { my $type = $meta->[1] || ''; my $class = $meta->[2] || 'Ticket'; my $column = $subkey; if ($field eq 'CustomRole') { my ($role, $col, $original_name) = $self->_CustomRoleDecipher( $column ); $column = $col || 'id'; $type = $role ? $role->GroupType : $original_name; } # cache alias as we want to use one alias per watcher type for sorting my $cache_key = join "-", $type, $class; my $users = $self->{_sql_u_watchers_alias_for_sort}{ $cache_key }; unless ( $users ) { $self->{_sql_u_watchers_alias_for_sort}{ $cache_key } = $users = ( $self->_WatcherJoin( Name => $type, Class => "RT::" . $class ) )[2]; } push @res, { %$row, ALIAS => $users, FIELD => $column }; } elsif ( defined $meta->[0] && $meta->[0] eq 'CUSTOMFIELD' ) { my ($object, $field, $cf, $column) = $self->_CustomFieldDecipher( $subkey ); my $cfkey = $cf ? $cf->id : "$object.$field"; push @res, $self->_OrderByCF( $row, $cfkey, ($cf || $field) ); } elsif ( $field eq "Custom" && $subkey eq "Ownership") { # PAW logic is "reversed" my $order = "ASC"; if (exists $row->{ORDER} ) { my $o = $row->{ORDER}; delete $row->{ORDER}; $order = "DESC" if $o =~ /asc/i; } # Ticket.Owner 1 0 X # Unowned Tickets 0 1 X # Else 0 0 X foreach my $uid ( $self->CurrentUser->Id, RT->Nobody->Id ) { if ( RT->Config->Get('DatabaseType') eq 'Oracle' ) { my $f = ($row->{'ALIAS'} || 'main') .'.Owner'; push @res, { %$row, FIELD => undef, ALIAS => '', FUNCTION => "CASE WHEN $f=$uid THEN 1 ELSE 0 END", ORDER => $order }; } else { push @res, { %$row, FIELD => undef, FUNCTION => "Owner=$uid", ORDER => $order }; } } push @res, { %$row, FIELD => "Priority", ORDER => $order } ; } else { push @res, $row; } } return $self->SUPER::OrderByCols(@res); } sub _OpenParen { $_[0]->SUPER::_OpenParen( $_[1] || 'ticketsql' ); } sub _CloseParen { $_[0]->SUPER::_CloseParen( $_[1] || 'ticketsql' ); } sub Limit { my $self = shift; my %args = @_; $self->{'must_redo_search'} = 1; delete $self->{'raw_rows'}; delete $self->{'count_all'}; if ($self->{'using_restrictions'}) { RT->Deprecated( Message => "Mixing old-style LimitFoo methods with Limit is deprecated" ); $self->LimitField(@_); } $args{SUBCLAUSE} ||= "ticketsql" if $self->{parsing_ticketsql} and not $args{LEFTJOIN}; $self->{_sql_looking_at}{ lc $args{FIELD} } = 1 if $args{FIELD} and (not $args{ALIAS} or $args{ALIAS} eq "main"); $self->SUPER::Limit(%args); } =head2 LimitField Takes a paramhash with the fields FIELD, OPERATOR, VALUE and DESCRIPTION Generally best called from LimitFoo methods =cut sub LimitField { my $self = shift; my %args = ( FIELD => undef, OPERATOR => '=', VALUE => undef, DESCRIPTION => undef, @_ ); $args{'DESCRIPTION'} = $self->loc( "[_1] [_2] [_3]", $args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'} ) if ( !defined $args{'DESCRIPTION'} ); if ($self->_isLimited > 1) { RT->Deprecated( Message => "Mixing old-style LimitFoo methods with Limit is deprecated" ); } $self->{using_restrictions} = 1; my $index = $self->_NextIndex; # make the TicketRestrictions hash the equivalent of whatever we just passed in; %{ $self->{'TicketRestrictions'}{$index} } = %args; $self->{'RecalcTicketLimits'} = 1; return ($index); } =head2 LimitQueue LimitQueue takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of = or !=. (It defaults to =). VALUE is a queue id or Name. =cut sub LimitQueue { my $self = shift; my %args = ( VALUE => undef, OPERATOR => '=', @_ ); #TODO VALUE should also take queue objects if ( defined $args{'VALUE'} && $args{'VALUE'} !~ /^\d+$/ ) { my $queue = RT::Queue->new( $self->CurrentUser ); $queue->Load( $args{'VALUE'} ); $args{'VALUE'} = $queue->Id; } # What if they pass in an Id? Check for isNum() and convert to # string. #TODO check for a valid queue here $self->LimitField( FIELD => 'Queue', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Queue'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitStatus Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of = or !=. VALUE is a status. RT adds Status != 'deleted' until object has allow_deleted_search internal property set. $tickets->{'allow_deleted_search'} = 1; $tickets->LimitStatus( VALUE => 'deleted' ); =cut sub LimitStatus { my $self = shift; my %args = ( OPERATOR => '=', @_ ); $self->LimitField( FIELD => 'Status', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Status'), $args{'OPERATOR'}, $self->loc( $args{'VALUE'} ) ), ); } =head2 LimitToActiveStatus Limits the status to L TODO: make this respect lifecycles for the queues associated with the search =cut sub LimitToActiveStatus { my $self = shift; my @active = RT::Queue->ActiveStatusArray(); for my $active (@active) { $self->LimitStatus( VALUE => $active, ); } } =head2 LimitToInactiveStatus Limits the status to L TODO: make this respect lifecycles for the queues associated with the search =cut sub LimitToInactiveStatus { my $self = shift; my @active = RT::Queue->InactiveStatusArray(); for my $active (@active) { $self->LimitStatus( VALUE => $active, ); } } =head2 IgnoreType If called, this search will not automatically limit the set of results found to tickets of type "Ticket". Tickets of other types, such as "project" and "approval" will be found. =cut sub IgnoreType { my $self = shift; # Instead of faking a Limit that later gets ignored, fake up the # fact that we're already looking at type, so that the check in # FromSQL goes down the right branch # $self->LimitType(VALUE => '__any'); $self->{_sql_looking_at}{type} = 1; } =head2 LimitType Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of = or !=, it defaults to "=". VALUE is a string to search for in the type of the ticket. =cut sub LimitType { my $self = shift; my %args = ( OPERATOR => '=', VALUE => undef, @_ ); $self->LimitField( FIELD => 'Type', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Type'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitSubject Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of = or !=. VALUE is a string to search for in the subject of the ticket. =cut sub LimitSubject { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'Subject', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Subject'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } # Things that can be > < = != =head2 LimitId Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, >, < or !=. VALUE is a ticket Id to search for =cut sub LimitId { my $self = shift; my %args = ( OPERATOR => '=', @_ ); $self->LimitField( FIELD => 'id', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Id'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitPriority Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, >, < or !=. VALUE is a value to match the ticket's priority against =cut sub LimitPriority { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'Priority', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Priority'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitInitialPriority Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, >, < or !=. VALUE is a value to match the ticket's initial priority against =cut sub LimitInitialPriority { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'InitialPriority', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Initial Priority'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitFinalPriority Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, >, < or !=. VALUE is a value to match the ticket's final priority against =cut sub LimitFinalPriority { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'FinalPriority', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Final Priority'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitTimeWorked Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, >, < or !=. VALUE is a value to match the ticket's TimeWorked attribute =cut sub LimitTimeWorked { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'TimeWorked', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Time Worked'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitTimeLeft Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, >, < or !=. VALUE is a value to match the ticket's TimeLeft attribute =cut sub LimitTimeLeft { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'TimeLeft', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Time Left'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitContent Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, LIKE, NOT LIKE or !=. VALUE is a string to search for in the body of the ticket =cut sub LimitContent { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'Content', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Ticket content'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitFilename Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, LIKE, NOT LIKE or !=. VALUE is a string to search for in the body of the ticket =cut sub LimitFilename { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'Filename', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Attachment filename'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitContentType Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of =, LIKE, NOT LIKE or !=. VALUE is a content type to search ticket attachments for =cut sub LimitContentType { my $self = shift; my %args = (@_); $self->LimitField( FIELD => 'ContentType', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Ticket content type'), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitOwner Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of = or !=. VALUE is a user id. =cut sub LimitOwner { my $self = shift; my %args = ( OPERATOR => '=', @_ ); my $owner = RT::User->new( $self->CurrentUser ); $owner->Load( $args{'VALUE'} ); # FIXME: check for a valid $owner $self->LimitField( FIELD => 'Owner', VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, DESCRIPTION => join( ' ', $self->loc('Owner'), $args{'OPERATOR'}, $owner->Name(), ), ); } =head2 LimitWatcher Takes a paramhash with the fields OPERATOR, TYPE and VALUE. OPERATOR is one of =, LIKE, NOT LIKE or !=. VALUE is a value to match the ticket's watcher email addresses against TYPE is the sort of watchers you want to match against. Leave it undef if you want to search all of them =cut sub LimitWatcher { my $self = shift; my %args = ( OPERATOR => '=', VALUE => undef, TYPE => undef, @_ ); #build us up a description my ( $watcher_type, $desc ); if ( $args{'TYPE'} ) { $watcher_type = $args{'TYPE'}; } else { $watcher_type = "Watcher"; } $self->LimitField( FIELD => $watcher_type, VALUE => $args{'VALUE'}, OPERATOR => $args{'OPERATOR'}, TYPE => $args{'TYPE'}, DESCRIPTION => join( ' ', $self->loc($watcher_type), $args{'OPERATOR'}, $args{'VALUE'}, ), ); } =head2 LimitLinkedTo LimitLinkedTo takes a paramhash with two fields: TYPE and TARGET TYPE limits the sort of link we want to search on TYPE = { RefersTo, MemberOf, DependsOn } TARGET is the id or URI of the TARGET of the link =cut sub LimitLinkedTo { my $self = shift; my %args = ( TARGET => undef, TYPE => undef, OPERATOR => '=', @_ ); $self->LimitField( FIELD => 'LinkedTo', BASE => undef, TARGET => $args{'TARGET'}, TYPE => $args{'TYPE'}, DESCRIPTION => $self->loc( "Tickets [_1] by [_2]", $self->loc( $args{'TYPE'} ), $args{'TARGET'} ), OPERATOR => $args{'OPERATOR'}, ); } =head2 LimitLinkedFrom LimitLinkedFrom takes a paramhash with two fields: TYPE and BASE TYPE limits the sort of link we want to search on BASE is the id or URI of the BASE of the link =cut sub LimitLinkedFrom { my $self = shift; my %args = ( BASE => undef, TYPE => undef, OPERATOR => '=', @_ ); # translate RT2 From/To naming to RT3 TicketSQL naming my %fromToMap = qw(DependsOn DependentOn MemberOf HasMember RefersTo ReferredToBy); my $type = $args{'TYPE'}; $type = $fromToMap{$type} if exists( $fromToMap{$type} ); $self->LimitField( FIELD => 'LinkedTo', TARGET => undef, BASE => $args{'BASE'}, TYPE => $type, DESCRIPTION => $self->loc( "Tickets [_1] [_2]", $self->loc( $args{'TYPE'} ), $args{'BASE'}, ), OPERATOR => $args{'OPERATOR'}, ); } sub LimitMemberOf { my $self = shift; my $ticket_id = shift; return $self->LimitLinkedTo( @_, TARGET => $ticket_id, TYPE => 'MemberOf', ); } sub LimitHasMember { my $self = shift; my $ticket_id = shift; return $self->LimitLinkedFrom( @_, BASE => "$ticket_id", TYPE => 'HasMember', ); } sub LimitDependsOn { my $self = shift; my $ticket_id = shift; return $self->LimitLinkedTo( @_, TARGET => $ticket_id, TYPE => 'DependsOn', ); } sub LimitDependedOnBy { my $self = shift; my $ticket_id = shift; return $self->LimitLinkedFrom( @_, BASE => $ticket_id, TYPE => 'DependentOn', ); } sub LimitRefersTo { my $self = shift; my $ticket_id = shift; return $self->LimitLinkedTo( @_, TARGET => $ticket_id, TYPE => 'RefersTo', ); } sub LimitReferredToBy { my $self = shift; my $ticket_id = shift; return $self->LimitLinkedFrom( @_, BASE => $ticket_id, TYPE => 'ReferredToBy', ); } =head2 LimitDate (FIELD => 'DateField', OPERATOR => $oper, VALUE => $ISODate) Takes a paramhash with the fields FIELD OPERATOR and VALUE. OPERATOR is one of > or < VALUE is a date and time in ISO format in GMT FIELD is one of Starts, Started, Told, Created, Resolved, LastUpdated There are also helper functions of the form LimitFIELD that eliminate the need to pass in a FIELD argument. =cut sub LimitDate { my $self = shift; my %args = ( FIELD => undef, VALUE => undef, OPERATOR => undef, @_ ); #Set the description if we didn't get handed it above unless ( $args{'DESCRIPTION'} ) { $args{'DESCRIPTION'} = $args{'FIELD'} . " " . $args{'OPERATOR'} . " " . $args{'VALUE'} . " GMT"; } $self->LimitField(%args); } sub LimitCreated { my $self = shift; $self->LimitDate( FIELD => 'Created', @_ ); } sub LimitDue { my $self = shift; $self->LimitDate( FIELD => 'Due', @_ ); } sub LimitStarts { my $self = shift; $self->LimitDate( FIELD => 'Starts', @_ ); } sub LimitStarted { my $self = shift; $self->LimitDate( FIELD => 'Started', @_ ); } sub LimitResolved { my $self = shift; $self->LimitDate( FIELD => 'Resolved', @_ ); } sub LimitTold { my $self = shift; $self->LimitDate( FIELD => 'Told', @_ ); } sub LimitLastUpdated { my $self = shift; $self->LimitDate( FIELD => 'LastUpdated', @_ ); } # =head2 LimitTransactionDate (OPERATOR => $oper, VALUE => $ISODate) Takes a paramhash with the fields FIELD OPERATOR and VALUE. OPERATOR is one of > or < VALUE is a date and time in ISO format in GMT =cut sub LimitTransactionDate { my $self = shift; my %args = ( FIELD => 'TransactionDate', VALUE => undef, OPERATOR => undef, @_ ); # <20021217042756.GK28744@pallas.fsck.com> # "Kill It" - Jesse. #Set the description if we didn't get handed it above unless ( $args{'DESCRIPTION'} ) { $args{'DESCRIPTION'} = $args{'FIELD'} . " " . $args{'OPERATOR'} . " " . $args{'VALUE'} . " GMT"; } $self->LimitField(%args); } =head2 LimitCustomField Takes a paramhash of key/value pairs with the following keys: =over 4 =item CUSTOMFIELD - CustomField name or id. If a name is passed, an additional parameter QUEUE may also be passed to distinguish the custom field. =item OPERATOR - The usual Limit operators =item VALUE - The value to compare against =back =cut sub LimitCustomField { my $self = shift; my %args = ( VALUE => undef, CUSTOMFIELD => undef, OPERATOR => '=', DESCRIPTION => undef, FIELD => 'CustomFieldValue', QUOTEVALUE => 1, @_ ); my $CF = RT::CustomField->new( $self->CurrentUser ); if ( $args{CUSTOMFIELD} =~ /^\d+$/ ) { $CF->Load( $args{CUSTOMFIELD} ); } else { $CF->LoadByName( Name => $args{CUSTOMFIELD}, LookupType => RT::Ticket->CustomFieldLookupType, ObjectId => $args{QUEUE}, ); $args{CUSTOMFIELD} = $CF->Id; } #If we are looking to compare with a null value. if ( $args{'OPERATOR'} =~ /^is$/i ) { $args{'DESCRIPTION'} ||= $self->loc( "Custom field [_1] has no value.", $CF->Name ); } elsif ( $args{'OPERATOR'} =~ /^is not$/i ) { $args{'DESCRIPTION'} ||= $self->loc( "Custom field [_1] has a value.", $CF->Name ); } # if we're not looking to compare with a null value else { $args{'DESCRIPTION'} ||= $self->loc( "Custom field [_1] [_2] [_3]", $CF->Name, $args{OPERATOR}, $args{VALUE} ); } if ( defined $args{'QUEUE'} && $args{'QUEUE'} =~ /\D/ ) { my $QueueObj = RT::Queue->new( $self->CurrentUser ); $QueueObj->Load( $args{'QUEUE'} ); $args{'QUEUE'} = $QueueObj->Id; } delete $args{'QUEUE'} unless defined $args{'QUEUE'} && length $args{'QUEUE'}; my @rest; @rest = ( ENTRYAGGREGATOR => 'AND' ) if ( $CF->Type eq 'SelectMultiple' ); $self->LimitField( VALUE => $args{VALUE}, FIELD => "CF" .(defined $args{'QUEUE'}? ".$args{'QUEUE'}" : '' ) .".{" . $CF->Name . "}", OPERATOR => $args{OPERATOR}, CUSTOMFIELD => 1, @rest, ); $self->{'RecalcTicketLimits'} = 1; } =head2 _NextIndex Keep track of the counter for the array of restrictions =cut sub _NextIndex { my $self = shift; return ( $self->{'restriction_index'}++ ); } sub _Init { my $self = shift; $self->{'table'} = "Tickets"; $self->{'RecalcTicketLimits'} = 1; $self->{'restriction_index'} = 1; $self->{'primary_key'} = "id"; delete $self->{'items_array'}; delete $self->{'item_map'}; delete $self->{'columns_to_display'}; $self->SUPER::_Init(@_); $self->_InitSQL(); } sub _InitSQL { my $self = shift; # Private Member Variables (which should get cleaned) $self->{'_sql_transalias'} = undef; $self->{'_sql_trattachalias'} = undef; $self->{'_sql_cf_alias'} = undef; $self->{'_sql_object_cfv_alias'} = undef; $self->{'_sql_watcher_join_users_alias'} = undef; $self->{'_sql_query'} = ''; $self->{'_sql_looking_at'} = {}; } sub Count { my $self = shift; $self->_ProcessRestrictions() if ( $self->{'RecalcTicketLimits'} == 1 ); return ( $self->SUPER::Count() ); } sub CountAll { my $self = shift; $self->_ProcessRestrictions() if ( $self->{'RecalcTicketLimits'} == 1 ); return ( $self->SUPER::CountAll() ); } =head2 ItemsArrayRef Returns a reference to the set of all items found in this search =cut sub ItemsArrayRef { my $self = shift; return $self->{'items_array'} if $self->{'items_array'}; my $placeholder = $self->_ItemsCounter; $self->GotoFirstItem(); while ( my $item = $self->Next ) { push( @{ $self->{'items_array'} }, $item ); } $self->GotoItem($placeholder); $self->{'items_array'} = $self->ItemsOrderBy( $self->{'items_array'} ); return $self->{'items_array'}; } sub ItemsArrayRefWindow { my $self = shift; my $window = shift; my @old = ($self->_ItemsCounter, $self->RowsPerPage, $self->FirstRow+1); $self->RowsPerPage( $window ); $self->FirstRow(1); $self->GotoFirstItem; my @res; while ( my $item = $self->Next ) { push @res, $item; } $self->RowsPerPage( $old[1] ); $self->FirstRow( $old[2] ); $self->GotoItem( $old[0] ); return \@res; } sub Next { my $self = shift; $self->_ProcessRestrictions() if ( $self->{'RecalcTicketLimits'} == 1 ); my $Ticket = $self->SUPER::Next; return $Ticket unless $Ticket; if ( $Ticket->__Value('Status') eq 'deleted' && !$self->{'allow_deleted_search'} ) { return $self->Next; } elsif ( RT->Config->Get('UseSQLForACLChecks') ) { # if we found a ticket with this option enabled then # all tickets we found are ACLed, cache this fact my $key = join ";:;", $self->CurrentUser->id, 'ShowTicket', 'RT::Ticket-'. $Ticket->id; $RT::Principal::_ACL_CACHE->{ $key } = 1; return $Ticket; } elsif ( $Ticket->CurrentUserHasRight('ShowTicket') ) { # has rights return $Ticket; } else { # If the user doesn't have the right to show this ticket return $self->Next; } } sub _DoSearch { my $self = shift; $self->CurrentUserCanSee if RT->Config->Get('UseSQLForACLChecks'); return $self->SUPER::_DoSearch( @_ ); } sub _DoCount { my $self = shift; $self->CurrentUserCanSee if RT->Config->Get('UseSQLForACLChecks'); return $self->SUPER::_DoCount( @_ ); } sub _RolesCanSee { my $self = shift; my $cache_key = 'RolesHasRight;:;ShowTicket'; if ( my $cached = $RT::Principal::_ACL_CACHE->{ $cache_key } ) { return %$cached; } my $ACL = RT::ACL->new( RT->SystemUser ); $ACL->Limit( FIELD => 'RightName', VALUE => 'ShowTicket' ); $ACL->Limit( FIELD => 'PrincipalType', OPERATOR => '!=', VALUE => 'Group' ); my $principal_alias = $ACL->Join( ALIAS1 => 'main', FIELD1 => 'PrincipalId', TABLE2 => 'Principals', FIELD2 => 'id', ); $ACL->Limit( ALIAS => $principal_alias, FIELD => 'Disabled', VALUE => 0 ); my %res = (); foreach my $ACE ( @{ $ACL->ItemsArrayRef } ) { my $role = $ACE->__Value('PrincipalType'); my $type = $ACE->__Value('ObjectType'); if ( $type eq 'RT::System' ) { $res{ $role } = 1; } elsif ( $type eq 'RT::Queue' ) { next if $res{ $role } && !ref $res{ $role }; push @{ $res{ $role } ||= [] }, $ACE->__Value('ObjectId'); } else { $RT::Logger->error('ShowTicket right is granted on unsupported object'); } } $RT::Principal::_ACL_CACHE->{ $cache_key } = \%res; return %res; } sub _DirectlyCanSeeIn { my $self = shift; my $id = $self->CurrentUser->id; my $cache_key = 'User-'. $id .';:;ShowTicket;:;DirectlyCanSeeIn'; if ( my $cached = $RT::Principal::_ACL_CACHE->{ $cache_key } ) { return @$cached; } my $ACL = RT::ACL->new( RT->SystemUser ); $ACL->Limit( FIELD => 'RightName', VALUE => 'ShowTicket' ); my $principal_alias = $ACL->Join( ALIAS1 => 'main', FIELD1 => 'PrincipalId', TABLE2 => 'Principals', FIELD2 => 'id', ); $ACL->Limit( ALIAS => $principal_alias, FIELD => 'Disabled', VALUE => 0 ); my $cgm_alias = $ACL->Join( ALIAS1 => 'main', FIELD1 => 'PrincipalId', TABLE2 => 'CachedGroupMembers', FIELD2 => 'GroupId', ); $ACL->Limit( ALIAS => $cgm_alias, FIELD => 'MemberId', VALUE => $id ); $ACL->Limit( ALIAS => $cgm_alias, FIELD => 'Disabled', VALUE => 0 ); my @res = (); foreach my $ACE ( @{ $ACL->ItemsArrayRef } ) { my $type = $ACE->__Value('ObjectType'); if ( $type eq 'RT::System' ) { # If user is direct member of a group that has the right # on the system then he can see any ticket $RT::Principal::_ACL_CACHE->{ $cache_key } = [-1]; return (-1); } elsif ( $type eq 'RT::Queue' ) { push @res, $ACE->__Value('ObjectId'); } else { $RT::Logger->error('ShowTicket right is granted on unsupported object'); } } $RT::Principal::_ACL_CACHE->{ $cache_key } = \@res; return @res; } sub CurrentUserCanSee { my $self = shift; return if $self->{'_sql_current_user_can_see_applied'}; return $self->{'_sql_current_user_can_see_applied'} = 1 if $self->CurrentUser->UserObj->HasRight( Right => 'SuperUser', Object => $RT::System ); local $self->{using_restrictions}; my $id = $self->CurrentUser->id; # directly can see in all queues then we have nothing to do my @direct_queues = $self->_DirectlyCanSeeIn; return $self->{'_sql_current_user_can_see_applied'} = 1 if @direct_queues && $direct_queues[0] == -1; my %roles = $self->_RolesCanSee; { my %skip = map { $_ => 1 } @direct_queues; foreach my $role ( keys %roles ) { next unless ref $roles{ $role }; my @queues = grep !$skip{$_}, @{ $roles{ $role } }; if ( @queues ) { $roles{ $role } = \@queues; } else { delete $roles{ $role }; } } } # there is no global watchers, only queues and tickes, if at # some point we will add global roles then it's gonna blow # the idea here is that if the right is set globaly for a role # and user plays this role for a queue directly not a ticket # then we have to check in advance if ( my @tmp = grep $_ ne 'Owner' && !ref $roles{ $_ }, keys %roles ) { my $groups = RT::Groups->new( RT->SystemUser ); $groups->Limit( FIELD => 'Domain', VALUE => 'RT::Queue-Role', CASESENSITIVE => 0 ); $groups->Limit( FIELD => 'Name', FUNCTION => 'LOWER(?)', OPERATOR => 'IN', VALUE => [ map {lc $_} @tmp ], CASESENSITIVE => 1, ); my $principal_alias = $groups->Join( ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Principals', FIELD2 => 'id', ); $groups->Limit( ALIAS => $principal_alias, FIELD => 'Disabled', VALUE => 0 ); my $cgm_alias = $groups->Join( ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'CachedGroupMembers', FIELD2 => 'GroupId', ); $groups->Limit( ALIAS => $cgm_alias, FIELD => 'MemberId', VALUE => $id ); $groups->Limit( ALIAS => $cgm_alias, FIELD => 'Disabled', VALUE => 0 ); while ( my $group = $groups->Next ) { push @direct_queues, $group->Instance; } } unless ( @direct_queues || keys %roles ) { $self->Limit( SUBCLAUSE => 'ACL', ALIAS => 'main', FIELD => 'id', VALUE => 0, ENTRYAGGREGATOR => 'AND', ); return $self->{'_sql_current_user_can_see_applied'} = 1; } { my $join_roles = keys %roles; $join_roles = 0 if $join_roles == 1 && $roles{'Owner'}; my ($role_group_alias, $cgm_alias); if ( $join_roles ) { $role_group_alias = $self->_RoleGroupsJoin( New => 1 ); $cgm_alias = $self->_GroupMembersJoin( GroupsAlias => $role_group_alias ); $self->Limit( LEFTJOIN => $cgm_alias, FIELD => 'MemberId', OPERATOR => '=', VALUE => $id, ); } my $limit_queues = sub { my $ea = shift; my @queues = @_; return unless @queues; $self->Limit( SUBCLAUSE => 'ACL', ALIAS => 'main', FIELD => 'Queue', OPERATOR => 'IN', VALUE => [ @queues ], ENTRYAGGREGATOR => $ea, ); return 1; }; $self->SUPER::_OpenParen('ACL'); my $ea = 'AND'; $ea = 'OR' if $limit_queues->( $ea, @direct_queues ); while ( my ($role, $queues) = each %roles ) { $self->SUPER::_OpenParen('ACL'); if ( $role eq 'Owner' ) { $self->Limit( SUBCLAUSE => 'ACL', FIELD => 'Owner', VALUE => $id, ENTRYAGGREGATOR => $ea, ); } else { $self->Limit( SUBCLAUSE => 'ACL', ALIAS => $cgm_alias, FIELD => 'MemberId', OPERATOR => 'IS NOT', VALUE => 'NULL', QUOTEVALUE => 0, ENTRYAGGREGATOR => $ea, ); $self->Limit( SUBCLAUSE => 'ACL', ALIAS => $role_group_alias, FIELD => 'Name', VALUE => $role, ENTRYAGGREGATOR => 'AND', CASESENSITIVE => 0, ); } $limit_queues->( 'AND', @$queues ) if ref $queues; $ea = 'OR' if $ea eq 'AND'; $self->SUPER::_CloseParen('ACL'); } $self->SUPER::_CloseParen('ACL'); } return $self->{'_sql_current_user_can_see_applied'} = 1; } =head2 ClearRestrictions Removes all restrictions irretrievably =cut sub ClearRestrictions { my $self = shift; delete $self->{'TicketRestrictions'}; $self->{_sql_looking_at} = {}; $self->{'RecalcTicketLimits'} = 1; } # Convert a set of oldstyle SB Restrictions to Clauses for RQL sub _RestrictionsToClauses { my $self = shift; my %clause; foreach my $row ( keys %{ $self->{'TicketRestrictions'} } ) { my $restriction = $self->{'TicketRestrictions'}{$row}; # We need to reimplement the subclause aggregation that SearchBuilder does. # Default Subclause is ALIAS.FIELD, and default ALIAS is 'main', # Then SB AND's the different Subclauses together. # So, we want to group things into Subclauses, convert them to # SQL, and then join them with the appropriate DefaultEA. # Then join each subclause group with AND. my $field = $restriction->{'FIELD'}; my $realfield = $field; # CustomFields fake up a fieldname, so # we need to figure that out # One special case # Rewrite LinkedTo meta field to the real field if ( $field =~ /LinkedTo/ ) { $realfield = $field = $restriction->{'TYPE'}; } # Two special case # Handle subkey fields with a different real field if ( $field =~ /^(\w+)\./ ) { $realfield = $1; } die "I don't know about $field yet" unless ( exists $FIELD_METADATA{$realfield} or $restriction->{CUSTOMFIELD} ); my $type = $FIELD_METADATA{$realfield}->[0]; my $op = $restriction->{'OPERATOR'}; my $value = ( grep {defined} map { $restriction->{$_} } qw(VALUE TICKET BASE TARGET) )[0]; # this performs the moral equivalent of defined or/dor/C, # without the short circuiting.You need to use a 'defined or' # type thing instead of just checking for truth values, because # VALUE could be 0.(i.e. "false") # You could also use this, but I find it less aesthetic: # (although it does short circuit) #( defined $restriction->{'VALUE'}? $restriction->{VALUE} : # defined $restriction->{'TICKET'} ? # $restriction->{TICKET} : # defined $restriction->{'BASE'} ? # $restriction->{BASE} : # defined $restriction->{'TARGET'} ? # $restriction->{TARGET} ) my $ea = $restriction->{ENTRYAGGREGATOR} || $DefaultEA{$type} || "AND"; if ( ref $ea ) { die "Invalid operator $op for $field ($type)" unless exists $ea->{$op}; $ea = $ea->{$op}; } # Each CustomField should be put into a different Clause so they # are ANDed together. if ( $restriction->{CUSTOMFIELD} ) { $realfield = $field; } exists $clause{$realfield} or $clause{$realfield} = []; # Escape Quotes $field =~ s!(['\\])!\\$1!g; $value =~ s!(['\\])!\\$1!g; my $data = [ $ea, $type, $field, $op, $value ]; # here is where we store extra data, say if it's a keyword or # something. (I.e. "TYPE SPECIFIC STUFF") if (lc $ea eq 'none') { $clause{$realfield} = [ $data ]; } else { push @{ $clause{$realfield} }, $data; } } return \%clause; } =head2 ClausesToSQL =cut sub ClausesToSQL { my $self = shift; my $clauses = shift; my @sql; for my $f (keys %{$clauses}) { my $sql; my $first = 1; # Build SQL from the data hash for my $data ( @{ $clauses->{$f} } ) { $sql .= $data->[0] unless $first; $first=0; # ENTRYAGGREGATOR $sql .= " '". $data->[2] . "' "; # FIELD $sql .= $data->[3] . " "; # OPERATOR $sql .= "'". $data->[4] . "' "; # VALUE } push @sql, " ( " . $sql . " ) "; } return join("AND",@sql); } sub _ProcessRestrictions { my $self = shift; delete $self->{'items_array'}; delete $self->{'item_map'}; delete $self->{'raw_rows'}; delete $self->{'count_all'}; my $sql = $self->Query; if ( !$sql || $self->{'RecalcTicketLimits'} ) { local $self->{using_restrictions}; # "Restrictions to Clauses Branch\n"; my $clauseRef = eval { $self->_RestrictionsToClauses; }; if ($@) { $RT::Logger->error( "RestrictionsToClauses: " . $@ ); $self->FromSQL(""); } else { $sql = $self->ClausesToSQL($clauseRef); $self->FromSQL($sql) if $sql; } } $self->{'RecalcTicketLimits'} = 0; } =head2 _BuildItemMap Build up a L of first/last/next/prev items, so that we can display search nav quickly. =cut sub _BuildItemMap { my $self = shift; my $window = RT->Config->Get('TicketsItemMapSize'); $self->{'item_map'} = {}; my $items = $self->ItemsArrayRefWindow( $window ); return unless $items && @$items; my $prev = 0; $self->{'item_map'}{'first'} = $items->[0]->EffectiveId; for ( my $i = 0; $i < @$items; $i++ ) { my $item = $items->[$i]; my $id = $item->EffectiveId; $self->{'item_map'}{$id}{'defined'} = 1; $self->{'item_map'}{$id}{'prev'} = $prev; $self->{'item_map'}{$id}{'next'} = $items->[$i+1]->EffectiveId if $items->[$i+1]; $prev = $id; } $self->{'item_map'}{'last'} = $prev if !$window || @$items < $window; } =head2 ItemMap Returns an a map of all items found by this search. The map is a hash of the form: { first => , last => , => { prev => , next => , }, => { prev => ..., next => ..., }, } =cut sub ItemMap { my $self = shift; $self->_BuildItemMap unless $self->{'item_map'}; return $self->{'item_map'}; } =head2 PrepForSerialization You don't want to serialize a big tickets object, as the {items} hash will be instantly invalid _and_ eat lots of space =cut sub PrepForSerialization { my $self = shift; delete $self->{'items'}; delete $self->{'items_array'}; $self->RedoSearch(); } =head1 FLAGS RT::Tickets supports several flags which alter search behavior: allow_deleted_search (Otherwise never show deleted tickets in search results) These flags are set by calling $tickets->{'flagname'} = 1; BUG: There should be an API for this =cut =head2 FromSQL Convert a RT-SQL string into a set of SearchBuilder restrictions. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut sub _parser { my ($self,$string) = @_; require RT::Interface::Web::QueryBuilder::Tree; my $tree = RT::Interface::Web::QueryBuilder::Tree->new; my @results = $tree->ParseSQL( Query => $string, CurrentUser => $self->CurrentUser, ); die join "; ", map { ref $_ eq 'ARRAY' ? $_->[ 0 ] : $_ } @results if @results; state ( $active_status_node, $inactive_status_node ); my $escape_quotes = sub { my $text = shift; $text =~ s{(['\\])}{\\$1}g; return $text; }; $tree->traverse( sub { my $node = shift; return unless $node->isLeaf and $node->getNodeValue; my ($key, $subkey, $meta, $op, $value, $bundle) = @{$node->getNodeValue}{qw/Key Subkey Meta Op Value Bundle/}; return unless $key eq "Status" && $value =~ /^(?:__(?:in)?active__)$/i; my $parent = $node->getParent; my $index = $node->getIndex; if ( ( lc $value eq '__inactive__' && $op eq '=' ) || ( lc $value eq '__active__' && $op eq '!=' ) ) { unless ( $inactive_status_node ) { my %lifecycle = map { $_ => $RT::Lifecycle::LIFECYCLES{ $_ }{ inactive } } grep { @{ $RT::Lifecycle::LIFECYCLES{ $_ }{ inactive } || [] } } grep { $RT::Lifecycle::LIFECYCLES_CACHE{ $_ }{ type } eq 'ticket' } keys %RT::Lifecycle::LIFECYCLES; return unless %lifecycle; my $sql; if ( keys %lifecycle == 1 ) { $sql = join ' OR ', map { qq{ Status = '$_' } } map { $escape_quotes->($_) } map { @$_ } values %lifecycle; } else { my @inactive_sql; for my $name ( keys %lifecycle ) { my $escaped_name = $escape_quotes->($name); my $inactive_sql = qq{Lifecycle = '$escaped_name'} . ' AND (' . join( ' OR ', map { qq{ Status = '$_' } } map { $escape_quotes->($_) } @{ $lifecycle{ $name } } ) . ')'; push @inactive_sql, qq{($inactive_sql)}; } $sql = join ' OR ', @inactive_sql; } $inactive_status_node = RT::Interface::Web::QueryBuilder::Tree->new; $inactive_status_node->ParseSQL( Query => $sql, CurrentUser => $self->CurrentUser, ); } $parent->removeChild( $node ); $parent->insertChild( $index, $inactive_status_node ); } else { unless ( $active_status_node ) { my %lifecycle = map { $_ => [ @{ $RT::Lifecycle::LIFECYCLES{ $_ }{ initial } || [] }, @{ $RT::Lifecycle::LIFECYCLES{ $_ }{ active } || [] }, ] } grep { @{ $RT::Lifecycle::LIFECYCLES{ $_ }{ initial } || [] } || @{ $RT::Lifecycle::LIFECYCLES{ $_ }{ active } || [] } } grep { $RT::Lifecycle::LIFECYCLES_CACHE{ $_ }{ type } eq 'ticket' } keys %RT::Lifecycle::LIFECYCLES; return unless %lifecycle; my $sql; if ( keys %lifecycle == 1 ) { $sql = join ' OR ', map { qq{ Status = '$_' } } map { $escape_quotes->($_) } map { @$_ } values %lifecycle; } else { my @active_sql; for my $name ( keys %lifecycle ) { my $escaped_name = $escape_quotes->($name); my $active_sql = qq{Lifecycle = '$escaped_name'} . ' AND (' . join( ' OR ', map { qq{ Status = '$_' } } map { $escape_quotes->($_) } @{ $lifecycle{ $name } } ) . ')'; push @active_sql, qq{($active_sql)}; } $sql = join ' OR ', @active_sql; } $active_status_node = RT::Interface::Web::QueryBuilder::Tree->new; $active_status_node->ParseSQL( Query => $sql, CurrentUser => $self->CurrentUser, ); } $parent->removeChild( $node ); $parent->insertChild( $index, $active_status_node ); } } ); # Perform an optimization pass looking for watcher bundling $tree->traverse( sub { my $node = shift; return if $node->isLeaf; return unless ($node->getNodeValue||'') eq "OR"; my %refs; my @kids = grep {$_->{Meta}[0] eq "WATCHERFIELD"} map {$_->getNodeValue} grep {$_->isLeaf} $node->getAllChildren; for (@kids) { my $node = $_; my ($key, $subkey, $op) = @{$node}{qw/Key Subkey Op/}; next if $node->{Meta}[1] and RT::Ticket->Role($node->{Meta}[1])->{Column}; next if $op =~ /^!=$|\bNOT\b/i; next if $op =~ /^IS( NOT)?$/i and not $subkey; $node->{Bundle} = $refs{$node->{Meta}[1] || ''} ||= []; } } ); my $ea = ''; $tree->traverse( sub { my $node = shift; $ea = $node->getParent->getNodeValue if $node->getIndex > 0; return $self->_OpenParen unless $node->isLeaf; my ($key, $subkey, $meta, $op, $value, $bundle) = @{$node->getNodeValue}{qw/Key Subkey Meta Op Value Bundle/}; # normalize key and get class (type) my $class = $meta->[0]; # replace __CurrentUser__ with id $value = $self->CurrentUser->id if $value eq '__CurrentUser__'; # replace __CurrentUserName__ with the username $value = $self->CurrentUser->Name if $value eq '__CurrentUserName__'; my $sub = $dispatch{ $class } or die "No dispatch method for class '$class'"; # A reference to @res may be pushed onto $sub_tree{$key} from # above, and we fill it here. $sub->( $self, $key, $op, $value, ENTRYAGGREGATOR => $ea, SUBKEY => $subkey, BUNDLE => $bundle, ); }, sub { my $node = shift; return $self->_CloseParen unless $node->isLeaf; } ); } sub FromSQL { my ($self,$query) = @_; { # preserve first_row and show_rows across the CleanSlate local ($self->{'first_row'}, $self->{'show_rows'}, $self->{_sql_looking_at}); $self->CleanSlate; $self->_InitSQL(); } return (1, $self->loc("No Query")) unless $query; $self->{_sql_query} = $query; eval { local $self->{parsing_ticketsql} = 1; $self->_parser( $query ); }; if ( $@ ) { my $error = "$@"; $RT::Logger->error("Couldn't parse query: $error"); return (0, $error); } # We only want to look at EffectiveId's (mostly) for these searches. unless ( $self->{_sql_looking_at}{effectiveid} ) { # instead of EffectiveId = id we do IsMerged IS NULL $self->Limit( FIELD => 'IsMerged', OPERATOR => 'IS', VALUE => 'NULL', ENTRYAGGREGATOR => 'AND', QUOTEVALUE => 0, ); } unless ( $self->{_sql_looking_at}{type} ) { $self->Limit( FIELD => 'Type', VALUE => 'ticket' ); } # We don't want deleted tickets unless 'allow_deleted_search' is set unless( $self->{'allow_deleted_search'} ) { $self->Limit( FIELD => 'Status', OPERATOR => '!=', VALUE => 'deleted', ); } # set SB's dirty flag $self->{'must_redo_search'} = 1; $self->{'RecalcTicketLimits'} = 0; return (1, $self->loc("Valid Query")); } =head2 Query Returns the last string passed to L. =cut sub Query { my $self = shift; return $self->{_sql_query}; } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Interface/000755 000765 000024 00000000000 13437510132 016010 5ustar00sunnavystaff000000 000000 rt-4.4.4/lib/RT/Queue.pm000644 000765 000024 00000102743 13437510132 015541 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} =head1 NAME RT::Queue - an RT Queue object =head1 SYNOPSIS use RT::Queue; =head1 DESCRIPTION An RT queue object. =head1 METHODS =cut package RT::Queue; use strict; use warnings; use base 'RT::Record'; use Role::Basic 'with'; with "RT::Record::Role::Lifecycle", "RT::Record::Role::Links" => { -excludes => ["_AddLinksOnCreate"] }, "RT::Record::Role::Roles", "RT::Record::Role::Rights"; sub Table {'Queues'} sub LifecycleType { "ticket" } sub ModifyLinkRight { "AdminQueue" } require RT::ACE; RT::ACE->RegisterCacheHandler(sub { my %args = ( Action => "", RightName => "", @_ ); return unless $args{Action} =~ /^(Grant|Revoke)$/i and $args{RightName} =~ /^(SeeQueue|CreateTicket|AdminQueue|ShowTicket|SuperUser)$/; RT->System->QueueCacheNeedsUpdate(1); }); use RT::Groups; use RT::CustomRoles; use RT::ACL; use RT::Interface::Email; __PACKAGE__->AddRight( General => SeeQueue => 'View queue' ); # loc __PACKAGE__->AddRight( Admin => AdminQueue => 'Create, modify and delete queue' ); # loc __PACKAGE__->AddRight( Admin => ShowACL => 'Display Access Control List' ); # loc __PACKAGE__->AddRight( Admin => ModifyACL => 'Create, modify and delete Access Control List entries' ); # loc __PACKAGE__->AddRight( Admin => ModifyQueueWatchers => 'Modify queue watchers' ); # loc __PACKAGE__->AddRight( General => SeeCustomField => 'View custom field values' ); # loc __PACKAGE__->AddRight( Staff => ModifyCustomField => 'Modify custom field values' ); # loc __PACKAGE__->AddRight( Staff => SetInitialCustomField => 'Add custom field values only at object creation time'); # loc __PACKAGE__->AddRight( Admin => AssignCustomFields => 'Assign and remove queue custom fields' ); # loc __PACKAGE__->AddRight( Admin => ModifyTemplate => 'Modify Scrip templates' ); # loc __PACKAGE__->AddRight( Admin => ShowTemplate => 'View Scrip templates' ); # loc __PACKAGE__->AddRight( Admin => ModifyScrips => 'Modify Scrips' ); # loc __PACKAGE__->AddRight( Admin => ShowScrips => 'View Scrips' ); # loc __PACKAGE__->AddRight( General => ShowTicket => 'View ticket summaries' ); # loc __PACKAGE__->AddRight( Staff => ShowTicketComments => 'View ticket private commentary' ); # loc __PACKAGE__->AddRight( Staff => ShowOutgoingEmail => 'View exact outgoing email messages and their recipients' ); # loc __PACKAGE__->AddRight( General => Watch => 'Sign up as a ticket Requestor or ticket or queue Cc' ); # loc __PACKAGE__->AddRight( Staff => WatchAsAdminCc => 'Sign up as a ticket or queue AdminCc' ); # loc __PACKAGE__->AddRight( General => CreateTicket => 'Create tickets' ); # loc __PACKAGE__->AddRight( General => ReplyToTicket => 'Reply to tickets' ); # loc __PACKAGE__->AddRight( General => CommentOnTicket => 'Comment on tickets' ); # loc __PACKAGE__->AddRight( Staff => OwnTicket => 'Own tickets' ); # loc __PACKAGE__->AddRight( Staff => ModifyTicket => 'Modify tickets' ); # loc __PACKAGE__->AddRight( Staff => DeleteTicket => 'Delete tickets' ); # loc __PACKAGE__->AddRight( Staff => TakeTicket => 'Take tickets' ); # loc __PACKAGE__->AddRight( Staff => StealTicket => 'Steal tickets' ); # loc __PACKAGE__->AddRight( Staff => ReassignTicket => 'Modify ticket owner on owned tickets' ); # loc __PACKAGE__->AddRight( Staff => ForwardMessage => 'Forward messages outside of RT' ); # loc =head2 Create(ARGS) Arguments: ARGS is a hash of named parameters. Valid parameters are: Name (required) Description CorrespondAddress CommentAddress If you pass the ACL check, it creates the queue and returns its queue id. =cut sub Create { my $self = shift; my %args = ( Name => undef, Description => '', CorrespondAddress => '', CommentAddress => '', Lifecycle => 'default', SubjectTag => undef, Sign => undef, SignAuto => undef, Encrypt => undef, SLA => undef, _RecordTransaction => 1, @_ ); unless ( $self->CurrentUser->HasRight(Right => 'AdminQueue', Object => $RT::System) ) { #Check them ACLs return ( 0, $self->loc("No permission to create queues") ); } { my ($val, $msg) = $self->_ValidateName( $args{'Name'} ); return ($val, $msg) unless $val; } $args{'Lifecycle'} ||= 'default'; return ( 0, $self->loc('[_1] is not a valid lifecycle', $args{'Lifecycle'} ) ) unless $self->ValidateLifecycle( $args{'Lifecycle'} ); my %attrs = map {$_ => 1} $self->ReadableAttributes; #TODO better input validation $RT::Handle->BeginTransaction(); my $id = $self->SUPER::Create( map { $_ => $args{$_} } grep exists $args{$_}, keys %attrs ); unless ($id) { $RT::Handle->Rollback(); return ( 0, $self->loc('Queue could not be created') ); } my $create_ret = $self->_CreateRoleGroups(); unless ($create_ret) { $RT::Handle->Rollback(); return ( 0, $self->loc('Queue could not be created') ); } if ( $args{'_RecordTransaction'} ) { $self->_NewTransaction( Type => "Create" ); } $RT::Handle->Commit; for my $attr (qw/Sign SignAuto Encrypt SLA/) { next unless defined $args{$attr}; my $set = "Set" . $attr; my ($status, $msg) = $self->$set( $args{$attr} ); $RT::Logger->error("Couldn't set attribute '$attr': $msg") unless $status; } RT->System->QueueCacheNeedsUpdate(1); return ( $id, $self->loc("Queue created") ); } sub Delete { my $self = shift; return ( 0, $self->loc('Deleting this object would break referential integrity') ); } =head2 Load Takes either a numerical id or a textual Name and loads the specified queue. =cut sub Load { my $self = shift; my $identifier = shift; if ( !$identifier ) { return (undef); } if ( $identifier =~ /^(\d+)$/ ) { $self->SUPER::LoadById($identifier); } else { $self->LoadByCols( Name => $identifier ); } return ( $self->Id ); } =head2 ValidateName NAME Takes a queue name. Returns true if it's an ok name for a new queue. Returns undef if there's already a queue by that name. =cut sub ValidateName { my $self = shift; my $name = shift; my ($ok, $msg) = $self->_ValidateName($name); return $ok ? 1 : 0; } sub _ValidateName { my $self = shift; my $name = shift; return (undef, "Queue name is required") unless length $name; # Validate via the superclass first # Case: short circuit if it's an integer so we don't have # fale negatives when loading a temp queue unless ( my $q = $self->SUPER::ValidateName($name) ) { return ($q, $self->loc("'[_1]' is not a valid name.", $name)); } my $tempqueue = RT::Queue->new(RT->SystemUser); $tempqueue->Load($name); #If this queue exists, return undef if ( $tempqueue->Name() && $tempqueue->id != $self->id) { return (undef, $self->loc("Queue already exists") ); } return (1); } =head2 SetSign =cut sub Sign { my $self = shift; my $value = shift; return undef unless $self->CurrentUserHasRight('SeeQueue'); my $attr = $self->FirstAttribute('Sign') or return 0; return $attr->Content; } sub SetSign { my $self = shift; my $value = shift; return ( 0, $self->loc('Permission Denied') ) unless $self->CurrentUserHasRight('AdminQueue'); my ($status, $msg) = $self->SetAttribute( Name => 'Sign', Description => 'Sign outgoing messages by default', Content => $value, ); return ($status, $msg) unless $status; my ( undef, undef, $TransObj ) = $self->_NewTransaction( Field => 'Signing', #loc Type => $value ? "Enabled" : "Disabled" ); return ($status, scalar $TransObj->BriefDescription); } sub SignAuto { my $self = shift; my $value = shift; return undef unless $self->CurrentUserHasRight('SeeQueue'); my $attr = $self->FirstAttribute('SignAuto') or return 0; return $attr->Content; } sub SetSignAuto { my $self = shift; my $value = shift; return ( 0, $self->loc('Permission Denied') ) unless $self->CurrentUserHasRight('AdminQueue'); my ($status, $msg) = $self->SetAttribute( Name => 'SignAuto', Description => 'Sign auto-generated outgoing messages', Content => $value, ); return ($status, $msg) unless $status; my ( undef, undef, $TransObj ) = $self->_NewTransaction( Field => 'AutoSigning', #loc Type => $value ? "Enabled" : "Disabled" ); return ($status, scalar $TransObj->BriefDescription); } sub Encrypt { my $self = shift; my $value = shift; return undef unless $self->CurrentUserHasRight('SeeQueue'); my $attr = $self->FirstAttribute('Encrypt') or return 0; return $attr->Content; } sub SetEncrypt { my $self = shift; my $value = shift; return ( 0, $self->loc('Permission Denied') ) unless $self->CurrentUserHasRight('AdminQueue'); my ($status, $msg) = $self->SetAttribute( Name => 'Encrypt', Description => 'Encrypt outgoing messages by default', Content => $value, ); return ($status, $msg) unless $status; my ( undef, undef, $TransObj ) = $self->_NewTransaction( Field => 'Encrypting', #loc Type => $value ? "Enabled" : "Disabled" ); return ($status, scalar $TransObj->BriefDescription); } =head2 Templates Returns an RT::Templates object of all of this queue's templates. =cut sub Templates { my $self = shift; my $templates = RT::Templates->new( $self->CurrentUser ); if ( $self->CurrentUserHasRight('ShowTemplate') ) { $templates->LimitToQueue( $self->id ); } return ($templates); } =head2 CustomField NAME Load the Ticket Custom Field applied to this Queue named NAME. Does not load Global custom fields. =cut sub CustomField { my $self = shift; my $name = shift; my $cf = RT::CustomField->new($self->CurrentUser); $cf->LoadByName( Name => $name, LookupType => RT::Ticket->CustomFieldLookupType, ObjectId => $self->id, ); return ($cf); } =head2 TicketCustomFields Returns an L object containing all global and queue-specific B custom fields. =cut sub TicketCustomFields { my $self = shift; my $cfs = RT::CustomFields->new( $self->CurrentUser ); if ( $self->CurrentUserHasRight('SeeQueue') ) { $cfs->SetContextObject( $self ); $cfs->LimitToGlobalOrObjectId( $self->Id ); $cfs->LimitToLookupType( 'RT::Queue-RT::Ticket' ); $cfs->ApplySortOrder; } return ($cfs); } =head2 TicketTransactionCustomFields Returns an L object containing all global and queue-specific B custom fields. =cut sub TicketTransactionCustomFields { my $self = shift; my $cfs = RT::CustomFields->new( $self->CurrentUser ); if ( $self->CurrentUserHasRight('SeeQueue') ) { $cfs->SetContextObject( $self ); $cfs->LimitToGlobalOrObjectId( $self->Id ); $cfs->LimitToLookupType( 'RT::Queue-RT::Ticket-RT::Transaction' ); $cfs->ApplySortOrder; } return ($cfs); } =head2 CustomRoles Returns an L object containing all queue-specific roles. =cut sub CustomRoles { my $self = shift; my $roles = RT::CustomRoles->new( $self->CurrentUser ); if ( $self->CurrentUserHasRight('SeeQueue') ) { $roles->LimitToObjectId( $self->Id ); $roles->ApplySortOrder; } return ($roles); } =head2 ManageableRoleGroupTypes Returns a list of the names of the various role group types for Queues, excluding ones used only for ACLs such as Requestor and Owner. If you want them, see L. =cut sub ManageableRoleGroupTypes { shift->Roles( ACLOnly => 0 ) } =head2 IsManageableRoleGroupType Returns whether the passed-in type is a manageable role group type. =cut sub IsManageableRoleGroupType { my $self = shift; my $type = shift; return grep { $type eq $_ } $self->ManageableRoleGroupTypes; } sub _HasModifyWatcherRight { my $self = shift; my ($type, $principal) = @_; # ModifyQueueWatchers works in any case return 1 if $self->CurrentUserHasRight('ModifyQueueWatchers'); # If the watcher isn't the current user then the current user has no right return 0 unless $self->CurrentUser->PrincipalId == $principal->id; # If it's an AdminCc and they don't have 'WatchAsAdminCc', bail return 0 if $type eq 'AdminCc' and not $self->CurrentUserHasRight('WatchAsAdminCc'); # If it's a Requestor or Cc and they don't have 'Watch', bail return 0 if ($type eq "Cc" or $type eq 'Requestor') and not $self->CurrentUserHasRight('Watch'); return 1; } =head2 AddWatcher Applies access control checking, then calls L. Additionally, C is accepted as an alternative argument name for C. Returns a tuple of (status, message). =cut sub AddWatcher { my $self = shift; my %args = ( Type => undef, PrincipalId => undef, Email => undef, @_ ); $args{ACL} = sub { $self->_HasModifyWatcherRight( @_ ) }; $args{User} ||= delete $args{Email}; my ($principal, $msg) = $self->AddRoleMember( %args ); return ( 0, $msg) unless $principal; my $group = $self->RoleGroup( $args{Type} ); return ( 1, $self->loc("Added [_1] as [_2] for this queue", $principal->Object->Name, $group->Label )); } =head2 DeleteWatcher Applies access control checking, then calls L. Additionally, C is accepted as an alternative argument name for C. Returns a tuple of (status, message). =cut sub DeleteWatcher { my $self = shift; my %args = ( Type => undef, PrincipalId => undef, Email => undef, @_ ); $args{ACL} = sub { $self->_HasModifyWatcherRight( @_ ) }; $args{User} ||= delete $args{Email}; my ($principal, $msg) = $self->DeleteRoleMember( %args ); return ( 0, $msg) unless $principal; my $group = $self->RoleGroup( $args{Type} ); return ( 1, $self->loc("[_1] is no longer [_2] for this queue", $principal->Object->Name, $group->Label )); } =head2 AdminCcAddresses returns String: All queue AdminCc email addresses as a string =cut sub AdminCcAddresses { my $self = shift; unless ( $self->CurrentUserHasRight('SeeQueue') ) { return undef; } return ( $self->AdminCc->MemberEmailAddressesAsString ) } =head2 CcAddresses returns String: All queue Ccs as a string of email addresses =cut sub CcAddresses { my $self = shift; unless ( $self->CurrentUserHasRight('SeeQueue') ) { return undef; } return ( $self->Cc->MemberEmailAddressesAsString); } =head2 Cc Takes nothing. Returns an RT::Group object which contains this Queue's Ccs. If the user doesn't have "ShowQueue" permission, returns an empty group =cut sub Cc { my $self = shift; return $self->RoleGroup( 'Cc', CheckRight => 'SeeQueue' ); } =head2 AdminCc Takes nothing. Returns an RT::Group object which contains this Queue's AdminCcs. If the user doesn't have "ShowQueue" permission, returns an empty group =cut sub AdminCc { my $self = shift; return $self->RoleGroup( 'AdminCc', CheckRight => 'SeeQueue' ); } # a generic routine to be called by IsRequestor, IsCc and IsAdminCc =head2 IsWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID } Takes a param hash with the attributes Type and PrincipalId Type is one of Requestor, Cc, AdminCc and Owner PrincipalId is an RT::Principal id Returns true if that principal is a member of the group Type for this queue =cut sub IsWatcher { my $self = shift; my %args = ( Type => 'Cc', PrincipalId => undef, @_ ); # Load the relevant group. my $group = $self->RoleGroup( $args{'Type'} ); # Ask if it has the member in question my $principal = RT::Principal->new($self->CurrentUser); $principal->Load($args{'PrincipalId'}); unless ($principal->Id) { return (undef); } return ($group->HasMemberRecursively($principal)); } =head2 IsCc PRINCIPAL_ID Takes an RT::Principal id. Returns true if the principal is a requestor of the current queue. =cut sub IsCc { my $self = shift; my $cc = shift; return ( $self->IsWatcher( Type => 'Cc', PrincipalId => $cc ) ); } =head2 IsAdminCc PRINCIPAL_ID Takes an RT::Principal id. Returns true if the principal is a requestor of the current queue. =cut sub IsAdminCc { my $self = shift; my $person = shift; return ( $self->IsWatcher( Type => 'AdminCc', PrincipalId => $person ) ); } sub _Set { my $self = shift; my %args = ( Field => undef, Value => undef, TransactionType => 'Set', RecordTransaction => 1, @_ ); unless ( $self->CurrentUserHasRight('AdminQueue') ) { return ( 0, $self->loc('Permission Denied') ); } my $Old = $self->SUPER::_Value("$args{'Field'}"); my ($ret, $msg) = $self->SUPER::_Set( Field => $args{'Field'}, Value => $args{'Value'}, ); if ( $ret == 0 ) { return ( 0, $msg ); } RT->System->QueueCacheNeedsUpdate(1); if ( $args{'RecordTransaction'} == 1 ) { if ($args{'Field'} eq 'Disabled') { $args{'TransactionType'} = ($args{'Value'} == 1) ? "Disabled" : "Enabled"; delete $args{'Field'}; } my ( undef, undef, $TransObj ) = $self->_NewTransaction( Type => $args{'TransactionType'}, Field => $args{'Field'}, NewValue => $args{'Value'}, OldValue => $Old, TimeTaken => $args{'TimeTaken'}, ); } return ( $ret, $msg ); } sub Lifecycle { my $self = shift; my $context_obj = shift; if ( $context_obj && $context_obj->QueueObj->Id eq $self->Id && $context_obj->CurrentUserHasRight('SeeQueue') ) { return ( $self->__Value('Lifecycle') ); } return ( $self->_Value('Lifecycle') ); } sub _Value { my $self = shift; unless ( $self->CurrentUserHasRight('SeeQueue') ) { return (undef); } return ( $self->__Value(@_) ); } =head2 CurrentUserCanSee Returns true if the current user can see the queue, using SeeQueue =cut sub CurrentUserCanSee { my $self = shift; return $self->CurrentUserHasRight('SeeQueue'); } =head2 id Returns the current value of id. (In the database, id is stored as int(11).) =cut =head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) =head2 SetName VALUE Set Name to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Name will be stored as a varchar(200).) =cut =head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) =head2 SetDescription VALUE Set Description to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Description will be stored as a varchar(255).) =cut =head2 CorrespondAddress Returns the current value of CorrespondAddress. (In the database, CorrespondAddress is stored as varchar(120).) =head2 SetCorrespondAddress VALUE Set CorrespondAddress to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, CorrespondAddress will be stored as a varchar(120).) =cut =head2 CommentAddress Returns the current value of CommentAddress. (In the database, CommentAddress is stored as varchar(120).) =head2 SetCommentAddress VALUE Set CommentAddress to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, CommentAddress will be stored as a varchar(120).) =cut =head2 Lifecycle [CONTEXT_OBJ] Returns the current value of Lifecycle. Provide an optional ticket object as context to check role-level rights in addition to queue-level rights for SeeQueue. (In the database, Lifecycle is stored as varchar(32).) =head2 SetLifecycle VALUE Set Lifecycle to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Lifecycle will be stored as a varchar(32).) =cut =head2 SubjectTag Returns the current value of SubjectTag. (In the database, SubjectTag is stored as varchar(120).) =head2 SetSubjectTag VALUE Set SubjectTag to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, SubjectTag will be stored as a varchar(120).) =cut =head2 SortOrder Returns the current value of SortOrder. (In the database, SortOrder is stored as int(11).) =cut =head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) =cut =head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) =cut =head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) =cut =head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) =cut =head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) =head2 SetDisabled VALUE Set Disabled to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Disabled will be stored as a smallint(6).) =cut sub _CoreAccessible { { id => {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Description => {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, CorrespondAddress => {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, CommentAddress => {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, SubjectTag => {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, Lifecycle => {read => 1, write => 1, sql_type => 12, length => 32, is_blob => 0, is_numeric => 0, type => 'varchar(32)', default => 'default'}, SortOrder => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Creator => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, SLADisabled => {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '1'}, Disabled => {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; sub FindDependencies { my $self = shift; my ($walker, $deps) = @_; $self->SUPER::FindDependencies($walker, $deps); # Queue role groups( Cc, AdminCc ) my $objs = RT::Groups->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Domain', VALUE => 'RT::Queue-Role', CASESENSITIVE => 0 ); $objs->Limit( FIELD => 'Instance', VALUE => $self->Id ); $deps->Add( in => $objs ); # Scrips $objs = RT::ObjectScrips->new( $self->CurrentUser ); $objs->Limit( FIELD => 'ObjectId', OPERATOR => '=', VALUE => $self->id, ENTRYAGGREGATOR => 'OR' ); $objs->Limit( FIELD => 'ObjectId', OPERATOR => '=', VALUE => 0, ENTRYAGGREGATOR => 'OR' ); $deps->Add( in => $objs ); # Templates (global ones have already been dealt with) $objs = RT::Templates->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Queue', VALUE => $self->Id); $deps->Add( in => $objs ); # Custom Fields on things _in_ this queue (CFs on the queue itself # have already been dealt with) $objs = RT::ObjectCustomFields->new( $self->CurrentUser ); $objs->Limit( FIELD => 'ObjectId', OPERATOR => '=', VALUE => $self->id, ENTRYAGGREGATOR => 'OR' ); $objs->Limit( FIELD => 'ObjectId', OPERATOR => '=', VALUE => 0, ENTRYAGGREGATOR => 'OR' ); my $cfs = $objs->Join( ALIAS1 => 'main', FIELD1 => 'CustomField', TABLE2 => 'CustomFields', FIELD2 => 'id', ); $objs->Limit( ALIAS => $cfs, FIELD => 'LookupType', OPERATOR => 'STARTSWITH', VALUE => 'RT::Queue-' ); $deps->Add( in => $objs ); # Tickets $objs = RT::Tickets->new( $self->CurrentUser ); $objs->Limit( FIELD => "Queue", VALUE => $self->Id ); $objs->{allow_deleted_search} = 1; $deps->Add( in => $objs ); # Object Custom Roles $objs = RT::ObjectCustomRoles->new( $self->CurrentUser ); $objs->LimitToObjectId($self->Id); $deps->Add( in => $objs ); } sub __DependsOn { my $self = shift; my %args = ( Shredder => undef, Dependencies => undef, @_, ); my $deps = $args{'Dependencies'}; my $list = []; # Tickets my $objs = RT::Tickets->new( $self->CurrentUser ); $objs->{'allow_deleted_search'} = 1; $objs->Limit( FIELD => 'Queue', VALUE => $self->Id ); push( @$list, $objs ); # Queue role groups( Cc, AdminCc ) $objs = RT::Groups->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Domain', VALUE => 'RT::Queue-Role', CASESENSITIVE => 0 ); $objs->Limit( FIELD => 'Instance', VALUE => $self->Id ); push( @$list, $objs ); # Scrips $objs = RT::Scrips->new( $self->CurrentUser ); $objs->LimitToQueue( $self->id ); push( @$list, $objs ); # Templates $objs = $self->Templates; push( @$list, $objs ); # Custom Fields $objs = RT::CustomFields->new( $self->CurrentUser ); $objs->SetContextObject( $self ); $objs->LimitToQueue( $self->id ); push( @$list, $objs ); # Object Custom Roles $objs = RT::ObjectCustomRoles->new( $self->CurrentUser ); $objs->LimitToObjectId($self->Id); push( @$list, $objs ); $deps->_PushDependencies( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON, TargetObjects => $list, Shredder => $args{'Shredder'} ); return $self->SUPER::__DependsOn( %args ); } sub PreInflate { my $class = shift; my ($importer, $uid, $data) = @_; $class->SUPER::PreInflate( $importer, $uid, $data ); $data->{Name} = $importer->Qualify($data->{Name}) if $data->{Name} ne "___Approvals"; return if $importer->MergeBy( "Name", $class, $uid, $data ); return 1; } sub DefaultValue { my $self = shift; my $field = shift; my $attr = $self->FirstAttribute('DefaultValues'); return undef unless $attr && $attr->Content; return $attr->Content->{$field}; } sub SetDefaultValue { my $self = shift; my %args = ( Name => undef, Value => undef, @_ ); my $field = shift; my $attr = $self->FirstAttribute('DefaultValues'); my ($old_value, $old_content, $new_value); if ( $attr && $attr->Content ) { $old_content = $attr->Content; $old_value = $old_content->{$args{Name}}; } unless ( defined $old_value && length $old_value ) { $old_value = $self->loc('(no value)'); } $new_value = $args{Value}; unless ( defined $new_value && length $new_value ) { $new_value = $self->loc( '(no value)' ); } return 1 if $new_value eq $old_value; my ($ret, $msg) = $self->SetAttribute( Name => 'DefaultValues', Content => { %{ $old_content || {} }, $args{Name} => $args{Value}, }, ); if ( $ret ) { return ( $ret, $self->loc( 'Default value of [_1] changed from [_2] to [_3]', $args{Name}, $old_value, $new_value ) ); } else { return ( $ret, $self->loc( "Can't change default value of [_1] from [_2] to [_3]: [_4]", $args{Name}, $old_value, $new_value, $msg ) ); } } sub SLA { my $self = shift; my $value = shift; return undef unless $self->CurrentUserHasRight('SeeQueue'); my $attr = $self->FirstAttribute('SLA') or return undef; return $attr->Content; } sub SetSLA { my $self = shift; my $value = shift; return ( 0, $self->loc('Permission Denied') ) unless $self->CurrentUserHasRight('AdminQueue'); my ($status, $msg) = $self->SetAttribute( Name => 'SLA', Description => 'Default Queue SLA', Content => $value, ); return ($status, $msg) unless $status; return ($status, $self->loc("Queue's default service level has been changed")); } sub InitialPriority { my $self = shift; RT->Deprecated( Instead => "DefaultValue('InitialPriority')", Remove => '4.6' ); return $self->DefaultValue('InitialPriority'); } sub FinalPriority { my $self = shift; RT->Deprecated( Instead => "DefaultValue('FinalPriority')", Remove => '4.6' ); return $self->DefaultValue('FinalPriority'); } sub DefaultDueIn { my $self = shift; RT->Deprecated( Instead => "DefaultValue('Due')", Remove => '4.6' ); # DefaultDueIn used to be a number of days; so if the DefaultValue is, # say, "3 days" then return 3 my $due = $self->DefaultValue('Due'); if (defined($due) && $due =~ /^(\d+) days?$/i) { return $1; } return $due; } sub SetInitialPriority { my $self = shift; my $value = shift; RT->Deprecated( Instead => "SetDefaultValue", Remove => '4.6' ); return $self->SetDefaultValue( Name => 'InitialPriority', Value => $value, ); } sub SetFinalPriority { my $self = shift; my $value = shift; RT->Deprecated( Instead => "SetDefaultValue", Remove => '4.6' ); return $self->SetDefaultValue( Name => 'FinalPriority', Value => $value, ); } sub SetDefaultDueIn { my $self = shift; my $value = shift; # DefaultDueIn used to be a number of days; so if we're setting to, # say, "3" then add the word "days" to match the way the new # DefaultValues works $value .= " days" if defined($value) && $value =~ /^\d+$/; RT->Deprecated( Instead => "SetDefaultValue", Remove => '4.6' ); return $self->SetDefaultValue( Name => 'Due', Value => $value, ); } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Link.pm000644 000765 000024 00000041022 13437510132 015342 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} =head1 NAME RT::Link - an RT Link object =head1 SYNOPSIS use RT::Link; =head1 DESCRIPTION This module should never be called directly by client code. it's an internal module which should only be accessed through exported APIs in Ticket other similar objects. =cut package RT::Link; use strict; use warnings; use base 'RT::Record'; sub Table {'Links'} use Carp; use RT::URI; use List::Util 'first'; use List::MoreUtils 'uniq'; # Helper tables for links mapping to make it easier # to build and parse links between objects. our %TYPEMAP = ( MemberOf => { Type => 'MemberOf', Mode => 'Target', Display => 0 }, Parents => { Type => 'MemberOf', Mode => 'Target', Display => 1 }, Parent => { Type => 'MemberOf', Mode => 'Target', Display => 0 }, Members => { Type => 'MemberOf', Mode => 'Base', Display => 0 }, Member => { Type => 'MemberOf', Mode => 'Base', Display => 0 }, Children => { Type => 'MemberOf', Mode => 'Base', Display => 1 }, Child => { Type => 'MemberOf', Mode => 'Base', Display => 0 }, HasMember => { Type => 'MemberOf', Mode => 'Base', Display => 0 }, RefersTo => { Type => 'RefersTo', Mode => 'Target', Display => 1 }, ReferredToBy => { Type => 'RefersTo', Mode => 'Base', Display => 1 }, DependsOn => { Type => 'DependsOn', Mode => 'Target', Display => 1 }, DependedOnBy => { Type => 'DependsOn', Mode => 'Base', Display => 1 }, MergedInto => { Type => 'MergedInto', Mode => 'Target', Display => 1 }, ); our %DIRMAP = ( MemberOf => { Base => 'MemberOf', Target => 'HasMember' }, RefersTo => { Base => 'RefersTo', Target => 'ReferredToBy' }, DependsOn => { Base => 'DependsOn', Target => 'DependedOnBy' }, MergedInto => { Base => 'MergedInto', Target => 'MergedInto' }, ); __PACKAGE__->_BuildDisplayAs; my %DISPLAY_AS; sub _BuildDisplayAs { %DISPLAY_AS = (); foreach my $in_db ( uniq map { $_->{Type} } values %TYPEMAP ) { foreach my $mode (qw(Base Target)) { $DISPLAY_AS{$in_db}{$mode} = first { $TYPEMAP{$_}{Display} && $TYPEMAP{$_}{Type} eq $in_db && $TYPEMAP{$_}{Mode} eq $mode } keys %TYPEMAP; } } } =head1 CLASS METHODS =head2 DisplayTypes Returns a list of the standard link Types for display, including directional variants but not aliases. =cut sub DisplayTypes { sort { $a cmp $b } uniq grep { defined } map { values %$_ } values %DISPLAY_AS } =head1 METHODS =head2 Create PARAMHASH Create a new link object. Takes 'Base', 'Target' and 'Type'. Returns undef on failure or a Link Id on success. =cut sub Create { my $self = shift; my %args = ( Base => undef, Target => undef, Type => undef, @_ ); my $base = RT::URI->new( $self->CurrentUser ); unless ($base->FromURI( $args{'Base'} )) { my $msg = $self->loc("Couldn't resolve base '[_1]' into a URI.", $args{'Base'}); $RT::Logger->warning( "$self $msg" ); return wantarray ? (undef, $msg) : undef; } my $target = RT::URI->new( $self->CurrentUser ); unless ($target->FromURI( $args{'Target'} )) { my $msg = $self->loc("Couldn't resolve target '[_1]' into a URI.", $args{'Target'}); $RT::Logger->warning( "$self $msg" ); return wantarray ? (undef, $msg) : undef; } my $base_id = 0; my $target_id = 0; if ( $base->IsLocal ) { my $object = $base->Object; unless (UNIVERSAL::can($object, 'Id')) { return (undef, $self->loc("[_1] appears to be a local object, but can't be found in the database", $args{'Base'})); } $base_id = $object->Id if UNIVERSAL::isa($object, 'RT::Ticket'); } if ( $target->IsLocal ) { my $object = $target->Object; unless (UNIVERSAL::can($object, 'Id')) { return (undef, $self->loc("[_1] appears to be a local object, but can't be found in the database", $args{'Target'})); } $target_id = $object->Id if UNIVERSAL::isa($object, 'RT::Ticket'); } # We don't want references to ourself if ( $base->URI eq $target->URI ) { return ( 0, $self->loc("Can't link a ticket to itself") ); } # }}} my ( $id, $msg ) = $self->SUPER::Create( Base => $base->URI, Target => $target->URI, LocalBase => $base_id, LocalTarget => $target_id, Type => $args{'Type'} ); return ( $id, $msg ); } # sub LoadByParams =head2 LoadByParams Load an RT::Link object from the database. Takes three parameters Base => undef, Target => undef, Type =>undef Base and Target are expected to be integers which refer to Tickets or URIs Type is the link type =cut sub LoadByParams { my $self = shift; my %args = ( Base => undef, Target => undef, Type => undef, @_ ); my $base = RT::URI->new($self->CurrentUser); $base->FromURI( $args{'Base'} ) or return wantarray ? (0, $self->loc("Couldn't parse Base URI: [_1]", $args{Base})) : 0; my $target = RT::URI->new($self->CurrentUser); $target->FromURI( $args{'Target'} ) or return wantarray ? (0, $self->loc("Couldn't parse Target URI: [_1]", $args{Target})) : 0; my ( $id, $msg ) = $self->LoadByCols( Base => $base->URI, Type => $args{'Type'}, Target => $target->URI ); unless ($id) { return wantarray ? ( 0, $self->loc("Couldn't load link: [_1]", $msg) ) : 0; } else { return wantarray ? ($id, $msg) : $id; } } =head2 Load Load an RT::Link object from the database. Takes one parameter, the id of an entry in the links table. =cut sub Load { my $self = shift; my $identifier = shift; if ( $identifier !~ /^\d+$/ ) { return wantarray ? ( 0, $self->loc("That's not a numerical id") ) : 0; } else { my ( $id, $msg ) = $self->LoadById($identifier); unless ( $self->Id ) { return wantarray ? ( 0, $self->loc("Couldn't load link") ) : 0; } return wantarray ? ( $id, $msg ) : $id; } } =head2 TargetURI returns an RT::URI object for the "Target" of this link. =cut sub TargetURI { my $self = shift; my $URI = RT::URI->new($self->CurrentUser); $URI->FromURI($self->Target); return ($URI); } =head2 TargetObj =cut sub TargetObj { my $self = shift; return $self->TargetURI->Object; } =head2 BaseURI returns an RT::URI object for the "Base" of this link. =cut sub BaseURI { my $self = shift; my $URI = RT::URI->new($self->CurrentUser); $URI->FromURI($self->Base); return ($URI); } =head2 BaseObj =cut sub BaseObj { my $self = shift; return $self->BaseURI->Object; } =head2 id Returns the current value of id. (In the database, id is stored as int(11).) =cut =head2 Base Returns the current value of Base. (In the database, Base is stored as varchar(240).) =head2 SetBase VALUE Set Base to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Base will be stored as a varchar(240).) =cut =head2 Target Returns the current value of Target. (In the database, Target is stored as varchar(240).) =head2 SetTarget VALUE Set Target to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Target will be stored as a varchar(240).) =cut =head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(20).) =head2 SetType VALUE Set Type to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, Type will be stored as a varchar(20).) =cut =head2 LocalTarget Returns the current value of LocalTarget. (In the database, LocalTarget is stored as int(11).) =head2 SetLocalTarget VALUE Set LocalTarget to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, LocalTarget will be stored as a int(11).) =cut =head2 LocalBase Returns the current value of LocalBase. (In the database, LocalBase is stored as int(11).) =head2 SetLocalBase VALUE Set LocalBase to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, LocalBase will be stored as a int(11).) =cut =head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) =cut =head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) =cut =head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) =cut =head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) =cut sub _CoreAccessible { { id => {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Base => {read => 1, write => 1, sql_type => 12, length => 240, is_blob => 0, is_numeric => 0, type => 'varchar(240)', default => ''}, Target => {read => 1, write => 1, sql_type => 12, length => 240, is_blob => 0, is_numeric => 0, type => 'varchar(240)', default => ''}, Type => {read => 1, write => 1, sql_type => 12, length => 20, is_blob => 0, is_numeric => 0, type => 'varchar(20)', default => ''}, LocalTarget => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LocalBase => {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdatedBy => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Creator => {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; sub FindDependencies { my $self = shift; my ($walker, $deps) = @_; $self->SUPER::FindDependencies($walker, $deps); $deps->Add( out => $self->BaseObj ) if $self->BaseObj and $self->BaseObj->id; $deps->Add( out => $self->TargetObj ) if $self->TargetObj and $self->TargetObj->id; } sub __DependsOn { my $self = shift; my %args = ( Shredder => undef, Dependencies => undef, @_, ); my $deps = $args{'Dependencies'}; my $list = []; # AddLink transactions my $map = { %RT::Link::TYPEMAP }; my $link_meta = $map->{ $self->Type }; unless ( $link_meta && $link_meta->{'Mode'} && $link_meta->{'Type'} ) { RT::Shredder::Exception->throw( 'Wrong link link_meta, no record for '. $self->Type ); } if ( $self->BaseURI->IsLocal ) { my $objs = $self->BaseObj->Transactions; $objs->Limit( FIELD => 'Type', OPERATOR => '=', VALUE => 'AddLink', ); $objs->Limit( FIELD => 'NewValue', VALUE => $self->Target ); while ( my ($k, $v) = each %$map ) { next unless $v->{'Type'} eq $link_meta->{'Type'}; next unless $v->{'Mode'} eq $link_meta->{'Mode'}; $objs->Limit( FIELD => 'Field', VALUE => $k ); } push( @$list, $objs ); } my %reverse = ( Base => 'Target', Target => 'Base' ); if ( $self->TargetURI->IsLocal ) { my $objs = $self->TargetObj->Transactions; $objs->Limit( FIELD => 'Type', OPERATOR => '=', VALUE => 'AddLink', ); $objs->Limit( FIELD => 'NewValue', VALUE => $self->Base ); while ( my ($k, $v) = each %$map ) { next unless $v->{'Type'} eq $link_meta->{'Type'}; next unless $v->{'Mode'} eq $reverse{ $link_meta->{'Mode'} }; $objs->Limit( FIELD => 'Field', VALUE => $k ); } push( @$list, $objs ); } $deps->_PushDependencies( BaseObject => $self, Flags => RT::Shredder::Constants::DEPENDS_ON|RT::Shredder::Constants::WIPE_AFTER, TargetObjects => $list, Shredder => $args{'Shredder'} ); return $self->SUPER::__DependsOn( %args ); } sub Serialize { my $self = shift; my %args = (@_); my %store = $self->SUPER::Serialize(@_); delete $store{LocalBase} if $store{Base}; delete $store{LocalTarget} if $store{Target}; for my $dir (qw/Base Target/) { my $uri = $self->${\($dir.'URI')}; my $object = $self->${\($dir.'Obj')}; if ($uri->IsLocal) { if ($args{serializer}->Observe(object => $object)) { # no action needed; the object is being migrated } elsif ($args{serializer}{HyperlinkUnmigrated}) { # object is not being migrated; hyperlinkify $store{$dir} = $uri->AsHREF; } else { # object is not being migrated and hyperlinks not desired, # so drop this RT::Link altogether return; } } } return %store; } sub PreInflate { my $class = shift; my ($importer, $uid, $data) = @_; for my $dir (qw/Base Target/) { my $uid_ref = $data->{$dir}; next unless $uid_ref and ref $uid_ref; my $to_uid = ${ $uid_ref }; my $obj = $importer->LookupObj( $to_uid ); if ($obj) { $data->{$dir} = $obj->URI; $data->{"Local$dir"} = $obj->Id if $obj->isa("RT::Ticket"); } else { $data->{$dir} = ""; $importer->Postpone( for => $to_uid, uid => $uid, uri => $dir, column => ($to_uid =~ /RT::Ticket/ ? "Local$dir" : undef), ); } } return $class->SUPER::PreInflate( $importer, $uid, $data ); } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/LDAPImport.pm000644 000765 000024 00000135743 13437510132 016376 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} package RT::LDAPImport; use warnings; use strict; use base qw(Class::Accessor); __PACKAGE__->mk_accessors(qw(_ldap _group _users)); use Carp; use Net::LDAP; use Net::LDAP::Util qw(escape_filter_value); use Net::LDAP::Control::Paged; use Net::LDAP::Constant qw(LDAP_CONTROL_PAGED); use Data::Dumper; =head1 NAME RT::LDAPImport - Import Users from an LDAP store =head1 SYNOPSIS In C: Set($LDAPHost,'my.ldap.host'); Set($LDAPOptions, [ port => 636, scheme => 'ldaps', raw => qr/(\;binary)/, version => 3, verify => 'required', cafile => '/certificate-file/path' ]); Set($LDAPUser,'me'); Set($LDAPPassword,'mypass'); Set($LDAPBase, 'ou=People,o=Our Place'); Set($LDAPFilter, '(&(cn = users))'); Set($LDAPMapping, {Name => 'uid', # required EmailAddress => 'mail', RealName => 'cn', WorkPhone => 'telephoneNumber', Organization => 'departmentName'}); # If you want to sync Groups from LDAP into RT Set($LDAPGroupBase, 'ou=Groups,o=Our Place'); Set($LDAPGroupFilter, '(&(cn = Groups))'); Set($LDAPGroupMapping, {Name => 'cn', Member_Attr => 'member', Member_Attr_Value => 'dn' }); Running the import: # Run a test import /opt/rt4/sbin/rt-ldapimport --verbose > ldapimport.debug 2>&1 # Run for real, possibly put in cron /opt/rt4/sbin/rt-ldapimport --import =head1 CONFIGURATION All of the configuration for the importer goes in your F file. Some of these values pass through to L so you can check there for valid values and more advanced options. =over =item C<< Set($LDAPHost,'our.ldap.host'); >> Hostname or ldap(s):// uri: =item C<< Set($LDAPOptions, [ port => 636 ]); >> This allows you to pass any options supported by the L new method. =item C<< Set($LDAPUser, 'uid=foo,ou=users,dc=example,dc=com'); >> Your LDAP username or DN. If unset, we'll attempt an anonymous bind. =item C<< Set($LDAPPassword, 'ldap pass'); >> Your LDAP password. =item C<< Set($LDAPBase, 'ou=People,o=Our Place'); >> Base object to search from. =item C<< Set($LDAPFilter, '(&(cn = users))'); >> The LDAP search filter to apply (in this case, find all the users). =item C<< Set($LDAPMapping... >> Set($LDAPMapping, {Name => 'uid', EmailAddress => 'mail', RealName => 'cn', WorkPhone => 'telephoneNumber', Organization => 'departmentName'}); This provides the mapping of attributes in RT to attribute(s) in LDAP. Only Name is required for RT. The values in the mapping (i.e. the LDAP fields, the right hand side) can be one of the following: =over 4 =item an attribute LDAP attribute to use. Only first value is used if attribute is multivalue. For example: EmailAddress => 'mail', =item an array reference The LDAP attributes can also be an arrayref of LDAP fields, for example: WorkPhone => [qw/CompanyPhone Extension/] which will be concatenated together with a space. First values of each attribute are used in case they have multiple values. =item a subroutine reference The LDAP attribute can also be a subroutine reference that does mapping, for example: YYY => sub { my %args = @_; my @values = grep defined && length, $args{ldap_entry}->get_value('XXX'); return @values; }, The subroutine should return value or list of values. The following arguments are passed into the function in a hash: =over 4 =item self Instance of this class. =item ldap_entry L instance that is currently mapped. =item import Boolean value indicating whether it's import or a dry run. If it's dry run (import is false) then function shouldn't change anything. =item mapping Hash reference with the currently processed mapping, eg. C<$LDAPMapping>. =item rt_field and ldap_field The currently processed key and value from the mapping. =item result Hash reference with results of completed mappings for this ldap entry. This should be used to inject that are not in the mapping, not to inspect. Mapping is processed in literal order of the keys. =back =back The keys in the mapping (i.e. the RT fields, the left hand side) may be a user custom field name prefixed with C, for example C<< 'UserCF.Employee Number' => 'employeeId' >>. Note that this only B values at the moment, which on single value CFs will remove any old value first. Multiple value CFs may behave not quite how you expect. If the attribute no longer exists on a user in LDAP, it will be cleared on the RT side as well. You may also prefix any RT custom field name with C inside your mapping to add available values to a Select custom field. This effectively takes user attributes in LDAP and adds the values as selectable options in a CF. It does B set a CF value on any RT object (User, Ticket, Queue, etc). You might use this to populate a ticket Location CF with all the locations of your users so that tickets can be associated with the locations in use. =item C<< Set($LDAPCreatePrivileged, 1); >> By default users are created as Unprivileged, but you can change this by setting C<$LDAPCreatePrivileged> to 1. =item C<< Set($LDAPGroupName,'My Imported Users'); >> The RT Group new and updated users belong to. By default, all users added or updated by the importer will belong to the 'Imported from LDAP' group. =item C<< Set($LDAPSkipAutogeneratedGroup, 1); >> Set this to true to prevent users from being automatically added to the group configured by C<$LDAPGroupName>. =item C<< Set($LDAPUpdateUsers, 1); >> By default, existing users are skipped. If you turn on LDAPUpdateUsers, we will clobber existing data with data from LDAP. =item C<< Set($LDAPUpdateOnly, 1); >> By default, we create users who don't exist in RT but do match your LDAP filter and obey C<$LDAPUpdateUsers> for existing users. This setting updates existing users, overriding C<$LDAPUpdateUsers>, but won't create new users who are found in LDAP but not in RT. =item C<< Set($LDAPGroupBase, 'ou=Groups,o=Our Place'); >> Where to search for groups to import. =item C<< Set($LDAPGroupFilter, '(&(cn = Groups))'); >> The search filter to apply. =item C<< Set($LDAPGroupMapping... >> Set($LDAPGroupMapping, {Name => 'cn', Member_Attr => 'member', Member_Attr_Value => 'dn' }); A mapping of RT attributes to LDAP attributes to identify group members. Name will become the name of the group in RT, in this case pulling from the cn attribute on the LDAP group record returned. Everything besides C is processed according to rules described in documentation for C<$LDAPMapping> option, so value can be array or code reference besides scalar. C is the field in the LDAP group record the importer should look at for group members. These values (there may be multiple members) will then be compared to the RT user name, which came from the LDAP user record. See F for a complex example of using a code reference as value of this option. C, which defaults to 'dn', specifies where on the LDAP user record the importer should look to compare the member value. A match between the member field on the group record and this identifier (dn or other LDAP field) on a user record means the user will be added to that group in RT. C is the field in LDAP group record that uniquely identifies the group. This is optional and shouldn't be equal to mapping for Name field. Group names in RT must be distinct and you don't need another unique identifier in common situation. However, when you rename a group in LDAP, without this option set properly you end up with two groups in RT. You can provide a C key which will be added as the group description in RT. The default description is 'Imported from LDAP'. =item C<< Set($LDAPImportGroupMembers, 1); >> When disabled, the default, LDAP group import expects that all LDAP members already exist as RT users. Often the user import stage, which happens before groups, is used to create and/or update group members by using an C<$LDAPFilter> which includes a C attribute. When enabled, by setting to C<1>, LDAP group members are explicitly imported before membership is synced with RT. This enables groups-only configurations to also import group members without specifying a potentially long and complex C<$LDAPFilter> using C. It's particularly handy when C isn't available on user entries. Note that C<$LDAPFilter> still applies when this option is enabled, so some group members may be filtered out from the import. =item C<< Set($LDAPSizeLimit, 1000); >> You can set this value if your LDAP server has result size limits. =back =head1 Mapping Groups Between RT and LDAP If you are using the importer, you likely want to manage access via LDAP by putting people in groups like 'DBAs' and 'IT Support', but also have groups for other non-RT related things. In this case, you won't want to create all of your LDAP groups in RT. To limit the groups that get mirrored, construct your C<$LDAPGroupFilter> as an OR (|) with all of the RT groups you want to mirror from LDAP. For example: Set($LDAPGroupBase, 'OU=Groups,OU=Company,DC=COM'); Set($LDAPGroupFilter, '(|(CN=DBAs)(CN=IT Support))'); The importer will then import only the groups that match. In this case, import means: =over =item * Verifying the group is in AD; =item * Creating the group in RT if it doesn't exist; =item * Populating the group with the members identified in AD; =back The import script will also issue a warning if a user isn't found in RT, but this should only happen when testing. When running with --import on, users are created before groups are processed, so all users (group members) should exist unless there are inconsistencies in your LDAP configuration. =head1 Running the Import Executing C will run a test that connects to your LDAP server and prints out a list of the users found. To see more about these users, and to see more general debug information, include the C<--verbose> flag. That debug information is also sent to the RT log with the debug level. Errors are logged to the screen and to the RT log. Executing C with the C<--import> flag will cause it to import users into your RT database. It is recommended that you make a database backup before doing this. If your filters aren't set properly this could create a lot of users or groups in your RT instance. =head1 LDAP Filters The L utility in openldap can be very helpful while refining your filters. =head1 METHODS =head2 connect_ldap Relies on the config variables C<$LDAPHost>, C<$LDAPOptions>, C<$LDAPUser>, and C<$LDAPPassword> being set in your RT Config files. Set($LDAPHost,'my.ldap.host'); Set($LDAPOptions, [ port => 636 ]); Set($LDAPUSER,'me'); Set($LDAPPassword,'mypass'); LDAPUser and LDAPPassword can be blank, which will cause an anonymous bind. LDAPHost can be a hostname or an ldap:// ldaps:// uri. =cut sub connect_ldap { my $self = shift; $RT::LDAPOptions = [] unless $RT::LDAPOptions; my $ldap = Net::LDAP->new($RT::LDAPHost, @$RT::LDAPOptions); $RT::Logger->debug("connecting to $RT::LDAPHost"); unless ($ldap) { $RT::Logger->error("Can't connect to $RT::LDAPHost $@"); return; } my $msg; if ($RT::LDAPUser) { $RT::Logger->debug("binding as $RT::LDAPUser"); $msg = $ldap->bind($RT::LDAPUser, password => $RT::LDAPPassword); } else { $RT::Logger->debug("binding anonymously"); $msg = $ldap->bind; } if ($msg->code) { $RT::Logger->error("LDAP bind failed " . $msg->error); return; } $self->_ldap($ldap); return $ldap; } =head2 run_user_search Set up the appropriate arguments for a listing of users. =cut sub run_user_search { my $self = shift; $self->_run_search( base => $RT::LDAPBase, filter => $RT::LDAPFilter ); } =head2 _run_search Executes a search using the provided base and filter. Will connect to LDAP server using C. Returns an array of L objects, possibly consolidated from multiple LDAP pages. =cut sub _run_search { my $self = shift; my $ldap = $self->_ldap||$self->connect_ldap; my %args = @_; unless ($ldap) { $RT::Logger->error("fetching an LDAP connection failed"); return; } my %search = ( base => $args{base}, filter => $args{filter}, scope => ($args{scope} || 'sub'), ); my (@results, $page, $cookie); if ($RT::LDAPSizeLimit) { $page = Net::LDAP::Control::Paged->new( size => $RT::LDAPSizeLimit, critical => 1 ); $search{control} = $page; } LOOP: { # Start where we left off $page->cookie($cookie) if $page and $cookie; $RT::Logger->debug("searching with: " . join(' ', map { "$_ => '$search{$_}'" } sort keys %search)); my $result = $ldap->search( %search ); if ($result->code) { $RT::Logger->error("LDAP search failed " . $result->error); last; } push @results, $result->entries; # Short circuit early if we're done last if not $result->count or $result->count < ($RT::LDAPSizeLimit || 0); if ($page) { if (my $control = $result->control( LDAP_CONTROL_PAGED )) { $cookie = $control->cookie; } else { $RT::Logger->error("LDAP search didn't return a paging control"); last; } } redo if $cookie; } # Let the server know we're abandoning the search if we errored out if ($cookie) { $RT::Logger->debug("Informing the LDAP server we're done with the result set"); $page->cookie($cookie); $page->size(0); $ldap->search( %search ); } $RT::Logger->debug("search found ".scalar @results." objects"); return @results; } =head2 import_users import => 1|0 Takes the results of the search from run_search and maps attributes from LDAP into C attributes using C<$LDAPMapping>. Creates RT users if they don't already exist. With no arguments, only prints debugging information. Pass C<--import> to actually change data. C<$LDAPMapping>> should be set in your C file and look like this. Set($LDAPMapping, { RTUserField => LDAPField, RTUserField => LDAPField }); RTUserField is the name of a field on an C object LDAPField can be a simple scalar and that attribute will be looked up in LDAP. It can also be an arrayref, in which case each of the elements will be evaluated in turn. Scalars will be looked up in LDAP and concatenated together with a single space. If the value is a sub reference, it will be executed. The sub should return a scalar, which will be examined. If it is a scalar, the value will be looked up in LDAP. If it is an arrayref, the values will be concatenated together with a single space. By default users are created as Unprivileged, but you can change this by setting C<$LDAPCreatePrivileged> to 1. =cut sub import_users { my $self = shift; my %args = @_; $self->_users({}); my @results = $self->run_user_search; return $self->_import_users( %args, users => \@results ); } sub _import_users { my $self = shift; my %args = @_; my $users = $args{users}; unless ( @$users ) { $RT::Logger->debug("No users found, no import"); $self->disconnect_ldap; return; } my $mapping = $RT::LDAPMapping; return unless $self->_check_ldap_mapping( mapping => $mapping ); my $done = 0; my $count = scalar @$users; while (my $entry = shift @$users) { my $user = $self->_build_user_object( ldap_entry => $entry ); $self->_import_user( user => $user, ldap_entry => $entry, import => $args{import} ); $done++; $RT::Logger->debug("Imported $done/$count users"); } return 1; } =head2 _import_user We have found a user to attempt to import; returns the L object if it was found (or created), C if not. =cut sub _import_user { my $self = shift; my %args = @_; unless ( $args{user}{Name} ) { $RT::Logger->warn("No Name or Emailaddress for user, skipping ".Dumper($args{user})); return; } if ( $args{user}{Name} =~ /^[0-9]+$/) { $RT::Logger->debug("Skipping user '$args{user}{Name}', as it is numeric"); return; } $RT::Logger->debug("Processing user $args{user}{Name}"); $self->_cache_user( %args ); $args{user} = $self->create_rt_user( %args ); return unless $args{user}; $self->add_user_to_group( %args ); $self->add_custom_field_value( %args ); $self->update_object_custom_field_values( %args, object => $args{user} ); return $args{user}; } =head2 _cache_user ldap_entry => Net::LDAP::Entry, [user => { ... }] Adds the user to a global cache which is used when importing groups later. Optionally takes a second argument which is a user data object returned by _build_user_object. If not given, _cache_user will call _build_user_object itself. Returns the user Name. =cut sub _cache_user { my $self = shift; my %args = (@_); my $user = $args{user} || $self->_build_user_object( ldap_entry => $args{ldap_entry} ); $self->_users({}) if not defined $self->_users; my $group_map = $RT::LDAPGroupMapping || {}; my $member_attr_val = $group_map->{Member_Attr_Value} || 'dn'; my $membership_key = lc $member_attr_val eq 'dn' ? $args{ldap_entry}->dn : $args{ldap_entry}->get_value($member_attr_val); # Fallback to the DN if the user record doesn't have a value unless (defined $membership_key) { $membership_key = $args{ldap_entry}->dn; $RT::Logger->warn("User attribute '$member_attr_val' has no value for '$membership_key'; falling back to DN"); } return $self->_users->{lc $membership_key} = $user->{Name}; } sub _show_user_info { my $self = shift; my %args = @_; my $user = $args{user}; my $rt_user = $args{rt_user}; $RT::Logger->debug( "\tRT Field\tRT Value -> LDAP Value" ); foreach my $key (sort keys %$user) { my $old_value; if ($rt_user) { eval { $old_value = $rt_user->$key() }; if ($user->{$key} && defined $old_value && $old_value eq $user->{$key}) { $old_value = 'unchanged'; } } $old_value ||= 'unset'; $RT::Logger->debug( "\t$key\t$old_value => $user->{$key}" ); } #$RT::Logger->debug(Dumper($user)); } =head2 _check_ldap_mapping Returns true is there is an C configured, returns false, logs an error and disconnects from ldap if there is no mapping. =cut sub _check_ldap_mapping { my $self = shift; my %args = @_; my $mapping = $args{mapping}; my @rtfields = keys %{$mapping}; unless ( @rtfields ) { $RT::Logger->error("No mapping found, can't import"); $self->disconnect_ldap; return; } return 1; } =head2 _build_user_object Utility method which wraps C<_build_object> to provide sane defaults for building users. It also tries to ensure a Name exists in the returned object. =cut sub _build_user_object { my $self = shift; my $user = $self->_build_object( skip => qr/(?i)^(?:User)?CF\./, mapping => $RT::LDAPMapping, @_ ); $user->{Name} ||= $user->{EmailAddress}; return $user; } =head2 _build_object Internal method - a wrapper around L that flattens results turning every value into a scalar. The following: [ [$first_value1, ... ], [$first_value2], $scalar_value, ] Turns into: "$first_value1 $first_value2 $scalar_value" Arguments are just passed into L. =cut sub _build_object { my $self = shift; my %args = @_; my $res = $self->_parse_ldap_mapping( %args ); foreach my $value ( values %$res ) { @$value = map { ref $_ eq 'ARRAY'? $_->[0] : $_ } @$value; $value = join ' ', grep defined && length, @$value; } return $res; } =head3 _parse_ldap_mapping Internal helper method that maps an LDAP entry to a hash according to passed arguments. Takes named arguments: =over 4 =item ldap_entry L instance that should be mapped. =item only Optional regular expression. If passed then only matching entries in the mapping will be processed. =item skip Optional regular expression. If passed then matching entries in the mapping will be skipped. =item mapping Hash that defines how to map. Key defines position in the result. Value can be one of the following: If we're passed a scalar or an array reference then value is: [ [value1_of_attr1, value2_of_attr1], [value1_of_attr2, value2_of_attr2], ] If we're passed a subroutine reference as value or as an element of array, it executes the code and returned list is pushed into results array: [ @result_of_function, ] All arguments are passed into the subroutine as well as a few more. See more in description of C<$LDAPMapping> option. =back Returns hash reference with results, each value is an array with elements either scalars or arrays as described above. =cut sub _parse_ldap_mapping { my $self = shift; my %args = @_; my $mapping = $args{mapping}; my %res; foreach my $rtfield ( sort keys %$mapping ) { next if $args{'skip'} && $rtfield =~ $args{'skip'}; next if $args{'only'} && $rtfield !~ $args{'only'}; my $ldap_field = $mapping->{$rtfield}; my @list = grep defined && length, ref $ldap_field eq 'ARRAY'? @$ldap_field : ($ldap_field); unless (@list) { $RT::Logger->error("Invalid LDAP mapping for $rtfield, no defined fields"); next; } my @values; foreach my $e (@list) { if (ref $e eq 'CODE') { push @values, $e->( %args, self => $self, rt_field => $rtfield, ldap_field => $ldap_field, result => \%res, ); } elsif (ref $e) { $RT::Logger->error("Invalid type of LDAP mapping for $rtfield, value is $e"); next; } else { # XXX: get_value asref returns undef if there is no such field on # the entry, should we warn? push @values, grep defined, $args{'ldap_entry'}->get_value( $e, asref => 1 ); } } $res{ $rtfield } = \@values; } return \%res; } =head2 create_rt_user Takes a hashref of args to pass to C Will try loading the user and will only create a new user if it can't find an existing user with the C or C arg passed in. If the C<$LDAPUpdateUsers> variable is true, data in RT will be clobbered with data in LDAP. Otherwise we will skip to the next user. If C<$LDAPUpdateOnly> is true, we will not create new users but we will update existing ones. =cut sub create_rt_user { my $self = shift; my %args = @_; my $user = $args{user}; my $user_obj = $self->_load_rt_user(%args); if ($user_obj->Id) { my $message = "User $user->{Name} already exists as ".$user_obj->Id; if ($RT::LDAPUpdateUsers || $RT::LDAPUpdateOnly) { $RT::Logger->debug("$message, updating their data"); if ($args{import}) { my @results = $user_obj->Update( ARGSRef => $user, AttributesRef => [keys %$user] ); $RT::Logger->debug(join("\n",@results)||'no change'); } else { $RT::Logger->debug("Found existing user $user->{Name} to update"); $self->_show_user_info( %args, rt_user => $user_obj ); } } else { $RT::Logger->debug("$message, skipping"); } } else { if ( $RT::LDAPUpdateOnly ) { $RT::Logger->debug("User $user->{Name} doesn't exist in RT, skipping"); return; } else { if ($args{import}) { my ($val, $msg) = $user_obj->Create( %$user, Privileged => $RT::LDAPCreatePrivileged ? 1 : 0 ); unless ($val) { $RT::Logger->error("couldn't create user_obj for $user->{Name}: $msg"); return; } $RT::Logger->debug("Created user for $user->{Name} with id ".$user_obj->Id); } else { $RT::Logger->debug( "Found new user $user->{Name} to create in RT" ); $self->_show_user_info( %args ); return; } } } unless ($user_obj->Id) { $RT::Logger->error("We couldn't find or create $user->{Name}. This should never happen"); } return $user_obj; } sub _load_rt_user { my $self = shift; my %args = @_; my $user = $args{user}; my $user_obj = RT::User->new($RT::SystemUser); $user_obj->Load( $user->{Name} ); unless ($user_obj->Id) { $user_obj->LoadByEmail( $user->{EmailAddress} ); } return $user_obj; } =head2 add_user_to_group Adds new users to the group specified in the C<$LDAPGroupName> variable (defaults to 'Imported from LDAP'). You can avoid this if you set C<$LDAPSkipAutogeneratedGroup>. =cut sub add_user_to_group { my $self = shift; my %args = @_; my $user = $args{user}; return if $RT::LDAPSkipAutogeneratedGroup; my $group = $self->_group||$self->setup_group; my $principal = $user->PrincipalObj; if ($group->HasMember($principal)) { $RT::Logger->debug($user->Name . " already a member of " . $group->Name); return; } if ($args{import}) { my ($status, $msg) = $group->AddMember($principal->Id); if ($status) { $RT::Logger->debug("Added ".$user->Name." to ".$group->Name." [$msg]"); } else { $RT::Logger->error("Couldn't add ".$user->Name." to ".$group->Name." [$msg]"); } return $status; } else { $RT::Logger->debug("Would add to ".$group->Name); return; } } =head2 setup_group Pulls the C<$LDAPGroupName> object out of the DB or creates it if we need to do so. =cut sub setup_group { my $self = shift; my $group_name = $RT::LDAPGroupName||'Imported from LDAP'; my $group = RT::Group->new($RT::SystemUser); $group->LoadUserDefinedGroup( $group_name ); unless ($group->Id) { my ($id,$msg) = $group->CreateUserDefinedGroup( Name => $group_name ); unless ($id) { $RT::Logger->error("Can't create group $group_name [$msg]") } } $self->_group($group); } =head3 add_custom_field_value Adds values to a Select (one|many) Custom Field. The Custom Field should already exist, otherwise this will throw an error and not import any data. This could probably use some caching. =cut sub add_custom_field_value { my $self = shift; my %args = @_; my $user = $args{user}; my $data = $self->_build_object( %args, only => qr/^CF\.(.+)$/i, mapping => $RT::LDAPMapping, ); foreach my $rtfield ( keys %$data ) { next unless $rtfield =~ /^CF\.(.+)$/i; my $cf_name = $1; my $cfv_name = $data->{ $rtfield } or next; my $cf = RT::CustomField->new($RT::SystemUser); my ($status, $msg) = $cf->Load($cf_name); unless ($status) { $RT::Logger->error("Couldn't load CF [$cf_name]: $msg"); next; } my $cfv = RT::CustomFieldValue->new($RT::SystemUser); $cfv->LoadByCols( CustomField => $cf->id, Name => $cfv_name ); if ($cfv->id) { $RT::Logger->debug("Custom Field '$cf_name' already has '$cfv_name' for a value"); next; } if ($args{import}) { ($status, $msg) = $cf->AddValue( Name => $cfv_name ); if ($status) { $RT::Logger->debug("Added '$cfv_name' to Custom Field '$cf_name' [$msg]"); } else { $RT::Logger->error("Couldn't add '$cfv_name' to '$cf_name' [$msg]"); } } else { $RT::Logger->debug("Would add '$cfv_name' to Custom Field '$cf_name'"); } } return; } =head3 update_object_custom_field_values Adds CF values to an object (currently only users). The Custom Field should already exist, otherwise this will throw an error and not import any data. Note that this code only B values at the moment, which on single value CFs will remove any old value first. Multiple value CFs may behave not quite how you expect. =cut sub update_object_custom_field_values { my $self = shift; my %args = @_; my $obj = $args{object}; my $data = $self->_build_object( %args, only => qr/^UserCF\.(.+)$/i, mapping => $RT::LDAPMapping, ); foreach my $rtfield ( sort keys %$data ) { # XXX TODO: accept GroupCF when we call this from group_import too next unless $rtfield =~ /^UserCF\.(.+)$/i; my $cf_name = $1; my $value = $data->{$rtfield}; $value = '' unless defined $value; my $current = $obj->FirstCustomFieldValue($cf_name); $current = '' unless defined $current; if (not length $current and not length $value) { $RT::Logger->debug("\tCF.$cf_name\tskipping, no value in RT and LDAP"); next; } elsif ($current eq $value) { $RT::Logger->debug("\tCF.$cf_name\tunchanged => $value"); next; } $current = 'unset' unless length $current; $RT::Logger->debug("\tCF.$cf_name\t$current => $value"); next unless $args{import}; my ($ok, $msg) = $obj->AddCustomFieldValue( Field => $cf_name, Value => $value ); $RT::Logger->error($obj->Name . ": Couldn't add value '$value' for '$cf_name': $msg") unless $ok; } } =head2 import_groups import => 1|0 Takes the results of the search from C and maps attributes from LDAP into C attributes using C<$LDAPGroupMapping>. Creates groups if they don't exist. Removes users from groups if they have been removed from the group on LDAP. With no arguments, only prints debugging information. Pass C<--import> to actually change data. =cut sub import_groups { my $self = shift; my %args = @_; my @results = $self->run_group_search; unless ( @results ) { $RT::Logger->debug("No results found, no group import"); $self->disconnect_ldap; return; } my $mapping = $RT::LDAPGroupMapping; return unless $self->_check_ldap_mapping( mapping => $mapping ); my $done = 0; my $count = scalar @results; while (my $entry = shift @results) { my $group = $self->_parse_ldap_mapping( %args, ldap_entry => $entry, skip => qr/^Member_Attr_Value$/i, mapping => $mapping, ); foreach my $key ( grep !/^Member_Attr/, keys %$group ) { @{ $group->{$key} } = map { ref $_ eq 'ARRAY'? $_->[0] : $_ } @{ $group->{$key} }; $group->{$key} = join ' ', grep defined && length, @{ $group->{$key} }; } @{ $group->{'Member_Attr'} } = map { ref $_ eq 'ARRAY'? @$_ : $_ } @{ $group->{'Member_Attr'} } if $group->{'Member_Attr'}; $group->{Description} ||= 'Imported from LDAP'; unless ( $group->{Name} ) { $RT::Logger->warn("No Name for group, skipping ".Dumper $group); next; } if ( $group->{Name} =~ /^[0-9]+$/) { $RT::Logger->debug("Skipping group '$group->{Name}', as it is numeric"); next; } $self->_import_group( %args, group => $group, ldap_entry => $entry ); $done++; $RT::Logger->debug("Imported $done/$count groups"); } return 1; } =head3 run_group_search Set up the appropriate arguments for a listing of users. =cut sub run_group_search { my $self = shift; unless ($RT::LDAPGroupBase && $RT::LDAPGroupFilter) { $RT::Logger->warn("Not running a group import, configuration not set"); return; } $self->_run_search( base => $RT::LDAPGroupBase, filter => $RT::LDAPGroupFilter ); } =head2 _import_group The user has run us with C<--import>, so bring data in. =cut sub _import_group { my $self = shift; my %args = @_; my $group = $args{group}; my $ldap_entry = $args{ldap_entry}; $RT::Logger->debug("Processing group $group->{Name}"); my ($group_obj, $created) = $self->create_rt_group( %args, group => $group ); return if $args{import} and not $group_obj; $self->add_group_members( %args, name => $group->{Name}, info => $group, group => $group_obj, ldap_entry => $ldap_entry, new => $created, ); # XXX TODO: support OCFVs for groups too return; } =head2 create_rt_group Takes a hashref of args to pass to C Will try loading the group and will only create a new group if it can't find an existing group with the C or C arg passed in. If C<$LDAPUpdateOnly> is true, we will not create new groups but we will update existing ones. There is currently no way to prevent Group data from being clobbered from LDAP. =cut sub create_rt_group { my $self = shift; my %args = @_; my $group = $args{group}; my $group_obj = $self->find_rt_group(%args); return unless defined $group_obj; $group = { map { $_ => $group->{$_} } qw(id Name Description) }; my $id = delete $group->{'id'}; my $created; if ($group_obj->Id) { if ($args{import}) { $RT::Logger->debug("Group $group->{Name} already exists as ".$group_obj->Id.", updating their data"); my @results = $group_obj->Update( ARGSRef => $group, AttributesRef => [keys %$group] ); $RT::Logger->debug(join("\n",@results)||'no change'); } else { $RT::Logger->debug( "Found existing group $group->{Name} to update" ); $self->_show_group_info( %args, rt_group => $group_obj ); } } else { if ( $RT::LDAPUpdateOnly ) { $RT::Logger->debug("Group $group->{Name} doesn't exist in RT, skipping"); return; } if ($args{import}) { my ($val, $msg) = $group_obj->CreateUserDefinedGroup( %$group ); unless ($val) { $RT::Logger->error("couldn't create group_obj for $group->{Name}: $msg"); return; } $created = $val; $RT::Logger->debug("Created group for $group->{Name} with id ".$group_obj->Id); if ( $id ) { my ($val, $msg) = $group_obj->SetAttribute( Name => 'LDAPImport-gid-'.$id, Content => 1 ); unless ($val) { $RT::Logger->error("couldn't set attribute: $msg"); return; } } } else { $RT::Logger->debug( "Found new group $group->{Name} to create in RT" ); $self->_show_group_info( %args ); return; } } unless ($group_obj->Id) { $RT::Logger->error("We couldn't find or create $group->{Name}. This should never happen"); } return ($group_obj, $created); } =head3 find_rt_group Loads groups by Name and by the specified LDAP id. Attempts to resolve renames and other out-of-sync failures between RT and LDAP. =cut sub find_rt_group { my $self = shift; my %args = @_; my $group = $args{group}; my $group_obj = RT::Group->new($RT::SystemUser); $group_obj->LoadUserDefinedGroup( $group->{Name} ); return $group_obj unless $group->{'id'}; unless ( $group_obj->id ) { $RT::Logger->debug("No group in RT named $group->{Name}. Looking by $group->{id} LDAP id."); $group_obj = $self->find_rt_group_by_ldap_id( $group->{'id'} ); unless ( $group_obj ) { $RT::Logger->debug("No group in RT with LDAP id $group->{id}. Creating a new one."); return RT::Group->new($RT::SystemUser); } $RT::Logger->debug("No group in RT named $group->{Name}, but found group by LDAP id $group->{id}. Renaming the group."); # $group->Update will take care of the name return $group_obj; } my $attr_name = 'LDAPImport-gid-'. $group->{'id'}; my $rt_gid = $group_obj->FirstAttribute( $attr_name ); return $group_obj if $rt_gid; my $other_group = $self->find_rt_group_by_ldap_id( $group->{'id'} ); if ( $other_group ) { $RT::Logger->debug("Group with LDAP id $group->{id} exists, as well as group named $group->{Name}. Renaming both."); } elsif ( grep $_->Name =~ /^LDAPImport-gid-/, @{ $group_obj->Attributes->ItemsArrayRef } ) { $RT::Logger->debug("No group in RT with LDAP id $group->{id}, but group $group->{Name} has id. Renaming the group and creating a new one."); } else { $RT::Logger->debug("No group in RT with LDAP id $group->{id}, but group $group->{Name} exists and has no LDAP id. Assigning the id to the group."); if ( $args{import} ) { my ($status, $msg) = $group_obj->SetAttribute( Name => $attr_name, Content => 1 ); unless ( $status ) { $RT::Logger->error("Couldn't set attribute: $msg"); return undef; } $RT::Logger->debug("Assigned $group->{id} LDAP group id to $group->{Name}"); } else { $RT::Logger->debug( "Group $group->{'Name'} gets LDAP id $group->{id}" ); } return $group_obj; } # rename existing group to move it out of our way { my ($old, $new) = ($group_obj->Name, $group_obj->Name .' (LDAPImport '. time . ')'); if ( $args{import} ) { my ($status, $msg) = $group_obj->SetName( $new ); unless ( $status ) { $RT::Logger->error("Couldn't rename group from $old to $new: $msg"); return undef; } $RT::Logger->debug("Renamed group $old to $new"); } else { $RT::Logger->debug( "Group $old to be renamed to $new" ); } } return $other_group || RT::Group->new($RT::SystemUser); } =head3 find_rt_group_by_ldap_id Loads an RT::Group by the ldap provided id (different from RT's internal group id) =cut sub find_rt_group_by_ldap_id { my $self = shift; my $id = shift; my $groups = RT::Groups->new( RT->SystemUser ); $groups->LimitToUserDefinedGroups; my $attr_alias = $groups->Join( FIELD1 => 'id', TABLE2 => 'Attributes', FIELD2 => 'ObjectId' ); $groups->Limit( ALIAS => $attr_alias, FIELD => 'ObjectType', VALUE => 'RT::Group' ); $groups->Limit( ALIAS => $attr_alias, FIELD => 'Name', VALUE => 'LDAPImport-gid-'. $id ); return $groups->First; } =head3 add_group_members Iterate over the list of values in the C LDAP entry. Look up the appropriate username from LDAP. Add those users to the group. Remove members of the RT Group who are no longer members of the LDAP group. =cut sub add_group_members { my $self = shift; my %args = @_; my $group = $args{group}; my $groupname = $args{name}; my $ldap_entry = $args{ldap_entry}; $RT::Logger->debug("Processing group membership for $groupname"); my $members = $args{'info'}{'Member_Attr'}; unless (defined $members) { $RT::Logger->warn("No members found for $groupname in Member_Attr"); return; } if ($RT::LDAPImportGroupMembers) { $RT::Logger->debug("Importing members of group $groupname"); my @entries; my $attr = lc($RT::LDAPGroupMapping->{Member_Attr_Value} || 'dn'); # Lookup each DN's full entry, or... if ($attr eq 'dn') { @entries = grep defined, map { my @results = $self->_run_search( scope => 'base', base => $_, filter => $RT::LDAPFilter, ); $results[0] } @$members; } # ...or find all the entries in a single search by attribute. else { # I wonder if this will run into filter length limits? -trs, 22 Jan 2014 my $members = join "", map { "($attr=" . escape_filter_value($_) . ")" } @$members; @entries = $self->_run_search( base => $RT::LDAPBase, filter => "(&$RT::LDAPFilter(|$members))", ); } $self->_import_users( import => $args{import}, users => \@entries, ) or $RT::Logger->debug("Importing group members failed"); } my %rt_group_members; if ($args{group} and not $args{new}) { my $user_members = $group->UserMembersObj( Recursively => 0); # find members who are Disabled too so we don't try to add them below $user_members->FindAllRows; while ( my $member = $user_members->Next ) { $rt_group_members{$member->Name} = $member; } } elsif (not $args{import}) { $RT::Logger->debug("No group in RT, would create with members:"); } my $users = $self->_users; foreach my $member (@$members) { my $username; if (exists $users->{lc $member}) { next unless $username = $users->{lc $member}; } else { my $attr = lc($RT::LDAPGroupMapping->{Member_Attr_Value} || 'dn'); my $base = $attr eq 'dn' ? $member : $RT::LDAPBase; my $scope = $attr eq 'dn' ? 'base' : 'sub'; my $filter = $attr eq 'dn' ? $RT::LDAPFilter : "(&$RT::LDAPFilter($attr=" . escape_filter_value($member) . "))"; my @results = $self->_run_search( base => $base, scope => $scope, filter => $filter, ); unless ( @results ) { $users->{lc $member} = undef; $RT::Logger->error("No user found for $member who should be a member of $groupname"); next; } my $ldap_user = shift @results; $username = $self->_cache_user( ldap_entry => $ldap_user ); } if ( delete $rt_group_members{$username} ) { $RT::Logger->debug("\t$username\tin RT and LDAP"); next; } $RT::Logger->debug($group ? "\t$username\tin LDAP, adding to RT" : "\t$username"); next unless $args{import}; my $rt_user = RT::User->new($RT::SystemUser); my ($res,$msg) = $rt_user->Load( $username ); unless ($res) { $RT::Logger->warn("Unable to load $username: $msg"); next; } ($res,$msg) = $group->AddMember($rt_user->PrincipalObj->Id); unless ($res) { $RT::Logger->warn("Failed to add $username to $groupname: $msg"); } } for my $username (sort keys %rt_group_members) { $RT::Logger->debug("\t$username\tin RT, not in LDAP, removing"); next unless $args{import}; my ($res,$msg) = $group->DeleteMember($rt_group_members{$username}->PrincipalObj->Id); unless ($res) { $RT::Logger->warn("Failed to remove $username to $groupname: $msg"); } } } =head2 _show_group Show debugging information about the group record we're going to import when the groups reruns us with C<--import>. =cut sub _show_group { my $self = shift; my %args = @_; my $group = $args{group}; my $rt_group = RT::Group->new($RT::SystemUser); $rt_group->LoadUserDefinedGroup( $group->{Name} ); if ( $rt_group->Id ) { $RT::Logger->debug( "Found existing group $group->{Name} to update" ); $self->_show_group_info( %args, rt_group => $rt_group ); } else { $RT::Logger->debug( "Found new group $group->{Name} to create in RT" ); $self->_show_group_info( %args ); } } sub _show_group_info { my $self = shift; my %args = @_; my $group = $args{group}; my $rt_group = $args{rt_group}; $RT::Logger->debug( "\tRT Field\tRT Value -> LDAP Value" ); foreach my $key (sort keys %$group) { my $old_value; if ($rt_group) { eval { $old_value = $rt_group->$key() }; if ($group->{$key} && defined $old_value && $old_value eq $group->{$key}) { $old_value = 'unchanged'; } } $old_value ||= 'unset'; $RT::Logger->debug( "\t$key\t$old_value => $group->{$key}" ); } } =head3 disconnect_ldap Disconnects from the LDAP server. Takes no arguments, returns nothing. =cut sub disconnect_ldap { my $self = shift; my $ldap = $self->_ldap; return unless $ldap; $ldap->unbind; $ldap->disconnect; $self->_ldap(undef); return; } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Catalog.pm000644 000765 000024 00000036637 13437510132 016037 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} use strict; use warnings; package RT::Catalog; use base 'RT::Record'; use Role::Basic 'with'; with "RT::Record::Role::Lifecycle", "RT::Record::Role::Roles" => { -rename => { # We provide ACL'd wraps of these. AddRoleMember => "_AddRoleMember", DeleteRoleMember => "_DeleteRoleMember", RoleGroup => "_RoleGroup", }, }, "RT::Record::Role::Rights"; require RT::ACE; =head1 NAME RT::Catalog - A logical set of assets =cut # For the Lifecycle role sub LifecycleType { "asset" } # Setup rights __PACKAGE__->AddRight( General => ShowCatalog => 'See catalogs' ); #loc __PACKAGE__->AddRight( Admin => AdminCatalog => 'Create, modify, and disable catalogs' ); #loc __PACKAGE__->AddRight( General => ShowAsset => 'See assets' ); #loc __PACKAGE__->AddRight( Staff => CreateAsset => 'Create assets' ); #loc __PACKAGE__->AddRight( Staff => ModifyAsset => 'Modify assets' ); #loc __PACKAGE__->AddRight( General => SeeCustomField => 'View custom field values' ); # loc __PACKAGE__->AddRight( Staff => ModifyCustomField => 'Modify custom field values' ); # loc __PACKAGE__->AddRight( Staff => SetInitialCustomField => 'Add custom field values only at object creation time'); # loc RT::ACE->RegisterCacheHandler(sub { my %args = ( Action => "", RightName => "", @_ ); return unless $args{Action} =~ /^(Grant|Revoke)$/i and $args{RightName} =~ /^(ShowCatalog|CreateAsset)$/; RT::Catalog->CacheNeedsUpdate(1); }); =head1 DESCRIPTION Catalogs are for assets what queues are for tickets or classes are for articles. It announces the rights for assets, and rights are granted at the catalog or global level. Asset custom fields are either applied globally to all Catalogs or individually to specific Catalogs. =over 4 =item id =item Name Limited to 255 characters. =item Description Limited to 255 characters. =item Lifecycle =item Disabled =item Creator =item Created =item LastUpdatedBy =item LastUpdated =back All of these are readable through methods of the same name and mutable through methods of the same name with C prefixed. The last four are automatically managed. =head1 METHODS =head2 Load ID or NAME Loads the specified Catalog into the current object. =cut sub Load { my $self = shift; my $id = shift; return unless $id; if ( $id =~ /\D/ ) { return $self->LoadByCols( Name => $id ); } else { return $self->SUPER::Load($id); } } =head2 Create PARAMHASH Create takes a hash of values and creates a row in the database. Available keys are: =over 4 =item Name =item Description =item Lifecycle =item HeldBy, Contact A single principal ID or array ref of principal IDs to add as members of the respective role groups for the new catalog. User Names and EmailAddresses may also be used, but Groups must be referenced by ID. =item Disabled =back Returns a tuple of (status, msg) on failure and (id, msg, non-fatal errors) on success, where the third value is an array reference of errors that occurred but didn't prevent creation. =cut sub Create { my $self = shift; my %args = ( Name => '', Description => '', Lifecycle => 'assets', HeldBy => undef, Contact => undef, Disabled => 0, @_ ); my @non_fatal_errors; return (0, $self->loc("Permission Denied")) unless $self->CurrentUserHasRight('AdminCatalog'); return (0, $self->loc('Invalid Name (names must be unique and may not be all digits)')) unless $self->ValidateName( $args{'Name'} ); $args{'Lifecycle'} ||= 'assets'; return (0, $self->loc('[_1] is not a valid lifecycle', $args{'Lifecycle'})) unless $self->ValidateLifecycle( $args{'Lifecycle'} ); RT->DatabaseHandle->BeginTransaction(); my ( $id, $msg ) = $self->SUPER::Create( map { $_ => $args{$_} } qw(Name Description Lifecycle Disabled), ); unless ($id) { RT->DatabaseHandle->Rollback(); return (0, $self->loc("Catalog create failed: [_1]", $msg)); } # Create role groups unless ($self->_CreateRoleGroups()) { RT->Logger->error("Couldn't create role groups for catalog ". $self->id); RT->DatabaseHandle->Rollback(); return (0, $self->loc("Couldn't create role groups for catalog")); } # Figure out users for roles my $roles = {}; push @non_fatal_errors, $self->_ResolveRoles( $roles, %args ); push @non_fatal_errors, $self->_AddRolesOnCreate( $roles, map { $_ => sub {1} } $self->Roles ); # Create transaction my ( $txn_id, $txn_msg, $txn ) = $self->_NewTransaction( Type => 'Create' ); unless ($txn_id) { RT->DatabaseHandle->Rollback(); return (0, $self->loc( 'Catalog Create txn failed: [_1]', $txn_msg )); } $self->CacheNeedsUpdate(1); RT->DatabaseHandle->Commit(); return ($id, $self->loc('Catalog #[_1] created: [_2]', $self->id, $args{'Name'}), \@non_fatal_errors); } =head2 ValidateName NAME Requires that Names contain at least one non-digit and doesn't already exist. =cut sub ValidateName { my $self = shift; my $name = shift; return 0 unless defined $name and length $name; return 0 unless $name =~ /\D/; my $catalog = RT::Catalog->new( RT->SystemUser ); $catalog->Load($name); return 0 if $catalog->id; return 1; } =head2 Delete Catalogs may not be deleted. Always returns failure. You should disable the catalog instead using C<< $catalog->SetDisabled(1) >>. =cut sub Delete { my $self = shift; return (0, $self->loc("Catalogs may not be deleted")); } =head2 CurrentUserCanSee Returns true if the current user can see the catalog via the I or I rights. =cut sub CurrentUserCanSee { my $self = shift; return $self->CurrentUserHasRight('ShowCatalog') || $self->CurrentUserHasRight('AdminCatalog'); } =head2 Owner Returns an L object for this catalog's I role group. On error, returns undef. =head2 HeldBy Returns an L object for this catalog's I role group. The object may be unloaded if permissions aren't satisfied. =head2 Contacts Returns an L object for this catalog's I role group. The object may be unloaded if permissions aren't satisfied. =cut sub Owner { my $self = shift; my $group = $self->RoleGroup("Owner"); return unless $group and $group->id; return $group->UserMembersObj->First; } sub HeldBy { $_[0]->RoleGroup("HeldBy") } sub Contacts { $_[0]->RoleGroup("Contact") } =head2 AddRoleMember Checks I before calling L. =cut sub AddRoleMember { my $self = shift; return (0, $self->loc("No permission to modify this catalog")) unless $self->CurrentUserHasRight("AdminCatalog"); return $self->_AddRoleMember(@_); } =head2 DeleteRoleMember Checks I before calling L. =cut sub DeleteRoleMember { my $self = shift; return (0, $self->loc("No permission to modify this catalog")) unless $self->CurrentUserHasRight("AdminCatalog"); return $self->_DeleteRoleMember(@_); } =head2 RoleGroup An ACL'd version of L. Checks I. =cut sub RoleGroup { my $self = shift; if ($self->CurrentUserCanSee) { return $self->_RoleGroup(@_); } else { return RT::Group->new( $self->CurrentUser ); } } =head2 AssetCustomFields Returns an L object containing all global and catalog-specific B custom fields. =cut sub AssetCustomFields { my $self = shift; my $cfs = RT::CustomFields->new( $self->CurrentUser ); if ($self->CurrentUserCanSee) { $cfs->SetContextObject( $self ); $cfs->LimitToGlobalOrObjectId( $self->Id ); $cfs->LimitToLookupType( RT::Asset->CustomFieldLookupType ); $cfs->ApplySortOrder; } else { $cfs->Limit( FIELD => 'id', VALUE => 0, SUBCLAUSE => 'acl' ); } return ($cfs); } =head1 INTERNAL METHODS =head2 CacheNeedsUpdate Takes zero or one arguments. If a true argument is provided, marks any Catalog caches as needing an update. This happens when catalogs are created, disabled/enabled, or modified. Returns nothing. If no arguments are provided, returns an epoch time that any catalog caches should be newer than. May be called as a class or object method. =cut sub CacheNeedsUpdate { my $class = shift; my $update = shift; if ($update) { RT->System->SetAttribute(Name => 'CatalogCacheNeedsUpdate', Content => time); return; } else { my $attribute = RT->System->FirstAttribute('CatalogCacheNeedsUpdate'); return $attribute ? $attribute->Content : 0; } } =head1 PRIVATE METHODS Documented for internal use only, do not call these from outside RT::Catalog itself. =head2 _Set Checks if the current user can I before calling C and records a transaction against this object if C was successful. =cut sub _Set { my $self = shift; my %args = ( Field => undef, Value => undef, @_ ); return (0, $self->loc("Permission Denied")) unless $self->CurrentUserHasRight('AdminCatalog'); my $old = $self->_Value( $args{'Field'} ); my ($ok, $msg) = $self->SUPER::_Set(@_); # Only record the transaction if the _Set worked return ($ok, $msg) unless $ok; my $txn_type = "Set"; if ($args{'Field'} eq "Disabled") { if (not $old and $args{'Value'}) { $txn_type = "Disabled"; } elsif ($old and not $args{'Value'}) { $txn_type = "Enabled"; } } $self->CacheNeedsUpdate(1); my ($txn_id, $txn_msg, $txn) = $self->_NewTransaction( Type => $txn_type, Field => $args{'Field'}, NewValue => $args{'Value'}, OldValue => $old, ); return ($txn_id, scalar $txn->BriefDescription); } =head2 Lifecycle [CONTEXT_OBJ] Returns the current value of Lifecycle. Provide an optional asset object as context to check role-level rights in addition to catalog-level rights for ShowCatalog and AdminCatalog. (In the database, Lifecycle is stored as varchar(32).) =cut sub Lifecycle { my $self = shift; my $context_obj = shift; if ( $context_obj && $context_obj->CatalogObj->Id eq $self->Id && ( $context_obj->CurrentUserHasRight('ShowCatalog') or $context_obj->CurrentUserHasRight('AdminCatalog') ) ) { return ( $self->__Value('Lifecycle') ); } return ( $self->_Value('Lifecycle') ); } =head2 _Value Checks L before calling C. =cut sub _Value { my $self = shift; return unless $self->CurrentUserCanSee; return $self->SUPER::_Value(@_); } sub Table { "Catalogs" } sub _CoreAccessible { { id => { read => 1, type => 'int(11)', default => '' }, Name => { read => 1, type => 'varchar(255)', default => '', write => 1 }, Description => { read => 1, type => 'varchar(255)', default => '', write => 1 }, Lifecycle => { read => 1, type => 'varchar(32)', default => 'assets', write => 1 }, Disabled => { read => 1, type => 'int(2)', default => '0', write => 1 }, Creator => { read => 1, type => 'int(11)', default => '0', auto => 1 }, Created => { read => 1, type => 'datetime', default => '', auto => 1 }, LastUpdatedBy => { read => 1, type => 'int(11)', default => '0', auto => 1 }, LastUpdated => { read => 1, type => 'datetime', default => '', auto => 1 }, } } sub FindDependencies { my $self = shift; my ($walker, $deps) = @_; $self->SUPER::FindDependencies($walker, $deps); # Role groups( HeldBy, Contact) my $objs = RT::Groups->new( $self->CurrentUser ); $objs->Limit( FIELD => 'Domain', VALUE => 'RT::Catalog-Role', CASESENSITIVE => 0 ); $objs->Limit( FIELD => 'Instance', VALUE => $self->Id ); $deps->Add( in => $objs ); # Custom Fields on assets _in_ this catalog $objs = RT::ObjectCustomFields->new( $self->CurrentUser ); $objs->Limit( FIELD => 'ObjectId', OPERATOR => '=', VALUE => $self->id, ENTRYAGGREGATOR => 'OR' ); $objs->Limit( FIELD => 'ObjectId', OPERATOR => '=', VALUE => 0, ENTRYAGGREGATOR => 'OR' ); my $cfs = $objs->Join( ALIAS1 => 'main', FIELD1 => 'CustomField', TABLE2 => 'CustomFields', FIELD2 => 'id', ); $objs->Limit( ALIAS => $cfs, FIELD => 'LookupType', OPERATOR => 'STARTSWITH', VALUE => 'RT::Catalog-' ); $deps->Add( in => $objs ); # Assets $objs = RT::Assets->new( $self->CurrentUser ); $objs->Limit( FIELD => "Catalog", VALUE => $self->Id ); $objs->{allow_deleted_search} = 1; $deps->Add( in => $objs ); } sub PreInflate { my $class = shift; my ( $importer, $uid, $data ) = @_; $class->SUPER::PreInflate( $importer, $uid, $data ); $data->{Name} = $importer->Qualify( $data->{Name} ); return if $importer->MergeBy( "Name", $class, $uid, $data ); return 1; } RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Crypt.pm000644 000765 000024 00000060636 13437510132 015562 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} use strict; use warnings; package RT::Crypt; use 5.010; =head1 NAME RT::Crypt - encrypt/decrypt and sign/verify subsystem for RT =head1 DESCRIPTION This module provides support for encryption and signing of outgoing messages, as well as the decryption and verification of incoming emails using various encryption standards. Currently, L and L protocols are supported. =head1 CONFIGURATION You can control the configuration of this subsystem from RT's configuration file. Some options are available via the web interface, but to enable this functionality, you MUST start in the configuration file. For each protocol there is a hash with the same name in the configuration file. This hash controls RT-specific options regarding the protocol. It allows you to enable/disable each facility or change the format of messages; for example, GnuPG uses the following config: Set( %GnuPG, Enable => 1, ... other options ... ); C is the only key that is generic for all protocols. A protocol may have additional options to fine-tune behaviour. =head2 %Crypt This config option hash chooses which protocols are decrypted and verified in incoming messages, which protocol is used for outgoing emails, and RT's behaviour on errors during decrypting and verification. RT will provide sane defaults for all of these options. By default, all enabled encryption protocols are decrypted on incoming mail; if you wish to limit this to a subset, you may, via: Set( %Crypt, ... Incoming => ['SMIME'], ... ); RT can currently only use one protocol to encrypt and sign outgoing email; this defaults to the first enabled protocol. You many specify it explicitly via: Set( %Crypt, ... Outgoing => 'GnuPG', ... ); You can allow users to encrypt data in the database by setting the C key to a true value; by default, this is disabled. Be aware that users must have rights to see and modify tickets to use this feature. =head2 Per-queue options Using the web interface, it is possible to enable signing and/or encrypting by default. As an administrative user of RT, navigate to the 'Admin' and 'Queues' menus, and select a queue. If at least one encryption protocol is enabled, information concerning available keys will be displayed, as well as options to enable signing and encryption. =head2 Error handling There are several global templates created in the database by default. RT uses these templates to send error messages to users or RT's owner. These templates have an 'Error:' or 'Error to RT owner:' prefix in the name. You can adjust the text of the messages using the web interface. Note that while C<$TicketObj>, C<$TransactionObj> and other variables usually available in RT's templates are not available in these templates, but each is passed alternate data structures can be used to build better messages; see the default templates and descriptions below. You can disable any particular notification by simply deleting the content of a template. Deleting the templates entirely is not suggested, as RT will log error messages when attempting to send mail usign them. =head3 Problems with public keys The 'Error: public key' template is used to inform the user that RT had problems with their public key, and thus will not be able to send encrypted content. There are several reasons why RT might fail to use a key; by default, the actual reason is not sent to the user, but sent to the RT owner using the 'Error to RT owner: public key' template. Possible reasons include "Not Found", "Ambiguous specification", "Wrong key usage", "Key revoked", "Key expired", "No CRL known", "CRL too old", "Policy mismatch", "Not a secret key", "Key not trusted" or "No specific reason given". In the 'Error: public key' template there are a few additional variables available: =over 4 =item $Message - user friendly error message =item $Reason - short reason as listed above =item $Recipient - recipient's identification =item $AddressObj - L object containing recipient's email address =back As a message may have several invalid recipients, to avoid sending many emails to the RT owner, the system sends one message to the owner, grouped by recipient. In the 'Error to RT owner: public key' template a C<@BadRecipients> array is available where each element is a hash reference that describes one recipient using the same fields as described above: @BadRecipients = ( { Message => '...', Reason => '...', Recipient => '...', ...}, { Message => '...', Reason => '...', Recipient => '...', ...}, ... ) =head3 Private key doesn't exist The 'Error: no private key' template is used to inform the user that they sent an encrypted email to RT, but RT does not have the private key to decrypt it. In this template L object C<$Message> is available, which is the originally received message. =head3 Invalid data The 'Error: bad encrypted data' template is used to inform the user that a message they sent had invalid data, and could not be handled. There are several possible reasons for this error, but most of them are data corruption or absence of expected information. In this template, the C<@Messages> array is available, and will contain a list of error messages. =head1 METHODS =head2 Protocols Returns the complete set of encryption protocols that RT implements; not all may be supported by this installation. =cut our @PROTOCOLS = ('GnuPG', 'SMIME'); our %PROTOCOLS = map { lc $_ => $_ } @PROTOCOLS; sub Protocols { return @PROTOCOLS; } =head2 EnabledProtocols Returns the set of enabled and available encryption protocols. =cut sub EnabledProtocols { my $self = shift; return grep RT->Config->Get($_)->{'Enable'}, $self->Protocols; } =head2 UseForOutgoing Returns the configured outgoing encryption protocol; see L. =cut sub UseForOutgoing { return RT->Config->Get('Crypt')->{'Outgoing'}; } =head2 EnabledOnIncoming Returns the list of encryption protocols that should be used for decryption and verification of incoming email; see L. =cut sub EnabledOnIncoming { return @{ scalar RT->Config->Get('Crypt')->{'Incoming'} }; } =head2 LoadImplementation CLASS Given the name of an encryption implementation (e.g. "GnuPG"), loads the L class associated with it; return the classname on success, and undef on failure. =cut sub LoadImplementation { state %cache; my $proto = $PROTOCOLS{ lc $_[1] } or die "Unknown protocol '$_[1]'"; my $class = 'RT::Crypt::'. $proto; return $cache{ $class } if exists $cache{ $class }; if ($class->require) { return $cache{ $class } = $class; } else { RT->Logger->warn( "Could not load $class: $@" ); return $cache{ $class } = undef; } } =head2 SimpleImplementationCall Protocol => NAME, [...] Examines the caller of this method, and dispatches to the method of the same name on the correct L class based on the provided C. =cut sub SimpleImplementationCall { my $self = shift; my %args = (@_); my $protocol = delete $args{'Protocol'} || $self->UseForOutgoing; my $method = (caller(1))[3]; $method =~ s/.*:://; my %res = $self->LoadImplementation( $protocol )->$method( %args ); $res{'Protocol'} = $protocol if keys %res; return %res; } =head2 FindProtectedParts Entity => MIME::Entity Looks for encrypted or signed parts of the given C, using all L encryption protocols. For each node in the MIME hierarchy, L for that L is called on each L protocol. Any multipart nodes not claimed by those protocols are recursed into. Finally, L is called on the top-most entity for each L protocol. Returns a list of hash references; each hash reference is guaranteed to contain a C key describing the protocol of the found part, and a C which is either C or C. The remaining keys are protocol-dependent; the hashref will be provided to L. =cut sub FindProtectedParts { my $self = shift; my %args = ( Entity => undef, Skip => {}, Scattered => 1, @_ ); my $entity = $args{'Entity'}; return () if $args{'Skip'}{ $entity }; $args{'TopEntity'} ||= $entity; my @protocols = $self->EnabledOnIncoming; foreach my $protocol ( @protocols ) { my $class = $self->LoadImplementation( $protocol ); my %info = $class->CheckIfProtected( TopEntity => $args{'TopEntity'}, Entity => $entity, ); next unless keys %info; $args{'Skip'}{ $entity } = 1; $info{'Protocol'} = $protocol; return \%info; } if ( $entity->effective_type =~ /^multipart\/(?:signed|encrypted)/ ) { # if no module claimed that it supports these types then # we don't dive in and check sub-parts $args{'Skip'}{ $entity } = 1; return (); } my @res; # not protected itself, look inside push @res, $self->FindProtectedParts( %args, Entity => $_, Scattered => 0, ) foreach grep !$args{'Skip'}{$_}, $entity->parts; if ( $args{'Scattered'} ) { my %parent; my $filter; $filter = sub { $parent{$_[0]} = $_[1]; unless ( $_[0]->is_multipart ) { return () if $args{'Skip'}{$_[0]}; return $_[0]; } return map $filter->($_, $_[0]), grep !$args{'Skip'}{$_}, $_[0]->parts; }; my @parts = $filter->($entity); return @res unless @parts; foreach my $protocol ( @protocols ) { my $class = $self->LoadImplementation( $protocol ); my @list = $class->FindScatteredParts( Entity => $args{'TopEntity'}, Parts => \@parts, Parents => \%parent, Skip => $args{'Skip'} ); next unless @list; $_->{'Protocol'} = $protocol foreach @list; push @res, @list; @parts = grep !$args{'Skip'}{$_}, @parts; } } return @res; } =head2 SignEncrypt Entity => ENTITY, [Sign => 1], [Encrypt => 1], [Recipients => ARRAYREF], [Signer => NAME], [Protocol => NAME], [Passphrase => VALUE] Takes a L object, and signs and/or encrypts it using the given C. If not set, C for encryption will be set by examining the C, C, and C headers of the MIME entity. If not set, C defaults to the C of the MIME entity. C, if not provided, will be retrieved using L. Returns a hash with at least the following keys: =over =item exit_code True if there was an error encrypting or signing. =item message An un-localized error message desribing the problem. =back =cut sub SignEncrypt { my $self = shift; my %args = ( Sign => 1, Encrypt => 1, @_, ); my $entity = $args{'Entity'}; if ( $args{'Sign'} && !defined $args{'Signer'} ) { $args{'Signer'} = $self->UseKeyForSigning || do { my ($addr) = map {Email::Address->parse( Encode::decode( "UTF-8", $_ ) )} $entity->head->get( 'From' ); $addr ? $addr->address : undef }; } if ( $args{'Encrypt'} && !$args{'Recipients'} ) { my %seen; $args{'Recipients'} = [ grep $_ && !$seen{ $_ }++, map $_->address, map Email::Address->parse( Encode::decode("UTF-8", $_ ) ), map $entity->head->get( $_ ), qw(To Cc Bcc) ]; } return $self->SimpleImplementationCall( %args ); } =head2 SignEncryptContent Content => STRINGREF, [Sign => 1], [Encrypt => 1], [Recipients => ARRAYREF], [Signer => NAME], [Protocol => NAME], [Passphrase => VALUE] Signs and/or encrypts a string, which is passed by reference. C defaults to C, and C defaults to the global L. All other arguments and return values are identical to L. =cut sub SignEncryptContent { my $self = shift; my %args = (@_); if ( $args{'Sign'} && !defined $args{'Signer'} ) { $args{'Signer'} = $self->UseKeyForSigning; } if ( $args{'Encrypt'} && !$args{'Recipients'} ) { $args{'Recipients'} = [ RT->Config->Get('CorrespondAddress') ]; } return $self->SimpleImplementationCall( %args ); } =head2 DrySign Signer => KEY Signs a small message with the key, to make sure the key exists and we have a useable passphrase. The Signer argument MUST be a key identifier of the signer: either email address, key id or finger print. Returns a true value if all went well. =cut sub DrySign { my $self = shift; my $mime = MIME::Entity->build( Type => "text/plain", From => 'nobody@localhost', To => 'nobody@localhost', Subject => "dry sign", Data => ['t'], ); my %res = $self->SignEncrypt( @_, Sign => 1, Encrypt => 0, Entity => $mime, ); return $res{exit_code} == 0; } =head2 VerifyDecrypt Entity => ENTITY [, Passphrase => undef ] Locates all protected parts of the L object C, as found by L, and calls L from the appropriate L class on each. C, if not provided, will be retrieved using L. Returns a list of the hash references returned from L. =cut sub VerifyDecrypt { my $self = shift; my %args = ( Entity => undef, Recursive => 1, @_ ); my @res; my @protected = $self->FindProtectedParts( Entity => $args{'Entity'} ); foreach my $protected ( @protected ) { my %res = $self->SimpleImplementationCall( %args, Protocol => $protected->{'Protocol'}, Info => $protected ); # Let the header be modified so continuations are handled my $modify = $res{status_on}->head->modify; $res{status_on}->head->modify(1); $res{status_on}->head->add( "X-RT-" . $protected->{'Protocol'} . "-Status" => Encode::encode( "UTF-8", $res{'status'} ) ); $res{status_on}->head->modify($modify); push @res, \%res; } push @res, $self->VerifyDecrypt( %args ) if $args{Recursive} and @res and not grep {$_->{'exit_code'}} @res; return @res; } =head2 DecryptContent Protocol => NAME, Content => STRINGREF, [Passphrase => undef] Decrypts the content in the string reference in-place. All other arguments and return values are identical to L. =cut sub DecryptContent { return shift->SimpleImplementationCall( @_ ); } =head2 ParseStatus Protocol => NAME, Status => STRING Takes a C describing the status of verification/decryption, usually as stored in a MIME header. Parses it and returns array of hash references, one for each operation. Each hashref contains at least three keys: =over =item Operation The classification of the process whose status is being reported upon. Valid values include C, C, C, C, C, C and C. =item Status Whether the operation was successful; contains C on success. Other possible values include C, C, or C. =item Message An un-localized user friendly message. =back =cut sub ParseStatus { my $self = shift; my %args = ( Protocol => undef, Status => '', @_ ); return $self->LoadImplementation( $args{'Protocol'} )->ParseStatus( $args{'Status'} ); } =head2 UseKeyForSigning [KEY] Returns or sets the identifier of the key that should be used for signing. Returns the current value when called without arguments; sets the new value when called with one argument and unsets if it's undef. This cache is cleared at the end of every request. =cut sub UseKeyForSigning { my $self = shift; state $key; if ( @_ ) { $key = $_[0]; } return $key; } =head2 UseKeyForEncryption [KEY [, VALUE]] Gets or sets keys to use for encryption. When passed no arguments, clears the cache. When passed just a key, returns the encryption key previously stored for that key. When passed two (or more) keys, stores them associatively. This cache is reset at the end of every request. =cut sub UseKeyForEncryption { my $self = shift; state %key; unless ( @_ ) { %key = (); } elsif ( @_ > 1 ) { %key = (%key, @_); $key{ lc($_) } = delete $key{ $_ } foreach grep lc ne $_, keys %key; } else { return $key{ $_[0] }; } return (); } =head2 GetKeysForEncryption Recipient => EMAIL, Protocol => NAME Returns the list of keys which are suitable for encrypting mail to the given C. Generally this is equivalent to L with a C of , but encryption protocols may further limit which keys can be used for encryption, as opposed to signing. =cut sub CheckRecipients { my $self = shift; my @recipients = (@_); my ($status, @issues) = (1, ()); my $trust = sub { 1 }; if ( $self->UseForOutgoing eq 'SMIME' ) { $trust = sub { $_[0]->{'TrustLevel'} > 0 or RT->Config->Get('SMIME')->{AcceptUntrustedCAs} }; } elsif ( $self->UseForOutgoing eq 'GnuPG' ) { $trust = sub { $_[0]->{'TrustLevel'} > 0 }; } my %seen; foreach my $address ( grep !$seen{ lc $_ }++, map $_->address, @recipients ) { my %res = $self->GetKeysForEncryption( Recipient => $address ); if ( $res{'info'} && @{ $res{'info'} } == 1 and $trust->($res{'info'}[0]) ) { # One key, which is trusted, or we can sign with an # untrusted key (aka SMIME with AcceptUntrustedCAs) next; } my $user = RT::User->new( RT->SystemUser ); $user->LoadByEmail( $address ); # it's possible that we have no User record with the email $user = undef unless $user->id; if ( my $fpr = RT::Crypt->UseKeyForEncryption( $address ) ) { if ( $res{'info'} && @{ $res{'info'} } ) { next if grep lc $_->{'Fingerprint'} eq lc $fpr, grep $trust->($_), @{ $res{'info'} }; } $status = 0; my %issue = ( EmailAddress => $address, $user? (User => $user) : (), Keys => undef, ); $issue{'Message'} = "Selected key either is not trusted or doesn't exist anymore."; #loc push @issues, \%issue; next; } my $prefered_key; $prefered_key = $user->PreferredKey if $user; #XXX: prefered key is not yet implemented... # classify errors $status = 0; my %issue = ( EmailAddress => $address, $user? (User => $user) : (), Keys => undef, ); unless ( $res{'info'} && @{ $res{'info'} } ) { # no key $issue{'Message'} = "There is no key suitable for encryption."; #loc } elsif ( @{ $res{'info'} } == 1 && !$res{'info'}[0]{'TrustLevel'} ) { # trust is not set $issue{'Message'} = "There is one suitable key, but trust level is not set."; #loc } else { # multiple keys $issue{'Message'} = "There are several keys suitable for encryption."; #loc } push @issues, \%issue; } return ($status, @issues); } sub GetKeysForEncryption { my $self = shift; my %args = @_%2? (Recipient => @_) : (Protocol => undef, Recipient => undef, @_ ); return $self->SimpleImplementationCall( %args ); } =head2 GetKeysForSigning Signer => EMAIL, Protocol => NAME Returns the list of keys which are suitable for signing mail from the given C. Generally this is equivalent to L with a C of , but encryption protocols may further limit which keys can be used for signing, as opposed to encryption. =cut sub GetKeysForSigning { my $self = shift; my %args = @_%2? (Signer => @_) : (Protocol => undef, Signer => undef, @_); return $self->SimpleImplementationCall( %args ); } =head2 GetPublicKeyInfo Protocol => NAME, KEY => EMAIL As per L, but the C is forced to C. =cut sub GetPublicKeyInfo { return (shift)->GetKeyInfo( @_, Type => 'public' ); } =head2 GetPrivateKeyInfo Protocol => NAME, KEY => EMAIL As per L, but the C is forced to C. =cut sub GetPrivateKeyInfo { return (shift)->GetKeyInfo( @_, Type => 'private' ); } =head2 GetKeyInfo Protocol => NAME, Type => ('public'|'private'), KEY => EMAIL As per L, but only the first matching key is returned in the C value of the result. =cut sub GetKeyInfo { my $self = shift; my %res = $self->GetKeysInfo( @_ ); $res{'info'} = $res{'info'}->[0]; return %res; } =head2 GetKeysInfo Protocol => NAME, Type => ('public'|'private'), Key => EMAIL Looks up information about the public or private keys (as determined by C) for the email address C. As each protocol has its own key store, C is also required. If no C is provided and a true value for C is given, returns all keys. The return value is a hash containing C and C in the case of failure, or C, which is an array reference of key information. Each key is represented as a hash reference; the keys are protocol-dependent, but will at least contain: =over =item Protocol The name of the protocol of this key =item Created An L of the date the key was created; undef if unset. =item Expire An L of the date the key expires; undef if the key does not expire. =item Fingerprint A fingerprint unique to this key =item Formatted A formatted string representation of the key =item User An array reference of associated user data, each of which is a hashref containing at least a C value, which is a C<< Alice Example >> style email address. Each may also contain C and C keys, which are L objects. =back =cut sub GetKeysInfo { my $self = shift; my %args = @_%2 ? (Key => @_) : ( Protocol => undef, Key => undef, @_ ); return $self->SimpleImplementationCall( %args ); } 1; rt-4.4.4/lib/RT/ObjectTopics.pm000644 000765 000024 00000005330 13437510132 017037 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} use warnings; use strict; package RT::ObjectTopics; use base 'RT::SearchBuilder'; sub Table {'ObjectTopics'} # {{{ LimitToTopic =head2 LimitToTopic FIELD Returns values for the topic with Id FIELD =cut sub LimitToTopic { my $self = shift; my $cf = shift; return ($self->Limit( FIELD => 'Topic', VALUE => $cf, OPERATOR => '=')); } # }}} # {{{ LimitToObject =head2 LimitToObject OBJ Returns associations for the given OBJ only =cut sub LimitToObject { my $self = shift; my $object = shift; $self->Limit( FIELD => 'ObjectType', VALUE => ref($object)); $self->Limit( FIELD => 'ObjectId', VALUE => $object->Id); } # }}} RT::Base->_ImportOverlays(); 1; rt-4.4.4/lib/RT/Scrip.pm000644 000765 000024 00000074647 13437510132 015550 0ustar00sunnavystaff000000 000000 # BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} =head1 NAME RT::Scrip - an RT Scrip object =head1 SYNOPSIS use RT::Scrip; =head1 DESCRIPTION =head1 METHODS =cut package RT::Scrip; use strict; use warnings; use base 'RT::Record'; use RT::Queue; use RT::Template; use RT::ScripCondition; use RT::ScripAction; use RT::Scrips; use RT::ObjectScrip; sub Table {'Scrips'} # {{{ sub Create =head2 Create Creates a new entry in the Scrips table. Takes a paramhash with: Queue => 0, Description => undef, Template => undef, ScripAction => undef, ScripCondition => undef, CustomPrepareCode => undef, CustomCommitCode => undef, CustomIsApplicableCode => undef, Returns (retval, msg); retval is 0 for failure or scrip id. msg is a textual description of what happened. =cut sub Create { my $self = shift; my %args = ( Queue => 0, Template => undef, # name or id ScripAction => 0, # name or id ScripCondition => 0, # name or id Stage => 'TransactionCreate', Description => undef, CustomPrepareCode => undef, CustomCommitCode => undef, CustomIsApplicableCode => undef, @_ ); if ($args{CustomPrepareCode} || $args{CustomCommitCode} || $args{CustomIsApplicableCode}) { unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'ExecuteCode' ) ) { return ( 0, $self->loc('Permission Denied') ); } } unless ( $args{'Queue'} ) { unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'ModifyScrips' ) ) { return ( 0, $self->loc('Permission Denied') ); } $args{'Queue'} = 0; # avoid undef sneaking in } else { my $QueueObj = RT::Queue->new( $self->CurrentUser ); $QueueObj->Load( $args{'Queue'} ); unless ( $QueueObj->id ) { return ( 0, $self->loc('Invalid queue') ); } unless ( $QueueObj->CurrentUserHasRight('ModifyScrips') ) { return ( 0, $self->loc('Permission Denied') ); } $args{'Queue'} = $QueueObj->id; } #TODO +++ validate input return ( 0, $self->loc("Action is mandatory argument") ) unless $args{'ScripAction'}; my $action = RT::ScripAction->new( $self->CurrentUser ); $action->Load( $args{'ScripAction'} ); return ( 0, $self->loc( "Action '[_1]' not found", $args{'ScripAction'} ) ) unless $action->Id; return ( 0, $self->loc("Template is mandatory argument") ) unless $args{'Template'}; my $template = RT::Template->new( $self->CurrentUser ); if ( $args{'Template'} =~ /\D/ ) { $template->LoadByName( Name => $args{'Template'}, Queue => $args{'Queue'} ); return ( 0, $self->loc( "Global template '[_1]' not found", $args{'Template'} ) ) if !$template->Id && !$args{'Queue'}; return ( 0, $self->loc( "Global or queue specific template '[_1]' not found", $args{'Template'} ) ) if !$template->Id; } else { $template->Load( $args{'Template'} ); return ( 0, $self->loc( "Template '[_1]' not found", $args{'Template'} ) ) unless $template->Id; return (0, $self->loc( "Template '[_1]' is not global" )) if !$args{'Queue'} && $template->Queue; return (0, $self->loc( "Template '[_1]' is not global nor queue specific" )) if $args{'Queue'} && $template->Queue && $template->Queue != $args{'Queue'}; } return ( 0, $self->loc("Condition is mandatory argument") ) unless $args{'ScripCondition'}; my $condition = RT::ScripCondition->new( $self->CurrentUser ); $condition->Load( $args{'ScripCondition'} ); return ( 0, $self->loc( "Condition '[_1]' not found", $args{'ScripCondition'} ) ) unless $condition->Id; if ( $args{'Stage'} eq 'Disabled' ) { $RT::Logger->warning("Disabled Stage is deprecated"); $args{'Stage'} = 'TransactionCreate'; $args{'Disabled'} = 1; } $args{'Disabled'} ||= 0; my ( $id, $msg ) = $self->SUPER::Create( Template => $template->Name, ScripCondition => $condition->id, ScripAction => $action->Id, Disabled => $args{'Disabled'}, Description => $args{'Description'}, CustomPrepareCode => $args{'CustomPrepareCode'}, CustomCommitCode => $args{'CustomCommitCode'}, CustomIsApplicableCode => $args{'CustomIsApplicableCode'}, ); return ( $id, $msg ) unless $id; (my $status, $msg) = RT::ObjectScrip->new( $self->CurrentUser )->Add( Scrip => $self, Stage => $args{'Stage'}, ObjectId => $args{'Queue'}, ); $RT::Logger->error( "Couldn't add scrip: $msg" ) unless $status; return ( $id, $self->loc('Scrip Created') ); } =head2 Delete Delete this object =cut sub Delete { my $self = shift; unless ( $self->CurrentUserHasRight('ModifyScrips') ) { return ( 0, $self->loc('Permission Denied') ); } RT::ObjectScrip->new( $self->CurrentUser )->DeleteAll( Scrip => $self ); return ( $self->SUPER::Delete(@_) ); } sub IsGlobal { return shift->IsAdded(0) } sub IsAdded { my $self = shift; my $record = RT::ObjectScrip->new( $self->CurrentUser ); $record->LoadByCols( Scrip => $self->id, ObjectId => shift || 0 ); return undef unless $record->id; return $record; } sub IsAddedToAny { my $self = shift; my $record = RT::ObjectScrip->new( $self->CurrentUser ); $record->LoadByCols( Scrip => $self->id ); return $record->id ? 1 : 0; } sub AddedTo { my $self = shift; return RT::ObjectScrip->new( $self->CurrentUser ) ->AddedTo( Scrip => $self ); } sub NotAddedTo { my $self = shift; return RT::ObjectScrip->new( $self->CurrentUser ) ->NotAddedTo( Scrip => $self ); } =head2 AddToObject Adds (applies) the current scrip to the provided queue (ObjectId). Accepts a param hash of: =over =item C Queue name or id. 0 makes the scrip global. =item C Stage to run in. Valid stages are TransactionCreate or TransactionBatch. Defaults to TransactionCreate. As of RT 4.2, Disabled is no longer a stage. =item C