home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / utils / arj / rearj.doc < prev    next >
Text File  |  1991-09-23  |  23KB  |  615 lines

  1.  
  2.  
  3.  
  4.  
  5.      User's Manual for the REARJ archive conversion program, September 1991
  6.  
  7.  
  8.  
  9.     REARJ software and manual copyright (c) 1991 by Robert K Jung.
  10.     All rights reserved.
  11.  
  12.     REARJ version 2.21 release
  13.  
  14.  
  15.  
  16.      INTRODUCTION:
  17.  
  18.      REARJ is an archive conversion program designed to facilitate the
  19.      conversion of LZH, ZIP, PAK, ARC, DWC, HYP, LZS, and ZOO archives to
  20.      the ARJ format.  In addition, this converter has been designed to
  21.      convert to any of the aforementioned archive formats.
  22.  
  23.  
  24.      MAJOR FEATURES:
  25.  
  26.      Supports all major archiver programs (PAK, LHARC, PKZIP, ZOO, ARJ,
  27.      PKPAK, DWC, HYPER, LARC, LHA).
  28.  
  29.      Supports file attributes within archives.
  30.  
  31.      Supports directories within archives.
  32.  
  33.      Supports converting archives within archives (ZIPs in a ZIP).
  34.  
  35.      Ensures reliable archive conversion with a file count and total size
  36.      check.
  37.  
  38.      Supports the conversion of archives on diskettes.
  39.  
  40.      Supports the use of virus checkers and BBS ad removers.
  41.  
  42.      Supports absolute pathname extraction using the /w option.
  43.  
  44.      Supports pathnames with drive letters.
  45.  
  46.      Is command line driven.
  47.  
  48.      Supports recursive scanning through subdirectories.
  49.  
  50.      Optional logging of conversions.
  51.  
  52.      Simulation option.
  53.  
  54.      ********************
  55.      * WORDS OF CAUTION:*
  56.      ********************
  57.  
  58.      If you plan to convert many archives at one time, it is STRONGLY
  59.      suggested that you make a backup of your hard disk.  This is a wise
  60.      precaution to take any time that you make major modifications to data
  61.      on your hard disk drive.
  62.  
  63.      The standard REARJ conversion DOES NOT convert any archive comments
  64.      and volume labels.  They will be lost.
  65.  
  66.      Versions of LHA before 2.13 using the "x" command do not return an
  67.      error when encountering a DISK FULL situation.  This will cause data
  68.      loss!!!  You should scan the log file after a conversion to look for
  69.      any major archive size differences.
  70.  
  71.      The new ZOO 2.10 may also not indicate a DISK FULL situation.  I have
  72.      also noted that ZOO 2.10 sometimes skips extracting certain files.
  73.  
  74.      Directory support for PAK archives has been removed because PAK may
  75.      skip path extractions without returning an error.
  76.  
  77.      If the archives you are converting will ONLY extract to absolute
  78.      paths, you must use the /w option to set the working directory to an
  79.      empty root directory such as a RAMDRIVE.  This will allow extraction
  80.      to the root.
  81.  
  82.      REARJ and the archiver executables must be located in the DOS PATH
  83.      directories. This is due to REARJ creating and using a temporary
  84.      directory.
  85.  
  86.      If you have changed the MS-DOS switch character from "/" to another
  87.      character via an undocumented MS-DOS interrupt or the TurboC
  88.      setswitchar() function, REARJ may not work properly with the default
  89.      REARJ.CFG configuration file.
  90.  
  91.      The most thorough testing was done with ARJ as the target format and
  92.      ZIP as the original format.  In any case, you should verify that the
  93.      extract commands of your favorite archive formats in the configuration
  94.      file are correct.    The extract commands are the most important to get
  95.      right because REARJ has a built-in verification procedure to ensure
  96.      that the ADD commands executed properly.
  97.  
  98.      Be sure you have enough disk space on your working directory to
  99.      extract the largest archive that you want to convert!!!
  100.  
  101.  
  102.      The versions of archivers tested:
  103.  
  104.      ARJ   1.00, 1.10, 2.00, 2.10, 2.20, 2.21
  105.      LHA   2.12, 2.13
  106.      PAK   2.51
  107.      PKZIP 1.10
  108.      PKPAK 3.61
  109.      ZOO   2.01, 2.10
  110.      DWC   A5.01
  111.      LARC  3.33
  112.      HYPER 2.5
  113.  
  114.  
  115.      INSTALLATION:
  116.  
  117.      Copy REARJ.EXE and REARJ.CFG to one of the DOS PATH directories.  They
  118.      do not have to be placed in the same directory.  The PATH directories
  119.      are usually set by the PATH command in your AUTOEXEC.BAT file.
  120.  
  121.      Be sure the archivers and virus scanner are installed in a DOS PATH
  122.      directory.
  123.  
  124.      This version assumes that you have the new SCAN version 80 and uses
  125.      the new option /sub to scan subdirectories.
  126.  
  127.  
  128.      OPERATION OF REARJ:
  129.  
  130.      REARJ will build a temporary directory in the current directory and
  131.      extract the archive(s) to this directory.    REARJ will then build the
  132.      target archive(s) with the files in this directory.  If the target
  133.      archiver does not support reading of hidden or system files, REARJ
  134.      will reset those bits and then re-archive the files without those
  135.      attributes.  If the original archive has directories in it, REARJ will
  136.      extract it with full paths and re-archive it with full paths if the
  137.      target archiver supports directories.  In this case, if the archiver
  138.      does not support directories, REARJ will skip converting this archive.
  139.  
  140.      If the "/a" option has been selected, REARJ will execute REARJ to
  141.      convert any internal archives of the same type to the target format.
  142.      Any "/s" option will be carried over to the recursive REARJ command.
  143.  
  144.      As an extra test, REARJ will count the files extracted from the
  145.      original archive and total their sizes.  Then REARJ will extract the
  146.      new archive and count the files and total the sizes.  If the count and
  147.      size do not match, REARJ will skip converting the archive.
  148.  
  149.      REARJ assumes that the supported archivers will pass a non-zero error
  150.      code when there is an operation failure.
  151.  
  152.  
  153.      COMMAND SYNTAX:
  154.  
  155.      REARJ [switch options] filespec(s) or wildspec(s)
  156.  
  157.      You can specify one or more filespecs on the command line.  These
  158.      filespecs can have paths and wildcards.  Up to 100 filespecs can be
  159.      accepted by REARJ.  If you specify *.* as a wildspec, REARJ will look
  160.      at all filenames, but will skip those filenames not ending in standard
  161.      archive suffixes.    If you specify the /r switch, REARJ will look for
  162.      filenames matching the filespec(s) in the current directory and all
  163.      subdirectories of the current directory.
  164.  
  165.      The switch options and filespecs can be entered in any order.  REARJ
  166.      uses the default MS-DOS switch character "/".  REARJ uses the Turbo
  167.      C++ function getswitchar() to determine the MS-DOS switch character.
  168.      If the switch character is "-", REARJ will translate any UNIX style
  169.      pathnames to MS-DOS syntax ("dir/file" to "dir\file").
  170.  
  171.  
  172.      SWITCH OPTIONS:
  173.  
  174.      /a - convert archives within archives
  175.  
  176.       This option causes REARJ to recursively execute REARJ to convert
  177.       any archives of the original type found within the original
  178.       archive (ex. ZIPs within a ZIP).  This option requires additional
  179.       memory to execute successfully.
  180.  
  181.       You may specify the type of internal archive to convert with the
  182.       "/a" option.
  183.  
  184.       Examples:  REARJ *.zip /aLZH    convert only internal LZH archives.
  185.              REARJ *.zip /a*    convert any internal archive.
  186.  
  187.       If you use the "/a*" option, you may need to also specify "/u"
  188.       because of nested archives of the target type.
  189.  
  190.       NOTE!!!  When using the "/a" option, REARJ.EXE and REARJ.CFG must
  191.       be installed in a DOS PATH directory because the recursive REARJ
  192.       will be executed within a temporary directory and NOT in the
  193.       original directory.
  194.  
  195.      /b - execute command before extracting files
  196.  
  197.       This option is used to specify a DOS command to be executed before
  198.       extracting the original archive.
  199.  
  200.       In addition, REARJ passes the name of the original archive to
  201.       this command as a command line argument when executing it.  This
  202.       may cause a problem with DOS commands that expect no arguments.
  203.       A workaround would be to install the DOS command in a batch file.
  204.  
  205.       This feature is to allow the user to prep the environment before
  206.       extracting the archive.  This can be used to prep for archive
  207.       comments or volume labels, etc.
  208.  
  209.      /c - execute command on extracted files before counting them
  210.  
  211.       This option is used to specify a DOS command to be executed upon
  212.       the extracted files before REARJ counts them for later
  213.       verification.  This is to allow executing a DOS or batch command
  214.       to clean up the extracted files (remove BBS advertisements, etc).
  215.       REARJ does not check for any returned error code from the
  216.       executed command.
  217.  
  218.       In addition, REARJ passes the name of the original archive to
  219.       this command as a command line argument when executing it.  This
  220.       may cause a problem with DOS commands that expect no arguments.
  221.       A workaround would be to install the DOS command in a batch file.
  222.  
  223.      /d - delete the original archive
  224.  
  225.       This option causes REARJ to delete the original archive after a
  226.       successful conversion to the target format.  This option will NOT
  227.       delete read-only archives.
  228.  
  229.      /e - do not return error if no archives were found
  230.  
  231.       This option is used by the internal recursive REARJ.    This option
  232.       will cause REARJ to return a zero exit code if no matching
  233.       archives were found.    Usually, REARJ returns a non-zero exit
  234.       code for this condition.
  235.  
  236.      /f - convert diskette archives
  237.  
  238.       This option is used to facilitate the conversion of archives on a
  239.       diskette.  If you do not have sufficient space on the diskette to
  240.       keep the original archives, you MUST specify the "/d" option as
  241.       in "REARJ A:*.zip /f /d".
  242.  
  243.       This option causes REARJ to build the target archive in the
  244.       CURRENT directory (not the working temporary directory).  After
  245.       verification, REARJ will, if specified, delete the original
  246.       archive and then copy the new archive to the diskette.  You
  247.       should make sure that the current directory does not contain any
  248.       archives before executing REARJ.
  249.  
  250.      /i - check program integrity
  251.  
  252.       This option causes REARJ to validate the REARJ program on disk.
  253.       If you are using a pre-3.0 MS-DOS revision, you will have to
  254.       specify the full program name as in "REARJ /i\util\rearj.exe".
  255.  
  256.      /l - write conversion data to log file
  257.  
  258.       This option causes REARJ to open a log file and record each
  259.       successful conversion in the log file.  The default log file name
  260.       is REARJ.LOG.  You can specify the log file name as in
  261.       "REARJ /lfilename *.ZIP".  If the log file already exists, REARJ
  262.       will append logging data to it.
  263.  
  264.      /o - overwrite existing target archive
  265.  
  266.       This switch is used to delete already existing target archives.
  267.       This is not used for updating archives.  Use the /u option for
  268.       updating an archive.
  269.  
  270.      /q - query for each archive to convert
  271.  
  272.       This switch causes REARJ to pause and prompt the user for
  273.       permission to convert individual archives.  Note that REARJ will
  274.       not prompt when skipping archives.
  275.  
  276.      /r - recurse through subdirectories
  277.  
  278.       This switch causes REARJ to look for archives in all included
  279.       subdirectories as well as in the current directory.  This switch
  280.       allows the user to convert all archives on a hard disk with one
  281.       command.
  282.  
  283.      /s - skip verify of file count and total size
  284.  
  285.       Skip the overhead of the file count and total size verification
  286.       process.  This verification costs an extra extraction, but this
  287.       check is worth the time, especially when converting a large
  288.       number of archives.
  289.  
  290.      /t - specify the target archive type
  291.  
  292.       The default target archive format is normally ARJ.  This can be
  293.       changed by building an external REARJ.CFG file.  The first
  294.       archive type is always the default format.  To override the
  295.       default format, the user can specify the /t switch as in
  296.       "REARJ *.ZIP /tlzh".    The previous example has specified that LZH
  297.       is the target format.
  298.  
  299.      /u - allow update of archive with backup
  300.  
  301.       This switch is used to re-archive an archive, possibly to take
  302.       advantage of improved compression.  The original archive is
  303.       backed up by renaming it with the backup suffix which by default
  304.       is "BAK".  You may specify another backup suffix with the /u
  305.       option as in "REARJ *.ARJ /uar$" where the backup suffix is
  306.       "ar$".  Since this option creates a brand new archive, archive
  307.       comments will be lost.  Do NOT specify a "." in the suffix.
  308.  
  309.      /v - execute configured command on extracted files
  310.  
  311.       This switch is used to execute a configure command on the files
  312.       extracted from the original archive.    The intent is to allow
  313.       virus scanning of the archive contents.  The command must be
  314.       specified in the REARJ.CFG file.
  315.  
  316.       The command may be placed in the REARJ.CFG file by inserting one
  317.       line ahead of the archive commands.  The line must start with the
  318.       word "VIRUS" followed by a blank and the external command.
  319.  
  320.       Example:  VIRUS scan /nomem *.*
  321.  
  322.       If the invoked command returns a non-zero error code, REARJ will
  323.       skip the conversion of that archive and log the error as code 13.
  324.  
  325.       REARJ *.* /v
  326.  
  327.      /w - set working directory
  328.  
  329.       By default, REARJ creates a temporary working directory in the
  330.       current directory.  This option allows you to specify the working
  331.       directory.  The working directory must be EMPTY when invoking
  332.       REARJ.  This directory is used to hold the extracted files.
  333.       This is NOT considered the current directory for /f use.
  334.  
  335.       Example:  REARJ *.* /wd:\
  336.  
  337.       This option helps solve the absolute pathname extraction problem
  338.       that some archivers have.  If you set the working directory to an
  339.       empty root directory, the archiver can extract to the root and
  340.       REARJ will be able to find all of the files to re-archive them.
  341.       However, this option will NOT work for internal archives that
  342.       extract to absolute paths.
  343.  
  344.      /x - exclude filenames or wildnames from the conversion process
  345.  
  346.       You can exclude one or more files from the conversion process.
  347.       The filenames can contain wildcards.
  348.  
  349.       REARJ *.ZIP /xONE.ZIP /xTWO.ZIP
  350.  
  351.      /z - simulate conversion process
  352.  
  353.       This switch causes REARJ to simulate the conversion process.    No
  354.       archives will be extracted, built, or deleted.
  355.  
  356.  
  357.      EXAMPLES:
  358.  
  359.      REARJ *.ZIP           this converts all ZIP files in the current
  360.                    directory to ARJ files.
  361.  
  362.      REARJ *.ZIP *.ARC           this converts ZIP and ARC files to ARJ
  363.                    files.
  364.  
  365.      REARJ SOFT.ZIP           this converts only SOFT.ZIP to SOFT.ARJ.
  366.  
  367.      REARJ A:*.ZIP /f /d       convert ZIPs on A drive with deletion of
  368.                    each original archive upon successful
  369.                    conversion.
  370.  
  371.      REARJ *.ZIP /d /l           this converts ZIP files with logging and
  372.                    deletion of each original archive upon
  373.                    successful conversion.
  374.  
  375.      REARJ *.ARC /r           this converts all ARC files in the current
  376.                    directory and in subdirectories of the
  377.                    current directory to ARJ files.
  378.  
  379.      REARJ SOFT.ARJ /tZIP       this converts SOFT.ARJ to SOFT.ZIP.
  380.  
  381.      REARJ *.ARJ /u           re-archive all ARJ archives.
  382.  
  383.      REARJ *.* /v /wd:\        re-archive all archives and execute
  384.                    configured command on extracted files
  385.                    using d:\ as the temp directory.
  386.  
  387.  
  388.      EXTERNAL CONFIGURATION FILE
  389.  
  390.      REARJ comes with a configuration file, REARJ.CFG, which supports
  391.      conversion between the ARJ, ARC, LZH, PAK, ZIP, DWC, LZS, HYP, and ZOO
  392.      formats.  The commands PKPAK and PKUNPAK are used for ARC files.  The
  393.      command LHA is used for LZH files.  You can change these defaults by
  394.      editing the configuration file.
  395.  
  396.      The format of the configuration file is fairly simple.
  397.  
  398.      The first line can optionally specify an external command to be
  399.      executed by REARJ when the "/v" option is selected.  This line must
  400.      start with the word "VIRUS" minus the quotes, followed by a space,
  401.      followed by the external command.
  402.  
  403.      Example:  VIRUS SCAN /nomem *.*
  404.  
  405.      If you do not want to configure this item, DO NOT insert a blank line.
  406.  
  407.      Each archive format requires four lines in the file.
  408.  
  409.      The first line is the format suffix.
  410.  
  411.      The second line is the archive ADD command with a %s in the place of
  412.      the archive name.    Any other percent signs in the command must be
  413.      preceded by "\" as in "\%".  The ADD command should support directory
  414.      inclusion and reading of hidden and/or system files.  REARJ will parse
  415.      this command line using the space character as the token separator.
  416.  
  417.      If your ADD command requires DOS piping as the ZOO archiver requires,
  418.      you must precede the ADD command with the text "COMMAND /C ".
  419.  
  420.      Example:  ARJ a -a -r -jt %s
  421.            COMMAND /C STUFF *.* | ZOO aI %s
  422.  
  423.      The third line is the archive EXTRACT command with a %s in the
  424.      place of the archive name.  Any other percent signs in the command
  425.      must be preceded by "\" as in "\%".  The EXTRACT command should
  426.      support directory recreation if the archive contains directories.
  427.      The extraction of directories must be to child directories within the
  428.      current directory.  REARJ will parse this command line using the space
  429.      character as the token separator.
  430.  
  431.      If your EXTRACT command requires DOS piping, you must precede the
  432.      EXTRACT command with the text "COMMAND /C ".  Beware that command exit
  433.      codes are not passed back to REARJ when using COMMAND /C.
  434.  
  435.      The fourth line contains the letters "A" and/or "D" or no letters.
  436.      The "A" stands for the ability to process files with the hidden and/or
  437.      system attribute.    The "D" stands for full support of directory trees
  438.      within archives.  No letters (blank line) stands for no support for
  439.      hidden or system files or for archive containing directories.
  440.  
  441.      There must be NO EXTRA blank lines or comments in the file.  You may
  442.      use leading blanks for clarity.
  443.  
  444.      The first format type declared in the configuration file is used by
  445.      REARJ as its default target format.   REARJ.CFG is currently setup
  446.      with ARJ as its default target format.
  447.  
  448.      The following is the current REARJ.CFG configuration:
  449.  
  450.      VIRUS scan /nomem *.*
  451.      ARJ
  452.       ARJ a -a+ -r+ -y+ -jt+ %s
  453.       ARJ x -y+ %s
  454.       AD
  455.      ZIP
  456.       PKZIP -a -r -p -wHS %s
  457.       PKUNZIP -d %s
  458.       AD
  459.      ARC
  460.       PKPAK -a %s
  461.       PKUNPAK %s
  462.  
  463.      LZH
  464.       LHA a /a+ /r+ /x+ %s
  465.       LHA x /a+ %s
  466.       AD
  467.      PAK
  468.       PAK a %s
  469.       PAK e %s
  470.       A
  471.      ZOO
  472.       COMMAND /C STUFF *.* | ZOO aI %s
  473.       ZOO x.// %s *
  474.       D
  475.      HYP
  476.       HYPER -a -r -p %s
  477.       HYPER -x -p %s .
  478.       AD
  479.      DWC
  480.       DWC a %s *.*
  481.       DWC e %s
  482.  
  483.      LZS
  484.       LARC a /r %s *.*
  485.       LARC e /x %s *.*
  486.       D
  487.  
  488.      If you use a different archiver program, you will need to either
  489.      rename the program to one of the supported ones or you will need to
  490.      modify the installed REARJ.CFG file.
  491.  
  492.      The new ZOO 2.10 archiver compresses tighter with the h option as
  493.      in "ZOO ahI %s".
  494.  
  495.      DWC does not allow duplicate filenames even within a directory
  496.      structure, so "D" is not set for DWC.
  497.  
  498.      PAK has demonstrated a problem with the /path option on certain PAK
  499.      archives.    PAK will sometimes skip extracting files without returning
  500.      a non-zero error code to REARJ.  Therefore, I have decided to remove
  501.      the directory support on PAK to prevent this problem.
  502.  
  503.      LARC may or may not work correctly for archives with directories.    I
  504.      was unable to stop LARC from querying on making directories.
  505.  
  506.      If your original archive format supports extraction to absolute
  507.      directory paths as opposed to relative directory paths and you have
  508.      such archives containing absolute paths, you should not put directory
  509.      extraction in the REARJ.CFG file unless you use the /w option to set
  510.      the working directory to an empty root directory.
  511.  
  512.      You can add comment handling to the ARJ command by adding the
  513.      "-zcomment.txt" option.  This is supported at ARJ 2.20 and above.
  514.  
  515.  
  516.      LOG FILE DATA
  517.  
  518.      When logging is enabled, REARJ will log the action on each selected
  519.      file.  For successful conversions, REARJ logs the date-time, target
  520.      archive type, original archive size, new archive size, bytes saved,
  521.      and original archive name.
  522.  
  523.      When selected files are skipped for any reason, REARJ will log an
  524.      entry in the log file (when logging is enabled) which specifies the
  525.      reason code for skipping the file.  The following are the codes:
  526.  
  527.      1    = File not found
  528.      2    = File is not a configured archive type
  529.      3    = Target archive already exists
  530.      4    = Not enough disk space
  531.      5    = User skipped or user did not select update option
  532.      6    = UNPACK error
  533.      7    = PACK error
  534.      8    = Target cannot support directories
  535.      9    = Wrong file count
  536.      10 = Wrong total size
  537.      11 = Internal archive REARJ error
  538.      12 = Rename archive error
  539.      13 = Invoked /v command error (found a virus?)
  540.  
  541.  
  542.      LICENSE POLICY:
  543.  
  544.      REARJ has an unusual license policy.
  545.  
  546.      For personal non-commercial use, the program REARJ may be freely used
  547.      only by ARJ users.  An ARJ user is one who uses ARJ on a regular
  548.      basis.  Others who wish to use REARJ must purchase a site license for
  549.      the ARJ package.
  550.  
  551.      Please refer to the LICENSE.DOC for more license information.
  552.  
  553.  
  554.      TECHNICAL SUPPORT:
  555.  
  556.      Please report any bugs.  I will TRY to fix them.
  557.  
  558.      I can be reached at:
  559.  
  560.      Robert Jung at Channel One BBS      (617) 354-8873
  561.      Join the mailbox conference with "j mailbox" to send email to me.
  562.  
  563.      Robert Jung at Bay State BBS      (617) 598-6646
  564.  
  565.      Robert Jung at The Black Depths BBS  (508) 427-5379
  566.  
  567.      Robert Jung at FIDONET address:  1:16/390.7
  568.  
  569.      Robert Jung in the ARJ (RIME/RELAYNET), COMPRESS (ILINK), LHARC /
  570.      COMPRESSIONS (SMARTNET), or ARCHIVERS (RIME/RELAYNET) echo
  571.      conferences.
  572.  
  573.      2606 Village Road West
  574.      Norwood, Massachusetts 02062
  575.      USA
  576.  
  577.      Internet address:    robjung@world.std.com  (Checked daily)
  578.  
  579.      Compuserve users can enter   >INTERNET: robjung@world.std.com
  580.      at the "Send to" prompt.  I prefer CompuServe users to send mail
  581.      to this address as opposed to my CompuServe userid below.
  582.  
  583.      CompuServe userid: 72077,445  (Checked infrequently)
  584.  
  585.  
  586.      HISTORY:
  587.  
  588.      2.21 - Added information about using "/u" when using "/a*".
  589.         Added information about LHA 2.13.
  590.         Delete temporary directory between conversions.
  591.         Removed PAK directory support because of a PAK bug/feature.
  592.         Changed REARJ.CFG to support Viruscan version 80.
  593.             Improved ctl break handling using PKZIP/UNZIP.
  594.  
  595.      1.30 - Added /w option.
  596.         Added /a* option to convert any type of archive within an
  597.         archive.
  598.         Added /b option.
  599.         Added /c option.
  600.         Added /f option for diskette archive conversion.
  601.  
  602.      1.21 - Added error message when executables are not in DOS PATH.
  603.         Added further tests to rename function to avoid bugs in Windows.
  604.         Added /v option to support virus scanning.
  605.         Allowed more heap space in link of REARJ.
  606.  
  607.      1.20 - Fixed path processing with drive letters.  Fixed alternate drive
  608.         processing.  Removed disk space checking.
  609.  
  610.         Fixed REARJ.CFG for LZH and HYP archives.
  611.         Added /u option.  Changed /o option.
  612.  
  613.      end document
  614.  
  615.