home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / RAVIP103.ZIP / RAVIP.DOC < prev    next >
Encoding:
Text File  |  1995-10-07  |  45.0 KB  |  973 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.              ──██████╗─────█████╗───██╗───██╗───██╗───██████╗───
  10.            ────██╔══██╗───██╔══██╗──██║───██║───██║───██╔══██╗────
  11.          ──────██████╔╝───███████║──██║───██║───██║───██████╔╝──────
  12.        ────────██╔══██╗───██╔══██║──╚██╗ ██╔╝───██║───██╔═══╝─────────
  13.      ──────────██║──██║───██║──██║───╚████╔╝────██║───██║───────────────
  14.   ─────────────╚═╝──╚═╝───╚═╝──╚═╝────╚═══╝─────╚═╝───╚═╝──────────────────
  15.                        RemoteAccess VIP Caller Detector
  16.                                - Version 1.03 -
  17.  
  18.                      (c)Copyright 1994,1995 - Rand Nowell
  19.                           RaLin Enterprises Software
  20.  
  21.                          "Putting Bits Together" (tm)
  22.  
  23.                   Coding and Documentation by: Rand Nowell
  24.  
  25.                          ┌─────────────────────────┐
  26.                          │ Sysop Operations Manual │
  27.                          └─────────────────────────┘
  28.  
  29.  
  30.                            - Table Of Contents -
  31.  
  32.                  Legal Stuff.............................1
  33.                     Copyright
  34.                     Distribution
  35.                     Disclaimer
  36.                     Addendum
  37.                  System Requirements.....................2
  38.                  What's it do?...........................2
  39.                  Multi-Language Support..................4
  40.                  Start-Up Commands.......................5
  41.                  Multi-Node Systems......................5
  42.                  Configuration...........................6
  43.                  Door Hangup Configuration..............10
  44.                  Double Checking Drops..................11
  45.                  User Name Validation...................12
  46.                  The Message File.......................12
  47.                  Message Macros.........................12
  48.                  Testing RAVIP..........................13
  49.                  Registration...........................13
  50.                  Credits................................14
  51.                  Support................................14
  52.                  Alternate control files................15
  53.                     /F Switch   /D Switch
  54.                  Alternate Configuration Files..........15
  55.                  Author Contact.........................16
  56.  
  57. RaVip 1.03          RemoteAccess VIP Caller Detector                Page   1
  58.  
  59. ┌─────────────────────────────────────────────────────────────────────────────┐
  60. │≡≡≡ COPYRIGHT ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  61. └─────────────────────────────────────────────────────────────────────────────┘
  62.         RaVip,   the   program   and   documentation,   are   Copyrighted 
  63.         (C)1994,1995  work  of  Rand Nowell dba  Ralin  Enterprises.  All 
  64.         rights  are reserved. Copying, duplicating, selling or  otherwise   
  65.         distributing  this  product except as noted in  the  Distribution 
  66.         Policy below is a violation of Federal Copyright Law.
  67.  
  68. ┌─────────────────────────────────────────────────────────────────────────────┐
  69. │≡≡≡ DISTRIBUTION ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  70. └─────────────────────────────────────────────────────────────────────────────┘
  71.         
  72.         1. Feel free to distribute the Shareware version of this                 
  73.            program as often as you like to any interested parties. 
  74.            Distribution to  Electronic Bulletin Boards is encouraged.
  75.            
  76.         2.  Please  do  not  distribute  this  program  without  all  the          
  77.         original related files such as documentation, readme files, 
  78.         registration forms etc.
  79.         
  80.         3. Please distribute ONLY the original authenticated ZIP
  81.            format file.
  82.            If your system maintains a different archive type, please wrap
  83.            this -AV'd ZIP within your preferred type. Thank You.
  84.            
  85.         4.  Please  obtain our written permission  before  including  the 
  86.         program with any "bundled" software packages.
  87.            
  88.         5. Please do not accept payment for the program; a copying fee of 
  89.         $5.00 per diskette may be charged by a non-profit user-group.
  90.            
  91.         6. Please do not alter the program or documentation in any way.
  92.         
  93.         7. Individuals, groups, vendors or other software distribution
  94.         companies which market diskettes containing shareware or                
  95.         test-drive   evaluation   programs,  for  profit,   must   obtain                
  96.         written permission from RaLin Enterprises prior to  distribution. 
  97.         This will insure that you have the most current copy.
  98.  
  99.  
  100. ┌─────────────────────────────────────────────────────────────────────────────┐
  101. │≡≡≡ *** DISCLAIMER *** ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  102. └─────────────────────────────────────────────────────────────────────────────┘
  103.             This  program  is supplied "as is" without  warranty  of  any 
  104.         kind.  The entire risk of using, and results from the use of,  is 
  105.         assumed  by  you  the  user.  You assume  all  costs  of  repair, 
  106.         servicing and corrections stemming from the use of this program.
  107.         Rand Nowell and/or RaLin Enterprises, or any other associated
  108.         company of the program author will not be held liable for any
  109.         damages from the use of this program. No warranties are expressed 
  110.         or implied.
  111.         ********************************************************************
  112.         To  the  original  licensee  of the  REGISTERED  version  of  the      
  113.         program, RaLin Enterprises DOES warrant that the program  disk(s) 
  114.  
  115.                                                     
  116.  
  117.  
  118. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  2
  119.  
  120.         on  which  the  program  is recorded, be  free  from  defects  in 
  121.         material  and  workmanship  under normal use and  service  for  a 
  122.         period of (90) ninety days from date of delivery as evidenced  by 
  123.         your  receipt.  Our entire liability and  your  exclusive  remedy 
  124.         shall  be  replacement  of the defective  disk  not  meeting  the 
  125.         standards of this limited warranty.
  126.         And  in no case shall exceed the cost of reimbursement of  monies 
  127.         paid for program registration.
  128.          
  129.         The  Author is not obligated to produce further versions of  this 
  130.         program.  The  Author  also reserves the  right  to  convert  any 
  131.         SHAREWARE  program,  to that of COMMERCIAL status  without  prior 
  132.         notice.
  133.  
  134. ┌─────────────────────────────────────────────────────────────────────────────┐
  135. │≡≡≡ Legal Addendum ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  136. └─────────────────────────────────────────────────────────────────────────────┘
  137.         Though no registration fee is required for RaVip, and you may use 
  138.         it   and    distribute  it  to  whom  you  will,   the   program, 
  139.         documentation  and  any supporting files are copyrighted  by  the 
  140.         author.  You do not OWN the program, you own the right to use  it 
  141.         as  you  see  fit. "Except", that your  right  does  NOT  include 
  142.         modifications,  de-compiling,  reverse engineering of   the  code 
  143.         etc.
  144.           Please read FREEWARE.DOC
  145.  
  146. ┌─────────────────────────────────────────────────────────────────────────────┐
  147. │≡≡≡ System Requirements ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  148. └─────────────────────────────────────────────────────────────────────────────┘
  149.         
  150.              o  DOS Version 3.3 or greater
  151.              o  RemoteAccess BBS System
  152.              o  RemoteAccess Log File
  153.              o  Hudson or JAM message base
  154.              o  150k Available memory at runtime
  155.              o  If you want a Netmail message, requires a Frontend Mailer
  156.  
  157.  
  158. ┌─────────────────────────────────────────────────────────────────────────────┐
  159. │≡≡≡ What's It Do? ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  160. └─────────────────────────────────────────────────────────────────────────────┘
  161.            RaVip  will read your defined RA.LOG, and scans for  the  user
  162.         name. This user name is compared against those listed in VIP.CTL.
  163.         If  the  name is a match, a message is generated  to  the  Sysop, 
  164.         telling  you  the  caller logged on. Other  information  is  also 
  165.         retrieved in this case,  the following is checked, and noted:
  166.              Did upload(s)
  167.              Did download(s)
  168.              Posted Local message
  169.              Posted Echo message
  170.              Dropped carrier
  171.              Browsed files
  172.              Read messages
  173.              DOS external, Doors etc.
  174.              IEMSI connection established
  175.  
  176.                                                     
  177.  
  178.  
  179. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  3
  180.  
  181.              Log Off time
  182.         
  183.            The above information is rather generic, ie: it does not  list 
  184.         each  door  run,  file area browsed etc.  It  just  gives  you  a 
  185.         general idea of what the user did during their visit.
  186.         
  187.            But the number of times the action was done is listed.
  188.         
  189.            When   a  VIP  caller  is  detected,  RaVip   writes   certian 
  190.         information  to its logfile, RAVIP.LOG, in the same directory  as 
  191.         RAVIP.EXE, or a directory+filename you define in RAVIP.CFG
  192.         
  193.            Some  DOOR's allow hangup from within, this will cause  RA  to 
  194.         report  Carrier lost....  RAVIP allows you to configure up to  10 
  195.         strings that your Door(s) write to the log, if they do, and  will 
  196.         ignore  the  dropped  carrier if one is found,  in  the  last  RA 
  197.         session entries.
  198.            This  is a carry over from RADCD, its only value in  RaVip  is 
  199.         that  the  Dropped Carrier notations will not be  made.   Just  a 
  200.         feature I left active.
  201.         
  202.            Instructions for configuring doors that do NOT write to the RA 
  203.         log are included.  More is explained later.
  204.         
  205.            The  log file is read "backwards", so even if it is HUGE,  the 
  206.         minimum  number of lines is read, stopping at the the first  line 
  207.         entered for the callers session.  Goes very quick!
  208.  
  209.            RAVIP would normally be called from the "After BBS" section of 
  210.         your batch file.
  211.         
  212.            The  message is posted in the message area you specify in  the 
  213.         config file.  Both JAM and HUDSON bases are supported.
  214.         
  215.            If  you run a mailer, you can optionaly have RaVip send you  a 
  216.         local Netmail message, rather than to the messagebase.
  217.         
  218.            The  program also obtains the user name, the log  entry  date, 
  219.         and the time of the session, from the RA.LOG
  220.         
  221.            The User Name is displayed on the screen at run time, the time 
  222.         and date, along with the name are used when posting a message  to 
  223.         the user.
  224.            These, along with other strings may be included in the message 
  225.         you create by way of "Macro Characters", more on that later....
  226.         
  227.            If  you  have  used my  program  RADCD,  RemoteAccess  Dropped 
  228.         Carrier  Detector,  you will see many simularities  between  that 
  229.         program and RaVip.
  230.         Much  of  the same code has been used, with  some  modifications.  
  231.         Also, this doc file is a modified version of the RADCD.DOC.
  232.         
  233.            Yeah..... I'm lazy.... <grin>
  234.  
  235.  
  236.                                                     
  237.  
  238.  
  239. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  4
  240.  
  241. ┌─────────────────────────────────────────────────────────────────────────────┐
  242. │≡≡≡ Multi Language Support ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  243. └─────────────────────────────────────────────────────────────────────────────┘
  244.  
  245.        RaVip supports multi-language useage for its messaging text.
  246.  
  247.        It has always allowed you to create the initial portion of the Sysop
  248.        message, which meant you could write it in your native language.
  249.        But the "activity messages" were in English.
  250.  
  251.        As of Version 1.03, the activity listing can be edited by the sysop.
  252.  
  253.        This is done via the use of a Text File, and the built in language
  254.        compiler in RaVip.
  255.  
  256.        You create (or edit the supplied ENGLISH.LFT) then run it through the
  257.        RaVip language compiler, which produces LANG.VIP, a binary type
  258.        language file, which is read when RaVip needs to write the Sysop
  259.        Message.
  260.  
  261.        This file is ONLY read when it is time to write a VIP Caller Report.
  262.  
  263.        The language text to compile is a simple text file, one "prompt"
  264.        per line.  You may have comments AT THE BEGINNING of the text file,
  265.        comments being any line starting with a semi-colon. (;)
  266.  
  267.        Once the Prompt Lines start, there should be no blank lines or
  268.        comment lines.
  269.  
  270.        Currently, there must be 14 lines of text.  And they must be in a
  271.        specific order.  Text length cannot exceed 45 characters.  Anything
  272.        more than 45 characters will be truncated, and not displayed.
  273.  
  274.        The file ENGLISH.LTF is a SAMPLE file, and can be edited to your
  275.        native language.
  276.  
  277.        The file VIPLANG.TXT, shows the prompt text in the order required,
  278.        with an explanation of what each line reports on.
  279.        In many cases, a (##) will be displayed after the text, ie:
  280.        Downloaded File(s) (3)
  281.  
  282.        To compile your own language file, do the following:
  283.  
  284.         1.  Edit ENGLISH.LTF as you wish, it can be renamed, or copied
  285.             to another filename.
  286.  
  287.         2.  Run RAVIP LANG <filename>
  288.             Where <filename> is the name of the TEXT file you wish to
  289.             compile. (without the brackets)  an example would be
  290.             RAVIP LANG english.ltf
  291.  
  292.         RaVip will compile and create LANG.VIP, any existing LANG.VIP
  293.         is over written.
  294.  
  295.        Perhaps in the next release, you may be allowed to also edit
  296.        the text that is displayed to the screen, and written to the
  297.  
  298.                                                     
  299.  
  300.  
  301. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  5
  302.  
  303.        log file if used.
  304.  
  305. ┌─────────────────────────────────────────────────────────────────────────────┐
  306. │≡≡≡ Start Up Commands ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  307. └─────────────────────────────────────────────────────────────────────────────┘
  308.         
  309.           The program requires a minimum of 120k available.
  310.           150k free memory is reccomended.
  311.         
  312.         There  are  8  startup switches/commands that may  be  used  with
  313.         RaVip.
  314.         
  315.         Switches  must  be preceded by either the  minus(-)  or  slash(/) 
  316.         character, and must be separated by at least one space.
  317.         
  318.         -?  Will display a help screen Menu.
  319.         
  320.         -P   Will invoke a 10 second pause at programs end, allowing  you 
  321.         to read the screen display.  ANY key press during the pause, will 
  322.         clear the pause and terminate the program.
  323.         
  324.         -L  Will disable all logging of errors to RAVIP.LOG
  325.         This  has  been  included  as a startup  switch,  rather  than  a        
  326.         config  item, so you may TEST the program without creating a  log 
  327.         file.
  328.         
  329.         -T   Run  RaVip  in  full  use mode,  but  do  NOT  generate  any        
  330.         message.
  331.         
  332.         -C    Tell RaVip to use a different Config file.  Full  path  and 
  333.         filename  must be supplied.  If none given then RaVip  looks  for 
  334.         RAVIP.CFG in the same directory as RAVIP.EXE   
  335.         
  336.         -F  Specify alternate control file to be read, instead of VIP.CTL 
  337.         This allows you to check specific users activities, without  them 
  338.         being in your VIP file.
  339.         The full path\filename should directly follow the "F" without any 
  340.         spaces. EXAMPLE: /FC:\TEMP\USER.CHK
  341.         
  342.         -D  Esentially the same as /F, but puts RaVip in "Dual Mode".
  343.         You can specify an alternate file, just as above, and RaVip  will 
  344.         scan it right after checking the VIP.CTL file.
  345.         You should NOT give the VIP.CTL name, it is ALWAYS scanned.
  346.  
  347.         -LANG <filename>
  348.         Compiles <filename> into LANG.VIP, the binary datafile of message
  349.         text lines.
  350.  
  351. ┌─────────────────────────────────────────────────────────────────────────────┐
  352. │≡≡≡ Multi-Node Systems ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  353. └─────────────────────────────────────────────────────────────────────────────┘
  354.         
  355.            RaVip supports RA running in a multi-node setup, pertaining to 
  356.         the LOG file it scans, and also for the RAVIP.LOG.
  357.         
  358.  
  359.                                                     
  360.  
  361.  
  362. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  6
  363.  
  364.            RaVip  will  read the CONFIG.RA file to get the log  name.  It 
  365.         first searches the current directory for CONFIG.RA, if not  found 
  366.         it  looks  in  the directory specified with  the  RA  environment 
  367.         variable.
  368.         
  369.            So  lets say you run a 3 line system, and for each load up  of 
  370.         RA  you set the TASK environment variable, we'll use  set  TASK=2 
  371.         for our example.
  372.            When  you have the TASK variable set, you can use RA's  "node" 
  373.         macro (*N) in the log name, ie: F:\RA\NODE*N\RA*N.LOG
  374.            RaVip  will  scan the log name, and insert  the  current  task 
  375.         number  into the log name.  Given our example TASK=2,  the  above 
  376.         would parse out to:  F:\RA\NODE2\RA2.LOG - make sense??
  377.         
  378.            This also applies to the RaVip logfile, in the config, you can 
  379.         insert  the  *N aywhere in the logfile name/location,  and  RaVip 
  380.         will substitute the current TASK number.
  381.         
  382.            The  TASK  variable is usually associated with  those  systems 
  383.         that  run a Frontend Mailer. As RaVip does not require a  mailer, 
  384.         and  some Sysops use  the NODE variable, support has  been  added 
  385.         for this also.
  386.            RaVip  will first look for the environment variable  TASK,  if
  387.         not found it will try NODE, if neither is found, then the  system 
  388.         is  not running Multi-Node.  If both happen to be set,  the  TASK 
  389.         variable WILL be used, NOT the NODE one.
  390.         
  391.            Remember, RaVip looks for a CONFIG.RA in the current directory 
  392.         FIRST,  then looks at the environment specified directory. So  if 
  393.         you  use multiple CONFIG.RA files for different nodes, make  sure 
  394.         you are in the proper NODE directory before RaVip is called!
  395.         
  396.            RaVip  not  only  obtains your configured  RA  log  file  from 
  397.         CONFIG.RA, it also gets the location of your Message Base,  which 
  398.         holds  the  User file. If you store your  USERS.BBS  and  related 
  399.         Index files elsewhere, then we have a problem!!  Doing this  does 
  400.         not  mean  you  should  NOT configure  the  MsgBase  location  in 
  401.         RAVIP.CFG!!   The  location of the MsgBAse in CONFIG.RA  is  ONLY 
  402.         used to determine the location of the USERS.BBS file!!
  403.         
  404. ┌─────────────────────────────────────────────────────────────────────────────┐
  405. │≡≡≡ Configuration ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  406. └─────────────────────────────────────────────────────────────────────────────┘
  407.         
  408.         The configuration file is a simple text file named RAVIP.CFG.
  409.         It MUST reside in the same directory as RAVIP.EXE.
  410.         A sample file has been included, you can edit it to reflect  your 
  411.         system and preferred message base info etc., and use it.
  412.         
  413.         Comment lines may be included, by having the FIRST character,  in 
  414.         column ONE be a semi-colon (;). These lines are ignored by RaVip.
  415.         
  416.         Currently, there are seven (7) items to be configured for RaVip.
  417.         The configuration is done with "keywords", and the format is
  418.            KEYWORD=VALUE
  419.  
  420.                                                     
  421.  
  422.  
  423. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  7
  424.  
  425.         
  426.            The equals sign (=) is the separator, and is used by RaVip  to 
  427.         determine  just where the VALUE starts, the VALUE being what  you 
  428.         want used as the configuration item.
  429.         
  430.            There may be spaces between the KEYWORD, EQUALS, and VALUE  if 
  431.         you  need  them  for  readability, myself,  I  always  keep  them 
  432.         together.
  433.         
  434.            Keywords  may be in any or mixed case.
  435.            Values,  for  the  most part can be any case,  but  Sysop  and 
  436.         System will be displayed AS THEY ARE LISTED.
  437.         
  438.            The  "VALUES"   for each NoDrop keyword, MUST be in  the  same 
  439.         case they will be found in the log, for them to work.
  440.         
  441.         KEYWORDS:
  442.         MsgBase -
  443.               If you want the message posted to the HUDSON message  base, 
  444.         then this  would be the full path to the Hudson Message Base,  ie 
  445.         F:\RA\MSGBASE
  446.         
  447.               If you want it posted to a JAM message file, this should be 
  448.         the full path to the JAM message file: ie F:\JAM\GENERAL 
  449.         NO  extension to the JAM filename, it is  automatically  handled.  
  450.         This  document will not go  into details about the JAM  messaging 
  451.         system.
  452.         
  453.         BaseType-
  454.         If the message is going to the HUDSON base, this should be "H",
  455.         without the quotes.
  456.         If going to JAM, it should be "J", again, no quotes.
  457.         
  458.         Board-
  459.         Only  required if posting to the HUDSON base, this should be  the 
  460.         NUMBER  of  the  message area, and it MUST be ZERO  padded  to  3 
  461.         digits.
  462.               Ex: Message Area #4 would be 004
  463.         
  464.         Echo-
  465.         If the message board you want the Sysop Notification written  to, 
  466.         is  an  EchoMail area, make sure this KeyWord is  defined.   This 
  467.         will  tell  RaVip to handle the message  properly,  for  possible 
  468.         EchoMail exporting by your tosser. 
  469.         
  470.         Sysop-
  471.         This  is your Sysop Name. It does NOT need to match RA's,  it  is 
  472.         only  used in conjunction with the message macros, so it  can  be 
  473.         anything  you wish.  BUT!!! Be advised,  the name  as  configured 
  474.         here,  is  used  in the message header TO:  so if  you  use  a  a 
  475.         different  name than is configured in your BBS/Reader  etc.  make 
  476.         sure that they will recognize this name.
  477.         
  478.         System-
  479.         The  name  of  your  BBS.   Again, it  need  not  match  that  in 
  480.  
  481.                                                     
  482.  
  483.  
  484. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  8
  485.  
  486.         CONFIG.RA.
  487.         
  488.         LogFile-
  489.         You may specify, with this keyword, where RaVip will write the
  490.         logged   information.   If   not  defined,  the   log   will   be 
  491.         written/maintained in the same directory as RaVip.EXE.
  492.         The RA variable *N may be used anywhere in the log path\name,  it 
  493.         will be substituted with the current TASK/NODE value.
  494.         
  495.         CopyCol-
  496.         RaVip is hard-coded to start scanning for the user name in column 
  497.         #13  of the logfile. This is correct for the COMPACT  log  format 
  498.         specified in RACONFIG.  If you use a different format, you should 
  499.         load  a copy of the log into a Text Editor, and count over,  from 
  500.         column one, to the FIRST character of the user name.  This column 
  501.         number is what you will specify as the CopyCol value.
  502.         
  503.         ExpandedLog-
  504.         If you are using the EXPANDED log format, you should include  the 
  505.         line: ExpandedLog
  506.         This will tell RaVip to scan for the Date and Time of a Drop
  507.         differently than for the default Compact log style.
  508.         
  509.         It  also determines how RaVip knows it has read all  the  current 
  510.         session  information,  as the line containing the dashes  is  not 
  511.         written to an expanded format log.
  512.         You  do NOT need any config keyword for Compact format, as it  is 
  513.         the  default, if ExpandedLog is not used.
  514.         
  515.         NoDrop-
  516.         This  config  item  is  supplied with  RADCD,  while  not  really 
  517.         required  in RAVIP, I have left it available. All it will  do  is 
  518.         keep RaVip from noting that your caller dropped carrier. No other 
  519.         dropped carrier action is taken at all.
  520.         
  521.         Specifies a string (case sensitive) that RaVip should watch  for, 
  522.         to reverse the Carrier lost action, if the carrier was  correctly 
  523.         dropped from within a Door Program.
  524.         
  525.         You  may  configure up to 10 strings, each one  preceded  by  the 
  526.         keyword NoDrop.  Each Keyword/Value on its own line.
  527.         
  528.         The  string may be up to 25 characters in length. Any  more  will 
  529.         not  be stored. The 25 character length allows you  to  configure 
  530.         sec levels to ignore Dropped Carrier for, ie: 
  531.         NoDrop=Security level 50
  532.         
  533.         NOTE!!
  534.         
  535.         RaVip now fully supports InterZone Netmail.  If you need to  have 
  536.         the Sysop Notification sent to another Node/Zone etc, it may  now 
  537.         be done accuratly.
  538.         
  539.         
  540.         Net- 
  541.  
  542.                                                     
  543.  
  544.  
  545. RaVip 1.03          RemoteAccess VIP Caller Detector                Page  9
  546.  
  547.         This  tells RaVip to generate a Netmail message  in  the  defined 
  548.         Mail Directory.  If you do NOT want netmail, then do not activate
  549.         this item.
  550.         Example:  Net
  551.  
  552.         Crash/Kill -
  553.         For Netmail, when sending OUT of your system.
  554.         CRASH sets Crash priority on the message.
  555.         KILL  sets the Kill/Sent flag.
  556.         By default, if not defined, messages are NOT Crash and
  557.         NOT Kill/Sent
  558.               Do not use these if you are having the netmail message
  559.               sent to YOU on YOUR system, ie: Locally.
  560.  
  561.  
  562.         Semaphore-
  563.         If you run a multi-node system  and RaVip might  be  called  from
  564.         another  node, while  your   mailer  is  running  on  another,
  565.         you  can give  a path+filename here,  and RaVip will  modify  the
  566.         time/date (re-write) it, so your mailer  will scan  for  new mail.
  567.         This is mainly for Netmail support.
  568.         For FrontDoor, this might be  C:\FD\FDRESCAN.NOW
  569.  
  570.         FromNode-
  571.         Here  you  give your Fidonet (or other) Netmail address.  If  you 
  572.         have specified "Net", then be sure this, and MailPath are defined
  573.         correctly.   Points are supported.
  574.               Example:  FromNode=1:161/710
  575.  
  576.         NOTE:
  577.         Actually, you should ALWAYS define your own Node Address here, as
  578.         it is ALSO used for EchoMail.
  579.         
  580.         ToNode-
  581.         If  you  are having the message generated only for  use  on  your 
  582.         system, then this should be the same as that for FromNode.
  583.         But if you need the message sent to another system, you can  give 
  584.         its address here.
  585.         
  586.         MsgTo-
  587.         When sending this message, you may want it addressed to a 
  588.         Co-Sysop, whether he be on your system, or at another address.
  589.         If  so, supply their name here.  If MsgTo is not supplied with  a 
  590.         name, the message is addressed to the Sysop name given earlier.
  591.          
  592.         MailPath-
  593.         Where  the  *.MSG should be written, ie: where your  mailer  will 
  594.         look  for  these messages. Currently the TASK/NODE variables  are 
  595.         NOT supported.
  596.               Example:  MailPath=E:\FD\MAIL
  597.         
  598.         
  599.         Some NOTES on configuration:
  600.         
  601.         1) You may NOT set Echo and Net together. If both are set,  RaVip 
  602.  
  603.                                                     
  604.  
  605.  
  606. RaVip 1.03          RemoteAccess VIP Caller Detector                Page 10
  607.  
  608.         aborts with an error message.
  609.         
  610.         2)  You can, and should define ALL message options,  ie:  Message 
  611.         Board,  Board  Number,  To/From Nodes etc.  Which  are  used,  is 
  612.         determined by the NET and ECHO keywords.
  613.         Having  both  setups defined, makes it a simple QUICK  matter  to 
  614.         instanly   change   from  having  the  message  going   to    the 
  615.         messagebase, or to a Netmail .MSG.  All you have to do is comment 
  616.         out one keyword, and un-comment the other.
  617.         
  618.         3) The generated message is ALWAYS from the Program, ie: 
  619.         From: RaVip 1.02
  620.         
  621.         
  622.         4)  Comments may be inserted in the config file, any line with  a 
  623.         semi-colon  (;) in column ONE, of the line is ignored.   You  can 
  624.         use the ; to comment  out a keyword also.   
  625.         
  626.         5)  You  can have multiple configurations.  An alternate  can  be 
  627.         used  via the -C switch.  But you should configure  a  "STANDARD" 
  628.         format, and save it as RAVIP.CFG in the EXE's directory.
  629.         
  630. ┌─────────────────────────────────────────────────────────────────────────────┐
  631. │≡≡≡ Door Hangup Configuration ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  632. └─────────────────────────────────────────────────────────────────────────────┘
  633.         NOTE on NoDrop.  (READ THIS.....)
  634.         
  635.         Some  doors  that allow Hanging up, or Quitting the BBS,  do  NOT 
  636.         write to the RA.LOG, in fact probably most, do not.
  637.         You  can  still work with these, all you need to do,  is  in  the 
  638.         batch file that runs the door, after the command to run the door, 
  639.         insert a line that will ECHO a line of text to the RA.LOG
  640.         
  641.         Example:
  642.         Suppose  you run a door called FileVu.  In your batch  file,  you 
  643.         might have, FILEVU C:\RA\DORINFO1.DEF  as the command to run  the 
  644.         program. All you need to do is insert a line such as:
  645.          echo User ran FileVu >> C:\RA\RA.LOG
  646.         right after the program call, when the program exits, it  returns 
  647.         to the batch file, and this line is processed.
  648.         
  649.         Then in RAVIP.CFG, include a line that looks like: NoDrop=FileVu
  650.         Now, when RaVip sees the Carrier lost line in RA.LOG, it sets the 
  651.         Dropped Carrier flag, but as soon as it finds your created value, 
  652.         "FileVu" it turns OFF the flag.
  653.         
  654.         Another use for the NoDrop, is if you want callers with a certian 
  655.         security level to not receive messages for dropping  carrier..... 
  656.         RA writes a line "Security level #####,"  to the log file,  where 
  657.         ##### can be any defined sec level up to the maximum allowed.
  658.         So  if  you  want  to allow callers with sec  level  50  to  drop 
  659.         carrier,  simply  add  a line such as  NoDrop=Security  level  50   
  660.         to the RaVip.CFG
  661.         
  662.         You  can,  if you wish, insert a username here  also.
  663.  
  664.                                                     
  665.  
  666.  
  667. RaVip 1.03          RemoteAccess VIP Caller Detector                Page 11
  668.  
  669.         
  670.         Of course, an even simpler method is to use the RA Menu Command,
  671.         Type 47 to generate a log entry, either just before or after  the 
  672.         Door  Command is given. It involves a little more menu work,  but 
  673.         may be more desirable for some. 
  674.         
  675.         
  676.         Two important things to remember, the search for a value is  done 
  677.         case SENSITIVE, it MUST match exactly what is written to the log, 
  678.         and listed in the config file.
  679.         The other is, when you create your own, as in our example,
  680.         you  use  the DOUBLE > character ">>" after the string  to  Echo.  
  681.         This  is the command to DOS, to APPEND the line to the log  file.  
  682.         If you forget, you will OVER-WRITE your RA.LOG
  683.         
  684.         Also,  some doors do not allow a caller to hangup, but  DO  allow 
  685.         the Sysop to hangup on the user. These should also be configured, 
  686.         if you think you may hangup on the user in the door.
  687.         
  688.         Another  note, when RaVip detects dropped carrier, it  writes  to 
  689.         the screen,
  690.         !  User dropped carrier
  691.         If  it  finds  an "Authorized Door hangup string"  it  will  then 
  692.         display  ~  Authorized Door Hangup : "value",
  693.         where value is the NoDrop string you supplied, and RaVip found.
  694.         
  695.         If it all sounds confusing, that's because it can be so!! <smile>
  696.         Some  experimentation  on your part will get you up  and  running 
  697.         smoothly in no time.
  698.  
  699. ┌─────────────────────────────────────────────────────────────────────────────┐
  700. │≡≡≡ Double Checking Drops ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  701. └─────────────────────────────────────────────────────────────────────────────┘
  702.         
  703.         RaVip  insures that the User Name in the logfile is not  garbage, 
  704.         as  can  happen  with bad EMSI calls or  a  user  sending  escape 
  705.         sequences  trying to crash the system.  If carrier is  lost,  but 
  706.         the  user name does not contain an Alpha character  starting  the 
  707.         name,  its  considered  an incomplete call,  and  no  message  is 
  708.         posted.
  709.         
  710.         When  you run a frontend mailer, the connection can sometimes  be 
  711.         broken  during  the time the mailer is loading RA. In  this  case 
  712.         there  is no name for RaVip to check, usually there will only  be 
  713.         two  lines in the log, the first line RA writes, and the  second, 
  714.         Lost carrier.
  715.         
  716.         So  RaVip  counts the important lines read from the log,  and  if 
  717.         this  count  is  NOT  greater than 3,  then  RaVip  displays  the 
  718.         message:  "BLAM!!  Never even got started..." and  also  logs  an 
  719.         appropriate  line  to  its  log  file.   This  is  considered   a 
  720.         connection that never got established.
  721.         
  722.  
  723.  
  724.                                                     
  725.  
  726.  
  727. RaVip 1.03          RemoteAccess VIP Caller Detector                Page 12
  728. ┌─────────────────────────────────────────────────────────────────────────────┐
  729. │≡≡≡ User Name Validation ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  730. └─────────────────────────────────────────────────────────────────────────────┘
  731.  
  732.         Along  with checking for garbage strings, and empty names,  RaVip 
  733.         will    actually "validate" the username against the  user  index 
  734.         file.
  735.         Say  a  user does not enter a complete name the first  time,  but 
  736.         does  on the   second attempt.  The first name will  be  invalid, 
  737.         and  so not used. Once  the name has been validated  against  the 
  738.         User index file, it is the one used.
  739.         
  740.         While the program is running, all names found are displayed, even 
  741.         the   ones not found in index file, mispellings etc.....  If  the 
  742.         name  does  not   exist, it has the message "NOT  IN  USER  FILE" 
  743.         displayed after the name.
  744.         
  745.            The next release may do a bit towards eliminating the  display 
  746.         of names if they are not validated.
  747.         
  748. ┌─────────────────────────────────────────────────────────────────────────────┐
  749. │≡≡≡ The Message File ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  750. └─────────────────────────────────────────────────────────────────────────────┘
  751.         
  752.         Using your favorite Ascii Text Editor, you can create the message 
  753.         that will be sent to you if a VIP caller is detected.
  754.         
  755.         It MUST be named RAVIP.MSG, and MUST reside in the same directory 
  756.         as RAVIP.EXE
  757.         
  758.         NOTE:   What  =you= create, is the text that is  written  at  the 
  759.         beginning  of the message to you.  The callers activity is  added 
  760.         to your message.
  761.         
  762.         See  the  sample RAVIP.MSG included to give you an  idea  of  the 
  763.         suggested format.
  764.         
  765.         You  can  make  use of several macros to  insert  text  into  the 
  766.         message when it is posted.  A sample RAVIP.MSG has been provided.
  767.  
  768. ┌─────────────────────────────────────────────────────────────────────────────┐
  769. │≡≡≡ Message Macros ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  770. └─────────────────────────────────────────────────────────────────────────────┘
  771.  
  772.         The  most important thing to remember about using the macros,  is 
  773.         that each one MUST be preceded by the at character (@).
  774.         
  775.         If  you  wish to use a literal @ in the message  text,  you  must 
  776.         precede it with another @.  So the line "Call me @ 223-4455" must 
  777.         be written as  "Call me @@ 223-4455"
  778.         
  779.         If  you use an incorrect macro, or use the @ alone,  the  "macro" 
  780.         will  be   replaced with "<MACRO ERROR @??????>"  where  ????  is 
  781.         replaced with the problem character(s).
  782.         
  783.         If  you use our RASIS program, then you should be  familiar  with 
  784.  
  785.                                                     
  786.  
  787.  
  788. RaVip 1.03          RemoteAccess VIP Caller Detector                Page 13
  789.  
  790.         how  the   message macros work, they are done in the  exact  same 
  791.         manner.
  792.         
  793.         There are currently eight (8) macros available for you to use:
  794.         
  795.              @F  - Users first name only
  796.              @L  - Users last name only
  797.              @N  - Users full name
  798.              @D  - Log entry date
  799.              @T  - Log entry time
  800.         
  801.         The values for the above 5 macros are taken from the RA log file.
  802.         
  803.              @B  - The BBS name
  804.              @S  - The Sysop name
  805.         
  806.             These 2 are taken from the RAVIP.CFG file.
  807.         
  808.              @C  - Name of control file used for user check
  809.         Supplied on the command line with the /D "Dual Mode" switch, or
  810.         /F Alternate File switch, or VIP.CTL if running in normal mode.
  811.  
  812. ┌─────────────────────────────────────────────────────────────────────────────┐
  813. │≡≡≡ Testing  RaVip ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  814. └─────────────────────────────────────────────────────────────────────────────┘
  815.  
  816.            You  can  add  your  name to the  VIP.CTL  file,  or  use  the 
  817.         Alternate  File switch /F, supplying a filename of the  alternate 
  818.         file, that contains your name in it.
  819.         
  820.            See Startup Commands -> /F above for syntax and info.
  821.         
  822.         Then  log  on locally and perform a few normal  user  activities.  
  823.         Then run RaVip and see what happens.
  824.         
  825.         Another option to a local logon, is to just edit the RA.LOG,  and 
  826.         insert your name in place of the last caller.
  827.         
  828. ┌─────────────────────────────────────────────────────────────────────────────┐
  829. │≡≡≡ Registration ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  830. └─────────────────────────────────────────────────────────────────────────────┘
  831.  
  832.           RaVip is fully functional as you have received it.  If you find 
  833.         it a useful tool, I would request that you send me $5.00 or  more 
  834.         though.   This  will  show me that the  program  is  being  found 
  835.         useful,  help  defray the cost of developing  utilities  such  as 
  836.         RaVip,  and induce me to continue development of RaVip and  other 
  837.         RA utilities.
  838.         
  839.         Also, should registration become required, in a future version, you
  840.         will not have to pay another fee to receive your code, at a higher
  841.         cost.  (Only applies to full $5 donation)
  842.  
  843.           Please read FREEWARE.DOC
  844.         
  845.  
  846.                                                     
  847.  
  848.  
  849. RaVip 1.03          RemoteAccess VIP Caller Detector                Page 14
  850.  
  851.         If you simply cannot afford even $5.00, send me what you can,  if 
  852.         you can send any at all.  And if you're just plain destitute,  at 
  853.         least fill out the Reg Form included, and send it to me, just  so 
  854.         I know where the program is going etc.
  855.         
  856.           I think you will find RaVip worth a little donation to further
  857.           development.
  858.  
  859. ┌─────────────────────────────────────────────────────────────────────────────┐
  860. │≡≡≡ Credits ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  861. └─────────────────────────────────────────────────────────────────────────────┘
  862.  
  863.         Special  Thanks  to  Eric Staufer of The  Concession  Stand,  for 
  864.         inital testing of RaVip 1.0 - Big Help!
  865.         
  866.         RemoteAccess  - Andrew Milner, Wantree Development.
  867.         
  868.         JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
  869.                               Mats Birch, Mats Wallin.
  870.                                 ALL RIGHTS RESERVED.
  871.         
  872.         RaVip  uses  modified message base code from Mark  May,  Mythical 
  873.         Kingdom Software.
  874.         
  875.         RaVip is programmed under TP 7.0, Borland International
  876.         
  877.         Any other products mentioned are Copyrighted by their  respective 
  878.         authors.
  879.         
  880.            Some of the key folks in Beta Bashing RaVip 1.01:
  881.            Donald Hinkle, Bob DaCastello, John Coleman.... Thank's Guys!!
  882.  
  883. ┌─────────────────────────────────────────────────────────────────────────────┐
  884. │≡≡≡ Support ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  885. └─────────────────────────────────────────────────────────────────────────────┘
  886.         
  887.         Though its Free, I fully support it.
  888.         Bug  reports  are  appreciated,  feature  requests  are   usually 
  889.         implemented.
  890.         
  891.         If  you send a netmail message with question/suggestion  or  bug, 
  892.         you  will  need to POLL for your reply.  It would  help,  if  you 
  893.         would TELL me if you  wish a reply.  If you do, it will be placed 
  894.         on HOLD for your call. If you   do not pick it up within a  week, 
  895.         it will be sent ROUTED.
  896.         
  897.         I  have been replying to many questions via CRASH mail, I  cannot 
  898.         afford  to  continue this practive, the program =IS=  free  after 
  899.         all, and does NOT pay for these LD return messages. <grin>
  900.         
  901.         Of  course,  I  could make registration  required,  then  I  will 
  902.         continue crash replies.... <chuckle>
  903.  
  904.  
  905.  
  906.  
  907.                                                     
  908.  
  909.  
  910. RaVip 1.03          RemoteAccess VIP Caller Detector                Page 15
  911. ┌─────────────────────────────────────────────────────────────────────────────┐
  912. │≡≡≡ Alternate Configuration File ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  913. └─────────────────────────────────────────────────────────────────────────────┘
  914.  
  915.    You can use another configuration file, rather than the default
  916.    RAVIP.CFG, by giving the filename on the RaVip command line, with the
  917.    /c switch.   Follow the /c immediatly with the filename, ie:
  918.  
  919.    RAVIP /cg:\data\noonvip.cfg
  920.  
  921.    No spaces between switch and filename.
  922.  
  923.  
  924. ┌─────────────────────────────────────────────────────────────────────────────┐
  925. │≡≡≡ Alternate Control Files ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  926. └─────────────────────────────────────────────────────────────────────────────┘
  927.    You can specify an alternate Control file to use instead of VIP.CTL,
  928.    or, use another in ADDITION to using VIP.CTL.
  929.  
  930.    /fSPECIAL.CTL  will use the file SPECIAL.CTL instead of VIP.CTL
  931.                   to see if the caller was a VIP
  932.  
  933.   /dSPECIAL.CTL   will scan BOTH VIP.CTL and SPECIAL.CTL to check for
  934.                   a VIP caller.  This is called Dual Mode, and is
  935.                   shown being ON in the RaVip Display Screen when used.
  936.  
  937.  
  938.    No spaces between switch and filename.
  939.  
  940.  
  941.  
  942.  
  943. RaVip 1.03          RemoteAccess VIP Caller Detector                Page 16
  944.  
  945. ┌─────────────────────────────────────────────────────────────────────────────┐
  946. │≡≡≡ Author Contact ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  947. └─────────────────────────────────────────────────────────────────────────────┘
  948.  
  949.          I hope you find RaVip useful, and would appreciate hearing  from 
  950.         you if you do. I can be reached at the following:
  951.         
  952.          Echo Areas:
  953.          Fidonet  - RA_UTIL, RA_SUPPORT, SHAREWAR, DOORS, PASCAL
  954.         
  955.          Netmail  - FIDO= 1:215/710
  956.         
  957.          BBS      - 1-510-226-7731
  958.          Voice    - 1-510-651-6177
  959.          Internet - ralin@msn.com (subject to change)
  960.                     NOTE:  We may soon have our own DOMAIN for the
  961.                     internet, "RALIN.COM" when this happens, notification
  962.                     will be posted in the Echos.
  963.  
  964.          Mail     - Rand Nowell
  965.                     RaLin Enterprises
  966.                     4641 Wheeler Dr. Fremont, Ca. 94538-1937
  967.         
  968. ┌─────────────────────────────────────────────────────────────────────────────┐
  969. │≡≡≡ eof RAVIP.DOC  ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡│
  970. └─────────────────────────────────────────────────────────────────────────────┘
  971.                                                                  
  972.  
  973.