docs-common/bin - New directory
by fedora-docs-commits@redhat.com
Author: jtr
Update of /cvs/docs/docs-common/bin
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14578/bin
Log Message:
Directory /cvs/docs/docs-common/bin added to the repository
18 years, 10 months
xml-normalize yum-software-management-en.xml,1.2,1.3
by fedora-docs-commits@redhat.com
Author: pfrields
Update of /cvs/docs/xml-normalize
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14438
Modified Files:
yum-software-management-en.xml
Log Message:
Another xml-norm test with a one line change... how big will the diff be?
Index: yum-software-management-en.xml
===================================================================
RCS file: /cvs/docs/xml-normalize/yum-software-management-en.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- yum-software-management-en.xml 27 Jun 2005 19:08:03 -0000 1.2
+++ yum-software-management-en.xml 27 Jun 2005 19:12:49 -0000 1.3
@@ -56,7 +56,7 @@
<command>yum</command> an essential tool.
</para>
</section>
-
+<!-- test foo -->
<section id="sn-usingdoc">
<title>Using This Document</title>
18 years, 10 months
xml-normalize yum-software-management-en.xml,1.1,1.2
by fedora-docs-commits@redhat.com
Author: pfrields
Update of /cvs/docs/xml-normalize
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14357
Modified Files:
yum-software-management-en.xml
Log Message:
Testing xml-normalize, this might be very large... sorry.
18 years, 10 months
xml-normalize 010-text.xml,1.4,1.5
by fedora-docs-commits@redhat.com
Author: jtr
Update of /cvs/docs/xml-normalize
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv13168
Modified Files:
010-text.xml
Log Message:
RIght shifted.
Index: 010-text.xml
===================================================================
RCS file: /cvs/docs/xml-normalize/010-text.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- 010-text.xml 27 Jun 2005 17:30:34 -0000 1.4
+++ 010-text.xml 27 Jun 2005 18:40:32 -0000 1.5
@@ -1,16 +1,16 @@
<!-- $Id$ -->
<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
- <!ENTITY TODAY "03 January 2005" >
- <!ENTITY LEGAL-INFO SYSTEM "legalnotice-en.xml" >
- <!ENTITY FEDORA "2.6.9-1.724_FC3" >
- <!ENTITY FC "FC3" >
- <!ENTITY KVERSION "2.6.9" >
- <!ENTITY EXTRAVERSION "-1.724_FC3" >
+ <!ENTITY TODAY "03 January 2005" >
+ <!ENTITY LEGAL-INFO SYSTEM "legalnotice-en.xml" >
+ <!ENTITY FEDORA "2.6.9-1.724_FC3" >
+ <!ENTITY FC "FC3" >
+ <!ENTITY KVERSION "2.6.9" >
+ <!ENTITY EXTRAVERSION "-1.724_FC3" >
- ]>
+ ]>
<bookinfo>
<title>Linux Device Drivers</title>
18 years, 10 months
xml-normalize yum-software-management-en.xml,NONE,1.1
by fedora-docs-commits@redhat.com
Author: pfrields
Update of /cvs/docs/xml-normalize
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv13067
Added Files:
yum-software-management-en.xml
Log Message:
Using xmlformat in tidy-bowl, testing commences...
--- NEW FILE yum-software-management-en.xml ---
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../docs-common/common/fedora-entities-en.ent">
%FEDORA-ENTITIES-EN;
<!ENTITY BOOKID "yum-software-management-0.4.4 (2005-06-14)"> <!-- change version of manual and date here -->
<!ENTITY LEGALNOTICE SYSTEM "../docs-common/common/legalnotice-en.xml">
<!-- Bugzilla bug number for the draft notice -->
<!ENTITY BUG-NUM "155190">
<!ENTITY FCLOCALVER "3">
<!ENTITY DRAFTNOTICE SYSTEM "../docs-common/common/draftnotice-en.xml">
]>
<article id="yum-software-management" lang="en">
<articleinfo>
<title>Software Management with <command>yum</command></title>
<copyright>
<year>2005</year>
<holder>Stuart Ellis</holder>
</copyright>
<authorgroup>
<author>
<surname>Ellis</surname>
<firstname>Stuart</firstname>
</author>
</authorgroup>
&LEGALNOTICE;
<revhistory>
<revision>
<revnumber>0.4</revnumber>
<date>2005-06-01</date>
<authorinitials>StuartEllis</authorinitials>
<revdescription>
<para>
Initial import into CVS.
</para>
</revdescription>
</revision>
</revhistory>
</articleinfo>
<section id="sn-introduction">
<title>Introduction</title>
&DRAFTNOTICE;
<section id="sn-audience">
<title>Audience</title>
<para>
The <command>yum</command> utility is currently the recommended
method for managing software on &FED; systems. All &FED; users
responsible for maintaining their own systems will find
<command>yum</command> an essential tool.
</para>
</section>
<section id="sn-usingdoc">
<title>Using This Document</title>
<para>
This document is a reference for using <command>yum</command>.
You may wish to read some or all of the sections, depending upon
your needs and level of experience.
</para>
<para>
If you are a new user, read the
<xref
linkend="sn-software-management-concepts"/> before
using <command>yum</command> for the first time.
</para>
<para>
Experienced Linux users should start with
<xref linkend="sn-authorizing-package-sources"/>.
</para>
<para>
Anyone with several &FED; systems on a network may benefit from
setting up their own software repositories to manage the process
of installation and updates. The details of maintaining your own
repositories are explained in
<xref linkend="sn-managing-repositories"/>.
</para>
<para>
Most of the examples use the package
<filename>tsclient</filename>, which is included with &FC; to
provide an application for remote desktop access. If it is
installed successfully you may start the application by choosing
<menuchoice><guimenu>Applications</guimenu><guisubmenu>Internet</guisubmenu><guimenuitem>Terminal
Server Client</guimenuitem></menuchoice>. To use the examples,
substitute the name of the relevant package for
<filename>tsclient</filename>.
</para>
<important>
<title>Avoid Logging in with the Root Account</title>
<para>
You do not need to log in with the root account in order to
manage your &FC; system. All of the commands shown in this
tutorial that require root access will prompt you for the root
password. The example terminal commands use <command>su
<option>-c</option></command> to provide this facility.
</para>
</important>
</section>
<section id="sn-yum-additional-resources">
<title>Additional Resources</title>
<para>
The <command>yum</command> utility has features and options that
are not discussed in this document. Read the
<command>man</command> pages for <command>yum(8)</command> and
<filename>yum.conf(5)</filename> to learn more.
</para>
<para>
The official Website for <command>yum</command> is:
</para>
<para>
<ulink url="http://linux.duke.edu/projects/yum/">http://linux.duke.edu/projects/yum/</ulink>
</para>
<para>
The official mailing list for <command>yum</command> users is:
</para>
<para>
<ulink url="https://lists.dulug.duke.edu/mailman/listinfo/yum">https://lists.dulug.duke.edu/mailman/listinfo/yum</ulink>
</para>
<para>
The archive for the <command>yum</command> development mailing
list is here:
</para>
<para>
<ulink url="https://lists.dulug.duke.edu/pipermail/yum-devel/">https://lists.dulug.duke.edu/pipermail/yum-devel/</ulink>
</para>
</section>
</section>
<section id="sn-software-management-concepts">
<title>Software Management Concepts</title>
<section id="sn-about-packages">
<title>About Packages</title>
<para>
All of the software and documentation prepared for use with
&FED; is supplied in the form of files called RPM
<indexterm>
<primary>packages</primary>
<secondary>defined</secondary>
</indexterm>
<firstterm>packages</firstterm>. Each package is a compressed
archive containing product information, program files, icons,
documentation and management scripts. Packages also include a
digital signature to prove their source. These files are used by
management applications to safely locate, install, update and
remove software. For example, the &FED; installation process
uses the packages supplied with &FC; to build or upgrade a
system to your requirements.
</para>
</section>
<section id="sn-about-repositories">
<title>About Repositories</title>
<para>
Software management utilities like <command>yum</command> are
not intended to enable you to install a specific package file.
Instead, they automatically locate and obtain the correct RPM
packages for an application from
<indexterm>
<primary>repositories</primary>
<secondary>defined</secondary>
</indexterm>
<firstterm>repositories</firstterm>, which are prepared
directories or Websites.
</para>
<para>
The package management utilities in &FC; are automatically
configured to use the network of repository servers maintained
by the &FP;. These repositories hold both the software included
with &FC;, and a large selection of additional software, known
as &FEX;. Third-party software developers also provide
repositories for their &FED; compatible packages.
</para>
<para>
This method frees you from having to manually find and install
new applications or updates: you may use a single command to
update all of the software that makes up your system, or to
search for new software by specifying criteria. In each case the
management utility connects to the repositories that it is
configured to use, and checks the indexes that they provide to
find the correct packages.
</para>
<para>
Using repositories also ensures also that you always receive the
current version of the software. If several versions of the same
package are available then your management utility automatically
selects the latest version.
</para>
<para>
For these reasons you should only manually install software when
you are confident that there is no repository that can currently
provide it. If a piece of software on your system is not
available from a repository then no update feature can
automatically find or install newer versions, and you must keep
that product updated yourself.
</para>
<note>
<title>All &FED; Packages are Free Software</title>
<para>
All of the software provided by the &FP; is Free Software, or
Open Source, and can therefore be downloaded and installed
from the network of &FED; repositories without restrictions.
</para>
</note>
</section>
<section id="sn-about-dependencies">
<title>About Dependencies</title>
<para>
You must consider package
<indexterm>
<primary>dependencies</primary>
</indexterm>
<firstterm>dependencies</firstterm> when manually installing
software. To avoid conflicts and inconsistencies Linux
distributions supply program library files as separate packages
to the applications that use their functions. Many libraries and
command-line utilities are used by multiple applications.
</para>
<para>
Management tools like <command>yum</command> use the information
on dependencies stored within packages to ensure that all of the
requirements are met when you install an application. The
packages for any supporting software are automatically be
installed first, if they are not already present on your system.
If a new application has requirements that conflict with
existing software then the installation process safely aborts
without making any changes to your system.
</para>
</section>
<section id="sn-package-names">
<title>Understanding Package Names</title>
<para>
Each package file has a long name that indicates several key
pieces of information. For example, this is the full name of a
package supplied with &FC;:
</para>
<screen>
<filename>tsclient-0.132-4.i386.rpm</filename>
</screen>
<para>
Use just the name of the package itself with
<command>yum</command>, except when it is necessary to specify
the exact version or type. To specify the exact version of the
application, use <filename>name-version</filename>. The package
listings provided by <command>yum</command> itself use the
format <filename>name.architecture</filename>, to specify the
type of computer that the package is intended for.
</para>
<para>
These are valid for the file shown above:
</para>
<itemizedlist>
<listitem>
<para>
Package name: <filename>tsclient</filename>
</para>
</listitem>
<listitem>
<para>
Package name with version number:
<filename>tsclient-0.132</filename>
</para>
</listitem>
<listitem>
<para>
Package name with hardware architecture:
<filename>tsclient.i386</filename>
</para>
</listitem>
</itemizedlist>
<para>
The hardware architecture is the <emphasis>minimum</emphasis>
type of machine required for that specific package. Packages
with <option>i386</option> run on any current Intel-compatible
computer. Packages for PowerPC machines, such as Apple Macs, are
indicated with <option>ppc</option>. Packages with
<option>noarch</option> have no architecture requirement.
</para>
<para>
Some software can be optimized for particular types of
Intel-compatible machine, and separate packages are provided for
<option>i386</option>, <option>i586</option>,
<option>i686</option> and <option>x86_64</option>. A computer
with at least an Intel Pentium, VIA C3 or compatible chip is an
<option>i586</option>. Computers with an Intel Pentium II and
above, or a current model of AMD chip, are <option>i686</option>
machines. 64-bit PCs use <option>x86_64</option> packages for
full 64-bit support.
</para>
<note>
<title>Other Naming Conventions are Supported</title>
<para>
Refer to <xref linkend="sn-searching-packages-byname"/> for
more information on specifying packages by name or type.
</para>
</note>
</section>
</section>
<section id="sn-software-management-tools">
<title>Software Management Tools in &FC;</title>
<para>
The <command>yum</command> utility is a complete software
management system. &FC; also includes other several other
applications that can supplement <command>yum</command>.
</para>
<para>
On your desktop is an
<indexterm>
<primary>up2date</primary>
<secondary>alert icon</secondary>
</indexterm>
<application>alert icon</application> that keeps you informed
about package updates. Until your system is updated this appears
as a red circle with a flashing exclamation mark. The alert icon
is integrated with
<indexterm>
<primary>up2date</primary>
</indexterm>
<application>up2date</application>, which enables you to easily
install updates for your system.
</para>
<para>
Both <application>up2date</application> and <command>yum</command>
are configured to use official &FED; repositories. If you add
other repositories to <command>yum</command> then for consistency
you should also configure <application>up2date</application> to
use them.
</para>
<para>
Also included in &FC; is
<indexterm>
<primary>system-config-packages</primary>
</indexterm>
<indexterm>
<primary>Add/Remove Applications</primary>
<see>system-config-packages</see>
</indexterm>
<application>system-config-packages</application>. From the main
menu, this is <menuchoice><guimenu>System
Settings</guimenu><guimenuitem>Add/Remove
Applications</guimenuitem></menuchoice>. Unlike
<application>up2date</application> and <command>yum</command>, it
installs software packages from your &FC; installation discs, and
does not use repositories. You may find this application useful
for systems that do not have a network connection.
</para>
<para>
The <command>rpm</command> command-line utility has many functions
for working with individual RPM packages, and can also be used to
manually install and remove packages from your system. Installing
software with the <command>rpm</command> utility can be difficult,
and is not recommended.
</para>
<caution>
<title>Current Package Versions</title>
<para>
Using <application>up2date</application> and
<command>yum</command> ensures that you have the most recent
version of the packages that are being installed. Other methods
do not guarantee that the packages are current.
</para>
</caution>
</section>
<section id="sn-authorizing-package-sources">
<title>Authorizing Package Sources</title>
<para>
All of the packages that you install should be digitally signed to
prove their source. By default, <command>yum</command> does not
install packages unless their digital signature matches a GPG
public key on the <command>rpm</command> keyring.
</para>
<para>
No keys are automatically included on the keyring. You must
manually
<indexterm>
<primary>GPG public keys</primary>
<secondary>adding</secondary>
</indexterm>
add the public key for &FP; packages, which is the file
<filename>/usr/share/rhn/RPM-GPG-KEY-fedora</filename>.
</para>
<para>
To import this public key, type the following:
</para>
<screen>
<userinput>su -c 'rpm --import <replaceable>/usr/share/rhn/RPM-GPG-KEY-fedora</replaceable>'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
<para>
Other public keys can be added in the same way. You can also
import public keys directly from a Website. For example, to import
the file <filename>GPG-PUB-KEY.asc</filename> on the website
<wordasword>www.therepository.com</wordasword> the command would
be:
</para>
<screen>
<userinput>su -c 'rpm --import <replaceable>http://www.therepository.com/GPG-PUB-KEY.asc</replaceable>'</userinput>
</screen>
<note>
<title>Public Keys and <application>up2date</application></title>
<para>
The <application>up2date</application> utility automatically
uses the public key for &FC; packages. It does not add the
public key to the keyring that is used by both
<command>yum</command> and the <command>rpm</command> utility.
</para>
</note>
</section>
<section id="sn-updating-your-system">
<title>Updating Your System with <command>yum</command></title>
<para>
You may update all of the software that makes up your &FC; system
in a single operation. This is done with the
<option>update</option> function.
</para>
<para>
To carry out a full system update, type this command in a terminal
window:
</para>
<screen>
<userinput>su -c 'yum update'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
<para>
Data files are downloaded from each of the repositories that
<command>yum</command> is configured to use. These index and
header files are searched for information about newer versions of
packages. On a slow connection the download process may take
several seconds.
</para>
<para>
A list of all of the available updates for your system is
displayed. Press <userinput>y</userinput> to accept the updates.
If you accept the updates the relevant packages are then
downloaded and installed.
</para>
<section id="sn-automatic-updating">
<title>Automatically Updating Your System</title>
<para>
If your system is permanently connected to the network then
updates can be performed at any time. The
<filename>yum</filename> package includes scripts that can
automatically carry out full updates every day.
</para>
<para>
To activate automatic daily updating, type this line:
</para>
<screen>
<userinput>su -c '/sbin/chkconfig --level 345 yum on; /sbin/service yum start'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
<note>
<title>How Daily Updates are Run</title>
<para>
There is no separate <command>yum</command> service that runs
on your system. The command given above enables the control
script <filename>/etc/rc.d/init.d/yum</filename>. This control
script activates the script
<filename>/etc/cron.daily/yum.cron</filename>, so that the
<command>cron</command> service will perform the system update
as one of the tasks that are automatically run each day.
</para>
</note>
</section>
</section>
<section id="sn-searching-packages">
<title>Searching for Software with <command>yum</command></title>
<para>
You may use <command>yum</command> to find software that is
available from the defined repositories, or is already installed
on your system. Searches automatically include both installed and
available packages.
</para>
<note>
<title>Searches are not Case-sensitive</title>
<para>
The <option>search</option> and <option>list</option> options of
<command>yum</command> are not case-sensitive. For example, a
query for <filename>palmpilot</filename> will automatically find
<filename>PalmPilot</filename> packages.
</para>
</note>
<section id="sn-searching-packages-byname">
<title>Searching by Package Name and Attributes</title>
<para>
To search for a specific package by name, use the
<option>list</option> function. For example, to search for the
package <filename>tsclient</filename> the command would be:
</para>
<screen>
<userinput>yum list <replaceable>tsclient</replaceable></userinput>
</screen>
<para>
To make your queries more specific, add other package
attributes. For example, to search for version 0.132 of the
application the command would be:
</para>
<screen>
<userinput>yum list <replaceable>tsclient-0.132</replaceable></userinput>
</screen>
<tip>
<title>Package Attributes</title>
<para>
You may use any of the following formats for specifying a
package in a <command>yum</command> query:
<filename>name</filename>,
<filename>name.architecture</filename>,
<filename>name-version</filename>,
<filename>name-version-release</filename>,
<filename>name-version-release.architecture</filename>, and
<filename>epoch:name-version-release.architecture</filename>.
</para>
</tip>
</section>
<section id="sn-searching-packages-advanced">
<title>Advanced Searches</title>
<para>
If you do not know the name of the package, use either the
<option>search</option> or <option>provides</option> options.
<option>Search</option> checks the names, descriptions,
summaries and listed package maintainers of all of the available
packages to find those that match. For example, to search for
all packages that relate to PalmPilots, type:
</para>
<screen>
<userinput>yum search <replaceable>PalmPilot</replaceable></userinput>
</screen>
<para>
The <option>provides</option> function checks both the files
included in the packages and the functions that the software
provides. This option requires <command>yum</command> to
download and read much larger index files than other types of
search.
</para>
<para>
To search for all packages that include files called
<filename>libneon</filename> you type:
</para>
<screen>
<userinput>yum provides <replaceable>libneon</replaceable></userinput>
</screen>
<para>
To search for all packages that either provide an MTA (Mail
Transport Agent) service, or include files with
<filename>mta</filename> in their name:
</para>
<screen>
<userinput>yum provides <replaceable>MTA</replaceable></userinput>
</screen>
<tip>
<title>Wildcards and Regular Expressions</title>
<para>
You may use the standard wildcard characters in search
criteria: <option>?</option> to represent any one character,
and <option>*</option> to mean any characters. Use Perl or
Python regular expressions to carry out more complex queries.
</para>
</tip>
</section>
<section id="sn-package-matches">
<title>Understanding Matches</title>
<para>
When carrying out a search <command>yum</command> shows all of
the packages that match your criteria. Packages must meet the
terms of the search exactly to be considered matches, unless you
have used wildcards or a regular expression.
</para>
<para>
For example, querying for <filename>shadowutils</filename> or
<filename>shadow-util</filename> would not produce the package
<filename>shadow-utils</filename>. This package would match and
be shown if the query was either
<filename>shadow-util?</filename> or
<filename>Shadow*</filename>.
</para>
<para>
When several versions of the same package are available, only
the newest is used.
</para>
</section>
</section>
<section id="sn-managing-packages">
<title>Managing Software Packages with <command>yum</command></title>
<indexterm>
<primary>yum, package management</primary>
</indexterm>
<para>
The <command>yum</command> utility has three basic management
functions:
</para>
<para>
<itemizedlist>
<listitem>
<para>
<option>install</option> new software packages.
</para>
</listitem>
<listitem>
<para>
<option>update</option> existing software.
</para>
</listitem>
<listitem>
<para>
<option>remove</option> unwanted software.
</para>
</listitem>
</itemizedlist>
</para>
<para>
In each case you must specify the function and the criteria. Some
simple examples are given in each section.
</para>
<note>
<title>Search Criteria</title>
<para>
See <xref linkend="sn-searching-packages"/> for details of
search criteria. The management options of
<command>yum</command> <emphasis>are</emphasis> case-sensitive.
</para>
</note>
<para>
As with the search and system update functions,
<command>yum</command> begins the process by downloading data
files from each of the repositories that it is configured to use.
Once <command>yum</command> has determined the steps to carry out
the task you are presented with the proposed package changes,
which you can either approve or reject. By default no changes are
made to your system unless you approve.
</para>
<tip>
<title>Downloaded Packages</title>
<para>
The RPM packages downloaded and used by <command>yum</command>
are held in sub-directories of
<filename>/var/cache/yum/</filename>, with one sub-directory per
repository. You may copy these cached packages and use them
elsewhere if you wish. Removing a package from your system does
not delete the downloaded RPM from the cache. See
<xref
linkend="sn-yum-clearance"/> for details on
purging the caches.
</para>
</tip>
<section id="sn-yum-installing-packages">
<title>Installing a New Software Package with <command>yum</command></title>
<indexterm>
<primary>installing software with yum</primary>
</indexterm>
<indexterm>
<primary>packages, installing</primary>
</indexterm>
<para>
To install or update software, <command>yum</command> examines
the package caches on your system and each of the configured
package sources to determine the best set of actions to produce
the required result. This may include installing or updating
other packages in addition to the package that you specified.
</para>
<para>
To install the package <filename>tsclient</filename>, enter the
command:
</para>
<screen>
<userinput>su -c 'yum install <replaceable>tsclient</replaceable>'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
</section>
<section id="sn-yum-updating-packages">
<title>Updating a Software Package with <command>yum</command></title>
<indexterm>
<primary>updating software with yum</primary>
</indexterm>
<indexterm>
<primary>packages, updating</primary>
</indexterm>
<para>
Updating a software package follows the same process as
installing a new package. For example, to update the
<filename>tsclient</filename> package to the latest version,
type:
</para>
<screen>
<userinput>su -c 'yum update <replaceable>tsclient</replaceable>'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
</section>
<section id="sn-yum-removing-packages">
<title>Removing Software with <command>yum</command></title>
<indexterm>
<primary>removing software with yum</primary>
</indexterm>
<indexterm>
<primary>packages, removing</primary>
</indexterm>
<para>
To remove software, <command>yum</command> examines your system
for both the specified software, and any other software that
must also be removed in order to safely uninstall it.
</para>
<para>
To remove the <filename>tsclient</filename> package from your
system the full command is:
</para>
<screen>
<userinput>su -c 'yum remove <replaceable>tsclient</replaceable>'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
</section>
</section>
<section id="sn-using-repositories">
<title>Using Other Software Repositories</title>
<indexterm>
<primary>&FEX;</primary>
</indexterm>
<indexterm>
<primary>repositories, finding</primary>
</indexterm>
<indexterm>
<primary>searching for repositories</primary>
</indexterm>
<para>
Projects and individuals that provide RPM packages through
<command>yum</command> repositories will provide details on their
Website. The &FEX; project is the official source for additional
packages.
</para>
<para>
The Website for &FEX; is here:
</para>
<para>
<ulink url="http://fedora.redhat.com/projects/extras/">http://fedora.redhat.com/projects/extras/</ulink>
</para>
<note>
<title>Repositories for Early Versions of &FC;</title>
<para>
&FEX; does not provides packages for &FC; 2 or earlier. The
official Website for additional packages for &FC; 1 and &FC; 2
is:
<ulink url="http://www.fedora.us/">http://www.fedora.us/</ulink>
</para>
</note>
<para>
You should use these sites for software that is not included with
&FC;. If these sites do not provide packages for a specific piece
of software, the manufacturer of the software may provide or
recommend a repository.
</para>
<section id="sn-adding-repositories">
<title>Adding a Repository as a Package Source</title>
<indexterm>
<primary>repositories, adding to yum</primary>
</indexterm>
<indexterm>
<primary>repository definition files, installing</primary>
</indexterm>
<para>
&FC; includes a <filename>yum</filename> package that has &FED;
repositories in the configuration. To add an extra repository,
place a definition file in the
<filename>/etc/yum.repos.d/</filename> directory on your system.
Package providers make the definition files for their
repositories available on their Websites.
</para>
<tip>
<title>Definition File Extension</title>
<para>
The names of repository definition files end with
<filename>.repo</filename>.
</para>
</tip>
<para>
Adding a file to the definitions directory requires root access.
To copy the definition file <filename>example.repo</filename>,
type the command:
</para>
<screen>
<userinput>su -c 'cp example.repo /etc/yum.repos.d/'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
<para>
You must also add the public key of the package provider, if you
have not not already imported it. The process is described in
<xref linkend="sn-authorizing-package-sources"/>.
</para>
<note>
<title>Repositories and <application>Up2date</application> Channels</title>
<para>
You should also add new package repositories as
<application>up2date</application> channels to ensure
consistency between the behavior of the two applications.
</para>
</note>
</section>
<section id="sn-compat-repositories">
<title>Understanding Repository Compatibility</title>
<indexterm>
<primary>packages, software compatibility</primary>
</indexterm>
<indexterm>
<primary>repositories, compatibility</primary>
</indexterm>
<para>
The &FEX; project provides packages that are built to the same
standards as the packages that are part of &FC;. Third-party
packages should be compatible with these official packages,
unless the provider specifically states otherwise.
</para>
<para>
You should still always check the Website of the provider for
compatibility information before attempting to use a repository.
Repositories often provide packages that are specifically
intended for use with packages that are supplied by other
repositories. In some cases separate third-party repository
providers may each offer different versions of the same
software, preventing those repositories from being safely used
together by your &FC; system.
</para>
<para>
Packages that have been made for one version of &FC; are usually
not compatible with other versions of &FC;. The Website of the
provider should specifically state which versions of &FC; they
support.
</para>
<tip>
<title>Old Versions of <command>yum</command> and Current Repositories</title>
<para>
The data format for repository indexes changed with version
2.11 of <command>yum</command>. This was the version supplied
with &FC; 3. Repository providers should specify the versions
of &FC; that they support. All repositories compatible with
current versions of <command>yum</command> can also be
identified by the fact that they have a sub-directory called
<filename>repo-data/</filename>.
</para>
</tip>
</section>
</section>
<section id="sn-yum-maintenance">
<title>Maintaining <command>yum</command></title>
<para>
The <command>yum</command> system does not require any routine
maintenance. It is useful to disable or remove repository
definitions that are no longer required, as each repository that
is defined and enabled is checked for every operation. You may
also wish to periodically remove files relating to unwanted
packages, in order to save disk space.
</para>
<section id="sn-removing-sources">
<title>Disabling or Removing Package Sources</title>
<indexterm>
<primary>repositories, disabling in yum</primary>
</indexterm>
<indexterm>
<primary>repositories, removing from yum</primary>
</indexterm>
<indexterm>
<primary>repository definition files, removing</primary>
</indexterm>
<para>
Set <command>enable=0</command> in a definition file to prevent
<command>yum</command> using that repository. Any definition
file with this setting is ignored.
</para>
<para>
To completely remove access to a repository:
</para>
<orderedlist>
<listitem>
<para>
Delete the relevant file from
<filename>/etc/yum.repos.d/</filename>.
</para>
</listitem>
<listitem>
<para>
Delete the cache directory from
<filename>/var/cache/yum/</filename>.
</para>
</listitem>
</orderedlist>
<indexterm>
<primary>public keys, removing</primary>
</indexterm>
<para>
If you will not be using any more packages from that source then
you should also remove their public key from the
<command>rpm</command> keyring. To remove a public key you first
need to know the identification name used by
<command>rpm</command>. You may view the details of all public
keys with the command:
</para>
<screen>
<userinput>rpm -qi gpg-pubkey-*</userinput>
</screen>
<para>
The identification name for a key is
<option>gpg-pubkey-Version_number-Release_number</option>. For
example, the &FP; public key is currently version 4f2a6fd2,
release 3f9d9d3b. The <command>rpm</command> identification for
this key is <option>gpg-pubkey-4f2a6fd2-3f9d9d3b</option>.
</para>
<para>
Once you know the identification name of the key, use the
command <command>rpm <option>-e</option></command> to remove it.
To remove the &FP; public key shown above the exact command
would be:
</para>
<screen>
<userinput>su -c 'rpm -e <replaceable>gpg-pubkey-4f2a6fd2-3f9d9d3b</replaceable>'</userinput>
</screen>
<para>
Enter the root password when prompted.
</para>
</section>
<section id="sn-yum-clearance">
<title>Clearing the <command>yum</command> Caches</title>
<indexterm>
<primary>yum, cleaning caches</primary>
</indexterm>
<para>
By design, <command>yum</command> does not automatically delete
any of the packages or package header files that it downloads,
so that these can be reused. Header files accumulate over time,
and these may be purged with the command:
</para>
<screen>
<userinput>su -c 'yum clean headers'</userinput>
</screen>
<para>
Run this command to remove all of the packages held in the
caches:
</para>
<screen>
<userinput>su -c 'yum clean packages'</userinput>
</screen>
<para>
In both cases, enter the root password when prompted.
</para>
</section>
</section>
<section id="sn-managing-repositories">
<title>Managing <command>yum</command> Repositories</title>
<para>
You may wish to create your own software repositories, or maintain
a copy of another repository.
</para>
<caution>
<title>Old versions of yum use a different repository utility</title>
<para>
These procedures are for repositories that are compatible with
version 2.11 of <command>yum</command> and above. You must use
the <command>yum-arch</command> utility that was included with
<command>yum</command> 2.10 to enable repositories for older
versions of <command>yum</command>.
</para>
</caution>
<section id="sn-creating-repository">
<title>Creating a New Repository</title>
<indexterm>
<primary>repositories, creating</primary>
</indexterm>
<para>
A software repository is simply a directory containing package
files, with a sub-directory for the package index files used by
<command>yum</command>. Other types of files can be held in the
main directory without interfering with use of the repository.
The <filename>data/</filename> sub-directory and the XML files
it contains are created and updated with the
<command>createrepo</command> utility
</para>
<note>
<title>Creating Repositories Requires an Extra Package</title>
<para>
You must install the <filename>createrepo</filename> package
from &FC; in order to be able to make repositories.
</para>
</note>
<para>
To make a directory into a <command>yum</command> repository:
<orderedlist>
<listitem>
<para>
Copy the RPM packages that you are distributing into the
directory.
</para>
</listitem>
<listitem>
<para>
Open a terminal window.
</para>
</listitem>
<listitem>
<para>
In the terminal window type: <userinput>createrepo
/path/to/directory</userinput>. Substitute the path to
your package directory for
<filename>/path/to/directory/</filename>.
</para>
</listitem>
<listitem>
<para>
In the terminal window type: <userinput>chmod a+x
/path/to/directory/repodata/</userinput>. Substitute the
path to your package directory for
<filename>/path/to/directory/</filename>.
</para>
</listitem>
<listitem>
<para>
Ensure that the directory is available via your chosen
network protocols.
</para>
</listitem>
</orderedlist>
</para>
<para>
The repository is now ready for use.
</para>
<para>
Create a definition file for this new repository. If you are
distributing packages that you have created yourself then you
also need to make the GPG public key for your signature
available, so that others can verify the packages. The simplest
way to make these files available is to put the public key and
repository definition files on the same Website or FTP site as
the repository.
</para>
<para>
Creating a definition file is described in
<xref
linkend="sn-writing-repodefs"/>. Packaging building is
beyond the scope of this document.
</para>
<tip>
<title>Repositories and Management Utilities</title>
<para>
The <command>createrepo</command> utility makes no changes to
the directory other than adding a
<filename>repo-data/</filename> sub-directory. Adding index
files for other utilities does not interfere with
<command>yum</command>.
</para>
</tip>
</section>
<section id="sn-writing-repodefs">
<title>Repository Definition Files</title>
<indexterm>
<primary>repository definition files, creating</primary>
</indexterm>
<indexterm>
<primary>repository definition files, editing</primary>
</indexterm>
<para>
Create and edit repository definition files with a text editor.
Definition files are plain-text with a standard format:
</para>
<example id="yum-repo-format">
<title>Format of <command>yum</command> Repository Definition Files</title>
<programlisting>
<![CDATA[
[serverid]
name=Some longer name and description for this repository
baseurl=url://path/to/repository-copy-1/
url://path/to/repository-copy-2/
enable=(0 or 1)
gpgcheck=(0 or 1)
]]>
</programlisting>
</example>
<para>
The <command>baseurl</command> must specify the complete URL for
the root directory of the repository, including the
<command>http://</command>, <command>https://</command> or
<command>ftp://</command> prefix. You may also specify a
directory on your system, by using the prefix
<command>file://</command> in the <command>baseurl</command>.
</para>
<tip>
<title>Logging in to Protected Repositories</title>
<para>
To use a password-protected repository, include the correct
username and password in the <command>baseurl</command>. For
example,
<wordasword>ftp://user:password@myrepository.com/$releasever/mypackages/</wordasword>.
</para>
</tip>
<para>
If possible, list more than one directory or server that holds a
copy of the repository. This enables <command>yum</command> to
use another repository if the first is unavailable. By default
<command>yum</command> randomly selects repositories from the
<command>baseurl</command> list. To force <command>yum</command>
to use them in sequence, add the option
<command>failovermethod=priority</command>.
</para>
<para>
It is also good practice to use variables like
<command>$releasever</command> in the URL, rather than setting
these to a specific value. The available variables are listed on
the <command>man</command> page for
<filename>yum.conf</filename>. Using variables enables the same
definition to function when your system is upgraded to a later
version, or if the configuration is copied to another machine.
</para>
<para>
A definition file is shown below that uses all of these
features. In this example, copies of the repository are held in
the directory
<filename>/srv/software/&FED;/&FCVER;/mypackages/</filename> on
the system itself, in the directory
<filename>software/&FED;/&FCVER;/mypackages/</filename> on the
Web server <wordasword>www.my-repository.com/</wordasword>, and
in the directory
<filename>pub/software/&FED;/&FCVER;/mypackages/</filename> on
the FTP server
<wordasword>server.another-repository.org</wordasword>. Here,
<command>yum</command> will access the FTP server with the
username <command>yum-user</command> and the password
<command>qwerty</command>. The <command>failovermethod</command>
ensures that <command>yum</command> will check the copy on the
local machine, before trying the servers in sequence.
</para>
<example id="yum-repo-multidir-example">
<title>A <command>yum</command> Repository Definition File with Failover</title>
<programlisting>
<![CDATA[
[MyPackages]
name=Some packages for Fedora $releasever
baseurl=file:///srv/software/fedora/$releasever/mypackages/
http://www.my-repository.com/software/fedora/$releasever/mypackages/
ftp://yum-user:qwerty@anotherserver.another-repository.org/pub/software/fedora/$releasever/mypackages/
failovermethod=priority
enable=1
gpgcheck=1
]]>
</programlisting>
</example>
<para>
To use a list of servers, substitute
<command>mirrorlist</command> for <command>baseurl</command>.
</para>
<para>
Set <command>gpgcheck=0</command> if it is necessary to disable
signature checking for the packages provided by this repository.
Avoid distributing or installing unsigned packages.
</para>
</section>
<section id="sn-updating-repository">
<title>Updating a Repository</title>
<indexterm>
<primary>repositories, updating</primary>
</indexterm>
<para>
Whenever a package is added, or replaced with a different
version, you must run <command>createrepo</command> again for
the index files to be updated. If you are mirroring an existing
repository then you may assume that the site administrator
updates the indexes, but for safety you should add this to your
synchronization scripts. The <command>createrepo</command>
utility can be run as frequently as you wish.
</para>
</section>
</section>
<section id="sn-yum-proxy-server">
<title>Using <command>yum</command> with a Proxy Server</title>
<indexterm>
<primary>proxy server, with yum</primary>
</indexterm>
<indexterm>
<primary>yum, using a proxy server</primary>
</indexterm>
<para>
Repositories may be accessed through standard proxy servers. If
your system is connected to the Internet through a Web proxy
server, specify the details of the server in
<filename>/etc/yum.conf</filename>. The <command>proxy</command>
setting must specify the proxy server as a complete URL, including
the TCP port number. If your proxy server requires a username and
password, specify these by adding
<command>proxy_username</command> and
<command>proxy_password</command> settings.
</para>
<para>
For example, the settings below enable <command>yum</command> to
use the proxy server <command>mycache.mydomain.com</command>,
connecting to port <command>3128</command>, with the username
<command>yum-user</command> and the password
<command>qwerty</command>.
</para>
<example id="config-file-httpproxy">
<title>Configuration File Settings for Using A Proxy Server</title>
<programlisting>
<![CDATA[
# The proxy server - proxy server:port number
proxy=http://mycache.mydomain.com:3128
# The account details for yum connections
proxy_username=yum-user
proxy_password=qwerty
]]>
</programlisting>
</example>
<note>
<title>Global Settings</title>
<para>
Defining a proxy server in <filename>/etc/yum.conf</filename>
means that <emphasis>all</emphasis> users connect to the proxy
server with those details when using <command>yum</command>.
</para>
</note>
<para>
To enable proxy access for a specific user, add the lines in the
example box below to their shell profile. For the default
<command>bash</command> shell, the profile is the file
<filename>.bash_profile</filename>. The settings below enable
<command>yum</command> to use the proxy server
<command>mycache.mydomain.com</command>, connecting to port
<command>3128</command>.
</para>
<example id="profile-script-httpproxy">
<title>Profile Settings for Using a Proxy Server</title>
<programlisting>
<![CDATA[
# The Web proxy server used by this account
http_proxy="http://mycache.mydomain.com:3128"
export http_proxy
]]>
</programlisting>
</example>
<para>
If the proxy server requires a username and password then add
these to the URL. For example, to include the username
<command>yum-user</command> and the password
<command>qwerty</command>:
</para>
<example id="profile-script-httpproxy-withpassword">
<title>Profile Settings for a Secured Proxy Server</title>
<programlisting>
<![CDATA[
# The Web proxy server, with the username and password for this account
http_proxy="http://yum-user:qwerty@mycache.mydomain.com:3128"
export http_proxy
]]>
</programlisting>
</example>
<note>
<title><command>http_proxy</command> Variable with Other Utilities</title>
<para>
The <command>http_proxy</command> variable is also used by
<command>curl</command> and other utilities. Although
<command>yum</command> itself may use
<command>http_proxy</command> in either upper-case or
lower-case, <command>curl</command> requires the name of the
variable to be in lower-case.
</para>
</note>
</section>
<index id="generated-index"></index>
</article>
18 years, 10 months
xml-normalize 010-text.xml,1.3,1.4
by fedora-docs-commits@redhat.com
Author: jtr
Update of /cvs/docs/xml-normalize
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11619
Modified Files:
010-text.xml
Log Message:
Going right.
Index: 010-text.xml
===================================================================
RCS file: /cvs/docs/xml-normalize/010-text.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- 010-text.xml 21 Jun 2005 23:54:24 -0000 1.3
+++ 010-text.xml 27 Jun 2005 17:30:34 -0000 1.4
@@ -1,120 +1,126 @@
<!-- $Id$ -->
-<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
-"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-
-<!ENTITY TODAY "03 January 2005" >
-<!ENTITY LEGAL-INFO SYSTEM "legalnotice-en.xml" >
-<!ENTITY FEDORA "2.6.9-1.724_FC3" >
-<!ENTITY FC "FC3" >
-<!ENTITY KVERSION "2.6.9" >
-<!ENTITY EXTRAVERSION "-1.724_FC3" >
-
-]>
-<bookinfo>
-<title>
-Linux Device Drivers
-</title>
-<titleabbrev>
-LDD
-</titleabbrev>
-<mediaobject>
-<imageobject><imagedata align="center" fileref="images/button-blank.jpg" format="JPG"/></imageobject>
-<textobject><phrase>MegaCoder Logo</phrase></textobject>
-</mediaobject>
-<author>
-<firstname>Tommy</firstname>
-<surname>Reynolds</surname>
-<address>
-<street>P O Box 62</street>
-<city>Danville</city>
-<state>Alabama</state>
-<postcode>35619</postcode>
-</address>
-<email>Tommy.Reynolds(a)MegaCoder.com</email>
-</author>
-<copyright>
-<year>2004</year>
-<holder>
-Tommy Reynolds
-</holder>
-</copyright>
-<revhistory>
-<revision>
-<revnumber>Initial</revnumber>
-<date>07 Sep 2004</date>
-<authorinitials>JTR</authorinitials>
-<revremark>
-Initial release.
-</revremark>
-</revision>
-</revhistory>
-
-<legalnotice id="legalnotice">
-
-<para>
-<emphasis>Although the information in this document has been carefully reviewed, no representations or warranties, either expressed or implied, are made concerning the contents itself nor the application thereof.
-Any expressed or implied warranties of merchantability or fitness of purpose are expressly disclaimed.</emphasis>
-</para>
-
-<para>
-No part of this publication may be reproduced, photocopied, stored on a retrieval system, or transmitted with the express prior written consent of the publisher.
-Neither this manual, nor any portion thereof, may be copied in any form without the express written permission of MegaCoder.com.
-</para>
-
-<para>
-MegaCoder.com reserves the right to revise this publication and to make changes in its content at any time for any reason whatever, without obligation to notify any person or entity of such revisions or changes.
-</para>
-
-<para>
-This MegaCoder.com document is published solely to instruct students in the use of Linux software.
-Although third-party application software packages may be used as part of this activity, their use is solely for demonstration purposes only and their use shall neither constitute nor be construded as an endorsement.
-</para>
-
-<para>
-Some of the software included in the presentation of this course or accompanying the student kit may be proprietary and therefore not be freely redistributable.
-Throughout the world the unauthorised duplication of copyrighted or proprietary software is subject to both criminal and civil penalties.
-If there are any questions about which part or parts of the student kit are proprietary and hence not freely redistributable, contact MegaCoder.com at +1.256.350.5099 for clarification.
-</para>
-<para>
-Linux is a registered trademark of Linus Torvalds.
-</para>
-
-<para>
-<trademark>Red Hat</trademark> and the shadowman logo are trademarks of Red Hat, Inc.
-</para>
-
-<para>
-Motif and UNIX are registered trademarks of The Open Group.
-</para>
-
-<para>
-Intel and Pentium are registered trademarks of Intel Corporation. Itanium
-and Celeron are trademarks of Intel Corporation.
-</para>
-
-<para>
-AMD, AMD Athlon, AMD Duron, and AMD K6 are trademarks of Advanced Micro
-Devices, Inc.
-</para>
-
-<para>
-Windows is a registered trademark of Microsoft Corporation.
-</para>
-
-<para>
-SSH and Secure Shell are trademarks of SSH Communications Security, Inc.
-</para>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<para>
-FireWire is a trademark of Apple Computer Corporation.
-</para>
+ <!ENTITY TODAY "03 January 2005" >
+ <!ENTITY LEGAL-INFO SYSTEM "legalnotice-en.xml" >
+ <!ENTITY FEDORA "2.6.9-1.724_FC3" >
+ <!ENTITY FC "FC3" >
+ <!ENTITY KVERSION "2.6.9" >
+ <!ENTITY EXTRAVERSION "-1.724_FC3" >
-<para>
-All other trademarks and copyrights referred to are the property of their
-respective owners.
-</para>
+ ]>
-</legalnotice>
+<bookinfo>
+ <title>Linux Device Drivers</title>
+ <titleabbrev>LDD</titleabbrev>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="images/button-blank.jpg" format="JPG"/>
+ </imageobject>
+ <textobject>
+ <phrase>MegaCoder Logo</phrase>
+ </textobject>
+ </mediaobject>
+ <author>
+ <firstname>Tommy</firstname>
+ <surname>Reynolds</surname>
+ <address>
+ <street>P O Box 62</street>
+ <city>Danville</city>
+ <state>Alabama</state>
+ <postcode>35619</postcode>
+ </address>
+ <email>Tommy.Reynolds(a)MegaCoder.com</email>
+ </author>
+ <copyright>
+ <year>2004</year>
+ <holder>Tommy Reynolds</holder>
+ </copyright>
+ <revhistory>
+ <revision>
+ <revnumber>Initial</revnumber>
+ <date>07 Sep 2004</date>
+ <authorinitials>JTR</authorinitials>
+ <revremark>
+ Initial release.
+ </revremark>
+ </revision>
+ </revhistory>
+ <legalnotice id="legalnotice">
+ <para>
+ <emphasis>Although the information in this document has been
+ carefully reviewed, no representations or warranties, either
+ expressed or implied, are made concerning the contents itself nor
+ the application thereof. Any expressed or implied warranties of
+ merchantability or fitness of purpose are expressly
+ disclaimed.</emphasis>
+ </para>
+ <para>
+ No part of this publication may be reproduced, photocopied, stored
+ on a retrieval system, or transmitted with the express prior
+ written consent of the publisher. Neither this manual, nor any
+ portion thereof, may be copied in any form without the express
+ written permission of MegaCoder.com.
+ </para>
+ <para>
+ MegaCoder.com reserves the right to revise this publication and to
+ make changes in its content at any time for any reason whatever,
+ without obligation to notify any person or entity of such
+ revisions or changes.
+ </para>
+ <para>
+ This MegaCoder.com document is published solely to instruct
+ students in the use of Linux software. Although third-party
+ application software packages may be used as part of this
+ activity, their use is solely for demonstration purposes only and
+ their use shall neither constitute nor be construded as an
+ endorsement.
+ </para>
+ <para>
+ Some of the software included in the presentation of this course
+ or accompanying the student kit may be proprietary and therefore
+ not be freely redistributable. Throughout the world the
+ unauthorised duplication of copyrighted or proprietary software is
+ subject to both criminal and civil penalties. If there are any
+ questions about which part or parts of the student kit are
+ proprietary and hence not freely redistributable, contact
+ MegaCoder.com at +1.256.350.5099 for clarification.
+ </para>
+ <para>
+ Linux is a registered trademark of Linus Torvalds.
+ </para>
+ <para>
+ <trademark>Red Hat</trademark> and the shadowman logo are
+ trademarks of Red Hat, Inc.
+ </para>
+ <para>
+ Motif and UNIX are registered trademarks of The Open Group.
+ </para>
+ <para>
+ Intel and Pentium are registered trademarks of Intel Corporation.
+ Itanium and Celeron are trademarks of Intel Corporation.
+ </para>
+ <para>
+ AMD, AMD Athlon, AMD Duron, and AMD K6 are trademarks of Advanced
+ Micro Devices, Inc.
+ </para>
+ <para>
+ Windows is a registered trademark of Microsoft Corporation.
+ </para>
+ <para>
+ SSH and Secure Shell are trademarks of SSH Communications
+ Security, Inc.
+ </para>
+ <para>
+ FireWire is a trademark of Apple Computer Corporation.
+ </para>
+ <para>
+ All other trademarks and copyrights referred to are the property
+ of their respective owners.
+ </para>
+ </legalnotice>
</bookinfo>
+
<!-- $Id$ -->
18 years, 10 months
proxy-guide proxy-guide-en.xml,1.2,1.3
by fedora-docs-commits@redhat.com
Author: pfrields
Update of /cvs/docs/proxy-guide
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15414
Modified Files:
proxy-guide-en.xml
Log Message:
Updated entities to address new resource locations, removed redundancy
Index: proxy-guide-en.xml
===================================================================
RCS file: /cvs/docs/proxy-guide/proxy-guide-en.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- proxy-guide-en.xml 24 Jun 2005 20:39:40 -0000 1.2
+++ proxy-guide-en.xml 24 Jun 2005 21:02:32 -0000 1.3
@@ -1,7 +1,7 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
- <!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../common/fedora-entities-en.xml">
+ <!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../docs-common/common/fedora-entities-en.ent">
%FEDORA-ENTITIES-EN;
<!ENTITY ST "Suretec"> <!--The generic term "Suretec" -->
@@ -12,8 +12,6 @@
<!ENTITY BOOKID "proxy-guide (2005-02-06)"> <!-- change version of manual and date here -->
-<!ENTITY LEGALNOTICE SYSTEM "../common/legalnotice-en.xml"> <!-- Legal stuff -->
-
]>
<article id="proxy-guide" lang="en">
18 years, 10 months
proxy-guide Makefile,1.2,1.3
by fedora-docs-commits@redhat.com
Author: pfrields
Update of /cvs/docs/proxy-guide
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14378
Modified Files:
Makefile
Log Message:
Update Makefile to address new resource locations
Index: Makefile
===================================================================
RCS file: /cvs/docs/proxy-guide/Makefile,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Makefile 24 Jun 2005 20:39:40 -0000 1.2
+++ Makefile 24 Jun 2005 21:00:18 -0000 1.3
@@ -7,18 +7,18 @@
# Copyright 2003 Tammy Fox, Red Hat, Inc.
###############################################################################
-XSLPDF = ../xsl/main-pdf.xsl
-XSLHTML = ../xsl/main-html.xsl
+XSLPDF = ../docs-common/xsl/main-pdf.xsl
+XSLHTML = ../docs-common/xsl/main-html.xsl
LANG = en
-DOCNAME = fedora-proxy-guide-$(LANG)
+DOCNAME = proxy-guide-$(LANG)
XMLFILE = $(DOCNAME).xml
######################################################
html:
@xmlto html -x $(XSLHTML) -o $(DOCNAME) $(XMLFILE)
@mkdir -p $(DOCNAME)/stylesheet-images
- @cp ../stylesheet-images/*.png $(DOCNAME)/stylesheet-images
- @cp ../css/fedora.css $(DOCNAME)
+ @cp ../docs-common/stylesheet-images/*.png $(DOCNAME)/stylesheet-images
+ @cp ../docs-common/css/fedora.css $(DOCNAME)
pdf:
18 years, 10 months
proxy-guide proxy-guide-en.xml, NONE, 1.2 Makefile, NONE, 1.2 proxy.eps, NONE, 1.2 proxy.png, NONE, 1.2 fedora-proxy-guide-en.xml, 1.1, NONE
by fedora-docs-commits@redhat.com
Author: pfrields
Update of /cvs/docs/proxy-guide
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14206
Modified Files:
Tag: 1.2
Makefile proxy.eps proxy.png
Added Files:
Tag: 1.2
proxy-guide-en.xml
Removed Files:
fedora-proxy-guide-en.xml
Log Message:
Renamed file to eliminate redundancy and other possible script headaches
--- NEW FILE proxy-guide-en.xml ---
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../common/fedora-entities-en.xml">
%FEDORA-ENTITIES-EN;
<!ENTITY ST "Suretec"> <!--The generic term "Suretec" -->
<!ENTITY FORMAL-STL "&ST; Systems Ltd."> <!--The generic term "Suretec Systems Limited" -->
<!ENTITY PROJECT "Proxy Article"> <!-- Set the default name -->
<!ENTITY PROJECT-TITLE "Setting up a Secure Proxy Server using Various Technologies"> <!-- Set the default name -->
<!ENTITY DISTRO "Suretec"> <!-- Set the default name -->
<!ENTITY BOOKID "proxy-guide (2005-02-06)"> <!-- change version of manual and date here -->
<!ENTITY LEGALNOTICE SYSTEM "../common/legalnotice-en.xml"> <!-- Legal stuff -->
]>
<article id="proxy-guide" lang="en">
<articleinfo>
<title>&PROJECT-TITLE;</title>
<authorgroup>
<author>
<surname>Henry</surname>
<firstname>Gavin</firstname>
</author>
</authorgroup>
<copyright>
<year>2004, 2005</year>
<holder>&FORMAL-STL;</holder>
<holder>Gavin Henry</holder>
</copyright>
<othercredit>
<firstname>Fedora-docs</firstname>
<surname>Project</surname>
<contrib>Thanks for the DocBook XML documentation guide</contrib>
</othercredit>
<pubdate>2005-02-06</pubdate>
<revhistory>
<revision>
<revnumber>0.3</revnumber>
<date>2005-02-06</date>
<authorinitials>GH</authorinitials>
<revremark>Updated for release to the <emphasis>Fedora Documentation Project</emphasis>, now using &FC; 3 instead of Red Hat Linux 9</revremark>
</revision>
<revision>
<revnumber>0.2</revnumber>
<date>2004-02-27</date>
<authorinitials>GH</authorinitials>
<revremark>Spelling mistake corrections. Thanks to Charles Curley.</revremark>
</revision>
<revision>
<revnumber>0.1</revnumber>
<date>2003-11-08</date>
<authorinitials>GH</authorinitials>
<revremark>Article's initial release for general review.</revremark>
</revision>
</revhistory>
&LEGALNOTICE;
<abstract>
<para>
The goal of any Network Engineer or System Administrator is to provide
maximum security with maximum functionality. It's no use allowing everyone
full internet access without monitoring and content filtering in place, which could
possibly breach your IT policy. This is where a secure proxy server comes in.
</para>
</abstract>
</articleinfo>
<section id="intro">
<title>Introduction</title>
<para>
A proxy server is a must when monitoring, content filtering and security
are required, as it allows only one point of entry/exit for internet
access. This is where <filename>Squid</filename> comes in.
<filename>Squid</filename> is a very versatile and configurable proxy
server with numerous features, not to mention password authentication and
plugin capabilities.
</para>
<para>
This guide will take any level of user through the necessary steps in
setting up a proxy server (<filename>squid</filename>) with password
authentication and content filtering (with a plugin package called
<filename>squidGuard</filename>) and logfile monitoring with email notification,
which is handled with a program called <filename>swatch</filename>.
</para>
<para>Extra chapters are included covering:
<itemizedlist>
<listitem>
<para>
Improvements
</para>
</listitem>
<listitem>
<para>
Troubleshooting
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section id="required">
<title>Packages required</title>
<para>
The &PROJECT; requires the following packages:
</para>
<orderedlist>
<listitem>
<para><application>Squid</application>, latest rpm available from — <ulink url="ftp://rpmfind.net/linux/rawhide/1.0/i386/RedHat/RPMS/"> RedHat's rawhide repository</ulink> </para>
</listitem>
<listitem>
<para><application>SquidGuard</application>, available <ulink url="http://www.squidguard.org/"> here</ulink> </para>
</listitem>
<listitem>
<para>
blacklists for <application>SquidGuard</application>, available <ulink url="http://www.squidguard.org/blacklist/">here</ulink></para>
</listitem>
<listitem>
<para><application>Swatch</application>, available <ulink url="http://sourceforge.net/project/showfiles.php?group_id=68627">here</ulink>
</para>
</listitem>
</orderedlist>
<tip>
<para><application>Squid</application> and <application>iptables</application> should come with any good distribution, so check your distro
CD's first before going on the net. The rest you will need to download.</para>
</tip>
</section>
<section id="squid-conf">
<title>Squid installation and configuration</title>
<para>
Check if <application>Squid</application> is installed and if not,
install by performing the following:
</para>
<orderedlist>
<listitem>
<para>Check to see if it is installed by typing <command>rpm -q squid</command>, this should output something like:
<computeroutput>squid-2.5.STABLE3-0</computeroutput>
</para>
</listitem>
<listitem>
<para>If not, download the latest rpm from the website shown in <xref linkend="required"></xref></para>
</listitem>
<listitem>
<para><command>su -</command> then type your root password and then <command>rpm -ivh *.rpm</command>
in the directory that squid is in.</para>
</listitem>
</orderedlist>
</section>
<section id="configuration">
<title>squid.conf</title>
<para>
The four files to check for, which are the most important for us are:
</para>
<itemizedlist>
<listitem>
<para><filename>/etc/squid/squid.conf</filename> — main configuration file</para>
</listitem>
<listitem>
<para><filename>/var/log/access.log</filename> — for monitoring url activity</para>
</listitem>
<listitem>
<para><filename>/var/log/cache.log</filename> — for checking that squid is caching</para>
</listitem>
<listitem>
<para><filename>/usr/lib/squid/ncsa_auth</filename> — for password authentication</para>
</listitem>
</itemizedlist>
<warning>
<para>The <filename>ncsa_auth</filename> authentication program does not
do <emphasis>md5</emphasis> encryption by default, it uses <emphasis>CRYPT</emphasis> encryption. There
are two other ways of supporting <emphasis>md5</emphasis> encryption
that I am aware of, but as we are quite happy without it, we will not use either. You can apply a patch that
was written by Martin Houston of Smoothwall<ulink
url="http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=utf-8&a...">
here </ulink> in May 2003 for <filename>ncsa_auth</filename> Or download another authentication program called <ulink url="http://www.tbits.org/html/squidauth.html">squidauth </ulink>
</para>
</warning>
<para><filename>squid.conf</filename> is pretty heavily commented so most
options are pretty obvious. I will show the main ones changed or added in
here. The <filename>squid.conf</filename> shown below does
not have the <filename>squidGuard</filename> option added in yet. It
will be added in the <xref linkend="squidguard"></xref> section.
</para>
<para>
<example id="squid.conf">
<title>Changes in squid.conf</title>
<screen width="60">
<computeroutput>
#Changed by GH 24/09/03 - Default is off:
emulate_httpd_log on
# Added by GH 24/09/03 for user authentication
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Suretec Proxy Server - ALL ACCESS IS STRICTLY MONITORED
auth_param basic credentialsttl 2 hours
# Uncommented by GH 24/09/03 for password authentication and blocking exe zip gz bz2 mp3 mpg mpeg ram rpm avi plus more
acl password proxy_auth REQUIRED
acl download urlpath_regex -i "/etc/squid/denydownload.txt"
acl POST method POST
# GH 24/09/03
acl suretecsystems.private src 192.168.210.0
acl suretecsystems.test src 192.168.100.0
acl Safe_ports port 80
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
# Example rule allowing access from your local networks. Adapt
# to list your (internal) IP networks from where browsing should
# be allowed
# acl our_networks src 192.168.1.0/24 192.168.2.0/24
# http_access allow our_networks
# Used to block downloads and allow other users - GH 07/01/03
http_access deny download !POST
http_access allow suretecsystems.private
http_access allow suretecsystems.test password
# And finally deny all other access to this proxy
http_access allow localhost
http_access deny all
visible_hostname suretecsystemsproxy
</computeroutput>
</screen>
</example>
</para>
<para>
You will notice the <filename>acl download urlpath_regex -i "/etc/squid/denydownload.txt"</filename> line which points
<filename>squid</filename> to a text file with file extensions we wish to block. The ownership of this file needs to be set to
<computeroutput>squid</computeroutput> using the usual command: <command>chown squid:squid /etc/squid/denydownload.txt</command>
and the general syntax required is:
<screen>
\.exe$
\.zip$
\.gz$
\.bz2$
\.mp3$
\.avi$
\.mpg$
\.mpeg$
\.ram$
\.rpm$
</screen>
</para>
<tip>
<para>
Remember, if you do not add the word <emphasis>password</emphasis> to
the end of your <filename>http_access</filename> line, then password authentication
will not be called by <filename>squid</filename>.
</para>
</tip>
</section>
<section id="htpasswd">
<title>Password file</title>
<para>
Next, we need to create the <filename>passwd</filename> file. We do
this by using the <command>htpasswd</command> command (part of the
apache <filename>httpd</filename> package).
</para>
<orderedlist>
<listitem>
<para>
Navigate to <filename>/etc/squid</filename> and type <command>mkdir
etc/</command> then <command>htpasswd -d -c passwd username</command>
The output will be:
<screen>
[root@suretecsystemsproxy squid]#
htpasswd -d -c passwd username
New password:
Re-type new password:
Adding password for user username
</screen>
</para>
</listitem>
<listitem>
<para>now, change the file permissions so squid can read it, As root type:
<screen>
chown -R squid:squid /etc/squid/etc/passwd
chmod 600 /etc/squid/etc/passwd
</screen>
</para>
</listitem>
<listitem>
<para>
Issue the command <command>squid -k reconfigure</command> and test. Test by
changing the appropriate settings in your favourite browser.
</para>
</listitem>
</orderedlist>
<tip>
<para>You can debug <filename>squid</filename> to check everything is working by issuing
<command>squid -X</command>.
If you are unsure of any options when using any command line tool,
always add <command>--help</command> onto the end of it.
</para>
</tip>
<para>
You should be presented with the following prompt:
</para>
<figure id="fig-passwd-popup">
<title>User & password popup</title>
<mediaobject>
<imageobject>
<imagedata fileref="stylesheet-images/proxy.eps" format="EPS"/>
</imageobject>
<imageobject>
<imagedata fileref="stylesheet-images/proxy.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>
User prompt using Internet Explorer
</phrase>
</textobject>
</mediaobject>
</figure>
</section>
<section id="squidguard">
<title>Installing and configuring SquidGuard</title>
<para>
<ulink url="http://www.squidguard.org">SquidGuard</ulink> can be used to:
</para>
<itemizedlist>
<listitem>
<para>
Limit the web access for some users to a list of accepted/well known
web servers and/or URLs only.
</para>
</listitem>
<listitem>
<para>
Block access to some listed or blacklisted web servers and/or URLs for
specific users.
</para>
</listitem>
<listitem>
<para>
Block access to URLs matching a list of regular expressions or words for specific users.
</para>
</listitem>
<listitem>
<para>
Enforce the use of domain names/prohibit the use of IP address in URLs.
</para>
</listitem>
<listitem>
<para>
Redirect blocked URLs to an "intelligent" CGI based info page.
</para>
</listitem>
<listitem>
<para>
Redirect an unregistered user to a registration form.
</para>
</listitem>
<listitem>
<para>
Redirect popular downloads like Netscape, MSIE etc. to local copies.
</para>
</listitem>
<listitem>
<para>
Redirect banners to an empty GIF.
</para>
</listitem>
<listitem>
<para>
Have different access rules based on time of day, day of the week, date etc.
</para>
</listitem>
<listitem>
<para>
Have different rules for different user groups.
</para>
</listitem>
<listitem>
<para>
and much more.....
</para>
</listitem>
</itemizedlist>
<para>
Neither squidGuard nor Squid can be used to:
</para>
<itemizedlist>
<listitem>
<para>
Filter/censor/edit text inside documents
</para>
</listitem>
<listitem>
<para>
Filter/censor/edit embedded scripting languages like JavaScript or VBscript inside HTML.
</para>
</listitem>
</itemizedlist>
</section>
<section id="sg-install">
<title>Installation</title>
<para>
The first we need to have is the actual package. Download from the url
given in <xref linkend="required"></xref> Now navigate to where you
saved the file and issue the commands:
<screen>
tar -xzvf squidGuard-1.2.0.tar.gz
./configure --with-sg-config=/etc --with-sg-logdir=/var/log --with-sg-dbhome=/usr/local/squidGuard/db
make
make test
make install
</screen>
</para>
</section>
<section id="sg-config">
<title>SquidGuard Configuration</title>
<para>
We now need to create a <filename>/etc/squidGuard.conf</filename>.
Using <filename>pico</filename> as our editor, issue the command
<command>pico -w /etc/squidGuard.conf</command> then make it look
something like the example below:
<example id="squidGuard.conf">
<title>Creating a /etc/squidGuard.conf file</title>
<screen width="60">
<computeroutput>
# Gavin Henry 26/09/03
# initial conf file for squidGuard
logdir /var/log/
dbhome /usr/local/squidGuard/db
dest ads {
domainlist ads/domains
urllist ads/urls
}
dest aggressive {
domainlist aggressive/domains
urllist aggressive/urls
}
dest audio-video {
domainlist audio-video/domains
urllist audio-video/urls
}
dest drugs {
domainlist drugs/domains
urllist drugs/urls
}
dest gambling {
domainlist gambling/domains
urllist gambling/urls
}
dest hacking {
domainlist hacking/domains
urllist hacking/urls
}
dest mail {
domainlist mail/domains
}
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest proxy {
domainlist proxy/domains
urllist proxy/urls
}
dest violence {
domainlist violence/domains
urllist violence/urls
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
acl {
default {
pass !ads !aggressive !audio-video !drugs !gambling !hacking !mail !porn !proxy !violence !warez all
redirect http://www.suretecsystems.com/redirect/index.html
}
}
</computeroutput>
</screen>
</example>
</para>
<para>
Now that the url lists have been defined, it's time to install
them. Navigate to the home directory of <filename>squidGuard</filename>,
which is indicated in the <filename>squidGuard.conf</filename>. In
<filename>/var/local/squidGuard/db</filename> extract the
<filename>blacklists.tar.gz</filename> that you downloaded from <ulink
url="ftp://ftp.teledanmark.no/pub/www/proxy/squidGuard/contrib/blacklists.tar.gz"> here
</ulink>. These are updated daily and we will be configuring an update
script in <xref linkend="improvements"></xref>.
<screen>
tar -xzvf blacklists.tar.gz
mv blacklists/* ../db
squidGuard -C all
</screen>
</para>
<note>
<para>
If you get an error saying <filename>command not found</filename> then
the path to <filename>squidGuard</filename> is not in your
<filename>~/.bash_profile</filename> Using <filename>pico</filename>
open up <filename>~/.bash_profile</filename> and add
<filename>/usr/local/squidGuard/bin</filename> to the
<filename>PATH:</filename> section.
</para>
</note>
<para>We now need to test that things are blocked, passed and
redirected. We are going to put example urls in a few files. Create the
files in any directory and test <filename>squidGuard</filename> with these commands:</para>
<screen>
echo "http://www.cnn.com 10.0.0.1/- - GET" > test.pass
echo "http://www.playboy.com 10.0.0.1/- -GET" > test.block
squidGuard -c /etc/squidGuard.conf < test.pass > test.pass.out
squidGuard -c /etc/squidGuard.conf < test.block > test.block.out
wc -l test.pass
wc -l test.pass.out
wc -w test.pass.out
wc -l test.block
wc -l test.block.out
diff test.block test.block.out | egrep -ic '^> ..* [0-9.]+/..* ..* [a-z]+$'
more test.block.out
</screen>
<para>
The first set of commands create the test files with urls that resemble what
would appear in <filename>/var/log/squid/access.log</filename>. The
second set of commands test <filename>squidguard</filename> and the last
set check that the results are as expected.
</para>
<para>
<command>wc -l test.pass</command> etc. should have identical numerical
results for the first 2 commands and 0 for the last. <command>wc -l
test.block</command> etc. should have identical results for the first 3
tests. The <command>more</command> lets you visually check that the
blocked url is redirected as expected.
</para>
<para>
Copy the <filename>suretecsystemslogo.gif</filename> (save it from the suretecsystems website) into
<filename>/var/www/html</filename> directory and create a webpage that
is shown when a banned url is reached using the following code (copy and
paste this into a file called <filename>index.html</filename> in <filename>/var/www/html</filename>:
<screen>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>THIS WEBSITE IS BANNED</title>
</head>
<body>
<table>
<tr>
<td<>img src="http://www.suretecsystems.com/suretecsystemslogo.gif" width="137" height="81" border="0" name="suretecsystems" alt="Suretecsystems Logo" align="right"></td>
<td><b><h1>BANNED</h1></b><b>You have reached this page because you are trying to view a banned website.
If you feel that this site has been wrongly banned then contact our administrator at
<a href="mailto:scott.forbes@suretecsystems.com?Subject=Banned Website&Body=This should not be banned"> Suretecsystems Proxy Help</a></b></td>
</tr>
</table>
</body>
</html>
</screen>
</para>
<para>
Open up your favourite editor and uncomment the line in <filename>/etc/squid.conf</filename>
with <filename>redirect_program</filename> in it and change it to:
<screen>
redirect_program /usr/local/squidGuard/bin/squidGuard -c /etc/squidGuard.conf
</screen>
</para>
<para>
Make <filename>squid</filename> re-read it's configuration file using
<filename>squid -k reconfigure</filename>
</para>
<para>
Test with your browser by entering a banned url eg. http://www.playboy.com You should be
redirected to your custom webpage.
</para>
<para>
Setup complete.
</para>
</section>
<section id="swatch-intro">
<title>Swatch installation and configuration</title>
<para>
<filename>Swatch</filename> is an active log file moinitoring tool. It
started out as the "Simple Watchdog" for actively monitoring log files
produced by UNIX's syslog facility. It has since been evolving into a
utility that can monitor just about any type of log. — taken from
the main <filename>swatch</filename> website.
</para>
</section>
<section id="swatch">
<title>Swatch installation</title>
<para>
Download the swatch package, as shown in <xref linkend="required"></xref>. To install, simply issue the following commands:
</para>
<screen>
perl Makefile.PL
make
make test
make install
make realclean
</screen>
<para>
Swatch installs just like a CPAN module. If you are not familiar with this
process then you may want to read about it by issuing the command:
<screen>
man ExtUtils::MakeMaker
</screen>
</para>
<para>
Use the <command>perldoc</command> command if your <command>man</command> cannot find the document.
</para>
<para>
If you see messages like these:
<screen>
Warning: prerequisite Date::Calc 0 not found at (eval 1) line 219.
Warning: prerequisite Date::Parse 0 not found at (eval 1) line 219.
Warning: prerequisite File::Tail 0 not found at (eval 1) line 219.
Warning: prerequisite Time::HiRes 1.12 not found at (eval 1) line 219.
</screen>
</para>
<para>
Then you need to install the CPAN module(s) that it doesn't find, before
you can use swatch. You can find these modules at search.cpan.org.
However, many operating systems may already provide perl rpm's so you should check with them first.
</para>
<tip>
<para>
You can also use the command <command>perl -MCPAN -e shell</command> and get an
interactive installer/shell, to install the perl modules. The shell is very
simple and handles all dependancies. However, with any installer, manual
intervention may be required to install the latest required package.
</para>
</tip>
</section>
<section id="swatch-cfg">
<title>Swatch Configuration</title>
<para>
Now that <filename>swatch</filename> is installed, it needs to be
configured. We need to create a <prompt>${HOME}/.swatchrc</prompt> Ours
will be simple, but for more options type: <command>man
swatch</command>
</para>
<para>
Make it look like:
<screen>
# Swatchrc file for monitoring Squid Proxy access.log to see what people are doing.
#
# This will check for any url's with microsoft, suretecsystems, hotmail, msn or bearshare in the
# title. It will then send and e-mail with a subject of '----PLEASE INVESTIGATE----
watchfor /NONE/
mail=scott.forbes(a)suretecsystems.com, subject=----PLEASE INVESTIGATE----
throttle 10:00:00
</screen>
</para>
<para>
This constantly monitors the <filename>/var/log/squid/access.log</filename> logfile and checks for
the word NONE (the word <emphasis>NONE</emphasis> is written to the
<filename>access.log</filename> file when a banned url is visited) and then sends an email to scott.forbes(a)suretecsystems.com with the given subject.
</para>
<para>
Start it by typing: <command>swatch --config-file=/root/.swatchrc --tail-file=/var/log/squid/access.log &</command> or if you want it
to start at boot time, then enter the following into <filename>/etc/rc.d/rc.local</filename>
<screen>
swatch --config-file=/root/.swatchrc --tail-file=/var/log/squid/access.log &
</screen>
</para>
<para>
You can't simplier than that.
</para>
</section>
<section id="improvements">
<title>Improvements</title>
<orderedlist>
<listitem>
<para>
Switch proxy password encryption over from <emphasis>CRYPT</emphasis> to <emphasis>MD5</emphasis>
</para>
</listitem>
<listitem>
<para>
Add in a hardened, more secure kernel, such as <ulink url="http://www.grsecurity.net/"> grsecurity</ulink>
</para>
</listitem>
<listitem>
<para>
Write a firewall script to make the server more secure by allowing only
certain IP addresses to login for administration purposes only and incorporate
a new setting in <filename>swatch</filename> to log this.
</para>
</listitem>
<listitem>
<para>
Write a script to automatically update the blacklists with the daily
new releases for url monitoring.
</para>
</listitem>
<listitem>
<para>
Switch <filename>ssh</filename> password login over to passphrase style login, or even
better, a "One Time Password System".
</para>
</listitem>
<listitem>
<para>
Uninstall all unnecessary packages, including the XFree86 server (GUI
server), as unnecessary packages, mean unnecessary risk.
</para>
</listitem>
<listitem>
<para>
Set up console access in case main server login becomes unaccessable
and this way you can log in via the serial port.
</para>
</listitem>
<listitem>
<para>
Employ a strict backup scheme for all configuration files.
</para>
</listitem>
</orderedlist>
</section>
<section id="troubleshooting">
<title>Troubleshooting</title>
<para>
<emphasis>Remember, the man pages are your friend!! </emphasis> Whenever
you are unsure of a commands options, always type <command>man "command
name"</command> or <command>command --help</command>
</para>
<tip>
<para>
Always try <ulink url="http://www.google.com">google</ulink> too, as
someone, somewhere else has probably been in the same situation as you
and solved the problem, or knows where to look.
</para>
</tip>
<para>
If all else fails, just ask <ulink url="http://www.suretecsystems.com">Suretec Systems Ltd.</ulink>
</para>
</section>
</article>
--- NEW FILE Makefile ---
###############################################################################
# Makefile for RHLP docs project
# Created by: Tammy Fox <tfox(a)redhat.com>
# Last edited by: Gavin Henry <ghenry(a)suretecsystems.com>
# WARNING: need passivetex 1.24 for pdf generation to work
# License: GPL
# Copyright 2003 Tammy Fox, Red Hat, Inc.
###############################################################################
XSLPDF = ../xsl/main-pdf.xsl
XSLHTML = ../xsl/main-html.xsl
LANG = en
DOCNAME = fedora-proxy-guide-$(LANG)
XMLFILE = $(DOCNAME).xml
######################################################
html:
@xmlto html -x $(XSLHTML) -o $(DOCNAME) $(XMLFILE)
@mkdir -p $(DOCNAME)/stylesheet-images
@cp ../stylesheet-images/*.png $(DOCNAME)/stylesheet-images
@cp ../css/fedora.css $(DOCNAME)
pdf:
@xmlto pdf -x $(XSLPDF) $(XMLFILE)
######################################################
clean:
@rm -rfv *.html *.pdf *.tex $(DOCNAME)
--- NEW FILE proxy.eps ---
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
%%Title: proxy.eps
%%CreationDate: Sun Feb 6 19:20:10 2005
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 14 14 365 243
%%EndComments
%%BeginProlog
% Use own dictionary to avoid conflicts
10 dict begin
%%EndProlog
%%Page: 1 1
% Translate for offset
14.173228346456694 14.173228346456694 translate
% Translate to begin of first scanline
0 228.21299879887897 translate
350.32697184038437 -228.21299879887897 scale
% Image geometry
350 228 8
% Transformation matrix
[ 350 0 0 228 0 0 ]
% Strings to hold RGB-samples per scanline
/rstr 350 string def
/gstr 350 string def
/bstr 350 string def
{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
true 3
%%BeginData: 55291 ASCII Bytes
colorimage
JcC<$U]5i~>
JcC<$U]5i~>
JcC<$U]5i~>
JcC<$U]5i~>
JcC<$U]5i~>
JcC<$U]5i~>
!rr)aJa7mQWp9beaT)9j~>
!rr)aJa@sSX6]uTX3(DAJ,~>
!rr)aJa7mQWp9beaT)9j~>
"98)^pOW*jpoO5na&/W3s*t~>
"98)]p4<!ipoO5naAJc5s*t~>
"98)^pOW*jpoO5na&/W3s*t~>
"TS2bjK!j$WLEmXLReUJQq=(Qs*t~>
"TS2`i2H=:l'h:7p71N@oq(oMl_+$Hm%X<Noq_;Xm\]]Un>Q&[po<e`p8mtin?)bpj0/]oRn9FU
s*t~>
#64DdjL;@uk-EsP!4:anjgG/uij]!!ik"6`iOf0(k.]chi5#T4Rn9CTs*t~>
"TS2bj&:L/W;lo$LBn&UNCfoFs*t~>
"TS2`i)01J!!2`qoa(4!pCI<;p(RKBq%s)Np)F&Sp`T;V!%.Cf!%Rdq!&++$!&=4)!&sa6!'Bm:
!'p<F!(-KM!(ZcTpItWaqG(a)5kpf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/l[\j*_)qQV""Q
s*t~>
#64Ddj-=\1kBd2XiIh2dj,<ttjcfb1ig^"EihZXUk,eWhijAcskIgl1iPkl>i6DMJS4TLUs*t~>
"TS2bj&:L/W;lo$V?d/Rp6PoI@g33]p6Q&K)@/rp8Yc=cJ,~>
"TS2`i)01J!!2`qoa(4!pCI<;p(RKBq%s)Np)F&Sp`T;V!%.Cf!%Rdq!&++$!&=4)!&sa6!'Bm:
!'p<F!(-KM!(ZcTpItWaqG(a)5kpf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/l[qp;dBWQ</IA
p;dNY=E0Rl8YlCdJ,~>
#64Ddj-=\1kBd2XiIh2dj,<ttjcfb1ig^"EihZXUk,eWhijAcskIgl1iPkuAcHau6l3-@\Nm-PW
l3QR']?-R7U]:@E~>
"TS2bj&:L/W;lo$V?d2np\3bQe6rIc`9[0Z#cJUH8rZE;s8RT~>
"TS2`i)01J!!2`qoa(4!pCI<;p(RKBq%s)Np)F&Sp`T;V!%.Cf!%Rdq!&++$!&=4)!&sa6!'Bm:
!'p<F!(-KM!(ZcTpItWaqG(a)5kpf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/l_,p%RSPdU>7c
h<=Uq#cT@gPa=t;s8RT~>
#64Ddj-=\1kBd2XiIh2dj,<ttjcfb1ig^"EihZXUk,eWhijAcskIgl1iPl#BcHb/<pZ2S.@:%.I
lhBKHW&Um#S4TLUs*t~>
#ljVfj&5q(cg:YU!$h@@!XC+mo)K!*coqVVhc'CP!s^+k"7Z?o!b;"$!W2p&-HGMuc0/+3h#IOA
erKs/!!!/!#UDt5c+^fA-R'OAZbEG6":2p%_m,o>^:q+KXhK]-#YL(JU]:@E~>
#ljVdi)'J%cg:YU!%7aG"T\`/$S3@q"SrB.^=#CYI,S?-$j..r-4fh^!##2D"rD=T@20IlrYPl#
bjWs,l=V=9)uq)U+SR,]-Mo1p?/2,(-n>$D!&++$!&=4)!&sa6!'Bm:!'p<F!(-KM!(ZcTpItWa
qG(a)5kpf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/msOn]e_VJL;W]A$NYG9g!gYgqp7dY.M<R
S>s2X-YSa28YlCdJ,~>
#ljVfj-=\Ck4S`8!0@#(!e6;gp3R*pKS8:ITSC5MX8@PPLR+'VoRmF(N/Wb,r3#pU#G(#Okih]J
O8"S5NTcT/YO9f)ig^"EihZXUk,eWhijAcskIgl1iPm7ecHb/9c+^fA-R'OAZbEG6?H_lq_m,o>
^:q+KXhK]MXN?u(U]:@E~>
#ljVfj&5q)e[bDS!\3Z4o)K!0s0<\kk#M9Y""W'"'Cc&*"(qR1!W2p&-dBF,!2Sg,h#IOCglhl9
!!!/!#UDt5c+U5!3i?0qI_D^T":2p%_Mp0@Up4YMI(bFP#YL(JU]:@E~>
#ljVdi)'J&e[PAT"T\`//aoA/"SrB.`;d4lJ*1/8$j/B@VB5IC!##2D"rDF^@hf[nrYPl$dDm(@
X6N"G)uq)U+SR,]-Mo1p?fIn4-n>$D!&++$!&=4)!&sa6!'Bm:!'p<F!(-KM!(ZcTpItWaqG@5k
pf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/msOn]\VF*]p3('RmWn9g!gYgqeq%9;8Y)(OEZL
-YSa28YlCdJ,~>
#ljVfj-=\Dl.l#[!gEB)p3R*pKS8Ccfoj/AXS[YQRI&=\oRmF(N/Wb-s0)<Y#G()>N/ZE^SbJ'C
NTcT/Yjp2/ig^"EihZXUk,eWhijAcskIgl1iPm7ecHb/9c+U5!3i?0qI_D^T?H_lq_Mp0@Up4YM
I(bFpXN?u(U]:@E~>
#ljVfj&5q)e[bVY'-_dbOFA]0nCC)1EKH8^$rrC7%/p54^]3,$J`]r4)?,^:-S*m%>>fl4HY,L(
//3AkO?XClODJP/;0QmmrW"T!c+j;ZV!'3ZJ<5=9!$75`3<C.FOA-3lGV+tP<JqVAIZT4>(4)!=
!+M"jn<4!M!!!/!#UDt5c+UQ0KS_ESU:mO#":2p%_S)-f2+8O<]tK=<#YL(JU]:@E~>
#ljVdi)'J&e[PJW'-hjcOFSr8nC:,8FHM\g&6k?H'`J@D`;e_1LZ_tP-N98L1H!n=@pOd[K5XDL
3[96DQr#)MR!<cR@tAqUrYR@NdDm(@X6Mu>Ngu+u*''OZ:a%cTSn'BmM+4(KCn*ISOIqe83ffqO
.!qYuntdib.etUq0DI4$1&!L)2u5K648(c:5kmVF6MX%M8,#UL9`S#d;#jPi<<-(o=TD_&?2.h.
@ejR8BD6-7D#eMME<(+VFX3FGbe(3)K8;9RTXq-t4FGr>_7Gaa2+8O<]"3_GBU"iTV#UIF~>
#ljVfj-=\Dl.l5a+-!nO`P.P"q!+Q#\AcFcJZ-Q#JprB+j8\PS`:C!_P5`QBQ^R4+YH5O5^U9fX
R?##'aeOs0c+LXfYJ\&=rerM$ki@\]f_(f/`m)MsN1A/;ViIChd'K1RaJI7l\'CVBajA83T?,?e
PebZ$q9t\iS,fAEV#[RYXT5Zd[/dc#]`>h+`[AmRcJ%p8]s`-<M(qPq]r=_4bOOH+]ot0.73.#o
]o+_Kadbqts8RT~>
+TM0)j&5q)eaC;k497V!s.ld*:@Pb7J)=IYdW(W6?3U<.-bo]]SVZE.+h#6NZ-,\k\MKB(Ctc77
s%f]5=-1[?\DfAXs4-"'$2soX-dD.t_WbM:'K8I_]1KWKSD$-.]UmPcW7=]BN0a3-[^&W)^KfI2
,AZOMDrd)bUAt8sV?d5ooZdBK&rnG5X1c3G9`ta>hSQt=P;!]*rk/Sq'F7<j8Yc=cJ,~>
+TM0'i)'J&eaC;k5lj.'s.um-;=M"<J`'padW(c:@h&DC-cH&bToS;B._<JdZHcG']KM\?FPXHP
s')eMAXCed^#MS)s4ZF<+9!*33mmK=aQmpo/PK<U_-Y(!Vqk=_`2_I:ZJ/pfR\]^f^Un*ba*$:b
7YC)PL$>Ea-n>$D!&++$!&=4)!&sa6!'Bm:!'p<F!(-KM!(ZcTpItWaqG(a)5kpf.;ppK7K$q-Ec(
!+Pb8!,)%?pMBnKq/HCVq/mOCn]\VV\rA44W4KR?9g!gYgqgS4OtRT)rjiAl-YSa28YlCdJ,~>
9E4_Tj-=\Dl1a)mSU?pos3K9OVt\o'_!nG;kd8P)Y'thQK]E+4cH#LWPhkDog#f4!gmlRU\F/+_
s/OZ0Y0#k<hsmMRs6T9XOT(1lS`on0j7^-IQ)1P6i3D>'eF0KpiRdG2g(a)2HKdF.s#in^urjhC6L
U;Zi@_t;EEig^"EihZXUk,eWhijAcskIgl1iPl&CcHb/9c2PBhN[dW$]tLC>?H_lq_S*UG0GK9@
]a0NQXN?u(U]:@E~>
+92'(j&5q)e[u7t!rtL<Ri7jL>48-bVYS`gep3V93;ih(^X-l@puYR,ipY.(a)dS&8g'p8LkrVZKk
:Y*0&D<cS[fa;?ks&TO*!!4Om_Ysol!XN>_dHfOK1uO`@">@Qg/01\fq#C3fqG>k@'p.9hfs:[;
r%(.hP6@W\!!K/)!_Dt.rk/Ai/o(C!(o^44#fGN9]rOR:)()>r]o*R18rZE;s8RT~>
+92'&i)'J&e[c+r"9:U>S/\*Q>jn<gVtnokf6Nk?4oGX6`6r_Npubs?j6t=Ee5tA$+IW6)rquTl
>M?qNG3k(!g)bD:s(!)brYQS8dE*RV,T\1PeCO$C:ep&H3$V#9Z:6j[rV6Elq\!Z!Y;W-7KAXEl
TDVDjih\.R.etUq0DI4$1&!L)2u5K648(c:5kmVF6MX%M8,#UL9`S#d;#jPi<<-(o=TD_&?2.h.
@ejR8BD6-7D#eMME<(+VFU4H+be(HtLb<KB\eqGA4FGr>_7HU8'cJBq]"3_GBU"iTV#UIF~>
9)nVSj-=\Dl.poAI=%INb)+F2Y4p7heGSRolF>%+R<sC9K]D:,k5=eORIU(8lKP86d>lELr;QZm
s/PDBQ+-G*hsHQ;s8T9`rJUfKkiVl,'oe<cl0A!2Vl919RuaK-fVY=qrqufqr=HR1est1Z`UMrQ
e,QGPn^EiaS,fAEV#[RYXT5Zd[/dc#]`>h+`WaK0cJ%p8rk/Ai/o(C!(o^59bOOH+]rOR:)()>r
]o+_Kadbqts8RT~>
#ljVfj&5q)e[bVY&j=s7(7j&\n"B`YjsM3H3LAGZr;\4[c6m)jk#EqjY5gI^3SC/BB&E-a_>hb:
f"<2Dl@-7r$>0=Th-gcl!!4Om_#46]2qjf=S(gG2FO?R!95qVF21"NVVpGCT6J8.LOPXj-ZN,s^
/4&'T"JYqs"JuG+8G(1+]`P*_Rf9u;WD*L$_qr8)7PU%(74+G9M\HFhNCfoFs*t~>
#ljVdi)'J&e[PJW&j>!:(8'5an"9f]k:RlU4.Ftfr<OdhcnB,'k?^")Y7*U$6e\CZE8gAs`W+:O
g;5[im"rF0*d.M(hej\<(bn)!`u#X4*),.`0W*Z1AVJ^43F[T\[SD_Hn[$dG`a7H(2PT2`hnLS3
r(UPXV(3rDq()M!pb2\&pG;k/qD\I:p,i=?pd"mHq*b9RpIY*R!)WMh!)rYm!*8hs!*o>*pgF/3
q.0P=pM'A=!,q[Q!-J$Z#b(;-]=PSMJ=6DJ(og:mI,*MnTg^\tW'r)#\qqeJPa=t;s8RT~>
#ljVfj-=\Dl.l5a5+Cr\L<f1hpWn39o9,!,R*4rdH[^X$j6)`9q!tMSn_8_gY+P(.NOJ?Og>W(p
Sa50u\+R_tm?,![j7'I=repoLkiD]$.&H@ZQI,*'ZGc(YS?p&lgT&<fq:Y'5j0S:,SC6uInDoh_
s/N<ne!K'a!2SVN!3>7a!4(Ul!4h:+!5IL4"j,'8g@WYh]`P*_Rf9u;WD-^Bn_V-W7PU%(74+G9
M_qNWS4TLUs*t~>
#ljVfj&5q)e_pFc',WmdQ56%C6]BPa9\,f@\kACD3;ih/^Wn2XYNAguIbTh/PU24*=;@U_,u4JZ
"*D_U]r+N5fa;?k;/aZs%KHJVc+s8X-lJ,bQI=M\K\=;D-@3_PZnE]@eHC*r7h^`uQGStYfs:ZC
d@dK-P6(a)W\!!K/)!_Dt.rk/A_'O(LL(o^44#fGN9Rr=_.]rl(1]o*R18rZE;s8RT~>
#ljVdi)'J&e_^:a',s*hQkl=H7Zl.j:tMDH]M4mM4oGXk`6^.oZKGO8L>.j=Rk]uD?mM`*1Ksg)
'7J3&_6@(Ug)bD:@sZRM,T%@ZdDm(@)]UW&aeIDC?Bj6gZp9Poc+ch8ak%kps(+$SbbWIZA)G$L
?J)Eintdib.etUq0DI4$1&!L)2u5K648(c:5kmVF6MX%M8,#UL9`S#d;#jPi<<-(o=TD_&?2.h.
@ejR8BD6-7D#eMME<(+VFU4H+be(HtIhc8g\eqGA4FGr>_4#5-]"4qTNOjroBU"iTV#UIF~>
#ljVfj-=\Dl0nVi7>[N$aG/"-TZ?;iV<uR[gnN!\R<sC9K]D6]RbI>6Nl1>,l-,I5iiS9kl]nLM
\q[l[cem<ShsHQ;s0'3&]TS54S`o/5N$t%;j3[)[YflLtgRuULkMN55jmJAMs0S<Bk0iDA[IE7A
Yj^9"q9t\iS,fAEV#[RYXT5Zd[/dc#]`>h+`WaK0cJ%p8rk/A_'O(LL(o^59bOOH+Rr=_.]rl(1
]o+_Kadbqts8RT~>
#QOMej&5pb2Z5oT$P,0C"Xl;<%m_<=1I4;R"XZ/<r;[*W1^X4)3Yh]'r]q\>!#%@="Xu>9'L<`?
#rY(8*!e2V!uaH?#<"(;!!!?_1&M#!'fnWH3"HHa5oB\32F/Pf#r+==*^LD=&ii6>(^`2R!!"Q8
5sZdtUAt8sV?d5ooZdBK!j.W]rk/N89`ta>hST'$#`BB&8rZE;s8RT~>
#QOMci)'I]2Z5oT$kP?E"tM_G'LO)K2FKq_$8"CVr<NZg3t_fG6m2sUr^p!-$m%_g'fSJt,>B[#
)+..q0-!2G(G/H3)b)t3(`4Dd6l6a[*#pV-<`VpD.99J,+Y$;k59M@I:*_u-1aFkV>ZWm<<_b%k
9jV1681>r:q()M!pb2\&pG;k/qD\I:p,i=?pd"mHq*b9RpIY*R!)WMh!)rYm!*8hs!*o>*pgF/3
q.0P=pM'A=!,q[Q!-J$Z#b(;-]=PSSOJ;`c#-(B[I,*Mnppp`f-YSa28YlCdJ,~>
#QOMej-=\5Qi3EsJV0>MIZTqKKUe!KQCOJ+IZKkKH[^X$S=PIhPG!qhMZ0(a)oN.d1_Q%t`uLlS6n
KSZ4pUQUP/UlCb@Q&hc6O,T$ZUS@[F,*f%)WMPfBWMu8ERB*NcPaJDMPb>4MPanhYXe(r]W0EOF
riZ?uQK"D7UuJ3NX6-MaZJr7l\`^X+^Z!09aj/2coZdBK!j.W]rk/N89jZ$5hST'$#`CO@adbqt
s8RT~>
"TS2bj&:L/W;lo$V?d5eZ=s#G"_C"'#bueAB*_rZ#YL(JU]:@E~>
"TS2`i)01J!!2`qoa(4!pCI<;p(RKBq%s)Np)F&Sp`T;V!%.Cf!%Rdq!&++$!&=4)!&sa6!'Bm:
!'p<F!(-KM!(ZcTpItWaqG(a)5kpf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/lb#Y\ElG#%p7b
I(auCph0qD,\WF/8YlCdJ,~>
#64Ddj-=\1kBd2XiIh2dj,<ttjcfb1ig^"EihZXUk,eWhijAcskIgl1iPl&CcHahCB_Z3DAO9_H
dX:e%#\#Niadbqts8RT~>
"TS2bj&:L/W;lo$V?d/,oE,*t#kS3(":.VZ8Yc=cJ,~>
"TS2`i)01J!!2`qoa(4!pCI<;p(RKBq%s)Np)F&Sp`T;V!%.Cf!%Rdq!&++$!&=4)!&sa6!'Bm:
!'p<F!(-KM!(ZcTpItWaqG(a)5kpf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/l[IodU%o;LCY#
.L.nNPa=t;s8RT~>
#64Ddj-=\1kBd2XiIh2dj,<ttjcfb1ig^"EihZXUk,eWhijAcskIgl1iPkuAcH`N`7KS7eC%Xq#
>e%nG8Yc=cJ,~>
"TS2bj&:L/W;lo$LBn&UNCfoFs*t~>
"TS2`i)01J!!2`qoa(4!pCI<;p(RKBq%s)Np)F&Sp`T;V!%.Cf!%Rdq!&++$!&=4)!&sa6!'Bm:
!'p<F!(-KM!(ZcTpItWaqG(a)5kpf.;ppK7K$q-Ec(!+Pb8!,)%?pMBnKq/HCVq/l[\j*_)qQV""Q
s*t~>
#64Ddj-=\1kBd2XiIh2dj,<ttjcfb1ig^"EihZXUk,eWhijAcskIgl1iPkl>i6DMJS4TLUs*t~>
"TS2bj.V$]WJU\6LQ)J/QV!tPs*t~>
"TS2`i1BUtoni@!oo&O'ooAg.ooSs2pQG35pltK;pQkWAop>`IpR:lHpRLuKq4@;PpRq;TpS.JY
p8%GZpne%hpo*5Q"gFFeV#UIF~>
#64Ddj0P_bkGnTaiN<0aiiqLLij8]oijSotk.(K'ik#3'kIgl0iP,B.i5,Z5Rn9CTs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj6XGe\q2X_,s%:']t9_grItB1Uq2,jQG*:1s1A6BaLq_F8Yc=cJ,~>
"98)_i9\#_[t6=[,rq.!]""2brJ(H2U:5]bJ\'@B"IhuYs8RT~>
"98)aj6XGe\q2X_,s%:']t9_grItB1Uq2,jQG*:1s1A6BaLq_F8Yc=cJ,~>
"98)aj6aMg\9h)8]=k%<MmfJ;rr2p#rn)RJ[t25^]`PjY]D/u2]DfIn]`acqU]:@E~>
"98)_i9e)a[Wt]3\@SG5MR9/3rr2p#rmc=E["5f>]%+@pRn9FUs*t~>
"98)aj6aMg\9h)8]=k%<MmfJ;rr2p#rn)RJ[t25^]`PjY]D/u2]DfIn]`acqU]:@E~>
"98)aj6aMeX>YI)S=>aX.&P_trs%f/^uad1F7['MMe6O3KXHu4M7iqRRbGFUU5[^;!PH&-])TAB
][sh"RRs:Ss*t~>
"98)_i9e)iW]5=&S!oUW/#Cu!s8VH*_;sd1Eq?jIMIg=/K!UQ-M7N_MRG,4QT8AT>"IhuYs8RT~>
"98)aj6aMeX>YHiBk:X7)1pTArs%f/^uad1F7['MMe6O3KXHu4M7iqRRbGFUU5[^;!PH&-])TAB
][sh"RRs:Ss*t~>
"98)aj6aMpX>Xjlc-XhA.;c*bqQco;019WaIV/5c#>nTOI:me3FmH^AJr?>9!Fp3)]`Eaag:[O"
]A^=$]\'n#RRs:Ss*t~>
"98)_i9e)jW]4dkcHsq@/8V<bqR!'+V29r7I:r2`#?"ZNHY.M/G3c^?Jr-24!Fg0)\cI@ZNk,@_
8YlCdJ,~>
"98)aj6aMpX>WsnUoC>S%j7nPqQco;02%PNIV/5c#>nTOI:me3FmH^AJr?>9!Fp3)]`Eaag:[O"
]A^=$]\'n#RRs:Ss*t~>
"98)aj6aMr[<A,)mWp6)2Sr1aUP1*,!<<9ad!KE9p:VAAKtY0G?!h`d['I-R]sP)R]Y(\[]=kb\
ZFg+L&7]Od[_0/[[^*3I]Y1e[[(QCO4LMf4\%K2U[(EoY]tLh`[(!`^]=,Dd\%0/Y[_08]ZF%9T
ZFRZ^]"#5U\\5V\ZFRWTZF76K\\5V\ZFKkH&\,-R]">A[ZF[`\['F"Z]tM#VZ6Hoo\[/WQ]t:VZ
]tLh\]=GGa\%B8\]sb5R]=G8X]="ql;r#%e]Y!%3!5$pt"I_oWs8RT~>
"98)_i9e)lZZr)*mWg0(28;e[UpK(%K4HJoc$X*2p:;/?K=\X=?X@lbZ*:UH]!8KG\[f)P\@T,Q
Ydj\D&7oUa[(3WP['6d(a)\[o/PZ+9kF4L;Q,[CNZKZ+.9M]"55VZ*_*R\?icX[(!TNZamWRYd(aI
YdV-S\$`TJ\%9)RYdV*IYd:aB[^ruQYdXMA&[ejJ\%&cQYd_3QZ*7MU]"5BMYTgTg\$<0G]""uN
]"52Q\@/fU[CE`Q]!S]H\@/WM\[&Db;3&3jRn9FUs*t~>
"98)aj6aMrZsI0`.jl\g"99(/UP1*,#UGM8gj<\Ep:VAAKtY0G?!h`d['I-R]sP)R]Y(\[]=kb\
ZFg+L&7]Od[_0/[[^*3I]Y1e[[(QCO4LMf4\%K2U[(EoY]tLh`[(!`^]=,Dd\%0/Y[_08]ZF%9T
ZFRZ^]"#5U\\5V\ZFRWTZF76K\\5V\ZFKkH&\,-R]">A[ZF[`\['F"Z]tM#VZ6Hoo\[/WQ]t:VZ
]tLh\]=GGa\%B8\]sb5R]=G8X]="ql;r#%e]Y!%3!5$pt"I_oWs8RT~>
"98)aj6aMhXg.BkG:uKm55!8s71K.p"WXl9Kk7C\]e3/lNK%ap?Z1cc0N+g]9/',,Ro2A"X_KOD
H*k8u?7U%cWH_H5,qr#WTi3X-MZ1:P31Ye+R8kq)L5/R<]f0dWA\5XH3OZM#I>^3^QCLi,5*'q)
MS-WR9N=&nZCim*BVm.*;-Q&%WIHTUA$5gE2gmA@H'Kdf0Q!q>4"qk"]tK470JIs`NBT16VM$m*
Un0n>N+lXu=HSt5VG]*4MJa\dO%(fJ;r51g]Xuq0!P?#!]`acqU]:@E~>
"98)_i9e)mX0V6jGqV]o54d#m96$V;/cYkl[-WEWXS9:Y;IYQBC3!X!M*<UmUq'&M9pD)F4b0SH
0/%UV]"29"E_!'R=@XYj99PoI00G'i\ii!DKj'gE00OuB:qF4uD(9,,\t(si\Q=395#.B4;D11n
Fr6%G\q*LV3HMBp0/$t6-7Dbr3-(mG0/$k:rjk%:00=HF.:b)JX*d#_,':E-M@qQqI'S\p1MW_=
2c-6=76ufG@]*=gQ9M'A0L(G5,^bVA0-X8R\ceKoV#UIF~>
"98)aj6aMsO_AV[))"Nd'HR5S5W9`ES+;t>[dAc[XnTL];.GTFCiWm$M*E[lVn>YV:6qAI4FsVL
0JIdZ]tI`&E^m$Q<^nAh9U)5L0Kb6l]fe?GL00jD0Kt5H:VFG#D(0&.]q%0l\lX<<4AD-3;D::q
GSc7M]n&jW3-2Bu0JI1;-R_hr3HM0L0JI">rk17=0KOKE-t=rJXaE2a,'1H2L_;BqI^P/!1hrn@
2c6BB6:-WF?`@.iQoq6D0L(G4,^YSA0I'NQ]`GdXgU[Et]\C+&RRs:Ss*t~>
"98)aj6aMgPN`&;D(Uj=4PoS.*Voa>/cY9t@^#R?/l=c3<I2#\>XVV)4_20LBL>^IBTdXr-YR0<
S%ZLGEM5k$GZI:l]nK`q4D7eKrk1HSSVC6PBYC&tL/5Lr2f2a"]tKss[^oOgC3GSo=?U>"/U1L3
]tJtTJZ)Y5X(Z/qJO#fJA#idN.;3BEM#P(HQ=sG^IiEmN2h4Sp]jl,s]no1k]fDUUE+;%NCNc)"
H=iLq@U4dpE0!%iEP%]<>[jd<MnOaAhn9$%fX_*q]\L1'RRs:Ss*t~>
"98)_i9e)nOm2o9D_@-A4l,V-*=X4u!!OT!2?*!$A$#I:/lFf2<-YZU>shS&4_)!FAj]RJBp!Xr
->$j9S%?1CDkBOuH!!Rr\q46l4D%SFrjk6OSqU?RC:]rrKi#@l3Ghs!]"4FpZaj.cBm5Ml>!?P!
0R$j6]"3GNJYuV3WFf`jJj>lJ@]<IG-t['ALAnbCQ"F/YJ/a!L3Iskr\mfcm\r0(i\iH:PDdbbH
C3GntH"`OrA7(*tDiQthDn)35?"'^9Mn4I:Nk,@_8YlCdJ,~>
"98)aj6aMt6(]DP0J/BU,@)c!&%f19rQoC>2#m$&@^#R?/l=c3<I2#\>XVV)4_20LBL>^IBTdXr
-YR0<S%ZLGEM5k$GZI:l]nK`q4D7eKrk1HSSVC6PBYC&tL/5Lr2f2a"]tKss[^oOgC3GSo=?U>"
/U1L3]tJtTJZ)Y5X(Z/qJO#fJA#idN.;3BEM#P(HQ=sG^IiEmN2h4Sp]jl,s]no1k]fDUUE+;%N
CNc)"H=iLq@U4dpE0!%iEP%]<>[jd<MnOaAhn9$%fX_*q]\L1'RRs:Ss*t~>
"98)aj6aMgPN`&9\6_3mW8.!F*Voa?/cYkAQX$Kb]`CuarOjUf>Xr@OHCeehH;@MHNF\iE/p_ho
Z+[h]EM5k$GZI:l]nK`r7XBB8rk1<OSVC6PBYC&tL/5Lr2f2a"]tKss[^oOg[!-Pp>Y'0eLNm%8
]tJu'[&@&S>'bKKJO#fJA#idN/H0rWWkH*-@<uZPIlP-T2h4Sp]jl,s]no1k]fCURFEBp%Z#FTo
]nKpqDcpIV7t`p5EP%]<>[jd<MnOaAi4T-&f"(jngq<iZ8Yc=cJ,~>
"98)_i9e)oOm2o7\Qq6oVVC^B+YjE*,[$kD7fWMZQX-Nb\cG]]rOOCb>t/@MH(/JcGu%JGN+AZD
/U;VjYI_;WDkBOuH!!Rr\q46l7sTB5rjk*KSqU?RC:]rrKi#@l3Ghs!]"4FpZaj.cZ?C8k?:fEf
L3Ht7]"3H!Z):]O=a>9HK0YuK@]<IG/,jfUVn0I"@<lQMJ2b'N3Iskr\mfcm\r0(i\iG=QF)jWt
YB"Kk\qFLiE*QaZ8V907Dn)35?"'^9Mn4I:Nk,@_8YlCdJ,~>
"98)aj6aMu6(]DW2]Fe:*+L,l"`*6"Y<*3o/cYkAQX$Kb]`CuarOjUf>Xr@OHCeehH;@MHNF\iE
/p_hoZ+[h]EM5k$GZI:l]nK`r7XBB8rk1<OSVC6PBYC&tL/5Lr2f2a"]tKss[^oOg[!-Pp>Y'0e
LNm%8]tJu'[&@&S>'bKKJO#fJA#idN/H0rWWkH*-@<uZPIlP-T2h4Sp]jl,s]no1k]fCURFEBp%
Z#FTo]nKpqDcpIV7t`p5EP%]<>[jd<MnOaAi4T-&f"(jngq<iZ8Yc=cJ,~>
"98)aj6aMgPN`&Ch937GcK!ud*Voa?/cYh(;NJ?`]`CuarOjUf>u[/sH?MN<[<5YgGE,UW8[Ys#
U:n6QE41cW:9@*B[=M^nCUK^1rk3WS01D:HB=40iLetKX+)P2_]tL"#Xa1S+;3c3??>[*B9mBmS
]tJu'[&@&H4gh[gJj>oKA#idO412J(PJ+YU?F?:tIlP-T2h=bo[9n!g]no+a[68V7U9%R5>,#qP
>EFMGSn)]AO%#sZDmPa0?"0pALUDS0\@^e7!5$al!5..$"I_oWs8RT~>
"98)_i9e)oOm2oBh9!+EcK!uc.]Zb`330$#5QC`9;N8*[\cG]]rOOCb?;m,oH?;H:Z?9DhGE,RW
8@#NsTt7gLDmPKT9rgg?Z@?:jD6fX-rjmEN0gq@EBsO*hLJb?S+)P2\]"4IuWd,2(:mH->?uE9?
:Np-U]"3H!Z):]F4gM@`K0YuK@]<IH3jQ&!Oh/,K?*]qoJ2b'N3J(%qZ<hXa\r/t^Z9<>5TW)(-
=eKYN>*4DGSRuZ=O@5pVD6T7*?=Bj>LU)8([^_F1"IhuYs8RT~>
"98)aj6aMu6(]D5<`<$_F@o1+!!lr?;??gu/cYh(;NJ?`]`CuarOjUf>u[/sH?MN<[<5YgGE,UW
8[Ys#U:n6QE41cW:9@*B[=M^nCUK^1rk3WS01D:HB=40iLetKX+)P2_]tL"#Xa1S+;3c3??>[*B
9mBmS]tJu'[&@&H4gh[gJj>oKA#idO412J(PJ+YU?F?:tIlP-T2h=bo[9n!g]no+a[68V7U9%R5
>,#qP>EFMGSn)]AO%#sZDmPa0?"0pALUDS0\@^e7!5$al!5..$"I_oWs8RT~>
"98)aj6aMgSC[Q(YF1fMS)Edq(Ae(8$!(a)#A;N^^e!Gdks]bG[FUdZnI]tHuh/S2.s6(klG/M3Ll
]b%YrNLW&C]h'G#=KK)G/O?H:]b%_5S@uRL/OZPLIP$X_J9%mn]c!Y&@;h++6<p\$AM$<ULi^2A
]oR<EX`0f&r[eP=?DW="Y]6&'/M2Iark1=>/M0>M=M;CLTU7tr2MAcWL_23jT=p1F/No/i3FTV7
9M24rH\/r,=hVLY/k2[kGeL%P/MCpSPiTLX]@4=l]=d"6"I_oWs8RT~>
"98)_i9e)mRb.E&Y*kWHRbmLl2lh?e#;fR_AGEu?PP;WhCQSM+'Qo/+6nW&^\jn>(AZfQ0T"0P,
/XcUL&@?P<S2n0l80]]fWOHIk6E0sq&@X]j]")N,6D_2?/WEk^ENT5O)5AutDiC\`>cb5@/OHXr
FLeuoNc_V.Djm6r/I[\GUkEroE0d.K/Uk5/\iG-i/OGJ!]"2";QU!,\KY"aO&M5T*\r/X%4H6'p
?b3gC8YiqEJ@_OX]"2E)7APW\\u&:U/o,0aOLbRa8YlCdJ,~>
"98)aj6aMd>)bX0Lma[&Md$&Z$4&\/5o:/8q8?0npUpTCP5W'.GD;n^/nM`08M)N*Y[g%m]SA'j
SGp25[s!b$3k`3u,;!$!\n3N[X8]dD\Mp%l]P/rcW4RL1OB6sQYl;<RV))OuN3#?NY-hgm7'_Vi
]=kn=FgeDkS=fd4%$"YjKQs_(a)R%Q#_J%P]n3IED16]P9^]iUko5V4mI]tK46/M3U.N&rUSO/"^D
]tI*3VnIG/]qefE]jiZaV1j0-W),'!Ch]-p]`>[n\cKFUhRs&\8Yc=cJ,~>
"98)aj6aMh\Y[[Kl+":,gZsT#BG17D"qYP6\R1K3fY%NsKOel3]h+.V]`X1.A#ciJ!Js7Y^!aIm
]=d"6"I_oWs8RT~>
"98)_i9e)m\"qCHlF4:+gZaAsSolmr!!!RGkdb#]\_+IuZ%HV&]"1FlpUUHaBk=9L\cI^ZJ\(*W
"IhuYs8RT~>
"98)aj6aMsZZ(=]3dlC-<<*"eBG)P$E`PbXl+(/`]\'n&["Mt*]tI!qpUpZeCLaBM]`EsY]tMk*
!P?#$]`acqU]:@E~>
"98)aj6XGo\#R[LnD39kI8,pfZ#LE[@'AS*;jc.L#ITPC\%TJ=X7s:/PBsL=]`G-q^:aNYdCK=j
hRs&\8Yc=cJ,~>
"98)_i9\#i[A_:FmbHsgHqophc$'g(?a&J'<L24I#IBA?[(<i1WV<t*P'F49\cJdlJ\(*W"IhuY
s8RT~>
"98)aj6XGoY'G7e/m^pM!&p,(Z$eS`Ej+K<;jc.L#ITPC\%TJ=X7s:/PBsL=]`G-q^:aNYdCK=j
hRs&\8Yc=cJ,~>
"98)aj6OAl\Y[FGo#Q)DXL4bin_)I[pU<kpJ\A+t!5$Xi!5%+$"I_oWs8RT~>
"98)_i9Rrf\#%.CnATT<WjA;`n_)I[p:!bmJ\$EDf")!R8YlCdJ,~>
"98)aj6OAlZ?1:o.UrrHXL4bin_)I[pU<kpJ\A+t!5$Xi!5%+$"I_oWs8RT~>
"98)aj6=5gU<DkhF$[LQ\t@aSs6c[cXF\'b^!O=j]AC4(RRs:Ss*t~>
"98)_i9@faTZQMeE^74I\"MLQs6ZRaWI_X3]%+@pRn9FUs*t~>
"98)aj6=5gAUIDV!C=E4\t@aSs6c[cXF\'b^!O=j]AC4(RRs:Ss*t~>
"98)aj6F;^Z**'OW4bLr]`tmDakiJ!U4L"W^!O=j]AC4(RRs:Ss*t~>
"98)_i9IlXYH6[JWk1Oq\d#I=b2&ItTRj\*]%":oRn9FUs*t~>
"98)aj6F;^SSiO'!!,Cb]`tmDakiJ!U4L"W^!O=j]AC4(RRs:Ss*t~>
"98)aj6F;^TYUTnW4bLq]`b^6O+j?[]r8Wk\cBA!]`acqU]:@E~>
"98)_i9IlXTtUKlWk1Op\cf=0OG9K\\q.HA\ceKoV#UIF~>
"98)aj6F;^EI)9u!!,Ca]`b^6O+j?[]r8Wk\cBA!]`acqU]:@E~>
"98)aj6F;^\8l`5W4bLp]`P^K[t25j^!O=j]AC4(RRs:Ss*t~>
"98)_i9IlX[<$H2Wk1Oo\cT:B[=Po?]$e.mRn9FUs*t~>
"98)aj6F;^Y@/+F!!,C`]`P^K[t25j^!O=j]AC4(RRs:Ss*t~>
"98)aj6=5\Z$WIK]g8j8q7M9lq7Qd?dCK=ihRs&\8Yc=cJ,~>
"98)_i9@fVY'R.K]0LqYJ\'"8"IhuYs8RT~>
"98)aj6=5\UfA$-!C<p&q7M9lq7Qd?dCK=ihRs&\8Yc=cJ,~>
"98)aj6F;^Z**$NW4bL$]`PjY]D9&5]DfIh^&G[W]`>[l\cBA!]`acqU]:@E~>
"98)_i9IlXYcQaJWk1NI\q.H8\ceKoV#UIF~>
"98)aj6F;^So/X)!!,Bi]`PjY]D9&5]DfIh^&G[W]`>[l\cBA!]`acqU]:@E~>
"98)aj6F;^ZA"^pW4bL&]`GdXl+6`'rk/6Drk.4%r42p@]YD,[][=:j]AC4(RRs:Ss*t~>
"98)_i9IlXY_JOmWk1NI\q.H8\ceKoV#UIF~>
"98)aj6F;^T4]SQ!!,Bk]`GdXl+6`'rk/6Drk.4%r42p@]YD,[][=:j]AC4(RRs:Ss*t~>
"98)aj6=5\Ugp'r]g9!<!PH&$])K=n\cKFU_7]i]dCK=ihRs&\8Yc=cJ,~>
"98)_i9@fVU10gr]0LqYJ\'"8"IhuYs8RT~>
"98)aj6=5\UHAMV!C='*!PH&$])K=n\cKFU_7]i]dCK=ihRs&\8Yc=cJ,~>
"98)aj6F;^\#@jCW4bL']`>[I\cBC[]`GdXd^fFjhRs&\8Yc=cJ,~>
"98)_i9IlX[ADC=Wk1NI\q.H8\ceKoV#UIF~>
"98)aj6F;^Y%`,J!!,Bl]`>[I\cBC[]`GdXd^fFjhRs&\8Yc=cJ,~>
"98)aj6F;^TV^u?W4bL(]`>^H\cBC[]`>[m\cBA!]`acqU]:@E~>
"98)_i9IlXTr%&?Wk1NI\q.H8\ceKoV#UIF~>
"98)aj6F;^ED8Xt!!,Bm]`>^H\cBC[]`>[m\cBA!]`acqU]:@E~>
"98)aj6F;^Z"o*NcAY&s]`GdXXL\DD_S#r^d^fFjhRs&\8Yc=cJ,~>
"98)_i9IlXY\f'Mc\au=\q.H8\ceKoV#UIF~>
"98)aj6F;YSiQcM!<GKo]`GdXXL\DD_S#r^d^fFjhRs&\8Yc=cJ,~>
"98)aj6=5\UK;2Z3hs*r!PH%F\cBC[]`>[n\cBA!]`acqU]:@E~>
"98)_i9@fVTiGiV4J78:J\'"8"IhuYs8RT~>
"98)aj6=5\U,r>T*2BpT!PH%F\cBC[]`>[n\cBA!]`acqU]:@E~>
"98)aj64/YW_tp]kIh)!S!oeDX01m("M1M5XLml5!5-jns,ksF!kXY[`4Z2a]@=Cl]\^=)RRs:S
s*t~>
"98)_i97`SW)Gg[kILYkrg3b_WN5Hu"Lk5-WOTaTs,kpEs,hlDn[\jm8YlCdJ,~>
"98)aj64/YW_kdZkIh)!S!oeDX01m("M1M5XLml5!5-jns,ksF!kXY[`4Z2a]@=Cl]\^=)RRs:S
s*t~>
"98)aj3#%>;):a6EIWl6]`bH+@pcV1]`>^q])R00])R5s]`>^p\cBD"]`acqU]:@E~>
"98)_i6&V8;DUg5E.<]3\cf''A6uOV])R00])R//](*?7Rn9FUs*t~>
"98)aj3#%>;):a6EIWl6]`bH+@pcV1]`>^q])R00])R5s]`>^p\cBD"]`acqU]:@E~>
"98)aj3#%9;2+8J"Kb+&?aTaE!@g>5]b!CXBe#=[]kJs1.VQE)OXb&?\cAW,4r+mE\ir<hOXbai
\ipjk;a+m+\l1dV;uXB..fV[7Oh/-$r]U=0rjihC.R$d0]"1g(4t:rkBGG3lOVL'kVZ&aZ(&kfE
.fV^8PJ+Z.r]^pB]kJ3G.VV+3]tIB05:V-V]a%Ld5?(Uq]i=tq#_'H:.R--s.Xq3,!5-mo!P?#$
]`acqU]:@E~>
"98)_i6&V3;M45F"KP"&?EsF>!(a)g;4\e%%TBI].U\nER,.VQE)OXb&?\cAW,4r+mE\ir<hOXbai
\ipjk;a+m+\l1dV;uXB..fV[7Oh/-$r]U=0rjihC.R$d0]"1g(4t:rkBGG3lOVL'kVZ&aZ(&kfE
.fV[7Oh/-$r]Uj?\nDgB.VM"0]"1g(4t:sS\d).`5#YCk\l8Sl#^j35.R$$p.X\2+"IhuYs8RT~>
"98)aj3#%9;2+8J"Kb+&?aTaE!@g>5]b!CXBe#=[]kJs1.VQE)OXb&?\cAW,4r+mE\ir<hOXbai
\ipjk;a+m+\l1dV;uXB..fV[7Oh/-$r]U=0rjihC.R$d0]"1g(4t:rkBGG3lOVL'kVZ&aZ(&kfE
.fV^8PJ+Z.r]^pB]kJ3G.VV+3]tIB05:V-V]a%Ld5?(Uq]i=tq#_'H:.R--s.Xq3,!5-mo!P?#$
]`acqU]:@E~>
"98)aj3#%9;2,"_)LQR45bsMm.uUH<WIT;rCnI%E.tt&n@pa/+rOr5['"od.PCC20]i:3/<4tN-
O]/hipq$KQs1/2Drji4r]"39:rji+oI/UV_BRID&VGk(;I!kk'+[2d7\nI5;BRID&VEVT&5.\=f
Oh/,;Oh/+f]"39:]"2SS\cI5.r4Nb.W4flYPJ'2oIX\sp]tHYD]p"ZT]a/>$]tL@/]kMrp]a-j$
IX\sp]tHZ*]`>^s\cB@u]`acqU]:@E~>
"98)_i6&V3;M4t[)LZU45G=2h.Z:99VLEchCRpeA.YXllA6s5*rOW#V'"TR(OaO`(\l4a&;n>0(
O]/hipq$KQs1/2Drji4r]"39:rji+oI/UV_BRID&VGk(;I!kk'+[2d7\nI5;BRID&VEVT&5.\=f
Oh/,;Oh/+f]"39:]"2SS])R0U\e@9)]"2R;\j!]QI(DMQ\j!^:OcfFM#\\Us\u%[&BRKfj#X5,5
I(DMQ\j!(("IhuYs8RT~>
"98)aj3#%9;2,"_)LQR45bsMm.uUH<WIT;rCnI%E.tt&n@pa/+rOr5['"od.PCC20]i:3/<4tN-
O]/hipq$KQs1/2Drji4r]"39:rji+oI/UV_BRID&VGk(;I!kk'+[2d7\nI5;BRID&VEVT&5.\=f
Oh/,;Oh/+f]"39:]"2SS\cI5.r4Nb.W4flYPJ'2oIX\sp]tHYD]p"ZT]a/>$]tL@/]kMrp]a-j$
IX\sp]tHZ*]`>^s\cB@u]`acqU]:@E~>
"98)aj3#%W;&^fSVeTLAKq:#dQnsFeQtp6$<0jkXQoKaf@pcORr4NbCP:Dbq]tICY5?*hq]mZ&B
5.X\e\cZVnHt`Mj"?sE.I!kq)!'^=lr&t6s]"39:r42kCrB::F\j#u%"HdAFBVtd?"$X;0OoDoo
BRG2@rji,YIf-kZ(&^?,PJ'2oIX\sp]tKVDIVGbU]`::o]`::q^&<B_]g'3D5PMhl]Xun/!P?##
]`acqU]:@E~>
"98)_i6&VQ;B-uUVJBFAK:=Q[Pr44eQ>0rt<L'hSPrOCcA6uILr43P?OXcJl]"1hO5#[Sk\pTW=
5.X\e\cZVnHt`Mj"?sE.I!kq)!'^=lr&t6s]"39:r42kCrB::F\j#u%"HdAFBVtd?"$X;0OoDoo
BRG2@rjr,Wr42kCrB:^R\j!]QI(DMQ\rgZRBVtR9!'^:k!'^(a)mrHnaZ5.\<hW4E,$8YlCdJ,~>
"98)aj3#%W;&^fSVeTLAKq:#dQnsFeQtp6$<0jkXQoKaf@pcORr4NbCP:Dbq]tICY5?*hq]mZ&B
5.X\e\cZVnHt`Mj"?sE.I!kq)!'^=lr&t6s]"39:r42kCrB::F\j#u%"HdAFBVtd?"$X;0OoDoo
BRG2@rji,YIf-kZ(&^?,PJ'2oIX\sp]tKVDIVGbU]`::o]`::q^&<B_]g'3D5PMhl]Xun/!P?##
]`acqU]:@E~>
"98)aj3#%9;2,"_"_q=JLn5I_71bPO?s6Z9</bW^72UVF@pcV?]b".W]i8^Z]ma[Z<,'%Z]MrSD
I/^\YVETD,\dWt"]"39:]"0B&\nHKj\c=ql\cHJlrjiK7]"39:]"4cM\j!"j\c\h@BRKfj"+7\k
.fR!Z55r+pBRE#C\e'7&]"39:]"<E?]tLAX]g&Ip]aC^O5J;Mp]g'3D.fR*]5Q8=tW'>b1]`Dhr
rk/D_]kMrp]a-j$IX\sp]tHZ']`>\!\cBCu]`acqU]:@E~>
"98)_i6&V3;M4t["`%@KL79"Y6kGDO@9m)B<Jt`_6l:JEA6uP<\dMGM\l3:R\pS1R;eZ0A!E3\2
I/^\YVETD,\dWt"]"39:]"0B&\nHKj\c=ql\cHJlrjiK7]"39:]"4cM\j!"j\c\h@BRKfj"+7\k
.fR!Z55r+pBRE#C\e'7&]"39:]"39:]"4cM\j!"j\dG=G5.Z,h\j!^:.fR!Z55r+pVETD,\cHJl
rji2Z\nHKj\d1KsI!iLh]"1)(\ceKoV#UIF~>
"98)aj3#%9;2,"_"_q=JLn5I_71bPO?s6Z9</bW^72UVF@pcV?]b".W]i8^Z]ma[Z<,'%Z]MrSD
I/^\YVETD,\dWt"]"39:]"0B&\nHKj\c=ql\cHJlrjiK7]"39:]"4cM\j!"j\c\h@BRKfj"+7\k
.fR!Z55r+pBRE#C\e'7&]"39:]"<E?]tLAX]g&Ip]aC^O5J;Mp]g'3D.fR*]5Q8=tW'>b1]`Dhr
rk/D_]kMrp]a-j$IX\sp]tHZ']`>\!\cBCu]`acqU]:@E~>
"98)aj3#%9;2,"_)/<G^Ln6Q=]l]od>_e5BDN6Tf]g@??@pcV?]aJOR]i9Ho]r2[ZP<]&[""KGE
(&b]FOT8>Z\cdCE;a*DE\dN1$5!CHY\ipim5*>iU"B-d65*>iUr]V)r]"4ag5!DoB]"1fi5!G+?
\ggWB.]30U!>VL2\d3[I;a*CV]">ZT58I53]r3DF5?+Rq'kr+H]g$5E.TAV^W;aI3P5nS\]a%Ld
5<k(a)F]i=tq$%BQ;.[*)2]bQb(]`>_$\cBCt]`acqU]:@E~>
"98)_i6&V3;M4t[)/EJ_L7:*4\oaN_>DA&ADN-We\j:p;A6uP<\dN1M\l4!f\u$4ROZrcU""KGE
(&b]FOT8>Z\cdCE;a*DE\dN1$5!CHY\ipim5*>iU"B-d65*>iUr]V)r]"4ag5!DoB]"1fi5!G+?
\ggWB.]30U!>VL2\cdCE;a*DD])Fl/;nBQ;.R$$pVJ$]XHn)]kBY#Zl4t<H/\cRuo;uO94;^ssp
Oh/,&r]UX9\gf1l5%qMBOf>npRn9FUs*t~>
"98)aj3#%9;2,"_)/<G^Ln6Q=]l]od>_e5BDN6Tf]g@??@pcV?]aJOR]i9Ho]r2[ZP<]&[""KGE
(&b]FOT8>Z\cdCE;a*DE\dN1$5!CHY\ipim5*>iU"B-d65*>iUr]V)r]"4ag5!DoB]"1fi5!G+?
\ggWB.]30U!>VL2\d3[I;a*CV]">ZT58I53]r3DF5?+Rq'kr+H]g$5E.TAV^W;aI3P5nS\]a%Ld
5<k(a)F]i=tq$%BQ;.[*)2]bQb(]`>_$\cBCt]`acqU]:@E~>
"98)aj3#%9;2,"_)JWP_Lp_7T/SqeU=K8Z4K=5tU/J*M&@pa2-m(ED2\[hg=;tdd&]XkcW]Y!UC
!5%m7!5.%!"I_oWs8RT~>
"98)_i6&V3;M4t[)J`S`L9kqQ/T.hQ=/W9/J[9VR/J*J&A6s8,UUgK';h;O?\ceKoV#UIF~>
"98)aj3#%9;2,"_)JWP_Lp_7T/SqeU=K8Z4K=5tU/J*M&@pa2-m(ED2\[hg=;tdd&]XkcW]Y!UC
!5%m7!5.%!"I_oWs8RT~>
"98)aj3#%9\@_aRrj`NN]t:\[]"P_d]Y1kf]t=9O!P5f?\H'5-]`GdX]Xe3-4t8&V\cB@O]`>\6
\cTLV]D&l;]=ch1"I_oWs8RT~>
"98)_i6&V3[^c=J&\#3W\@T2UZF@ET[^iuX\@T3LZ2qJCrjDg9V7Hbk4t8%5]&U@)Rn9FUs*t~>
"98)aj3#%9\@_aRrj`NN]t:\[]"P_d]Y1kf]t=9O!P5f?\H'5-]`GdX]Xe3-4t8&V\cB@O]`>\6
\cTLV]D&l;]=ch1"I_oWs8RT~>
"98)aj-74X]XtDZ!5#YP!PH&9\d#dZ]tM(j]D]>@])]Lq]`acqU]:@E~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj-74X]XtDZ!5#YP!PH&9\d#dZ]tM(j]D]>@])]Lq]`acqU]:@E~>
"98)aj-%(W]Xte_\cKFU[(QOR]=[dJ!P?#C^%o=l]`acqU]:@E~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj-%(W]Xte_\cKFU[(QOR]=[dJ!P?#C^%o=l]`acqU]:@E~>
"98)aj,q%S]`5UR\cB@H^&PbF]DT8?])]Lb]`acqU]:@E~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj,q%S]`5UR\cB@H^&PbF]DT8?])]Lb]`acqU]:@E~>
"98)aj,1PL]_]7\\cTLV]WAgB]Z7\gRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj,1PL]_]7\\cTLV]WAgB]Z7\gRRs:Ss*t~>
"98)aj+4oD^&G\?]Crhq]DfHo^#m!2RRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4oD^&G\?]Crhq]DfHo^#m!2RRs:Ss*t~>
"98)aj+4o9^&G\B]DfHo]u7SeRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4o9^&G\B]DfHo]u7SeRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj,UeR]Y!I?!kZ+XJ\A\/"I_oWs8RT~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj,UeR]Y!I?!kZ+XJ\A\/"I_oWs8RT~>
"98)aj,^kR]]Qd+]=`^.]Y+H:8Yc=cJ,~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj,^kR]]Qd+]=`^.]Y+H:8Yc=cJ,~>
"98)aj,gqS]]6R']Rdc0]`acqU]:@E~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj,gqS]]6R']Rdc0]`acqU]:@E~>
"98)aj,gt6\cTLVT`0NCO6sU`\<ql+]]-U.U8>Q:ZBbF&!j\?)qRlp!XT#mPUP"/VZb3)cJr-h5
Lk:5:ZFm&dK!;r%V1jc+rOiE&Y.^lmKVc8n"I_oWs8RT~>
"98)_i.8K.\cA?$J,kPq\cfI-J;Lhr\cnb$]"5)0rji08R^;k%!L]te\f7>oJ;LPAU4@cLYc!5+
J;LJ?Uk!uu]"4YhLT(0_#*uC&W/#u!]"/$68YlCdJ,~>
"98)aj,gt6\cTLVT`0NCO6sU`\<ql+]]-U.U8>Q:ZBbF&!j\?)qRlp!XT#mPUP"/VZb3)cJr-h5
Lk:5:ZFm&dK!;r%V1jc+rOiE&Y.^lmKVc8n"I_oWs8RT~>
"98)aj.s?kBg5RGPOlHf]_K&<B^<52]O<i"?iYWC]`a's?sIs9]`i"d]tKdqrk/B&;Pj6'+]!m,
]p`G=?sd]B>[UrHEGdaB?u;s>?=7/QXIX$4?>-;:]a%&fWG,[HB:HNH"I_oWs8RT~>
"98)_i2!peBKf@BOm0FWB^3/0(a)lXHo!.=4G"G9ud??bD?"__ba\s>S[\cS9tUADG):kcKlQt-,%
!c"<4ra$4WDE1s.CoO.7?=%3DS7c/7C8Lp@#=acPBjG%WR_--6Rn9FUs*t~>
"98)aj.s?kBg5RGPOlHf]_K&<B^<52]O<i"?iYWC]`a's?sIs9]`i"d]tKdqrk/B&;Pj6'+]!m,
]p`G=?sd]B>[UrHEGdaB?u;s>?=7/QXIX$4?>-;:]a%&fWG,[HB:HNH"I_oWs8RT~>
"98)aj2en69`@!OK(ckZ[<e)-^&MdJ]r3FO]`>\>\c=q[\d#fYE4rrO546)e??a)hQK,X_L0\>N
]pLq]]`O[$V>S"@]749aVS.4\]Y1_=M+bOq[[M;D\Gj/LMb1UqQEu$I[C2X1rk/P,Ng<M<]:u::
]`acqU]:@E~>
"98)_i5iJ0:&['OJG-PUZ[.f)])QFF\u$t@\c=qZ\cl_a]"4.lm^`O+G.OuCj15GL?Xo,-Q9YA[
!gur\r43TPIpu-L\p%Di]!@QU9tIpBR<)]CrjiJs8@lBsZ$p&d[%+;u\d(]cPuFHfT;T<4"IhuY
s8RT~>
"98)aj2en69`@!OK(ckZ[<e)-^&MdJ]r3FO]`>\>\c=q[\d#fYE4rrO546)e??a)hQK,X_L0\>N
]pLq]]`O[$V>S"@]749aVS.4\]Y1_=M+bOq[[M;D\Gj/LMb1UqQEu$I[C2X1rk/P,Ng<M<]:u::
]`acqU]:@E~>
"98)aj2en;1lnZ:@XRp`!jZ*an\#]&W4fm.W08][]kJ4p]otZFBiHRZ\u,Hj"FRelOVRjZrji)W
r]UUb]"4ag5!Dnmrjjr!A7_d(a)N(Ib*Od%gOA#3^uRmM+9\4*1+]k2;bXhDES9.!)tE[bg1S\'2_
Y<aI1ULGj8qRm-CD.7.&\X5MY]`O[$V>S"4Zt+2EP.GmE]`,SFMG*o]&:IQUXgc!*9rb5(]nBgi
XLJ/A#"O]B<L0\n]"J688Yc=cJ,~>
"98)_i5iJ52N=Z6@!q^[!jH!^n[]K"VRj@$VNE?U\nDhi\rf0?BN$CX\u,Hj"FRelOVRjZrji)W
r]UUb]"4ag5!DnmrOOdsA#Q>`8noH2P;sptULK:S6uR.T7\I?(A9"QJ]"5+?,t4;E.;`@\\9M\g
5UB7$A1ic9\d,T[A7g(pQ9YA[!gur\r430>A9(##[s))frji,d:&VX7HWR#C[CVJoW2R/9KOCOS
[/IQ?7ZWs=Q)M""\ceKoV#UIF~>
"98)aj2en;1lnZ:@XRp`!jZ*an\#]&W4fm.W08][]kJ4p]otZFBiHRZ\u,Hj"FRelOVRjZrji)W
r]UUb]"4ag5!Dnmrjjr!A7_d(a)N(Ib*Od%gOA#3^uRmM+9\4*1+]k2;bXhDES9.!)tE[bg1S\'2_
Y<aI1ULGj8qRm-CD.7.&\X5MY]`O[$V>S"4Zt+2EP.GmE]`,SFMG*o]&:IQUXgc!*9rb5(]nBgi
XLJ/A#"O]B<L0\n]"J688Yc=cJ,~>
"98)aj2enN2kRds@<K8jLP;M9[uH*2Y[)R:L7+ZfYkPg=W)Q!1PJ+YYI_EEZrOi[UW4fmU\j!"&
\nI5;\j$&'!N&'[\d1L2\j!"&\nHKj\hgs++ZMG\]4#`d5b>Z'?Z0n*?"n)a32!suZY;BbPeC%$
Kk""aBru*!Wb$Q@C5#bn>&O>Q%&nr[]Y/o'Z`.&hQotA]!h3)ar4NAg;n]h&TQjeUrk/>i9DuO9
I4.$FQ+ahe3&l2i]n\a8Ej5PV#=jffPXdcLWOohHRRs:Ss*t~>
"98)_i5iJH3Lm[l@!9,dKnH&/[#BX*Y$QC6KU89_XnTC7VGf[+Oh/,OI(HmQrON"EVZ"(35,Pp&
BT]m;55_tmVEY!j#X5i25,Pp&BRKci11DCc2c@.oEj.g"\nGMhDfoB!CplBr]"5+Y2a`b>;d+f_
;I!n8Bn!!kH9Z+r=BSmIrjiN8K;Q2jJ6]=V=H8\3rji0!;PO*##_>ja\N-4)>e0jF!JjJK\e09<
2FitB\VE+&Gd4i64@!tjrji>(O1LKD3GGD'\ceKoV#UIF~>
"98)aj2enN2kRds@<K8jLP;M9[uH*2Y[)R:L7+ZfYkPg=W)Q!1PJ+YYI_EEZrOi[UW4fmU\j!"&
\nI5;\j$&'!N&'[\d1L2\j!"&\nHKj\hgs++ZMG\]4#`d5b>Z'?Z0n*?"n)a32!suZY;BbPeC%$
Kk""aBru*!Wb$Q@C5#bn>&O>Q%&nr[]Y/o'Z`.&hQotA]!h3)ar4NAg;n]h&TQjeUrk/>i9DuO9
I4.$FQ+ahe3&l2i]n\a8Ej5PV#=jffPXdcLWOohHRRs:Ss*t~>
"98)aj2enO.T'S]AXKT9?!Ug.Z"mWLKjA7G=C#*8A$#I=!0dDq#="EcIX\uD5Q/7q5Q8=t]=JaU
4p-qY\j$&'!IQBq56&1o55Dbk]4Gs\]b.kbEjJ$&]kM;U/KhZ>CUc?sr4OGJ35&9W?!VnhBt^*'
JOR7993khV?#I?h]UN2q]Y/nX>?3eIQotA]!h3)ar4NAf.UZU5TQjeUrk/>i9DuO*I9jAZ]`C0a
rk/B2;Nq*n!Cr1L]`P]OHFpinRRs:Ss*t~>
"98)_i5iJI/5KSYA='?5>[1R)YA.<HK3i+F<aAs7A?5L:!0R8l#<n9]I!iN:55i%m55_tl(&^;u
Oh/+fr42oV.fDR2\c=qh\cHG]rji]O@</S;S[rKOT.V4qB5G";T)?/HSi=5Z5[.K@A8&QF5_DS<
5Y>9dJmWH-]"+25Qas\X3E]?CNg;p/\cS9tUAVS.J14f2.\1cg\c0/@Le[iZ!de7^qRQ\fSGp)$
V,WTV\cG9]rji0=@!fMs"IhuYs8RT~>
"98)aj2enO.T'S]AXKT9?!Ug.Z"mWLKjA7G=C#*8A$#I=!0dDq#="EcIX\uD5Q/7q5Q8=t]=JaU
4p-qY\j$&'!IQBq56&1o55Dbk]4Gs\]b.kbEjJ$&]kM;U/KhZ>CUc?sr4OGJ35&9W?!VnhBt^*'
JOR7993khV?#I?h]UN2q]Y/nX>?3eIQotA]!h3)ar4NAf.UZU5TQjeUrk/>i9DuO*I9jAZ]`C0a
rk/B2;Nq*n!Cr1L]`P]OHFpinRRs:Ss*t~>
"98)aj2enO/oH8m(a)uHm*3BJ1.X\Cl$=C#K)Y]a<a1Rn0Q$U:T']kMr/IVHL/.fI$\5Q8=u]Xg;(
rji3/]"1*)\c\h@VEY!j#c>2E5,Pp&VNLkh!k`)`rk0nq@</\>T"SiFE,Tc)UK0I)[(X/"NP1lB
]i9TrS9SCT]sE8aR(Y\M]od\IDYh$PU0r7uJp:UZ4T<"qRo6*]]`Fp'rdk]+BP(S`]r>Is9>/$@
CM@(ark/]/D8!VDS<83/Vc&`X]a%&fU2m?F@!]Gu"I_oWs8RT~>
"98)_i5iJI0l2Aj@Z-a)3'&",X%k]"=C,Q*X`[pZ2k0TR$U1H!\nHK&Ht^+&.fHpY55_tm5,S=j
"/`Z@55r+qVRiWgrjiB4]"1)&]"4c$rON#BDZ74!\7'E^5b5K"@;]t(@A$[`J$HSrH&K8*2nDq;
\XIbOBY(Hu:mS[XQ+E'(?>o\O#bYUNJ:MfLM*M!N!gur\rON$*:B#bTG%YDl\[n\JL/#7jWbcBU
[f3iGRqoUH3Ll4Y[A?ibrji>(O.gWp[:"?n\ceKoV#UIF~>
"98)aj2enO/oH8m(a)uHm*3BJ1.X\Cl$=C#K)Y]a<a1Rn0Q$U:T']kMr/IVHL/.fI$\5Q8=u]Xg;(
rji3/]"1*)\c\h@VEY!j#c>2E5,Pp&VNLkh!k`)`rk0nq@</\>T"SiFE,Tc)UK0I)[(X/"NP1lB
]i9TrS9SCT]sE8aR(Y\M]od\IDYh$PU0r7uJp:UZ4T<"qRo6*]]`Fp'rdk]+BP(S`]r>Is9>/$@
CM@(ark/]/D8!VDS<83/Vc&`X]a%&fU2m?F@!]Gu"I_oWs8RT~>
"98)aj2enO2kRds@<J+uUSsfh7?4<U>?tf,Y]a<a1Rn0Q"@#jM.THD\(+MO5.R1V158?CI]tM%T
.R$$pVRj@#r]Uj?]"*2<5!EVi\u$r@5#\?X\cTN\G5f/d]4lQ%P;adsUgfIU6G6*>\c08[Vc>$%
XM(l3-:F>BE4rrY6G:(95p]:#B6F'a'U`.&]tL7>L_h?`.toW$,r:@jS3d.f+/;r/DC-YiQ*kQW
,rM!<.4$9%TXJth-&oIDFXf1t\Gj/H;3JJA1b!LR]=e?98Yc=cJ,~>
"98)_i5iJI3Lm[l@!8&"TV\3^7$"0P>@(l-X`[pZ2k0TR"?oaJ.T?>X$7\5'.R(G+4r$7FrjiB4
.R$$pVRj@#r]Uj?]"*2<5!EVi\u$r@5#\?W\cH\krjiZNBm@+L3$ht+@#g^E\k[LZrjiuC<$aN(
\un^Q7%/.7]"4M%]"4t-,u:1JFo&Z`QX$E!\tW)X(F:@WKJ4Sr15<B26iOY=Tidh',pbO7Z>_*9
1mNM=,UGODZZ(a)E=Mmp$7.PlU_rji>2PI>ut-uuZ+\ceKoV#UIF~>
"98)aj2enO2kRds@<J+uUSsfh7?4<U>?tf,Y]a<a1Rn0Q"@#jM.THD\(+MO5.R1V158?CI]tM%T
.R$$pVRj@#r]Uj?]"*2<5!EVi\u$r@5#\?X\cTN\G5f/d]4lQ%P;adsUgfIU6G6*>\c08[Vc>$%
XM(l3-:F>BE4rrY6G:(95p]:#B6F'a'U`.&]tL7>L_h?`.toW$,r:@jS3d.f+/;r/DC-YiQ*kQW
,rM!<.4$9%TXJth-&oIDFXf1t\Gj/H;3JJA1b!LR]=e?98Yc=cJ,~>
"98)aj2enO2kRds@<JGIKnrup=*TNs>$Y]+Y]a<a1RmF<!kc.Wrjr-A!5/!<!PH&?\cKFUn@\q*
LfKal^!jXtRRs:Ss*t~>
"98)_i5iJI3Lm[l@!8AIK8*Qj<dBEp>$bc,X`[pZ2k.(`"0%#VQ%?Nq\ceKoV#UIF~>
"98)aj2enO2kRds@<JGIKnrup=*TNs>$Y]+Y]a<a1RmF<!kc.Wrjr-A!5/!<!PH&?\cKFUn@\q*
LfKal^!jXtRRs:Ss*t~>
"98)aj2enOGHJQlNL.>\?!EB&Z>!NILl7=B[[;ucFfXK7s1AEF]Y*gK!5/-=!5.d6".`YZ]7IZE
]`acqU]:@E~>
"98)_i5iJIGH8<dMjCrS>Zm&sY@q'AL5M"<Z^-KZFfM^X".NGU\Uh?@\ceKoV#UIF~>
"98)aj2enOGHJQlNL.>\?!EB&Z>!NILl7=B[[;ucFfXK7s1AEF]Y*gK!5/-=!5.d6".`YZ]7IZE
]`acqU]:@E~>
"98)aj+4o>]`GdXrON$A]Rdc/]`acqU]:@E~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4o>]`GdXrON$A]Rdc/]`acqU]:@E~>
"98)aj,:T%]8\`qEk%l/+WVkbW\YkG/9n_(EkJo06Rtp-E$QJK7D!Da]=j2<ZG!rG8H-:'8YQ-s
0ku6NRO9C-K=[7UVnK';SrZmb=!\k3A%/7/,pl^%]f[Mc-"ON_5U7X%J@.6Z-"OKA]`acqU]:@E~>
"98)_i/>/t\;W?mE4)H*+WVkbW&,_F/9nV#F1Sf-6Rts,E?cMK7(@)\\@RT4Ye%E<8,g(#8>6$o
0kc$GRO0=,J@C\NUq3F2S<6j`=<nn3@C2b),pl[!\iq;a-"aQ[5U.R$I^1dT-"=9=\ceKoV#UIF~>
"98)aj,:T%]8\`qEk%l/+WVkbW\YkG/9n_(EkJo06Rtp-E$QJK7D!Da]=j2<ZG!rG8H-:'8YQ-s
0ku6NRO9C-K=[7UVnK';SrZmb=!\k3A%/7/,pl^%]f[Mc-"ON_5U7X%J@.6Z-"OKA]`acqU]:@E~>
"98)aj,:T%UeRPrHAB2ILI]%kWCN\rZX/6V27m%;]=j>O[]!8j]t7]n]=jJ=S%Z4b<;sQ_2g_sG
VFc!)34ll;2j]LA9=^otRYaJH]rFSs]sM*s]t8Pn]/5ti]k22W8#cL$#.?ae]msarMS0.]8Yc=c
J,~>
"98)_i/>/tThV2kG_`lAM+P:iVFdGlYZu^L34W:>\@RcFZ_poe]!u0h\@Ri5R_#h[;uX?[2g_jA
UdoU"3k2c43LPgE9t$fqR#=JG\u8/l]!5Oj]"!#j\Mp"h\nGrR8Z)Ku#.$Ob\pe@mMRiq[8YlCd
J,~>
"98)aj,:T%UeRPrHAB2ILI]%kWCN\rZX/6V27m%;]=j>O[]!8j]t7]n]=jJ=S%Z4b<;sQ_2g_sG
VFc!)34ll;2j]LA9=^otRYaJH]rFSs]sM*s]t8Pn]/5ti]k22W8#cL$#.?ae]msarMS0.]8Yc=c
J,~>
"98)aj,:SPUeRQ\]b#rh]tLC8U:mm>JtP!5>'[aY]aq&CP.eJ9EkB#uQ"H),B<_BK/N+ZC]k7k"
TK'Qs]f2:;2c>m;;OWG2]tLF9U:mp?J\A[@>.ZV[]tJ#rU.;3^]`to0S\;U?H]#K>RRs:Ss*t~>
"98)_i/>/JThV3X\e']i]"4b1TXq@4J=S[1>^<jX\dt]@OLhr1Ek&]lP\#l(BW_9F/N"Q?\nMXt
SiXBm\iH1;3)l'9;j`J5]"4h2T=V:5J%E.8>e)e_]"2QlTLl$[\d#K*S[u:;H&B09Rn9FUs*t~>
"98)aj,:SPUeRQ\]b#rh]tLC8U:mm>JtP!5>'[aY]aq&CP.eJ9EkB#uQ"H),B<_BK/N+ZC]k7k"
TK'Qs]f2:;2c>m;;OWG2]tLF9U:mp?J\A[@>.ZV[]tJ#rU.;3^]`to0S\;U?H]#K>RRs:Ss*t~>
"98)aj,:SR[<>#)K`8XrLI]%kW(a)Bhl6YWNm27m%;]D]DJW)o.q]4#`lrk/E*>]?hD]f.lVCOT\Z
GG$q-]tH@kNETM"VG`k>7D6C78#!](?@ff%H!7g21dF<1US9V+6$^)N5FoL!?$hIB"I_oWs8RT~>
"98)_i/>/LZ?A`&KDrFnM+P:iVCXVi6><<f34W:>\G`uDVc]%l\7'Efrji3%?#QbA\i2QTBma>U
G+Lb)]"0niN*9J"UJmP<8%Q:18>!Ju?%9GqH!Im51d=31TV+/%5^9iG5FoBp?[7O?"IhuYs8RT~>
"98)aj,:SR[<>#)K`8XrLI]%kW(a)Bhl6YWNm27m%;]D]DJW)o.q]4#`lrk/E*>]?hD]f.lVCOT\Z
GG$q-]tH@kNETM"VG`k>7D6C78#!](?@ff%H!7g21dF<1US9V+6$^)N5FoL!?$hIB"I_oWs8RT~>
"98)aj,1Md[\fd/I_EFM8%lU86&VJ,@#CU7]39KlrOiH7=-C8/@<0!Z]`P`MI/LZ:3.Xt5@pXAP
34ll;2j]M-TP.n4RYaJH]rFSs]sM*s]t8Pn]/,,7U18MD7$47J]s^.r]t.KrMS0.]8Yc=cJ,~>
"98)_i/5)^Z_O1%I_*+I8\2L16]%J(?\k74\QjEirON63=HL,(@</mW\cT<HHMk?52hFn3@9duI
3k2c43LPh0SnDV2R#=JG\u8/l]!5Oj]"!#j\Mf/7TOiA@7?=+C]!FVl]!l$lMRiq[8YlCdJ,~>
"98)aj,1Md[\fd/I_EFM8%lU86&VJ,@#CU7]39KlrOiH7=-C8/@<0!Z]`P`MI/LZ:3.Xt5@pXAP
34ll;2j]M-TP.n4RYaJH]rFSs]sM*s]t8Pn]/,,7U18MD7$47J]s^.r]t.KrMS0.]8Yc=cJ,~>
"98)aj,:Sr\"U7D@W];sLI]%kWCN\rZX/6V27m%;]=kAD];Seo]t7]n]DfJF\QsU\]e)47LKCTa
GG$q-]tH@kNEWBe72q\P7D6C78#!](?@ff%H!7g:R_?CHDk]b$rk/NE5FoKb@>p)W"I_oWs8RT~>
"98)_i/>/l[%=V8@<B)lM+P:iVFdGlYZu^L34W:>\@S`9\>NGj]!u0h\Gj&@[U+:X\h,k4LK^``
G+Lb)]"0niN*<3`7NIkS8%Q:18>!Ju?%9GqH!Im=S%?1ED4jItrji<?5FoB\@Z$&S"IhuYs8RT~>
"98)aj,:Sr\"U7D@W];sLI]%kWCN\rZX/6V27m%;]=kAD];Seo]t7]n]DfJF\QsU\]e)47LKCTa
GG$q-]tH@kNEWBe72q\P7D6C78#!](?@ff%H!7g:R_?CHDk]b$rk/NE5FoKb@>p)W"I_oWs8RT~>
"98)aj,:T#YA%K[A<jjALI]%kWCN\rZX/6V28"ZPBP:e'\>WJl]t7];B4uk%\QsU\]a-TgT7sXY
GHGHUBI[,_NEWBkEAX,@7D6C78#!],Ipcr'@>;EOR_?CHDk]=!BP<mC0ihsrOGUXRRRs:Ss*t~>
"98)_i/>/rXD)0VA!FR9M+P:iVFdGlYZu^L34XcOAnGJ#[AR,g]!u05AS-Fr[U+:X\d16dSqXIT
G,f3SAh$o\N*<3eE&F#@8%Q:18>!K$I:$Su@"u3NS%?1ED4j!qAnIF90NMdmO,:FNRn9FUs*t~>
"98)aj,:T#YA%K[A<jjALI]%kWCN\rZX/6V28"ZPBP:e'\>WJl]t7];B4uk%\QsU\]a-TgT7sXY
GHGHUBI[,_NEWBkEAX,@7D6C78#!],Ipcr'@>;EOR_?CHDk]=!BP<mC0ihsrOGUXRRRs:Ss*t~>
"98)aj,1MPXFkhkrk05MPJ+Z<PdJ-7S#EZQ]tKSUHB,DH[[F;3]Uf%J"HKn&S#6+s!KOJb]dK>G
]s<!2HDeHXR^]u<Qa*TT]tLk<Zb=&[Nd?&8]tKE1]tL#3[#4j/"erS^H?u!8]`acqU]:@E~>
"98)_i/5)JWIfDcrjj#IP.J62P-MU,RAI-H]"3uKH&],@Z^7`(\XWSD"H9XsR\]km!K=8^\c\@p
]!20Z+JlZLR'aH1QEI3M]"583Z+@NPNHof2]"3j(]"4H)Z&&C)"eW8VH$P^3\ceKoV#UIF~>
"98)aj,1MPXFkhkrk05MPJ+Z<PdJ-7S#EZQ]tKSUHB,DH[[F;3]Uf%J"HKn&S#6+s!KOJb]dK>G
]s<!2HDeHXR^]u<Qa*TT]tLk<Zb=&[Nd?&8]tKE1]tL#3[#4j/"erS^H?u!8]`acqU]:@E~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj,gqT]<Qpkc`dG`_:-(#RRs:Ss*t~>
"98)_i/kMM\:Lg.XoZ,Je%,[O8YlCdJ,~>
"98)aj,gqT]<Qpkc`dG`_:-(#RRs:Ss*t~>
"98)aj,gqTY\&GXcq+:RcI^OY"I_oWs8RT~>
"98)_i/kMNY\8S[cq4@UcIC=S"IhuYs8RT~>
"98)aj,gqTY\&GXcq+:RcI^OY"I_oWs8RT~>
"98)aj,gqUYYmZ9OO9-kYjL&k]`acqU]:@E~>
"98)_i/kMOYZ*f;OO9-kZ0]uh\ceKoV#UIF~>
"98)aj,gqUYYmZ9OO9-kYjL&k]`acqU]:@E~>
"98)aj,gqWYZ#D'`.@s;rrVcZf@.D9RRs:Ss*t~>
"98)_i/kMQYZ5P)`I\'<rrVcYeC1u3Rn9FUs*t~>
"98)aj,gqWYZ#D'`.@s;rrVcZf@.D9RRs:Ss*t~>
"98)aj,gqXYZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)_i/kMRYZ5O]ZMoFTeGfU@mF9Ur"IhuYs8RT~>
"98)aj,gqXYZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)aj3#%>Q`7[3V45-h]`GI!rk/>lZ/`M$YZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)_i6&V8Q)D4)URJab\cK$orji,hYN*1tYZ5O]ZMoFTeGfU@mF9Ur"IhuYs8RT~>
"98)aj3#%>Q`7[3V45-h]`GI!rk/>lZ/`M$YZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)aj3#%>;2)]sH<n/S]`t)NI(d3LS)_0cYZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)_i6&V8;M2QlG[IuP\d"]KHFg[HS)_'`YZ5O]ZMoFTeGfU@mF9Ur"IhuYs8RT~>
"98)aj3#%>;2)]sH<n/S]`t)NI(d3LS)_0cYZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)aj3#%>;2)]sH<n/S]`t)<8%lSlS)_0cYZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)_i6&V8;M2QlG[IuP\d"]77_6/iS)_'`YZ5O]ZMoFTeGfU@mF9Ur"IhuYs8RT~>
"98)aj3#%>;2)]sH<n/S]`t)<8%lSlS)_0cYZ#C[ZMoFTeGfU@maoq$"I_oWs8RT~>
"98)aj3#%e;2)]sH<n(O82[6L?mdaoH6mXG]q7$$@_4Fc]n%^iI$c$&>uWD>Z#_HMGdd:Y"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)_i6&V_;M2QlG[InI7lR3I?7%FkHR<aD\t([!A%4Ie\pl7dI$c$&?W8S=Y&l3KGdI(S"gD!D
F0bdrs4%&Mo'OrU\ceKoV#UIF~>
"98)aj3#%e;2)]sH<n(O82[6L?mdaoH6mXG]q7$$@_4Fc]n%^iI$c$&>uWD>Z#_HMGdd:Y"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)aj3#%e;2)]sH<mdtFe)u[6[Wf:?s:%Q]q7-@>GF!D]qg0s6ZP6"?Z`P=Ajpi^7#prR"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)_i6&V_;M2QlG[IXrF.6TW6$dB5@9p:P\t(d=>bX-G\tORj6ZY8t?urJ:Ak$l\6AtNJ"gD!D
F0bdrs4%&Mo'OrU\ceKoV#UIF~>
"98)aj3#%e;2)]sH<mdtFe)u[6[Wf:?s:%Q]q7-@>GF!D]qg0s6ZP6"?Z`P=Ajpi^7#prR"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)aj3#%e;2)]sH<n.gH"XU)2IpBFDHaN_]q70pN`mQpS7lJ;4*!Bo?Z`P=AisF3EMrKC"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)_i6&V_;M2QlG[ItaH"XO(2.C*@DdBc^\t(gkN`mTqRqH564**El?urJ:Aj'F1Dl!';"gD!D
F0bdrs4%&Mo'OrU\ceKoV#UIF~>
"98)aj3#%e;2)]sH<n.gH"XU)2IpBFDHaN_]q70pN`mQpS7lJ;4*!Bo?Z`P=AisF3EMrKC"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)aj3#%e;2)]sH<mauNIk5MA@nsWB3MdX]q70q]g<:"J7#[^=)p@6?Z`P=AmM[GFIMm9"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)_i6&V_;M2QlG[IUsN.P)LA%8RQBO/$W\t(gl\j6msJ6oLX=*$C3?urJ:AmV[CEgZO2"gD!D
F0bdrs4%&Mo'OrU\ceKoV#UIF~>
"98)aj3#%e;2)]sH<mauNIk5MA@nsWB3MdX]q70q]g<:"J7#[^=)p@6?Z`P=AmM[GFIMm9"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)aj3#%e[88.q<iNa+9K0/bAg]F)JS2L+]q\*2]sL+u\U#eP1j_m-CONNdSpDtCJ%G<d"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)_i6&V_ZVMkn<N!C#90')]AL97'JS;I&\tM^,]!4\r[WsAJ1jhm)COE?_SpDtCJ%,*^"gD!D
F0bdrs4%&Mo'OrU\ceKoV#UIF~>
"98)aj3#%e[88.q<iNa+9K0/bAg]F)JS2L+]q\*2]sL+u\U#eP1j_m-CONNdSpDtCJ%G<d"gCpB
F0bdrs4%&Mo'Y,Y]`acqU]:@E~>
"98)aj351;]V54Q!2@cP"L(gATZ_ode,KL?maoq$"I_oWs8RT~>
"98)_i68b5\Y/hK!2%QJ"L(mCTZ_ode,KL?mF9Ur"IhuYs8RT~>
"98)aj351;]V54Q!2@cP"L(gATZ_ode,KL?maoq$"I_oWs8RT~>
"98)aj351;]9N2%!0tjC!jGU?JcF-t!qPd2e%GmQ8Yc=cJ,~>
"98)_i68b5\Wco!!0b^>!jG[AJcF-t!qPa.e%,[O8YlCdJ,~>
"98)aj351;]9N2%!0tjC!jGU?JcF-t!qPd2e%GmQ8Yc=cJ,~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)_i/kMOYZ5Oks3^iJo'OrU\ceKoV#UIF~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)_i/kMOYZ5Oks3^iJo'OrU\ceKoV#UIF~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)aj,gqUY\9,Lp!NF6m-WER]`acqU]:@E~>
"98)_i/kMOY\K8Np!NF6m-W<O\ceKoV#UIF~>
"98)aj,gqUY\9,Lp!NF6m-WER]`acqU]:@E~>
"98)aj,gqT^<;)rcgLo,f@.D9RRs:Ss*t~>
"98)_i/kMN]ZbrqcgLo+eC1u3Rn9FUs*t~>
"98)aj,gqT^<;)rcgLo,f@.D9RRs:Ss*t~>
"98)aj,gqT_9db\cd;d>`RDL'RRs:Ss*t~>
"98)_i/kMM^4FSTc2l2,e%,[O8YlCdJ,~>
"98)aj,gqT_9db\cd;d>`RDL'RRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj,gqS\Ug^)VuaTMe%GmQ8Yc=cJ,~>
"98)_i/kMM[t1I&VZFEGe%,[O8YlCdJ,~>
"98)aj,gqS\Ug^)VuaTMe%GmQ8Yc=cJ,~>
"98)aj,gqTY[`5Hco_ABe(<'^"I_oWs8RT~>
"98)_i/kMNY[i;JcohGEe'ujX"IhuYs8RT~>
"98)aj,gqTY[`5Hco_ABe(<'^"I_oWs8RT~>
"98)aj,gqUYYn)EXO4*N_<ok']`acqU]:@E~>
"98)_i/kMOYZ+5GXO4*N_X,e$\ceKoV#UIF~>
"98)aj,gqUYYn)EXO4*N_<ok']`acqU]:@E~>
"98)aj3#%8[JmB2[(PA2!OKE,]`PE:D1V`7rrVcZf@.D9RRs:Ss*t~>
"98)_i6&V2Zi7'-ZFSr*!O90'\cT*9D1V`7rrVcYeC1u3Rn9FUs*t~>
"98)aj3#%8[JmB2[(PA2!OKE,]`PE:D1V`7rrVcZf@.D9RRs:Ss*t~>
"98)aj3#%>;'e"S;OG,V]`C$`n%Ae,;f.*cdJj:=maoq$"I_oWs8RT~>
"98)_i6&V8;C+(R:mSZO\cFg]n%&S)<Gd<edJj:=mF9Ur"IhuYs8RT~>
"98)aj3#%>;'e"S;OG,V]`C$`n%Ae,;f.*cdJj:=maoq$"I_oWs8RT~>
"98)aj3#%>;2)]sH<n/B]`C$`n%Ae,;f.*cdJj:=maoq$"I_oWs8RT~>
"98)_i6&V8;M2QlG[Iu?\cFg]n%&S)<Gd<edJj:=mF9Ur"IhuYs8RT~>
"98)aj3#%>;2)]sH<n/B]`C$`n%Ae,;f.*cdJj:=maoq$"I_oWs8RT~>
"98)aj3#%_;2)]sH<mdl5Z,)*H9nC@O\:5.GGCaJ]kjC;;a>]5B2Ysp5X63Zn%Ae,;f.*cdJj:=
maoq$"I_oWs8RT~>
"98)_i6&VY;M2QlG[IXj5>el#GsJ.9O@t))GG:[G\n[k1;*TH1B2bso5<g$Un%&S)<Gd<edJj:=
mF9Ur"IhuYs8RT~>
"98)aj3#%_;2)]sH<mdl5Z,)*H9nC@O\:5.GGCaJ]kjC;;a>]5B2Ysp5X63Zn%Ae,;f.*cdJj:=
maoq$"I_oWs8RT~>
"98)aj3#%_;&^f-;PLb!R"@hW@\->E?]\f4<0`;3\3bmGNhTup;hCB,U7s?6n%Ae,;f.*cdJj:=
maoq$"I_oWs8RT~>
"98)_i6&VY;B-u/:nY:mQ%;DR@@Ku@?B/T3<Ki;2[6]ICN1a]n<.U?*TV+'1n%&S)<Gd<edJj:=
mF9Ur"IhuYs8RT~>
"98)aj3#%_;&^f-;PLb!R"@hW@\->E?]\f4<0`;3\3bmGNhTup;hCB,U7s?6n%Ae,;f.*cdJj:=
maoq$"I_oWs8RT~>
"98)aj3#%9;2+t^+e):^-o8PWD6pp6?_aMuGr'VL5_DLu]jtALPEeDH]f)MO]`PE:D1V`7rrVcZ
f@.D9RRs:Ss*t~>
"98)_i6&V3;M4qZ+dl1\-Si8PDR$d2@A'GsGW'\M5Cu@r\n5/JOcr#@\iH;L\cT*9D1V`7rrVcY
eC1u3Rn9FUs*t~>
"98)aj3#%9;2+t^+e):^-o8PWD6pp6?_aMuGr'VL5_DLu]jtALPEeDH]f)MO]`PE:D1V`7rrVcZ
f@.D9RRs:Ss*t~>
"98)aj3#%9;2+t^+^oN,Si3%&F`*Y0M.;Qh?u2*4=Hu=J]jtALPEeDH]f)MO]`PE:D1V`7rrVcZ
f@.D9RRs:Ss*t~>
"98)_i6&V3;M4qZ+^fK)Rl6[uF`!P+LLZ<e?u2'4=Hl:H\n5/JOcr#@\iH;L\cT*9D1V`7rrVcY
eC1u3Rn9FUs*t~>
"98)aj3#%9;2+t^+^oN,Si3%&F`*Y0M.;Qh?u2*4=Hu=J]jtALPEeDH]f)MO]`PE:D1V`7rrVcZ
f@.D9RRs:Ss*t~>
"98)aj3#%9;2+t^+d5nn2`%166[,8B7pr'`6F"+(FgZKf6X>[QPHJF`6Q)Nb]`PE:D1V`7rrVcZ
f@.D9RRs:Ss*t~>
"98)_i6&V3;M4qZ+d#ek2_q%16?Sr=7UVm]6Edq(GI)Nd6!oRPOfN"Y5oQ9^\cT*9D1V`7rrVcY
eC1u3Rn9FUs*t~>
"98)aj3#%9;2+t^+d5nn2`%166[,8B7pr'`6F"+(FgZKf6X>[QPHJF`6Q)Nb]`PE:D1V`7rrVcZ
f@.D9RRs:Ss*t~>
"98)aj3,+;\YQ>+[3E,mWh?#_]rds:]sFH:]st)S]reTR\"o\"\uiHTZCmka\F7*4YZ#Cis3^iJ
o'Y,Y]`acqU]:@E~>
"98)_i6/\5\"]o%Z6H]dW1BKU\uVC0]!.j/]!eNH\uW'H[%a+l\#ZmIYaq>W[I:[.YZ5Oks3^iJ
o'OrU\ceKoV#UIF~>
"98)aj3,+;\YQ>+[3E,mWh?#_]rds:]sFH:]st)S]reTR\"o\"\uiHTZCmka\F7*4YZ#Cis3^iJ
o'Y,Y]`acqU]:@E~>
"98)aj351;]6sN.!GK*j]`PE:D1V`7rrVcZf@.D9RRs:Ss*t~>
"98)_i68b5\:"3+!GK$h\cT*9D1V`7rrVcYeC1u3Rn9FUs*t~>
"98)aj351;]6sN.!GK*j]`PE:D1V`7rrVcZf@.D9RRs:Ss*t~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)_i/kMOYZ5Oks3^iJo'OrU\ceKoV#UIF~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)_i/kMOYZ5Oks3^iJo'OrU\ceKoV#UIF~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)_i/kMOYZ5Oks3^iJo'OrU\ceKoV#UIF~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)_i/kMOYZ5Oks3^iJo'OrU\ceKoV#UIF~>
"98)aj,gqUYZ#Cis3^iJo'Y,Y]`acqU]:@E~>
"98)aj,gqUY]$(`n^6k.lL!3P]`acqU]:@E~>
"98)_i/kMOY]64bn^6k.lL!*M\ceKoV#UIF~>
"98)aj,gqUY]$(`n^6k.lL!3P]`acqU]:@E~>
"98)aj,gqT_:O8/cgh,1f@.D9RRs:Ss*t~>
"98)_i/kMN^Xn&.cgq21eC1u3Rn9FUs*t~>
"98)aj,gqT_:O8/cgh,1f@.D9RRs:Ss*t~>
"98)aj,gqS^OaMPaT9K"e%GmQ8Yc=cJ,~>
"98)_i/kMM]Re,K`rX2pe%,[O8YlCdJ,~>
"98)aj,gqS^OaMPaT9K"e%GmQ8Yc=cJ,~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj351:\bN<.Zc%F.J\CHa"I_oWs8RT~>
"98)_i68b4[eQp)Z,)"&J\(6["IhuYs8RT~>
"98)aj351:\bN<.Zc%F.J\CHa"I_oWs8RT~>
"98)aj351;VdK9i"&P6H^Oa(L^$`Q:RRs:Ss*t~>
"98)_i68b5V.'3j"&bEH]RdYF]'d-4Rn9FUs*t~>
"98)aj351;VdK9i"&P6H^Oa(L^$`Q:RRs:Ss*t~>
"98)aj351=VEe+Gr0IMYch"pM]`Y!79o&&J!K`-:]`G-Of"D=!L6oTdQ@ZZb]a(*][CrYgR;Iqs
"I_oWs8RT~>
"98)_i68b7UdA%Gr0IMXcLALF\c\U09SMfD!K`'8\cJ^If")*pKU03[Q%6E^\d+[VZF[)^Qu.ho
"IhuYs8RT~>
"98)aj351=VEe+Gr0IMYch"pM]`Y!79o&&J!K`-:]`G-Of"D=!L6oTdQ@ZZb]a(*][CrYgR;Iqs
"I_oWs8RT~>
"98)aj351=VEg4?r;Qlsmdn3m]`kK=L6Z+rn%Ak4>GZ@Nrk/?@U"6m^[U=Ns]s"BI_S$20>d(i7
9q7mT]`OC:Z';p)RRs:Ss*t~>
"98)_i68b7UdC.?r;Qlrm-q[e\co*9KTfhpn%&Y.>,64Lrji-:T@URXZX8-l\uhgF\d*ppXh(0"
S"BSi!g7N*Pe%!e8YlCdJ,~>
"98)aj351=VEg4?r;Qlsmdn3m]`kK=L6Z+rn%Ak4>GZ@Nrk/?@U"6m^[U=Ns]s"BI_S$20>d(i7
9q7mT]`OC:Z';p)RRs:Ss*t~>
"98)aj351=VEg4?r;Qlsmdn3m]bIA8UV4=Q]ssW%X1b=<]s"NJV4+.X]a_;/N,<('T<u)(]r7F0
rk3TVR[Tk^]rIQo\%Sr8Ye@N9VnJq8[Apd=YIL9qVnK"!\$DTj;16-kZ)ah/TV]34]ssuMZDtU6
R\[HqXhD6@Z^S#/]sOE#SZf`9S=6Om\t>h0];V@0[AU^9[C3'FXI>ch[[X;0URH(&YJ$W(SYWru
S%"2LS<U\iRRs:Ss*t~>
"98)_i68b7UdC.?r;Qlrm-q[e\eLu5TXq\E]![uoWOeh2\ui!@UR7\Q\dbo*Mf*"$S[#Ps\u(n'
rjmBQR$aGU\u1pc[CWH/Xh(m.V7NG.ZDb74XL4[fUq3@k['-!_;16$eYGe;%SYER(]!\BBYG\t+
R%^pgX1G^5YaDH%]!@loR]X0/R@'tb\"0;&\>>b&Z_Y1.ZEpI;WgK?_Z^@]&TpTY!Xh(0"S"dKl
R'h`GRZtAdRn9FUs*t~>
"98)aj351=VEg4?r;Qlsmdn3m]bIA8UV4=Q]ssW%X1b=<]s"NJV4+.X]a_;/N,<('T<u)(]r7F0
rk3TVR[Tk^]rIQo\%Sr8Ye@N9VnJq8[Apd=YIL9qVnK"!\$DTj;16-kZ)ah/TV]34]ssuMZDtU6
R\[HqXhD6@Z^S#/]sOE#SZf`9S=6Om\t>h0];V@0[AU^9[C3'FXI>ch[[X;0URH(&YJ$W(SYWru
S%"2LS<U\iRRs:Ss*t~>
"98)aj351=VEg4?r;Qlsmdn3m]bdn_DfqM^]rOq!>G*dA]lIJ=<(KoH]tJp%.pldP=%m\!31O)A
G-JZm<%^^8MS4@.:4J[C95C&B8QVBDR#tLM?Y4md86D6H6'uRa750/']6dXN<)6MO\@nP*UOlI.
<Cg#B@;!9H3/&B-]=j1Z5tYmjW_GuiUOPs;NKI:9Fc8`%7?<^2LgWbKFc[GhN_r>'9s;5<ThU%o
S68C+I5,fUQ+[<h8Yc=cJ,~>
"98)_i68b7UdC.?r;Qlrm-q[e\ehJYD0))U\u8@o>b<pD\oD/:<C]oE]"3Br.pcdP=\Nk!3gs2B
GcnWg<\6g:Lq7k&9n&FA8o0u@86;0BQB#(F@VC?i7p)*E5aZLa6nj&#\U7ON<DHMM[CVu&Tmp"'
<(Bi?@qiNG3eJK-\@RVS5Y>ggVbBQcTm][9Mih(7FH&Z!7$3^4LgikKFH.5eN`8M(:9D)8TM9tr
RT`4*I55fQQ+@*f8YlCdJ,~>
"98)aj351=VEg4?r;Qlsmdn3m]bdn_DfqM^]rOq!>G*dA]lIJ=<(KoH]tJp%.pldP=%m\!31O)A
G-JZm<%^^8MS4@.:4J[C95C&B8QVBDR#tLM?Y4md86D6H6'uRa750/']6dXN<)6MO\@nP*UOlI.
<Cg#B@;!9H3/&B-]=j1Z5tYmjW_GuiUOPs;NKI:9Fc8`%7?<^2LgWbKFc[GhN_r>'9s;5<ThU%o
S68C+I5,fUQ+[<h8Yc=cJ,~>
"98)aj351=VEg4?r;Qlsmdn3l]kXQlD.&L>XB/1DFa.VWB8TYG:d@:Z]sC"rE^6+e7YEah=e15L
]t@Zr]pq'qJ5J`sKk6"'R<*/7QTU4=?%6*\;3eb<>="C9;5Ud0ID*7>=@cDqL0_$sTLYc/<)&4_
LK@Pi]q@?>:&_g^NEWBe?&#C[:F1=4CQb!DAWDY+6A8lPJPfKU]qS#M4M=7?]n]jr]qJ/N1mhI:
KR@%-Pe@3g8Yc=cJ,~>
"98)_i68b7UdC.?r;Qlrm-q[d\n\-dCLN=9WDu\?GBdkYAr0GD:Hq(T]!4PmF$Q1d8V9'i>+:2I
]")0l\t(glIS`EpKk?%&QZHo1PWk";?@H3a;j=e9?9sX9<2?j-ICct:=\)PpKO(alT1Yf,;bi+Z
LK[kq\t1s::B%g\N*<3`?%f1U:*k72ClssAA;l;&6A8lRJl>i^\tDWI5IsFC\qOFl\tDcK2j[a;
K7$q)Pe%!e8YlCdJ,~>
"98)aj351=VEg4?r;Qlsmdn3l]kXQlD.&L>XB/1DFa.VWB8TYG:d@:Z]sC"rE^6+e7YEah=e15L
]t@Zr]pq'qJ5J`sKk6"'R<*/7QTU4=?%6*\;3eb<>="C9;5Ud0ID*7>=@cDqL0_$sTLYc/<)&4_
LK@Pi]q@?>:&_g^NEWBe?&#C[:F1=4CQb!DAWDY+6A8lPJPfKU]qS#M4M=7?]n]jr]qJ/N1mhI:
KR@%-Pe@3g8Yc=cJ,~>
"98)aj351=VEg4?r;Qlsmdn3i]k:YjVH8_<7!5P!@pc?B@?QhJ]tLa<SoSATTLOSo]q\2q]tM'b
GeKV*Hsr+d7\QhmKY=g:@_FmW7q#e.=&G6pG[!IrPYn<d@"#`#HWWgr]nTgs]q@ljJlGI$]n]Zj
B>'rtL/%Z\1Q>S=Y[)*GNfZYU[t/4p]9Z]mO[32r1NH>o?bN1(KKQq<LV8IJYJ$W(J2P$98u.8J
Y*?U&RRs:Ss*t~>
"98)_i68b7UdC.?r;Qlrm-q[a\n>GkV,iJ77X(h$A6u9>@ZZ\C]"5.4So\DQT1OYs\tM]k]"5FZ
GIj>'Ht&+a7\H\hKY"L5@_+dV8Rc%3>#UZqG@!RrP>n?a?[]MrHs'!u\qF@l\t;TgIoB*t\qaHm
BtBlsKhhWY1Q5M:Y$GmEN/pDS[=Dqk\<L<iP!NDu2KVl$@_/4(K0Qq=M7SCHXh(0"JN1688Yh/I
X-C0uRn9FUs*t~>
"98)aj351=VEg4?r;Qlsmdn3i]k:YjVH8_<7!5P!@pc?B@?QhJ]tLa<SoSATTLOSo]q\2q]tM'b
GeKV*Hsr+d7\QhmKY=g:@_FmW7q#e.=&G6pG[!IrPYn<d@"#`#HWWgr]nTgs]q@ljJlGI$]n]Zj
B>'rtL/%Z\1Q>S=Y[)*GNfZYU[t/4p]9Z]mO[32r1NH>o?bN1(KKQq<LV8IJYJ$W(J2P$98u.8J
Y*?U&RRs:Ss*t~>
"98)aj351=VEg4?r;Qlsmdn3m]ka]ON1F=(Uf*JI8ThV.<i*9(a)F.Itd]tLgMO`"^CTLOSnG\NF9
U:n3DA=\HKG[d+t88Mas@<bP4BQ^gHR_!EKVd=tFDeqb&Rot`;;gl?kHWWgr]nTgs]tBjY:qC%]
SU"aZ@uNVpL/%Z\1Q>1jP[JW1R%$Zo:PNk,Ch\Z(YBX6]X[J_,?_**SLHN7SGb&eUYJ$W(J2;C^
QV2X4TTm+mRRs:Ss*t~>
"98)_i68b7UdC.?r;Qlrm-q[e\ne9IMOS%&UJ[5D96[n-=/3-<F.7b_]"51CO`+a@T1OYqG&!48
U:Rm@A"/9JG[m.r88Mdr@X(_5B61IAR^d3FVI4tCDJ__$R9PW8;LQ-eHs'!u\qF@l]"+4P;7BqY
Rs8O[A;`YrKhhWY1Q5+gP@8T0Q'k6l:5<h+D/+c&XERpYW^E8'@[i3SL-N7SH^enUXh(0"JMq^c
PtZI2Ss6ehRn9FUs*t~>
"98)aj351=VEg4?r;Qlsmdn3m]ka]ON1F=(Uf*JI8ThV.<i*9(a)F.Itd]tLgMO`"^CTLOSnG\NF9
U:n3DA=\HKG[d+t88Mas@<bP4BQ^gHR_!EKVd=tFDeqb&Rot`;;gl?kHWWgr]nTgs]tBjY:qC%]
SU"aZ@uNVpL/%Z\1Q>1jP[JW1R%$Zo:PNk,Ch\Z(YBX6]X[J_,?_**SLHN7SGb&eUYJ$W(J2;C^
QV2X4TTm+mRRs:Ss*t~>
"98)aj351=Vdun!r::$\lLVdh]b@&>7>&:eW_GoNOM%B:YJ%,T7:6#,7&G9[KtXL,R;'?W8?';9
]MpFN<kZ1m7R^gfM,02GWCh3E]kOFYN/#$G>t/hIE1st3;FOHI]tBPWF.L"5J@3)(Si?Y^$>2e=
XM&jWLhN6#rk1.J0gABm]rF[n7?XlVCTt9i<MR3iI_3",WkF!Q<hZC,]tIrF7<#WIX*0eA]luuF
]omrZQ+[<h8Yc=cJ,~>
"98)_i68b7V.Qh!r::$[l0u@a\eCZ77"Mq\W(TNHO1Cs2Xh(WL6sfi'7&5*XK=\%&QYF$R8>s,2
\Q14K<k>ke77:UbM,')BVb2!@\nJ"QM1iI>>X`SBDP+M+;FF?F]"+#PEh'_.J$QYsS2UAX$>)\9
Wk*=OLM<-!rjjqF0g89j\u/+f7$4WRCTb$b<M?sbJ%;k&W4IRK<M#t%]"2E?6u]HCWcaV?\p$WB
\rV<NQ+@*f8YlCdJ,~>
"98)aj351=Vdun!r::$\lLVdh]b@&>7>&:eW_GoNOM%B:YJ%,T7:6#,7&G9[KtXL,R;'?W8?';9
]MpFN<kZ1m7R^gfM,02GWCh3E]kOFYN/#$G>t/hIE1st3;FOHI]tBPWF.L"5J@3)(Si?Y^$>2e=
XM&jWLhN6#rk1.J0gABm]rF[n7?XlVCTt9i<MR3iI_3",WkF!Q<hZC,]tIrF7<#WIX*0eA]luuF
]omrZQ+[<h8Yc=cJ,~>
"98)aj351;^t8DP!qZ-#rk/;ErDN`(SD_'^]O#j2]`YTb<-@]D!f^BaJ\C*W"I_oWs8RT~>
"98)_i68b5^=W2Ns766'rji)@rD<T$Rc(aY\R0R/\c]0Z<-.Q?!fU<^J\'mQ"IhuYs8RT~>
"98)aj351;^t8DP!qZ-#rk/;ErDN`(SD_'^]O#j2]`YTb<-@]D!f^BaJ\C*W"I_oWs8RT~>
"98)aj351:_Y;:UbJ*th!1<_H!L9kG]`G"4d_,anT9ctU]`PI8\UhHS]`acqU]:@E~>
"98)_i68b4^\>nPaLhG_!1*SC!L'VB\cJV,d^fOhSWpMN\cT(1[Xl$M\ceKoV#UIF~>
"98)aj351:_Y;:UbJ*th!1<_H!L9kG]`G"4d_,anT9ctU]`PI8\UhHS]`acqU]:@E~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4nc]`P*#.)de?-kT>G]`HaX`:a8cDj'q0"I_oWs8RT~>
"98)_i.8J]\cS]r-cIY=-kT;F\cL=R`:a8cDia_*"IhuYs8RT~>
"98)aj+4nc]`P*#.)de?-kT>G]`HaX`:a8cDj'q0"I_oWs8RT~>
"98)aj+4nc]`Y-:c1T-L"7NW,8asCpg$RD2df\!Z6B:lT"I_oWs8RT~>
"98)_i.8J]\cSX3cGoMZn$``sn@A\Om+B>,"4<5sN;:$fRn9FUs*t~>
"98)aj+4nc]`Y-:c1T-L"7NW,8asCpg$RD2df\!Z6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:akFe["2/[[8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b1an["28g^8FX1lea(At\c]I!6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:akFe["2/[[8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b14PD"0ZYL8FX1lea(At\c]I!6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:ajfRg!4Mm*#J.UVZb<rS]'I$3Y\j_<n@\nVm)nh2"L4o(Xh*l4!Ns!)]`Ym%
6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b15af$aZ\+VRO.BYe%<H\*LU-YAab<n@A\OlcS_."KnStX1.H,!N`d%\c]I!
6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:ajfRg!4Mm*#J.UVZb<rS]'I$3Y\j_<n@\nVm)nh2"L4o(Xh*l4!Ns!)]`Ym%
6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:ajfUh%'aG,4$A/$FCMb<@'&\-"0cYK8asCpg$HlP]a)3E=?AT<N4A8g!BQ_A
]`Ym%6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b15dg%'F;*3]qnsFCDS7@&`J'"0ZYL8FX1lea(BK\d,d>=Z\Z<Mm_r`!BQbB
\c]I!6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:ajfUh%'aG,4$A/$FCMb<@'&\-"0cYK8asCpg$HlP]a)3E=?AT<N4A8g!BQ_A
]`Ym%6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:ajfUh$^a&i]s^.rFC9c;V<Y_rY\j_<n@\nVm)nn4#J+P]]"Oo![I(X.3h,`S
"1s=TNqp?kRRs:Ss*t~>
"98)_i.8J]\c\^4b15dg$^O#g]!FVlFC0Z8U[#DmYAab<n@A\OlcSe0#InG]\@SDmZL,4(3h5fQ
"1X1RN;:$fRn9FUs*t~>
"98)aj+4nc]`Y-:ajfUh$^a&i]s^.rFC9c;V<Y_rY\j_<n@\nVm)nn4#J+P]]"Oo![I(X.3h,`S
"1s=TNqp?kRRs:Ss*t~>
"98)aj+4nc]`Y-:ajfUh$CErh]s^.rF=1_#l+I2'D?ri']`QmRb4<4J\n>]frOiqd3)$3<Cj%h7
]oGKFLV9WO3-r1tS+F;q]8&_5q7Qp"8Yc=cJ,~>
"98)_i.8J]\c\^4b15dg$C3of]!FVlF=1b"l+-u#E!T#(\cUFJb4<+G\7fTdrON__2bKm5CihY2
\rB'@LUs<H3-i"pSFa;o\;<M1q76]u8YlCdJ,~>
"98)aj+4nc]`Y-:ajfUh$CErh]s^.rF=1_#l+I2'D?ri']`QmRb4<4J\n>]frOiqd3)$3<Cj%h7
]oGKFLV9WO3-r1tS+F;q]8&_5q7Qp"8Yc=cJ,~>
"98)aj+4nc]`Y-:ajfUh$CErh]s^.rF;JZ"l+I2'D?ri']`QmRb4<4J\n>]frOirER".DU%rJ:4
G?gW3Blch,Q;;ogS+F;q]8&_5q7Qp"8Yc=cJ,~>
"98)_i.8J]\c\^4b15dg$C3of]!FVlF;J`"l+-u#E!T#(\cUFJb4<+G\7fTdrON`?Q%2/R%r8%.
F^(9,Blln+PYllhSFa;o\;<M1q76]u8YlCdJ,~>
"98)aj+4nc]`Y-:ajfUh$CErh]s^.rF;JZ"l+I2'D?ri']`QmRb4<4J\n>]frOirER".DU%rJ:4
G?gW3Blch,Q;;ogS+F;q]8&_5q7Qp"8Yc=cJ,~>
"98)aj+4nc]`Y-:ajfUh$^a&i]s^.rFC962Y3N\&Y\j_<n@\nVm)nn4"1i,Y])KAYUfo`1,)8e(
]f9q5WkH*</N#LIM`I9u]`Ym%6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b15dg$^O#g]!FVlFC000XQmA!YAab<n@A\OlcSe0"1W#Y\Gj&TUKKN.-&#"'
\i4J-Vn0I2/MoCFM`@6u\c]I!6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:ajfUh$^a&i]s^.rFC962Y3N\&Y\j_<n@\nVm)nn4"1i,Y])KAYUfo`1,)8e(
]f9q5WkH*</N#LIM`I9u]`Ym%6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:ajfUh%%'/j]s^.rFCMV*D6`E?"0cYK8asCpg$HlP]cF[sBY(mQNF?Y:S2c9r
]tHCD=fSrkJjQcUMjcYqo=Y7<LI.$s]`acqU]:@E~>
"98)_i.8J]\c\^4b15dg%$j,h]!FVlFCDJ'Cp**8"0ZYL8FX1lea(BK\fJ:oBt1aKMdpM5S2u?s
]"0h;=/WHcJjHTNMjZSqo=>%6M*[*r\ceKoV#UIF~>
"98)aj+4nc]`Y-:ajfUh%%'/j]s^.rFCMV*D6`E?"0cYK8asCpg$HlP]cF[sBY(mQNF?Y:S2c9r
]tHCD=fSrkJjQcUMjcYqo=Y7<LI.$s]`acqU]:@E~>
"98)aj+4nc]`Y-:ajfUh%'aG,4$A/$FCMqjKj!`T"0cYK8asCpg$HlP]cFb[=?AT<N1O680I)?F
]tHCdE'QU&U4PTj>bsKNo=Y7<LI.$s]`acqU]:@E~>
"98)_i.8J]\c\^4b15dg%'F;*3]qnsFCDbdKNIKN"0ZYL8FX1lea(BK\fJ>T=Z\Z<Mk+!30I;EG
]"0h[Da6L&TRf9f?)0KNo=>%6M*[*r\ceKoV#UIF~>
"98)aj+4nc]`Y-:ajfUh%'aG,4$A/$FCMqjKj!`T"0cYK8asCpg$HlP]cFb[=?AT<N1O680I)?F
]tHCdE'QU&U4PTj>bsKNo=Y7<LI.$s]`acqU]:@E~>
"98)aj+4nc]`Y-:ajfRg!4Mm*#J.UVZb=&`Y3Wb'Y\j_<n@\nVm)nh2)mQ??Xh)3NW2Qc+Ye@`Q
\[AH:[(X&MW3X+>\b!K:]8&_5q7Qp"8Yc=cJ,~>
"98)_i.8J]\c\^4b15af$aZ\+VRO.BYe%ETX6[>!YAab<n@A\OlcS_.)m6$6X1,[CV5:,tXh)*E
[^2m/ZF[NBV6IP4\+@05\;<M1q76]u8YlCdJ,~>
"98)aj+4nc]`Y-:ajfRg!4Mm*#J.UVZb=&`Y3Wb'Y\j_<n@\nVm)nh2)mQ??Xh)3NW2Qc+Ye@`Q
\[AH:[(X&MW3X+>\b!K:]8&_5q7Qp"8Yc=cJ,~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b14PD"0ZYL8FX1lea(At\c]I!6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b14PD"0ZYL8FX1lea(At\c]I!6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^4b14PD"0ZYL8FX1lea(At\c]I!6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-:ajeAE"0cYK8asCpg$Hl$]`Ym%6B:lT"I_oWs8RT~>
"98)aj+4nc]`Y-7Z@']7"*7ZP8asCpg$-Do\-'0n6B:lT"I_oWs8RT~>
"98)_i.8J]\c\^2Y^XW9"*@iT8FX1le`ark[0*dj6&bWN"IhuYs8RT~>
"98)aj+4nc]`Y-7Z@']7"*7ZP8asCpg$-Do\-'0n6B:lT"I_oWs8RT~>
"98)aj+4nc]`Fuh_Z0]=8aj=mNl4lu9fJ+.]`acqU]:@E~>
"98)_i.8J]\cJQa_Z0]=8FX1k]8X[/!_t\5q76]u8YlCdJ,~>
"98)aj+4nc]`Fuh_Z0]=8aj=mNl4lu9fJ+.]`acqU]:@E~>
"98)aj+4nc]`GB\_cQqBJ+1,PP[21/!G8/']`acqU]:@E~>
"98)_i.8J]\cJsU_c?e?IIOfKP?c"+!G%o"\ceKoV#UIF~>
"98)aj+4nc]`GB\_cQqBJ+1,PP[21/!G8/']`acqU]:@E~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)_i.8Ij\u`IGRn9FUs*t~>
"98)aj+4mp]r\mMRRs:Ss*t~>
"98)K\UgB(T<+XfMFjTCs*t~>
"98)K\:L6&SueLdMb0`Es*t~>
"98)K\UgB(T<+XfMFjTCs*t~>
"96eU0nCp-/ZUH*.AQqCJ,~>
"96hW14_'//upT,.]!+EJ,~>
"96eU0nCp-/ZUH*.AQqCJ,~>
!rqi?J^&bjWm(XnmJm3:~>
!rqi@J^&bjWm(XnmJm3:~>
!rqi?J^&bjWm(XnmJm3:~>
%%EndData
showpage
%%Trailer
end
%%EOF
--- fedora-proxy-guide-en.xml DELETED ---
18 years, 10 months
usb-hotplug usb-hotplug-tutorial-en.xml,1.4,1.5
by fedora-docs-commits@redhat.com
Author: pfrields
Update of /cvs/docs/usb-hotplug
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14139
Modified Files:
usb-hotplug-tutorial-en.xml
Log Message:
Entity changes, tag cleanup, legacy notice added
Index: usb-hotplug-tutorial-en.xml
===================================================================
RCS file: /cvs/docs/usb-hotplug/usb-hotplug-tutorial-en.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- usb-hotplug-tutorial-en.xml 18 Jun 2005 13:47:18 -0000 1.4
+++ usb-hotplug-tutorial-en.xml 24 Jun 2005 20:29:54 -0000 1.5
@@ -5,14 +5,14 @@
<!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../docs-common/common/fedora-entities-en.ent">
%FEDORA-ENTITIES-EN;
-<!ENTITY BOOKID "usb-hotplug-tutorial-0.52 (2004-10-14)"> <!-- change version of manual and date here -->
-<!ENTITY LOCAL-FCVER "2"> <!-- Immovable version -->
+<!ENTITY BOOKID "usb-hotplug-tutorial-0.53 (2005-06-24)"> <!-- change version of manual and date here -->
+<!ENTITY FCLOCALVER "2"> <!-- Immovable version -->
+<!ENTITY BUG-NUM "128952"> <!-- Bugzilla entry for this document -->
]>
<article id="usb-hotplug-tutorial" lang="en">
<articleinfo>
<title><command>usb-hotplug</command> Tutorial</title>
- <subtitle>&FC; 1 and 2</subtitle>
<copyright>
<year>
2003, 2004
@@ -50,19 +50,27 @@
<revremark>Style and syntax edits by Wade, finished by
Frields, edits by tfox before publication.</revremark>
</revision>
+ <revision>
+ <revnumber>0.53</revnumber>
+ <date>Jun 24 2005</date>
+ <authorinitials>PaulWFrields</authorinitials>
+ <revremark>Added legacy notice, changed entities, and fixed
+ section tags</revremark>
+ </revision>
</revhistory>
</articleinfo>
- <sect1 id="s1-introduction">
+ <section id="sn-introduction">
<title>Introduction</title>
+ &LEGACYNOTICE;
<important>
<title>Important</title>
<para>
- This document is intended for users of &FC; &LOCAL-FCVER; (or previous
+ This document is intended for users of &FC; &FCLOCALVER; (or previous
versions) only. Newer versions of &FC; have new facilities for adding
hot-pluggable storage devices.
</para>
</important>
- <sect2 id="s2-overview">
+ <section id="sn-overview">
<title>Overview</title>
<para>
&FC; uses the <command>hotplug</command> facility to recognize when new
@@ -82,8 +90,8 @@
configure these components improves the effectiveness of existing tools,
such as the <application>usermount</application> helper.
</para>
- </sect2>
- <sect2 id="s2-aboutdoc">
+ </section>
+ <section id="sn-aboutdoc">
<title>About This Document</title>
<para>
The most up-to-date version of this document is always found at the &FP;
@@ -97,16 +105,12 @@
this document: <computeroutput>&BOOKID;</computeroutput>
</para>
<para>
- Comments and suggestions may also be forwarded to the author at <ulink
- url="mailto:stickstr5@hotmail.com">stickstr5(a)hotmail.com</ulink>.
- </para>
- <para>
Portions of this document were suggested by tips written by Tim Waugh
and available at the time of writing at <ulink
url="http://cyberelk.net/tim/usb-storage.html">http://cyberelk.net/tim/usb-storage.html</ulink>.
</para>
- </sect2>
- <sect2 id="s2-acknowledgments">
+ </section>
+ <section id="sn-acknowledgments">
<title>Acknowledgments</title>
<para>
The author is grateful to Dave Pawson for his help in finding gaps in
@@ -115,9 +119,9 @@
support, and kept this document concise and readable, and its style
consistent.
</para>
- </sect2>
- </sect1>
- <sect1 id="s1-summary">
+ </section>
+ </section>
+ <section id="sn-summary">
<title>Summary</title>
<!-- I think you mean the "quotes" to signify a first term, hence the usage. -->
<!-- AIUI, we want to save <quote> for when actually quoting something. -->
@@ -221,8 +225,8 @@
</para>
</step>
</procedure>
- </sect1>
- <sect1 id="s1-hotplug-files">
+ </section>
+ <section id="sn-hotplug-files">
<title>The <command>hotplug</command> Configuration Files</title>
<para>
The file <filename>/etc/hotplug/usb.distmap</filename> contains a list of
@@ -298,7 +302,7 @@
determine whether the USB mass storage driver module was loaded. If the
<filename>usb-storage</filename> module is listed, do
<emphasis>not</emphasis> edit your <command>hotplug</command>
- configuration files. Skip to <xref linkend="s1-updfstab-files"/> and
+ configuration files. Skip to <xref linkend="sn-updfstab-files"/> and
follow those steps to continue diagnosing the problem.
</para>
<para>
@@ -381,16 +385,16 @@
-->
- </sect1>
- <sect1 id="s1-updfstab-files">
+ </section>
+ <section id="sn-updfstab-files">
<title>The <command>updfstab</command> Configuration Files</title>
<para>
If <command>hotplug</command> automatically loaded the proper module for
- you (refer to <xref linkend="s1-hotplug-files"/>), check
+ you (refer to <xref linkend="sn-hotplug-files"/>), check
<filename>/etc/fstab</filename> for an entry for your device. If your
device has an entry, you should now see it in your graphical browser. If
you still can't mount the device, the console owner may not own the device
- file. Skip to <xref linkend="s1-pam"/> to continue troubleshooting.
+ file. Skip to <xref linkend="sn-pam"/> to continue troubleshooting.
</para>
<para>
To see if your system now has enough information to properly update
@@ -404,7 +408,7 @@
<command>updfstab</command> files.
</para>
- <sect2 id="s2-updfstab-conf">
+ <section id="sn-updfstab-conf">
<title><filename>/etc/updfstab.conf</filename></title>
<para>
The main configuration file is <filename>/etc/updfstab.conf</filename>.
@@ -422,8 +426,8 @@
include /etc/updfstab.conf.default
</screen>
- </sect2>
- <sect2 id="s2-updfstab-conf-default">
+ </section>
+ <section id="sn-updfstab-conf-default">
<title><filename>/etc/updfstab.conf.default</filename></title>
<!-- Reserving <command> to reference just command line programs; unfortunately, -->
<!-- there is not good catch-all tag for the contents of a config file; a -->
@@ -485,8 +489,8 @@
information, as well as a complete directive reference. Issue the
command <command>man updfstab</command> to read it.
</para>
- </sect2>
- <sect2 id="s2-adding-devices">
+ </section>
+ <section id="sn-adding-devices">
<title>Adding Devices</title>
<para>
To add a device to the <command>updfstab</command> facility, create the
@@ -633,9 +637,9 @@
-->
- </sect2>
- </sect1>
- <sect1 id="s1-pam">
+ </section>
+ </section>
+ <section id="sn-pam">
<title>PAM</title>
<para>
PAM, or <firstterm>Pluggable Authentication Modules</firstterm>, is a
@@ -646,7 +650,7 @@
system documentation, at
<filename>/usr/share/doc/pam-<replaceable>version</replaceable>/txts/pam.txt</filename>.
</para>
- <sect2 id="s2-consoleperms">
+ <section id="sn-consoleperms">
<title><filename>/etc/security/console.perms</filename></title>
<para>
This tutorial discusses only a small subset of the PAM system, the
@@ -682,13 +686,13 @@
properly inherit changes.
</para>
</important>
- </sect2>
- <sect2 id="s2-adding-perms">
+ </section>
+ <section id="sn-adding-perms">
<title>Adding Device Access Permissions</title>
<para>
Create a new device class that points to the mount point you assigned in
your <filename>/etc/updfstab.conf.custom</filename> file in <xref
- linkend="s2-adding-devices"/>. Name the class after your
+ linkend="sn-adding-devices"/>. Name the class after your
<computeroutput>device</computeroutput> directive for simplicity. Also
create a permission definition which describes what permissions the
console user inherits after logging in, and how these permissions revert
@@ -722,9 +726,9 @@
<filename>updfstab.conf.default</filename>.
</para>
</note>
- </sect2>
- </sect1>
- <sect1 id="s1-run-updfstab">
+ </section>
+ </section>
+ <section id="sn-run-updfstab">
<title>Running <command>updfstab</command></title>
<para>
Now run the <command>updfstab</command> command to properly update the
@@ -785,8 +789,8 @@
<guiicon>Computer</guiicon> on your desktop) displays your removable
device as well.
</para>
- </sect1>
- <sect1 id="s1-references">
+ </section>
+ <section id="sn-references">
<title>References</title>
<itemizedlist>
<listitem>
@@ -806,5 +810,5 @@
</para>
</listitem>
</itemizedlist>
- </sect1>
+ </section>
</article>
18 years, 10 months