summaryrefslogtreecommitdiff
path: root/support/TVS
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/TVS
Initial commit
Diffstat (limited to 'support/TVS')
-rw-r--r--support/TVS/Makefile10
-rw-r--r--support/TVS/TVS/GPL339
-rw-r--r--support/TVS/TVS/README14
-rw-r--r--support/TVS/TVS/docs/Makefile31
-rw-r--r--support/TVS/TVS/docs/tvs.dvibin0 -> 45560 bytes
-rw-r--r--support/TVS/TVS/docs/tvs.html1050
-rw-r--r--support/TVS/TVS/docs/tvs.info898
-rw-r--r--support/TVS/TVS/docs/tvs.ps2158
-rw-r--r--support/TVS/TVS/docs/tvs.texi913
-rw-r--r--support/TVS/TVS/docs/tvs.toc27
-rw-r--r--support/TVS/TVS/examples/sample.tex20
-rw-r--r--support/TVS/TVS/ignpats.tvs21
-rw-r--r--support/TVS/TVS/pathcuts.tvs15
-rw-r--r--support/TVS/TVS/tvs.pl454
-rw-r--r--support/TVS/TVS/tvsrc11
-rw-r--r--support/TVS/index.html57
-rw-r--r--support/TVS/misc/TVS-Zpravodaj.tex77
-rw-r--r--support/TVS/misc/uvod_analyza.tex79
-rw-r--r--support/TVS/slapoty.gifbin0 -> 8843 bytes
19 files changed, 6174 insertions, 0 deletions
diff --git a/support/TVS/Makefile b/support/TVS/Makefile
new file mode 100644
index 0000000000..3732d2df88
--- /dev/null
+++ b/support/TVS/Makefile
@@ -0,0 +1,10 @@
+# This is Makefile to prepare documentation files and make tar.gz file.
+
+all: docs targz
+
+docs:
+ - cd TVS/docs; make; make clean
+
+targz:
+ tar cvf TVS.tar TVS
+ gzip -9 TVS.tar \ No newline at end of file
diff --git a/support/TVS/TVS/GPL b/support/TVS/TVS/GPL
new file mode 100644
index 0000000000..a43ea2126f
--- /dev/null
+++ b/support/TVS/TVS/GPL
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/support/TVS/TVS/README b/support/TVS/TVS/README
new file mode 100644
index 0000000000..ccd2317fa6
--- /dev/null
+++ b/support/TVS/TVS/README
@@ -0,0 +1,14 @@
+This is TVS, TeX Versioning System README
+($Id: README,v 1.4 2000/05/08 13:43:49 antos Exp $)
+
+This software is to pack together complete source files needed to typeset
+a TeX document to be able to get exactly the same output anywhere.
+
+Written by David Antos, xantos (at) informatics.muni.cz.
+(Substitute (at) with @, of course.)
+TVS homepage: http://www.fi.muni.cz/~xantos/tvs
+
+See the documentation for install and use information.
+
+You may use this software free of charge but WITHOUT ANY WARRANTY, see
+General Public License for details.
diff --git a/support/TVS/TVS/docs/Makefile b/support/TVS/TVS/docs/Makefile
new file mode 100644
index 0000000000..a357c44ec7
--- /dev/null
+++ b/support/TVS/TVS/docs/Makefile
@@ -0,0 +1,31 @@
+# This makes documentation in various formats, clean deletes the garbage
+# Part of the TVS software package
+# $Id: Makefile,v 1.6 2000/05/08 13:56:14 antos Exp $
+
+# Useful targets are all, tex, info, html, and clean.
+
+all: tex info html
+
+clean:
+ - rm tvs.cp* tvs.pg* tvs.fn* tvs.ky* tvs.vr* tvs.log tvs.aux tvs.tp*
+
+tex: texrun
+ make texidx
+ make texrun
+ dvips tvs.dvi -o tvs.ps
+
+texrun:
+ texinfo tvs.texi
+
+texidx:
+ texindex *.??
+init:
+ make all
+ xdvi tvs.dvi&
+ vi tvs.texi
+
+info:
+ makeinfo tvs.texi
+
+html:
+ - makeinfo --html tvs.texi
diff --git a/support/TVS/TVS/docs/tvs.dvi b/support/TVS/TVS/docs/tvs.dvi
new file mode 100644
index 0000000000..aa604564c5
--- /dev/null
+++ b/support/TVS/TVS/docs/tvs.dvi
Binary files differ
diff --git a/support/TVS/TVS/docs/tvs.html b/support/TVS/TVS/docs/tvs.html
new file mode 100644
index 0000000000..328b711b8e
--- /dev/null
+++ b/support/TVS/TVS/docs/tvs.html
@@ -0,0 +1,1050 @@
+<html lang="en"><head>
+<title>TeX Versioning System</title>
+<meta http-equiv="Content-Type" content="text/html">
+<meta name=description content="TeX Versioning System">
+<meta name=generator content="makeinfo 4.0">
+<link href="http://texinfo.org/" rel=generator-home>
+</head><body>
+
+<p><hr>
+Node:<a name="Top">Top</a>,
+Next:<a rel=next href="#Copying">Copying</a>,
+Previous:<a rel=previous href="#(dir)">(dir)</a>,
+Up:<a rel=up href="#(dir)">(dir)</a>
+<br>
+
+<h1>TeX Versioning System</h1>
+
+<p>This is documentation of TeX Versioning System, software for storing
+complete source codes of TeX documents.
+
+<ul>
+<li><a href="#Copying">Copying</a>:
+<li><a href="#Introduction">Introduction</a>:
+<li><a href="#Installation">Installation</a>:
+<li><a href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>:
+<li><a href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>:
+<li><a href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>:
+<li><a href="#Credits">Credits</a>:
+<li><a href="#Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a>:
+
+<p>--- The Detailed Node Listing ---
+
+<p>Introduction
+
+</p><li><a href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>:
+<li><a href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>:
+<li><a href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>:
+
+<p>Using <code>TVS</code> step by step
+
+</p><li><a href="#Useful%20commands">Useful commands</a>:
+<li><a href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>:
+<li><a href="#Ignoring%20files">Ignoring files</a>:
+<li><a href="#Format%20file%20sources">Format file sources</a>:
+<li><a href="#Configuration%20file">Configuration file</a>:
+<li><a href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>:
+<li><a href="#Fonts">Fonts</a>:
+<li><a href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a>:
+
+<p>Reference guide to <code>TVS</code> commands
+
+</p><li><a href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>:
+<li><a href="#Global%20switches">Global switches</a>:
+<li><a href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>:
+<li><a href="#Output%20directory%20setting">Output directory setting</a>:
+<li><a href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>:
+
+<p>Config file and pattern files
+
+</p><li><a href="#Config%20file">Config file</a>:
+<li><a href="#Pattern%20file%20structure">Pattern file structure</a>:
+
+<p>Pattern file structure
+
+</p><li><a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>:
+<li><a href="#Ignore%20pattern%20file">Ignore pattern file</a>:
+
+</ul>
+
+<p><hr>
+Node:<a name="Copying">Copying</a>,
+Next:<a rel=next href="#Introduction">Introduction</a>,
+Previous:<a rel=previous href="#Top">Top</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Copying</h1>
+
+<p>The program <code>TVS</code> and its documentation is written and
+maintained by David Antos&lt;, <a href="mailto:xantos (at) fi.muni.cz">xantos (at) fi.muni.cz</a>. (Of course substitute (at) with @.)
+Contact him when in trouble, but please read the documentation first.
+
+<p>Copyright &copy; 2000 David Antos&lt;
+
+<p>Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+<p>Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+<p>Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+<p><hr>
+Node:<a name="Introduction">Introduction</a>,
+Next:<a rel=next href="#Installation">Installation</a>,
+Previous:<a rel=previous href="#Copying">Copying</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Introduction</h1>
+
+<p>This is documentation of TeX Versioning System, software for storing
+complete source codes of TeX documents.
+
+<p>Version 1.0
+
+<p>(Documentation CVS ver. $Id: tvs.texi,v 1.23 2000/08/16 17:00:24 antos Exp $)
+
+<ul>
+<li><a href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>:
+<li><a href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>:
+<li><a href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>:
+</ul>
+
+<p><hr>
+Node:<a name="Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>,
+Next:<a rel=next href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>,
+Previous:<a rel=previous href="#Introduction">Introduction</a>,
+Up:<a rel=up href="#Introduction">Introduction</a>
+<br>
+
+<h2>Why do you need <code>TVS</code>?</h2>
+
+<p>It must have happened to you. You use TeX at work. You run another
+distribution at home. You wrote a beautiful document at home, you came to
+work and got error message <code>I can't find file `foo.tex'</code>. There is a
+package missing in your work installation.
+
+<p>Or: You wrote a beautifully typeset book several years ago.
+You used em-TeX on M$-DOS machine. The book should be typeset again. You
+have only my_book.tex and no macros you used. What to do?
+
+<p>To be serious, there is nothing to be done now. But if you stored the
+<em>complete</em> source of the documents, it didn't have to happen to you.
+And how to store the complete source? It's simple--use <code>TVS</code>.
+
+<p>Please! Please! Packing complete TeX document sources is a delicate
+and sensitive operation. Read the entire manual before you use
+<code>TVS</code> to do something important. This kind of software can be
+useful for you if and only if you use it correctly. I'm sorry for this
+but it's the fact.
+
+<p><hr>
+Node:<a name="What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>,
+Next:<a rel=next href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>,
+Previous:<a rel=previous href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>,
+Up:<a rel=up href="#Introduction">Introduction</a>
+<br>
+
+<h2>What <code>TVS</code> can do?</h2>
+
+<p><code>TVS</code> can store complete source codes of TeX documents. It parses
+logs of TeX and finds files which were used to typeset the document.
+<code>TVS</code> can work in three levels:
+
+<ul>
+<li>Only document log is examined. It stores all macros, styles,
+included documents etc. you need.
+<li>Document log and format log is examined. It also stores all
+source files needed to build up format file.
+<li>(experimental) Moreover dvips log is parsed and used fonts are
+stored. This is not so useful as only <code>.pk</code>
+files may be obtained this way.
+</ul>
+
+<p>Files collected by <code>TVS</code> can be used on any TeX installation to
+build up exactly the same document.
+Next, let us call the product of <code>TVS</code> a <em>complete source</em>.
+
+<p>There are several important features of <code>TVS</code>:
+
+<ul>
+<li><code>TVS</code> is a Perl script, it runs wherever Perl is available (it
+means nearly everywhere).
+<li>There is no difference in using of <code>TVS</code> when running LaTeX,
+plain, or whatever you want.
+<li>On the destination (the place you typeset the complete source), there is
+no need to run <code>TVS</code>. You only need to say TeX to find files
+in working directory first.
+<li><code>TVS</code> is <em>not</em> a version control system. It cannot handle
+versions of your documents. There are other systems, e.g., <code>RCS</code> or
+<code>CVS</code>, designed to do this.
+</ul>
+
+<p><hr>
+Node:<a name="What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>,
+Previous:<a rel=previous href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>,
+Up:<a rel=up href="#Introduction">Introduction</a>
+<br>
+
+<h2>What do you need to run <code>TVS</code>?</h2>
+
+<p>Hardware and OS requirements are simple. <code>TVS</code> is a Perl script so it
+runs wherever Perl 5.x is available.
+It uses packages Getopt::Long, File::Basename, File::Copy, and
+File::Path. These packages should be nevertheless in standard Perl
+distribution.
+
+<p>For information on Perl for your OS check
+&lt;<code>http://www.perl.com</code>&gt;. There should be no problem on most Unices, in
+Linux, Perl is usually a part of standard distribution.
+
+<p>Maybe you find useful having also <code>make</code> and <code>Texinfo</code>
+utilities installed on your system, but <code>Texinfo</code> is only needed to
+produce documentation in DVI, PostScript, Info, or HTML formats which
+are pregenerated in <code>TVS</code> distribution. And <code>make</code> is only to
+generate them comfortably.
+
+<p>There are some requirements for your TeX source codes to be able to
+handle them successfully. There is a problem with including files into your
+source. The usual and best way to do it is to have the main source at the
+top of the source tree and use relative paths in all variants of
+<code>\input</code> command.
+Avoid pathological inputs like
+<code>\includegraphics ../../pictures/pict1.ps</code>.
+This should not bother you as nearly everybody does it.
+
+<p>Usually <code>TVS</code> is able to pack files referenced by "up-going"
+relative path (if it makes a conflict, <code>TVS</code>
+recognizes it), but you run into difficulties when re-typesetting the
+complete source and you have to correct all the things by hand.
+
+<p><hr>
+Node:<a name="Installation">Installation</a>,
+Next:<a rel=next href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>,
+Previous:<a rel=previous href="#Introduction">Introduction</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Installation</h1>
+
+<p>The program <code>TVS</code> and its documentation is written and
+maintained by David Antos&lt;, <a href="mailto:xantos (at) fi.muni.cz">xantos (at) fi.muni.cz</a>. (Of course substitute (at) with @.)
+Contact him when in trouble, but please read the documentation first.
+
+<p>The following instructions assume that Perl version &gt;=5 is installed on
+your system. For information on Perl consult &lt;<code>http://www.perl.org</code>&gt;.
+
+<p>The homepage of <code>TVS</code> is &lt;<code>http://www.fi.muni.cz/~xantos/tvs</code>&gt;.
+Here you can get <code>TVS</code> either file-by-file or as <code>tvs.tar.gz</code>
+file. <code>TVS</code> can also be obtained on CTAN in <code>support/TVS</code>.
+
+<p>Because of platform independence we decided not to prepare any
+"instant" packages.
+
+<p>If you downloaded <code>tvs.tar.gz</code>, gunzip and un-tar it somewhere. If
+you downloaded separate files, reconstruct the original file structure
+anywhere you want.
+
+<p>On UNIX, make a link to <code>tvs.pl</code> from a directory which is in your
+<code>PATH</code>, e.g. <code>/usr/local/bin</code>, if your system decodes first
+lines of scripts to run them. In this case, it may be needed to correct
+the very first line of <code>tvs.pl</code> and put the right path to your Perl
+interpreter there. Otherwise you may still run <code>TVS</code>
+running <code>perl tvs.pl</code>. Install the documentation in your favorite
+format, where your docs-reader can find it. At least,
+<code>/usr/doc/tvs</code> wouldn't be a bad choice to store Post Script or
+HTML documentation.
+
+<p>Generally speaking, there is no need to install <code>TVS</code> to global
+directories if you are the only-one who runs it or you are not root.
+
+<p>Try <code>tvs --help</code>. If a TVS header and help message written,
+everything is OK.
+
+<p>If your standard Perl distribution does not contain packages
+Getopt::Long, File::Basename, File::Copy, and File::Path, get them from
+&lt;<code>http://www.perl.org</code>&gt;.
+
+<p>On M$ DOS/Window$ platforms the <code>.pl</code> suffix should be enough for
+Perl script to run, of course if Perl is correctly installed. Please do
+not expect me to make better support for M$ platforms as I do not run
+them.
+
+<p>On other platforms, if there are difficulties in installing or running
+<code>TVS</code>, please drop me a line.
+
+<p><hr>
+Node:<a name="Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>,
+Next:<a rel=next href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>,
+Previous:<a rel=previous href="#Installation">Installation</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Using <code>TVS</code> step by step</h1>
+
+<p>This chapter shows the usage of <code>TVS</code> and various examples. It also
+points out the limitations of this system, in other words what it
+<em>can</em> do for you (and it's quite a lot) and what it cannot. Yes, there
+are some unpleasant things you must do manually.
+
+<ul>
+<li><a href="#Useful%20commands">Useful commands</a>:
+<li><a href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>:
+<li><a href="#Ignoring%20files">Ignoring files</a>:
+<li><a href="#Format%20file%20sources">Format file sources</a>:
+<li><a href="#Configuration%20file">Configuration file</a>:
+<li><a href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>:
+<li><a href="#Fonts">Fonts</a>:
+<li><a href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a>:
+</ul>
+
+<p><hr>
+Node:<a name="Useful%20commands">Useful commands</a>,
+Next:<a rel=next href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>,
+Previous:<a rel=previous href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>Useful commands</h2>
+
+<p>To make sure that <code>TVS</code> is correctly installed on your system, run
+<code>tvs -h</code>.
+You should obtain a short help on using <code>TVS</code>.
+
+<p>There are two useful switches you should know before starting experiments
+with <code>TVS</code>. You may increase verbosity level using <code>-v</code> or even
+<code>-vv</code> switch. See <a href="#Global%20switches">Global switches</a>, for detailed information
+on verbosity levels.
+
+<p>In following examples you may also specify <code>--dummy</code> command. It means
+that no files are really copied and no real output is produced. But
+everything else looks like real operations were performed.
+
+<p><hr>
+Node:<a name="Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>,
+Next:<a rel=next href="#Ignoring%20files">Ignoring files</a>,
+Previous:<a rel=previous href="#Useful%20commands">Useful commands</a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>Basic running <code>TVS</code></h2>
+
+<p>Now it's time to look to the <code>examples</code> directory in your
+distribution. It contains source file <code>sample.tex</code> we will use to
+demonstrate the usage of <code>TVS</code>.
+
+<p>The first step you must not forget is to TeX your source correctly.
+Document <code>sample.tex</code> uses <code>\tableofcontents</code>, so you must run
+<pre>latex sample.tex
+</pre>
+
+<p>twice. Make sure your document is TeXed correctly. It is <em>very
+very</em> important.
+
+<p>Let's try what <code>TVS</code> can do now. First try to run
+<pre>tvs sample.log
+</pre>
+
+<p>The most important for <code>TVS</code> is log file <code>sample.log</code>. You do not
+have to specify name with <code>.log</code> extension as it is tried to add
+automatically.
+What <code>TVS</code> now does? It goes through the file <code>sample.log</code>
+and finds
+all the files which are needed to build up the final document.
+
+<p><code>TVS</code> created an output directory named <code>TVS-OUT</code>. Check its
+contents. In fact, on M$-DOS or M$-Windows machines this didn't work.
+<a rel=footnote href="#fn-1"><sup>1</sup></a>
+On UN*X machines, there is stupidly deep directory structure containing
+only one directory in another.
+
+<p>There is a way to avoid this.
+Please copy file <code>pathcuts.tvs</code> into the <code>examples</code> directory.
+Edit <code>pathcuts.tvs</code>, replace path <code>/usr/TeX/texmf</code> with the path
+to your TeX main directory.
+
+<p>Delete the <code>TVS-OUT</code> directory and run
+<pre>tvs -v -p pathcuts.tvs sample
+</pre>
+
+<p>See what <code>TVS</code> does now.
+You may also check what is in the <code>TVS-OUT</code> directory.
+By <code>-p file</code> we say that <code>file</code> contains paths we want to shorten.
+On M$ file system, there is in fact needed to use this to
+cut things like <code>c:\</code> to be able to construct file names used in the
+output directory.
+
+<p><hr>
+Node:<a name="Ignoring%20files">Ignoring files</a>,
+Next:<a rel=next href="#Format%20file%20sources">Format file sources</a>,
+Previous:<a rel=previous href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>Ignoring files</h2>
+
+<p>As you can see, there is <code>sample.toc</code> in the output directory. We do
+not really need it as it can be always generated. Now let us show the way
+how to ignore files. Please copy file <code>ignpats.tvs</code> to the working
+directory. This file contains patterns which are compared to ends of
+files. Matching files are not copied to the output directory.
+
+<p>If you want to try it, delete the output directory and run
+<pre>tvs -v -p pathcuts.tvs -i ignpats.tvs sample
+</pre>
+
+<p>Now files ending with <code>toc</code> are missing.
+
+<p><em>Warning:</em> use this feature with care and only if you know what you
+are doing. Always make sure that files you want to ignore may be rebuilt up
+from the rest of the source.
+
+<p><hr>
+Node:<a name="Format%20file%20sources">Format file sources</a>,
+Next:<a rel=next href="#Configuration%20file">Configuration file</a>,
+Previous:<a rel=previous href="#Ignoring%20files">Ignoring files</a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>Format file sources</h2>
+
+<p>In fact, storing the complete document source may not be enough to be able
+to produce the same output. We must also store format source files. Storing
+only the format file itself doesn't help as this file is not
+binary compatible in general.
+
+<p>The main thing you need is to know where log files of generated formats
+are stored. To obtain this information consult your local documentation, or
+you may try to find files <code>latex.log, tex.log, pdftex.log</code>, or ask
+your TeX administrator. It is also possible that your administrator
+deleted log files after generating formats. In this case ask him to
+regenerate format files and leave the logs untouched.
+This is not a good manner to delete log files of this importance.
+Your administrator may have even delete format file sources. In this case,
+ask him to reinstall them and better find a new TeX administrator.
+
+<p>You should make sure that formats were really generated on your local
+installation. They may have been generated on a binary compatible
+machine with other organization of TeX directories. If so, you must
+re-generate them. If you run a distribution which allows you to set
+local TeX installation root directory, this is quite possible. For
+example, on my texlive-4 I had to correct this.
+
+<p>In emergency, if you do not have root privilegies and you cannot
+globally make format logs correct, you still can generate formats in
+your own directory and use them overriding your system defaults.
+In this case, give your root my regards.
+
+<p>To store format sources, you need to tell <code>TVS</code> where logs are.
+It is done by <code>-f path</code> switch. Let's try to call
+<pre>tvs -v -p pathcuts.tvs -f where_your_logs_are sample
+</pre>
+
+<p>You should obtain output directory similar to previous one but containing
+subdirectory named <code>FORMAT</code>, where complete source for format
+generating is stored.
+
+<p>If <code>TVS</code> is not able to determine format name correctly, you may
+force format name by adding <code>--fmtname name</code> into command line
+similar to previous example. You may try
+<pre>tvs -v -p pathcuts.tvs -f where_your_logs_are --fmtname latex sample
+</pre>
+
+<p><hr>
+Node:<a name="Configuration%20file">Configuration file</a>,
+Next:<a rel=next href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>,
+Previous:<a rel=previous href="#Format%20file%20sources">Format file sources</a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>Configuration file</h2>
+
+<p>The command lines we use are getting too long. If file <code>tvsrc</code> is
+located in the working directory, it is used as config file. You may
+also specify the config file explicitly by <code>-c filename</code> or
+<code>--config filename</code> switch.
+
+<p>Please copy file <code>tvsrc</code> to the <code>examples</code> directory. Config file
+has simple structure
+<pre>&lt;variable&gt; &lt;value&gt;
+</pre>
+Values set here may be always overridden by the command line. Setting
+values for ignore, pathcuts and format doesn't mean that files are
+ignored, paths cut and format sources stored by default. You must use
+switches <code>-i, -p</code> and <code>-f</code>, but there is no need to follow
+them by values.
+It may seem a bit strange but it is done this way in order to prevent
+you from doing something you do not want to. It doesn't save your
+keystrokes but--we hope--your nerves.
+
+<p>If you edit the <code>format</code> entry in <code>tvsrc</code> to the path to your
+format logs, you may for example use
+<pre>tvs -i -p -f -v sample
+</pre>
+
+<p>to store the source with format with ignoring files and cutting paths
+instead of the long form without config file which goes
+<pre>tvs -i ignpats.tvs -p pathcuts.tvs -f /usr/TeX/texmf/web2c -v sample
+</pre>
+
+<p>But if you use only
+<pre>tvs -p sample
+</pre>
+
+<p>then no format file is examined and no files are ignored, no matter that
+the config file exists.
+
+<p>In the config file you may also specify the default output
+directory name with
+<code>output</code> entry and the default verbosity level using
+<code>verbose</code> with value 0, 1, or 2. These values are used always
+and may be overridden with
+<code>-o</code> and <code>-v</code>.
+
+<p><hr>
+Node:<a name="Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>,
+Next:<a rel=next href="#Fonts">Fonts</a>,
+Previous:<a rel=previous href="#Configuration%20file">Configuration file</a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>Limitations of <code>TVS</code></h2>
+
+<p>Work of <code>TVS</code> is limited by the files which are noticed in log files.
+If you use anything which is done by external program, you must take
+special care on files you want to store. If you include graphics in
+Post Script, it may be included only by <code>\special</code> command and may not
+be noticed in log.
+
+<p>You must always ask yourself the main important question: <em>Which
+files--not used in TeX last run--I want to store?</em>
+
+<p>For example if you use a bibliography, your source is a <code>.bib</code>
+file. But
+in the last TeX run only sorted part of it, <code>.bbl</code> file is included.
+If the <code>.bbl</code> file is enough for you, it's good.
+But if you want to store
+sources for bibliography completely, you need also <code>.bib</code> file and
+<code>.bst</code> file, which contains bibliography style. And there is no way
+for <code>TVS</code> to know it as BibTeX is an external utility.
+That's why you must copy them to <code>TVS-OUT</code> by hand.
+
+<p>If you don't do so, you are still able to obtain exactly the same document,
+but you run into difficulties trying to do any modifications.
+
+<p>It is always better store more than you need. If you are a TeX beginner
+and you are absolutely not
+sure, it may be reasonable for you to preserve all the files from your
+working directory. Includes from TeX directory (e.g.,
+<code>c:\tex\texmf</code>) are handled correctly.
+
+<p><hr>
+Node:<a name="Fonts">Fonts</a>,
+Next:<a rel=next href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a>,
+Previous:<a rel=previous href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>Fonts</h2>
+
+<p>This is experimental!
+
+<p>Usually there is no reason to store also font source files. The exception
+is if your national modification of fonts changed its encoding or you use
+unusual fonts.
+
+<p>If you want to,
+you may run <code>dvips</code> with <code>-d</code> switch to produce a log file with
+list of opened files.
+Consult your <code>dvips</code> documentation how to do it.
+This switch is followed by number indicating what should be logged.
+
+<p>If you use <code>tvs -d dvips.log</code>, a subdirectory FONTS is created
+in the output
+directory and all files used by dvips are stored there.
+Only font bitmaps may
+be obtained this way, so this feature is not very useful. If you want to
+store Metafont sources, you must do it by hand.
+
+<p>There is no guarantee of correct work of <code>-d</code> switch as <code>dvips</code>
+log changed.
+
+<p><hr>
+Node:<a name="What%20to%20do%20with%20collected%20output">What to do with collected output</a>,
+Previous:<a rel=previous href="#Fonts">Fonts</a>,
+Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<br>
+
+<h2>What to do with collected output</h2>
+
+<p>Currently <code>TVS</code> implements no way of packing nor extracting collected
+complete source. Use any way of packing this directory you like depending
+of the platform you run <code>TVS</code> and the platform you will want to
+re-typeset your work in the future.
+
+<p>There is no way to run TVS on the destination. You must only tell TeX
+<ul>
+<li>to generate the format file if format sources were stored,
+<li>to generate fonts if fonts were stored,
+<li>to find files in working directory and its subdirectories at first.
+</ul>
+To do this, consult the local documentation.
+
+<p><hr>
+Node:<a name="Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>,
+Next:<a rel=next href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>,
+Previous:<a rel=previous href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Reference guide to <code>TVS</code> commands</h1>
+
+<p>This chapter describes overall structure of <code>TVS</code> commands and
+describes the function of the commands in detail.
+
+<ul>
+<li><a href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>:
+<li><a href="#Global%20switches">Global switches</a>:
+<li><a href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>:
+<li><a href="#Output%20directory%20setting">Output directory setting</a>:
+<li><a href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>:
+</ul>
+
+<p><hr>
+Node:<a name="Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>,
+Next:<a rel=next href="#Global%20switches">Global switches</a>,
+Previous:<a rel=previous href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>,
+Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>
+<br>
+
+<h2>Invoking <code>TVS</code></h2>
+
+<p>General structure of calling <code>TVS</code> is
+<pre>tvs [switches] filename
+</pre>
+
+<p>where <code>filename</code> is a name of the main TeX log file.
+<code>TVS</code> must be run in the directory where main TeX log file is
+located.
+
+<p>Always make sure
+that your document is TeX-ed correctly (index is sorted, bibliography is
+present, pictures are included etc.)! Usually you have to run TeX
+several times to typeset the document (but we hope this doesn't
+surprise you).
+
+<p><hr>
+Node:<a name="Global%20switches">Global switches</a>,
+Next:<a rel=next href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>,
+Previous:<a rel=previous href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>,
+Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>
+<br>
+
+<h2>Global switches</h2>
+
+<p>These switches may be used to change globally behavior of <code>TVS</code>.
+
+<dl>
+
+<br><dt><code>-h, --help</code>
+<dd>Prints short usage and version information and exits successfully.
+This switch doesn't need a filename as a parameter.
+
+<br><dt><code>-v, --verbose</code>
+<dd>Sets verbosity level. May used several times. There are three verbosity
+levels:
+<ul>
+<li>Level 0--only examined files and errors are written.
+This is the default.
+<li>Level 1--found files, copying info and errors are written.
+<li>Level 2--extra talkative, writes all it does.
+</ul>
+For level 1, use <code>-v</code> or <code>--verbose</code> once, for level 2, use it
+twice. You may also specify <code>-vv</code>, which is the most comfortable way
+to do it.
+
+<br><dt><code>-c file, --config file</code>
+<dd>Specifies the configuration file name. See <a href="#Config%20file">Config file</a>, for
+details about configuration file.
+
+<p>If <code>--config</code> switch is not specified, file <code>tvsrc</code> in working
+directory is used as a config file if it exists. There is no need of having
+config file as all options may be set from command line.
+
+<br><dt><code>--dummy</code>
+<dd>Sets <code>TVS</code> to dummy mode. No files are changed, no files are really
+copied to output directory, it is only shown what has to be done. Useful if
+used with <code>--verbose</code>. (Inspired by similar switch in cdrecord.)
+</dl>
+
+<p><hr>
+Node:<a name="Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>,
+Next:<a rel=next href="#Output%20directory%20setting">Output directory setting</a>,
+Previous:<a rel=previous href="#Global%20switches">Global switches</a>,
+Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>
+<br>
+
+<h2>Ignoring files and cutting filenames</h2>
+
+<p>Using following settings we may set files which shouldn't be copied to
+output and set usual paths we don't want to store completely.
+
+<dl>
+
+<br><dt><code>-i [file], --ignore [file]</code>
+<dd>Sets file with patterns of filenames which we don't want to be copied to
+output. See <a href="#Ignore%20pattern%20file">Ignore pattern file</a>, for details about ignore pattern file.
+
+<p>If <code>file</code> name is omitted, value from config file is used. If
+<code>ignore</code> parameter is not set in config file, <code>TVS</code> terminates
+with an error.
+
+<br><dt><code>-p [file], --pathcuts [file]</code>
+<dd>Sets file with path patterns to cut. See <a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>,
+for information about file
+path names handling.
+
+<p>If <code>file</code> name is not specified, value from config file is used. If
+<code>pathcuts</code> parameter in config file is not specified,
+<code>--pathcuts</code> parameter is silently ignored. It makes no harm to
+function of <code>TVS</code> and if it causes filename conflict, <code>TVS</code> stops
+with an error.
+</dl>
+
+<p><hr>
+Node:<a name="Output%20directory%20setting">Output directory setting</a>,
+Next:<a rel=next href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>,
+Previous:<a rel=previous href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>,
+Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>
+<br>
+
+<h2>Output directory setting</h2>
+
+<dl>
+
+<br><dt><code>-o dirname, --output dirname</code>
+<dd>Sets the name of output directory to <code>dirname</code>. This may be only
+useful to override setting in config file. If config file doesn't set
+output directory name, default name <code>TVS-OUT</code> is used and this is
+created in working directory.
+</dl>
+
+<p><hr>
+Node:<a name="Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>,
+Previous:<a rel=previous href="#Output%20directory%20setting">Output directory setting</a>,
+Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>
+<br>
+
+<h2>Storing format source files and fonts</h2>
+
+<dl>
+
+<br><dt><code>-f [dirname], --format [dirname]</code>
+<dd>Specifies directory where format log files are and packs format file
+sources. If <code>dirname</code> is
+omitted, value from config file is taken. If <code>format</code> parameter is not
+specified in config file, <code>TVS</code> dies with an error. See <a href="#Format%20file%20sources">Format file sources</a>, for
+details about format source files extracting.
+Format file name is taken from the main document log from the first line
+which contains <code>format=name</code>.
+
+<br><dt><code>--fmtname [name]</code>
+<dd>Specifies format name, e.g. <code>plain</code>, <code>latex</code>, etc. Useful, if
+format name cannot be found in log of document in form
+<code>format=name</code>.
+Specifying <code>--fmtname [name]</code> doesn't imply packing format sources.
+You must specify <code>--format</code>, too.
+This option cannot be specified in <code>TVS</code>'s
+config file.
+
+<br><dt><code>-d file, --dvips file</code>
+<dd>Sets name of <code>dvips</code> log file. This cannot be specified in config
+file. This is only experimental. See <a href="#Fonts">Fonts</a>, for information on dvips
+log file
+examining and font storing. You would better not to use this feature unless
+you know what you are doing.
+</dl>
+
+<p><hr>
+Node:<a name="Config%20file%20and%20pattern%20files">Config file and pattern files</a>,
+Next:<a rel=next href="#Credits">Credits</a>,
+Previous:<a rel=previous href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Config file and pattern files</h1>
+
+<p>In this chapter we discuss config file setting and structure and usage of
+files with patterns. These are used to shorten (cut) filenames to use
+reasonable short paths in output directory and to set files which we do not
+want to store at all.
+
+<ul>
+<li><a href="#Config%20file">Config file</a>:
+<li><a href="#Pattern%20file%20structure">Pattern file structure</a>:
+</ul>
+
+<p><hr>
+Node:<a name="Config%20file">Config file</a>,
+Next:<a rel=next href="#Pattern%20file%20structure">Pattern file structure</a>,
+Previous:<a rel=previous href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>,
+Up:<a rel=up href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>
+<br>
+
+<h2>Config file</h2>
+
+<p>We may set values for <code>verbose, format, ignore, pathcuts,</code> and
+<code>output</code> variables in config file.
+
+<p>If <code>TVS</code> is run with <code>--config</code> switch, it sets used config file
+name. If this is not used, default config file named <code>tvsrc</code> in
+working directory is tried.
+If it doesn't exist, no config file is used at all.
+There is no default config file location (e.g.
+<code>/etc/tvsrc</code> or something similar) because of the platform independence
+of <code>TVS</code>.
+
+<p>The structure of config file is quite simple. Everything after <code>#</code> and
+<code>%</code> characters is ignored. Lines with structure
+<pre>&lt;variable&gt; &lt;value&gt;
+</pre>
+
+<p>set values of variables. There must be just one white character between
+the <code>&lt;variable&gt;</code> and the <code>&lt;value&gt;</code>. There may be any count of
+white spaces before and after this structure on the line. Lines with
+other structure or specifying variables not listed below are silently
+ignored.
+
+<p>For example of config file, see file <code>tvsrc</code> enclosed with the
+distribution.
+
+<p>Variables have meanings as follows:
+
+<dl>
+
+<br><dt><code>verbose</code>
+<dd>Sets the default verbosity level. Reasonable values are
+<dl>
+<dt><code>0</code>
+<dd>This is the default.
+<br><dt><code>1, 2</code>
+<dd>Set verbosity level to 1 or 2. See <a href="#Global%20switches">Global switches</a>, for description
+of verbosity levels.
+</dl>
+
+<br><dt><code>format</code>
+<dd>Sets the name of the directory where format log files are stored. This is
+used only of <code>--format</code> or <code>-f</code> switch is set and may be
+overridden by this. You should specify <code>format</code> parameter in config
+file if you want to store format sources. And you should store format
+sources. Simply--use it.
+
+<br><dt><code>ignore</code>
+<dd>Sets the name of file with patterns used to ignore files. See <a href="#Ignore%20pattern%20file">Ignore pattern file</a>, for
+information about ignoring files.
+This is used only if <code>--ignore</code> or <code>-i</code> switch is set and may be
+overridden by this.
+
+<br><dt><code>pathcuts</code>
+<dd>Sets the name of file with patterns used to shorten the stored filenames.
+Used only if <code>--pathcuts</code> or <code>-p</code> switch is set and may be
+overridden by these.
+
+<br><dt><code>output</code>
+<dd>Sets the default output directory name. May be overridden by <code>--output</code>
+or <code>-o</code> switch. If not set, default value <code>TVS-OUT</code> is used.
+</dl>
+
+<p><hr>
+Node:<a name="Pattern%20file%20structure">Pattern file structure</a>,
+Previous:<a rel=previous href="#Config%20file">Config file</a>,
+Up:<a rel=up href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>
+<br>
+
+<h2>Pattern file structure</h2>
+
+<p>The structure of files which contain patterns is quite simple. Everything
+after <code>#</code> or <code>%</code> characters is ignored. A line of the file may
+start and end with white characters. These white characters are ignored.
+The remaining part of the line (if it is nonempty) is considered to be a
+pattern.
+
+<p>A pattern is treated as a Perl regular expression.
+It doesn't matter if you don't know what it is, all you need to know is
+seen from the examples. Nevertheless you may try <code>man perlre</code> or
+equivalent for reading documentation on you system.
+
+<p>Next, we'll discuss the usage of pattern files.
+
+<ul>
+<li><a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>:
+<li><a href="#Ignore%20pattern%20file">Ignore pattern file</a>:
+</ul>
+
+<p><hr>
+Node:<a name="Pathcuts%20pattern%20file">Pathcuts pattern file</a>,
+Next:<a rel=next href="#Ignore%20pattern%20file">Ignore pattern file</a>,
+Previous:<a rel=previous href="#Pattern%20file%20structure">Pattern file structure</a>,
+Up:<a rel=up href="#Pattern%20file%20structure">Pattern file structure</a>
+<br>
+
+<h3>Pathcuts pattern file</h3>
+
+<p>This file is used if <code>--pathcuts</code> or <code>-p</code> switch is specified.
+An example is enclosed with the distribution and named <code>pathcuts.tvs</code>.
+
+<p>The file specifies list of patterns which are compared to the
+<em>beginnings</em> of
+filenames. On <em>first match</em> the matching part is cut
+and the rest of pattern
+list is not used. So it has no sense to have a pattern list
+<pre>/usr/TeX
+/usr/TeX/texmf
+</pre>
+
+<p>as the second entry will be never used.
+But sequence
+<pre>/usr/TeX/texmf
+/usr/TeX
+</pre>
+
+<p>may be reasonable. (It's an exercise why and when <code>:-)</code>.)
+
+<p>An example: Let us have pattern list containing <code>/usr/TeX/texmf</code>. If
+filename is
+<pre></pre>
+
+<p>it matches and is cut to
+<pre>tex/latex/algorith/algorithm.sty
+</pre>
+
+<p>File <code>inputs/my_macro.tex</code> doesn't match the pattern and is
+left untouched.
+
+<p><hr>
+Node:<a name="Ignore%20pattern%20file">Ignore pattern file</a>,
+Previous:<a rel=previous href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>,
+Up:<a rel=up href="#Pattern%20file%20structure">Pattern file structure</a>
+<br>
+
+<h3>Ignore pattern file</h3>
+
+<p>This file is used when <code>--ignore</code> or <code>-i</code> switch is specified. An
+example named <code>ignpats.tvs</code> is enclosed.
+
+<p>This file specifies list of patterns which are compared to <em>ends</em>
+of filenames. If <em>any</em> of them matches, file is ignored and is not
+copied to output. Usually, suffices of files (e.g. <code>toc, bbl</code>) are
+used here. If you want make sure that there is a dot before <code>toc</code>
+or <code>bbl</code>, use <code>\.toc</code> and <code>\.bbl</code> entries in pattern file
+as entries are PERL regular expressions. For detailed information see
+<code>perlre(1)</code>.
+
+<p>Use this feature with care, it is usually better to have a superset of
+needed complete source then have <em>incomplete</em> source. There may be
+files which loaded (and you don't know about them) with suffices you
+don't expect. Use it only if you know what you are doing. You've been
+warned.
+
+<p><hr>
+Node:<a name="Credits">Credits</a>,
+Next:<a rel=next href="#Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a>,
+Previous:<a rel=previous href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Credits</h1>
+
+<p>I would like to thank to:
+<ul>
+<li>Petr Sojka, who made me to write <code>TVS</code> and helped me very much with
+all the troubles and decisions we have had to make,
+<li>Richard Bot&acute;ik, who lent me the
+"Perl Camel Book" for a fortnight,
+<li>many others,
+<li>Bubo, my home computer, as it surprisingly didn't get overheated too much
+during the terribly hot spring of year 2000 in middle Europe.
+</ul>
+
+<p><hr>
+Node:<a name="Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a>,
+Previous:<a rel=previous href="#Credits">Credits</a>,
+Up:<a rel=up href="#Top">Top</a>
+<br>
+
+<h1>Dealing with bugs in <code>TVS</code></h1>
+
+<p>Please send bug-reports to <a href="mailto:xantos (at) fi.muni.cz">xantos (at) fi.muni.cz</a> with subject
+<code>TVS bug</code>. Add information on platform, TeX installation and
+include log files which were parsed. Also please note version of TVS,
+both version number and CVS version code (it's the line containing
+<code>$Id: tvs.pl,v...</code>). You can get this information by running
+<code>tvs --help</code>.
+
+<p>If you tried to compare <code>.dvi</code> files obtained running TeX on
+various platforms using <code>TVS</code> complete source, please keep in mind
+they may differ if something depending on "the state of the computer"
+(especially date) was included.
+
+
+<h1>Table of Contents</h1>
+<ul>
+<li><a href="#Top">TeX Versioning System</a>
+<li><a href="#Copying">Copying</a>
+<li><a href="#Introduction">Introduction</a>
+<ul>
+<li><a href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>
+<li><a href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>
+<li><a href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>
+</ul>
+<li><a href="#Installation">Installation</a>
+<li><a href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>
+<ul>
+<li><a href="#Useful%20commands">Useful commands</a>
+<li><a href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>
+<li><a href="#Ignoring%20files">Ignoring files</a>
+<li><a href="#Format%20file%20sources">Format file sources</a>
+<li><a href="#Configuration%20file">Configuration file</a>
+<li><a href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>
+<li><a href="#Fonts">Fonts</a>
+<li><a href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a>
+</ul>
+<li><a href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>
+<ul>
+<li><a href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>
+<li><a href="#Global%20switches">Global switches</a>
+<li><a href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>
+<li><a href="#Output%20directory%20setting">Output directory setting</a>
+<li><a href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>
+</ul>
+<li><a href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>
+<ul>
+<li><a href="#Config%20file">Config file</a>
+<li><a href="#Pattern%20file%20structure">Pattern file structure</a>
+<ul>
+<li><a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>
+<li><a href="#Ignore%20pattern%20file">Ignore pattern file</a>
+</ul>
+</ul>
+<li><a href="#Credits">Credits</a>
+<li><a href="#Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a>
+</ul>
+
+<hr><h4>Footnotes</h4>
+<ol type="1">
+<li><a name="fn-1"></a>
+<p>Do not install Linux immediately, we will correct it in the
+next paragraph. <code>;-)</code></p>
+
+</ol><hr>
+
+</body></html>
+
diff --git a/support/TVS/TVS/docs/tvs.info b/support/TVS/TVS/docs/tvs.info
new file mode 100644
index 0000000000..95853269f5
--- /dev/null
+++ b/support/TVS/TVS/docs/tvs.info
@@ -0,0 +1,898 @@
+This is tvs.info, produced by makeinfo version 4.0 from tvs.texi.
+
+INFO-DIR-SECTION TeX
+START-INFO-DIR-ENTRY
+* TVS: (tvs) TeX Versioning System
+END-INFO-DIR-ENTRY
+
+
+File: tvs.info, Node: Top, Next: Copying, Prev: (dir), Up: (dir)
+
+TeX Versioning System
+*********************
+
+ This is documentation of TeX Versioning System, software for storing
+complete source codes of TeX documents.
+
+* Menu:
+
+* Copying::
+* Introduction::
+* Installation::
+* Using `TVS' step by step::
+* Reference guide to `TVS' commands::
+* Config file and pattern files::
+* Credits::
+* Dealing with bugs in `TVS'::
+
+ --- The Detailed Node Listing ---
+
+Introduction
+
+* Why do you need `TVS'?::
+* What `TVS' can do?::
+* What do you need to run `TVS'?::
+
+Using `TVS' step by step
+
+* Useful commands::
+* Basic running `TVS'::
+* Ignoring files::
+* Format file sources::
+* Configuration file::
+* Limitations of `TVS'::
+* Fonts::
+* What to do with collected output::
+
+Reference guide to `TVS' commands
+
+* Invoking `TVS'::
+* Global switches::
+* Ignoring files and cutting filenames::
+* Output directory setting::
+* Storing format source files and fonts::
+
+Config file and pattern files
+
+* Config file::
+* Pattern file structure::
+
+Pattern file structure
+
+* Pathcuts pattern file::
+* Ignore pattern file::
+
+
+File: tvs.info, Node: Copying, Next: Introduction, Prev: Top, Up: Top
+
+Copying
+*******
+
+ The program `TVS' and its documentation is written and maintained by
+David Antos<, <xantos (at) fi.muni.cz>. (Of course substitute (at) with
+@.) Contact him when in trouble, but please read the documentation
+first.
+
+ Copyright (C) 2000 David Antos<
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+
+File: tvs.info, Node: Introduction, Next: Installation, Prev: Copying, Up: Top
+
+Introduction
+************
+
+ This is documentation of TeX Versioning System, software for storing
+complete source codes of TeX documents.
+
+ Version 1.0
+
+ (Documentation CVS ver. $Id: tvs.texi,v 1.23 2000/08/16 17:00:24
+antos Exp $)
+
+* Menu:
+
+* Why do you need `TVS'?::
+* What `TVS' can do?::
+* What do you need to run `TVS'?::
+
+
+File: tvs.info, Node: Why do you need `TVS'?, Next: What `TVS' can do?, Prev: Introduction, Up: Introduction
+
+Why do you need `TVS'?
+======================
+
+ It must have happened to you. You use TeX at work. You run another
+distribution at home. You wrote a beautiful document at home, you came
+to work and got error message `I can't find file `foo.tex''. There is a
+package missing in your work installation.
+
+ Or: You wrote a beautifully typeset book several years ago. You
+used em-TeX on M$-DOS machine. The book should be typeset again. You
+have only my_book.tex and no macros you used. What to do?
+
+ To be serious, there is nothing to be done now. But if you stored the
+_complete_ source of the documents, it didn't have to happen to you.
+And how to store the complete source? It's simple--use `TVS'.
+
+ Please! Please! Packing complete TeX document sources is a delicate
+and sensitive operation. Read the entire manual before you use `TVS' to
+do something important. This kind of software can be useful for you if
+and only if you use it correctly. I'm sorry for this but it's the fact.
+
+
+File: tvs.info, Node: What `TVS' can do?, Next: What do you need to run `TVS'?, Prev: Why do you need `TVS'?, Up: Introduction
+
+What `TVS' can do?
+==================
+
+ `TVS' can store complete source codes of TeX documents. It parses
+logs of TeX and finds files which were used to typeset the document.
+`TVS' can work in three levels:
+
+ * Only document log is examined. It stores all macros, styles,
+ included documents etc. you need.
+
+ * Document log and format log is examined. It also stores all source
+ files needed to build up format file.
+
+ * (experimental) Moreover dvips log is parsed and used fonts are
+ stored. This is not so useful as only `.pk' files may be obtained
+ this way.
+
+ Files collected by `TVS' can be used on any TeX installation to
+build up exactly the same document. Next, let us call the product of
+`TVS' a _complete source_.
+
+ There are several important features of `TVS':
+
+ * `TVS' is a Perl script, it runs wherever Perl is available (it
+ means nearly everywhere).
+
+ * There is no difference in using of `TVS' when running LaTeX,
+ plain, or whatever you want.
+
+ * On the destination (the place you typeset the complete source),
+ there is no need to run `TVS'. You only need to say TeX to find
+ files in working directory first.
+
+ * `TVS' is _not_ a version control system. It cannot handle versions
+ of your documents. There are other systems, e.g., `RCS' or `CVS',
+ designed to do this.
+
+
+File: tvs.info, Node: What do you need to run `TVS'?, Prev: What `TVS' can do?, Up: Introduction
+
+What do you need to run `TVS'?
+==============================
+
+ Hardware and OS requirements are simple. `TVS' is a Perl script so it
+runs wherever Perl 5.x is available. It uses packages Getopt::Long,
+File::Basename, File::Copy, and File::Path. These packages should be
+nevertheless in standard Perl distribution.
+
+ For information on Perl for your OS check <http://www.perl.com>.
+There should be no problem on most Unices, in Linux, Perl is usually a
+part of standard distribution.
+
+ Maybe you find useful having also `make' and `Texinfo' utilities
+installed on your system, but `Texinfo' is only needed to produce
+documentation in DVI, PostScript, Info, or HTML formats which are
+pregenerated in `TVS' distribution. And `make' is only to generate them
+comfortably.
+
+ There are some requirements for your TeX source codes to be able to
+handle them successfully. There is a problem with including files into
+your source. The usual and best way to do it is to have the main source
+at the top of the source tree and use relative paths in all variants of
+`\input' command. Avoid pathological inputs like `\includegraphics
+../../pictures/pict1.ps'. This should not bother you as nearly
+everybody does it.
+
+ Usually `TVS' is able to pack files referenced by "up-going"
+relative path (if it makes a conflict, `TVS' recognizes it), but you
+run into difficulties when re-typesetting the complete source and you
+have to correct all the things by hand.
+
+
+File: tvs.info, Node: Installation, Next: Using `TVS' step by step, Prev: Introduction, Up: Top
+
+Installation
+************
+
+ The program `TVS' and its documentation is written and maintained by
+David Antos<, <xantos (at) fi.muni.cz>. (Of course substitute (at) with
+@.) Contact him when in trouble, but please read the documentation
+first.
+
+ The following instructions assume that Perl version >=5 is installed
+on your system. For information on Perl consult <http://www.perl.org>.
+
+ The homepage of `TVS' is <http://www.fi.muni.cz/~xantos/tvs>. Here
+you can get `TVS' either file-by-file or as `tvs.tar.gz' file. `TVS'
+can also be obtained on CTAN in `support/TVS'.
+
+ Because of platform independence we decided not to prepare any
+"instant" packages.
+
+ If you downloaded `tvs.tar.gz', gunzip and un-tar it somewhere. If
+you downloaded separate files, reconstruct the original file structure
+anywhere you want.
+
+ On UNIX, make a link to `tvs.pl' from a directory which is in your
+`PATH', e.g. `/usr/local/bin', if your system decodes first lines of
+scripts to run them. In this case, it may be needed to correct the very
+first line of `tvs.pl' and put the right path to your Perl interpreter
+there. Otherwise you may still run `TVS' running `perl tvs.pl'. Install
+the documentation in your favorite format, where your docs-reader can
+find it. At least, `/usr/doc/tvs' wouldn't be a bad choice to store
+Post Script or HTML documentation.
+
+ Generally speaking, there is no need to install `TVS' to global
+directories if you are the only-one who runs it or you are not root.
+
+ Try `tvs --help'. If a TVS header and help message written,
+everything is OK.
+
+ If your standard Perl distribution does not contain packages
+Getopt::Long, File::Basename, File::Copy, and File::Path, get them from
+<http://www.perl.org>.
+
+ On M$ DOS/Window$ platforms the `.pl' suffix should be enough for
+Perl script to run, of course if Perl is correctly installed. Please do
+not expect me to make better support for M$ platforms as I do not run
+them.
+
+ On other platforms, if there are difficulties in installing or
+running `TVS', please drop me a line.
+
+
+File: tvs.info, Node: Using `TVS' step by step, Next: Reference guide to `TVS' commands, Prev: Installation, Up: Top
+
+Using `TVS' step by step
+************************
+
+ This chapter shows the usage of `TVS' and various examples. It also
+points out the limitations of this system, in other words what it _can_
+do for you (and it's quite a lot) and what it cannot. Yes, there are
+some unpleasant things you must do manually.
+
+* Menu:
+
+* Useful commands::
+* Basic running `TVS'::
+* Ignoring files::
+* Format file sources::
+* Configuration file::
+* Limitations of `TVS'::
+* Fonts::
+* What to do with collected output::
+
+
+File: tvs.info, Node: Useful commands, Next: Basic running `TVS', Prev: Using `TVS' step by step, Up: Using `TVS' step by step
+
+Useful commands
+===============
+
+ To make sure that `TVS' is correctly installed on your system, run
+`tvs -h'. You should obtain a short help on using `TVS'.
+
+ There are two useful switches you should know before starting
+experiments with `TVS'. You may increase verbosity level using `-v' or
+even `-vv' switch. *Note Global switches::, for detailed information on
+verbosity levels.
+
+ In following examples you may also specify `--dummy' command. It
+means that no files are really copied and no real output is produced.
+But everything else looks like real operations were performed.
+
+
+File: tvs.info, Node: Basic running `TVS', Next: Ignoring files, Prev: Useful commands, Up: Using `TVS' step by step
+
+Basic running `TVS'
+===================
+
+ Now it's time to look to the `examples' directory in your
+distribution. It contains source file `sample.tex' we will use to
+demonstrate the usage of `TVS'.
+
+ The first step you must not forget is to TeX your source correctly.
+Document `sample.tex' uses `\tableofcontents', so you must run
+ latex sample.tex
+
+twice. Make sure your document is TeXed correctly. It is _very very_
+important.
+
+ Let's try what `TVS' can do now. First try to run
+ tvs sample.log
+
+The most important for `TVS' is log file `sample.log'. You do not have
+to specify name with `.log' extension as it is tried to add
+automatically. What `TVS' now does? It goes through the file
+`sample.log' and finds all the files which are needed to build up the
+final document.
+
+ `TVS' created an output directory named `TVS-OUT'. Check its
+contents. In fact, on M$-DOS or M$-Windows machines this didn't work.
+(1) On UN*X machines, there is stupidly deep directory structure
+containing only one directory in another.
+
+ There is a way to avoid this. Please copy file `pathcuts.tvs' into
+the `examples' directory. Edit `pathcuts.tvs', replace path
+`/usr/TeX/texmf' with the path to your TeX main directory.
+
+ Delete the `TVS-OUT' directory and run
+ tvs -v -p pathcuts.tvs sample
+
+See what `TVS' does now. You may also check what is in the `TVS-OUT'
+directory. By `-p file' we say that `file' contains paths we want to
+shorten. On M$ file system, there is in fact needed to use this to cut
+things like `c:\' to be able to construct file names used in the output
+directory.
+
+ ---------- Footnotes ----------
+
+ (1) Do not install Linux immediately, we will correct it in the next
+paragraph. `;-)'
+
+
+File: tvs.info, Node: Ignoring files, Next: Format file sources, Prev: Basic running `TVS', Up: Using `TVS' step by step
+
+Ignoring files
+==============
+
+ As you can see, there is `sample.toc' in the output directory. We do
+not really need it as it can be always generated. Now let us show the
+way how to ignore files. Please copy file `ignpats.tvs' to the working
+directory. This file contains patterns which are compared to ends of
+files. Matching files are not copied to the output directory.
+
+ If you want to try it, delete the output directory and run
+ tvs -v -p pathcuts.tvs -i ignpats.tvs sample
+
+Now files ending with `toc' are missing.
+
+ _Warning:_ use this feature with care and only if you know what you
+are doing. Always make sure that files you want to ignore may be
+rebuilt up from the rest of the source.
+
+
+File: tvs.info, Node: Format file sources, Next: Configuration file, Prev: Ignoring files, Up: Using `TVS' step by step
+
+Format file sources
+===================
+
+ In fact, storing the complete document source may not be enough to
+be able to produce the same output. We must also store format source
+files. Storing only the format file itself doesn't help as this file is
+not binary compatible in general.
+
+ The main thing you need is to know where log files of generated
+formats are stored. To obtain this information consult your local
+documentation, or you may try to find files `latex.log, tex.log,
+pdftex.log', or ask your TeX administrator. It is also possible that
+your administrator deleted log files after generating formats. In this
+case ask him to regenerate format files and leave the logs untouched.
+This is not a good manner to delete log files of this importance. Your
+administrator may have even delete format file sources. In this case,
+ask him to reinstall them and better find a new TeX administrator.
+
+ You should make sure that formats were really generated on your local
+installation. They may have been generated on a binary compatible
+machine with other organization of TeX directories. If so, you must
+re-generate them. If you run a distribution which allows you to set
+local TeX installation root directory, this is quite possible. For
+example, on my texlive-4 I had to correct this.
+
+ In emergency, if you do not have root privilegies and you cannot
+globally make format logs correct, you still can generate formats in
+your own directory and use them overriding your system defaults. In
+this case, give your root my regards.
+
+ To store format sources, you need to tell `TVS' where logs are. It
+is done by `-f path' switch. Let's try to call
+ tvs -v -p pathcuts.tvs -f where_your_logs_are sample
+
+You should obtain output directory similar to previous one but
+containing subdirectory named `FORMAT', where complete source for format
+generating is stored.
+
+ If `TVS' is not able to determine format name correctly, you may
+force format name by adding `--fmtname name' into command line similar
+to previous example. You may try
+ tvs -v -p pathcuts.tvs -f where_your_logs_are --fmtname latex sample
+
+
+File: tvs.info, Node: Configuration file, Next: Limitations of `TVS', Prev: Format file sources, Up: Using `TVS' step by step
+
+Configuration file
+==================
+
+ The command lines we use are getting too long. If file `tvsrc' is
+located in the working directory, it is used as config file. You may
+also specify the config file explicitly by `-c filename' or `--config
+filename' switch.
+
+ Please copy file `tvsrc' to the `examples' directory. Config file
+has simple structure
+ <variable> <value>
+ Values set here may be always overridden by the command line. Setting
+values for ignore, pathcuts and format doesn't mean that files are
+ignored, paths cut and format sources stored by default. You must use
+switches `-i, -p' and `-f', but there is no need to follow them by
+values. It may seem a bit strange but it is done this way in order to
+prevent you from doing something you do not want to. It doesn't save
+your keystrokes but--we hope--your nerves.
+
+ If you edit the `format' entry in `tvsrc' to the path to your format
+logs, you may for example use
+ tvs -i -p -f -v sample
+
+to store the source with format with ignoring files and cutting paths
+instead of the long form without config file which goes
+ tvs -i ignpats.tvs -p pathcuts.tvs -f /usr/TeX/texmf/web2c -v sample
+
+ But if you use only
+ tvs -p sample
+
+then no format file is examined and no files are ignored, no matter that
+the config file exists.
+
+ In the config file you may also specify the default output directory
+name with `output' entry and the default verbosity level using
+`verbose' with value 0, 1, or 2. These values are used always and may
+be overridden with `-o' and `-v'.
+
+
+File: tvs.info, Node: Limitations of `TVS', Next: Fonts, Prev: Configuration file, Up: Using `TVS' step by step
+
+Limitations of `TVS'
+====================
+
+ Work of `TVS' is limited by the files which are noticed in log files.
+If you use anything which is done by external program, you must take
+special care on files you want to store. If you include graphics in
+Post Script, it may be included only by `\special' command and may not
+be noticed in log.
+
+ You must always ask yourself the main important question: _Which
+files--not used in TeX last run--I want to store?_
+
+ For example if you use a bibliography, your source is a `.bib' file.
+But in the last TeX run only sorted part of it, `.bbl' file is included.
+If the `.bbl' file is enough for you, it's good. But if you want to
+store sources for bibliography completely, you need also `.bib' file and
+`.bst' file, which contains bibliography style. And there is no way for
+`TVS' to know it as BibTeX is an external utility. That's why you must
+copy them to `TVS-OUT' by hand.
+
+ If you don't do so, you are still able to obtain exactly the same
+document, but you run into difficulties trying to do any modifications.
+
+ It is always better store more than you need. If you are a TeX
+beginner and you are absolutely not sure, it may be reasonable for you
+to preserve all the files from your working directory. Includes from
+TeX directory (e.g., `c:\tex\texmf') are handled correctly.
+
+
+File: tvs.info, Node: Fonts, Next: What to do with collected output, Prev: Limitations of `TVS', Up: Using `TVS' step by step
+
+Fonts
+=====
+
+ This is experimental!
+
+ Usually there is no reason to store also font source files. The
+exception is if your national modification of fonts changed its
+encoding or you use unusual fonts.
+
+ If you want to, you may run `dvips' with `-d' switch to produce a
+log file with list of opened files. Consult your `dvips' documentation
+how to do it. This switch is followed by number indicating what should
+be logged.
+
+ If you use `tvs -d dvips.log', a subdirectory FONTS is created in
+the output directory and all files used by dvips are stored there.
+Only font bitmaps may be obtained this way, so this feature is not very
+useful. If you want to store Metafont sources, you must do it by hand.
+
+ There is no guarantee of correct work of `-d' switch as `dvips' log
+changed.
+
+
+File: tvs.info, Node: What to do with collected output, Prev: Fonts, Up: Using `TVS' step by step
+
+What to do with collected output
+================================
+
+ Currently `TVS' implements no way of packing nor extracting collected
+complete source. Use any way of packing this directory you like
+depending of the platform you run `TVS' and the platform you will want
+to re-typeset your work in the future.
+
+ There is no way to run TVS on the destination. You must only tell TeX
+ * to generate the format file if format sources were stored,
+
+ * to generate fonts if fonts were stored,
+
+ * to find files in working directory and its subdirectories at first.
+ To do this, consult the local documentation.
+
+
+File: tvs.info, Node: Reference guide to `TVS' commands, Next: Config file and pattern files, Prev: Using `TVS' step by step, Up: Top
+
+Reference guide to `TVS' commands
+*********************************
+
+ This chapter describes overall structure of `TVS' commands and
+describes the function of the commands in detail.
+
+* Menu:
+
+* Invoking `TVS'::
+* Global switches::
+* Ignoring files and cutting filenames::
+* Output directory setting::
+* Storing format source files and fonts::
+
+
+File: tvs.info, Node: Invoking `TVS', Next: Global switches, Prev: Reference guide to `TVS' commands, Up: Reference guide to `TVS' commands
+
+Invoking `TVS'
+==============
+
+ General structure of calling `TVS' is
+ tvs [switches] filename
+
+where `filename' is a name of the main TeX log file. `TVS' must be run
+in the directory where main TeX log file is located.
+
+ Always make sure that your document is TeX-ed correctly (index is
+sorted, bibliography is present, pictures are included etc.)! Usually
+you have to run TeX several times to typeset the document (but we hope
+this doesn't surprise you).
+
+
+File: tvs.info, Node: Global switches, Next: Ignoring files and cutting filenames, Prev: Invoking `TVS', Up: Reference guide to `TVS' commands
+
+Global switches
+===============
+
+ These switches may be used to change globally behavior of `TVS'.
+
+`-h, --help'
+ Prints short usage and version information and exits successfully.
+ This switch doesn't need a filename as a parameter.
+
+`-v, --verbose'
+ Sets verbosity level. May used several times. There are three
+ verbosity levels:
+ * Level 0--only examined files and errors are written. This is
+ the default.
+
+ * Level 1--found files, copying info and errors are written.
+
+ * Level 2--extra talkative, writes all it does.
+ For level 1, use `-v' or `--verbose' once, for level 2, use it
+ twice. You may also specify `-vv', which is the most comfortable
+ way to do it.
+
+`-c file, --config file'
+ Specifies the configuration file name. *Note Config file::, for
+ details about configuration file.
+
+ If `--config' switch is not specified, file `tvsrc' in working
+ directory is used as a config file if it exists. There is no need
+ of having config file as all options may be set from command line.
+
+`--dummy'
+ Sets `TVS' to dummy mode. No files are changed, no files are really
+ copied to output directory, it is only shown what has to be done.
+ Useful if used with `--verbose'. (Inspired by similar switch in
+ cdrecord.)
+
+
+File: tvs.info, Node: Ignoring files and cutting filenames, Next: Output directory setting, Prev: Global switches, Up: Reference guide to `TVS' commands
+
+Ignoring files and cutting filenames
+====================================
+
+ Using following settings we may set files which shouldn't be copied
+to output and set usual paths we don't want to store completely.
+
+`-i [file], --ignore [file]'
+ Sets file with patterns of filenames which we don't want to be
+ copied to output. *Note Ignore pattern file::, for details about
+ ignore pattern file.
+
+ If `file' name is omitted, value from config file is used. If
+ `ignore' parameter is not set in config file, `TVS' terminates
+ with an error.
+
+`-p [file], --pathcuts [file]'
+ Sets file with path patterns to cut. *Note Pathcuts pattern file::,
+ for information about file path names handling.
+
+ If `file' name is not specified, value from config file is used. If
+ `pathcuts' parameter in config file is not specified, `--pathcuts'
+ parameter is silently ignored. It makes no harm to function of
+ `TVS' and if it causes filename conflict, `TVS' stops with an
+ error.
+
+
+File: tvs.info, Node: Output directory setting, Next: Storing format source files and fonts, Prev: Ignoring files and cutting filenames, Up: Reference guide to `TVS' commands
+
+Output directory setting
+========================
+
+`-o dirname, --output dirname'
+ Sets the name of output directory to `dirname'. This may be only
+ useful to override setting in config file. If config file doesn't
+ set output directory name, default name `TVS-OUT' is used and this
+ is created in working directory.
+
+
+File: tvs.info, Node: Storing format source files and fonts, Prev: Output directory setting, Up: Reference guide to `TVS' commands
+
+Storing format source files and fonts
+=====================================
+
+`-f [dirname], --format [dirname]'
+ Specifies directory where format log files are and packs format
+ file sources. If `dirname' is omitted, value from config file is
+ taken. If `format' parameter is not specified in config file,
+ `TVS' dies with an error. *Note Format file sources::, for details
+ about format source files extracting. Format file name is taken
+ from the main document log from the first line which contains
+ `format=name'.
+
+`--fmtname [name]'
+ Specifies format name, e.g. `plain', `latex', etc. Useful, if
+ format name cannot be found in log of document in form
+ `format=name'. Specifying `--fmtname [name]' doesn't imply
+ packing format sources. You must specify `--format', too. This
+ option cannot be specified in `TVS''s config file.
+
+`-d file, --dvips file'
+ Sets name of `dvips' log file. This cannot be specified in config
+ file. This is only experimental. *Note Fonts::, for information on
+ dvips log file examining and font storing. You would better not to
+ use this feature unless you know what you are doing.
+
+
+File: tvs.info, Node: Config file and pattern files, Next: Credits, Prev: Reference guide to `TVS' commands, Up: Top
+
+Config file and pattern files
+*****************************
+
+ In this chapter we discuss config file setting and structure and
+usage of files with patterns. These are used to shorten (cut) filenames
+to use reasonable short paths in output directory and to set files
+which we do not want to store at all.
+
+* Menu:
+
+* Config file::
+* Pattern file structure::
+
+
+File: tvs.info, Node: Config file, Next: Pattern file structure, Prev: Config file and pattern files, Up: Config file and pattern files
+
+Config file
+===========
+
+ We may set values for `verbose, format, ignore, pathcuts,' and
+`output' variables in config file.
+
+ If `TVS' is run with `--config' switch, it sets used config file
+name. If this is not used, default config file named `tvsrc' in working
+directory is tried. If it doesn't exist, no config file is used at all.
+There is no default config file location (e.g. `/etc/tvsrc' or
+something similar) because of the platform independence of `TVS'.
+
+ The structure of config file is quite simple. Everything after `#'
+and `%' characters is ignored. Lines with structure
+ <variable> <value>
+
+set values of variables. There must be just one white character between
+the `<variable>' and the `<value>'. There may be any count of white
+spaces before and after this structure on the line. Lines with other
+structure or specifying variables not listed below are silently ignored.
+
+ For example of config file, see file `tvsrc' enclosed with the
+distribution.
+
+ Variables have meanings as follows:
+
+`verbose'
+ Sets the default verbosity level. Reasonable values are
+ `0'
+ This is the default.
+
+ `1, 2'
+ Set verbosity level to 1 or 2. *Note Global switches::, for
+ description of verbosity levels.
+
+`format'
+ Sets the name of the directory where format log files are stored.
+ This is used only of `--format' or `-f' switch is set and may be
+ overridden by this. You should specify `format' parameter in config
+ file if you want to store format sources. And you should store
+ format sources. Simply--use it.
+
+`ignore'
+ Sets the name of file with patterns used to ignore files. *Note
+ Ignore pattern file::, for information about ignoring files. This
+ is used only if `--ignore' or `-i' switch is set and may be
+ overridden by this.
+
+`pathcuts'
+ Sets the name of file with patterns used to shorten the stored
+ filenames. Used only if `--pathcuts' or `-p' switch is set and
+ may be overridden by these.
+
+`output'
+ Sets the default output directory name. May be overridden by
+ `--output' or `-o' switch. If not set, default value `TVS-OUT' is
+ used.
+
+
+File: tvs.info, Node: Pattern file structure, Prev: Config file, Up: Config file and pattern files
+
+Pattern file structure
+======================
+
+ The structure of files which contain patterns is quite simple.
+Everything after `#' or `%' characters is ignored. A line of the file
+may start and end with white characters. These white characters are
+ignored. The remaining part of the line (if it is nonempty) is
+considered to be a pattern.
+
+ A pattern is treated as a Perl regular expression. It doesn't
+matter if you don't know what it is, all you need to know is seen from
+the examples. Nevertheless you may try `man perlre' or equivalent for
+reading documentation on you system.
+
+ Next, we'll discuss the usage of pattern files.
+
+* Menu:
+
+* Pathcuts pattern file::
+* Ignore pattern file::
+
+
+File: tvs.info, Node: Pathcuts pattern file, Next: Ignore pattern file, Prev: Pattern file structure, Up: Pattern file structure
+
+Pathcuts pattern file
+---------------------
+
+ This file is used if `--pathcuts' or `-p' switch is specified. An
+example is enclosed with the distribution and named `pathcuts.tvs'.
+
+ The file specifies list of patterns which are compared to the
+_beginnings_ of filenames. On _first match_ the matching part is cut
+and the rest of pattern list is not used. So it has no sense to have a
+pattern list
+ /usr/TeX
+ /usr/TeX/texmf
+
+as the second entry will be never used. But sequence
+ /usr/TeX/texmf
+ /usr/TeX
+
+may be reasonable. (It's an exercise why and when `:-)'.)
+
+ An example: Let us have pattern list containing `/usr/TeX/texmf'. If
+filename is
+
+it matches and is cut to
+ tex/latex/algorith/algorithm.sty
+
+File `inputs/my_macro.tex' doesn't match the pattern and is left
+untouched.
+
+
+File: tvs.info, Node: Ignore pattern file, Prev: Pathcuts pattern file, Up: Pattern file structure
+
+Ignore pattern file
+-------------------
+
+ This file is used when `--ignore' or `-i' switch is specified. An
+example named `ignpats.tvs' is enclosed.
+
+ This file specifies list of patterns which are compared to _ends_ of
+filenames. If _any_ of them matches, file is ignored and is not copied
+to output. Usually, suffices of files (e.g. `toc, bbl') are used here.
+If you want make sure that there is a dot before `toc' or `bbl', use
+`\.toc' and `\.bbl' entries in pattern file as entries are PERL regular
+expressions. For detailed information see `perlre(1)'.
+
+ Use this feature with care, it is usually better to have a superset
+of needed complete source then have _incomplete_ source. There may be
+files which loaded (and you don't know about them) with suffices you
+don't expect. Use it only if you know what you are doing. You've been
+warned.
+
+
+File: tvs.info, Node: Credits, Next: Dealing with bugs in `TVS', Prev: Config file and pattern files, Up: Top
+
+Credits
+*******
+
+ I would like to thank to:
+ * Petr Sojka, who made me to write `TVS' and helped me very much with
+ all the troubles and decisions we have had to make,
+
+ * Richard Boti'k, who lent me the "Perl Camel Book" for a fortnight,
+
+ * many others,
+
+ * Bubo, my home computer, as it surprisingly didn't get overheated
+ too much during the terribly hot spring of year 2000 in middle
+ Europe.
+
+
+File: tvs.info, Node: Dealing with bugs in `TVS', Prev: Credits, Up: Top
+
+Dealing with bugs in `TVS'
+**************************
+
+ Please send bug-reports to <xantos (at) fi.muni.cz> with subject
+`TVS bug'. Add information on platform, TeX installation and include
+log files which were parsed. Also please note version of TVS, both
+version number and CVS version code (it's the line containing `$Id:
+tvs.pl,v...'). You can get this information by running `tvs --help'.
+
+ If you tried to compare `.dvi' files obtained running TeX on various
+platforms using `TVS' complete source, please keep in mind they may
+differ if something depending on "the state of the computer"
+(especially date) was included.
+
+
+
+Tag Table:
+Node: Top189
+Node: Copying1301
+Node: Introduction2325
+Node: Why do you need `TVS'?2744
+Node: What `TVS' can do?3852
+Node: What do you need to run `TVS'?5338
+Node: Installation6899
+Node: Using `TVS' step by step9059
+Node: Useful commands9684
+Node: Basic running `TVS'10409
+Ref: Basic running `TVS'-Footnote-112170
+Node: Ignoring files12260
+Node: Format file sources13096
+Node: Configuration file15347
+Node: Limitations of `TVS'17034
+Node: Fonts18491
+Node: What to do with collected output19416
+Node: Reference guide to `TVS' commands20141
+Node: Invoking `TVS'20629
+Node: Global switches21243
+Node: Ignoring files and cutting filenames22710
+Node: Output directory setting23883
+Node: Storing format source files and fonts24399
+Node: Config file and pattern files25720
+Node: Config file26204
+Node: Pattern file structure28515
+Node: Pathcuts pattern file29321
+Node: Ignore pattern file30268
+Node: Credits31225
+Node: Dealing with bugs in `TVS'31763
+
+End Tag Table
diff --git a/support/TVS/TVS/docs/tvs.ps b/support/TVS/TVS/docs/tvs.ps
new file mode 100644
index 0000000000..a1d33f3e85
--- /dev/null
+++ b/support/TVS/TVS/docs/tvs.ps
@@ -0,0 +1,2158 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.86d Copyright 1999 Radical Eye Software
+%%Title: tvs.dvi
+%%Pages: 16
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentPaperSizes: a4
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips tvs.dvi -o tvs.ps
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2000.08.17:1231
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 600 600 (tvs.dvi)
+@start
+%DVIPSBitmapFont: Fa cmbxti10 14.4 1
+/Fa 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
+EA0FE0121271912B>46 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmbx12 13.14 20
+/Fb 20 118 df<923807FFE092B512FC020714FF021F81027F9038007FC0902601FFF0EB
+0FE04901C0497E4990C7487ED90FFC147F011F824A14FF495AA2137F5CA2715A715A715A
+EF078094C8FCA7EF07FCB9FCA526007FF0C7123F171FB3B3A2003FB5D8E00FB512F8A53D
+4D7ECC44>12 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0
+1010778F22>46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B200
+7FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC4881480101EBFF
+802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D7F00
+FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D17E0
+4B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131FEC3F
+804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC5A5A
+5A5A5A5AB8FC17F8A430477AC63D>I<D8038015E001E0140301FC143F9039FFE003FF91
+B612C017801700A25E5E16F05E5E93C7FC15FC15F001E790C8FC01E0C9FCAAEC1FFC01E1
+B512C001E714F001EF14FC9039FFE01FFFDA0007138001FC6D13C001F06D13E04915F049
+7F17F8C913FC167F17FEA417FFA3EA0FC0EA3FF0487EA2487EA317FEA34914FF6C4815FC
+5B018015F86CC74813F07F6C6C4913E0D80FF04913C0D807FC011F13806CB46CB512006C
+90B512FC6C5D013F14C0010F91C7FC010113F030487AC63D>53 D<B712FEA5D8000FEBE0
+00B3B3B3ABB712FEA5274B7DCA2E>73 D<B912C018FCF0FF8019F085D8001F9026800007
+13FE05007F063F1380060F13C07213E01AF0841AF8A27213FCA31AFEA81AFCA34E13F8A2
+1AF0601AE04E13C0063F138095B51200050713FC92B75A19E096C7FC18F803C0CAFCB3AB
+B712FCA5474B7BCA54>80 D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFE3B03
+FC0007FF80486C6D7F6D7F486D6C7F83167F83A2707E6C90C7FC6C5A6C5AC9FCA5ED1FFF
+021FB5FC49B6FC130F013FEBC03F9038FFFE00000313F04813C04890C7FC485A485AA248
+5AA2485AA4167FA26D14FF007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C90
+38E07F076C9038FFFE0300014A7ED8003F9038F0007F0103018090C7FC37347CB23C>97
+D<91380FFF8091B512F8010314FF010F15804948C613C0D97FF8EB1FE0D9FFE0EB3FF048
+49137F4849EBFFF84890C7FCA2485A121FA24848EC7FF0EE3FE0EE1FC0007F92C7FC5BA2
+12FFAC127FA27FA2123FA26C6C153EA26C6C157E177C6C6D14FC6C6D14F86C6D13036C6D
+EB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C010014F0020F13802F347CB237
+>99 D<EC0FFF91B512F0010314FC010F14FF90263FFE077F90267FF0007F49486D7E4801
+806D7E486F7E4890C7120F484881707E121F491403003F82A2127F5B701380A212FFA390
+B8FCA401F8CAFCA5127FA27FA2123FA26C6CED0F80A26C6C151F6C17006E5C6C6D147E6C
+6D5C6C6D495AD93FFCEB07F0903A1FFF803FE0010790B55A010192C7FC6D6C13FC020713
+C031347DB238>101 D<DA7FFCEB0FE00103B538807FF8010F9138E1FFFC013F02FB13FE
+903A7FF01FFFF39026FFC007138348D90001130348168348486DEBC1FCEFC0F8000FEEE0
+0049147F001F82A9000F5E6D14FF00075EA26C6C495B6C93C7FC6C9038C007FE9138F01F
+FC4890B55A01EF14E0D803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612FC
+EEFFC06C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83FF0
+140049153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6CED
+7FE0D80FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15F0010715
+80D9003F01F0C7FC37497DB13D>103 D<EB7FC0B5FCA512037EB3923801FFC0030F13F8
+033F7F4B13FFDBFE077F9138C1F0039126C3E0017FDAC78080ECCF0014DE02DC6D7F14FC
+5CA25CA35CB3AAB6D8C07FEBFFE0A53B4C7BCB44>I<EB7FC0B5FCA512037EB3B3B3AAB6
+1280A5194C7BCB22>108 D<903A7FC001FFC0B5010F13F8033F7F4B13FFDBFE077F9138
+C1F00300039026C3E0017F6CD9C78080ECCF0014DE02DC6D7F14FC5CA25CA35CB3AAB6D8
+C07FEBFFE0A53B327BB144>110 D<913807FF80027F13F80103B6FC010F15C090261FFE
+017F903A7FF0003FF849486D7E480180EB07FE4890C76C7E4817804980000F17C048486E
+13E0A2003F17F0A249157F007F17F8A400FF17FCAB007F17F8A46C6CEDFFF0A2001F17E0
+A26C6C4A13C0A26C6C4A13806C6D4913006C5E6C01E0EB1FFC6D6C495A903A3FFE01FFF0
+010FB612C0010392C7FCD9007F13F80207138036347DB23D>I<90397FC007FFB5017F13
+E002C1B512FC02C714FF9126CFF80F7F9126DFC0037F000301FFC77F6C496E7E02F8814A
+6E7E717E4A81831980A28319C0A37113E0AC19C05FA319805F19005F606E143F6E5D4D5A
+6E4A5A02FF495BDBC0075B9126EFF01F5B02E7B548C7FC02E114F8DAE07F13E0DB0FFEC8
+FC92CAFCAFB612C0A53B477CB144>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E1
+1380EC8F830003D99F0713C06C139E14BCA214F8A24A6C13806F13006F5A4A90C7FCA45C
+B3A8B612E0A52A327CB132>114 D<903907FF8070017FEBF1F048B6FC1207380FFC0139
+1FE0003F4848130F491307127F90C71203A2481401A27FA27F01F090C7FC13FCEBFFC06C
+13FEECFFE06C14FC6C806CECFF806C15C06C15E06C15F06C7E011F14F8010114FCEB000F
+EC007FED1FFE0078140F00F8140715037E1501A27E16FC7E15036D14F86D13076D14F001
+F8EB1FE001FFEBFFC04890B51280486C1400D8F81F13FCD8E00313C027347CB230>I<14
+F8A51301A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007F
+F8C7FCB3A7167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14
+806D6C1300EC0FFC26467EC430>I<D97FE0EC3FF0B5EC7FFFA5000315016C81B3AC5EA2
+5EA25E7E6EEB0F7F017F021E7F6E017CEBFFE090393FFE01F86DB512F0010714E0010114
+C09027003FFE00EBC0003B337BB144>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmtt9 9 3
+/Fc 3 60 df<127012F812FE7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA27FA2EB1F
+80A3EB0FC0A4EB07E0ACEB0FC0A4EB1F80A3EB3F00A2137EA25B1201485A5B1207485AEA
+3FC0485A48C7FC5A12F81270133A7AB327>41 D<007FB512F8B612FCA46C14F81E067C99
+27>45 D<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00C7FCAC120FEA3F8013C0127F13E0A3
+123FA2120F120713C0120FA2EA3F80EA7F005A5A12F812700B2A739F27>59
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd cmr9 9 23
+/Fd 23 122 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C
+121C5A5A126009177A8715>44 D<123C127E12FFA4127E123C08087A8715>46
+D<B77E16F016FE3A01FE0001FF00009138003FC0EE0FE0707E707E707E707E177E177FEF
+3F80A2EF1FC0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F18005F17FE5F4C5AEE07
+F04C5AEE3FC000014AB45AB748C7FC16F8168034337EB23B>68 D<B512FEA3D803FEC9FC
+6C5AB3A9EE0180A416031700A45EA25E5E5E5E16FE00031407B7FCA329337DB230>76
+D<EB7F803803FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FCA4EB01
+FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C131F6C13
+3B3A3F8071F180391FC1E1FF2607FFC013003900FE003C22237DA126>97
+D<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120FEA1F80123F903800
+03E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F14706C6C13E03903
+F001C03900FC0F8090383FFE00EB07F01D237EA122>99 D<153FEC0FFFA3EC007F81AEEB
+07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA12
+7E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE01300
+26357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0390FC007E0381F800315
+F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA5127E127FA26C1418A26C6C133800
+0F14306D13706C6C13E03901F003C03900FC0F00EB3FFEEB07F01D237EA122>I<151F90
+391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80
+EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9
+FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80
+48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22
+337EA126>103 D<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C90
+38F7007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0F
+C0EA1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB2
+15>I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>108
+D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7
+003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A3
+3C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE49
+7FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F8039
+01F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE15
+80A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93F
+FEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE
+7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F
+6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325
+307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F80
+49C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE003C133E
+48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0F
+FF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1FFE038C0
+7F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000
+AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D803F0133F
+00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90387E073F
+EB1FFED907F8130026227EA02B>I<B53A1FFF81FFF0A33C07F801FC003F8001F049EB1E
+0000030100141C816C6C017C1318A26D017E1338000002FE1330A290267E01FF5B159F16
+8090263F030F5BA216C0903A1F8607C180A202C613E390260FCC0390C7FCA2D907FC13F6
+ECF80116FE6D486C5AA36D481378A36D48133034217F9F37>119
+D<B53801FFF8A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C09038
+1F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC09038060F
+E0EB0C0790381C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA326207F
+9F29>I<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C
+017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14
+FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA70
+1CEA7838EA1FF0EA0FC025307F9F29>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe cmr7 7 1
+/Fe 1 50 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff cmtt12 17.28 3
+/Ff 3 87 df<DA0FFF147C027F01F013FC0103B538FE01FE010FECFF814915E3017F15F3
+90B8FC5A5A48EBFC01489038E0003F0280130F4890C7120301FC80484880177F4848153F
+5B171F12FF5B170FA31707A27FA2715A6C7E94C8FC7F6C7E7F6C7E14C06C13F06C13FEEC
+FFE06C14FE6CECFFE06C15FF013F15E06D15F8010715FE010181D9003F15C0020381DA00
+3F80030380ED003F04037F04007FEF3FFF83711380837113C083A28319E0EA3F80007F17
+7F487EA57F18FFA219C06D5DA26D17806D5D6D5D6D4B130002C04A5A02F0147F02FC4A5A
+9126FFE0075B92B65A6060019F5E018793C7FC010115FC6D6C14F0007E010F14C0007C90
+26007FFCC8FC3B5C79D94A>83 D<003FB912FE4884BB1280A7903BC0000FFC0001AB6C48
+7013006CC7167EC893C7FCB3B3B3A3027FB67E91B77EA24982A36D5EA26E5D41587CD74A
+>I<263FFFFE020FB51280486D4A14C0B66C4914E0A56C91C76C14C06C496E1480000101
+C09139007FF0006C60A36E15FF017F5FA36E5C013F5FA36E5C011F94C7FCA36E5C010F5E
+A36E140F01075EA36E141F6D5EA36F133F6D5EA46D6D495AA46E6C495AA46E6C485BA46E
+6C4890C8FCA4020F5CEDFC07A302075CA2EDFE0FA202035CA2EDFF1FA26E5CA46EEBBFE0
+A416FF6F5BA46F5BA36F90C9FC6F5A6F5A43597DD74A>86 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg lcircle10 10 4
+/Fg 4 12 df<EA7FC0EAFFFEEBFFE06C13FCC66CB4FC010313C09038003FF0EC07FCEC01
+FE9138007F80ED1FC0ED07F06F7EED00FC167E82707E707E707E707E1601707E83177C83
+A2831880170FEF07C0A2170318E0A2170118F0A2170018F8A21878A4187CA2183CA71818
+3636B28364>8 D<1818183CA7187CA21878A418F8A218F01701A218E01703A218C01707
+A2EF0F80171F1800173EA25F17FC5F4C5A16034C5A4C5A4C5A4CC7FC167E5EED03F84B5A
+ED1FC0ED7F80DA01FEC8FCEC07FCEC3FF0903803FFC0017F90C9FC387FFFFCB512E049CA
+FCEA7FC03636B2B564>I<126012F0A77EA21278A3127CA2123C123EA2121E121FA27E7F
+A26C7E7F12036C7EA26C7E7F137E133E7F806D7E6D7E6D7E6D7E6D7E147F6E7EEC0FC0EC
+07F0EC03FCEC00FFED7FC0ED1FF8ED07FF030113FC9239007FFFF8040F13FC1601933800
+07F8363680B564>I<EF07F8933801FFFC160F047F13F8923901FFFC00030790C7FCED1F
+F8ED7FC04BC8FCEC03FCEC07F0EC0FC0EC3F804AC9FC14FC495A495A495A495A495A91CA
+FC133E137E5B5B485AA2485A12075B485AA290CBFC5AA2121E123EA2123C127CA21278A3
+12F8A25AA712603636808364>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh cmti10 10.95 30
+/Fh 30 125 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C
+137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218
+E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214
+3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101
+13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2
+49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12
+D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 D<131EEB3F80137FEBFF
+C05AA214806C13005B133C90C7FCB3120FEA3FC0127FA212FFA35B6CC7FC123C122777A6
+1C>58 D<147F903801FFC090380780F090381E00784913380170133C49131C4848131E48
+5A120790C7FC120E121E121C003C143E0038143C0078147C1270007C14F8B41301EC03F0
+1407EC0FE048EB1FC0EC3F800078EBFF00C6485AEB03F8495AEB1FE0495A49C7FC13FE48
+5A485A13E0485A1470EB80F0000F5B1300495AEA0703495A019FC7FCEA03FCEA00F090C8
+FCA8EA0780EA1FE0123FA2127FA35B6C5A001EC8FC1F416FC02E>63
+D<49B812F8A390260003FEC7121F18074B14031801F000F014075DA3140F5D19E0A2141F
+4B1338A2EF7801023F027013C04B91C7FCA217F0027F5CED80011603160F91B65AA3ED00
+1F49EC07805CA3010392C8FC5CF003804C13070107020E14005C93C75A180E010F161E4A
+151C183CA2011F5E5C60A2013F15014A4A5A1707017F150F4D5A4A147F01FF913807FF80
+B9FCA295C7FC3D3E7BBD3E>69 D<49B6FC5BA2D9000313005D5DA314075DA3140F5DA314
+1F5DA3143F5DA3147F5DA314FF92C7FCA35B5CA313035CA313075CA3130F5CA3131F5CA3
+133F5CA2137FA25C497EB67EA3283E7BBD23>73 D<48B9FCA25A903AFE001FF00101F891
+38E0007FD807E0163E49013F141E5B48C75BA2001E147FA2001C4B131C123C003814FFA2
+007892C7FC12704A153C00F01738485CC716001403A25DA21407A25DA2140FA25DA2141F
+A25DA2143FA25DA2147FA25DA214FFA292C9FCA25BA25CA21303A25CEB0FFE003FB67E5A
+A2383D71BC41>84 D<277FFFFE01B500FC90B512E0B5FCA20003902680000790C7380FFC
+006C90C701FCEC07F049725A04035EA26350C7FCA20407150EA2040F5D1A3C041F153862
+163B6216734F5A6D14E303014B5A6C15C303034BC8FC1683DB0703140E191E030E151C61
+031C7F61ED380161157003F04A5A15E002014B5A15C0DA03804AC9FC60DA0700140E6014
+0E605C029C5D14B8D97FF85D5C715A5C4A5DA24A92CAFC5F91C7FC705A137E5F137C5F13
+7801705D53406EBD5B>87 D<91B690383FFFFC605E020101E0010F13006E49EB07F84C6D
+5A19C06F6C495A96C7FC033F140E705B183C031F5C705B4D5A030F5C70485A4DC8FC0307
+130EEEFC1E5F03035BEEFE705F6F6C5A5FA26F90C9FC83A2707EA216FF4B7F5DED079FEE
+1FF0150EED1C0F03387F1578EDF007DA01E07F15C09138038003DA07007F140E021E1301
+4A805C02707F4A81495A4948147F01078249C8FC013F6F7E496C147F2603FFC049487EB5
+00F8011FEBFFE0A261463E7CBD44>I<147E49B47E903907C1C38090391F80EFC090383F
+00FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C
+90C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F
+13E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A7
+2E>97 D<EB1FC0EA0FFF5CA2EA003FA291C7FCA25BA2137EA213FEA25BA21201A25BA212
+03A25B147E3907F1FF809038F783E09038EF01F013FE390FF800F8A24913FC49137C485A
+157E5B15FE123FA290C7FCA248130115FC127EA2140300FE14F85AA2EC07F0A215E04813
+0F15C0141F15800078EB3F00127C147E003C5B383E01F8381E03E06C485A6CB4C7FCEA01
+F81F4076BE2A>I<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380017E
+131F49137F485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A5AA6
+481403007E5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838003F
+C0212977A72A>I<EE3F80ED1FFF1700A2ED007FA2167EA216FEA25EA21501A25EA21503
+A25EA21507A25E147E903801FF8F903807C1CF90391F80EFC090383F00FF017E137F5B48
+486D5A485AA2485A000F92C7FC5B001F5CA24848137EA215FE127F90C75AA214015A485C
+A2140316384814F0A21407167891380FE070127C021F13F0007E013F5B003E137FECF3E1
+261F01E35B3A0F8781E3802703FF00FFC7FCD800FC133E294077BE2E>I<EC3F80903801
+FFE0903807E0F890381F803CEB3E0001FC131E485A485A12074848133E49133C121F4848
+137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45AA61506150E151E007C14
+3C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF038007F801F2976A72A>
+I<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE1303903807E001D90FC013FCEB
+1F80A2EB3F004914F8137E01FE1303A2484814F0A2150712034914E0A2150F12074914C0
+A2151FA216805B153F1203ED7F006D5BA200015B0000495A9038F80F7E90387C1EFEEB1F
+F8903807E0FC90C7FC1401A25DA21403A25D001C1307007F5C48130F5D4A5A4AC7FC4813
+7E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>103 D<EB01FC13FF5CA21303A2
+5CA21307A25CA2130FA25CA2131FA25CA2133FA291C8FCEC03F890387F0FFE91383E0F80
+D97E7813C0ECE007D9FFC013E014801400A2485A5BA25B0003140F16C05BA20007141F16
+805BA2000F143F16005B5D001F147EEDFE074913FCA2003F0101130FEDF80E1300161E48
+ECF01CA2007E1538A200FE1570020013E048EC7FC00038EC1F0028407ABE2E>I<1478EB
+01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0121E121CEA3C
+0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA212035B143812
+0713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03FEEA00F8163E
+79BC1C>I<EB07F0EA03FF14E0A2EA000FA214C0A2131FA21480A2133FA21400A25BA213
+7EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123FA290
+C7FCA25A1307127EA2EAFE0F130E12FCA2131E131CA2EA7C381378EA3C70EA1FE0EA0780
+144079BE17>108 D<D801F0D93F80137F3D07FC01FFE003FFC03D0F3E07C1F80F83F03D
+0E1F0F00FC1E01F8001E011C90387C3800001C49D97E707F003C01F05C0038157F4A5C26
+783FC05C12704A91C7FC91C7127E00F003FE1301494A5CEA007EA20301140301FE5F495C
+A203031407000160495C180F03075D0003051F13E0494A1480A2030FEC3F810007F001C0
+495CA2031F91383E0380120F494AEC0700A2033F150E001FEF1E1C4991C7EA0FF80007C7
+000EEC03E0432979A74A>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC
+001E011C137C001C49137E003C13F012385C38783FC012705C91C7FC00F015FE495CEA00
+7EA2150101FE5C5BA2150300015D5B15075E0003020F13704914C0A2031F13F00007ED80
+E05B1681EE01C0120F49EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A7
+33>I<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F000F80017E14C049130748
+4814E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F
+80A2ED7F00A248147E007C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807
+C0FC3801FFF038003F80242977A72E>I<903903E001F890390FF807FE903A1E7C1E0F80
+903A1C3E3C07C0013C137801389038E003E0EB783F017001C013F0ED80019038F07F0001
+E015F8147E1603000113FEA2C75AA20101140717F05CA20103140F17E05CA20107EC1FC0
+A24A1480163F010F15005E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1FC7FCEC0F
+FCEC03E049C9FCA2137EA213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D3A80A72E
+>I<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0001EEB380F001C1370003C
+EBE01F123814C0D8783F14C00070903880070092C7FC91C8FC12F05BEA007EA313FE5BA3
+12015BA312035BA312075BA3120F5BA3121F5B0007C9FC232979A726>114
+D<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E49137E15FE
+A2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F01300140F
+14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F8012700078EB1F
+006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A25CA2130F
+A25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA25BA21201
+A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB00781470
+14F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B4141C26038F
+80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2D8F03F13
+03140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C0491481A2153F
+1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F0F1C9039
+1FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA0707000E
+01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91C712E012
+005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D15780001
+14706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I<017C167048B491
+387001FC3A038F8001F8EA0707000E01C015FE001E1403001CEDF000EA3C0F0038177C15
+07D8781F4A133C00701380A2D8F03F130F020049133812005B017E011F14784C137013FE
+5B033F14F0000192C712E05BA2170100034A14C049137E17031880A2EF070015FE170E00
+010101141E01F86D131C0000D9039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03FFC090
+2703F0007FC7FC372979A73C>I<137C48B4143826038F8013FCEA0707000E7F001E1401
+001C15F8EA3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B017E13
+0F16C013FE5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301EBF803
+0000130790387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA24A5AD8
+FF0090C7FC143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8263B79
+A72C>121 D<BD12E0A2530276985D>124 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi cmtt10 10.95 62
+/Fi 62 127 df<903907C007C0A2496C487EA8011F131FA202C05BA3007FB7FCA2B81280
+A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F90B512FE4881B81280A36C16
+00A22701FC01FCC7FCA300031303A201F85BA76C486C5AA229387DB730>35
+D<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFEFD13C09039F0
+FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A36CEC03F0A200
+7F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F011F7F01037F01
+00148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FCA35AA26CEC03
+F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C5C6C5CC614F0
+013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<D803C0EB01E0D80FF0130348
+6C497E487E150F487ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E
+01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA2
+92C8FC5CA2495AA25C1303A25C1307A290390FF001E0ED07F84A487E011F497EA24A487E
+133F163F90267F807F1380ED7E1F14005BA25B1201A24848EB7F3F033F13004914FF1207
+6F5A5B6F5A6C486D5A0001EC01E029477DBE30>I<EA07C0EA0FF0EA1FF8A213FCA213FE
+120F1207EA007EA513FE13FCA2120113F81203EA07F0120FEA1FE0127FEAFFC013801300
+127C12380F1D70B730>39 D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F
+80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F
+123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FC
+EB03FEEB01FF7F147F141E184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C
+7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147F
+AD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A
+485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<EA03E0EA0FF0EA1FF813
+FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFF
+E0EA7F801300123C1019708B30>44 D<007FB612F0A2B712F8A36C15F0A225077B9E30>
+I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED
+03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA2
+4A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA249
+5AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127C
+A225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049
+137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FC
+A400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB
+1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5B
+D900FEC7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FC
+A213EF138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C14F81F3977B830>
+I<EB07FC90383FFFC090B512F00003804814FE4880261FF80F1380263FE00113C09038C0
+007F4848EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218C8FCA2150716F015
+0F16E0151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC49
+5A495AEB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7
+FCA37E6C15F025397BB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00
+C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>58
+D<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B0107
+13C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7F
+F87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91
+381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>60
+D<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157D
+A530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF
+6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FED
+FFF05C020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48
+485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<EC
+1FE0ECFFF8010313FE010F7F4914804914C090397FF03FE09038FF800F4890380007F0D8
+03FC13033A07F801FBF89038F007FF380FE01F4A13FCEA1FC0495A003FEBFF0F903800FE
+07903901FC03FE007FEBF801EA7E03ECF000A2EAFE0700FC49137EAA00FE6D13FED87E03
+14FCA2ECF801D87F0114F8003FEBFC03903900FE07F0903880FF0F001F90387FFFE06D6C
+13C0EA0FE06E13803A07F007FE009038F801F86C6CC7127C6CB414FE6CEB800390387FF0
+1F6DB512FC6D14F86D14E0010314C00100EBFE00EC1FF0273A7CB830>64
+D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FE
+A590387F007FA4498049133F90B6FCA34881A39038FC001F00038149130FA40007814913
+07A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<91387F803C903903FFF0
+3E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B484813
+03A2484813015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA2
+7F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06D
+B512C06D14806D1400010713FC6D13F09038007FC0273A7CB830>67
+D<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FC
+A69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>70
+D<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00
+B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C49
+6C13E02D387FB730>72 D<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB7
+1280A46C1500213879B730>I<D83FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C
+4913E00007160001EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1
+137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD8
+3FFC903801FFE0486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730>77
+D<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0
+A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8
+13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>79
+D<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA282178016
+3FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB038
+7FFFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F
+9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93
+C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EB
+FFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82
+D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813
+7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C
+14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07
+F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016
+0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA4
+3AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<
+3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C
+6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038
+007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B54913E06E5AA24A7E6C486D13C0D8
+07F0903801FC00A26D130300035DA46C6C495AA46C6C495AA46D131F6D5CA3EC803F013F
+5CA46D6C48C7FCA490380FE0FEA401075B14F1A301035BA314FB01015BA314FFA26D5BA4
+6E5A6E5A2B397EB730>I<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC00
+7F806D91C7FC00005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D
+5BA26D5BA26D90C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F008149
+7F49800001143F49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D
+130029387DB730>88 D<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019
+476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017F
+A26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E
+7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07
+F8A21503A2ED01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5
+FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8A36C15F0A225077B7D30>95
+D<1338137CEA01FE12031207EA0FFC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EA
+FFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70BE30>I<EB3FFC48B57E4814E04880
+488048809038F00FFE9038E001FF806F7E6C48133F6C4880C8121FA491B5FC130F137F48
+B6FC12075A48EBC01F383FFC00EA7FE0138048C7FC5AA46C143FA26C6C137F9038C001FF
+263FF80FEBFFC06CB712E0A2000714F76C14C3C6020013C0D93FF090C7FC2B2A7CA830>
+I<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82
+ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160F
+A217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E
+7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B6
+12804815C048EB807F3907FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FC
+A25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF
+806C90B5FCC615006D5B011F13F801075B01011380232A7AA830>I<913801FFE04A7F5C
+A28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49
+131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F
+390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FC
+C8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC
+007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516
+F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE0
+6C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713
+E0021F13F05C4A13F891B5FC491387903803FE079138FC03F0903907F800C04A1300A800
+3FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C
+5C25397DB830>I<D903FC13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F90
+3AF801FE07C048486C6CC7FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C48
+5AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C0
+4815F0488148813A3FE0001FFE0180130148C8127F007E8100FE168048151FA56C153F00
+7FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F
+13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80
+023F13E091B57E90B67EA29138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3
+A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<
+14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003F
+B612C04815E0B7FCA27E6C15C023397AB830>I<EA7FF8487EA4127F1200AB0203B51280
+4A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A
+5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E1507
+6F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>107
+D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC
+137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03
+F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13
+C0A46C486C01071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E
+90B67E7E6C9038FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF8
+1FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F
+13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2
+4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15
+F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C
+13FC6D5B010F13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000
+FF90B57E90B612FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F49
+15E0160FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF003130091
+38FC0FFE91B55A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B
+6C5B2C3C80A730>I<ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C9038
+FFFC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC48
+80B7FCA26C5C6C5C2A287EA730>114 D<90381FFC1E48B5129F000714FF5A5A5A387FF0
+07EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E00001
+14F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB
+3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830
+>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FC
+A5ECE003010FEB07F814F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF0
+26337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A4
+1501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF801
+0001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C1380
+3B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7
+FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E
+5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7
+EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147D
+A2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D
+277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE
+90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F8190
+3803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE
+6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3F
+FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C
+137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15
+FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA200
+0F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA6
+30>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E4913
+00C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E
+4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>I<017C133848
+B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713C0486C1380D8
+7C0113003838007C1F0C78B730>126 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fj cmtt12 14.4 3
+/Fj 3 87 df<DAFFF01378010701FE13FC011FEBFF81017F14E190B612F94815FF5A48EB
+C03F390FFE0003D81FF87F4848EB007F49143F4848141F5B160F00FF150790C8FCA31603
+A37F705A6C6C91C8FCA26C7E7F6C7E13FE380FFFE06C13FE6CEBFFE06C14FE6CECFFE001
+3F14F8010F14FE010380D9007F14C0020380DA003F7F15039238007FF8EE1FFC1607707E
+A2707E82A21880003E167F127F5AA56D15FF1800A26D5C6D5D6D14036D4A5A01FE4A5A6D
+6C133F9139FC01FFF091B65A5F486C5D011F4AC7FC01075C48C614E00078010F90C8FC31
+4B7AC93E>83 D<003FB812FC5AB912FEA590C7EB0001A9007EEE00FCA2C81500B3B3AC49
+B67E4981A56D5D37497DC83E>I<263FFFF0903807FFFE4883B56C491480A36C496D1400
+6C5FD801FEC8EA3FC0A36D157F6C5FA36E14FF017F93C7FCA36E5B013F5DA36E1303011F
+5DA36E1307010F5DA36E130F01075DA36E131F01035DA36E133F01015DA46D6C495AA46E
+6C48C8FCA491383FC1FEA4021F5B15E3A3020F5BA215F7A202075BA215FFA26E5BA46E5B
+6E5B6FC9FC394A7EC83E>86 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fk cmbx12 17.28 35
+/Fk 35 122 df<94387FFF80041FB512F04BB612FC030F81037F6F7E4AB5D8E0077F4A49
+C76C7E020F01F0EC1FF04A01C0147F4A90C8487E4A485C4A484A7F49495C495BA2495B4E
+7F49705B5DA3725B725B725B735A96C9FCAB0503B512FEBBFCA6D8000F01E0C7120184B3
+B3AF003FB6D8F803B71280A651657DE45A>12 D<16F04B7E1507151F153FEC01FF140714
+7F010FB5FCB7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49
+D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF
+E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001
+FC17F8486C816D17FC6E80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5D
+EA01F0CA14FEA34D13FCA219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B
+604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F
+4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD9
+0FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5
+FC020F14F8023F14FF49B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F
+49486D8049C86C7F484883486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B
+6C5B6C495E011FC85A90C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F13809226
+0FFFFEC8FC020FB512F817E094C9FC17F817FF91C7003F13E0040713F8040113FE707F71
+7F7113E085717FA2717F85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A
+80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C491480
+6C01F0010791C7FC6C9026FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14
+F0020149C9FC426079DD51>I<F01F804E7E187F18FFA25F5F5F5FA25F5F5FA294B5FC5E
+5E5EA25E5EEE3FBFEE7F3FA216FEED01FCED03F8ED07F0A2ED0FE0ED1FC0ED3F8016005D
+15FE4A5A4A5AA24A5A4A5A4A5A4A5AA24AC7FC14FE495A5C1303495A495A495A5C133F49
+C8FC13FE485AA2485A485A485A5B121F485A48C9FC12FEBCFCA6CA6CEBC000B1037FB8FC
+A6485E7CDD51>I<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B712
+8019006060606060606095C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFC
+ADED3FFE0203B512F0020F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F8
+01007F02E06EB4FC02806E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC
+83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B
+4917F8EA3FF001804B13F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B
+6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D900
+3F1480020301F0C8FC406078DD51>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D80
+A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04038217
+F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E03
+016F7FA24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E037F707F
+93B9FCA292BA7EA24A85A203FCC912070203865D020771805D86020F864B82021F865D87
+023F864B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E092B812FE
+A66F647BE37A>65 D<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114F8DF003F
+7F080F13FF74807480867480757FA2757FA28987A289A965A26365A2515BA298B55A505C
+505C5091C7FC505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3FF801CE0
+0480C8001F13F8080713FE08016D7E7480757F757F757F89757F89871E80871EC0A41EE0
+87A663A21EC0A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97B6C7FCBD
+5A1CF81CE099C8FC1BF898C9FC63627AE173>I<4DB5ED03C0057F02F014070407B600FE
+140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807
+FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291
+B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84
+A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50F
+C0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D
+4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE
+07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648
+C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I<BB12E0
+F2FF801BF01BFE757E1CF0D800010280C7000780DF007F13FE080F6D7E0801807480093F
+7F090F13FC757F757F877580767F8A88767F8A888AA2767FA28A881F80A37614C0A41FE0
+A5881FF0B05214E0A51FC0A4521480A31F006466A2525BA2525BA2525B666499B55A515C
+5191C7FC515B515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD12F01CC051
+C9FC1BF81B8008E0CAFC6C627AE17C>I<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A633
+627CE13C>73 D<BA12F8F1FFE01AFEF2FFC01BF01BFED800010280C76C7F070714C00700
+14F0747F081F7F747F747F7480A2748089A37480A389A865A3505CA265A2505C9AC9FC50
+5B505B505B087F5B4FB55A0707148096B548CAFC93B812F81BC050CBFC621AFF93268000
+0314C0DE007F7F071F13F8737F737F737F73808885888688A2747FA688A688A676140FF7
+1F80A374801F3F86771400745E746E5BB96E6E5B746E485A75EBFE07091F90B55A090715
+E009015DCF003F91C7FC0A0013FC71647AE178>82 D<001FBEFCA64849C79126E0000F14
+8002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA4
+007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84
+D<B96C023FB612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C01
+806570170380525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC03
+3F01E04B5A6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7
+C9FC041F5E040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<913803FFFE02
+7FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F48
+6D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC15
+7F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F8
+5A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FE
+D90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F00101
+1400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEB
+FF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C
+7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE
+1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A
+6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E0
+91C7001F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC
+91B77E01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC
+49484A13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4
+B5FCAE7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F
+6D6DEC1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0
+023F5D020F1580020102FCC7FCDA000F13C03E437BC148>I<F17FF8050FB5FCA6EF000F
+8484B3A892380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF3499039
+F8000FFB011F01E00103B5FC494913004990C87E49488148498148834A815A485BA2485B
+A25AA3485BA4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D
+6C6C0103806D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CECFE07
+021F14F8020314E09127003FFE00ECC0004F657BE35A>I<92380FFFC04AB512FC020FEC
+FF80023F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990
+C76C7F49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391
+B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16
+FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90
+C7FC6D6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3FFC0307
+B51280033F14C04AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B48
+13FF4913F05B4913E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B8
+12C0A6D8001F01C0C8FCB3B3B0007FB612FCA638657CE431>I<F107F8DB7FFEEC3FFE02
+0FB5D8F001B5FC027FDAFE03148049B7128F49DCDFFD13C0010FD9F00FEBFFC149D98001
+14014990C7EBFC0349486E6C7E4948EC3FFF48496E018113800780130048F0C03E97C7FC
+48496E7FA34884A96C60A36C6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D48
+5BDBF00F5B4990B612C060D97C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC1201A47F
+A27F8014F091B77E18FE6CEFFFC019F06D17FC19FF6D846D846D846D84013F8490BAFC00
+03854801E0C712014890C9000F7F484816014848EE007F4848717E8512FF5B85A56D5F00
+7F616D173F003F616D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5
+C7FC6D01F8011F5B011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A60
+7CC151>I<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C81
+93267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC
+8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3FF8497E
+48B5FCA24880A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80
+007FB5FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3
+B3B3B3ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F00207EB
+FF80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE
+001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87E
+C7804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94
+C8FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691
+B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F0
+7F6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280
+A651417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E01
+0701F0010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13804819
+C04A814819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D
+4B13FCA36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B
+5A6D6D495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715
+E0020092C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F003
+81B612FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E
+7F03F86E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F
+13FCA41BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B7049
+5B04E0017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313
+E093CBFCB3A3B712F0A64F5D7BC05A>I<D90FFFEB0FFCB690383FFF8093B512E04B14F0
+4B14F8923907FC7FFC92390FE0FFFEC6EC1F806DD93F0113FF6D133E157E157C15F8A215
+F07013FEA24BEB7FFCEF3FF8EF0FE04B90C7FCA55DB3B0B712F8A638417BC042>114
+D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F
+D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14
+E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0
+1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217
+1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC
+EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I<EC07
+E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8FCA5
+D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B6DEB
+FF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0ED3F
+FEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D49
+48806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002
+F0C7FC51427BC05A>I<B70081B600FC0103B512FCA6C66C0180C701FCC8381FFE006F6F
+ED03F86D047F5F856F6E16076D646F70140F6D705F866F6E161F6D646F4A6D143F6D99C7
+FC4E7F6F616D1B7E6F4A6D14FE6D6395B57E7001FC15016E62DCC0016E13036EDBF87F5D
+05038004E0496C14076E62DCF007ED800F6E4B6C5D050F15C004F8496C141F6E62DCFC1F
+EDE03F6E4B6C92C8FC053F15F004FE496C5C6E197E7048EDF8FE6E027E6D5C05FE15FC4D
+6D13FD6F601BFF6F496E5BA24D806F60A26F496E5BA24D806F60A26F496E90C9FCA294C8
+7E6F5FA26F486F5A047C6F5A6E417DBF75>119 D<007FB600C0017FB512F8A6D8001F01
+F8C70007EBF0006D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A
+6E6D495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F
+91C9FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F04C08015
+3F4B486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A
+4AC86C7F49486F7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>I<B700C001
+03B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D6D5E193F6D
+95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70130F6E5E7013
+1FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7F0A26FEBF7
+E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA25F163F94CA
+FC5E167E16FED807E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F4B5A6C4849
+CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE04E5D7DBF
+55>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl cmsy10 10.95 2
+/Fl 2 16 df<EE7FFE0307B512E0033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA
+3FE0EC07FCDA7F80EC01FED901FEC9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948
+707E49CB7E017E187E498449844848F00F8000031AC04918074848F003E0A24848F001F0
+A248CD12F8A2001E1A78003E1A7CA2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A
+0FAB6C1A1FA200781A1EA3007C1A3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6C
+F001F0A26C6CF003E0A26C6CF007C06D180F00011A806C6CF01F006D60017E187E6D606D
+6C4C5A6D6C4C5A6D6C4C5AD903F8EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0
+EC07FCDA0FFCEC3FF0913B03FFC003FFC0020090B6C8FC033F14FC030714E09226007FFE
+C9FC50557BC05B>13 D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580
+A3B712C0AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA7
+2D>15 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fm cmbx12 14.4 50
+/Fm 50 122 df<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FC
+DAFFF0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190
+C7FC715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03
+B612C0A542547DD34B>12 D<003015C0007CEC03E0D87F80131FD8FFE0EB7FF09038F801
+FF263FFF0F13C06C90B512800007ECFE00000114F86C5C013F13C06D5BD907FEC7FC6D5A
+EB00F01460241071CD43>20 D<EA07F0487E487E487E487EB51280A76C13006C5A6C5A6C
+5A6C5A1111769025>46 D<913803FFC0023F13FC91B6FC010315C0010F018113F0903A1F
+FC003FF849486D7E49486D7E49486D7E48496D138048496D13C0A24817E04890C813F0A3
+4817F8A24817FC49157FA3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D15FFA2
+6C17F8A36C17F0A26C6D4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495AD91FFC
+EB3FF8903A0FFF81FFF06D90B55A01011580D9003F01FCC7FC020313C0384F7BCD43>48
+D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A600
+7FB712FEA52F4E76CD43>I<EC3FFE0103B512E0010F14FC013F14FF90B712C048D9C07F
+7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F48488001F01680486C6E13C07F
+486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E05EA218C05E1880A24C1300
+5F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48C8FC4A5A5D4A48
+EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD91F80140749C8FC013E150F
+017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43>I<91380FFFC091B512FC
+0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D8
+07FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005F
+A24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113
+F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8
+487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A13
+80D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F
+1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D
+5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C
+5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E
+127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>I<D80380150ED807E0157E
+01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F016C093C8FC15F801E190C9
+FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FFF8077FDAC0017F49C713F8
+496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0A3EA0FE0487E487E487E48
+7EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C4A5A6D5D6C6C4A5AD807F8
+495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14F8010314C09026007FF8C8
+FC344F79CD43>I<ED0FFF92B512E0020780021F14FC91397FFE03FE903A01FFF0007F49
+01C0EB3F804990C7121F4948EC7FC0494814FF49484913E049485B01FF5C485BA2485B5A
+A2486F13C04A6D1380486F1300177E94C7FC5AA291CAFC5AA21508913801FFF8020713FF
+B54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D7E7013804A15C0A24A15E07013F05C18
+F8A491C714FCA37EA67EA46C17F880A27E18F06C5D18E06C6D15C07E6E4913806C6D1500
+6D6C495A6D6CEB7FFC6DB448485A6D90B55A010315C0010092C7FC023F13FC020713C036
+4F7ACD43>I<121F7F7FEBFF8091B81280A45A1900606060A2606060485F0180C86CC7FC
+007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A15
+0F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA3
+14FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0027F13FC0103B67E010F15
+E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717
+C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313
+009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D8101
+0F15E06D81010115FC010781011F81491680EBFFE748018115C048D9007F14E04848011F
+14F048487F48481303030014F8484880161F4848020713FC1601824848157F173FA2171F
+A2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C
+010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F
+13C0364F7ACD43>I<91B5FC010F14F8017F14FF90B712C00003D9C00F7F2707FC00017F
+D80FE06D7F48486E7E48C87FD87FE06E7E7F7F486C1680A66C5A18006C485C6C5AC9485A
+5F4B5B4B5B4B5B4B5B4B90C7FC16FC4B5A4B5A16C04B5A93C8FC4A5A5D14035D5D14075D
+A25D140FA25DAB91CAFCAAEC1FC04A7EECFFF8497FA2497FA76D5BA26D5BEC3FE06E5A31
+5479D340>63 D<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C808304
+7F80167E8304FE804C7E03018116F8830303814C7E03078116E083030F814C7E031F8116
+8083033F8293C77E4B82157E8403FE824B800201835D840203834B800207835D844AB87E
+A24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A820103854A820107
+85A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>65
+D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F070F7F737F8785
+87858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A060713F892B812E097
+C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87737F747E1C807413
+C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F5B19074F5B073F
+13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601FFFCEC01C0047F
+D9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7
+383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982494982
+4949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0FA25AA2
+98C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D
+606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D
+6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612C0033F
+93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FCF1FF801AF01AFC
+D8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E747F747F86747F74
+7F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80A2631D00A3515A
+A2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B512C0060F91C8FC
+BB5A1AF01AC007FCC9FC19805B527CD167>I<BB12FEA5D8000701F8C700077FF0007F19
+1F190785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A31703170717
+0F177F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A517CD0
+55>70 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA80
+3F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9
+FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A
+3FA24849181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003F
+EBC000A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC
+6D13FF6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F
+033FEE001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B812C0A5D800
+0701F8C7FCB3B3B3B2B812C0A52A527CD132>73 D<B812F8A5D8000701F8CAFCB3B3A91A
+7CA41AFC1AF8A51901A31903A219071AF0190FA2191F193F197F19FF180360183F4DB5FC
+BB12E0A546527CD151>76 D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF
+020F01C0010F13C0023F90C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF4949
+6F7F49496F7F4990C96C7F49854948707F4948707FA24849717E48864A83481B804A8348
+1BC0A2481BE04A83A2481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C
+1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D
+4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F
+01FC90B512C0020390B7C8FC020016FC031F15E0030392C9FCDB001F13E0565479D265>
+79 D<BAFC19F819FF1AE086D8000701F0C7001F13FC060113FF726C13807313C0070F13
+E01BF0857313F81BFCA27313FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0614F13C0
+4F13004E485A061F5B92B812F01AC04FC7FC19E003F8CBFCB3AEB812C0A550527CD15C>
+I<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F737F8573
+7F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092
+B8C9FC19F819E019F89226F0000313FE9439007FFF80727F727F727F727F727F8684A286
+84A787A71D1C75133EA38575137E73157C7513FC731401B86C6D9038F803F807039038FE
+07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B5
+00F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5
+FC4848C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F
+6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C83
+6C836D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F05
+0F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D
+5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7
+FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<B800C00103B612FCA5D800
+0701F8CAEBF000F31F80B3B3B11B3FA26D97C7FC81637F1B7E6D6D17FE505A6E7E505A6E
+6D15076E4D5A6E6D4B5A6E6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0FFE6F9039
+F001FFF8030F90B65A030316C0DB007F92C9FC040F14F8DC007F13805E537CD167>85
+D<B700FC017FB600FE91B612F0A5D8003F01C0C8001F01E0C9EBF8006F71EE0FC06D7161
+876F1C1F6D7196C7FC6F8373606D1E3E6F836D7160876F1CFC6D666F4B801F016D66704A
+806E525A88704A17076E059F5F70021F80080F160F6E6570023F806EDC3E074CC8FC8870
+027E5F6EDC7C03163E7002FC804F6C167E6E1C7C700101814F6C16FC6E745B7001031701
+6E4C6D5D060716C00580496D14036F63DDC00F16E04F6D14076F07F05BDDE01F170F6F92
+C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C6E5C6FF1FE3EDDFCFC177E6F4A6E
+147C1DFFDDFFF06E14FC6F62A24E816F62A270496F5BA24E817061A295C97E7061A27048
+7090CAFCA37048705AA24D1601040360A27048705A84537DD18B>87
+D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3FFC
+48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC0107
+1487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45EA2
+6D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014F0
+6C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
+D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFFC092B612F002F301017F
+913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285A285
+84A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7FCDA
+87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FCC8FC90C7000313C04154
+7BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001
+FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48
+92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC
+3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC
+020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91
+B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980
+485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C
+6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9
+003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901
+817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191
+C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01
+F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE
+903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC02
+03B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A49
+5AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB5
+12FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F90
+267FFC0F9038FF9FF09026FFE001EBF83F48496C13E0484990387FF01F4890C7D83FF813
+E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A
+6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFC
+A2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C836D828448B9FC12074848
+C700031480D81FF8EC003F4848150748486F13C083485A83A56D5D007F18806D5D003F18
+006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280010F
+03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5FCA51203C6FCB3A4EE1F
+FC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C8003F07FDAF1E081ECF3
+C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542537BD24B>I<137F497E
+000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3
+A6B612E0A51B547BD325>I<EB3FF0B5FCA51203C6FCB3A54CB512F8A59339003FFE00EF
+1FF0EF3FC04D5A4DC7FCEE03FEEE07F84C5A4C5AEE7FC04CC8FC4B5A4B5AED0FF8ED1FE0
+4B7E4B7EECF1FF02F37F02F77F91B6FC83159F030F7F02FE80DAF8077F4A7E6F7F6F7F83
+707E82707F84707F707F82707F84707F177F717E4D13C0B6D8F003B6FCA540537CD247>
+107 D<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>I<D93FF0D91FFCEDFFE0
+B591B500C0010713FE030302F0011F6D7E030F6E017F8092271FE07FFCD9FF037F922A3F
+001FFE01F8007F0003027C9126FF03E080C602F06DD90780137FDAF1E0038FC77FDAF3C0
+159EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB5
+12FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314F0030F8092391FE07FFC9239
+3F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3AC
+B6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B612C0010315F0010F9038
+807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C8
+6C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA2
+6C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF80
+7FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F
+13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F
+92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F61
+6E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F14
+80031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380F
+FF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF
+150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114
+D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980
+127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C
+816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00
+F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF
+C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414
+FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE
+07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203
+13802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35F
+A2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B512
+03010114FE6D6C13F8020701E091C7FC42377BB54B>I<B600F00107B5FCA5000101F8C8
+EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D5E6F13016D5E8117036D5E6F
+13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E023F147C6F13FC6E5C16816E
+5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A
+6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101F0C701F0C7381FF8006E027F
+ED07E06C715DA26E023F150F017F705DA26E181F013F4B6C92C7FC6E606D70143E94B5FC
+6F177E6D4A6E137C03C001F315FC6D715B160303E001E114016D020702E05B03F013C06D
+71485A160F03F8D9807F13076D05F85B93381F003F03FC160F027F4902FC5BDBFE3E011F
+131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F
+6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9FC5A367DB461>I<007FB500
+F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D
+91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9
+FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E
+020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E
+49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600F00107B5FCA5C601F8C8EA7F
+E06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D
+5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F147C6F13FCA26E6D5A16816EEB
+C1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E
+150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C13FC5D14015D14034A5A6C48
+485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC690CBFC404D7DB447>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fn cmr10 10.95 84
+/Fn 84 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
+F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
+FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
+D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
+7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
+FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
+1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
+2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
+D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
+C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
+7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<EA01FC127FA3120712031201B3AC487E
+B512F0A314287DA71A>16 D<133E133F137F13FFA2EA01FEEA03FCEA07F813F0EA0FE0EA
+1FC01380EA3E005A5A1270122010116EBE2D>19 D<006013060078131E00FC133F003F13
+FC381F81F8380FE7F03803FFC06C13806C1300133C1318180B76B92D>I<121EEA7F80EA
+FFC0A9EA7F80ACEA3F00AC121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E00
+0A4179C019>33 D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F39
+1E600F3000001300A401E01370491360A3000114E04913C0000313010100138048130300
+0EEB070048130E0018130C0038131C003013181C1C7DBE2D>I<14E0A4EB07FC90383FFF
+8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD81F007F003E80003C158000
+7C140316C00078141F00F8143F157FA47EED3F806CEC0E0092C7FC127F138013C0EA3FF0
+13FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F130301007FECE7FF14E102E013
+80157F153FED1FC0A2003E140F127FD8FF801307A5130000FC158000F0140F1270007815
+005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280D93FFEC7FCEB0FF8EB00E0
+A422497BC32D>36 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312
+011380120313005A120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03
+801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25A
+A3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA21201
+7F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C0
+7E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214
+C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2
+137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A280
+5CA600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FD
+BF00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39
+FF03C0FF00FE147F00FC143F00F0140F00001400A6805CA220277AC32D>I<121EEA7F80
+12FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A121812
+3812300B1C798919>44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2
+EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C15
+7CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147C
+A2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA21378
+13F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA21278
+12F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F849137C4848
+7F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FC
+B3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E
+6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C01303130713
+1F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90
+383FFF8090B512E03903F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC0
+5AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16
+004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E13
+3C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC
+90383FFF809038F80FE03901E003F839078001FCD80F007F000E6D7E001E1580D81F8013
+7F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7
+FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A212
+0C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC
+3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE
+1401A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5B
+A25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6
+FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB
+3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C71380
+0006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C0
+12780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90
+C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E
+017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA348
+5AA214FE903887FF8039FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914
+C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C
+6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238
+123C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E15
+1C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C13
+03A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF80
+90387C07E09038F001F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4
+123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEB
+FF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F
+800313C048487E489038007FE0003E143F007E141F007CEC0FF01507481403A31501A46C
+15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86C
+B512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048
+486C7E48486C7E4848137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0
+A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F9038
+7E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A
+5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F
+7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA
+7F80A2EA1E000A2779A619>I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0
+A26C18E03C167BA147>61 D<EB1FF890B5FC3903E01FC0390F0007F0001EEB03F848EB01
+FC4814FE140000FE14FF7E7FA46CC7FC123EC7EA01FEA2EC03FCEC07F815F0EC0FC0EC1F
+80EC3F00143E5C147814F85C13015CA2495AA25CAB91C7FC90C8FCA8EB0780EB1FE0A249
+7EA46D5AA2EB078020407BBF2B>63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A291
+3801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D
+7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153F
+A2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D41
+7DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0
+EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE
+0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F817
+0F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C9038
+0FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E
+913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749
+481403495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E12
+7FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C
+1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE
+143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>
+I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E
+717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF1900
+4D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C
+3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870
+A41838161CA41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161CA218
+07A3180E93C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01FFB9
+12F0A3383E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A217
+03A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC80071501150016
+78A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C
+021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE014
+1F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F173C
+A2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123F
+A27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FE
+EC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C42
+7BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA302
+80C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000
+EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<B600C090387FFFFCA3000101E0C7000F
+138026007F80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC
+163E5E5E4B5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC87879138
+8F03FE91389E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA270
+7F717E84173F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47
+>75 D<B612F8A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C
+5A160748486C133FB8FCA3313E7DBD39>I<B500C093383FFFF0A300016D93387FF800D8
+007F18E0D977F016EFA3D973F8ED01CFA2D971FCED038FA3D970FEED070FA26E150E80A2
+6E6C141CA36E6C1438A26E6C1470A36E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB07
+00A2037F130EA36F6C5AA26F6C5AA36F6C5AA25FED07F0A2923803F9C0A36FB45AA26F90
+C7FCA213F8486C147ED807FFEF3FF8B500F8013C011FB512F0A34C3E7DBD53>I<B56C91
+B512F88080D8007F030713006EEC01FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E
+7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E
+6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173F
+A2171F170FA2170701F81503487ED807FF1501B500F81400A218703D3E7DBD44>I<ED7F
+E0913807FFFE91391FC03F8091397E0007E04948EB03F8D907F0EB00FE4948147F49486E
+7E49486E7E49C86C7E01FE6F7E00018349150300038348486F7EA248486F7EA2001F1880
+49167F003F18C0A3007F18E049163FA300FF18F0AC007F18E06D167FA4003F18C0A26C6C
+EEFF80A36C6C4B1300A26C6C4B5A00035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A
+5A6D6C4AC7FC6D6C14FED901FCEB03F8D9007FEB0FE091391FC03F80912607FFFEC8FC91
+38007FE03C427BBF47>I<B712F8EEFF8017E000019039C0003FF86C6C48EB07FCEE01FE
+707EEF7F80EF3FC018E0A2EF1FF0A218F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE
+07FCEE3FF091B612C04CC7FC0280C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<B712C0
+16FCEEFF800001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760
+177F606017FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED00
+3FEE1FC0707E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FF
+E0161CB600C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>82
+D<D907FC130C90391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC4848
+130F001F140748C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27EA26C
+6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E00107
+14F0EB007F020713F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27E
+A3163E7E167E6C157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F80
+3F8090391FFFFE00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007F
+E001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5
+C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C700
+07130026007F80EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A
+5A010793C7FC6D6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B5128002
+0049C8FCED1FF03D407DBD44>I<B691380FFFFEA3000301E0020113E06C01809138007F
+806CEF3F00017F163E181C6E153C013F1638A26E1578011F1670A26D6C5DA26E14010107
+5EA26E140301035EA26D6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A2
+6E6C5BA26F13F0020F5CA2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E13
+0EA2ED7F9CA216DCED3FF8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5
+D88007B5FCA3000301C0010101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F
+017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F00107610403
+7F6E0281140101036104077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F
+80160EA24CEB1FE003C0161E023F171C047814F0DBE070010F133C021F173804F014F84C
+1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5F
+A24B157F020094C8FCA24B81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8
+C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C
+143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E
+913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71
+FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E
+14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076D
+EC7FFFB500FC0103B512FEA33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C
+6C48ED3FC0725A013F041EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D13
+03606E6C49C8FC6E6C5B170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E1301
+6EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E
+7FBD44>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>91
+D<486C13C00003130101001380481303000EEB070048130E0018130C0038131C00301318
+0070133800601330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133F
+A2003F131F01C013E0390F0007801C1C73BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFC
+A40E5B7FC319>I<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF0
+7F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8
+EA0FE0485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC0
+0E13CF3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>97
+D<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E09039FDE001F09039FF
+C000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217
+E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026
+C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00F8017C131E4848131F
+4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3
+003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01
+F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715031501B114FF010713
+E190381F80F990387E003D49131FD803F81307485A49130348481301121F123F5B127FA2
+90C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E6C6C497ED8007C0179
+13F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC09038
+3F03F09038FC01F848486C7E4848137E48487F000F158049131F001F15C04848130FA212
+7F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E1501000F15C06C6C1303
+6DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE0010090C7FC232A7EA828>
+I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01
+FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801
+FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC
+49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F
+FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A
+0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49
+5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01
+FC12FFA3120712031201B1EC01FE913807FFC091381E07E091387803F09138E001F8D9FD
+C07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA
+01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512
+F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313
+017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F
+FF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292B51280A392383FFC00
+16E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9F
+E0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07F
+FFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>
+I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007
+903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC
+A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF
+903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91
+C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F
+81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2
+003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C
+EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A
+7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A03FFC001FC6C49
+6C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC0
+6D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891
+C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C
+01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA3
+6C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1
+903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787C
+ECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA3
+1F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C00
+78130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8
+003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB
+03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA2
+13FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB
+7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA30007
+14030003140100011400B3A51501A31503120015076DEB06FF017E010E13806D4913FC90
+381FC078903807FFE00100903880FE002E297DA733>I<B539E00FFFE0A32707FE000313
+006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290
+380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A3
+6E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C48
+6D48EB3F806C4817006D010F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E
+151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F014
+0701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D
+5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>I<B539F01FFFE0A30003
+D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E
+6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEEC
+C0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539
+803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D
+7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF8
+3C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C14
+3C1438A2147800181370127EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA
+07E02B3A7EA630>I<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C49
+5A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F
+80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA2
+21277EA628>I<BE12C0A25A0280985B>124 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fo cmbx12 20.736 15
+/Fo 15 122 df<C0FCA48BA4C7003F0280C8120FF3007F1C0F1C030A00801D3F89898989
+89A2898B1E7FA21E3FA31E1FA28BA21E0FF207F8A5787EA4080F92C8FCA31A1FA21A3FA2
+1A7FF101FF1907193F94B7FCA8943880003F19071901F1007F1A3FA21A1FA21A0FA2F71F
+E01A07A2F73FC0A61F7F97CA1380A41FFFA3541300A366A266671E0FA21E1FA21E3F1E7F
+545A65651D0F1D3F9AB5FC1C030A3F5C0907B6FCC0FCA567A373757AF47F>69
+D<922603FFF8150E037FD9FFC0143F0203B600FC5C021F03FF5C027FEEC00149B8EAF003
+49EFFC07010FDA000F13FE4901F09039007FFF8F4901C0020F13DF4990C8000390B5FC49
+4815004801F8163F48844A8248498248844A8248844A834885A291CB7E5A86A286B5FC86
+80A28680A280A26E8380806E187E6E95C7FC6C8015E015FCEDFFC06C15FCEEFFE06C16FF
+18F06CEFFF8019F06C18FE737E6C856C19F06C19FC6D846D846D856D856D850101856D85
+023F846E841407020084031F18801500040F17C0EE007F050716E0EF003F1803DE007F14
+F0191F8585070114F8A28586007E85B4FC86A286A37F86A36D1AF0A37F1CE06D60A26D1A
+C06D607F6D1A806E5F6E4D13006E606E17FF02FC4C5B02FF4C5B03E04B5B03FC031F5B01
+FBD9FF80027F5B01F102FE0107B55AD9E07F90B8C7FC6E17FCD9C00F5FD9800317E090C7
+6C168048020F4BC8FC48020015F00070030349C9FC557A75F76C>83
+D<001FC012F8A7481FFC03F0C76C91C7120F92C8EF007F02F81B1F02E01B0702801B0191
+C984491D7F491D3F491D1FA2491D0FA2491D07007F1FFEA2491D03A4491D01A700FF1FFF
+90CA85A6CB1A00B3B3B3AD4ABC12C0A8787479F387>I<BA057FB71280A8C792CD000F01
+F0C7FC71070013806E5290C8FCA26E6E621F036E6E621F07836E525A836E651F1F6E6E62
+1F3F836E525A836E651FFF6F6E96C9FC666F6E601E03846F505AA26F6E601E0F6F6E601E
+1F846F505AA26F6E601E7F6F6E601EFF85704E90CAFCA2706E5E1D03706E5E1D0785704E
+5AA2706E5E1D1F706E5E1D3F85704E5A8570611DFF716E92CBFC6486714C5A86715F1C07
+716E5C1C0F86714C5A86714C5AA2716E5C1C7F716E5C1CFF8772028190CCFCA272ECC1FE
+1BC372ECE3FC1BE71BF772ECFFF8A2725DA2725DA3725DA2725DA27391CDFCA3735BA273
+5BA2735BA3735BA2735BA2735BA2735B74CEFC89787CF592>86 D<001FB900F091B812FE
+A8C7000F02FCCA003F01FCC8FC6E6E050113807196C9FC6E626E6F4C5A6E6F4C5AA26F6E
+4C5A6F6E4C5A724C5A816F6E4C5A6F6E4B5B5290CAFC6F806F6F4A5A734A5A6F4E5A7080
+734A5A704D5A706E4A5A7080515B706E4990CBFC706E495A1A80704C5A706F485A716E48
+5AA2716E485A716E485A745B7114FD7191B5CCFC63715D83715D638484878472807280A2
+72807281888473808896B6FC4E814E8188604E81DE1FFB8119F9DE3FF0814E486C80F0FF
+C074804D496C804D0100814E7F05076E804D486D804D5A74814D486D814D48834D488075
+804C49834C90C87E4C486F8075804C48844C48814C486F818B4C48814C4870804B497080
+A24B90CA6C804B4871804B4886884B4871804B48874B488376814B4872804A49874A90CC
+7E7780027F01F887B800FE0303B912FEA887767BF592>88 D<93387FFF80030FB512FC03
+7FECFF804AB712E0020716F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E049
+01FC020F7F49496E7F49498049496E7F49496E7F90B55A48727E92C914804884485B1BC0
+48841BE0485BA27313F05AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA380
+7EA47E806CF103F0F207F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D6D
+16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F
+5B023F91B65A020F178002034CC7FC020016F8031F15E0030392C8FCDB000F13E04D507B
+CE58>101 D<F37F80922607FFFC913807FFE092B600E0011F13F8020703FC017F13FC02
+1FDBFF01B512FE027F16C349B800F7EBBFFF49DA803F9038FFF83F010F9026FC000714C0
+4901F00101EC007F49496D148049496E6D7E90B517E04B6E15FE48F1F01F4891C86C9038
+F80FFCF307F098C7FC48496F7FA34885AB6C61A36C6D4B5BA36C6E4A5B6C616F5C6D606D
+6D91B55A6D6D4991C8FC6D01FC01075B9226FF803F13F893B65A4917C0D93F1F93C9FC02
+0715FCD97E0015E0030701FCCAFC01FE90CDFCA412017FA280A280808014FE6C90B812C0
+19FF1AF01AFC6DF0FF801BE06D851BFC6D856D856D1A806D1AC05B011F1AE0137F48BC12
+F0000701FCC9FC4801E0040314F84849EE007F4849171F91CB1207487313FC5B00FF855B
+86A56D60007F1BF86D60A26C6D4D13F06E5F6C6D4D13E06C6D4D13C06C01FC94B512806C
+01FF04031400C602C0030F13FC6D01F8037F5B011FD9FFE0011FB512E0010791B8128001
+014EC7FC6D6C17F8020F17C0DA007F03F8C8FC03014AC9FC58727BCE61>103
+D<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880A76C5CA26C5CA26D5B6D5B6D
+5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C67E131F7FB3B3B3A5B81280A8
+297979F835>105 D<902601FFF891260FFFE093383FFF80B692B500FE0303B512F80503
+6E6C020F14FE050F03E0023F6E7E053F03F891B712E04D6F4982932701FFF01F6D0107D9
+C07F7F4CD900076D90270FFC001F7FDC07FC6D9126801FF06D7FC66CDA0FF06D9126C03F
+C06D7F011FDA1FC06D4BC77E6D4A48DCE0FE834CC8ECE1FC047E6FD9F1F86E804CEFF3F0
+DBF9F8EFF7E04C6003FB7001FF6F804C6015FF4C95C9FCA24C5FA293C95CA44B60B3B3A6
+B8D8E003B8D8800FB712FEA8974E79CDA2>109 D<902601FFF891380FFFE0B692B512FE
+05036E7E050F15E0053F15F84D81932701FFF01F7F4CD900077FDC07FC6D80C66CDA0FF0
+6D80011FDA1FC07F6D4A48824CC8FC047E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293
+C9FCA45DB3B3A6B8D8E003B81280A8614E79CD6C>I<93381FFFE00303B6FC031F15E092
+B712FC020316FF020F17C0023FD9FC0014F091B500C0010F13FC4991C700037F4901FC02
+007F010F496F13C049496F7F49496F7F4B8149496F7F90B5C96C7F4886A24849707F481B
+80A248497014C0A2481BE0A348497113F0A3481BF8A5B51AFCAE6C1BF8A46C1BF06E94B5
+FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B006C6E4B5BA26C6E4B5B6D6D4B5B6D6D4B
+5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0010F91C7FC010002FC90B512FC6E90B75A
+021F17E00207178002014CC8FCDA003F15F0030392C9FCDB001F13E056507BCE61>I<90
+2601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C8093261FFC3F138093263FE0
+7F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F815FB16F016E015FF16C07114
+C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65DB3B3A2B812F8A8434E7ACD4F
+>114 D<912603FFFCEB0780027F9039FFE00FC00103B6EAF83F010FEDFEFF013F92B5FC
+49EB000F2601FFF01300480180143F4890C8120F4848814848814981123F83485A187FA2
+12FF6D163FA37F7F6DEE1F8002C092C7FC14F014FEECFFF06CECFF8016FEEEFFE06C16FC
+6C16FF18C06C836C17F86C836C836C83013F17806D17C0010717E0010117F0EB003F0207
+16F8EC001F030015FC1607EE007F051F13FE1707007E82B482836D167FA2183F7F181FA2
+7F19FC7FA26D163F6D17F86D167F19F06D16FF6E4A13E002E04A13C06E4A138002FE023F
+1300913AFFC003FFFE01E790B65A01C316F0018016C026FE003F92C7FC48010714F80070
+D9007F90C8FC3F507ACE4C>I<15FFA75CA55CA45CA25CA25CA25CA25C91B5FCA25B5B5B
+131F5B90B9FC120FBAFCA6D8000791C9FCB3B3A3F01FE0AE183F7014C07F187F7014806D
+16FF826D4B13006E6D485AEEFE0F6E90B55A020F5D6E5D020115C06E6C5C031F49C7FC03
+0113F03B6E7CEC4B>I<B892B612F8A8D8001F49C90003EBF0006D6D04001380A26D6E94
+C7FC626D6E5E1A03A26D6E4B5AA26D6E4B5AA26E6D5E1A1F6E6D5E1A3F6E6070157FA26E
+6D4B5AA26E6E4990C8FCA26E6E5C19036E6E5C1907A26E6E495AA26F6D495AA26F6D5C19
+3F6F6D5C197F6F5E7113FFA26F028190C9FCA26FECC3FEA26FECE3FC18E76FECF7F818FF
+A2705CA2705CA2705CA2705CA37091CAFCA2705BA2705BA2705BA2715AA3715AA24D5AA2
+6017FF95CBFC5EA24C5AEA03F8D80FFE4A5A487E486D495A487F5FB56C131F5F163F4C5A
+A24C5A4B90CCFC6C49485A4B5AEC800F6C9038003FF849EBFFF0261FFC0713C06CB65A6C
+92CDFC6C14FCC614F0013F13C0D907FCCEFC5D6F7CCC66>121 D
+E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: a4
+a4
+%%EndPaperSize
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 94 1385 a Fo(T)197 1423 y(E)300 1385 y(X)65 b(V)-16
+b(ersioning)66 b(System)p 94 1490 3780 34 v 1424 1586
+a Fn(Soft)m(w)m(are)31 b(for)g(storing)e(complete)i(source)g(co)s(des)f
+(of)h(T)3301 1605 y(E)3351 1586 y(X)f(do)s(cumen)m(ts)94
+5373 y Fm(b)l(y)45 b(Da)l(vid)h(An)l(to)-7 b(\024)-60
+b(s)p 94 5446 3780 17 v eop
+%%Page: 2 2
+2 1 bop 94 4756 a Fn(Cop)m(yrigh)m(t)547 4753 y(c)522
+4756 y Fl(\015)30 b Fn(2000)i(Da)m(vid)e(An)m(to)-5 b(\024)-41
+b(s)94 4881 y(P)m(ermission)26 b(is)h(gran)m(ted)h(to)g(mak)m(e)h(and)e
+(distribute)e(v)m(erbatim)i(copies)h(of)g(this)e(man)m(ual)h(pro)m
+(vided)f(the)i(cop)m(y-)94 4980 y(righ)m(t)i(notice)h(and)f(this)f(p)s
+(ermission)e(notice)k(are)g(preserv)m(ed)f(on)g(all)f(copies.)94
+5105 y(P)m(ermission)h(is)g(gran)m(ted)h(to)h(cop)m(y)g(and)e
+(distribute)f(mo)s(di\014ed)f(v)m(ersions)j(of)g(this)f(man)m(ual)g
+(under)f(the)j(condi-)94 5204 y(tions)e(for)f(v)m(erbatim)h(cop)m
+(ying,)g(pro)m(vided)e(that)j(the)f(en)m(tire)f(resulting)f(deriv)m(ed)
+h(w)m(ork)h(is)f(distributed)d(under)94 5304 y(the)31
+b(terms)f(of)h(a)g(p)s(ermission)c(notice)k(iden)m(tical)e(to)i(this)e
+(one.)94 5429 y(P)m(ermission)g(is)f(gran)m(ted)j(to)g(cop)m(y)f(and)f
+(distribute)f(translations)g(of)i(this)f(man)m(ual)g(in)m(to)h(another)
+g(language,)94 5528 y(under)38 b(the)i(ab)s(o)m(v)m(e)h(conditions)d
+(for)h(mo)s(di\014ed)f(v)m(ersions,)j(except)g(that)f(this)e(p)s
+(ermission)f(notice)i(ma)m(y)i(b)s(e)94 5628 y(stated)32
+b(in)d(a)i(translation)e(appro)m(v)m(ed)i(b)m(y)f(the)g(F)-8
+b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation.)p eop
+%%Page: 1 3
+1 2 bop 94 -116 a Fn(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2771
+b(1)94 365 y Fk(1)81 b(In)l(tro)t(duction)219 686 y Fn(This)26
+b(is)h(do)s(cumen)m(tation)g(of)h(T)1283 705 y(E)1333
+686 y(X)g(V)-8 b(ersioning)26 b(System,)i(soft)m(w)m(are)h(for)f
+(storing)f(complete)h(source)g(co)s(des)94 785 y(of)j(T)249
+805 y(E)299 785 y(X)g(do)s(cumen)m(ts.)219 942 y(V)-8
+b(ersion)30 b(1.0)219 1098 y(\(Do)s(cumen)m(tation)i(CVS)d(v)m(er.)41
+b($Id:)g(tvs.texi,v)31 b(1.23)h(2000/08/16)i(17:00:24)g(an)m(tos)d(Exp)
+f($\))94 1436 y Fm(1.1)69 b(Wh)l(y)44 b(do)h(y)l(ou)g(need)g
+Fj(TVS)p Fm(?)219 1651 y Fn(It)27 b(m)m(ust)g(ha)m(v)m(e)h(happ)s(ened)
+d(to)i(y)m(ou.)40 b(Y)-8 b(ou)28 b(use)e(T)1851 1670
+y(E)1901 1651 y(X)h(at)h(w)m(ork.)39 b(Y)-8 b(ou)28 b(run)d(another)i
+(distribution)c(at)28 b(home.)94 1750 y(Y)-8 b(ou)39
+b(wrote)g(a)g(b)s(eautiful)d(do)s(cumen)m(t)i(at)h(home,)i(y)m(ou)e
+(came)g(to)g(w)m(ork)f(and)g(got)i(error)e(message)h
+Fi(I)30 b(can't)94 1850 y(find)g(file)f(`foo.tex')p Fn(.)38
+b(There)30 b(is)f(a)i(pac)m(k)-5 b(age)33 b(missing)28
+b(in)h(y)m(our)h(w)m(ork)h(installation.)219 2006 y(Or:)42
+b(Y)-8 b(ou)32 b(wrote)g(a)g(b)s(eautifully)c(t)m(yp)s(eset)33
+b(b)s(o)s(ok)e(sev)m(eral)g(y)m(ears)i(ago.)45 b(Y)-8
+b(ou)32 b(used)f(em-T)3247 2026 y(E)3297 2006 y(X)h(on)f(M$-DOS)94
+2106 y(mac)m(hine.)56 b(The)36 b(b)s(o)s(ok)e(should)g(b)s(e)h(t)m(yp)s
+(eset)h(again.)57 b(Y)-8 b(ou)36 b(ha)m(v)m(e)h(only)d(m)m(y)p
+2698 2106 28 4 v 33 w(b)s(o)s(ok.tex)i(and)f(no)h(macros)g(y)m(ou)94
+2206 y(used.)k(What)31 b(to)h(do?)219 2362 y(T)-8 b(o)38
+b(b)s(e)f(serious,)i(there)f(is)f(nothing)g(to)h(b)s(e)f(done)h(no)m
+(w.)63 b(But)38 b(if)f(y)m(ou)h(stored)g(the)g Fh(c)-5
+b(omplete)46 b Fn(source)38 b(of)94 2462 y(the)e(do)s(cumen)m(ts,)g(it)
+f(didn't)f(ha)m(v)m(e)j(to)f(happ)s(en)d(to)j(y)m(ou.)56
+b(And)35 b(ho)m(w)g(to)h(store)g(the)g(complete)f(source?)56
+b(It's)94 2561 y(simple|use)28 b Fi(TVS)p Fn(.)94 2639
+y Fg(\013)p 144 2639 3734 4 v 3733 w(\010)p 94 2956 4
+270 v 247 2775 a Fn(Please!)39 b(Please!)f(P)m(ac)m(king)24
+b(complete)g(T)1635 2795 y(E)1685 2775 y(X)f(do)s(cumen)m(t)g(sources)g
+(is)f(a)i(delicate)f(and)f(sensitiv)m(e)g(op)s(eration.)123
+2858 y(Read)34 b(the)g(en)m(tire)g(man)m(ual)f(b)s(efore)g(y)m(ou)h
+(use)g Fi(TVS)f Fn(to)h(do)g(something)f(imp)s(ortan)m(t.)51
+b(This)32 b(kind)g(of)i(soft)m(w)m(are)123 2939 y(can)c(b)s(e)g(useful)
+f(for)h(y)m(ou)h(if)e(and)h(only)f(if)h(y)m(ou)g(use)g(it)g(correctly)
+-8 b(.)42 b(I'm)30 b(sorry)g(for)g(this)f(but)h(it's)g(the)g(fact.)p
+3927 2956 V 94 3008 a Fg(\012)p 144 3008 3734 4 v 3733
+w(\011)94 3346 y Fm(1.2)69 b(What)45 b Fj(TVS)e Fm(can)i(do?)219
+3560 y Fi(TVS)29 b Fn(can)g(store)h(complete)g(source)g(co)s(des)g(of)f
+(T)1838 3580 y(E)1888 3560 y(X)h(do)s(cumen)m(ts.)40
+b(It)30 b(parses)f(logs)g(of)h(T)3182 3580 y(E)3232 3560
+y(X)f(and)g(\014nds)f(\014les)94 3660 y(whic)m(h)i(w)m(ere)g(used)g(to)
+h(t)m(yp)s(eset)g(the)g(do)s(cumen)m(t.)40 b Fi(TVS)30
+b Fn(can)h(w)m(ork)f(in)f(three)i(lev)m(els:)169 3817
+y Fl(\017)60 b Fn(Only)32 b(do)s(cumen)m(t)g(log)h(is)f(examined.)47
+b(It)33 b(stores)g(all)f(macros,)i(st)m(yles,)g(included)c(do)s(cumen)m
+(ts)j(etc.)49 b(y)m(ou)274 3916 y(need.)169 4057 y Fl(\017)60
+b Fn(Do)s(cumen)m(t)31 b(log)f(and)f(format)h(log)f(is)g(examined.)40
+b(It)29 b(also)h(stores)g(all)e(source)i(\014les)f(needed)g(to)h(build)
+d(up)274 4156 y(format)k(\014le.)169 4297 y Fl(\017)60
+b Fn(\(exp)s(erimen)m(tal\))27 b(Moreo)m(v)m(er)i(dvips)c(log)i(is)e
+(parsed)h(and)h(used)f(fon)m(ts)h(are)g(stored.)40 b(This)25
+b(is)h(not)h(so)g(useful)274 4397 y(as)k(only)f Fi(.pk)f
+Fn(\014les)g(ma)m(y)i(b)s(e)f(obtained)g(this)f(w)m(a)m(y)-8
+b(.)219 4594 y(Files)39 b(collected)h(b)m(y)g Fi(TVS)f
+Fn(can)h(b)s(e)g(used)f(on)g(an)m(y)i(T)2042 4614 y(E)2092
+4594 y(X)f(installation)d(to)k(build)c(up)i(exactly)h(the)h(same)94
+4694 y(do)s(cumen)m(t.)g(Next,)32 b(let)e(us)f(call)h(the)h(pro)s(duct)
+e(of)h Fi(TVS)g Fn(a)h Fh(c)-5 b(omplete)34 b(sour)-5
+b(c)g(e)p Fn(.)219 4850 y(There)30 b(are)h(sev)m(eral)f(imp)s(ortan)m
+(t)g(features)h(of)f Fi(TVS)p Fn(:)169 5007 y Fl(\017)60
+b Fi(TVS)30 b Fn(is)f(a)i(P)m(erl)f(script,)g(it)f(runs)g(wherev)m(er)i
+(P)m(erl)f(is)f(a)m(v)-5 b(ailable)30 b(\(it)g(means)g(nearly)g(ev)m
+(erywhere\).)169 5147 y Fl(\017)60 b Fn(There)30 b(is)g(no)g
+(di\013erence)g(in)f(using)g(of)h Fi(TVS)g Fn(when)f(running)f(LaT)2512
+5167 y(E)2562 5147 y(X,)j(plain,)d(or)j(whatev)m(er)g(y)m(ou)g(w)m(an)m
+(t.)169 5288 y Fl(\017)60 b Fn(On)25 b(the)h(destination)e(\(the)i
+(place)f(y)m(ou)h(t)m(yp)s(eset)g(the)f(complete)h(source\),)h(there)f
+(is)e(no)h(need)h(to)g(run)e Fi(TVS)p Fn(.)274 5388 y(Y)-8
+b(ou)31 b(only)f(need)g(to)h(sa)m(y)g(T)1192 5407 y(E)1242
+5388 y(X)g(to)g(\014nd)e(\014les)g(in)g(w)m(orking)h(directory)g
+(\014rst.)169 5528 y Fl(\017)60 b Fi(TVS)34 b Fn(is)f
+Fh(not)44 b Fn(a)35 b(v)m(ersion)f(con)m(trol)h(system.)53
+b(It)34 b(cannot)h(handle)e(v)m(ersions)h(of)h(y)m(our)f(do)s(cumen)m
+(ts.)52 b(There)274 5628 y(are)31 b(other)g(systems,)g(e.g.,)g
+Fi(RCS)f Fn(or)g Fi(CVS)p Fn(,)g(designed)f(to)i(do)g(this.)p
+eop
+%%Page: 2 4
+2 3 bop 94 -116 a Fn(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2771
+b(2)94 365 y Fm(1.3)69 b(What)45 b(do)g(y)l(ou)g(need)g(to)g(run)f
+Fj(TVS)p Fm(?)219 548 y Fn(Hardw)m(are)32 b(and)e(OS)h(requiremen)m(ts)
+f(are)i(simple.)41 b Fi(TVS)30 b Fn(is)h(a)g(P)m(erl)g(script)f(so)i
+(it)f(runs)e(wherev)m(er)j(P)m(erl)e(5.x)94 648 y(is)k(a)m(v)-5
+b(ailable.)51 b(It)34 b(uses)f(pac)m(k)-5 b(ages)36 b(Getopt::Long,)h
+(File::Basename,)f(File::Cop)m(y)-8 b(,)36 b(and)d(File::P)m(ath.)52
+b(These)94 747 y(pac)m(k)-5 b(ages)33 b(should)28 b(b)s(e)i(nev)m
+(ertheless)g(in)f(standard)h(P)m(erl)g(distribution.)219
+872 y(F)-8 b(or)45 b(information)e(on)h(P)m(erl)g(for)g(y)m(our)g(OS)g
+(c)m(hec)m(k)i Fi(http://www.perl.com)p Fn(.)77 b(There)44
+b(should)e(b)s(e)i(no)94 971 y(problem)29 b(on)i(most)f(Unices,)g(in)f
+(Lin)m(ux,)h(P)m(erl)f(is)h(usually)e(a)j(part)f(of)h(standard)e
+(distribution.)219 1096 y(Ma)m(yb)s(e)j(y)m(ou)g(\014nd)e(useful)g(ha)m
+(ving)h(also)g Fi(make)f Fn(and)h Fi(Texinfo)f Fn(utilities)f
+(installed)g(on)i(y)m(our)h(system,)g(but)94 1196 y Fi(Texinfo)e
+Fn(is)g(only)h(needed)g(to)h(pro)s(duce)f(do)s(cumen)m(tation)g(in)f(D)
+m(VI,)j(P)m(ostScript,)e(Info,)h(or)f(HTML)h(formats)94
+1295 y(whic)m(h)e(are)g(pregenerated)h(in)e Fi(TVS)h
+Fn(distribution.)37 b(And)29 b Fi(make)h Fn(is)f(only)g(to)j(generate)f
+(them)g(comfortably)-8 b(.)219 1420 y(There)21 b(are)h(some)f
+(requiremen)m(ts)g(for)g(y)m(our)g(T)1746 1439 y(E)1796
+1420 y(X)h(source)f(co)s(des)g(to)h(b)s(e)f(able)g(to)h(handle)e(them)h
+(successfully)-8 b(.)94 1519 y(There)32 b(is)e(a)i(problem)e(with)g
+(including)f(\014les)h(in)m(to)i(y)m(our)f(source.)45
+b(The)31 b(usual)f(and)h(b)s(est)g(w)m(a)m(y)i(to)f(do)f(it)h(is)e(to)
+94 1619 y(ha)m(v)m(e)c(the)f(main)e(source)h(at)i(the)e(top)h(of)f(the)
+h(source)f(tree)h(and)f(use)g(relativ)m(e)h(paths)f(in)f(all)g(v)-5
+b(arian)m(ts)24 b(of)h Fi(\\input)94 1719 y Fn(command.)39
+b(Av)m(oid)25 b(pathological)g(inputs)e(lik)m(e)h Fi(\\includegraphics)
+i(../../pictures/pict1.ps)p Fn(.)33 b(This)94 1818 y(should)c(not)h(b)s
+(other)g(y)m(ou)h(as)f(nearly)g(ev)m(eryb)s(o)s(dy)g(do)s(es)g(it.)219
+1943 y(Usually)25 b Fi(TVS)g Fn(is)g(able)h(to)h(pac)m(k)g(\014les)e
+(referenced)h(b)m(y)g(\\up-going")h(relativ)m(e)f(path)g(\(if)f(it)h
+(mak)m(es)h(a)g(con\015ict,)94 2042 y Fi(TVS)f Fn(recognizes)h(it\),)h
+(but)d(y)m(ou)i(run)e(in)m(to)i(di\016culties)d(when)h(re-t)m(yp)s
+(esetting)i(the)g(complete)g(source)g(and)f(y)m(ou)94
+2142 y(ha)m(v)m(e)32 b(to)f(correct)h(all)d(the)i(things)e(b)m(y)h
+(hand.)p eop
+%%Page: 3 5
+3 4 bop 94 -116 a Fn(Chapter)30 b(2:)41 b(Installation)2816
+b(3)94 365 y Fk(2)81 b(Installation)219 589 y Fn(The)28
+b(program)h Fi(TVS)f Fn(and)g(its)g(do)s(cumen)m(tation)h(is)e(written)
+h(and)g(main)m(tained)g(b)m(y)h(Da)m(vid)g(An)m(to)-5
+b(\024)-41 b(s,)31 b Fi(xantos)94 689 y(\(at\))f(fi.muni.cz)p
+Fn(.)37 b(\(Of)30 b(course)g(substitute)f(\(at\))j(with)c
+Fi(@)p Fn(.\))41 b(Con)m(tact)31 b(him)e(when)g(in)g(trouble,)g(but)g
+(please)94 789 y(read)i(the)f(do)s(cumen)m(tation)h(\014rst.)219
+913 y(The)38 b(follo)m(wing)f(instructions)g(assume)h(that)h(P)m(erl)g
+(v)m(ersion)f Fi(>)p Fn(=5)g(is)g(installed)e(on)j(y)m(our)f(system.)66
+b(F)-8 b(or)94 1013 y(information)29 b(on)h(P)m(erl)g(consult)g
+Fi(http://www.perl.org)p Fn(.)219 1137 y(The)23 b(homepage)h(of)g
+Fi(TVS)f Fn(is)f Fi(http://www.fi.muni.cz/~xa)o(ntos)o(/tv)o(s)p
+Fn(.)33 b(Here)24 b(y)m(ou)f(can)h(get)h Fi(TVS)d Fn(either)94
+1237 y(\014le-b)m(y-\014le)30 b(or)g(as)h Fi(tvs.tar.gz)c
+Fn(\014le.)40 b Fi(TVS)30 b Fn(can)g(also)h(b)s(e)e(obtained)h(on)g(CT)
+-8 b(AN)31 b(in)e Fi(support/TVS)p Fn(.)219 1362 y(Because)j(of)e
+(platform)g(indep)s(endence)e(w)m(e)j(decided)e(not)i(to)g(prepare)f
+(an)m(y)g(\\instan)m(t")h(pac)m(k)-5 b(ages.)219 1486
+y(If)24 b(y)m(ou)i(do)m(wnloaded)e Fi(tvs.tar.gz)p Fn(,)f(gunzip)g(and)
+i(un-tar)f(it)h(somewhere.)38 b(If)25 b(y)m(ou)g(do)m(wnloaded)f
+(separate)94 1586 y(\014les,)30 b(reconstruct)h(the)f(original)f
+(\014le)g(structure)h(an)m(ywhere)h(y)m(ou)f(w)m(an)m(t.)219
+1710 y(On)67 b(UNIX,)h(mak)m(e)g(a)g(link)d(to)j Fi(tvs.pl)e
+Fn(from)h(a)h(directory)f(whic)m(h)f(is)g(in)g(y)m(our)i
+Fi(PATH)p Fn(,)76 b(e.g.)94 1810 y Fi(/usr/local/bin)p
+Fn(,)29 b(if)i(y)m(our)h(system)g(deco)s(des)g(\014rst)f(lines)f(of)i
+(scripts)e(to)j(run)d(them.)46 b(In)31 b(this)f(case,)k(it)d(ma)m(y)94
+1910 y(b)s(e)c(needed)f(to)i(correct)g(the)f(v)m(ery)h(\014rst)e(line)f
+(of)i Fi(tvs.pl)f Fn(and)g(put)g(the)h(righ)m(t)g(path)f(to)i(y)m(our)f
+(P)m(erl)g(in)m(terpreter)94 2009 y(there.)69 b(Otherwise)39
+b(y)m(ou)h(ma)m(y)g(still)e(run)g Fi(TVS)h Fn(running)e
+Fi(perl)29 b(tvs.pl)p Fn(.)67 b(Install)38 b(the)i(do)s(cumen)m(tation)
+f(in)94 2109 y(y)m(our)34 b(fa)m(v)m(orite)h(format,)g(where)f(y)m(our)
+f(do)s(cs-reader)h(can)g(\014nd)e(it.)51 b(A)m(t)34 b(least,)i
+Fi(/usr/doc/tvs)30 b Fn(w)m(ouldn't)j(b)s(e)94 2208 y(a)e(bad)f(c)m
+(hoice)h(to)g(store)g(P)m(ost)h(Script)d(or)h(HTML)g(do)s(cumen)m
+(tation.)219 2333 y(Generally)23 b(sp)s(eaking,)i(there)g(is)e(no)h
+(need)g(to)h(install)e Fi(TVS)g Fn(to)i(global)f(directories)f(if)g(y)m
+(ou)i(are)g(the)f(only-one)94 2433 y(who)30 b(runs)f(it)h(or)g(y)m(ou)h
+(are)g(not)g(ro)s(ot.)219 2557 y(T)-8 b(ry)30 b Fi(tvs)f(--help)p
+Fn(.)39 b(If)30 b(a)h(TVS)f(header)g(and)g(help)f(message)i(written,)f
+(ev)m(erything)g(is)g(OK.)219 2682 y(If)i(y)m(our)h(standard)e(P)m(erl)
+h(distribution)d(do)s(es)j(not)h(con)m(tain)g(pac)m(k)-5
+b(ages)34 b(Getopt::Long,)i(File::Basename,)94 2781 y(File::Cop)m(y)-8
+b(,)31 b(and)f(File::P)m(ath,)h(get)h(them)e(from)g Fi
+(http://www.perl.org)p Fn(.)219 2906 y(On)i(M$)i(DOS/Windo)m(w$)f
+(platforms)f(the)h Fi(.pl)f Fn(su\016x)h(should)e(b)s(e)h(enough)h(for)
+g(P)m(erl)f(script)g(to)i(run,)f(of)94 3005 y(course)38
+b(if)f(P)m(erl)h(is)e(correctly)j(installed.)60 b(Please)38
+b(do)g(not)g(exp)s(ect)g(me)g(to)h(mak)m(e)g(b)s(etter)f(supp)s(ort)e
+(for)h(M$)94 3105 y(platforms)30 b(as)g(I)h(do)f(not)g(run)f(them.)219
+3230 y(On)37 b(other)g(platforms,)i(if)d(there)i(are)f(di\016culties)e
+(in)h(installing)f(or)i(running)e Fi(TVS)p Fn(,)j(please)g(drop)e(me)i
+(a)94 3329 y(line.)p eop
+%%Page: 4 6
+4 5 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b
+Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(4)94 365 y Fk(3)81
+b(Using)54 b Ff(TVS)f Fk(step)f(b)l(y)i(step)219 681
+y Fn(This)26 b(c)m(hapter)j(sho)m(ws)f(the)g(usage)h(of)f
+Fi(TVS)f Fn(and)g(v)-5 b(arious)27 b(examples.)40 b(It)28
+b(also)g(p)s(oin)m(ts)f(out)h(the)g(limitations)94 781
+y(of)k(this)d(system,)j(in)d(other)j(w)m(ords)e(what)h(it)f
+Fh(c)-5 b(an)39 b Fn(do)31 b(for)f(y)m(ou)h(\(and)g(it's)g(quite)f(a)h
+(lot\))h(and)e(what)h(it)f(cannot.)94 880 y(Y)-8 b(es,)32
+b(there)e(are)h(some)g(unpleasan)m(t)f(things)f(y)m(ou)i(m)m(ust)f(do)g
+(man)m(ually)-8 b(.)94 1214 y Fm(3.1)69 b(Useful)45 b(commands)219
+1427 y Fn(T)-8 b(o)31 b(mak)m(e)g(sure)f(that)h Fi(TVS)e
+Fn(is)g(correctly)i(installed)d(on)i(y)m(our)g(system,)h(run)e
+Fi(tvs)g(-h)p Fn(.)40 b(Y)-8 b(ou)31 b(should)d(obtain)94
+1527 y(a)j(short)f(help)f(on)i(using)d Fi(TVS)p Fn(.)219
+1682 y(There)34 b(are)h(t)m(w)m(o)g(useful)e(switc)m(hes)h(y)m(ou)h
+(should)d(kno)m(w)j(b)s(efore)f(starting)g(exp)s(erimen)m(ts)f(with)h
+Fi(TVS)p Fn(.)51 b(Y)-8 b(ou)94 1781 y(ma)m(y)41 b(increase)e(v)m(erb)s
+(osit)m(y)g(lev)m(el)g(using)f Fi(-v)h Fn(or)g(ev)m(en)h
+Fi(-vv)f Fn(switc)m(h.)67 b(See)40 b(Section)f(4.2)i([Global)e(switc)m
+(hes],)94 1881 y(page)32 b(8,)f(for)f(detailed)f(information)g(on)h(v)m
+(erb)s(osit)m(y)g(lev)m(els.)219 2036 y(In)36 b(follo)m(wing)e
+(examples)i(y)m(ou)h(ma)m(y)g(also)f(sp)s(ecify)f Fi(--dummy)g
+Fn(command.)58 b(It)37 b(means)f(that)h(no)f(\014les)g(are)94
+2136 y(really)26 b(copied)g(and)g(no)h(real)f(output)g(is)g(pro)s
+(duced.)38 b(But)26 b(ev)m(erything)h(else)f(lo)s(oks)g(lik)m(e)g(real)
+h(op)s(erations)e(w)m(ere)94 2235 y(p)s(erformed.)94
+2569 y Fm(3.2)69 b(Basic)45 b(running)f Fj(TVS)219 2782
+y Fn(No)m(w)32 b(it's)f(time)h(to)g(lo)s(ok)f(to)h(the)g
+Fi(examples)d Fn(directory)i(in)g(y)m(our)g(distribution.)41
+b(It)31 b(con)m(tains)h(source)g(\014le)94 2882 y Fi(sample.tex)c
+Fn(w)m(e)j(will)d(use)i(to)h(demonstrate)g(the)f(usage)h(of)g
+Fi(TVS)p Fn(.)219 3037 y(The)j(\014rst)f(step)h(y)m(ou)h(m)m(ust)f(not)
+h(forget)g(is)e(to)i(T)1893 3056 y(E)1943 3037 y(X)f(y)m(our)g(source)h
+(correctly)-8 b(.)53 b(Do)s(cumen)m(t)35 b Fi(sample.tex)94
+3136 y Fn(uses)30 b Fi(\\tableofcontents)p Fn(,)d(so)j(y)m(ou)h(m)m
+(ust)f(run)334 3296 y Fi(latex)47 b(sample.tex)94 3451
+y Fn(t)m(wice.)42 b(Mak)m(e)32 b(sure)d(y)m(our)i(do)s(cumen)m(t)f(is)f
+(T)1571 3470 y(E)1621 3451 y(Xed)i(correctly)-8 b(.)41
+b(It)31 b(is)e Fh(very)k(very)38 b Fn(imp)s(ortan)m(t.)219
+3606 y(Let's)31 b(try)f(what)h Fi(TVS)e Fn(can)i(do)f(no)m(w.)41
+b(First)29 b(try)i(to)g(run)334 3765 y Fi(tvs)47 b(sample.log)94
+3920 y Fn(The)28 b(most)h(imp)s(ortan)m(t)e(for)h Fi(TVS)f
+Fn(is)g(log)i(\014le)e Fi(sample.log)p Fn(.)37 b(Y)-8
+b(ou)29 b(do)f(not)g(ha)m(v)m(e)h(to)g(sp)s(ecify)e(name)h(with)f
+Fi(.log)94 4019 y Fn(extension)40 b(as)g(it)f(is)g(tried)f(to)j(add)e
+(automatically)-8 b(.)69 b(What)40 b Fi(TVS)f Fn(no)m(w)h(do)s(es?)68
+b(It)40 b(go)s(es)g(through)f(the)h(\014le)94 4119 y
+Fi(sample.log)28 b Fn(and)i(\014nds)f(all)g(the)h(\014les)g(whic)m(h)f
+(are)i(needed)f(to)h(build)c(up)i(the)i(\014nal)e(do)s(cumen)m(t.)219
+4274 y Fi(TVS)d Fn(created)i(an)g(output)e(directory)h(named)g
+Fi(TVS-OUT)p Fn(.)37 b(Chec)m(k)28 b(its)e(con)m(ten)m(ts.)42
+b(In)26 b(fact,)j(on)e(M$-DOS)h(or)94 4374 y(M$-Windo)m(ws)j(mac)m
+(hines)f(this)f(didn't)g(w)m(ork.)1702 4341 y Fe(1)1780
+4374 y Fn(On)h(UN*X)h(mac)m(hines,)g(there)f(is)g(stupidly)d(deep)j
+(directory)94 4473 y(structure)g(con)m(taining)g(only)g(one)g
+(directory)g(in)f(another.)219 4628 y(There)37 b(is)f(a)h(w)m(a)m(y)i
+(to)e(a)m(v)m(oid)h(this.)60 b(Please)37 b(cop)m(y)h(\014le)f
+Fi(pathcuts.tvs)c Fn(in)m(to)38 b(the)f Fi(examples)e
+Fn(directory)-8 b(.)94 4728 y(Edit)30 b Fi(pathcuts.tvs)p
+Fn(,)d(replace)j(path)h Fi(/usr/TeX/texmf)26 b Fn(with)j(the)i(path)f
+(to)h(y)m(our)f(T)3090 4748 y(E)3140 4728 y(X)h(main)e(directory)-8
+b(.)219 4883 y(Delete)32 b(the)e Fi(TVS-OUT)f Fn(directory)g(and)h(run)
+334 5042 y Fi(tvs)47 b(-v)h(-p)f(pathcuts.tvs)d(sample)94
+5197 y Fn(See)32 b(what)g Fi(TVS)e Fn(do)s(es)h(no)m(w.)44
+b(Y)-8 b(ou)32 b(ma)m(y)g(also)g(c)m(hec)m(k)h(what)e(is)g(in)f(the)h
+Fi(TVS-OUT)f Fn(directory)-8 b(.)44 b(By)31 b Fi(-p)f(file)g
+Fn(w)m(e)94 5297 y(sa)m(y)h(that)g Fi(file)e Fn(con)m(tains)h(paths)g
+(w)m(e)h(w)m(an)m(t)g(to)g(shorten.)40 b(On)29 b(M$)i(\014le)e(system,)
+i(there)f(is)f(in)g(fact)i(needed)f(to)94 5397 y(use)h(this)e(to)i(cut)
+g(things)e(lik)m(e)g Fi(c:\\)h Fn(to)h(b)s(e)f(able)g(to)h(construct)g
+(\014le)e(names)h(used)g(in)f(the)h(output)g(directory)-8
+b(.)p 94 5553 1200 4 v 143 5614 a Fe(1)219 5645 y Fd(Do)26
+b(not)f(install)i(Lin)n(ux)e(immediately)-6 b(,)24 b(w)n(e)i(will)h
+(correct)f(it)g(in)g(the)f(next)g(paragraph.)35 b Fc(;-\))p
+eop
+%%Page: 5 7
+5 6 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b
+Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(5)94 365 y Fm(3.3)69
+b(Ignoring)45 b(\014les)219 546 y Fn(As)37 b(y)m(ou)g(can)g(see,)i
+(there)e(is)f Fi(sample.toc)e Fn(in)i(the)h(output)f(directory)-8
+b(.)60 b(W)-8 b(e)38 b(do)f(not)g(really)f(need)g(it)h(as)94
+645 y(it)42 b(can)g(b)s(e)f(alw)m(a)m(ys)h(generated.)76
+b(No)m(w)42 b(let)g(us)f(sho)m(w)g(the)h(w)m(a)m(y)h(ho)m(w)e(to)i
+(ignore)e(\014les.)74 b(Please)41 b(cop)m(y)i(\014le)94
+745 y Fi(ignpats.tvs)29 b Fn(to)j(the)f(w)m(orking)g(directory)-8
+b(.)43 b(This)30 b(\014le)g(con)m(tains)h(patterns)h(whic)m(h)e(are)h
+(compared)h(to)g(ends)94 844 y(of)f(\014les.)40 b(Matc)m(hing)31
+b(\014les)e(are)i(not)f(copied)g(to)h(the)g(output)f(directory)-8
+b(.)219 967 y(If)30 b(y)m(ou)h(w)m(an)m(t)g(to)g(try)f(it,)g(delete)h
+(the)g(output)f(directory)f(and)h(run)334 1093 y Fi(tvs)47
+b(-v)h(-p)f(pathcuts.tvs)d(-i)j(ignpats.tvs)e(sample)94
+1215 y Fn(No)m(w)32 b(\014les)d(ending)g(with)g Fi(toc)g
+Fn(are)i(missing.)219 1337 y Fh(Warning:)45 b Fn(use)28
+b(this)g(feature)h(with)e(care)i(and)f(only)f(if)h(y)m(ou)h(kno)m(w)f
+(what)g(y)m(ou)h(are)g(doing.)39 b(Alw)m(a)m(ys)29 b(mak)m(e)94
+1437 y(sure)h(that)h(\014les)e(y)m(ou)i(w)m(an)m(t)g(to)h(ignore)d(ma)m
+(y)i(b)s(e)f(rebuilt)e(up)i(from)g(the)g(rest)h(of)f(the)h(source.)94
+1687 y Fm(3.4)69 b(F)-11 b(ormat)45 b(\014le)g(sources)219
+1867 y Fn(In)29 b(fact,)i(storing)e(the)h(complete)g(do)s(cumen)m(t)g
+(source)f(ma)m(y)i(not)f(b)s(e)f(enough)g(to)i(b)s(e)e(able)g(to)h(pro)
+s(duce)f(the)94 1967 y(same)j(output.)43 b(W)-8 b(e)33
+b(m)m(ust)e(also)g(store)h(format)f(source)h(\014les.)42
+b(Storing)30 b(only)h(the)g(format)h(\014le)e(itself)g(do)s(esn't)94
+2066 y(help)f(as)i(this)e(\014le)h(is)f(not)i(binary)d(compatible)i(in)
+f(general.)219 2188 y(The)40 b(main)f(thing)g(y)m(ou)h(need)g(is)f(to)i
+(kno)m(w)f(where)f(log)i(\014les)e(of)h(generated)h(formats)f(are)h
+(stored.)69 b(T)-8 b(o)94 2288 y(obtain)20 b(this)g(information)e
+(consult)i(y)m(our)h(lo)s(cal)e(do)s(cumen)m(tation,)k(or)d(y)m(ou)h
+(ma)m(y)g(try)f(to)h(\014nd)e(\014les)h Fi(latex.log,)94
+2388 y(tex.log,)29 b(pdftex.log)p Fn(,)20 b(or)g(ask)h(y)m(our)f(T)1531
+2407 y(E)1581 2388 y(X)h(administrator.)36 b(It)20 b(is)g(also)g(p)s
+(ossible)e(that)j(y)m(our)g(administrator)94 2487 y(deleted)37
+b(log)g(\014les)f(after)h(generating)h(formats.)60 b(In)36
+b(this)g(case)i(ask)f(him)e(to)j(regenerate)g(format)g(\014les)e(and)94
+2587 y(lea)m(v)m(e)30 b(the)e(logs)h(un)m(touc)m(hed.)40
+b(This)26 b(is)h(not)i(a)f(go)s(o)s(d)g(manner)g(to)g(delete)h(log)f
+(\014les)f(of)i(this)e(imp)s(ortance.)39 b(Y)-8 b(our)94
+2686 y(administrator)31 b(ma)m(y)h(ha)m(v)m(e)i(ev)m(en)e(delete)g
+(format)h(\014le)e(sources.)45 b(In)31 b(this)g(case,)j(ask)e(him)e(to)
+j(reinstall)d(them)94 2786 y(and)g(b)s(etter)h(\014nd)e(a)h(new)g(T)
+1037 2806 y(E)1087 2786 y(X)h(administrator.)219 2908
+y(Y)-8 b(ou)22 b(should)e(mak)m(e)j(sure)e(that)i(formats)f(w)m(ere)g
+(really)f(generated)i(on)e(y)m(our)h(lo)s(cal)f(installation.)36
+b(They)21 b(ma)m(y)94 3008 y(ha)m(v)m(e)27 b(b)s(een)d(generated)i(on)f
+(a)g(binary)e(compatible)h(mac)m(hine)h(with)e(other)j(organization)f
+(of)g(T)3296 3027 y(E)3346 3008 y(X)g(directories.)94
+3107 y(If)34 b(so,)i(y)m(ou)f(m)m(ust)f(re-generate)i(them.)53
+b(If)34 b(y)m(ou)g(run)f(a)i(distribution)c(whic)m(h)i(allo)m(ws)h(y)m
+(ou)g(to)h(set)g(lo)s(cal)f(T)3756 3127 y(E)3806 3107
+y(X)94 3207 y(installation)c(ro)s(ot)h(directory)-8 b(,)32
+b(this)e(is)h(quite)f(p)s(ossible.)42 b(F)-8 b(or)32
+b(example,)f(on)g(m)m(y)h(texliv)m(e-4)g(I)f(had)g(to)h(correct)94
+3307 y(this.)219 3429 y(In)g(emergency)-8 b(,)34 b(if)d(y)m(ou)i(do)f
+(not)g(ha)m(v)m(e)i(ro)s(ot)f(privilegies)c(and)j(y)m(ou)g(cannot)h
+(globally)e(mak)m(e)i(format)g(logs)94 3528 y(correct,)26
+b(y)m(ou)c(still)e(can)j(generate)g(formats)g(in)d(y)m(our)i(o)m(wn)h
+(directory)e(and)h(use)g(them)g(o)m(v)m(erriding)f(y)m(our)h(system)94
+3628 y(defaults.)40 b(In)30 b(this)f(case,)j(giv)m(e)f(y)m(our)f(ro)s
+(ot)h(m)m(y)f(regards.)219 3750 y(T)-8 b(o)33 b(store)h(format)f
+(sources,)h(y)m(ou)f(need)g(to)h(tell)e Fi(TVS)g Fn(where)g(logs)h
+(are.)49 b(It)33 b(is)f(done)h(b)m(y)g Fi(-f)c(path)j
+Fn(switc)m(h.)94 3850 y(Let's)f(try)g(to)g(call)334 3976
+y Fi(tvs)47 b(-v)h(-p)f(pathcuts.tvs)d(-f)j(where_your_logs_are)c
+(sample)94 4098 y Fn(Y)-8 b(ou)31 b(should)e(obtain)h(output)g
+(directory)g(similar)e(to)j(previous)e(one)h(but)g(con)m(taining)g(sub)
+s(directory)e(named)94 4198 y Fi(FORMAT)p Fn(,)h(where)h(complete)h
+(source)g(for)f(format)h(generating)f(is)g(stored.)219
+4320 y(If)d Fi(TVS)g Fn(is)g(not)g(able)h(to)g(determine)f(format)h
+(name)f(correctly)-8 b(,)30 b(y)m(ou)e(ma)m(y)g(force)g(format)g(name)g
+(b)m(y)f(adding)94 4420 y Fi(--fmtname)h(name)i Fn(in)m(to)g(command)g
+(line)f(similar)e(to)32 b(previous)c(example.)41 b(Y)-8
+b(ou)31 b(ma)m(y)g(try)334 4546 y Fi(tvs)47 b(-v)h(-p)f(pathcuts.tvs)d
+(-f)j(where_your_logs_are)c(--fmtname)i(latex)i(sample)94
+4796 y Fm(3.5)69 b(Con\014guration)45 b(\014le)219 4976
+y Fn(The)d(command)g(lines)e(w)m(e)j(use)f(are)h(getting)g(to)s(o)g
+(long.)76 b(If)42 b(\014le)f Fi(tvsrc)g Fn(is)h(lo)s(cated)g(in)f(the)i
+(w)m(orking)94 5076 y(directory)-8 b(,)29 b(it)f(is)g(used)f(as)i
+(con\014g)f(\014le.)39 b(Y)-8 b(ou)29 b(ma)m(y)g(also)f(sp)s(ecify)f
+(the)h(con\014g)h(\014le)e(explicitly)f(b)m(y)i Fi(-c)i(filename)94
+5175 y Fn(or)h Fi(--config)d(filename)g Fn(switc)m(h.)219
+5297 y(Please)j(cop)m(y)g(\014le)e Fi(tvsrc)g Fn(to)i(the)g
+Fi(examples)d Fn(directory)-8 b(.)41 b(Con\014g)29 b(\014le)h(has)g
+(simple)e(structure)334 5424 y Fi(<variable>)45 b(<value>)219
+5546 y Fn(V)-8 b(alues)35 b(set)h(here)e(ma)m(y)i(b)s(e)e(alw)m(a)m(ys)
+i(o)m(v)m(erridden)e(b)m(y)h(the)g(command)g(line.)52
+b(Setting)35 b(v)-5 b(alues)34 b(for)h(ignore,)94 5645
+y(pathcuts)g(and)f(format)h(do)s(esn't)f(mean)h(that)g(\014les)e(are)i
+(ignored,)g(paths)g(cut)f(and)g(format)h(sources)g(stored)p
+eop
+%%Page: 6 8
+6 7 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b
+Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(6)94 365 y(b)m(y)27
+b(default.)38 b(Y)-8 b(ou)27 b(m)m(ust)g(use)f(switc)m(hes)g
+Fi(-i,)j(-p)d Fn(and)g Fi(-f)p Fn(,)h(but)e(there)i(is)e(no)i(need)f
+(to)h(follo)m(w)f(them)g(b)m(y)g(v)-5 b(alues.)94 465
+y(It)30 b(ma)m(y)g(seem)f(a)h(bit)e(strange)i(but)e(it)h(is)f(done)h
+(this)f(w)m(a)m(y)j(in)c(order)i(to)h(prev)m(en)m(t)g(y)m(ou)f(from)g
+(doing)f(something)94 565 y(y)m(ou)j(do)f(not)h(w)m(an)m(t)g(to.)42
+b(It)30 b(do)s(esn't)g(sa)m(v)m(e)i(y)m(our)f(k)m(eystrok)m(es)h(but|w)
+m(e)e(hop)s(e|y)m(our)g(nerv)m(es.)219 698 y(If)f(y)m(ou)h(edit)g(the)g
+Fi(format)e Fn(en)m(try)i(in)e Fi(tvsrc)h Fn(to)h(the)g(path)g(to)g(y)m
+(our)g(format)g(logs,)g(y)m(ou)g(ma)m(y)h(for)e(example)94
+798 y(use)334 935 y Fi(tvs)47 b(-i)h(-p)f(-f)g(-v)g(sample)94
+1068 y Fn(to)36 b(store)f(the)g(source)g(with)f(format)h(with)f
+(ignoring)f(\014les)h(and)g(cutting)g(paths)h(instead)f(of)h(the)g
+(long)f(form)94 1168 y(without)c(con\014g)g(\014le)g(whic)m(h)f(go)s
+(es)334 1306 y Fi(tvs)47 b(-i)h(ignpats.tvs)c(-p)j(pathcuts.tvs)e(-f)i
+(/usr/TeX/texmf/web2c)42 b(-v)48 b(sample)219 1439 y
+Fn(But)31 b(if)e(y)m(ou)i(use)f(only)334 1577 y Fi(tvs)47
+b(-p)h(sample)94 1710 y Fn(then)31 b(no)f(format)h(\014le)e(is)g
+(examined)h(and)g(no)g(\014les)f(are)i(ignored,)f(no)g(matter)h(that)g
+(the)g(con\014g)f(\014le)g(exists.)219 1843 y(In)g(the)h(con\014g)f
+(\014le)g(y)m(ou)h(ma)m(y)g(also)g(sp)s(ecify)e(the)i(default)f(output)
+g(directory)g(name)h(with)e Fi(output)g Fn(en)m(try)94
+1943 y(and)c(the)h(default)e(v)m(erb)s(osit)m(y)h(lev)m(el)g(using)f
+Fi(verbose)f Fn(with)h(v)-5 b(alue)25 b(0,)i(1,)g(or)e(2.)40
+b(These)25 b(v)-5 b(alues)24 b(are)i(used)e(alw)m(a)m(ys)94
+2043 y(and)30 b(ma)m(y)h(b)s(e)f(o)m(v)m(erridden)f(with)h
+Fi(-o)f Fn(and)h Fi(-v)p Fn(.)94 2322 y Fm(3.6)69 b(Limitations)46
+b(of)g Fj(TVS)219 2513 y Fn(W)-8 b(ork)28 b(of)g Fi(TVS)f
+Fn(is)f(limited)g(b)m(y)h(the)h(\014les)e(whic)m(h)h(are)g(noticed)h
+(in)e(log)i(\014les.)38 b(If)28 b(y)m(ou)f(use)h(an)m(ything)f(whic)m
+(h)f(is)94 2613 y(done)k(b)m(y)g(external)g(program,)h(y)m(ou)f(m)m
+(ust)g(tak)m(e)i(sp)s(ecial)d(care)h(on)g(\014les)g(y)m(ou)g(w)m(an)m
+(t)h(to)g(store.)41 b(If)30 b(y)m(ou)g(include)94 2713
+y(graphics)c(in)f(P)m(ost)j(Script,)e(it)g(ma)m(y)h(b)s(e)f(included)e
+(only)i(b)m(y)g Fi(\\special)f Fn(command)h(and)g(ma)m(y)h(not)g(b)s(e)
+f(noticed)94 2812 y(in)k(log.)219 2946 y(Y)-8 b(ou)36
+b(m)m(ust)g(alw)m(a)m(ys)g(ask)g(y)m(ourself)f(the)g(main)g(imp)s
+(ortan)m(t)g(question:)50 b Fh(Which)38 b(\014les|not)h(use)-5
+b(d)37 b(in)h(T)3757 2965 y(E)3806 2946 y(X)94 3045 y(last)c(run|I)f
+(want)h(to)f(stor)-5 b(e?)219 3179 y Fn(F)d(or)26 b(example)e(if)g(y)m
+(ou)h(use)f(a)h(bibliograph)m(y)-8 b(,)24 b(y)m(our)h(source)f(is)g(a)h
+Fi(.bib)f Fn(\014le.)38 b(But)25 b(in)e(the)i(last)g(T)3401
+3198 y(E)3451 3179 y(X)g(run)e(only)94 3278 y(sorted)33
+b(part)g(of)g(it,)g Fi(.bbl)f Fn(\014le)g(is)g(included.)45
+b(If)33 b(the)g Fi(.bbl)e Fn(\014le)h(is)g(enough)h(for)f(y)m(ou,)i
+(it's)f(go)s(o)s(d.)48 b(But)33 b(if)f(y)m(ou)94 3378
+y(w)m(an)m(t)i(to)f(store)h(sources)f(for)f(bibliograph)m(y)e
+(completely)-8 b(,)33 b(y)m(ou)h(need)e(also)h Fi(.bib)e
+Fn(\014le)h(and)g Fi(.bst)g Fn(\014le,)g(whic)m(h)94
+3478 y(con)m(tains)j(bibliograph)m(y)c(st)m(yle.)53 b(And)33
+b(there)i(is)e(no)h(w)m(a)m(y)h(for)f Fi(TVS)g Fn(to)h(kno)m(w)f(it)g
+(as)g(BibT)3176 3497 y(E)3225 3478 y(X)h(is)e(an)h(external)94
+3577 y(utilit)m(y)-8 b(.)40 b(That's)30 b(wh)m(y)g(y)m(ou)h(m)m(ust)f
+(cop)m(y)h(them)g(to)g Fi(TVS-OUT)d Fn(b)m(y)i(hand.)219
+3711 y(If)g(y)m(ou)h(don't)g(do)f(so,)h(y)m(ou)g(are)g(still)e(able)h
+(to)h(obtain)f(exactly)i(the)e(same)h(do)s(cumen)m(t,)g(but)f(y)m(ou)h
+(run)e(in)m(to)94 3810 y(di\016culties)f(trying)i(to)h(do)f(an)m(y)h
+(mo)s(di\014cations.)219 3944 y(It)22 b(is)g(alw)m(a)m(ys)g(b)s(etter)h
+(store)f(more)h(than)f(y)m(ou)g(need.)38 b(If)22 b(y)m(ou)g(are)h(a)g
+(T)2493 3963 y(E)2543 3944 y(X)f(b)s(eginner)e(and)i(y)m(ou)g(are)h
+(absolutely)94 4043 y(not)41 b(sure,)h(it)e(ma)m(y)h(b)s(e)f
+(reasonable)g(for)g(y)m(ou)h(to)g(preserv)m(e)f(all)f(the)i(\014les)e
+(from)h(y)m(our)g(w)m(orking)g(directory)-8 b(.)94 4143
+y(Includes)29 b(from)h(T)717 4162 y(E)767 4143 y(X)g(directory)g
+(\(e.g.,)j Fi(c:\\tex\\texmf)p Fn(\))27 b(are)k(handled)d(correctly)-8
+b(.)94 4422 y Fm(3.7)69 b(F)-11 b(on)l(ts)219 4614 y
+Fn(This)29 b(is)g(exp)s(erimen)m(tal!)219 4747 y(Usually)34
+b(there)i(is)e(no)i(reason)g(to)g(store)g(also)g(fon)m(t)g(source)g
+(\014les.)55 b(The)35 b(exception)h(is)f(if)f(y)m(our)i(national)94
+4847 y(mo)s(di\014cation)29 b(of)i(fon)m(ts)f(c)m(hanged)h(its)f(enco)s
+(ding)g(or)g(y)m(ou)h(use)f(un)m(usual)e(fon)m(ts.)219
+4980 y(If)k(y)m(ou)h(w)m(an)m(t)h(to,)h(y)m(ou)e(ma)m(y)g(run)e
+Fi(dvips)h Fn(with)f Fi(-d)h Fn(switc)m(h)h(to)g(pro)s(duce)f(a)h(log)g
+(\014le)f(with)f(list)h(of)h(op)s(ened)94 5080 y(\014les.)76
+b(Consult)41 b(y)m(our)h Fi(dvips)f Fn(do)s(cumen)m(tation)h(ho)m(w)g
+(to)h(do)g(it.)76 b(This)40 b(switc)m(h)i(is)f(follo)m(w)m(ed)h(b)m(y)g
+(n)m(um)m(b)s(er)94 5179 y(indicating)29 b(what)h(should)e(b)s(e)i
+(logged.)219 5313 y(If)g(y)m(ou)h(use)f Fi(tvs)g(-d)g(dvips.log)p
+Fn(,)e(a)j(sub)s(directory)d(F)m(ONTS)j(is)f(created)h(in)e(the)i
+(output)f(directory)h(and)94 5412 y(all)k(\014les)h(used)f(b)m(y)h
+(dvips)e(are)j(stored)f(there.)58 b(Only)34 b(fon)m(t)j(bitmaps)e(ma)m
+(y)i(b)s(e)e(obtained)g(this)g(w)m(a)m(y)-8 b(,)40 b(so)c(this)94
+5512 y(feature)31 b(is)f(not)g(v)m(ery)h(useful.)39 b(If)30
+b(y)m(ou)h(w)m(an)m(t)g(to)g(store)g(Metafon)m(t)h(sources,)f(y)m(ou)g
+(m)m(ust)f(do)g(it)g(b)m(y)g(hand.)219 5645 y(There)g(is)f(no)i(guaran)
+m(tee)g(of)g(correct)h(w)m(ork)e(of)h Fi(-d)e Fn(switc)m(h)h(as)h
+Fi(dvips)e Fn(log)h(c)m(hanged.)p eop
+%%Page: 7 9
+7 8 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b
+Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(7)94 365 y Fm(3.8)69
+b(What)45 b(to)g(do)g(with)g(collected)h(output)219 548
+y Fn(Curren)m(tly)31 b Fi(TVS)g Fn(implemen)m(ts)g(no)h(w)m(a)m(y)h(of)
+g(pac)m(king)f(nor)g(extracting)h(collected)f(complete)h(source.)47
+b(Use)94 648 y(an)m(y)d(w)m(a)m(y)g(of)f(pac)m(king)g(this)e(directory)
+i(y)m(ou)g(lik)m(e)f(dep)s(ending)f(of)i(the)g(platform)f(y)m(ou)h(run)
+e Fi(TVS)h Fn(and)h(the)94 747 y(platform)30 b(y)m(ou)h(will)c(w)m(an)m
+(t)32 b(to)f(re-t)m(yp)s(eset)g(y)m(our)g(w)m(ork)f(in)f(the)i(future.)
+219 872 y(There)f(is)f(no)i(w)m(a)m(y)g(to)g(run)e(TVS)h(on)g(the)g
+(destination.)40 b(Y)-8 b(ou)31 b(m)m(ust)f(only)g(tell)f(T)2984
+891 y(E)3034 872 y(X)169 996 y Fl(\017)60 b Fn(to)32
+b(generate)f(the)g(format)g(\014le)e(if)h(format)g(sources)h(w)m(ere)g
+(stored,)169 1121 y Fl(\017)60 b Fn(to)32 b(generate)f(fon)m(ts)g(if)f
+(fon)m(ts)g(w)m(ere)h(stored,)169 1245 y Fl(\017)60 b
+Fn(to)32 b(\014nd)c(\014les)i(in)f(w)m(orking)g(directory)h(and)g(its)g
+(sub)s(directories)e(at)j(\014rst.)219 1395 y(T)-8 b(o)31
+b(do)f(this,)g(consult)f(the)i(lo)s(cal)e(do)s(cumen)m(tation.)p
+eop
+%%Page: 8 10
+8 9 bop 94 -116 a Fn(Chapter)30 b(4:)41 b(Reference)32
+b(guide)d(to)i Fi(TVS)f Fn(commands)1909 b(8)94 365 y
+Fk(4)81 b(Reference)52 b(guide)i(to)f Ff(TVS)g Fk(commands)219
+595 y Fn(This)30 b(c)m(hapter)j(describ)s(es)d(o)m(v)m(erall)i
+(structure)f(of)h Fi(TVS)f Fn(commands)h(and)f(describ)s(es)f(the)i
+(function)f(of)h(the)94 694 y(commands)e(in)g(detail.)94
+956 y Fm(4.1)69 b(In)l(v)l(oking)45 b Fj(TVS)219 1141
+y Fn(General)30 b(structure)g(of)h(calling)e Fi(TVS)g
+Fn(is)334 1271 y Fi(tvs)47 b([switches])e(filename)94
+1397 y Fn(where)36 b Fi(filename)d Fn(is)i(a)h(name)g(of)g(the)g(main)f
+(T)1761 1417 y(E)1811 1397 y(X)h(log)g(\014le.)56 b Fi(TVS)35
+b Fn(m)m(ust)g(b)s(e)g(run)g(in)f(the)i(directory)f(where)94
+1497 y(main)30 b(T)373 1516 y(E)423 1497 y(X)g(log)h(\014le)e(is)h(lo)s
+(cated.)219 1623 y(Alw)m(a)m(ys)k(mak)m(e)g(sure)f(that)h(y)m(our)g(do)
+s(cumen)m(t)f(is)g(T)1951 1643 y(E)2001 1623 y(X-ed)h(correctly)g
+(\(index)e(is)h(sorted,)h(bibliograph)m(y)d(is)94 1723
+y(presen)m(t,)k(pictures)d(are)i(included)d(etc.\)!)51
+b(Usually)32 b(y)m(ou)i(ha)m(v)m(e)h(to)f(run)e(T)2615
+1742 y(E)2665 1723 y(X)i(sev)m(eral)f(times)g(to)i(t)m(yp)s(eset)f(the)
+94 1822 y(do)s(cumen)m(t)d(\(but)f(w)m(e)h(hop)s(e)e(this)h(do)s(esn't)
+g(surprise)e(y)m(ou\).)94 2084 y Fm(4.2)69 b(Global)45
+b(switc)l(hes)219 2269 y Fn(These)30 b(switc)m(hes)g(ma)m(y)h(b)s(e)f
+(used)g(to)h(c)m(hange)g(globally)e(b)s(eha)m(vior)g(of)i
+Fi(TVS)p Fn(.)94 2421 y Fi(-h,)f(--help)574 2520 y Fn(Prin)m(ts)47
+b(short)g(usage)h(and)e(v)m(ersion)h(information)f(and)h(exits)g
+(successfully)-8 b(.)90 b(This)46 b(switc)m(h)574 2620
+y(do)s(esn't)31 b(need)f(a)h(\014lename)e(as)i(a)f(parameter.)94
+2771 y Fi(-v,)g(--verbose)574 2871 y Fn(Sets)h(v)m(erb)s(osit)m(y)f
+(lev)m(el.)41 b(Ma)m(y)31 b(used)f(sev)m(eral)g(times.)41
+b(There)30 b(are)g(three)h(v)m(erb)s(osit)m(y)f(lev)m(els:)649
+2996 y Fl(\017)60 b Fn(Lev)m(el)31 b(0|only)f(examined)g(\014les)f(and)
+h(errors)f(are)i(written.)40 b(This)29 b(is)g(the)i(default.)649
+3122 y Fl(\017)60 b Fn(Lev)m(el)31 b(1|found)f(\014les,)f(cop)m(ying)h
+(info)g(and)g(errors)f(are)i(written.)649 3247 y Fl(\017)60
+b Fn(Lev)m(el)31 b(2|extra)h(talk)-5 b(ativ)m(e,)31 b(writes)e(all)h
+(it)g(do)s(es.)574 3398 y(F)-8 b(or)28 b(lev)m(el)e(1,)i(use)e
+Fi(-v)g Fn(or)h Fi(--verbose)d Fn(once,)k(for)e(lev)m(el)g(2,)i(use)f
+(it)f(t)m(wice.)40 b(Y)-8 b(ou)27 b(ma)m(y)g(also)f(sp)s(ecify)574
+3498 y Fi(-vv)p Fn(,)k(whic)m(h)f(is)h(the)g(most)h(comfortable)g(w)m
+(a)m(y)g(to)g(do)f(it.)94 3649 y Fi(-c)g(file,)f(--config)f(file)574
+3749 y Fn(Sp)s(eci\014es)22 b(the)g(con\014guration)h(\014le)e(name.)39
+b(See)23 b(Section)f(5.1)i([Con\014g)f(\014le],)h(page)f(10,)i(for)e
+(details)574 3848 y(ab)s(out)31 b(con\014guration)e(\014le.)574
+3974 y(If)24 b Fi(--config)d Fn(switc)m(h)i(is)g(not)h(sp)s(eci\014ed,)
+f(\014le)g Fi(tvsrc)f Fn(in)g(w)m(orking)h(directory)g(is)g(used)g(as)h
+(a)g(con\014g)574 4073 y(\014le)29 b(if)g(it)h(exists.)40
+b(There)29 b(is)g(no)h(need)f(of)h(ha)m(ving)g(con\014g)g(\014le)f(as)h
+(all)e(options)h(ma)m(y)i(b)s(e)e(set)h(from)574 4173
+y(command)h(line.)94 4324 y Fi(--dummy)144 b Fn(Sets)30
+b Fi(TVS)f Fn(to)h(dumm)m(y)e(mo)s(de.)40 b(No)30 b(\014les)f(are)h(c)m
+(hanged,)g(no)g(\014les)e(are)i(really)e(copied)h(to)h(output)574
+4424 y(directory)-8 b(,)41 b(it)d(is)f(only)h(sho)m(wn)f(what)i(has)f
+(to)h(b)s(e)f(done.)64 b(Useful)37 b(if)h(used)f(with)g
+Fi(--verbose)p Fn(.)574 4523 y(\(Inspired)29 b(b)m(y)h(similar)e(switc)
+m(h)h(in)g(cdrecord.\))94 4785 y Fm(4.3)69 b(Ignoring)45
+b(\014les)g(and)g(cutting)g(\014lenames)219 4970 y Fn(Using)31
+b(follo)m(wing)g(settings)h(w)m(e)g(ma)m(y)h(set)f(\014les)f(whic)m(h)g
+(shouldn't)f(b)s(e)i(copied)f(to)i(output)e(and)h(set)g(usual)94
+5069 y(paths)e(w)m(e)h(don't)g(w)m(an)m(t)g(to)g(store)g(completely)-8
+b(.)94 5221 y Fi(-i)30 b([file],)f(--ignore)f([file])574
+5321 y Fn(Sets)f(\014le)f(with)g(patterns)h(of)g(\014lenames)f(whic)m
+(h)f(w)m(e)i(don't)g(w)m(an)m(t)h(to)f(b)s(e)g(copied)f(to)i(output.)39
+b(See)574 5420 y(Section)31 b(5.2.2)h([Ignore)f(pattern)f(\014le],)g
+(page)h(11,)h(for)e(details)f(ab)s(out)h(ignore)g(pattern)h(\014le.)574
+5546 y(If)h Fi(file)f Fn(name)i(is)e(omitted,)i(v)-5
+b(alue)31 b(from)h(con\014g)h(\014le)e(is)g(used.)46
+b(If)31 b Fi(ignore)g Fn(parameter)h(is)g(not)574 5645
+y(set)f(in)e(con\014g)i(\014le,)f Fi(TVS)f Fn(terminates)i(with)e(an)h
+(error.)p eop
+%%Page: 9 11
+9 10 bop 94 -116 a Fn(Chapter)30 b(4:)41 b(Reference)32
+b(guide)d(to)i Fi(TVS)f Fn(commands)1909 b(9)94 365 y
+Fi(-p)30 b([file],)f(--pathcuts)e([file])574 465 y Fn(Sets)e(\014le)f
+(with)f(path)i(patterns)f(to)i(cut.)39 b(See)25 b(Section)f(5.2.1)j([P)
+m(athcuts)e(pattern)g(\014le],)g(page)h(11,)574 565 y(for)31
+b(information)d(ab)s(out)i(\014le)g(path)g(names)g(handling.)574
+689 y(If)g Fi(file)f Fn(name)i(is)e(not)i(sp)s(eci\014ed,)e(v)-5
+b(alue)29 b(from)h(con\014g)h(\014le)e(is)h(used.)40
+b(If)29 b Fi(pathcuts)f Fn(parameter)574 789 y(in)f(con\014g)g(\014le)g
+(is)g(not)g(sp)s(eci\014ed,)g Fi(--pathcuts)e Fn(parameter)j(is)e
+(silen)m(tly)g(ignored.)39 b(It)28 b(mak)m(es)g(no)574
+888 y(harm)i(to)h(function)e(of)i Fi(TVS)e Fn(and)h(if)f(it)h(causes)h
+(\014lename)f(con\015ict,)g Fi(TVS)g Fn(stops)g(with)f(an)h(error.)94
+1146 y Fm(4.4)69 b(Output)44 b(directory)i(setting)94
+1353 y Fi(-o)30 b(dirname,)e(--output)g(dirname)574 1453
+y Fn(Sets)i(the)g(name)g(of)g(output)g(directory)f(to)i
+Fi(dirname)p Fn(.)38 b(This)28 b(ma)m(y)j(b)s(e)e(only)g(useful)f(to)j
+(o)m(v)m(erride)574 1553 y(setting)h(in)f(con\014g)h(\014le.)44
+b(If)32 b(con\014g)g(\014le)f(do)s(esn't)g(set)i(output)e(directory)g
+(name,)i(default)e(name)574 1652 y Fi(TVS-OUT)e Fn(is)g(used)h(and)g
+(this)f(is)g(created)j(in)d(w)m(orking)h(directory)-8
+b(.)94 1910 y Fm(4.5)69 b(Storing)45 b(format)h(source)f(\014les)g(and)
+g(fon)l(ts)94 2117 y Fi(-f)30 b([dirname],)e(--format)g([dirname])574
+2217 y Fn(Sp)s(eci\014es)46 b(directory)g(where)g(format)h(log)g
+(\014les)f(are)h(and)f(pac)m(ks)h(format)h(\014le)d(sources.)90
+b(If)574 2316 y Fi(dirname)41 b Fn(is)g(omitted,)46 b(v)-5
+b(alue)41 b(from)h(con\014g)h(\014le)e(is)h(tak)m(en.)77
+b(If)42 b Fi(format)f Fn(parameter)h(is)g(not)574 2416
+y(sp)s(eci\014ed)29 b(in)f(con\014g)i(\014le,)f Fi(TVS)g
+Fn(dies)g(with)g(an)g(error.)41 b(See)30 b(Section)f(3.4)i([F)-8
+b(ormat)32 b(\014le)c(sources],)574 2516 y(page)35 b(5,)h(for)e
+(details)f(ab)s(out)h(format)h(source)f(\014les)f(extracting.)53
+b(F)-8 b(ormat)35 b(\014le)e(name)i(is)e(tak)m(en)574
+2615 y(from)d(the)h(main)e(do)s(cumen)m(t)h(log)h(from)f(the)g(\014rst)
+g(line)f(whic)m(h)g(con)m(tains)h Fi(format=name)p Fn(.)94
+2765 y Fi(--fmtname)e([name])574 2864 y Fn(Sp)s(eci\014es)44
+b(format)h(name,)j(e.g.)85 b Fi(plain)p Fn(,)47 b Fi(latex)p
+Fn(,)g(etc.)85 b(Useful,)48 b(if)43 b(format)j(name)e(cannot)574
+2964 y(b)s(e)34 b(found)g(in)f(log)i(of)g(do)s(cumen)m(t)f(in)f(form)h
+Fi(format=name)p Fn(.)51 b(Sp)s(ecifying)32 b Fi(--fmtname)c([name])574
+3064 y Fn(do)s(esn't)d(imply)d(pac)m(king)i(format)h(sources.)39
+b(Y)-8 b(ou)25 b(m)m(ust)f(sp)s(ecify)g Fi(--format)p
+Fn(,)f(to)s(o.)40 b(This)22 b(option)574 3163 y(cannot)31
+b(b)s(e)f(sp)s(eci\014ed)f(in)g Fi(TVS)p Fn('s)h(con\014g)g(\014le.)94
+3313 y Fi(-d)g(file,)f(--dvips)g(file)574 3412 y Fn(Sets)39
+b(name)f(of)g Fi(dvips)f Fn(log)i(\014le.)63 b(This)36
+b(cannot)j(b)s(e)f(sp)s(eci\014ed)e(in)h(con\014g)i(\014le.)63
+b(This)37 b(is)g(only)574 3512 y(exp)s(erimen)m(tal.)81
+b(See)44 b(Section)g(3.7)h([F)-8 b(on)m(ts],)50 b(page)45
+b(6,)j(for)43 b(information)g(on)h(dvips)e(log)i(\014le)574
+3611 y(examining)37 b(and)g(fon)m(t)i(storing.)63 b(Y)-8
+b(ou)38 b(w)m(ould)f(b)s(etter)h(not)h(to)f(use)g(this)f(feature)h
+(unless)f(y)m(ou)574 3711 y(kno)m(w)31 b(what)f(y)m(ou)h(are)g(doing.)p
+eop
+%%Page: 10 12
+10 11 bop 94 -116 a Fn(Chapter)30 b(5:)41 b(Con\014g)30
+b(\014le)g(and)f(pattern)i(\014les)2136 b(10)94 365 y
+Fk(5)81 b(Con\014g)52 b(\014le)i(and)f(pattern)g(\014les)219
+594 y Fn(In)33 b(this)g(c)m(hapter)i(w)m(e)f(discuss)e(con\014g)i
+(\014le)f(setting)h(and)g(structure)f(and)h(usage)g(of)g(\014les)f
+(with)g(patterns.)94 693 y(These)c(are)f(used)g(to)h(shorten)f(\(cut\))
+h(\014lenames)e(to)i(use)f(reasonable)g(short)g(paths)g(in)f(output)h
+(directory)g(and)94 793 y(to)k(set)f(\014les)e(whic)m(h)g(w)m(e)i(do)f
+(not)h(w)m(an)m(t)g(to)g(store)g(at)g(all.)94 1054 y
+Fm(5.1)69 b(Con\014g)44 b(\014le)219 1238 y Fn(W)-8 b(e)26
+b(ma)m(y)f(set)g(v)-5 b(alues)23 b(for)h Fi(verbose,)k(format,)h
+(ignore,)f(pathcuts,)22 b Fn(and)i Fi(output)f Fn(v)-5
+b(ariables)23 b(in)g(con\014g)94 1338 y(\014le.)219 1464
+y(If)31 b Fi(TVS)f Fn(is)g(run)g(with)f Fi(--config)g
+Fn(switc)m(h,)i(it)g(sets)g(used)g(con\014g)g(\014le)f(name.)43
+b(If)31 b(this)f(is)g(not)h(used,)g(default)94 1563 y(con\014g)f
+(\014le)e(named)g Fi(tvsrc)f Fn(in)h(w)m(orking)g(directory)h(is)e
+(tried.)40 b(If)28 b(it)h(do)s(esn't)f(exist,)h(no)g(con\014g)g(\014le)
+f(is)g(used)g(at)94 1663 y(all.)51 b(There)34 b(is)f(no)h(default)f
+(con\014g)i(\014le)e(lo)s(cation)h(\(e.g.)53 b Fi(/etc/tvsrc)31
+b Fn(or)j(something)g(similar\))e(b)s(ecause)i(of)94
+1763 y(the)d(platform)f(indep)s(endence)e(of)i Fi(TVS)p
+Fn(.)219 1889 y(The)k(structure)g(of)g(con\014g)h(\014le)e(is)g(quite)h
+(simple.)50 b(Ev)m(erything)34 b(after)h Fi(#)f Fn(and)g
+Fi(\045)g Fn(c)m(haracters)h(is)f(ignored.)94 1988 y(Lines)c(with)f
+(structure)334 2119 y Fi(<variable>)45 b(<value>)94 2245
+y Fn(set)37 b(v)-5 b(alues)35 b(of)h(v)-5 b(ariables.)55
+b(There)36 b(m)m(ust)f(b)s(e)h(just)f(one)h(white)f(c)m(haracter)i(b)s
+(et)m(w)m(een)g(the)f Fi(<variable>)d Fn(and)94 2344
+y(the)k Fi(<value>)p Fn(.)56 b(There)36 b(ma)m(y)g(b)s(e)g(an)m(y)g
+(coun)m(t)h(of)f(white)g(spaces)g(b)s(efore)g(and)f(after)i(this)e
+(structure)h(on)g(the)94 2444 y(line.)k(Lines)29 b(with)g(other)h
+(structure)g(or)h(sp)s(ecifying)d(v)-5 b(ariables)29
+b(not)i(listed)d(b)s(elo)m(w)i(are)h(silen)m(tly)d(ignored.)219
+2570 y(F)-8 b(or)31 b(example)f(of)h(con\014g)f(\014le,)g(see)h(\014le)
+f Fi(tvsrc)e Fn(enclosed)j(with)e(the)h(distribution.)219
+2696 y(V)-8 b(ariables)30 b(ha)m(v)m(e)h(meanings)f(as)g(follo)m(ws:)94
+2847 y Fi(verbose)144 b Fn(Sets)31 b(the)f(default)g(v)m(erb)s(osit)m
+(y)g(lev)m(el.)41 b(Reasonable)30 b(v)-5 b(alues)30 b(are)574
+2998 y Fi(0)432 b Fn(This)29 b(is)g(the)i(default.)574
+3149 y Fi(1,)f(2)306 b Fn(Set)32 b(v)m(erb)s(osit)m(y)g(lev)m(el)f(to)h
+(1)g(or)g(2.)45 b(See)32 b(Section)f(4.2)i([Global)e(switc)m(hes],)h
+(page)g(8,)1054 3249 y(for)f(description)d(of)j(v)m(erb)s(osit)m(y)f
+(lev)m(els.)94 3400 y Fi(format)192 b Fn(Sets)33 b(the)g(name)g(of)f
+(the)h(directory)f(where)g(format)h(log)g(\014les)e(are)i(stored.)48
+b(This)30 b(is)i(used)g(only)574 3499 y(of)f Fi(--format)d
+Fn(or)j Fi(-f)f Fn(switc)m(h)g(is)f(set)j(and)d(ma)m(y)j(b)s(e)e(o)m(v)
+m(erridden)f(b)m(y)i(this.)40 b(Y)-8 b(ou)31 b(should)d(sp)s(ecify)574
+3599 y Fi(format)d Fn(parameter)i(in)e(con\014g)i(\014le)e(if)h(y)m(ou)
+g(w)m(an)m(t)h(to)h(store)f(format)f(sources.)40 b(And)25
+b(y)m(ou)i(should)574 3699 y(store)k(format)g(sources.)41
+b(Simply|use)27 b(it.)94 3850 y Fi(ignore)192 b Fn(Sets)38
+b(the)f(name)h(of)f(\014le)f(with)g(patterns)h(used)g(to)h(ignore)f
+(\014les.)60 b(See)37 b(Section)g(5.2.2)j([Ignore)574
+3949 y(pattern)k(\014le],)i(page)e(11,)j(for)c(information)e(ab)s(out)i
+(ignoring)f(\014les.)78 b(This)41 b(is)h(used)h(only)f(if)574
+4049 y Fi(--ignore)29 b Fn(or)h Fi(-i)g Fn(switc)m(h)g(is)f(set)i(and)f
+(ma)m(y)h(b)s(e)e(o)m(v)m(erridden)h(b)m(y)g(this.)94
+4200 y Fi(pathcuts)96 b Fn(Sets)31 b(the)f(name)g(of)g(\014le)f(with)g
+(patterns)h(used)f(to)h(shorten)g(the)g(stored)g(\014lenames.)40
+b(Used)30 b(only)574 4299 y(if)g Fi(--pathcuts)d Fn(or)k
+Fi(-p)f Fn(switc)m(h)f(is)h(set)h(and)e(ma)m(y)i(b)s(e)f(o)m(v)m
+(erridden)g(b)m(y)g(these.)94 4450 y Fi(output)192 b
+Fn(Sets)42 b(the)h(default)e(output)g(directory)h(name.)75
+b(Ma)m(y)43 b(b)s(e)e(o)m(v)m(erridden)g(b)m(y)h Fi(--output)e
+Fn(or)i Fi(-o)574 4550 y Fn(switc)m(h.)f(If)30 b(not)g(set,)h(default)f
+(v)-5 b(alue)30 b Fi(TVS-OUT)e Fn(is)i(used.)94 4811
+y Fm(5.2)69 b(P)l(attern)46 b(\014le)f(structure)219
+4995 y Fn(The)20 b(structure)g(of)h(\014les)e(whic)m(h)g(con)m(tain)i
+(patterns)g(is)e(quite)h(simple.)36 b(Ev)m(erything)20
+b(after)h Fi(#)f Fn(or)g Fi(\045)g Fn(c)m(haracters)94
+5095 y(is)33 b(ignored.)47 b(A)34 b(line)d(of)i(the)g(\014le)f(ma)m(y)i
+(start)g(and)e(end)h(with)e(white)h(c)m(haracters.)51
+b(These)32 b(white)g(c)m(haracters)94 5194 y(are)f(ignored.)40
+b(The)30 b(remaining)e(part)j(of)f(the)h(line)d(\(if)i(it)g(is)g
+(nonempt)m(y\))g(is)g(considered)f(to)i(b)s(e)f(a)g(pattern.)219
+5320 y(A)i(pattern)g(is)f(treated)i(as)f(a)h(P)m(erl)e(regular)g
+(expression.)44 b(It)32 b(do)s(esn't)g(matter)h(if)e(y)m(ou)h(don't)g
+(kno)m(w)g(what)94 5420 y(it)f(is,)g(all)e(y)m(ou)j(need)f(to)g(kno)m
+(w)g(is)f(seen)i(from)e(the)h(examples.)43 b(Nev)m(ertheless)31
+b(y)m(ou)h(ma)m(y)f(try)g Fi(man)f(perlre)f Fn(or)94
+5519 y(equiv)-5 b(alen)m(t)30 b(for)g(reading)g(do)s(cumen)m(tation)g
+(on)g(y)m(ou)h(system.)219 5645 y(Next,)g(w)m(e'll)f(discuss)f(the)h
+(usage)h(of)g(pattern)f(\014les.)p eop
+%%Page: 11 13
+11 12 bop 94 -116 a Fn(Chapter)30 b(5:)41 b(Con\014g)30
+b(\014le)g(and)f(pattern)i(\014les)2136 b(11)94 365 y
+Fb(5.2.1)63 b(P)m(athcuts)40 b(pattern)g(\014le)219 548
+y Fn(This)35 b(\014le)g(is)h(used)g(if)f Fi(--pathcuts)f
+Fn(or)i Fi(-p)g Fn(switc)m(h)g(is)g(sp)s(eci\014ed.)57
+b(An)36 b(example)h(is)e(enclosed)i(with)e(the)94 648
+y(distribution)27 b(and)j(named)g Fi(pathcuts.tvs)p Fn(.)219
+772 y(The)e(\014le)g(sp)s(eci\014es)g(list)f(of)i(patterns)g(whic)m(h)e
+(are)i(compared)g(to)h(the)f Fh(b)-5 b(e)g(ginnings)36
+b Fn(of)29 b(\014lenames.)39 b(On)28 b Fh(\014rst)94
+872 y(match)44 b Fn(the)35 b(matc)m(hing)g(part)f(is)g(cut)h(and)g(the)
+g(rest)g(of)g(pattern)g(list)e(is)h(not)h(used.)54 b(So)35
+b(it)f(has)h(no)f(sense)h(to)94 971 y(ha)m(v)m(e)d(a)f(pattern)f(list)
+334 1100 y Fi(/usr/TeX)334 1204 y(/usr/TeX/texmf)94 1328
+y Fn(as)h(the)g(second)f(en)m(try)h(will)c(b)s(e)j(nev)m(er)h(used.)40
+b(But)30 b(sequence)334 1457 y Fi(/usr/TeX/texmf)334
+1561 y(/usr/TeX)94 1685 y Fn(ma)m(y)h(b)s(e)f(reasonable.)41
+b(\(It's)31 b(an)f(exercise)h(wh)m(y)e(and)h(when)g Fi(:-\))p
+Fn(.\))219 1810 y(An)g(example:)40 b(Let)31 b(us)f(ha)m(v)m(e)i
+(pattern)e(list)f(con)m(taining)h Fi(/usr/TeX/texmf)p
+Fn(.)37 b(If)30 b(\014lename)f(is)334 1939 y Fi
+(/usr/TeX/texmf/tex/latex/a)o(lgor)o(ith)o(/alg)o(orit)o(hm.)o(sty)94
+2063 y Fn(it)h(matc)m(hes)i(and)e(is)f(cut)i(to)334 2192
+y Fi(tex/latex/algorith/algorit)o(hm.s)o(ty)94 2316 y
+Fn(File)f Fi(inputs/my_macro.tex)25 b Fn(do)s(esn't)30
+b(matc)m(h)i(the)e(pattern)h(and)e(is)h(left)g(un)m(touc)m(hed.)94
+2540 y Fb(5.2.2)63 b(Ignore)42 b(pattern)e(\014le)219
+2723 y Fn(This)30 b(\014le)g(is)h(used)g(when)f Fi(--ignore)f
+Fn(or)j Fi(-i)f Fn(switc)m(h)g(is)f(sp)s(eci\014ed.)43
+b(An)31 b(example)g(named)g Fi(ignpats.tvs)94 2823 y
+Fn(is)f(enclosed.)219 2947 y(This)j(\014le)g(sp)s(eci\014es)g(list)g
+(of)i(patterns)f(whic)m(h)f(are)i(compared)f(to)i Fh(ends)42
+b Fn(of)35 b(\014lenames.)51 b(If)34 b Fh(any)43 b Fn(of)35
+b(them)94 3047 y(matc)m(hes,)41 b(\014le)36 b(is)g(ignored)g(and)h(is)f
+(not)h(copied)g(to)h(output.)60 b(Usually)-8 b(,)38 b(su\016ces)f(of)g
+(\014les)f(\(e.g.)62 b Fi(toc,)29 b(bbl)p Fn(\))94 3147
+y(are)40 b(used)e(here.)67 b(If)39 b(y)m(ou)g(w)m(an)m(t)h(mak)m(e)g
+(sure)f(that)g(there)h(is)e(a)h(dot)g(b)s(efore)g Fi(toc)f
+Fn(or)h Fi(bbl)p Fn(,)i(use)e Fi(\\.toc)f Fn(and)94 3246
+y Fi(\\.bbl)31 b Fn(en)m(tries)h(in)e(pattern)j(\014le)e(as)h(en)m
+(tries)g(are)g(PERL)f(regular)h(expressions.)44 b(F)-8
+b(or)33 b(detailed)e(information)94 3346 y(see)g Fi(perlre\(1\))p
+Fn(.)219 3470 y(Use)h(this)e(feature)i(with)e(care,)j(it)e(is)f
+(usually)f(b)s(etter)j(to)g(ha)m(v)m(e)g(a)g(sup)s(erset)e(of)i(needed)
+f(complete)h(source)94 3570 y(then)25 b(ha)m(v)m(e)h
+Fh(inc)-5 b(omplete)33 b Fn(source.)39 b(There)25 b(ma)m(y)g(b)s(e)g
+(\014les)e(whic)m(h)h(loaded)g(\(and)h(y)m(ou)g(don't)g(kno)m(w)g(ab)s
+(out)g(them\))94 3670 y(with)f(su\016ces)h(y)m(ou)g(don't)g(exp)s(ect.)
+40 b(Use)25 b(it)g(only)f(if)g(y)m(ou)h(kno)m(w)g(what)g(y)m(ou)h(are)f
+(doing.)38 b(Y)-8 b(ou'v)m(e)27 b(b)s(een)d(w)m(arned.)p
+eop
+%%Page: 12 14
+12 13 bop 94 -116 a Fn(App)s(endix)28 b(A:)j(Credits)2858
+b(12)94 365 y Fk(App)t(endix)54 b(A)81 b(Credits)219
+589 y Fn(I)30 b(w)m(ould)f(lik)m(e)h(to)h(thank)f(to:)169
+714 y Fl(\017)60 b Fn(P)m(etr)31 b(So)5 b(jk)-5 b(a,)30
+b(who)f(made)g(me)h(to)g(write)f Fi(TVS)g Fn(and)g(help)s(ed)e(me)j(v)m
+(ery)g(m)m(uc)m(h)g(with)e(all)g(the)i(troubles)f(and)274
+814 y(decisions)g(w)m(e)i(ha)m(v)m(e)h(had)d(to)j(mak)m(e,)169
+938 y Fl(\017)60 b Fn(Ric)m(hard)30 b(Bot)-10 b(\023)-35
+b(\020k,)31 b(who)f(len)m(t)g(me)h(the)f(\\P)m(erl)h(Camel)e(Bo)s(ok")j
+(for)e(a)h(fortnigh)m(t,)169 1063 y Fl(\017)60 b Fn(man)m(y)31
+b(others,)169 1187 y Fl(\017)60 b Fn(Bub)s(o,)41 b(m)m(y)f(home)f
+(computer,)i(as)f(it)e(surprisingly)d(didn't)i(get)k(o)m(v)m(erheated)g
+(to)s(o)f(m)m(uc)m(h)f(during)e(the)274 1287 y(terribly)29
+b(hot)h(spring)f(of)h(y)m(ear)i(2000)g(in)d(middle)f(Europ)s(e.)p
+eop
+%%Page: 13 15
+13 14 bop 94 -116 a Fn(App)s(endix)28 b(B:)j(Dealing)f(with)f(bugs)h
+(in)f Fi(TVS)2150 b Fn(13)94 365 y Fk(App)t(endix)54
+b(B)80 b(Dealing)55 b(with)f(bugs)e(in)i Ff(TVS)219 589
+y Fn(Please)25 b(send)f(bug-rep)s(orts)h(to)g Fi(xantos)k(\(at\))g
+(fi.muni.cz)22 b Fn(with)i(sub)5 b(ject)25 b Fi(TVS)k(bug)p
+Fn(.)38 b(Add)25 b(information)94 689 y(on)g(platform,)f(T)657
+709 y(E)707 689 y(X)g(installation)f(and)g(include)f(log)i(\014les)f
+(whic)m(h)g(w)m(ere)i(parsed.)38 b(Also)23 b(please)h(note)h(v)m
+(ersion)f(of)94 789 y(TVS,)31 b(b)s(oth)g(v)m(ersion)g(n)m(um)m(b)s(er)
+f(and)g(CVS)h(v)m(ersion)g(co)s(de)g(\(it's)g(the)h(line)d(con)m
+(taining)i Fi($Id:)e(tvs.pl,v...)p Fn(\).)94 888 y(Y)-8
+b(ou)31 b(can)g(get)h(this)d(information)f(b)m(y)j(running)c
+Fi(tvs)j(--help)p Fn(.)219 1013 y(If)41 b(y)m(ou)h(tried)f(to)h
+(compare)h Fi(.dvi)d Fn(\014les)h(obtained)g(running)e(T)2443
+1032 y(E)2493 1013 y(X)j(on)f(v)-5 b(arious)41 b(platforms)g(using)f
+Fi(TVS)94 1112 y Fn(complete)35 b(source,)h(please)f(k)m(eep)g(in)e
+(mind)f(they)j(ma)m(y)g(di\013er)e(if)h(something)g(dep)s(ending)e(on)i
+(\\the)h(state)h(of)94 1212 y(the)31 b(computer")g(\(esp)s(ecially)e
+(date\))i(w)m(as)g(included.)p eop
+%%Page: -1 16
+-1 15 bop 3849 -116 a Fn(i)94 365 y Fk(T)-13 b(able)55
+b(of)e(Con)l(ten)l(ts)94 697 y Fm(1)135 b(In)l(tro)t(duction)11
+b Fa(.)20 b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
+(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
+56 b Fm(1)393 822 y Fn(1.1)92 b(Wh)m(y)31 b(do)f(y)m(ou)h(need)f
+Fi(TVS)p Fn(?)10 b Fh(.)k(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Fn(1)393 922
+y(1.2)92 b(What)31 b Fi(TVS)f Fn(can)h(do?)15 b Fh(.)f(.)h(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)44 b Fn(1)393 1021 y(1.3)92 b(What)31 b(do)g(y)m(ou)f(need)h
+(to)g(run)e Fi(TVS)p Fn(?)24 b Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)55 b Fn(2)94 1254 y Fm(2)135 b(Installation)17
+b Fa(.)22 b(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
+h(.)61 b Fm(3)94 1511 y(3)135 b(Using)46 b Fj(TVS)d Fm(step)i(b)l(y)g
+(step)32 b Fa(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)
+f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76 b Fm(4)393
+1636 y Fn(3.1)92 b(Useful)30 b(commands)11 b Fh(.)k(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)41 b Fn(4)393 1735 y(3.2)92 b(Basic)31 b(running)d
+Fi(TVS)20 b Fh(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b
+Fn(4)393 1835 y(3.3)92 b(Ignoring)30 b(\014les)18 b Fh(.)13
+b(.)i(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b
+Fn(5)393 1934 y(3.4)92 b(F)-8 b(ormat)32 b(\014le)e(sources)e
+Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Fn(5)393 2034 y(3.5)92
+b(Con\014guration)29 b(\014le)14 b Fh(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)44 b Fn(5)393 2134 y(3.6)92 b(Limitations)29 b(of)i
+Fi(TVS)15 b Fh(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fn(6)393
+2233 y(3.7)92 b(F)-8 b(on)m(ts)15 b Fh(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fn(6)393
+2333 y(3.8)92 b(What)31 b(to)h(do)e(with)f(collected)i(output)13
+b Fh(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)42 b
+Fn(7)94 2565 y Fm(4)135 b(Reference)46 b(guide)g(to)f
+Fj(TVS)e Fm(commands)d Fa(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)
+f(.)h(.)84 b Fm(8)393 2690 y Fn(4.1)92 b(In)m(v)m(oking)31
+b Fi(TVS)17 b Fh(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47
+b Fn(8)393 2790 y(4.2)92 b(Global)30 b(switc)m(hes)e
+Fh(.)15 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)58 b Fn(8)393
+2889 y(4.3)92 b(Ignoring)30 b(\014les)f(and)h(cutting)g(\014lenames)c
+Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Fn(8)393
+2989 y(4.4)92 b(Output)30 b(directory)g(setting)22 b
+Fh(.)14 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)h(.)51 b Fn(9)393 3088 y(4.5)92 b(Storing)30
+b(format)h(source)f(\014les)f(and)h(fon)m(ts)c Fh(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fn(9)94 3321 y Fm(5)135
+b(Con\014g)45 b(\014le)g(and)g(pattern)h(\014les)11 b
+Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
+(.)f(.)h(.)55 b Fm(10)393 3445 y Fn(5.1)92 b(Con\014g)30
+b(\014le)d Fh(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+57 b Fn(10)393 3545 y(5.2)92 b(P)m(attern)32 b(\014le)d(structure)d
+Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)55 b Fn(10)692 3645 y(5.2.1)93 b(P)m(athcuts)31
+b(pattern)g(\014le)21 b Fh(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)g(.)g(.)50 b Fn(11)692 3744 y(5.2.2)93 b(Ignore)31
+b(pattern)f(\014le)f Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)59 b Fn(11)94 3977 y Fm(App)t(endix)44
+b(A)134 b(Credits)24 b Fa(.)d(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
+(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)69
+b Fm(12)94 4234 y(App)t(endix)44 b(B)134 b(Dealing)47
+b(with)e(bugs)g(in)g Fj(TVS)15 b Fa(.)j(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)g
+(.)h(.)60 b Fm(13)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/support/TVS/TVS/docs/tvs.texi b/support/TVS/TVS/docs/tvs.texi
new file mode 100644
index 0000000000..06084a36c9
--- /dev/null
+++ b/support/TVS/TVS/docs/tvs.texi
@@ -0,0 +1,913 @@
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename tvs.info
+@settitle @TeX{} Versioning System
+@afourpaper
+@c %**end of header
+
+@c This is TeX Versioning System documentation
+@c $Id: tvs.texi,v 1.23 2000/08/16 17:00:24 antos Exp $
+
+@titlepage
+@title @TeX{} Versioning System
+@subtitle Software for storing complete source codes of @TeX{} documents
+@author by David Anto@v{s}
+
+@page
+@vskip 0pt plus 1filll
+Copyright @copyright{} 2000 David Anto@v{s}
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+@end ignore
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+@end titlepage
+
+@dircategory TeX
+@direntry
+* TVS: (tvs) TeX Versioning System
+@end direntry
+
+@c ---------------------------------------------------------------------
+@node Top, Copying, (dir), (dir)
+@ifnottex
+@chapter @TeX{} Versioning System
+This is documentation of @TeX{} Versioning System, software for storing
+complete source codes of @TeX{} documents.
+
+@menu
+* Copying::
+* Introduction::
+* Installation::
+* Using @code{TVS} step by step::
+* Reference guide to @code{TVS} commands::
+* Config file and pattern files::
+* Credits::
+* Dealing with bugs in @code{TVS}::
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+Introduction
+
+* Why do you need @code{TVS}?::
+* What @code{TVS} can do?::
+* What do you need to run @code{TVS}?::
+
+Using @code{TVS} step by step
+
+* Useful commands::
+* Basic running @code{TVS}::
+* Ignoring files::
+* Format file sources::
+* Configuration file::
+* Limitations of @code{TVS}::
+* Fonts::
+* What to do with collected output::
+
+Reference guide to @code{TVS} commands
+
+* Invoking @code{TVS}::
+* Global switches::
+* Ignoring files and cutting filenames::
+* Output directory setting::
+* Storing format source files and fonts::
+
+Config file and pattern files
+
+* Config file::
+* Pattern file structure::
+
+Pattern file structure
+
+* Pathcuts pattern file::
+* Ignore pattern file::
+
+@end detailmenu
+@end menu
+
+@c --------------------------------------------------------------------
+@node Copying, Introduction, Top, Top
+@chapter Copying
+
+The program @code{TVS} and its documentation is written and
+maintained by David Anto@v{s}, @email{xantos
+(at) fi.muni.cz}. (Of course substitute (at) with @@.)
+Contact him when in trouble, but please read the documentation first.
+
+Copyright @copyright{} 2000 David Anto@v{s}
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+@end ignore
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+@end ifnottex
+
+@c -------------------------------------------------------------------
+@node Introduction, Installation, Copying, Top
+@chapter Introduction
+
+This is documentation of @TeX{} Versioning System, software for storing
+complete source codes of @TeX{} documents.
+
+Version 1.0
+
+(Documentation CVS ver. $Id: tvs.texi,v 1.23 2000/08/16 17:00:24 antos Exp $)
+
+@menu
+* Why do you need @code{TVS}?::
+* What @code{TVS} can do?::
+* What do you need to run @code{TVS}?::
+@end menu
+
+@node Why do you need @code{TVS}?, What @code{TVS} can do?, Introduction, Introduction
+@section Why do you need @code{TVS}?
+
+It must have happened to you. You use @TeX{} at work. You run another
+distribution at home. You wrote a beautiful document at home, you came to
+work and got error message @code{I can't find file `foo.tex'}. There is a
+package missing in your work installation.
+
+Or: You wrote a beautifully typeset book several years ago.
+You used em-@TeX{} on M$-DOS machine. The book should be typeset again. You
+have only my_book.tex and no macros you used. What to do?
+
+To be serious, there is nothing to be done now. But if you stored the
+@emph{complete} source of the documents, it didn't have to happen to you.
+And how to store the complete source? It's simple---use @code{TVS}.
+
+@cartouche
+Please! Please! Packing complete @TeX{} document sources is a delicate
+and sensitive operation. Read the entire manual before you use
+@code{TVS} to do something important. This kind of software can be
+useful for you if and only if you use it correctly. I'm sorry for this
+but it's the fact.
+@end cartouche
+
+@node What @code{TVS} can do?, What do you need to run @code{TVS}?, Why do you need @code{TVS}?, Introduction
+@section What @code{TVS} can do?
+
+@code{TVS} can store complete source codes of @TeX{} documents. It parses
+logs of @TeX{} and finds files which were used to typeset the document.
+@code{TVS} can work in three levels:
+
+@itemize @bullet
+@item Only document log is examined. It stores all macros, styles,
+included documents etc. you need.
+@item Document log and format log is examined. It also stores all
+source files needed to build up format file.
+@item (experimental) Moreover dvips log is parsed and used fonts are
+stored. This is not so useful as only @code{.pk}
+files may be obtained this way.
+@end itemize
+
+Files collected by @code{TVS} can be used on any @TeX{} installation to
+build up exactly the same document.
+Next, let us call the product of @code{TVS} a @emph{complete source}.
+
+There are several important features of @code{TVS}:
+
+@itemize @bullet
+@item @code{TVS} is a Perl script, it runs wherever Perl is available (it
+means nearly everywhere).
+@item There is no difference in using of @code{TVS} when running La@TeX{},
+plain, or whatever you want.
+@item On the destination (the place you typeset the complete source), there is
+no need to run @code{TVS}. You only need to say @TeX{} to find files
+in working directory first.
+@item @code{TVS} is @emph{not} a version control system. It cannot handle
+versions of your documents. There are other systems, e.g., @code{RCS} or
+@code{CVS}, designed to do this.
+@end itemize
+
+@node What do you need to run @code{TVS}?, , What @code{TVS} can do?, Introduction
+@section What do you need to run @code{TVS}?
+
+Hardware and OS requirements are simple. @code{TVS} is a Perl script so it
+runs wherever Perl 5.x is available.
+It uses packages Getopt::Long, File::Basename, File::Copy, and
+File::Path. These packages should be nevertheless in standard Perl
+distribution.
+
+For information on Perl for your OS check
+@url{http://www.perl.com}. There should be no problem on most Unices, in
+Linux, Perl is usually a part of standard distribution.
+
+Maybe you find useful having also @code{make} and @code{Texinfo}
+utilities installed on your system, but @code{Texinfo} is only needed to
+produce documentation in DVI, PostScript, Info, or HTML formats which
+are pregenerated in @code{TVS} distribution. And @code{make} is only to
+generate them comfortably.
+
+There are some requirements for your @TeX{} source codes to be able to
+handle them successfully. There is a problem with including files into your
+source. The usual and best way to do it is to have the main source at the
+top of the source tree and use relative paths in all variants of
+@code{\input} command.
+Avoid pathological inputs like
+@code{\includegraphics ../../pictures/pict1.ps}.
+This should not bother you as nearly everybody does it.
+
+Usually @code{TVS} is able to pack files referenced by ``up-going''
+relative path (if it makes a conflict, @code{TVS}
+recognizes it), but you run into difficulties when re-typesetting the
+complete source and you have to correct all the things by hand.
+
+@c ------------------------------------------------------------------------
+@node Installation, Using @code{TVS} step by step, Introduction, Top
+@chapter Installation
+
+The program @code{TVS} and its documentation is written and
+maintained by David Anto@v{s}, @email{xantos
+(at) fi.muni.cz}. (Of course substitute (at) with @@.)
+Contact him when in trouble, but please read the documentation first.
+
+The following instructions assume that Perl version >=5 is installed on
+your system. For information on Perl consult @url{http://www.perl.org}.
+
+The homepage of @code{TVS} is @url{http://www.fi.muni.cz/~xantos/tvs}.
+Here you can get @code{TVS} either file-by-file or as @code{tvs.tar.gz}
+file. @code{TVS} can also be obtained on CTAN in @code{support/TVS}.
+
+Because of platform independence we decided not to prepare any
+``instant'' packages.
+
+If you downloaded @code{tvs.tar.gz}, gunzip and un-tar it somewhere. If
+you downloaded separate files, reconstruct the original file structure
+anywhere you want.
+
+On UNIX, make a link to @code{tvs.pl} from a directory which is in your
+@code{PATH}, e.g. @code{/usr/local/bin}, if your system decodes first
+lines of scripts to run them. In this case, it may be needed to correct
+the very first line of @code{tvs.pl} and put the right path to your Perl
+interpreter there. Otherwise you may still run @code{TVS}
+running @code{perl tvs.pl}. Install the documentation in your favorite
+format, where your docs-reader can find it. At least,
+@code{/usr/doc/tvs} wouldn't be a bad choice to store Post Script or
+HTML documentation.
+
+Generally speaking, there is no need to install @code{TVS} to global
+directories if you are the only-one who runs it or you are not root.
+
+Try @code{tvs --help}. If a TVS header and help message written,
+everything is OK.
+
+If your standard Perl distribution does not contain packages
+Getopt::Long, File::Basename, File::Copy, and File::Path, get them from
+@url{http://www.perl.org}.
+
+On M$ DOS/Window$ platforms the @code{.pl} suffix should be enough for
+Perl script to run, of course if Perl is correctly installed. Please do
+not expect me to make better support for M$ platforms as I do not run
+them.
+
+On other platforms, if there are difficulties in installing or running
+@code{TVS}, please drop me a line.
+
+@c ------------------------------------------------------------------------
+@node Using @code{TVS} step by step, Reference guide to @code{TVS} commands, Installation, Top
+@chapter Using @code{TVS} step by step
+
+This chapter shows the usage of @code{TVS} and various examples. It also
+points out the limitations of this system, in other words what it
+@emph{can} do for you (and it's quite a lot) and what it cannot. Yes, there
+are some unpleasant things you must do manually.
+
+@menu
+* Useful commands::
+* Basic running @code{TVS}::
+* Ignoring files::
+* Format file sources::
+* Configuration file::
+* Limitations of @code{TVS}::
+* Fonts::
+* What to do with collected output::
+@end menu
+
+@node Useful commands, Basic running @code{TVS}, Using @code{TVS} step by step, Using @code{TVS} step by step
+@section Useful commands
+
+To make sure that @code{TVS} is correctly installed on your system, run
+@code{tvs -h}.
+You should obtain a short help on using @code{TVS}.
+
+There are two useful switches you should know before starting experiments
+with @code{TVS}. You may increase verbosity level using @code{-v} or even
+@code{-vv} switch. @xref{Global switches}, for detailed information
+on verbosity levels.
+
+In following examples you may also specify @code{--dummy} command. It means
+that no files are really copied and no real output is produced. But
+everything else looks like real operations were performed.
+
+@node Basic running @code{TVS}, Ignoring files, Useful commands, Using @code{TVS} step by step
+@section Basic running @code{TVS}
+
+Now it's time to look to the @code{examples} directory in your
+distribution. It contains source file @code{sample.tex} we will use to
+demonstrate the usage of @code{TVS}.
+
+The first step you must not forget is to @TeX{} your source correctly.
+Document @code{sample.tex} uses @code{\tableofcontents}, so you must run
+@example
+latex sample.tex
+@end example
+@noindent
+twice. Make sure your document is @TeX{}ed correctly. It is @emph{very
+very} important.
+
+Let's try what @code{TVS} can do now. First try to run
+@example
+tvs sample.log
+@end example
+@noindent
+The most important for @code{TVS} is log file @code{sample.log}. You do not
+have to specify name with @code{.log} extension as it is tried to add
+automatically.
+What @code{TVS} now does? It goes through the file @code{sample.log}
+and finds
+all the files which are needed to build up the final document.
+
+@code{TVS} created an output directory named @code{TVS-OUT}. Check its
+contents. In fact, on M$-DOS or M$-Windows machines this didn't work.
+@footnote{Do not install Linux immediately, we will correct it in the
+next paragraph. @code{;-)}}
+On UN*X machines, there is stupidly deep directory structure containing
+only one directory in another.
+
+There is a way to avoid this.
+Please copy file @code{pathcuts.tvs} into the @code{examples} directory.
+Edit @code{pathcuts.tvs}, replace path @code{/usr/TeX/texmf} with the path
+to your @TeX{} main directory.
+
+Delete the @code{TVS-OUT} directory and run
+@example
+tvs -v -p pathcuts.tvs sample
+@end example
+@noindent
+See what @code{TVS} does now.
+You may also check what is in the @code{TVS-OUT} directory.
+By @code{-p file} we say that @code{file} contains paths we want to shorten.
+On M$ file system, there is in fact needed to use this to
+cut things like @code{c:\} to be able to construct file names used in the
+output directory.
+
+@node Ignoring files, Format file sources, Basic running @code{TVS}, Using @code{TVS} step by step
+@section Ignoring files
+
+As you can see, there is @code{sample.toc} in the output directory. We do
+not really need it as it can be always generated. Now let us show the way
+how to ignore files. Please copy file @code{ignpats.tvs} to the working
+directory. This file contains patterns which are compared to ends of
+files. Matching files are not copied to the output directory.
+
+If you want to try it, delete the output directory and run
+@example
+tvs -v -p pathcuts.tvs -i ignpats.tvs sample
+@end example
+@noindent
+Now files ending with @code{toc} are missing.
+
+@emph{Warning:} use this feature with care and only if you know what you
+are doing. Always make sure that files you want to ignore may be rebuilt up
+from the rest of the source.
+
+@node Format file sources, Configuration file, Ignoring files, Using @code{TVS} step by step
+@section Format file sources
+
+In fact, storing the complete document source may not be enough to be able
+to produce the same output. We must also store format source files. Storing
+only the format file itself doesn't help as this file is not
+binary compatible in general.
+
+The main thing you need is to know where log files of generated formats
+are stored. To obtain this information consult your local documentation, or
+you may try to find files @code{latex.log, tex.log, pdftex.log}, or ask
+your @TeX{} administrator. It is also possible that your administrator
+deleted log files after generating formats. In this case ask him to
+regenerate format files and leave the logs untouched.
+This is not a good manner to delete log files of this importance.
+Your administrator may have even delete format file sources. In this case,
+ask him to reinstall them and better find a new @TeX{} administrator.
+
+You should make sure that formats were really generated on your local
+installation. They may have been generated on a binary compatible
+machine with other organization of @TeX{} directories. If so, you must
+re-generate them. If you run a distribution which allows you to set
+local @TeX{} installation root directory, this is quite possible. For
+example, on my texlive-4 I had to correct this.
+
+In emergency, if you do not have root privilegies and you cannot
+globally make format logs correct, you still can generate formats in
+your own directory and use them overriding your system defaults.
+In this case, give your root my regards.
+
+To store format sources, you need to tell @code{TVS} where logs are.
+It is done by @code{-f path} switch. Let's try to call
+@example
+tvs -v -p pathcuts.tvs -f where_your_logs_are sample
+@end example
+@noindent
+You should obtain output directory similar to previous one but containing
+subdirectory named @code{FORMAT}, where complete source for format
+generating is stored.
+
+If @code{TVS} is not able to determine format name correctly, you may
+force format name by adding @code{--fmtname name} into command line
+similar to previous example. You may try
+@example
+tvs -v -p pathcuts.tvs -f where_your_logs_are --fmtname latex sample
+@end example
+
+@node Configuration file, Limitations of @code{TVS}, Format file sources, Using @code{TVS} step by step
+@section Configuration file
+
+The command lines we use are getting too long. If file @code{tvsrc} is
+located in the working directory, it is used as config file. You may
+also specify the config file explicitly by @code{-c filename} or
+@code{--config filename} switch.
+
+Please copy file @code{tvsrc} to the @code{examples} directory. Config file
+has simple structure
+@example
+<variable> <value>
+@end example
+Values set here may be always overridden by the command line. Setting
+values for ignore, pathcuts and format doesn't mean that files are
+ignored, paths cut and format sources stored by default. You must use
+switches @code{-i, -p} and @code{-f}, but there is no need to follow
+them by values.
+It may seem a bit strange but it is done this way in order to prevent
+you from doing something you do not want to. It doesn't save your
+keystrokes but---we hope---your nerves.
+
+If you edit the @code{format} entry in @code{tvsrc} to the path to your
+format logs, you may for example use
+@example
+tvs -i -p -f -v sample
+@end example
+@noindent
+to store the source with format with ignoring files and cutting paths
+instead of the long form without config file which goes
+@example
+tvs -i ignpats.tvs -p pathcuts.tvs -f /usr/TeX/texmf/web2c -v sample
+@end example
+
+But if you use only
+@example
+tvs -p sample
+@end example
+@noindent
+then no format file is examined and no files are ignored, no matter that
+the config file exists.
+
+In the config file you may also specify the default output
+directory name with
+@code{output} entry and the default verbosity level using
+@code{verbose} with value 0, 1, or 2. These values are used always
+and may be overridden with
+@code{-o} and @code{-v}.
+
+@node Limitations of @code{TVS}, Fonts, Configuration file, Using @code{TVS} step by step
+@section Limitations of @code{TVS}
+
+Work of @code{TVS} is limited by the files which are noticed in log files.
+If you use anything which is done by external program, you must take
+special care on files you want to store. If you include graphics in
+Post Script, it may be included only by @code{\special} command and may not
+be noticed in log.
+
+You must always ask yourself the main important question: @emph{Which
+files---not used in @TeX{} last run---I want to store?}
+
+For example if you use a bibliography, your source is a @code{.bib}
+file. But
+in the last @TeX{} run only sorted part of it, @code{.bbl} file is included.
+If the @code{.bbl} file is enough for you, it's good.
+But if you want to store
+sources for bibliography completely, you need also @code{.bib} file and
+@code{.bst} file, which contains bibliography style. And there is no way
+for @code{TVS} to know it as Bib@TeX{} is an external utility.
+That's why you must copy them to @code{TVS-OUT} by hand.
+
+If you don't do so, you are still able to obtain exactly the same document,
+but you run into difficulties trying to do any modifications.
+
+It is always better store more than you need. If you are a @TeX{} beginner
+and you are absolutely not
+sure, it may be reasonable for you to preserve all the files from your
+working directory. Includes from @TeX{} directory (e.g.,
+@code{c:\tex\texmf}) are handled correctly.
+
+@node Fonts, What to do with collected output, Limitations of @code{TVS}, Using @code{TVS} step by step
+@section Fonts
+
+This is experimental!
+
+Usually there is no reason to store also font source files. The exception
+is if your national modification of fonts changed its encoding or you use
+unusual fonts.
+
+If you want to,
+you may run @code{dvips} with @code{-d} switch to produce a log file with
+list of opened files.
+Consult your @code{dvips} documentation how to do it.
+This switch is followed by number indicating what should be logged.
+
+If you use @code{tvs -d dvips.log}, a subdirectory FONTS is created
+in the output
+directory and all files used by dvips are stored there.
+Only font bitmaps may
+be obtained this way, so this feature is not very useful. If you want to
+store Metafont sources, you must do it by hand.
+
+There is no guarantee of correct work of @code{-d} switch as @code{dvips}
+log changed.
+
+@node What to do with collected output, , Fonts, Using @code{TVS} step by step
+@section What to do with collected output
+
+Currently @code{TVS} implements no way of packing nor extracting collected
+complete source. Use any way of packing this directory you like depending
+of the platform you run @code{TVS} and the platform you will want to
+re-typeset your work in the future.
+
+There is no way to run TVS on the destination. You must only tell @TeX{}
+@itemize @bullet
+@item to generate the format file if format sources were stored,
+@item to generate fonts if fonts were stored,
+@item to find files in working directory and its subdirectories at first.
+@end itemize
+To do this, consult the local documentation.
+
+@c -----------------------------------------------------------------------
+@node Reference guide to @code{TVS} commands, Config file and pattern files, Using @code{TVS} step by step, Top
+@chapter Reference guide to @code{TVS} commands
+
+This chapter describes overall structure of @code{TVS} commands and
+describes the function of the commands in detail.
+
+@menu
+* Invoking @code{TVS}::
+* Global switches::
+* Ignoring files and cutting filenames::
+* Output directory setting::
+* Storing format source files and fonts::
+@end menu
+
+@node Invoking @code{TVS}, Global switches, Reference guide to @code{TVS} commands, Reference guide to @code{TVS} commands
+@section Invoking @code{TVS}
+
+General structure of calling @code{TVS} is
+@example
+tvs [switches] filename
+@end example
+@noindent
+where @code{filename} is a name of the main @TeX{} log file.
+@code{TVS} must be run in the directory where main @TeX{} log file is
+located.
+
+Always make sure
+that your document is @TeX{}-ed correctly (index is sorted, bibliography is
+present, pictures are included etc.)! Usually you have to run @TeX{}
+several times to typeset the document (but we hope this doesn't
+surprise you).
+
+@node Global switches, Ignoring files and cutting filenames, Invoking @code{TVS}, Reference guide to @code{TVS} commands
+@section Global switches
+
+These switches may be used to change globally behavior of @code{TVS}.
+
+@table @code
+
+@item -h, --help
+Prints short usage and version information and exits successfully.
+This switch doesn't need a filename as a parameter.
+
+@item -v, --verbose
+Sets verbosity level. May used several times. There are three verbosity
+levels:
+@itemize @bullet
+@item Level 0---only examined files and errors are written.
+This is the default.
+@item Level 1---found files, copying info and errors are written.
+@item Level 2---extra talkative, writes all it does.
+@end itemize
+For level 1, use @code{-v} or @code{--verbose} once, for level 2, use it
+twice. You may also specify @code{-vv}, which is the most comfortable way
+to do it.
+
+@item -c file, --config file
+Specifies the configuration file name. @xref{Config file}, for
+details about configuration file.
+
+If @code{--config} switch is not specified, file @code{tvsrc} in working
+directory is used as a config file if it exists. There is no need of having
+config file as all options may be set from command line.
+
+@item --dummy
+Sets @code{TVS} to dummy mode. No files are changed, no files are really
+copied to output directory, it is only shown what has to be done. Useful if
+used with @code{--verbose}. (Inspired by similar switch in cdrecord.)
+@end table
+
+@node Ignoring files and cutting filenames, Output directory setting, Global switches, Reference guide to @code{TVS} commands
+@section Ignoring files and cutting filenames
+
+Using following settings we may set files which shouldn't be copied to
+output and set usual paths we don't want to store completely.
+
+@table @code
+
+@item -i [file], --ignore [file]
+Sets file with patterns of filenames which we don't want to be copied to
+output. @xref{Ignore pattern file}, for details about ignore pattern file.
+
+If @code{file} name is omitted, value from config file is used. If
+@code{ignore} parameter is not set in config file, @code{TVS} terminates
+with an error.
+
+@item -p [file], --pathcuts [file]
+Sets file with path patterns to cut. @xref{Pathcuts pattern file},
+for information about file
+path names handling.
+
+If @code{file} name is not specified, value from config file is used. If
+@code{pathcuts} parameter in config file is not specified,
+@code{--pathcuts} parameter is silently ignored. It makes no harm to
+function of @code{TVS} and if it causes filename conflict, @code{TVS} stops
+with an error.
+@end table
+
+@node Output directory setting, Storing format source files and fonts, Ignoring files and cutting filenames, Reference guide to @code{TVS} commands
+@section Output directory setting
+
+@table @code
+
+@item -o dirname, --output dirname
+Sets the name of output directory to @code{dirname}. This may be only
+useful to override setting in config file. If config file doesn't set
+output directory name, default name @code{TVS-OUT} is used and this is
+created in working directory.
+@end table
+
+@node Storing format source files and fonts, , Output directory setting, Reference guide to @code{TVS} commands
+@section Storing format source files and fonts
+
+@table @code
+
+@item -f [dirname], --format [dirname]
+Specifies directory where format log files are and packs format file
+sources. If @code{dirname} is
+omitted, value from config file is taken. If @code{format} parameter is not
+specified in config file, @code{TVS} dies with an error. @xref{Format
+file sources}, for
+details about format source files extracting.
+Format file name is taken from the main document log from the first line
+which contains @code{format=name}.
+
+@item --fmtname [name]
+Specifies format name, e.g. @code{plain}, @code{latex}, etc. Useful, if
+format name cannot be found in log of document in form
+@code{format=name}.
+Specifying @code{--fmtname [name]} doesn't imply packing format sources.
+You must specify @code{--format}, too.
+This option cannot be specified in @code{TVS}'s
+config file.
+
+@item -d file, --dvips file
+Sets name of @code{dvips} log file. This cannot be specified in config
+file. This is only experimental. @xref{Fonts}, for information on dvips
+log file
+examining and font storing. You would better not to use this feature unless
+you know what you are doing.
+@end table
+
+@c --------------------------------------------------------------------
+@node Config file and pattern files, Credits, Reference guide to @code{TVS} commands, Top
+@chapter Config file and pattern files
+
+In this chapter we discuss config file setting and structure and usage of
+files with patterns. These are used to shorten (cut) filenames to use
+reasonable short paths in output directory and to set files which we do not
+want to store at all.
+
+@menu
+* Config file::
+* Pattern file structure::
+@end menu
+
+@node Config file, Pattern file structure, Config file and pattern files, Config file and pattern files
+@section Config file
+
+We may set values for @code{verbose, format, ignore, pathcuts,} and
+@code{output} variables in config file.
+
+If @code{TVS} is run with @code{--config} switch, it sets used config file
+name. If this is not used, default config file named @code{tvsrc} in
+working directory is tried.
+If it doesn't exist, no config file is used at all.
+There is no default config file location (e.g.
+@code{/etc/tvsrc} or something similar) because of the platform independence
+of @code{TVS}.
+
+The structure of config file is quite simple. Everything after @code{#} and
+@code{%} characters is ignored. Lines with structure
+@example
+<variable> <value>
+@end example
+@noindent
+set values of variables. There must be just one white character between
+the @code{<variable>} and the @code{<value>}. There may be any count of
+white spaces before and after this structure on the line. Lines with
+other structure or specifying variables not listed below are silently
+ignored.
+
+For example of config file, see file @code{tvsrc} enclosed with the
+distribution.
+
+Variables have meanings as follows:
+
+@table @code
+
+@item verbose
+Sets the default verbosity level. Reasonable values are
+@table @code
+@item 0
+This is the default.
+@item 1, 2
+Set verbosity level to 1 or 2. @xref{Global switches}, for description
+of verbosity levels.
+@end table
+
+@item format
+Sets the name of the directory where format log files are stored. This is
+used only of @code{--format} or @code{-f} switch is set and may be
+overridden by this. You should specify @code{format} parameter in config
+file if you want to store format sources. And you should store format
+sources. Simply---use it.
+
+@item ignore
+Sets the name of file with patterns used to ignore files. @xref{Ignore
+pattern file}, for
+information about ignoring files.
+This is used only if @code{--ignore} or @code{-i} switch is set and may be
+overridden by this.
+
+@item pathcuts
+Sets the name of file with patterns used to shorten the stored filenames.
+Used only if @code{--pathcuts} or @code{-p} switch is set and may be
+overridden by these.
+
+@item output
+Sets the default output directory name. May be overridden by @code{--output}
+or @code{-o} switch. If not set, default value @code{TVS-OUT} is used.
+@end table
+
+@node Pattern file structure, , Config file, Config file and pattern files
+@section Pattern file structure
+The structure of files which contain patterns is quite simple. Everything
+after @code{#} or @code{%} characters is ignored. A line of the file may
+start and end with white characters. These white characters are ignored.
+The remaining part of the line (if it is nonempty) is considered to be a
+pattern.
+
+A pattern is treated as a Perl regular expression.
+It doesn't matter if you don't know what it is, all you need to know is
+seen from the examples. Nevertheless you may try @code{man perlre} or
+equivalent for reading documentation on you system.
+
+Next, we'll discuss the usage of pattern files.
+
+@menu
+* Pathcuts pattern file::
+* Ignore pattern file::
+@end menu
+
+@node Pathcuts pattern file, Ignore pattern file, Pattern file structure, Pattern file structure
+@subsection Pathcuts pattern file
+
+This file is used if @code{--pathcuts} or @code{-p} switch is specified.
+An example is enclosed with the distribution and named @code{pathcuts.tvs}.
+
+The file specifies list of patterns which are compared to the
+@emph{beginnings} of
+filenames. On @emph{first match} the matching part is cut
+and the rest of pattern
+list is not used. So it has no sense to have a pattern list
+@example
+/usr/TeX
+/usr/TeX/texmf
+@end example
+@noindent
+as the second entry will be never used.
+But sequence
+@example
+/usr/TeX/texmf
+/usr/TeX
+@end example
+@noindent
+may be reasonable. (It's an exercise why and when @code{:-)}.)
+
+An example: Let us have pattern list containing @code{/usr/TeX/texmf}. If
+filename is
+@example /usr/TeX/texmf/tex/latex/algorith/algorithm.sty
+@end example
+@noindent
+it matches and is cut to
+@example
+tex/latex/algorith/algorithm.sty
+@end example
+@noindent
+File @code{inputs/my_macro.tex} doesn't match the pattern and is
+left untouched.
+
+@node Ignore pattern file, , Pathcuts pattern file, Pattern file structure
+@subsection Ignore pattern file
+
+This file is used when @code{--ignore} or @code{-i} switch is specified. An
+example named @code{ignpats.tvs} is enclosed.
+
+This file specifies list of patterns which are compared to @emph{ends}
+of filenames. If @emph{any} of them matches, file is ignored and is not
+copied to output. Usually, suffices of files (e.g. @code{toc, bbl}) are
+used here. If you want make sure that there is a dot before @code{toc}
+or @code{bbl}, use @code{\.toc} and @code{\.bbl} entries in pattern file
+as entries are PERL regular expressions. For detailed information see
+@code{perlre(1)}.
+
+Use this feature with care, it is usually better to have a superset of
+needed complete source then have @emph{incomplete} source. There may be
+files which loaded (and you don't know about them) with suffices you
+don't expect. Use it only if you know what you are doing. You've been
+warned.
+
+@node Credits, Dealing with bugs in @code{TVS}, Config file and pattern files, Top
+@appendix Credits
+
+I would like to thank to:
+@itemize @bullet
+@item
+Petr Sojka, who made me to write @code{TVS} and helped me very much with
+all the troubles and decisions we have had to make,
+@item
+Richard Bot@'{@dotless{i}}k, who lent me the
+``Perl Camel Book'' for a fortnight,
+@item
+many others,
+@item
+Bubo, my home computer, as it surprisingly didn't get overheated too much
+during the terribly hot spring of year 2000 in middle Europe.
+@end itemize
+
+@node Dealing with bugs in @code{TVS}, , Credits, Top
+@appendix Dealing with bugs in @code{TVS}
+
+Please send bug-reports to @email{xantos (at) fi.muni.cz} with subject
+@code{TVS bug}. Add information on platform, @TeX{} installation and
+include log files which were parsed. Also please note version of TVS,
+both version number and CVS version code (it's the line containing
+@code{$Id: tvs.pl,v...}). You can get this information by running
+@code{tvs --help}.
+
+If you tried to compare @code{.dvi} files obtained running @TeX{} on
+various platforms using @code{TVS} complete source, please keep in mind
+they may differ if something depending on ``the state of the computer''
+(especially date) was included.
+
+@contents
+@bye
diff --git a/support/TVS/TVS/docs/tvs.toc b/support/TVS/TVS/docs/tvs.toc
new file mode 100644
index 0000000000..6ebf3cbff5
--- /dev/null
+++ b/support/TVS/TVS/docs/tvs.toc
@@ -0,0 +1,27 @@
+\chapentry{Introduction}{1}{1}
+\secentry{Why do you need \code {TVS}?}{1}{1}{1}
+\secentry{What \code {TVS} can do?}{1}{2}{1}
+\secentry{What do you need to run \code {TVS}?}{1}{3}{2}
+\chapentry{Installation}{2}{3}
+\chapentry{Using \code {TVS} step by step}{3}{4}
+\secentry{Useful commands}{3}{1}{4}
+\secentry{Basic running \code {TVS}}{3}{2}{4}
+\secentry{Ignoring files}{3}{3}{5}
+\secentry{Format file sources}{3}{4}{5}
+\secentry{Configuration file}{3}{5}{5}
+\secentry{Limitations of \code {TVS}}{3}{6}{6}
+\secentry{Fonts}{3}{7}{6}
+\secentry{What to do with collected output}{3}{8}{7}
+\chapentry{Reference guide to \code {TVS} commands}{4}{8}
+\secentry{Invoking \code {TVS}}{4}{1}{8}
+\secentry{Global switches}{4}{2}{8}
+\secentry{Ignoring files and cutting filenames}{4}{3}{8}
+\secentry{Output directory setting}{4}{4}{9}
+\secentry{Storing format source files and fonts}{4}{5}{9}
+\chapentry{Config file and pattern files}{5}{10}
+\secentry{Config file}{5}{1}{10}
+\secentry{Pattern file structure}{5}{2}{10}
+\subsecentry{Pathcuts pattern file}{5}{2}{1}{11}
+\subsecentry{Ignore pattern file}{5}{2}{2}{11}
+\chapentry{Credits}{Appendix{} A}{12}
+\chapentry{Dealing with bugs in \code {TVS}}{Appendix{} B}{13}
diff --git a/support/TVS/TVS/examples/sample.tex b/support/TVS/TVS/examples/sample.tex
new file mode 100644
index 0000000000..e364ab5acf
--- /dev/null
+++ b/support/TVS/TVS/examples/sample.tex
@@ -0,0 +1,20 @@
+\documentclass[11pt,a4paper,titlepage]{book}
+% $Id: sample.tex,v 1.3 2000/08/16 16:59:45 antos Exp $
+\usepackage{a4wide}
+
+\begin{document}
+
+\chapter{First chapter}
+This sample document is to demonstrate the usage of \texttt{TVS}, system
+for storing complete source codes of \TeX{} documents.
+
+There is nothing important there.
+
+\chapter{Second chapter}
+Still nothing.\footnote{What do you expect?}
+\newpage
+Isn't it beautiful? Twenty lines of source and you get five pages! I
+wish my diploma work could be done like this\ldots
+
+\tableofcontents
+\end{document}
diff --git a/support/TVS/TVS/ignpats.tvs b/support/TVS/TVS/ignpats.tvs
new file mode 100644
index 0000000000..0d27d1e877
--- /dev/null
+++ b/support/TVS/TVS/ignpats.tvs
@@ -0,0 +1,21 @@
+# $Author: antos $
+# $Id: ignpats.tvs,v 1.1 2000/05/07 12:35:47 antos Exp $
+#
+# TVS --- TeX Versioning System ignore patterns
+#
+# This file contains patterns which are matched (with -i option)
+# to the end of the filenames. If filename matches any of these it is
+# simply ignored and it is not added to output.
+# File suffices are usually put here.
+# This is useful to omit files which are created automatically
+# e.g. sorted index, sorted bibliography etc.
+#
+# Feel free to set up it to whatever you need. But be careful,
+# it is always better to pack more files. If you ignore something
+# important, ... so you've been warned.
+
+# These are in fact PERL regular expression, in suffix of file, do not
+# write "." here, use "\." instead.
+
+# Useful (most LaTeX users want it, I think):
+toc # table of contents
diff --git a/support/TVS/TVS/pathcuts.tvs b/support/TVS/TVS/pathcuts.tvs
new file mode 100644
index 0000000000..c210542d2c
--- /dev/null
+++ b/support/TVS/TVS/pathcuts.tvs
@@ -0,0 +1,15 @@
+# $Author: antos $
+# $Id: pathcuts.tvs,v 1.1 2000/04/13 20:04:13 antos Exp $
+#
+# TVS --- TeX Versioning System pathcuts
+#
+# This file contains starts of filenames which are cut
+# to make output directory structure not so deep.
+# Feel free to set up it to whatever you need.
+
+# I use this for my TeXLive installation on Linux, the best OS ;-)
+/usr/TeX/texmf/
+
+# On M$ platforms, it is highly recomended to use
+\w:\\
+# which cuts c:\, C:\, d:\, etc.
diff --git a/support/TVS/TVS/tvs.pl b/support/TVS/TVS/tvs.pl
new file mode 100644
index 0000000000..925b480a0d
--- /dev/null
+++ b/support/TVS/TVS/tvs.pl
@@ -0,0 +1,454 @@
+#! /usr/bin/perl -w
+# -*- cperl -*-
+
+# use diagnostics;
+
+# This is TVS, system for storing complete source codes for TeX documents
+# Written and maintained by David Antos, xantos (at) fi.muni.cz
+# Distributed free od charge but without ANY WARRANTY in hope you find
+# it useful. See enclosed General Public License for details.
+
+# Copyright (c) 2000 David Antos
+# $Author: antos $
+# $Id: tvs.pl,v 1.28 2000/08/16 16:56:41 antos Exp $
+
+use strict;
+use locale;
+use Getopt::Long;
+use Cwd qw(cwd abs_path);
+use File::Basename;
+use File::Copy;
+use File::Path;
+
+sub build_patterns {
+# Builds patterns from specified file
+# Input: Filename --- pattern file
+# Pattern list reference
+# Output: Destroys second parameter and fills it up.
+
+ my ($pattern_file, $patts) = @_;
+
+ if (not defined($pattern_file) or $pattern_file eq "") {
+ @$patts = ();
+ return;
+ }
+ if (open(PATTERNS, $pattern_file)) {
+ print "\nOpened file \"$pattern_file\"\n" if ($::verbose);
+ print "Building pattern list\n" if ($::verbose);
+
+ my ($pat);
+ while ($pat = <PATTERNS>) {
+ chomp($pat);
+ ($pat) = split(/[%#]/, $pat); # Erase comments --- they start with # or %
+ next unless (defined($pat)); # Nothing to do
+ # Delete white characters before and after non-white characters
+ $pat =~ s/\s*(.*\S)\s*/$1/;
+ next if ($pat eq ""); # Nothing to do
+ push(@$patts, $pat);
+ print "Found pattern \"$pat\"\n" if ($::verbose >= 2);
+ }
+ close(PATTERNS);
+ }
+ else {
+ @$patts = ();
+ warn "\nWARNING: File \"$pattern_file\" can't be opened.\n";
+ }
+} # build_patterns
+
+sub parse_tex_log {
+# Finds possible filenames in TeX log file, tests if they are real files.
+# Omits files matching RE in @$ign_patts.
+# Input: Name of TeX logfile (with .log)
+# List of patterns to ignore (reference)
+# Hash to add matching names (ref.)
+# Output: Adds names to %$filenms, keys are filenames,
+# values are filenames too
+
+ my ($logname, $ign_patts, $filenms) = @_;
+
+ open(TEXLOG,$logname) or die "\nCan't open logfile \"$logname\"\n";
+ print "\nOpened logfile \"$logname\"\n";
+
+ my($line, $filename, $oldfn, $pat);
+ while ($line = <TEXLOG>) {
+ chomp($line);
+ # In log, anything between "(" or "<" and end-of-line may be a filename.
+ # Parsing of it is quite stupid because there may be spaces
+ # in filenames. I decided to use real brutal force.
+ # So we go to the first ( or < in line, test the rest, cut the rightmost
+ # character, test, and so on.
+ # Even names ended with ),_,', etc. are tested to be files, but
+ # --- who knows --- what if someone uses them [:-O]?
+ # It's slow but it doesn't need much memory, which can be useful
+ # for DOS/emTeX users. (Sorry, users of _real_ operating systems...)
+ BRACKET:
+ while ($line =~ /[\(\<]/) { # left "(" or "<" in line
+ $line =~ s#^.*?[\(\<]+(.*)$#$1#; # cut to the first left bracket (incl.)
+ $filename = $line;
+ do {
+ print "Testing name: \"$filename\"\n" if ($::verbose >= 2);
+ if (-f $filename) { # it's a real file
+ print "> Found file: \"$filename\"\n" if ($::verbose);
+ $$filenms{$filename} = $filename;
+ # If $filename matches any pattern, then delete it
+ foreach $pat (@$ign_patts) {
+ if ($filename =~ m#$pat$#) {
+ print " ... ignored\n" if ($::verbose);
+ print " ... matches pattern \"$pat\"\n" if ($::verbose>=2);
+ delete($$filenms{$filename});
+ }
+ }
+ # If there is only -, \w, _, \, /, : or .,
+ # it won't be a filename anymore
+ if ($filename =~ /^[-\w_\\\/\.:]*$/) { next BRACKET; }
+ # (This optimalization may be omitted if you think it is unsafe.)
+ }
+ $oldfn = $filename; # remember last
+ $filename =~ s#^(.+).$#$1#; # cut the rightmost character
+ } while($oldfn ne $filename); # while it changes
+ } # while "(" or "<"
+ }
+ close TEXLOG;
+} # parse_tex_log
+
+sub get_format_name {
+# Gets format name from log, parses first format=this_is_result in file
+# If opt_fmtname was given, returns opt_fmtname
+# Input: Filename (with .log)
+# Output: Format name (returns string) or "" if failed
+
+ my ($filenm) = @_;
+ my ($line);
+
+ if ($::opt_fmtname ne "") {
+ print "\nForced format \"$::opt_fmtname\". Make sure this is correct!\n";
+ return $::opt_fmtname;
+ }
+ else {
+ if (not open(TEXLOG, $filenm)) {
+ print "\nCan't open logfile \"$filenm\" to get format name\n";
+ }
+ else {
+ while ($line = <TEXLOG>) {
+ chomp($line);
+ if ($line =~ s#.*format=(\w*).*#$1#) { return $line; };
+ # Success
+ };
+ };
+ };
+ return ""; # Failure
+} # get_format_name
+
+sub determine_storing_names {
+# Reads keys from hash --- filenames to store.
+# Checks for name conflicts and solves them.
+# Input: Ref. to hash, it's keys are filenames, values equal to keys
+# Ref. to list containing patterns to cut from paths
+# Output: Hash, keys are keeping new names, values original ones
+
+ my($filenms, $cuts) = @_;
+
+ my (%storing_names); # New names => orig. (real) names
+ my ($fn);
+
+ foreach $fn (keys %$filenms) {
+ my ($newfn) = $fn;
+ print "Preparing name for file \"$fn\"\n" if ($::verbose);
+ # Determine new storing name
+ my ($pat);
+ foreach $pat (@$cuts) {
+ $pat =~ s#^(.*[^\\\/])[\\\/]?#$1#; # cut the rightmost / or \
+ print " Checking pattern \"$pat\"\n" if ($::verbose >= 2);
+ # cut filename if starts with $pat, only first pattern is used
+ if ( $newfn =~ m#^$pat[\\\/](.*)# ) {
+ $newfn = $1;
+ print " Pattern matches.\n" if ($::verbose >= 2);
+ last; # exit cycle
+ };
+ }; # foreach $pat
+ # if new name doesn't conflict, add it
+ if (not exists($storing_names{$newfn})) {
+ print "Name \"$newfn\" will be used.\n" if ($::verbose);
+ $storing_names{$newfn} = $fn;
+ }
+ else { # error, name conflicts
+ print "\nError, name \"$newfn\" conflicts.\n";
+ print "Cannot save files \"$fn\"\n";
+ print "and \"$storing_names{$newfn}\"\n";
+ print "with the same name \"$newfn\".\n";
+ print "Please check setting of paths to cut. Shortenning of belonging\n";
+ print "prefix should help. Consult the documentation when in trouble.\n";
+ die "*** Name conflict detected, gave up ***\n";
+ };
+ };
+ return %storing_names;
+} # determine_storing_names
+
+sub copy_files {
+# Takes keys from hash and copies all files from it to working_dir/prefix
+# Input: Prefix, hash --- keys are filenames
+# Output: None
+
+ my($prefix, %filenms) = @_;
+ my ($name, $prefname);
+
+ foreach $name (keys %filenms) {
+ $prefname = $name;
+ # cut leading / or \
+ $prefname =~ s#[\\\/]?(.*)#$1#;
+ $prefname = $prefix.'/'.$prefname;
+ # Prepare directories, umask may be switch in the future
+ mkpath(dirname($prefname), $::verbose, 0700) unless ($::opt_dummy);
+ copy($filenms{$name}, $prefname) unless ($::opt_dummy);
+ print "Copying \"$filenms{$name}\"\n to \"$prefname\"\n" if ($::verbose);
+ };
+} #copy_files
+
+sub main_pack {
+# Main procedure for packing files
+# Creates tree of source files
+# Input: Filename of TeX source, extension .log is tried
+# Output: None
+# Uses: Variables $main::opt_...
+
+ my ($source) = @_;
+ my (%filenames); # Keys are filenames to store --- source
+ my (@ignore_patterns); # Patterns to be ignored
+ my (@path_cuts); # Paths to cut
+
+ if ($::opt_ignore ne "") {
+ print "\nBuilding ignore pattern list\n" if ($::verbose);
+ &build_patterns($::opt_ignore, \@ignore_patterns);
+ }
+ else {
+ @ignore_patterns = ();
+ };
+
+ if ($::opt_pathcuts ne "") {
+ print "\nBuilding list of paths to cut\n" if ($::verbose);
+ &build_patterns($::opt_pathcuts, \@path_cuts);
+ }
+ else {
+ @path_cuts = ();
+ };
+
+ # If file $source doesn't exist try dtto.log
+ if (not -f $source) {
+ print "\nFile \"$source\" does not exist, trying \"${source}.log\"\n";
+ $source = "${source}.log";
+ if (not -f $source) { die "File \"$source\" does not exist\n"; }
+ }
+
+ %filenames=();
+ # Get list of needed files from TeX log
+ &parse_tex_log($source, \@ignore_patterns, \%filenames);
+ %filenames = &determine_storing_names(\%filenames, \@path_cuts);
+ &copy_files("$::opt_output",%filenames);
+
+ # If format needed, get name
+ if ($::opt_format ne "") {
+ %filenames = (); # Delete all, it is done and copied
+ my ($format_name) = &get_format_name($source);
+ print "\nGot format name \"$format_name\"\n";
+ # Delete last / or \
+ $::opt_format =~ s/^(.*[^\\\/])[\\\/]?/$1/;
+ &parse_tex_log($::opt_format."/".$format_name.'.log',
+ \@ignore_patterns, \%filenames);
+ %filenames = &determine_storing_names(\%filenames, \@path_cuts);
+ &copy_files("$::opt_output"."/FORMAT", %filenames);
+ }; # if format wanted
+
+ # If font sources needed, get them
+ if ($::opt_dvips ne "") {
+ %filenames = (); # Delete all
+ print "\nGetting font source files from dvips log \"$::opt_dvips\"\n";
+ &parse_tex_log($::opt_dvips, \@ignore_patterns, \%filenames);
+ %filenames = &determine_storing_names(\%filenames, \@path_cuts);
+ &copy_files("$::opt_output"."/FONTS", %filenames);
+ }; # if dvips
+
+} # main_pack
+
+# -------------- Help and version info ---------
+sub print_version {
+# Prints version
+# Input, output: none
+ print "\nThis is TVS, TeX Versioning System\n";
+ print 'Version 1.0 ($Id: tvs.pl,v 1.28 2000/08/16 16:56:41 antos Exp $)'.
+ "\n";
+ print "This is free software distributed under General Public License\n";
+ print "but WITHOUT ANY WARRANTY\n";
+} # print_version
+
+sub print_usage {
+# Prints usage info
+# Input, output: none
+ print "\nUsage:\n";
+ print "tvs.pl -h | --help print this help and exit\n\n";
+ print "tvs.pl [options] filename[.log]\n\n";
+ print "where options are:\n";
+ print " -v | --verbose set verbosity level\n";
+ print " --dummy no real work\n";
+ print " -c | --config file set configuration file\n";
+ print " -i | --ignore [file] set ignore pattern file\n";
+ print " -p | --pathcuts [file] set pathcuts patt. file\n";
+ print " -o | --output dir output directory name\n";
+ print " -f | --format [dir] pack format sources\n";
+ print " --fmtname [name] forces format name\n";
+ print " -d | --dvips file pack font sources -- experimental!\n";
+ print "\n";
+ print "Please consult the documentation. Note that packing source codes\n";
+ print "is a delicate and sensitive operation.\n\n";
+} # print_usage
+
+# ------------------ Parsing config ------------
+sub parse_config_file {
+# Parses config file and sets options with omitted value on command line
+# Input, output: none
+# Changes: Values of %config hash (global in main)
+
+ # Default name of config file
+ if (not defined($::opt_config)) { $::opt_config = "tvsrc"; };
+
+ if (not open(CONFIG, $::opt_config)) {
+ warn "\nConfig file \"$::opt_config\" can't be opened.\n";
+ warn "Config file ignored.\n";
+ }
+ else {
+ # Parse config file
+ my ($line, $name, $value);
+ while ($line = <CONFIG>) {
+ chomp($line);
+ # Ignore anything after # or $
+ ($line) = split(/[%#]/, $line); # Erase comments, they start with # or %
+ next unless defined($line);
+ # Delete white chars
+ $line =~ s#\s*(.*\S)\s*#$1#;
+ # Split on first space
+ ($name, $value) = split(/\s/, $line, 2);
+ next unless defined($name);
+ next unless defined($value);
+ # Set values
+ if ($name ne "" and $value ne "") { $::config_file{$name} = $value; };
+ }
+ }
+} # parse_config_file
+
+# --------------- MAIN PROGRAM -----------------
+# Handles parsing of command line arguments and calls actions.
+# Input: see Getopt command
+
+# Print header
+&print_version();
+
+# Set option variables
+Getopt::Long::Configure("bundling","no_auto_abbrev");
+# Allow write e.g. -vv, allow only full names of options
+
+# These are global options. They are taken from commandline,
+# if not set (or value omitted), config file is usually tried.
+use vars qw($verbose $opt_help $opt_config $opt_dummy $opt_format);
+use vars qw($opt_fmtname $opt_dvips $opt_ignore $opt_output $opt_pathcuts);
+
+if (not GetOptions('v|verbose+',\$verbose, # verbosity level
+ 'h|help',\$opt_help, # print help and exit
+ 'c|config=s',\$opt_config, # config file name
+ 'dummy',\$opt_dummy, # do not really copy files
+
+ 'f|format:s',\$opt_format, # dir with iniTeX logs
+ 'fmtname=s',\$opt_fmtname, # format name (forced)
+ 'd|dvips=s',\$opt_dvips, # dvips log
+
+ 'i|ignore:s',\$opt_ignore, # file with names to ignore
+ 'p|pathcuts:s',\$opt_pathcuts, # file with paths to cut
+
+ 'o|output=s',\$opt_output # output directory name
+ )) { &print_usage(); die "*** Wrong options ***" };
+
+use vars qw($filename); # File --- log of TeX or archive (if -x)
+use vars qw(%config_file); # Content of config file --- global,
+ # used for setting $opt_... only
+&parse_config_file();
+
+# If $verbose undefined, try config file, else set it to 0
+unless (defined($verbose)) {
+ if (exists($config_file{"verbose"})) {
+ $verbose = $config_file{"verbose"}; }
+ else { $verbose = 0; };
+};
+
+# Print version info if -h or --version (and exit then)
+if (defined($opt_help)) { &print_usage(); exit 0; };
+
+# If dummy, warn
+if (defined($opt_dummy)) {
+ warn "\n*** WARNING: dummy mode selected ***\n";
+ warn "Nothing will be really done!\n\n";
+}
+else { $opt_dummy = 0; };
+
+# Check format option
+if (defined($opt_format)){
+ if ($opt_format eq "") {
+ if (exists($config_file{"format"})) {
+ $opt_format = $config_file{"format"}
+ }
+ else {
+ &print_usage();
+ die "*** Format option parameter is not specified ***\n";
+ };
+ };
+}
+else { $opt_format = ""; };
+
+# Forced format name
+if (not defined($opt_fmtname)) { $opt_fmtname = ""; };
+
+# Dvips
+if (not defined($opt_dvips)) { $opt_dvips = ""; };
+
+# Ignore file
+if (defined($opt_ignore)) {
+ if ($opt_ignore eq "") {
+ if (exists($config_file{"ignore"})) {
+ $opt_ignore = $config_file{"ignore"};
+ }
+ else {
+ &print_usage();
+ die "*** Ignore parameter is not specified ***\n";
+ };
+ };
+}
+else { $opt_ignore = ""; };
+
+# Pathcuts
+if ((not defined($opt_pathcuts)) or ($opt_pathcuts eq "")) {
+ if (exists($config_file{"pathcuts"})) {
+ $opt_pathcuts = $config_file{"pathcuts"};
+ }
+ else { $opt_pathcuts = ""; };
+}
+
+# Output dir
+unless (defined($opt_output)) {
+ unless (exists($config_file{"output"})) { $opt_output = 'TVS-OUT'; }
+ else { $opt_output = $config_file{"output"} }
+};
+
+# Set filename
+unless (defined($ARGV[0])) {
+ &print_usage;
+ die "*** Please specify filename ***";
+};
+$filename = $ARGV[0];
+# Allow TVS only to be run in source directory
+my($working_directory) = cwd;
+if ($working_directory ne abs_path(dirname($filename))) {
+ &print_usage;
+ die "*** Please run TVS in the source directory ***";
+};
+
+&main_pack($filename);
+
+print "\nThank you for using TVS and supporting free software\n";
+
diff --git a/support/TVS/TVS/tvsrc b/support/TVS/TVS/tvsrc
new file mode 100644
index 0000000000..5756b96d4c
--- /dev/null
+++ b/support/TVS/TVS/tvsrc
@@ -0,0 +1,11 @@
+# $Author: antos $
+# $Id: tvsrc,v 1.4 2000/04/13 20:07:28 antos Exp $
+#
+# TVS --- TeX Versioning System config file
+#
+# Config file of TVS. Modify as you like.
+#
+ignore ignpats.tvs
+pathcuts pathcuts.tvs
+verbose 0
+format /usr/TeX/texmf/web2c
diff --git a/support/TVS/index.html b/support/TVS/index.html
new file mode 100644
index 0000000000..82aa8baaec
--- /dev/null
+++ b/support/TVS/index.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<//--- $Id: index.html,v 1.6 2000/05/08 14:12:38 antos Exp $--->
+<HTML>
+<HEAD>
+ <TITLE> TeX Versioning System Homepage </TITLE>
+<META http-equiv="Content-Type" content="text/html">
+</HEAD>
+
+<BODY background="slapoty.gif">
+
+<center>
+<h1> TeX Versioning System </h1>
+</center>
+
+This is homepage of TeX Versioning System, system for storing complete
+source of TeX documents.
+
+<h3>What TVS can do for you</h3>
+
+Although TeX guarantees the ability of getting the same results when
+typesetting a document. In real life, it is not so easy as the document
+look usually depends on lots of files, e.g. macros, styles.
+<p>
+If you need to be able to get the same output wherever and whenever you
+typeset your documents, you need TVS.
+<p>
+TVS can find all the files needed to typeset your TeX document and
+pack them together so as you can always re-typeset the document and
+obtain exactly the same results.
+<p>
+TVS is a platform independent Perl script, it's documentation comes in
+Texinfo format. TVS is free, distributed under terms of General Public
+License.
+<p>
+For all information about TVS, please read the documentation.
+
+<h3>Documentation</h3>
+You may get the documentation in various formats:
+<UL>
+<li> <a href="http:TVS/docs/tvs.html">HTML pages</a>
+<li> <a href="http:TVS/docs/tvs.info">formatted INFO file</a>
+<li> <a href="http:TVS/docs/tvs.ps">PostScript</a>
+<li> <a href="http:TVS/docs/tvs.texi">Texinfo source</a>
+</UL>
+
+<h3>Download</h3>
+<a href="http:TVS/">Here you can download TVS by files</a>
+or
+<a href="http:TVS.tar.gz">gzipped tar file.</a>
+
+<h3>Author</h3>
+TVS was written and is maintained by David Antos, xantos (at) fi.muni.cz.
+
+<p> <hr>
+<center> Fight against software piracy--use free software! </center>
+</BODY>
+</HTML>
diff --git a/support/TVS/misc/TVS-Zpravodaj.tex b/support/TVS/misc/TVS-Zpravodaj.tex
new file mode 100644
index 0000000000..dd7562106b
--- /dev/null
+++ b/support/TVS/misc/TVS-Zpravodaj.tex
@@ -0,0 +1,77 @@
+\documentclass[11pt,a4paper]{article}
+
+\usepackage{a4wide}
+\usepackage{czech}
+
+\newcommand{\TVS}{\texttt{TVS}}
+\begin{document}
+
+David Antoš
+
+\TeX\ Versioning System aneb jak všechny zdrojové soubory uložiti
+
+Tohle se vám už někdy muselo stát: Používáte \TeX\ v~práci. Doma máte
+jinou distribuci. Doma jste pracně napsali a krásně zalomili dokument
+používající několik souborů s~makry. Přišli jste do práce, zdroják na
+disketě, spustili \TeX\ a po chvíli \texttt{I can't find file
+`blabla.tex'}. Naštvaně přemýšlíte, proč v~instalaci v~práci zrovna
+tenhle soubor chybí.
+
+Nebo něco jiného. Máte vysázenou knihu, jasný bestseller, který určitě
+budete za rok či dva potřebovat vysadit znovu. Rádi byste si uložili
+všechny zdrojové texty, na kterých vzhled dokumentu závisí. Takže se
+ponoříte do logu a hledáte je ručně. Tak to vás upřímně lituji, protože
+nevíte, že nemusíte.
+
+Pro oba případy může posloužit \TVS , \TeX\ Versioning System. Tento
+program umí projít logy \TeX u , najít v~nich jména souborů (což zas není
+tak jednoduché) a tyto soubory zkopírovat do zadaného adresáře. Může
+najít nejen soubory potřebné přímo k~překladu hlavního dokumentu, ale
+i~soubory, které jsou potřeba k~vygenerování formátu.
+
+Přitom umí vynechávat soubory odpovídající regulárnímu výrazu ---
+například se zadanými příponami. Navíc dokáže zacházet se jmény souborů
+docela inteligentně, dokáže zachovat strukturu vašich vlastních
+zdrojových souborů za předpokladu, že jsou umístěny v~adresářové
+struktuře v~podstromu adresáře, ve kterém je hlavní dokument.
+
+Zatím experimentálně zařazujeme i možnost projít log \texttt{dvips}u,
+který tento program vytváří většinou s~volbou \texttt{-d}. Takto je
+možno získat fonty odkazované z~\texttt{.dvi} souboru. Bohužel se takto
+dostanou pouze bitmapy, přesněji řečeno soubory \texttt{.pk}, což není
+příliš užitečné. Nicméně zkušený uživatel může získaný výpis použít jako
+vodítko pro ruční posbírání zdrojových souborů pro generování fontů.
+
+Činnost \TVS\ je samozřejmě limitována tím, co lze najít v~logu. Bohužel
+trocha ruční práce zbývá, pokud dokument závisí na něčem, co lze sice
+považovat za zdrojový text, ale nepoužívá se to přímo v~posledním běhu
+\TeX u. Příkladem může být soubor s~bibliografickými údaji. Z~něj se
+vyberou ty, na které je odkazováno z~dokumentu a ty se třídí a doplní
+informacemi o~stylu. Teprve tento derivát se začleňuje do dokumentu.
+Pokud chceme archivovat i původní soubor, nic nám nebrání ho
+k~posbíraným zdrojům přidat.
+
+Získané kompletní zdroje dokumentu je možno přeložit na jakékoli
+distribuci \TeX u. Stačí, aby cílová distribuce umožnila nastavit, aby
+\TeX{} hledal soubory nejdříve a aktuálním adresáři a jeho
+podadresářích a pak teprve v~systémových adresářích \TeX u.
+Není třeba, aby systém \TVS\ byl na cílovém stroji instalován.
+
+\TVS\ je napsán v~Perlu ve snaze o~maximální platformovou nezávislost.
+Je nezávislý na tom, jestli používáte \LaTeX , plain nebo cokoli jiného.
+Zvládá konvence jmen souborů obvyklá v~M\$ světě i v~Un*xu\footnote{měl
+jsem nutkání napsat \uv{i v~operačních systémech} \ldots},
+počítá i s~tak patologickými jevy, jako jsou mezery v názvech souborů,
+které se kupodivu vyskytují v~\TeX u na Macu.
+
+\TVS\ jsem napsal jako bakalářský projekt na Fakultě informatiky
+Masarykovy university v~Brně pod vedením a za vydatné podpory
+RNDr.~Petra Sojky.
+
+Domovská stránka je \texttt{http://www.fi.muni.cz/\~{}xantos/TVS} a
+tamtéž si můžete \TVS\ stáhnout včetně jeho podrobné dokumentace ve
+formátu Texinfo, na stránce je dokumentace dostupná také ve formátech
+HTML a PostScript. \TVS\
+je šířen zdarma za podmínek GPL licence.
+
+\end{document}
diff --git a/support/TVS/misc/uvod_analyza.tex b/support/TVS/misc/uvod_analyza.tex
new file mode 100644
index 0000000000..ee6d213119
--- /dev/null
+++ b/support/TVS/misc/uvod_analyza.tex
@@ -0,0 +1,79 @@
+\documentclass[11pt,a4paper]{article}
+
+\usepackage{a4wide}
+\usepackage{czech}
+\usepackage{times}
+
+%\newcommand{\TVS}{T\kern-.1667em\lower.5ex\hbox{V}\kern-.125emS}
+%To S asi chce kousek doprava\ldots
+\newcommand{\TVS}{T\kern-.1667em\lower.5ex\hbox{V}\kern-.1emS}
+
+\begin{document}
+\part{Úvod}
+Ačkoli \TeX\ sám garantuje, že dokument přeložený
+kdykoli a kdekoli bude zalomen vždy naprosto stejně, věc má jeden malý
+háček. Toto tvrzení platí, pokud \TeX u poskytneme přesně stejné vstupní
+soubory.
+
+Stejné vstupní soubory snadno zajistíme, pokud se omezíme na používání
+primitivních příkazů a nejvýše maker plain a problémy nebudou mít ani ti,
+kteří začínají každý dokument \begin{verb} \input{MyMacros} \end{verb}
+a verze tohoto souboru si pečlivě ohlídají.
+
+Co si ale mají počít nebozí \LaTeX isté, kteří požívají výhod nepřeberného
+množství dostupných maker? Dokument přeložený například na distribuci
+{\tt texlive-4} se už o~rok později na {\tt texlive-5} stejně zalomit nemusí
+například proto, že používá balík pro nestandardní sazbu poznámek na
+okraji, jehož autor se na jednom místě rozhodl namísto
+\begin{verb} \penalty50 \end{verb} napsat v~novější verzi
+\begin{verb} \penalty20 \end{verb}.
+
+Potřebujeme systém, který k~dokumentu v~\LaTeX u připojí ve vhodné
+formě všechny makrobalíky, na kterých je tento dokument závislý a poté
+dokáže z~takového makrodokumentu rekonstruovat podobu distribuce, na které
+proběhne zlom dokumentu identicky s~překladem původním. Tedy potřebujeme
+\TVS , \TeX\ Versioning System.
+
+V~ideálním případě by činnost \TVS\ neměla záviset na distribuci \TeX u,
+v~nejhorším případě by měl \TVS\ pracovat na všech distribucích dodržujících
+souborovou strukturu TDS.
+Dalším požadavkem je platformová nezávislost, proto se předpokládá
+implementace v~jazyce Perl, jakožto vhodném nástroji pro zpracování
+textových dat.
+
+Dalším problémem obvyklým při zpracování \LaTeX ových dokumentů jsou
+lokální rozdíly mezi distribucemi. Například na Fakultě informatiky si
+každý student může z~WWW stáhnout svůj rozvrh mimo jiné ve formátu
+\LaTeX2e.
+
+Začátečník si {\tt rozvrh.tex} přinese domů, tam má obvykle {\tt te\TeX}
+z~RPM nebo {\tt texlive} na Linuxu, spustí {\tt cslatex rozvrh.tex} a
+\ldots A~nic. Protože nemá makra pro sazbu rozvrhu ani fakultní logo,
+překlad skončí neúspěšně.
+Ani pro pokročilejšího \TeX istu není situace o~mnoho jednodušší. Také si
+totiž (většinou až doma) všimne, že prakticky tři čtvrtiny potřebných
+souborů mu chybí.
+
+Pro jednotlivosti, jako je rozvrh, lze problém převést na předchozí
+úlohu, přeložit rozvrh ve škole, zjistit, co vše je potřeba a použít
+výše popsanou metodu. Horší situace nastává, pokud se takových dokumentů
+musí přenášet více.
+
+Potřebujeme, aby bylo možno vytvořit \uv{lokální kopii lokálních
+úprav}, tedy zjistit, jak se lokální instalace liší od standardní
+distribuce, která pro ni byla základem. Tyto informace může například
+vytvářet správce lokální instalace (a udržovat je aktuální po každé
+provedené změně). Uživatel si přinese soubor (\TeX diff?) tam, kde
+chce vytvořit další repliku těchto úprav a vytvoří pomocí \TVS\ přesnou
+kopii svého obvyklého nastavení.
+Pravděpodobně zde nebude možno dodržet požadavek nezávislosti na
+distribuci.
+
+Plánem do budoucna je rozšíření systému, které při chybovém hlášení
+o~chybějícím souboru tento stáhne z~CTANu a případně také rozšíření udržující
+verze maker tak, aby bylo možno překládat dokumenty stylem \uv{přelož
+tohle, jako by bylo 1. března 1998}.
+Zvláště poslední z~uvedených námětů bude patrně vyžadovat spolupráci
+s~distribucí a~výrazně překračuje rozsah tohoto projektu.
+
+\end{document}
diff --git a/support/TVS/slapoty.gif b/support/TVS/slapoty.gif
new file mode 100644
index 0000000000..542e1e54c0
--- /dev/null
+++ b/support/TVS/slapoty.gif
Binary files differ