                                     C                                         HFRD VMS Hypertext Services >                                          . . . read this first      #                    1st January 1996                       Abstract   F                    This document is an essential read prior to furtherI                    investigating the freeware HFRD VMS Hypertext Services $                    software package.  H                    It covers the version 3 release of the HFRD VMS HTTPd2                    server and associated software.                      Author   !                    Mark G. Daniel 2                    Senior Information Technologist  2                    Mark.Daniel@dsto.defence.gov.au  (                    +61 (8) 2596031 (bus)(                    +61 (8) 2596673 (fax)  !                    Mark G. Daniel 0                    High Frequency Radar Division>                    Defence Science and Technology Organisation                    PO Box 1500                    Salisbury'                    South Australia 5108                                                                  F                HFRD VMS Hypertext Services, Copyright (C) 1996 Mark G.                Daniel.  L                This package is free software; you can redistribute it and/orJ                modify it under the terms of the GNU General Public LicenseM                as published by the Free Software Foundation; version 2 of the -                License, or any later version.   F                This package is distributed in the hope that it will beI                useful, but WITHOUT ANY WARRANTY; without even the implied F                warranty of MERCHANTABILITY or FITNESS FOR A PARTICULARL                PURPOSE. See the GNU General Public License for more details.  H                You should have received a copy of the GNU General PublicI                License along with this package; if not, write to the Free L                Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,                USA.   I                DEC TCP/IP Services for OpenVMS, VAX C, DEC C, VAX and AXP J                are registered trademarks of Digital Equipment Corporation.  >                MultiNet is a registered trademark of TGV, Inc.    .                (how's that for legalese? :^) )                       P                Contents_________________________________________________________  P                Chapter_1__Disclaimer____________________________________________      P                Chapter_2__Overview______________________________________________      P                Chapter_3__Scripts_______________________________________________    P                Chapter_4__Requirements__________________________________________      P                Chapter_5__Building______________________________________________      P                Chapter_6__Can't_Wait?___________________________________________    P                Chapter_7__Support_______________________________________________      P                Chapter_8__GNU_General_Public_License____________________________                                      1                                               iii                      M             Chapter__1_______________________________________________________                Disclaimer    M                As High Frequency Radar Division currently employs some useful F                (and in that sense valuable) freeware and public-domainG                software, its management has consented, in the spirit of K                wishing to "pay its dues" and encourage this environment, to K                make some of its own, locally implemented hypertext services ?                software available to the broader VMS community.   I                The Division recognises that although having no commercial E                value, this software can never-the-less be valuable to G                other sites because of its low cost (usually media only) G                and in that it may address niche requirements not viable H                for commercial vendors. It should be emphasized that thisL                is not a commercial-grade package, has not been designed withK                that in mind, should not be recognised as such, nor is it in J                any way endorsed by the High Frequency Radar Divison or its                management.  K                This package is free software provided under the GNU General K                Public License, there is ABSOLUTELY NO WARRANTY of any kind. K                See Chapter 8. If you are not familiar with this approach to 9                licensing please take the time to read it.                   Author's Note  J                It definitely is not a commercial-grade package but I stillJ                think it works well (and am only moderately reticent to let*                others scrutinize my work)!                                N                                                                Disclaimer  1-1                     M             Chapter__2_______________________________________________________                Overview    L                This read this first is a quick "throw-together" providing anK                introduction and some guidance for support external to HFRD. K                It does not pretend to be as exhaustive as is necessary, but 4                hey I'm not getting paid for this :^)  G                The implementation of the internal hypertext environment H                started off as a Divisional management action-item, "makeJ                it easier to access information-systems-based documentationF                and other data in a multi-platform environment". GopherG                was a first and brief stop, just as the power of the WWW F                technologies was becoming obvious (mid 1994). Like manyI                others, I became impressed with the potential to integrate H                disparate data formats and platforms with the ease of the<                point-and-click functionality of the browser.  G                After evaluating the CERN (live) and an earlier OSU DEC- G                threads (by documentation) servers I decided some of the F                limitations and other idiosyncracies of these warrantedI                investing a little in our own (how's that for hubris!) The J                upshot was that although the Divison provided core time andG                justification for development and implementation of this F                environment, I spent considerable of my own time on theJ                package as well. The HTTPd server's multi-threading is doneH                using VMS ASTs, and this is by far the largest AST-drivenG                system I have designed and built. In short, I found it a K                challenge, I learned a remarkable amount (particularly about M                VMS' ASTs), and gained a great deal of satisfaction from it. I G                hope its of some use to someone out there other than us.   G                Without apology, the server and its environment has been D                designed to support an intra-organisational hypertextG                environment and has been tailored to the requirements of H                the High Frequency Radar Divison and its VMS environment.I                Any other usefulness is purely coincidental! All this not- L                with-standing, it should prove useful in the broader context.K                As mentioned above, it is not a commercial-grade product and H                as this is its first public release a little fiddling and/                experimentation may be required.           N                                                                  Overview  2-1                                 Documentation  K                Some documentation is provided, but again this is mainly for I                internal, Divisional support purposes. If external readers L                find it useful then that's a bonus! It is basically unalteredM                from its original, internal purpose, apart from more extensive J                author contact information, the copyright notices, and someM                small disclaimers in the introductions. If the software should K                become more widely used the author would consider making the *                documentation more generic.  K                See the <[.DOC]> (hypertext link) directory. You should find L                HTML, Bookreader (and HyperReader), plain-text and PostScriptK                versions (all generated from SDML sources using DEC Document B                and the SDM2HTM application found in this package).  J                The "Proceedings of the Twenty-Fifth Annual DECUS AustraliaI                Symposium, 1995" contain a paper by the author summarising J                a presentation made during that event, titled "IntroductionG                to World Wide Web Technologies ... what the surfboard is G                made from". I have taken the liberty of including it for L                informational purposes, in PostScript format, in the <[.DOC]>J                (hypertext link) directory. Partly it documents some of theM                uses HFRD has made of the hypertext environment, although even ;                now (1996) it may be getting a little dated.                   Feedback   I                It would be interesting to know who is using what parts of M                this package and where. If you find it of use could you please L                make a moment to drop an e-mail (or even snail-mail) listing:                  o  name  *                o  organisation and address                   o  e-mail address  J                o  components and version of HFRD VMS Hypertext Services in                   use   I                o  platform(s) (AXP/VAX, VMS version, network software and                    version)  $                o  any other comments  E                This information will be confidential. I may use it to H                feedback to you any monumental changes in the package :^)                With thanks.   :                <E-Mail me now!> (hypertext mailto: anchor)               2-2  Overview                      M             Chapter__3_______________________________________________________                Scripts     J                The script applications have all been designed to be (more-F                or-less) CGI compliant. The HTTPd server passes requestG                data only via CGI variables. In a similar fashion to the I                CERN implementation these CGI variables are implemented as I                DCL symbols, with the standard CGI variable names prefixed H                by "WWW_". Script applications usually return a full HTTPG                response (i.e. generate their own header and a full data J                stream, and could be considered the equivalent of no-parse-M                header scripts), although server generation of headers is also                 available.   M                It may be possible to adapt these applications to other server K                environments. As the author considers some of the scripts to H                be quite useful (e.g. HyperReader, a hypertext BookreaderF                application) this is encouraged. The GNU General Public/                License still applies of course.                                                       N                                                                   Scripts  3-1                     M             Chapter__4_______________________________________________________                Requirements    E                "Out-of-the-box" the package executes using DEC TCP/IP K                Services on both AXP and VAX platforms. The VMD HTTPd server I                itself is specifically tailored to DEC TCP/IP Services for J                OpenVMS (v3.3, a.k.a. UCX), particularly its QIO interface.  D                The software was originally written in a VAX C (v3.2)E                and later DEC C (v5.n) environments, under VMS 6.n. No J                consideration has been given to any other environments. TheG                DEC C run-time environment is prefered to the VAX C run- J                time environment because the former's greater integrity and4                improved performance over the latter.                  Executables  K                The executables provided with the package have been compiled L                using DEC C v5.0 and linked against the VMS v6.2 DECC$SHR.EXE4                RTL, with the following implications:                  o  AXP Systems   K                   For AXP systems with VMS v6.n this should not present any                    problems.                   o  VAX Systems   J                   For VAX systems there will be an incompatibility for VMSM                   VAX versions prior to 6.2, as noted in the Open VMS Version $                   6.2 Release Notes:  5                      4.5.2.2  DECC$SHR.EXE (VAX Only)                         V6.2   L                      A new package of internationalization routines has beenP                      added to the DEC C RTL (see Section 4.5.1.3) and the trans-S                      fer vector has been extended, necessitating an increase in the O                      minor ident (GSMATCH) of the image.  Because of this, pro- G                      grams using the DEC C RTL (DECC$SHR.EXE) linked on J                      OpenVMS VAX Version 6.2 systems will not run on prior-                      versions of OpenVMS VAX.                      Solutions:  L                   1. If your VAX site does not support the DEC C compiler orN                      run-time environment (check here for the run-time, share-M                      able image: <SYS$COMMON:[SYSLIB]DECC$SHR.EXE> (hypertext   N                                                              Requirements  4-1                 L                      link) ), the run-time components alone can be installedJ                      and used without additional licensing. This is a sim-L                      ple and short duration exercise. The DEC C/C++ Run-TimeL                      Components kit is available on the Digital consolidatedM                      distribution CD-ROM (last seen in the same CD and direc- K                      tory as the DEC C compiler). For your convenience, and J                      within Digital's permitted redistribution guidelines,L                      the run-time kit is also provided as part of this pack-J                      age. The saveset and documentation are located in theN                      <[.AACRT060]> (hypertext link) directory. Please read theJ                      installation instructions provided in that directory.  G                   2. Relink all of the applications against you current I                      DECC$SHR.EXE, sorry. The build procedures all accept E                      "LINK" as a command-line parameter, skipping the F                      compilation phase and just linking. The procedureI                      <[.SRC]RELINK_ALL.COM> (hypertext link) will execute E                      all the build procedures through the link phase.   I                Needless-to-say (but I will anyway), the server requires a K                privileged environment (either account or image) in which to                 execute.   1                                              Note   F                      To give this software an opportunity to be usefulC                      to a larger number of sites I ported it to TGV @                      MultiNet TCP/IP (v3.4) over New Year 95-96.E                      This has been tested under VMS VAX 6.2 and seems C                      to work OK. It is basically the DEC TCP/IP QIO F                      adapted to MultiNet's QIO interface. It is not asE                      exhaustively tested as the DEC TCP/IP version. I E                      have not compiled or tested it using MultiNet on F                      AXP, we have only the one VAX architecture systemG                      using TGV's product, other VAX and AXP systems use F                      bundled DEC TCP/IP. Just to emphasize once again,F                      HFRD does not need a MultiNet version, so this isF                      strictly a bonus. I would appreciate (but may notF                      end up implementing) any suggestions on improving)                      the networking code.r                                 4-2  Requirements                      M             Chapter__5_______________________________________________________o               Building    8                All of the applications are written in C.  J                As the software has been written to the requirements of DECH                C (in an uncritical, VAXC-backward-compatible compilationJ                mode, i.e. /STANDARD=VAXC (when moving from VAXC C to DEC CM                the author discovered he wasn't the rigorous software engineerSK                he had hoped he was :^)) its build and run-time behaviour in <                other compiler environments is unpredictable.  I                All applications are linked against the DEC C DECC$SHR.EXE K                RTL. The DEC C run-time environment is prefered to the VAX CDJ                run-time environment because the former's greater integrityH                and improved performance over the latter. See the sectionH                Executables for further information on this component. InH                all probability, if you're considering re-compiling, thisL                environment will already be available on your site somewhere.  I                Brute-force build procedures are provided in each software C                application source directory. They are named "BUILD_                 whatever.COM".a  K                Two procedures can be used to rebuild or relink all applica- K                tions in the package. Because of some dependencies the HTTPde,                server should be built first.  8                o  <[.SRC]BUILD_ALL.COM> (hypertext link)  9                o  <[.SRC]RELINK_ALL.COM> (hypertext link)f  H                Also, the HTTPd server itself is specifically tailored toK                DEC TCP/IP Services for OpenVMS (primarily) and TGV MultiNeteI                (secondarily), particularly their QIO interfaces, so again)H                its build and run-time behaviour in other environments isJ                indeterminate. The HTTPd server build procedure detects theJ                MultiNet environment and builds accordingly. The executableK                in this environment is specifically named HTTPD_MULTINET.EXE M                so as to clearly indicate which build has occured. This can be M                renamed to HTTPD.EXE or left unchanged and procedures modified $                to reflect that name.        N                                                                  Building  5-1 _  _                M             Chapter__6________________________________________________________               Can't Wait?     J                Can't wait to try it out? (You should definitely have firstI                read the section Chapter 4.) This will give you a minimal, J                non- custom, hypertext environment, with the server runningH                from the command line. You will need a privileged accountF                and the general requirements of the server package (seeI                Chapter 4). This assumes the server has been built for the-!                local environment.s  G                Device: is the disk device on which the package has beenyI                placed. Architecture is either "AXP" or "VAX" depending on G                your platform. Port is the IP port for the server to use G                (defaults to 80, but can be bound elsewhere allowing theeH                evaluation of this environment against an existing one on                the same host).  0                Enter the following DCL commands:  P                   $ DEFINE /JOB /TRANSLATION=CONCEALED HT_ROOT device:[HT_ROOT.]=                   $ DEFINE /JOB HT_EXE HT_ROOT:[architecture]IU                   $ DEFINE /JOB HTTPD$CONFIG HT_ROOT:[HTTPD.EXAMPLE]HTTPD$CONFIG.CONF O                   $ DEFINE /JOB HTTPD$MAP HT_ROOT:[HTTPD.EXAMPLE]HTTPD$MAP.CONFs,                   $ HTTPD == "$HT_EXE:HTTPD"+                   $ HTTPD /NOLOG /PORT=porti  >                Then bring up your browser and access this URL:  %                   http://host[:port]/a  "                Alternatively . . .  L                Execute <@DEVICE:[HT_ROOT]FREEWARE_DEMO.COM> (hypertext link)K                (which will do all of the above, and a bit more, for you :^)e                )                    N                                                               Can't Wait?  6-1 b  I                M             Chapter__7_______________________________________________________                Support     F                The HFRD VMS hypertext services have become an integralM                component of the High Frequency Radar Division's documentation M                access strategy. During 1995 the environment has also achieved J                a high degree of integration of available documentation andK                software resources for the VMS user and software developmentxJ                environment. Although always in need of further developmentK                and refinement the level of functionality probably meets the L                Division's current intra-organisational hypertext environmentF                requirements, and so it will not be driving any further6                significant (foreseeable) developments.  D                This not-with-standing, the author may, if demand, orG                requirements, or inclination arises, further develop thewJ                package, either by refining the existing server or scripts,@                or by adding additional functionality or scripts.  H                TGV MultiNet support is tenuous. HFRD has it only on one,D                older and obsolescent VAX system, which may not be on$                maintenance tomorrow!  G                Investigation of bug reports/fixes and implementation ofyH                additional functionality will be completely contingent onK                its impact or relevance to HFRD's use of or desirability forlL                the instance in question. Anything other than this would needH                to be done in the author's own time and therefore is also/                contingent on the circumstances.   G                The author welcomes bug reports (I don't really) and any G                other feedback or comments, particularly if they are not K                too damaging to his fragile ego. E-mail is preferable. Every I                effort will be made to respond, as is possible at the timecH                (sooner better than later), but no guarantees. For a more8                formal request see Feedback in Chapter 2.  H                Of course, because this package is free software providedK                under the GNU General Public License, there is ABSOLUTELY NOb3                WARRANTY of any kind. See Chapter 8.a            N                                                                   Support  7-1                     M             Chapter__8_______________________________________________________u  &             GNU General Public License        >                                     GNU GENERAL PUBLIC LICENSE;                                        Version 2, June 1991c  H                  Copyright (C) 1989, 1991 Free Software Foundation, Inc.P                                           675 Mass Ave, Cambridge, MA 02139, USAM                  Everyone is permitted to copy and distribute verbatim copies J                  of this license document, but changing it is not allowed.  4                                             Preamble  O                   The licenses for most software are designed to take away your T                 freedom to share and change it.  By contrast, the GNU General PublicV                 License is intended to guarantee your freedom to share and change freeT                 software--to make sure the software is free for all its users.  ThisK                 General Public License applies to most of the Free SoftwarewV                 Foundation's software and to any other program whose authors commit toV                 using it.  (Some other Free Software Foundation software is covered byU                 the GNU Library General Public License instead.)  You can apply it to #                 your programs, too.s  R                   When we speak of free software, we are referring to freedom, notV                 price.  Our General Public Licenses are designed to make sure that youV                 have the freedom to distribute copies of free software (and charge forU                 this service if you wish), that you receive source code or can get it T                 if you want it, that you can change the software or use pieces of itP                 in new free programs; and that you know you can do these things.  R                   To protect your rights, we need to make restrictions that forbidV                 anyone to deny you these rights or to ask you to surrender the rights.W                 These restrictions translate to certain responsibilities for you if you G                 distribute copies of the software, or if you modify it.s  R                   For example, if you distribute copies of such a program, whetherU                 gratis or for a fee, you must give the recipients all the rights thatnT                 you have.  You must make sure that they, too, receive or can get theS                 source code.  And you must show them these terms so they know theirr                 rights.   X                   We protect your rights with two steps: (1) copyright the software, andT                 (2) offer you this license which gives you legal permission to copy,6                 distribute and/or modify the software.  N                                                GNU General Public License  8-1                 V                   Also, for each author's protection and ours, we want to make certainQ                 that everyone understands that there is no warranty for this free_X                 software.  If the software is modified by someone else and passed on, weW                 want its recipients to know that what they have is not the original, sodW                 that any problems introduced by others will not reflect on the originalt%                 authors' reputations.i  P                   Finally, any free program is threatened constantly by softwareS                 patents.  We wish to avoid the danger that redistributors of a freeaV                 program will individually obtain patent licenses, in effect making theU                 program proprietary.  To prevent this, we have made it clear that any W                 patent must be licensed for everyone's free use or not licensed at all.   P                   The precise terms and conditions for copying, distribution and$                 modification follow.  >                                     GNU GENERAL PUBLIC LICENSER                    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION  U                   0. This License applies to any program or other work which contains T                 a notice placed by the copyright holder saying it may be distributedV                 under the terms of this General Public License.  The "Program", below,U                 refers to any such program or work, and a "work based on the Program" T                 means either the Program or any derivative work under copyright law:Q                 that is to say, a work containing the Program or a portion of it, T                 either verbatim or with modifications and/or translated into anotherV                 language.  (Hereinafter, translation is included without limitation inO                 the term "modification".)  Each licensee is addressed as "you".5  T                 Activities other than copying, distribution and modification are notP                 covered by this License; they are outside its scope.  The act ofV                 running the Program is not restricted, and the output from the ProgramN                 is covered only if its contents constitute a work based on theQ                 Program (independent of having been made by running the Program).iF                 Whether that is true depends on what the Program does.  Q                   1. You may copy and distribute verbatim copies of the Program's O                 source code as you receive it, in any medium, provided that yourS                 conspicuously and appropriately publish on each copy an appropriate P                 copyright notice and disclaimer of warranty; keep intact all theV                 notices that refer to this License and to the absence of any warranty;S                 and give any other recipients of the Program a copy of this License '                 along with the Program.A  U                 You may charge a fee for the physical act of transferring a copy, and W                 you may at your option offer warranty protection in exchange for a fee.e  U                   2. You may modify your copy or copies of the Program or any portion M                 of it, thus forming a work based on the Program, and copy andRR                 distribute such modifications or work under the terms of Section 1K                 above, provided that you also meet all of these conditions:   +             8-2  GNU General Public LicenseI o  V            S                     a) You must cause the modified files to carry prominent noticeshR                     stating that you changed the files and the date of any change.  V                     b) You must cause any work that you distribute or publish, that inS                     whole or in part contains or is derived from the Program or anyoU                     part thereof, to be licensed as a whole at no charge to all thirdg<                     parties under the terms of this License.  T                     c) If the modified program normally reads commands interactivelyN                     when run, you must cause it, when started running for suchT                     interactive use in the most ordinary way, to print or display anP                     announcement including an appropriate copyright notice and aV                     notice that there is no warranty (or else, saying that you provideQ                     a warranty) and that users may redistribute the program under U                     these conditions, and telling the user how to view a copy of this R                     License.  (Exception: if the Program itself is interactive butT                     does not normally print such an announcement, your work based onJ                     the Program is not required to print an announcement.)  M                 These requirements apply to the modified work as a whole.  IfjT                 identifiable sections of that work are not derived from the Program,R                 and can be reasonably considered independent and separate works inS                 themselves, then this License, and its terms, do not apply to those R                 sections when you distribute them as separate works.  But when youU                 distribute the same sections as part of a whole which is a work based U                 on the Program, the distribution of the whole must be on the terms ofgQ                 this License, whose permissions for other licensees extend to the Y                 entire whole, and thus to each and every part regardless of who wrote it.   U                 Thus, it is not the intent of this section to claim rights or contest U                 your rights to work written entirely by you; rather, the intent is to O                 exercise the right to control the distribution of derivative ore6                 collective works based on the Program.  V                 In addition, mere aggregation of another work not based on the ProgramU                 with the Program (or with a work based on the Program) on a volume ofoT                 a storage or distribution medium does not bring the other work under*                 the scope of this License.  T                   3. You may copy and distribute the Program (or a work based on it,U                 under Section 2) in object code or executable form under the terms of-V                 Sections 1 and 2 above provided that you also do one of the following:  T                     a) Accompany it with the complete corresponding machine-readableV                     source code, which must be distributed under the terms of Sections\                     1 and 2 above on a medium customarily used for software interchange; or,  R                     b) Accompany it with a written offer, valid for at least threeR                     years, to give any third party, for a charge no more than yourQ                     cost of physically performing source distribution, a completehQ                     machine-readable copy of the corresponding source code, to beiU                     distributed under the terms of Sections 1 and 2 above on a mediumtB                     customarily used for software interchange; or,  N                                                GNU General Public License  8-3 l  e            U                     c) Accompany it with the information you received as to the offer R                     to distribute corresponding source code.  (This alternative isO                     allowed only for noncommercial distribution and only if youuT                     received the program in object code or executable form with suchA                     an offer, in accord with Subsection b above.)O  S                 The source code for a work means the preferred form of the work for T                 making modifications to it.  For an executable work, complete sourceT                 code means all the source code for all modules it contains, plus anyO                 associated interface definition files, plus the scripts used to V                 control compilation and installation of the executable.  However, as aO                 special exception, the source code distributed need not includelQ                 anything that is normally distributed (in either source or binarytT                 form) with the major components (compiler, kernel, and so on) of theT                 operating system on which the executable runs, unless that component2                 itself accompanies the executable.  P                 If distribution of executable or object code is made by offeringP                 access to copy from a designated place, then offering equivalentL                 access to copy the source code from the same place counts asR                 distribution of the source code, even though third parties are notH                 compelled to copy the source along with the object code.  T                   4. You may not copy, modify, sublicense, or distribute the ProgramM                 except as expressly provided under this License.  Any attempteR                 otherwise to copy, modify, sublicense or distribute the Program isV                 void, and will automatically terminate your rights under this License.T                 However, parties who have received copies, or rights, from you underT                 this License will not have their licenses terminated so long as such2                 parties remain in full compliance.  T                   5. You are not required to accept this License, since you have notT                 signed it.  However, nothing else grants you permission to modify orR                 distribute the Program or its derivative works.  These actions areS                 prohibited by law if you do not accept this License.  Therefore, bynO                 modifying or distributing the Program (or any work based on theoT                 Program), you indicate your acceptance of this License to do so, andS                 all its terms and conditions for copying, distributing or modifying 1                 the Program or works based on it.T  U                   6. Each time you redistribute the Program (or any work based on theEQ                 Program), the recipient automatically receives a license from the V                 original licensor to copy, distribute or modify the Program subject toK                 these terms and conditions.  You may not impose any furtheriV                 restrictions on the recipients' exercise of the rights granted herein.T                 You are not responsible for enforcing compliance by third parties to                 this License.       +             8-4  GNU General Public License                  U                   7. If, as a consequence of a court judgment or allegation of patent_T                 infringement or for any other reason (not limited to patent issues),S                 conditions are imposed on you (whether by court order, agreement oryV                 otherwise) that contradict the conditions of this License, they do notN                 excuse you from the conditions of this License.  If you cannotV                 distribute so as to satisfy simultaneously your obligations under thisV                 License and any other pertinent obligations, then as a consequence youP                 may not distribute the Program at all.  For example, if a patentV                 license would not permit royalty-free redistribution of the Program byU                 all those who receive copies directly or indirectly through you, thenoS                 the only way you could satisfy both it and this License would be to B                 refrain entirely from distribution of the Program.  U                 If any portion of this section is held invalid or unenforceable undertV                 any particular circumstance, the balance of the section is intended toN                 apply and the section as a whole is intended to apply in other                 circumstances.  S                 It is not the purpose of this section to induce you to infringe any T                 patents or other property right claims or to contest validity of anyP                 such claims; this section has the sole purpose of protecting theL                 integrity of the free software distribution system, which isO                 implemented by public license practices.  Many people have madetP                 generous contributions to the wide range of software distributedQ                 through that system in reliance on consistent application of thatfV                 system; it is up to the author/donor to decide if he or she is willingU                 to distribute software through any other system and a licensee cannot,#                 impose that choice.   U                 This section is intended to make thoroughly clear what is believed toe=                 be a consequence of the rest of this License.e  S                   8. If the distribution and/or use of the Program is restricted iniU                 certain countries either by patents or by copyrighted interfaces, theaS                 original copyright holder who places the Program under this LicenserR                 may add an explicit geographical distribution limitation excludingS                 those countries, so that distribution is permitted only in or among U                 countries not thus excluded.  In such case, this License incorporates I                 the limitation as if written in the body of this License.r  Y                   9. The Free Software Foundation may publish revised and/or new versionsgX                 of the General Public License from time to time.  Such new versions willX                 be similar in spirit to the present version, but may differ in detail to1                 address new problems or concerns.   V                 Each version is given a distinguishing version number.  If the ProgramW                 specifies a version number of this License which applies to it and "any Y                 later version", you have the option of following the terms and conditions T                 either of that version or of any later version published by the FreeY                 Software Foundation.  If the Program does not specify a version number ofs\                 this License, you may choose any version ever published by the Free Software                 Foundation.o  N                                                GNU General Public License  8-5 )  o            U                   10. If you wish to incorporate parts of the Program into other free Y                 programs whose distribution conditions are different, write to the authornU                 to ask for permission.  For software which is copyrighted by the FreecX                 Software Foundation, write to the Free Software Foundation; we sometimesW                 make exceptions for this.  Our decision will be guided by the two goals Y                 of preserving the free status of all derivatives of our free software andoI                 of promoting the sharing and reuse of software generally.   7                                             NO WARRANTY   Z                   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTYX                 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHENV                 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIESZ                 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSEDT                 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFY                 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK ASeV                 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THEX                 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,%                 REPAIR OR CORRECTION.i  [                   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING S                 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR Z                 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,[                 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISINGaY                 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITEDsX                 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BYZ                 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHERU                 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ,                 POSSIBILITY OF SUCH DAMAGES.  @                                      END OF TERMS AND CONDITIONS                                      +             8-6  GNU General Public License 