     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                                   XARC4/CMD 
     
                             File Archive Utility 
                           Version 01.00.00 02/14/87 
                               for TRSDOS 6.x.x 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
          (C) COPYRIGHT 1985, 1986 by System Enhancement Associates; 
                              ALL RIGHTS RESERVED 
     
        TRSDOS 6.x.x adaptations (C) COPYRIGHT 1987 by David Huelsmann; 
                              ALL RIGHTS RESERVED 
     
     
    This document describes the XARC4 file utility, version 01.00.00, which 
    was based on the MS-DOS ARC created by System Enhancement Associates. 
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 2 
     
     
                               Table of Contents 
     
     
     
    Table of contents  ...............................................   2 
    Introduction  ....................................................   3 
    Using XARC4 ......................................................   5 
    XARC4 commands  ..................................................   6 
        Extracting files  ............................................   6 
        Listing archive entries  .....................................   6 
    XARC4 options  ...................................................   7 
        Decryption  ..................................................   8 
        New Line Mode  ...............................................   8 
    MS-DOS ARC File Compatibility  ...................................   8 
    Overlays in XARC4  ...............................................   9 
    Technical Support  ...............................................   9 
    Version numbers  .................................................  10 
    Common questions and answers  ....................................  10 
    Revision history  ................................................  11 
    Program history and credits  .....................................  11 
    Site license  ....................................................  13 
    Site License Agreement  ..........................................  14 
    Order form  ......................................................  15 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 3 
     
     
                                 INTRODUCTION 
     
     
     
    XARC  is the copyrighted  property  of System  Enhancement  Associates. 
    Since  XARC4  is a  derivative  work based  on  XARC,  it,  too, is the 
    copyrighted property of System Enhancement Associates. The TRSDOS 6.x.x 
    modifications are the copyrighted property of David Huelsmann. You      
    are  granted  a  limited  license  to use  XARC4, and  to  copy it  and 
    distribute it, provided that the following conditions are met: 
     
    1) No fee may be charged for such copying and distribution. 
     
    2) XARC4 may ONLY be distributed in its original, unmodified state. 
     
     
    Any  voluntary contributions  for  the  use  of  this program  will  be 
    appreciated, and should be sent to: 
     
                         System Enhancement Associates 
                                 21 New Street 
                               Wayne, NJ   07470 
     
    You may  not  use  this  product  in  a  commercial  environment  or  a 
    governmental  organization without paying  a  license fee of  $35. Site 
    licenses and commercial distribution  licenses  are  available. See the 
    order form in the back of this manual for more details. 
     
     
     
    A word about user supported software: 
     
    The user supported software concept (usually referred to  as  freeware) 
    is an attempt  to provide software at low cost. The  cost of offering a 
    new product by conventional means is  staggering,  and  hence dissuades 
    many  independent authors  and  small  companies  from  developing  and 
    promoting their ideas. User supported software is an attempt to develop 
    a new marketing channel, where products can be introduced at low cost. 
     
    If  user supported software works, then everyone will benefit. The user 
    will benefit by  receiving quality products at low cost,  and  by being 
    able  to  "test drive"  software thoroughly  before  purchasing it. The 
    author  benefits  by being able to enter the commercial  software arena 
    without first needing large sources of venture capital. 
     
    But it  can only work with  your support. We're not just talking  about 
    XARC and XARC4 here, but about all user supported software. If you find 
    that you are still using a program after a couple of weeks, then pretty 
    obviously  it  is worth something  to you, and  you  should  send in  a 
    contribution. 
     
    And now, back to XARC4: 
     
    XARC4 is used  to  extract files  from  MS-DOS  archives  or from  ARC4 
    created archives.   An archive is a group  of  files collected together 
 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 4 
     
    into one file in such a way that the individual files  may be recovered 
    intact. 
     
     
    When XARC4 is used to extract files from an archive,  it extracts files 
    created by ARC4 or MS-DOS ARC version 5.0 to 5.1.2 that utilized any of 
    four possible storage methods. These four methods are: 
     
    1) No compression; the file was stored as is. 
     
    2) Repeated-character compression; repeated sequences of the same  byte 
    value were collapsed into a three-byte code sequence. 
     
    3) Huffman squeezing with repeated-character compression; the file  was 
    compressed into variable length bit strings, similar to the method used 
    by the SQ programs. 
     
    4) Dynamic Lempel-Zev compression; the  file was stored as a series  of 
    variable  size  bit codes  which represent character strings, and which 
    were created "on the fly". 
     
     
    Note that since one of the four methods involved no compression at all, 
    the resulting archive entry is never larger than the original file. 
     
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 5 
     
     
                                  USING XARC4 
     
     
     
    XARC4 is invoked with a command of the following format: 
     
                     XARC4 <x> <arcname> [<arcname> . . .] 
     
    Where: 
     
    <x> is an XARC4  command  letter  (see below), in either upper or lower 
    case. 
     
    <arcname>  is the  name of the archive  to act  on, with or without  an 
    extension.  If  no  extension is supplied, then  "/ARC" is assumed. The 
    archive name may include a drive specifier even if the extension is not 
    supplied. 
     
    If XARC4 is invoked with no arguments (by  typing "XARC4", and pressing 
    "enter"), then a brief command summary is displayed. 
     
     
     
    The following is an  example of  the display when XARC4 is invoked with 
    no arguments: 
     
                      XARC4/CMD Version 01.00.00 02/14/87 
            (C) COPYRIGHT 1985,1986 by System Enhancment Associates 
                              ALL RIGHTS RESERVED 
        TRSDOS 6.x.x adaptations (C) COPYRIGHT 1987 by David Huelsmann 
                              ALL RIGHTS RESERVED 
                      Distributed with permission of SEA 
     
           Usage: XARC4 [o:xnlv][g<password>] arcname [arcname. . .] 
     
           Where: 
                 o:x  = Output drive (x = 0 to 7) 
                 n    = New Line Mode: Suppress removing LF after CR 
                 l,v  = List table of contents (verbose) to CRT 
                 g    = Garble (decrypt) archive entry 
     
                If no extension is given, then /ARC is assumed. 
     
           Refer to program documentation for complete instructions 
         and limitations on copying and distribution of this program. 
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 6 
     
     
                                XARC4 COMMANDS 
     
     
     
    This  section describes each  of the commands. ARC4 will accept any one 
    command at a time. If no  commands are given, then a brief command list 
    is displayed as shown on the previous page. 
     
     
    EXTRACTING FILES 
     
    Archive entries are extracted when the output drive specifier  is added 
    to the command line. Note that  ALL  files  are  extracted. There is no 
    provision in XARC4 to let you specify a  specific file. Also note  that 
    you can place  as  many archives on the command line as can fit and the 
    files  will be extracted from each archive in order. ALL will be placed 
    on the output  drive specified  - that is, only  one ouput drive may be 
    specified no matter  how  many archives are listed on the command line. 
    You could type: 
     
                               XARC4 o:2 junk:1 
                                      or 
                                XARC4 o:2n junk 
     
    Note that in the first example, the files would  be  extracted to drive 
    2.  In the second example, the files would also be extracted to drive 2 
    and automatic removal  of  Line  Feeds after Carriage  returns would be 
    suppressed. In addition, the first occurrence of JUNK/ARC would be used 
    starting with drive 0. 
     
    Whatever method of  file compression was used  in storing the  files is 
    reversed,  and uncompressed copies are created. If a file with the same 
    name already exists on the drive  specified, you will  be asked  if you 
    wish to overwrite the file. 
     
     
     
    LISTING ARCHIVE ENTRIES 
     
    You can  obtain  a list  of the contents of an archive by using the "L" 
    (List) command or the "V" (Verbose list) command. Both commands display 
    exactly the same  thing in XARC4. For example,  to  see  what is  in an 
    archive named "JUNK/ARC", you could type: 
     
                                XARC4 l junk:1 
                                      or 
                                 XARC4 v junk 
     
     
    XARC4 prints a listing of an archive's contents like this: 
     
     
  Name          Length    Stowage    SF   Size now  Date       Time    CRC 
  ============  ========  ========  ====  ========  =========  ======  ==== 
  ARC4.C           27318  Squeezed   45%     15248  28 Dec 86   1:23p  69e4 
  ARC42.C          20620  Crunched   44%     11617  28 Dec 86   1:26p  6d9e 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 7 
     
  ARC42.H           5245  crunched   38%      3265  28 Dec 86   1:28p  2f7f 
  ARC43.C          23682  Squeezed   43%     13538  28 Dec 86   1:28p  2a53 
  ARC43.JCL          161   Packed     1%       155  28 Dec 86   1:30p  4fd8 
  COMPARC.JCL        249     --       0%       249  28 Dec 86   1:31p  c134 
          ====  ========            ====  ======== 
  Total      7     82514             43%     47272   
     
     
    "Name" is simply the name of the file. 
     
    "Length" is the unpacked file length.  In other words, it is the number 
    of bytes of  disk  space  which the file  would  take  up  if  it  were 
    extracted. 
     
    "Date" is  the date  on  which  the file had  last  been  added  to the 
    archive. 
     
    "Total" is pretty obvious, I think. 
     
    "Stowage"  is  the compression  method used. The  following compression 
    methods are currently employed: 
     
                --          No compression. 
              Packed        Runs of repeated byte values are collapsed. 
             Squeezed       Huffman squeeze technique employed. 
             Crunched       Dynamic Lempel-Zev compression technique. 
             crunched       Old Style L-Z not supported in XARC4. 
     
    "SF" is the stowage factor. In other words, it is the percentage of the 
    file length which was saved by compression. The total stowage factor is 
    the stowage factor  for the archive as  a  whole, not counting  archive 
    overhead. 
     
    "Size now" is the number  of bytes  the file is occupying  while in the 
    archive. 
     
    "Time" is  the time of  last addition to the archive, and is associated 
    with the date of last addition. 
     
    "CRC" is  the  CRC-16 check value which  has been stored with the file. 
    Another CRC-16 value will  be  calculated when the file is extracted to 
    ensure  data   integrity.  There  is  no  especially  good  reason  for 
    displaying this value. 
     
    Note  that  you  can  pause the  display of a list by pressing shift @. 
    Pressing any key will resume the display.  Pressing  <BREAK> during the 
    display will exit to DOS. 
     
     
                                 XARC4 OPTIONS 
     
     
     
    This section describes  the options which are available  to modify  how 
    XARC4 works.  These  options can be combined with any of the  commands, 
    though the result may not always be something you'd want to do. 
     
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 8 
     
     
    DECRYPTION 
     
    Archive  entries may be decrypted by using the "G" (Garble) option. The 
    Garble option takes the remainder of the command string as the password 
    to use, so it must be the last option. 
     
     
    When you want to extract  a  file from an archive in which the password 
    "DEBRIS" had been used, you would type: 
     
                            XARC4 o:2gdebris junk:1 
     
     
    The  password  you  supply is  used  to decrypt  the  archive  entry by 
    performing an  exclusive OR between  each  byte of the packed  data and 
    each  byte of the password. The password can be any length, and each of 
    its  bytes is  used in rotation. The password is converted to uppercase 
    before it is  used, so it is not case sensitive.  Since the  encryption 
    was performed on the packed data, it has no effect on stowage factors. 
     
    This is not a particularly sophisticated means of encryption, and it is 
    theoretically  possible to crack.   Still, since it is performed on the 
    packed data, the result should be quite sufficient for casual use. 
     
     
    It is possible to list  the  entries in an  encrypted archive using the 
    "L" and "V" commands without giving the password, but nothing else will 
    work properly. 
     
     
    It is advisable that you use this option sparingly, if at all.  If  you 
    should forget or mistype your password, it  is highly unlikely that you 
    will ever recover your data. 
     
     
    NEW LINE MODE: 
     
     
    XARC4  automatically removes line  feeds  after  carriage returns  when 
    extracting  files. These line feeds are a  normal part of  MS-DOS  text 
    files but just clutter up  a TRSDOS/LS-DOS file.  If you  would like to 
    keep the  line  feeds in  the  file, specify  a  "n"  to suppress their 
    removal on the command line as follows: 
     
                               XARC4 o:2n junk:1 
     
     
                         MS-DOS ARC File Compatibility 
     
     
     
    XARC4  uses the exact same conventions in its file extractions  as does 
    MS-DOS  XARC for  archives  created by MS-DOS ARC using version  5.0 or 
    greater.  The current  version  of MS-DOS  ARC  is  5.1.2.  Any archive 
    created by version 5.1.2  can have all of its files extracted by XARC4. 
    If you are attempting to extract from old archives, however, XARC4 will 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 9 
     
    not  extract  files using the  "old"  version of Lempel-Zev  crunching. 
    These files  can  be  identified in  a "L"  or "V" listing as  having a 
    "Stowage" of "crunched". Note the small letter "c". The current version 
    of  Lempel-Zev,  called Dynamic Lempel-Zev  is  indicated  by the large 
    letter  "C" as in  "Crunched". XARC4 will skip a "crunched" file (after 
    letting you know why it can't be extracted). 
     
    Since archives created by ARC4  are compatible  with MS-DOS  ARC, they, 
    too, can be extracted by XARC4. 
     
     
                               OVERLAYS IN XARC4 
     
     
    XARC4 uses a  number of overlay files  which are  read in by the "root" 
    file  XARC4/CMD.  Overlays  were used  in  order to obtain the  maximum 
    amount  of memory in the Model 4. The overlays  and their functions are 
    described below: 
     
    OVERLAY                      FUNCTION 
    -------                      -------- 
    XARC4/CMD                    "root" calls in overlays performs I/O 
    XARC4HLP/OVR                 Displays the help screen 
    XARC4DLZ/OVR                 Performs the Dynamic L-Z decompression 
    XARC4USQ/OVR                 Performs Unsqueezing 
    XARC4LST/OVR                 Lists contents of archives 
     
    It  is conceivable that an error  could occur while  using one of these 
    overlays. Since  the errors are somewhat cryptic, the  following should 
    be of help: 
     
    ERROR #                      MEANING 
    -------                      ------- 
    10                           can't open overlay file 
    20                           can't read overlay header record 
    30                           invalid header record 
    40                           overlay area overlaps with heap 
    50                           error reading overlay 
     
    The above error numbers would be displayed in a message like: 
     
                      Error # loading overlay <filespec> 
     
     
                               TECHNICAL SUPPORT 
     
     
     
    It  should be  obvious by now that SEA cannot provide technical support 
    even though they wrote the original  XARC that  XARC4 is based on. They 
    do not have access to the source code nor do they have a Model IV Tandy 
    computer.  XARC4  is NOT in the public domain and can  only be modified 
    with  the  permission  of  the original  copyright  holders  of ARC and 
    myself. Except for providing contributions or obtaining a noncommercial 
    or a commercial  site  license,  you should not  be contacting SEA  for 
    support for XARC4. 
     
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 10 
     
    Please address all inquiries concerning XARC4 technical matters to: 
     
                                David Huelsmann 
                                3308 Delamar NE 
                             Albuquerque, NM 87107 
     
                                     or to 
                                    SSE BBS 
                                (505) 821-7379 
                             1200/2400 bps anytime 
                          300 bps after 2400 Mountain 
     
                                     or to 
                              CIS ppn 71525,1363 
     
     
                                VERSION NUMBERS 
     
     
    The version number of XARC4 is given as follows XX.YY.ZZ. 
     
    XX = a major revision, such as adding a new packing algorithm. 
     
    YY = a minor revision that is not essential, but which may be desired. 
     
    ZZ = a trivial revision that will probably only be  desired by specific 
    individuals or by die-hard "latest version" fanatics. 
     
    XARC4  also displays its  date of last  edit.    A change  of  the date 
    without  a  corresponding change in version  number  indicates a  truly 
    trivial change, such as fixing a spelling error. 
     
     
                         COMMON QUESTIONS AND ANSWERS 
     
     
     
    Q: Can I use XARC4 to distribute my public domain or freeware program? 
     
    A: Yes, of course. 
     
     
    Q: Can I use XARC4 to distribute my commercial software package? 
     
    A: Yes. Please contact SEA for a commercial distribution license. 
     
     
    Q: I'm a commercial user. Why should I pay for freeware that others get 
    for free? 
     
    A: Because you cannot  credibly plead poverty.  Freeware, all freeware, 
    is an attempt to develop a  new marketing  channel to  the  benefit  of 
    everyone.   You can still "test drive" freeware for a short period, but 
    if you decide to use it in your business, then you should pay for it. 
     
     
    Q: How can I get the latest version of XARC4? 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 11 
     
     
    A: XARC4 updates  are distributed through normal freeware channels, and 
    by FidoNet. 
     
     
                               REVISION HISTORY 
     
     
    Version 01.00.00 02/14/87 of XARC4/CMD was released on 02/15/87. 
     
     
                          PROGRAM HISTORY AND CREDITS 
     
     
    XARC4/CMD  is   based  on  ARC  Version  5.1.2  of  System  Enhancement 
    Associates. Thom Henderson graciously  gave his permission to release a 
    modified version  of  XARC for  the TANDY Model  IV users  on 12/11/86. 
    While  a  number  of  changes and adaptations  had to  be made  to  the 
    existing source code (including eliminating some features like  the old 
    Lempel-Zev crunching), the majority of the program is the original work 
    of SEA, now, almost 2 years old. The following is  the program  history 
    and credits, as described by SEA, for MS-DOS ARC: 
     
    In its  short life thus far,  ARC has astounded us with its popularity. 
    We first wrote it in March of 1985 because we wanted an archive utility 
    that used a distributive  directory  approach,  since this  has certain 
    advantages over the  more popular central directory approach. We  added 
    automatic  squeezing in  version  2 at the  prompting of  a friend.  In 
    version 2.1  we added the code to test for the best compression method. 
    Now  (in  October of 1985) we find that our humble  little program  has 
    spread across the country, and seems to have become a new institution. 
     
    We are thankful for the support and appreciation we  have received.  We 
    hope that you find this program of use. 
     
     
    If  we have  achieved greatness, it is  because we have stood  upon the 
    shoulders of giants. Nothing is created as a thing unto itself, and ARC 
    is  no  exception. Therefore,  we  would like  to  give  credit  to the 
    following people, without whose efforts ARC could not exist: 
     
     
      Brian W.  Kernighan and  P. J. Plauger, whose  book  "Software Tools" 
    provided many of  the ideas  behind the distributive directory approach 
    used by ARC. 
     
    Dick Greenlaw, who  wrote  the  public  domain SQ and USQ programs,  in 
    which the Huffman squeezing algorithm was first developed. 
     
    Robert J. Beilstein, who adapted SQ and USQ to Computer Innovations C86 
    (the language we use), thus providing  us  with  important parts of our 
    squeezing logic. 
     
    Kent Williams, who graciously allowed us  to use his  LZWCOM and LZWUNC 
    programs  as a basis  for  our Lempel-Zev  compression  logic,  and who 
    continues to make valuable contributions. 
     
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 12 
     
    David Schwaderer,  whose article in  the April 1985  issue  of  PC Tech 
    Journal  provided us  with  the logic for  calculating the CRC  16  bit 
    polynomial. 
     
    Terry A. Welch, whose article "A Technique  for  High Performance  Data 
    Compression", IEEE  Computer Vol 17  No  6  (June 1984)  seems  to have 
    started all the research on Lempel-Zev coding. 
     
    Spencer W.  Thomas, Jim McKie,  Steve Davies, Ken Turkowski,  James  A. 
    Woods, and Joe Orost, who are the authors of the UNIX compress utility. 
     
     
    And many, many others whom we could not identify. 
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 13 
     
     
                                 SITE LICENSE 
     
     
    Corporate users may wish to obtain a site license for the use of XARC4. 
    Please use the order  form in this manual to order a site license. Site 
    licenses are granted as of when SEA receives your payment. License fees 
    vary depending on the number of computers on which XARC4 will  be used, 
    as follows: 
     
                           1 to  9 copies  $35 each 
                           10 to 24 copies  $25 each 
                           25 to 49 copies  $20 each 
                           50 to 99 copies  $15 each 
                      over  99 copies  $1500 one time fee 
     
     
    The following page is a site license agreement, which should be  signed 
    and sent with your payment when ordering a commercial site license. 
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 14 
     
     
                            Site License Agreement 
     
    The use of XARC4 in a commercial environment or government organization 
    is granted under the following terms: 
     
    1.   Payment  of the  license fee must  be  made to System  Enhancement 
    Associates. The fee is based  on the  number of computers which will be 
    used to run XARC4, as follows: 
     
                           1 to  9 copies  $35 each 
                           10 to 24 copies  $25 each 
                           25 to 49 copies  $20 each 
                           50 to 99 copies  $15 each 
                      over  99 copies  $1500 one time fee 
     
    2.   You may  use XARC4  on  the number  of  computers  included in the 
    license fee. If you have paid the  fee for over 99 copies, then you may 
    use XARC4 on any number of computers within your organization. 
     
    3.  You  may make copies of the program, in  its original,   unmodified 
    form,  without restriction.  You may distribute  these  copies  of  the 
    program without restriction. 
     
    4.   If  these copies are distributed outside of your organization, you 
    have no obligation to control the use of those copies which are outside 
    of your organization. 
     
    5.   You may  make  copies of  the program  documentation,  in both its 
    printed form and machine readable form, without restriction. 
     
    6.  You may use future versions of XARC4 under this license. 
     
    7.   You may NOT modify the program  or  charge a  fee  for copying  or 
    distributing the program. 
     
    8.  It is your  responsibility  to  make the  necessary  copies and  to 
    deliver them to the computers which they will be used on. 
     
     
     
    I agree to abide by the terms and conditions of this license. 
     
     
     _____________________________         __________________________ 
             Signature                             Date 
     
    _____________________________ 
      Name (please print or type) 
     
    _____________________________ 
             Title 
     
    _____________________________ 
           Company 
     
     
 
 
 
 
 
 
                                   XARC4/CMD 
    Documentation                                          Page 15 
     
                                  ORDER FORM 
     
     
     
    Check which items you wish to purchase: 
     
    (_) Noncommercial license for the use of XARC4. 
     
    (_) Commercial license for the use of XARC4 on ___ computers (see price 
    schedule and terms on preceding page). 
     
    (_) Payment of $_____ is enclosed (check or money order). 
     
    (_) Please charge $_____ to my (_) Visa or (_) MasterCard: 
     
    Card number: ______________________________ 
     
    Expiration date: __________________________ 
     
    _______________________________________________ 
    Name 
     
    _______________________________________________ 
     
     
    _______________________________________________ 
    Address 
     
    ______________________   ________  ____________ 
    City                     State     Zip 
     
    _______/_______ 
    FidoNet address 
     
     
    Send this completed form to: 
     
                         System Enhancement Associates 
                                 21 New Street 
                               Wayne, NJ   07470 
     
    For commercial site license orders, please enclose a signed copy of the 
    site license agreement. 
     
     
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  