--::::::::::
--jpmobnch.pro
--::::::::::
-------- SIMTEL20 Ada Software Repository Prologue ------------
--                                                           -*
-- Unit name    : Benchmark
-- Version      : 1.0
-- Author       : WIS JPMO
--              : Washington, D.C.  20330
--              : Contact: Lt. Colonel Falgiano
--              : ESD/SCW
--              : Hanscom AFB, MA  01731
-- DDN Address  :
-- Copyright    : (c) 1985 
-- Date created : 1985
-- Release date : 1985
-- Last update  : 1985
-- Machine/System Compiled/Run on :
--                                                           -*
---------------------------------------------------------------
--                                                           -*
-- Keywords     : benchmarks
----------------:
--
-- Abstract     : This tool is a series of very simple benchmarks
----------------: which are used to test the validity of various
----------------: assumptions that one might make about the 
----------------: behavior of a compiler.  Probably all the 
----------------: implicit assumptions are valid, these tests
----------------: just check that something has not been 
----------------: overlooked that could severely distort 
----------------: detailed quantitative tests.  There should be
----------------: no significance given to the numerical results 
----------------: of these tests, they just provide a framework
----------------: for other tests.  There is not even a pressing
----------------: need to make sure of the status (or emptiness)
----------------: of the machine on which they are run, since
----------------: the desired comparison is one to another, not
----------------: to some absolute.
----------------:
----------------: This tool was developed as a precursor for 
----------------: the WMCCS Information System (WIS).  An
----------------: executable version of the tool has been 
----------------: demonstrated.  This source code has sub-
----------------: sequently been recompiled but has not under-
----------------: gone extensive testing.
----------------:
--                                                           -*
------------------ Revision history ---------------------------
--                                                           -*
-- DATE         VERSION AUTHOR                  HISTORY 
--1985          1.0     WIS JPMO                Initial Release
--                                                           -*
------------------ Distribution and Copyright -----------------
--                                                           -*
-- This prologue must be included in all copies of this software.
-- 
-- This software is copyright by the author.
-- 
-- This software is released to the Ada community.
-- This software is released to the Public Domain (note:
--   software released to the Public Domain is not subject
--   to copyright protection).
-- Restrictions on use or distribution:  NONE
--                                                           -*
----------------- Disclaimer ----------------------------------
--                                                           -*
-- This software and its documentation are provided "AS IS" and
-- without any expressed or implied warranties whatsoever.
--
-- No warranties as to performance, merchantability, or fitness
-- for a particular purpose exist.
--
-- Because of the diversity of conditions and hardware under
-- which this software may be used, no warranty of fitness for
-- a particular purpose is offered.  The user is advised to 
-- test the software thoroughly before relying on it.  The user
-- must assume the entire risk and liability of using this 
-- software.
--
-- In no event shall any person or organization of people be
-- held responsible for any direct, indirect, consequential
-- or inconsequential damages or lost profits.
--                                                          -*
----------------- END-PROLOGUE -------------------------------
--::::::::::
--jpmobnch.cmm
--::::::::::


                     Comments on Porting
                          Benchmark       
                         by WIS JPMO
                         to DEC Ada

                                                               Tool 37
                                                               October 4, 1985


COMPILATION
-----------
  A VMS command file was created from the ordered list of compilation
  units provided in BENCHSRC.DIS.

  We were able to recompile BENCHMARK with minor changes in two files.
  Compilation errors occurred due to packages that were "withed" but 
  not delivered with the source code, syntax errors in declarations 
  and compiler specific pragmas.  The following files were changed on 
  the lines indicated.

   1.  In file COMPM50.TXT
             lines 6, 7, 8, 9, 10, 20, 21, 22, 23 and 24 all references
             to library units COMPK26 through COMPK50 were deleted because
             they were not included in the source code and no reference
             was made to them in the documentation.  It is possible that
             these library units were part of another tool produced by 
             the same developer.  

             lines 15, 16, 17 and 18 were part of a continuous addition
             assignment to variable "L".  Compilation errors occurred 
             because each line ended ambiguously without a "+" sign to
 	     continue the addition statement.  A "+" sign was added to the 
             end of each line. 

   2.  In file  IMP.TXT
             lines 13, 14, 15, 16, 17, 18, 19 and 20 all "suppress" 
             pragma references were deleted because inclusion of 
             "pragma suppress" produced compiler errors stating that 
             "pragma suppress" was not supported by the implementation.

             lines 85 and 86 produced compilation errors due to references 
             made to "direct_io.count", without first instantiating DIRECT_IO. 
             These errors were resolved by including an instantiation
             of DIRECT_IO and using this instantiation to reference "count".

             lines 86 and 87, which contained "put" statements, would not 
             compile on the DEC compiler.  The parameters within the put 
             statements were "direct_io.count'last" and "text_io.count'last" 
             which both produced a value of type "direct_io.count" and 
             "text_io.count" respectfully.   These parameters required the 
             use of the generic package INTEGER_IO rather than TEXT_IO,
             because they were not of type "character" or "string".  Rather,
             they were a discrete type of type "count".  However, INTEGER_IO  
             had been instantiated with type "integer".  Further instantiations
             were added of type "direct_io.count" and "text_io.count".  
             These instantiations permitted the code to compile.  It was 
             also noted that the parameters of the "put" statement could 
             have first been converted to type "integer", thereby avoiding 
             the additional instantiations.  
            
             These errors may not have been recognized by the unvalidated 
             compiler on which the tool was developed.

EXECUTION
---------
  We were able to execute the BENCHMARK and it appeared to be in workable
  condition.  
--::::::::::
--jpmobnch.dis
--::::::::::
compa.txt
compb.txt
compc.txt
compd.txt
compe.txt
compf.txt
compg.txt
compk.txt
compk1.txt
compk2.txt
compk3.txt
compk4.txt
compk5.txt
compk6.txt
compk7.txt
compk8.txt
compk9.txt
compk10.txt
compk11.txt
compk12.txt
compk13.txt
compk14.txt
compk15.txt
compk16.txt
compk17.txt
compk18.txt
compk19.txt
compk20.txt
compk21.txt
compk22.txt
compk23.txt
compk24.txt
compk25.txt
compk50.txt
compl.txt
compm.txt
compm50.txt
compn.txt
compt.txt
compz.txt
imp.txt
--::::::::::
--jpmobnch.doc
--::::::::::

From:	MAILER         22-FEB-1985 13:13  
To:	WIS
Subj:	[Netmail From: court@mitre] BACKGROUND AND DATA ON LEVEL 6 ADA TESTS

Mail-From: ARPAnet host MITRE rcvd at Fri Feb 22 13:13-PST
Date: 22 Feb 1985 15:47:17 EST (Friday)
From: Terry Courtwright 
Subject: BACKGROUND AND DATA ON LEVEL 6 ADA TESTS
To: wis at nosc-tecr


----BEGINNING OF FORWARDED MESSAGES----
Date: 19 Feb 1985 11:48 PST
From: WWHITAKER@USC-ECLB.ARPA
Subject: BACKGROUND AND DATA ON LEVEL 6 ADA TESTS
To:   ALEXANDER@MITRE, COURT@MITRE


There are a series of very simple benchmarks called COMPA, COMPB, ... which
are used to test the validity of various assumptions that one might make 
about the behavior of a compiler.  Probably all the implicit assumptions
are valid, these tests just check that something has not been overlooked
that could severely distort detailed quantitative tests.  There should
be no significance given to the numerical results of these tests,
they just provide a framework for other tests.  There is not even a pressing
reason to make sure of the status (or emptiness) of the machine on which
they are run, since the desired comparison is one to another, not to
some absolute.


COMPA contains the minimal procedure framework surrounding 500 separate
      Ada declaration statements, each on a separate physical line,
      yielding 503 statements and 505 lines.

COMPB also has the 500 variables declared, but in one long Ada statement
      spread over 50 physical lines, for a total of 3 statements and 55 lines.

COMPC has the minimal framework with 500 executable assignment statements,
      5 per line, yielding 503 statements and 106 lines.

COMPD also has the 500 assignment statements, but they are placed 1 per line,
      yielding 503 statements and 506 lines.

COMPE is like COMPD, but interjects a comment line for every assignment,
      yielding 503 statements and 1006 lines.

COMPF has the same lines as COMPE, but all the comments are bunched together,
      it also has 503 statements and 1006 lines.

COMPG has the structure of COMPE, but is twice as long to test linearity,
      it has 1003 statements and 2006 lines.

COMPK is a single package containing 25 very small, but unique, packages.

COMPK1-COMPK25 are the same packages as are contained in COMPK, but as separate
      packages.

COMPL "with"s the COMPK package, and exercises a function from each of the
      included 25 packages.

COMPM "with"s the 25 separate COMPKn packages and exercises a function from
      each, testing, by comparison to COMPL, the cost of "with"ing packages.

COMPN is a null procedure, with neither declaration nor executable statement,
      yielding 2 statements and 4 lines.

COMPT is like COMPZ, a minimal program, but "with" and "use" TEXT_IO,
      yielding 5 statements and 6 lines.

COMPZ is a nominal minimal program with 1 declaration and 1 assignment,
      yielding 3 statements and 5 lines.


A typical set of runs might yield the following information:

On a lightly loaded VAX 11/780 running Telesoft 1.3d compiler -

  COMPN took a minimum of 13 clock seconds.  This is presumably the time to 
  load in the compiler off disk and perform a minimal job.  Other compiles
  might be compared by subtracting this minimum, or the value that is obtained
  for the loading at the time of run.  With as many as 6 users on the machine
  occasionally the time would go to 25 seconds, but that much variation
  would be extreme.

  COMPZ had the same minimum of 13 seconds, but longer times seemed to be
  more common.  There may be an effect of doing that small aditional work.

  COMPT had the additional burden of "withing" TEXT_IO and took an additional
  5 seconds for 18 total.

  COMPB regularly took 25 seconds under the load that was yielding mostly 13
  seconds for COMPN.  

  COMPA took 47 seconds under the same conditions.  This means that the 
  breaking up of the 500 declarations into separate statements had a effect,
  but it was not proportional to the number of statements.  Nor was it even
  proportional to the number of lines.  This may be interpreted to indicate
  that the exact formatting of declarations, while it may produce a
  measureable difference in extreme cases, should not be significant for
  the small differences that could be found between semantically identical
  programs written by people with somewhat different style, or machine
  formatted differently.

  COMPD, with 506 lines, compiled somewhat slower (53 seconds) than COMPC,
  which is compressed to 106 lines but otherwise identical.  Again this 
  shows that extreme variations in format introduce much smaller
  variations in compile time, for this compiler.  Benchmark results
  should certainly not be significant to the 10% level, and within
  such limits the number of Ada statements should be the appropriate
  measure of compiler performance, rather than "lines", and that measure
  should be essentially independent of normal variations in formatting,
  for this compiler.

  COMPE introduced 500 lines of comments, doubling the "lines", into COMPD.
  The time to compile was 64 seconds.  If one took the 13 seconds for a
  minimal program off, the relative times of the 500 statement program,
  without and with the 500 comment lines, are 40 and 51 seconds, indicating
  the relative time to process comments compared to the simplest statement.

  COMPF compiled in 63 seconds, within measurement error of COMPE.
  The grouping of comments had no effect.

  COMPG was double COMPE and, after subtracting the minimal 13
  seconds, its time of 115 seconds was exactly double (51 to 102), so
  the expectation of linearity holds in this case.  This was also a fairly
  large Ada program as measured in "line of code" (which we would not do),
  but the lines are very simple and short (half are short comments).  It could
  be used to compute an absolute maximum on the compile speed in lines per
  minute.  There is no way to avoid someone doing this, but the number has no
  meaning in an absolute sense for comparing to real programs.  Whether it is
  of use  in relative comparisions is problematic.

ACKER and SIEVE are very common elementary benchmarks which may have been
run in every possible language and on every machine in existance.  They 
are included to provide a very rough measure of the quality of code 
generated by the compilers.  While the purpose of the COMP benchmarks is 
to measure compile-time properties, these simple measures of code 
performance may provide some indication of how much effort goes into the
code generation.  For the purposes of comparing with other languages,
all Ada exceptions have been suppressed with pragma SUPPRESS.  This is
only advisory to the compiler and may or may not speed up the code.
Runs are with as bare a machine as possible.

  ACKER computes the ACKERMANN function for (3, 6).
  
  SIEVE is the BYTE benchmark, ten iterations of calculating the prime
  numbers up to 16384 by the method of Eratosthes.

  IMP is a program that contains the timing runs for ACKER and SIEVE
  in addition to printing various information about the system.  It
  continually changes as it evolves and as the systems differ (does
  it have LONG_FLOAT?) so it is not a regular benchmark.  But for some
  systems the compile "lines per minute" is recorded to compare with 
  the COMPG values.  IMP is a simple, but by no means typical, program,
  and there is no claim that it represents a good test.
  

The tests were also run on an INTELLIMAC 7000M using TeleSoft 1.3d.
The 7000M is a 12.5 MHz (1.5 MIPS!) 68K with a  330  Meg  Fujitsu
SMD  disk  and  a 25Meg fixed/25 Meg removable Amcodyne cartridge
disk. We have 1 Meg of RAM w/ ECC, 8 RS232  ports  and  a  serial
printer  port.   The  Unix  is a Unisoft port of Version 7 to the
68K. It includes some "Berkley Extensions" (e.g. Vi and Termcap).

A short series of tests were run on the IBM 3083 E1 at Billerica under the
Telesoft 1.3d and the CMS operating system.  This gathered no further
information on the compiler, but showed some things about the operating
system and provided an example on a mainframe.

The Labtek WICAT is a 68000 (8MHz) based desk-top computer running Telesoft
1.3d and the Telesoft ROS operating system.  It represents a fairly good
stand-alone capability as far as compile speed is concerned and therefore
is a measure of how a convenient compiler system should appear to the user.
It is, of course, not validated and is therefore not acceptable itself.

The tests on the Honeywell Level-6 gathered data on both the clock
time and the CPU time.  In a couple of cases link time was also noted since
these programs must be explicitly linked before execution.  For the Honeywell
equipment "best" times were given when available.  Compilation in a domain
that has some previous runs can reduce the time somewhat by having
available some previously instantiated units, or specs.  After about 50
library files have been created, the search of the library takes longer
and the compiler can slow down by a factor of 2.  The compilation of IMP,
the implementation test program, took 602 (367 CPU) seconds on the 95 at the
end of the day, and only 280 (178) seconds in an empty domain.  COMPB did
not compile, perhaps because of the large number of declarations (COMPA
which also has 500 declarations took an anomolously long time to compile).
While the machines had up to 4MB of memory, they can only address 1MB
at a time, so the extra memory helps only for multiple jobs.
Some of the 75 runs were made with VIDEO turned off.  This status display
absorbed as much as 15-20% of the CPU in this machine.  For the 75 the
compiles were very high CP users, on the faster 95 the CP utilization
was significantly less at the end of the tests when the domain library
was large, as shown by the extraordinary run of 25 packages (spec and body)
in a single compilation file (COMPK1-25).  For COMPL and COMPM the link
times are also shown.  In some Ada systems most of the linking is done
with the compile run and is counted in that time (like Telesoft 1.3).
In others, linking is a separate program to be run before executation.
When this time is significant, it should be added to the compile times
for comparison of these benchmarks.  Most Ada programs are composed of a
number of packages and one main program; there is only one link necessary,
not one per package.



-----------------------------------------------------------------------
      TELESOFT TELESOFT TELESOFT TELESOFTHONEYWELL HONEYWELL HONEYWELL HONEYWELL
         1.3d     1.3d     1.3d     1.3d     DDC       DDC       DDC       DDC
          VAX  INTELLIMAC   IBM    LABTEK  L-6/95+    L-6/75   L-6/45    L-6/45
        11/780    7000M   3083E1   WICAT     4MB       2MB       2MB     1.25MB
 TEST    VMS     UNIX      CMS      ROS   CP CLOCK  CP CLOCK  CP CLOCK  CP CLOCK
-------------------------------------------------------------------------
These are null tests of starting the compiler.  The COMPN time
has been subtracted from the test time of all others reported.
 COMPN      13      26      .8      11     8   26    20   46   36   71   72  310
 COMPZ      13      26      .8      11     8   26    25   63
-------------------------------------------------------------------------
 COMPA      34      43     3.3      35    67   83   182  218  361  466
 COMPB      12      22     1.6      18    --   --
 COMPC      31      39     7.0      39    35   45    87  102  160  193  210  721
 COMPD      40      40     7.1      41    41   51   100  119
 COMPE      51      46     7.6      43    46   59   117  119
 COMPF                     7.6      43              118  139
 COMPG     102      92    15.3      86    94  125   232  273
 max lpm  1180    1308  7867      1400        963        441
 COMPK                              14    30   79
 COMPK1-25                               511 2482
 COMPL                     1.0       4    17  145
 Link                                     11   30
 COMPM                     4.3            24  165
 Link                                     36   80
 COMPN     (13)    (26)    (.8)     (11)  (8) (26)  (20)  (46)
 COMPT       5       5     1.0        6    2    9     7    19
 COMPZ     (13)    (26)    (.8)     (11)  (8) (26)  (25)  (63)
-------------------------------------------------------------------------
Lines per minute
IMP                                           122


                          Run Times

ACKER                                           2.7         8.3
SIEVE                                           2.8         7.7

-------

----END OF FORWARDED MESSAGES----


From:	MAILER         27-FEB-1985 05:28  
To:	WIS
Subj:	[Netmail From: court@mitre] LEVEL 6  REPORT

Mail-From: ARPAnet host MITRE rcvd at Wed Feb 27 05:28-PST
Date: 27 Feb 1985  8:00:22 EST (Wednesday)
From: Terry Courtwright 
Subject: LEVEL 6  REPORT
To: wis at nosc-tecr


----BEGINNING OF FORWARDED MESSAGES----
Date: 25 Feb 1985 07:37 PST
From: WWHITAKER@USC-ECLB.ARPA
Subject: LEVEL 6  REPORT
To:   COURT@MITRE


There are a series of very simple benchmarks called COMPA, COMPB, ... which
are used to test the validity of various assumptions that one might make 
about the behavior of a compiler.  Probably all the implicit assumptions
are valid, these tests just check that something has not been overlooked
that could severely distort detailed quantitative tests.  There should
be no significance given to the numerical results of these tests,
they just provide a framework for other tests.  There is not even a pressing
reason to make sure of the status (or emptiness) of the machine on which
they are run, since the desired comparison is one to another, not to
some absolute.


COMPA contains the minimal procedure framework surrounding 500 separate
      Ada declaration statements, each on a separate physical line,
      yielding 503 statements and 505 lines.

COMPB also has the 500 variables declared, but in one long Ada statement
      spread over 50 physical lines, for a total of 3 statements and 55 lines.

COMPC has the minimal framework with 500 executable assignment statements,
      5 per line, yielding 503 statements and 106 lines.

COMPD also has the 500 assignment statements, but they are placed 1 per line,
      yielding 503 statements and 506 lines.

COMPE is like COMPD, but interjects a comment line for every assignment,
      yielding 503 statements and 1006 lines.

COMPF has the same lines as COMPE, but all the comments are bunched together,
      it also has 503 statements and 1006 lines.

COMPG has the structure of COMPE, but is twice as long to test linearity,
      it has 1003 statements and 2006 lines.

COMPK is a single package containing 25 very small, but unique, packages.

COMPK1-COMPK25 are the same packages as are contained in COMPK, but as separate
      packages.

COMPL "with"s the COMPK package, and exercises a function from each of the
      included 25 packages.

COMPM "with"s the 25 separate COMPKn packages and exercises a function from
      each, testing, by comparison to COMPL, the cost of "with"ing packages.

COMPN is a null procedure, with neither declaration nor executable statement,
      yielding 2 statements and 4 lines.

COMPT is like COMPZ, a minimal program, but "with" and "use" TEXT_IO,
      yielding 5 statements and 6 lines.

COMPZ is a nominal minimal program with 1 declaration and 1 assignment,
      yielding 3 statements and 5 lines.


A typical set of runs might yield the following information:

On a lightly loaded VAX 11/780 running Telesoft 1.3d compiler -

  COMPN took a minimum of 13 clock seconds.  This is presumably the time to 
  load in the compiler off disk and perform a minimal job.  Other compiles
  might be compared by subtracting this minimum, or the value that is obtained
  for the loading at the time of run.  With as many as 6 users on the machine
  occasionally the time would go to 25 seconds, but that much variation
  would be extreme.

  COMPZ had the same minimum of 13 seconds, but longer times seemed to be
  more common.  There may be an effect of doing that small aditional work.

  COMPT had the additional burden of "withing" TEXT_IO and took an additional
  5 seconds for 18 total.

  COMPB regularly took 25 seconds under the load that was yielding mostly 13
  seconds for COMPN.  

  COMPA took 47 seconds under the same conditions.  This means that the 
  breaking up of the 500 declarations into separate statements had a effect,
  but it was not proportional to the number of statements.  Nor was it even
  proportional to the number of lines.  This may be interpreted to indicate
  that the exact formatting of declarations, while it may produce a
  measureable difference in extreme cases, should not be significant for
  the small differences that could be found between semantically identical
  programs written by people with somewhat different style, or machine
  formatted differently.

  COMPD, with 506 lines, compiled somewhat slower (53 seconds) than COMPC,
  which is compressed to 106 lines but otherwise identical.  Again this 
  shows that extreme variations in format introduce much smaller
  variations in compile time, for this compiler.  Benchmark results
  should certainly not be significant to the 10% level, and within
  such limits the number of Ada statements should be the appropriate
  measure of compiler performance, rather than "lines", and that measure
  should be essentially independent of normal variations in formatting,
  for this compiler.

  COMPE introduced 500 lines of comments, doubling the "lines", into COMPD.
  The time to compile was 64 seconds.  If one took the 13 seconds for a
  minimal program off, the relative times of the 500 statement program,
  without and with the 500 comment lines, are 40 and 51 seconds, indicating
  the relative time to process comments compared to the simplest statement.

  COMPF compiled in 63 seconds, within measurement error of COMPE.
  The grouping of comments had no effect.

  COMPG was double COMPE and, after subtracting the minimal 13
  seconds, its time of 115 seconds was exactly double (51 to 102), so
  the expectation of linearity holds in this case.  This was also a fairly
  large Ada program as measured in "line of code" (which we would not do),
  but the lines are very simple and short (half are short comments).  It could
  be used to compute an absolute maximum on the compile speed in lines per
  minute.  There is no way to avoid someone doing this, but the number has no
  meaning in an absolute sense for comparing to real programs.  Whether it is
  of use  in relative comparisions is problematic.

ACKER and SIEVE are very common elementary benchmarks which may have been
run in every possible language and on every machine in existance.  They 
are included to provide a very rough measure of the quality of code 
generated by the compilers.  While the purpose of the COMP benchmarks is 
to measure compile-time properties, these simple measures of code 
performance may provide some indication of how much effort goes into the
code generation.  For the purposes of comparing with other languages,
all Ada exceptions have been suppressed with pragma SUPPRESS.  This is
only advisory to the compiler and may or may not speed up the code.
Runs are with as bare a machine as possible.

  ACKER computes the ACKERMANN function for (3, 6).
  
  SIEVE is the BYTE benchmark, ten iterations of calculating the prime
  numbers up to 16384 by the method of Eratosthes.

  IMP is a program that contains the timing runs for ACKER and SIEVE
  in addition to printing various information about the system.  It
  continually changes as it evolves and as the systems differ (does
  it have LONG_FLOAT?) so it is not a regular benchmark.  But for some
  systems the compile "lines per minute" is recorded to compare with 
  the COMPG values.  IMP is a simple, but by no means typical, program,
  and there is no claim that it represents a good test.
--::::::::::
--jpmobnch.src
--::::::::::
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compa.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPA is
  A0 : INTEGER;
  A1 : INTEGER;
  A2 : INTEGER;
  A3 : INTEGER;
  A4 : INTEGER;
  A5 : INTEGER;
  A6 : INTEGER;
  A7 : INTEGER;
  A8 : INTEGER;
  A9 : INTEGER;
  A10 : INTEGER;
  A11 : INTEGER;
  A12 : INTEGER;
  A13 : INTEGER;
  A14 : INTEGER;
  A15 : INTEGER;
  A16 : INTEGER;
  A17 : INTEGER;
  A18 : INTEGER;
  A19 : INTEGER;
  A20 : INTEGER;
  A21 : INTEGER;
  A22 : INTEGER;
  A23 : INTEGER;
  A24 : INTEGER;
  A25 : INTEGER;
  A26 : INTEGER;
  A27 : INTEGER;
  A28 : INTEGER;
  A29 : INTEGER;
  A30 : INTEGER;
  A31 : INTEGER;
  A32 : INTEGER;
  A33 : INTEGER;
  A34 : INTEGER;
  A35 : INTEGER;
  A36 : INTEGER;
  A37 : INTEGER;
  A38 : INTEGER;
  A39 : INTEGER;
  A40 : INTEGER;
  A41 : INTEGER;
  A42 : INTEGER;
  A43 : INTEGER;
  A44 : INTEGER;
  A45 : INTEGER;
  A46 : INTEGER;
  A47 : INTEGER;
  A48 : INTEGER;
  A49 : INTEGER;
  A50 : INTEGER;
  A51 : INTEGER;
  A52 : INTEGER;
  A53 : INTEGER;
  A54 : INTEGER;
  A55 : INTEGER;
  A56 : INTEGER;
  A57 : INTEGER;
  A58 : INTEGER;
  A59 : INTEGER;
  A60 : INTEGER;
  A61 : INTEGER;
  A62 : INTEGER;
  A63 : INTEGER;
  A64 : INTEGER;
  A65 : INTEGER;
  A66 : INTEGER;
  A67 : INTEGER;
  A68 : INTEGER;
  A69 : INTEGER;
  A70 : INTEGER;
  A71 : INTEGER;
  A72 : INTEGER;
  A73 : INTEGER;
  A74 : INTEGER;
  A75 : INTEGER;
  A76 : INTEGER;
  A77 : INTEGER;
  A78 : INTEGER;
  A79 : INTEGER;
  A80 : INTEGER;
  A81 : INTEGER;
  A82 : INTEGER;
  A83 : INTEGER;
  A84 : INTEGER;
  A85 : INTEGER;
  A86 : INTEGER;
  A87 : INTEGER;
  A88 : INTEGER;
  A89 : INTEGER;
  A90 : INTEGER;
  A91 : INTEGER;
  A92 : INTEGER;
  A93 : INTEGER;
  A94 : INTEGER;
  A95 : INTEGER;
  A96 : INTEGER;
  A97 : INTEGER;
  A98 : INTEGER;
  A99 : INTEGER;
  A100 : INTEGER;
  A101 : INTEGER;
  A102 : INTEGER;
  A103 : INTEGER;
  A104 : INTEGER;
  A105 : INTEGER;
  A106 : INTEGER;
  A107 : INTEGER;
  A108 : INTEGER;
  A109 : INTEGER;
  A110 : INTEGER;
  A111 : INTEGER;
  A112 : INTEGER;
  A113 : INTEGER;
  A114 : INTEGER;
  A115 : INTEGER;
  A116 : INTEGER;
  A117 : INTEGER;
  A118 : INTEGER;
  A119 : INTEGER;
  A120 : INTEGER;
  A121 : INTEGER;
  A122 : INTEGER;
  A123 : INTEGER;
  A124 : INTEGER;
  A125 : INTEGER;
  A126 : INTEGER;
  A127 : INTEGER;
  A128 : INTEGER;
  A129 : INTEGER;
  A130 : INTEGER;
  A131 : INTEGER;
  A132 : INTEGER;
  A133 : INTEGER;
  A134 : INTEGER;
  A135 : INTEGER;
  A136 : INTEGER;
  A137 : INTEGER;
  A138 : INTEGER;
  A139 : INTEGER;
  A140 : INTEGER;
  A141 : INTEGER;
  A142 : INTEGER;
  A143 : INTEGER;
  A144 : INTEGER;
  A145 : INTEGER;
  A146 : INTEGER;
  A147 : INTEGER;
  A148 : INTEGER;
  A149 : INTEGER;
  A150 : INTEGER;
  A151 : INTEGER;
  A152 : INTEGER;
  A153 : INTEGER;
  A154 : INTEGER;
  A155 : INTEGER;
  A156 : INTEGER;
  A157 : INTEGER;
  A158 : INTEGER;
  A159 : INTEGER;
  A160 : INTEGER;
  A161 : INTEGER;
  A162 : INTEGER;
  A163 : INTEGER;
  A164 : INTEGER;
  A165 : INTEGER;
  A166 : INTEGER;
  A167 : INTEGER;
  A168 : INTEGER;
  A169 : INTEGER;
  A170 : INTEGER;
  A171 : INTEGER;
  A172 : INTEGER;
  A173 : INTEGER;
  A174 : INTEGER;
  A175 : INTEGER;
  A176 : INTEGER;
  A177 : INTEGER;
  A178 : INTEGER;
  A179 : INTEGER;
  A180 : INTEGER;
  A181 : INTEGER;
  A182 : INTEGER;
  A183 : INTEGER;
  A184 : INTEGER;
  A185 : INTEGER;
  A186 : INTEGER;
  A187 : INTEGER;
  A188 : INTEGER;
  A189 : INTEGER;
  A190 : INTEGER;
  A191 : INTEGER;
  A192 : INTEGER;
  A193 : INTEGER;
  A194 : INTEGER;
  A195 : INTEGER;
  A196 : INTEGER;
  A197 : INTEGER;
  A198 : INTEGER;
  A199 : INTEGER;
  A200 : INTEGER;
  A201 : INTEGER;
  A202 : INTEGER;
  A203 : INTEGER;
  A204 : INTEGER;
  A205 : INTEGER;
  A206 : INTEGER;
  A207 : INTEGER;
  A208 : INTEGER;
  A209 : INTEGER;
  A210 : INTEGER;
  A211 : INTEGER;
  A212 : INTEGER;
  A213 : INTEGER;
  A214 : INTEGER;
  A215 : INTEGER;
  A216 : INTEGER;
  A217 : INTEGER;
  A218 : INTEGER;
  A219 : INTEGER;
  A220 : INTEGER;
  A221 : INTEGER;
  A222 : INTEGER;
  A223 : INTEGER;
  A224 : INTEGER;
  A225 : INTEGER;
  A226 : INTEGER;
  A227 : INTEGER;
  A228 : INTEGER;
  A229 : INTEGER;
  A230 : INTEGER;
  A231 : INTEGER;
  A232 : INTEGER;
  A233 : INTEGER;
  A234 : INTEGER;
  A235 : INTEGER;
  A236 : INTEGER;
  A237 : INTEGER;
  A238 : INTEGER;
  A239 : INTEGER;
  A240 : INTEGER;
  A241 : INTEGER;
  A242 : INTEGER;
  A243 : INTEGER;
  A244 : INTEGER;
  A245 : INTEGER;
  A246 : INTEGER;
  A247 : INTEGER;
  A248 : INTEGER;
  A249 : INTEGER;
  A250 : INTEGER;
  A251 : INTEGER;
  A252 : INTEGER;
  A253 : INTEGER;
  A254 : INTEGER;
  A255 : INTEGER;
  A256 : INTEGER;
  A257 : INTEGER;
  A258 : INTEGER;
  A259 : INTEGER;
  A260 : INTEGER;
  A261 : INTEGER;
  A262 : INTEGER;
  A263 : INTEGER;
  A264 : INTEGER;
  A265 : INTEGER;
  A266 : INTEGER;
  A267 : INTEGER;
  A268 : INTEGER;
  A269 : INTEGER;
  A270 : INTEGER;
  A271 : INTEGER;
  A272 : INTEGER;
  A273 : INTEGER;
  A274 : INTEGER;
  A275 : INTEGER;
  A276 : INTEGER;
  A277 : INTEGER;
  A278 : INTEGER;
  A279 : INTEGER;
  A280 : INTEGER;
  A281 : INTEGER;
  A282 : INTEGER;
  A283 : INTEGER;
  A284 : INTEGER;
  A285 : INTEGER;
  A286 : INTEGER;
  A287 : INTEGER;
  A288 : INTEGER;
  A289 : INTEGER;
  A290 : INTEGER;
  A291 : INTEGER;
  A292 : INTEGER;
  A293 : INTEGER;
  A294 : INTEGER;
  A295 : INTEGER;
  A296 : INTEGER;
  A297 : INTEGER;
  A298 : INTEGER;
  A299 : INTEGER;
  A300 : INTEGER;
  A301 : INTEGER;
  A302 : INTEGER;
  A303 : INTEGER;
  A304 : INTEGER;
  A305 : INTEGER;
  A306 : INTEGER;
  A307 : INTEGER;
  A308 : INTEGER;
  A309 : INTEGER;
  A310 : INTEGER;
  A311 : INTEGER;
  A312 : INTEGER;
  A313 : INTEGER;
  A314 : INTEGER;
  A315 : INTEGER;
  A316 : INTEGER;
  A317 : INTEGER;
  A318 : INTEGER;
  A319 : INTEGER;
  A320 : INTEGER;
  A321 : INTEGER;
  A322 : INTEGER;
  A323 : INTEGER;
  A324 : INTEGER;
  A325 : INTEGER;
  A326 : INTEGER;
  A327 : INTEGER;
  A328 : INTEGER;
  A329 : INTEGER;
  A330 : INTEGER;
  A331 : INTEGER;
  A332 : INTEGER;
  A333 : INTEGER;
  A334 : INTEGER;
  A335 : INTEGER;
  A336 : INTEGER;
  A337 : INTEGER;
  A338 : INTEGER;
  A339 : INTEGER;
  A340 : INTEGER;
  A341 : INTEGER;
  A342 : INTEGER;
  A343 : INTEGER;
  A344 : INTEGER;
  A345 : INTEGER;
  A346 : INTEGER;
  A347 : INTEGER;
  A348 : INTEGER;
  A349 : INTEGER;
  A350 : INTEGER;
  A351 : INTEGER;
  A352 : INTEGER;
  A353 : INTEGER;
  A354 : INTEGER;
  A355 : INTEGER;
  A356 : INTEGER;
  A357 : INTEGER;
  A358 : INTEGER;
  A359 : INTEGER;
  A360 : INTEGER;
  A361 : INTEGER;
  A362 : INTEGER;
  A363 : INTEGER;
  A364 : INTEGER;
  A365 : INTEGER;
  A366 : INTEGER;
  A367 : INTEGER;
  A368 : INTEGER;
  A369 : INTEGER;
  A370 : INTEGER;
  A371 : INTEGER;
  A372 : INTEGER;
  A373 : INTEGER;
  A374 : INTEGER;
  A375 : INTEGER;
  A376 : INTEGER;
  A377 : INTEGER;
  A378 : INTEGER;
  A379 : INTEGER;
  A380 : INTEGER;
  A381 : INTEGER;
  A382 : INTEGER;
  A383 : INTEGER;
  A384 : INTEGER;
  A385 : INTEGER;
  A386 : INTEGER;
  A387 : INTEGER;
  A388 : INTEGER;
  A389 : INTEGER;
  A390 : INTEGER;
  A391 : INTEGER;
  A392 : INTEGER;
  A393 : INTEGER;
  A394 : INTEGER;
  A395 : INTEGER;
  A396 : INTEGER;
  A397 : INTEGER;
  A398 : INTEGER;
  A399 : INTEGER;
  A400 : INTEGER;
  A401 : INTEGER;
  A402 : INTEGER;
  A403 : INTEGER;
  A404 : INTEGER;
  A405 : INTEGER;
  A406 : INTEGER;
  A407 : INTEGER;
  A408 : INTEGER;
  A409 : INTEGER;
  A410 : INTEGER;
  A411 : INTEGER;
  A412 : INTEGER;
  A413 : INTEGER;
  A414 : INTEGER;
  A415 : INTEGER;
  A416 : INTEGER;
  A417 : INTEGER;
  A418 : INTEGER;
  A419 : INTEGER;
  A420 : INTEGER;
  A421 : INTEGER;
  A422 : INTEGER;
  A423 : INTEGER;
  A424 : INTEGER;
  A425 : INTEGER;
  A426 : INTEGER;
  A427 : INTEGER;
  A428 : INTEGER;
  A429 : INTEGER;
  A430 : INTEGER;
  A431 : INTEGER;
  A432 : INTEGER;
  A433 : INTEGER;
  A434 : INTEGER;
  A435 : INTEGER;
  A436 : INTEGER;
  A437 : INTEGER;
  A438 : INTEGER;
  A439 : INTEGER;
  A440 : INTEGER;
  A441 : INTEGER;
  A442 : INTEGER;
  A443 : INTEGER;
  A444 : INTEGER;
  A445 : INTEGER;
  A446 : INTEGER;
  A447 : INTEGER;
  A448 : INTEGER;
  A449 : INTEGER;
  A450 : INTEGER;
  A451 : INTEGER;
  A452 : INTEGER;
  A453 : INTEGER;
  A454 : INTEGER;
  A455 : INTEGER;
  A456 : INTEGER;
  A457 : INTEGER;
  A458 : INTEGER;
  A459 : INTEGER;
  A460 : INTEGER;
  A461 : INTEGER;
  A462 : INTEGER;
  A463 : INTEGER;
  A464 : INTEGER;
  A465 : INTEGER;
  A466 : INTEGER;
  A467 : INTEGER;
  A468 : INTEGER;
  A469 : INTEGER;
  A470 : INTEGER;
  A471 : INTEGER;
  A472 : INTEGER;
  A473 : INTEGER;
  A474 : INTEGER;
  A475 : INTEGER;
  A476 : INTEGER;
  A477 : INTEGER;
  A478 : INTEGER;
  A479 : INTEGER;
  A480 : INTEGER;
  A481 : INTEGER;
  A482 : INTEGER;
  A483 : INTEGER;
  A484 : INTEGER;
  A485 : INTEGER;
  A486 : INTEGER;
  A487 : INTEGER;
  A488 : INTEGER;
  A489 : INTEGER;
  A490 : INTEGER;
  A491 : INTEGER;
  A492 : INTEGER;
  A493 : INTEGER;
  A494 : INTEGER;
  A495 : INTEGER;
  A496 : INTEGER;
  A497 : INTEGER;
  A498 : INTEGER;
  A499 : INTEGER;

begin
  A499 := 0;
end COMPA;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compb.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPB is
    A0,   A1,    A2,    A3,    A4,    A5,    A6,    A7,    A8,    A9,
   A10,  A11,   A12,   A13,   A14,   A15,   A16,   A17,   A18,   A19,
   A20,  A21,   A22,   A23,   A24,   A25,   A26,   A27,   A28,   A29,
   A30,  A31,   A32,   A33,   A34,   A35,   A36,   A37,   A38,   A39,
   A40,  A41,   A42,   A43,   A44,   A45,   A46,   A47,   A48,   A49,
   A50,  A51,   A52,   A53,   A54,   A55,   A56,   A57,   A58,   A59,
   A60,  A61,   A62,   A63,   A64,   A65,   A66,   A67,   A68,   A69,
   A70,  A71,   A72,   A73,   A74,   A75,   A76,   A77,   A78,   A79,
   A80,  A81,   A82,   A83,   A84,   A85,   A86,   A87,   A88,   A89,
   A90,  A91,   A92,   A93,   A94,   A95,   A96,   A97,   A98,   A99,
  A100, A101,  A102,  A103,  A104,  A105,  A106,  A107,  A108,  A109,
  A110, A111,  A112,  A113,  A114,  A115,  A116,  A117,  A118,  A119,
  A120, A121,  A122,  A123,  A124,  A125,  A126,  A127,  A128,  A129,
  A130, A131,  A132,  A133,  A134,  A135,  A136,  A137,  A138,  A139,
  A140, A141,  A142,  A143,  A144,  A145,  A146,  A147,  A148,  A149,
  A150, A151,  A152,  A153,  A154,  A155,  A156,  A157,  A158,  A159,
  A160, A161,  A162,  A163,  A164,  A165,  A166,  A167,  A168,  A169,
  A170, A171,  A172,  A173,  A174,  A175,  A176,  A177,  A178,  A179,
  A180, A181,  A182,  A183,  A184,  A185,  A186,  A187,  A188,  A189,
  A190, A191,  A192,  A193,  A194,  A195,  A196,  A197,  A198,  A199,
  A200, A201,  A202,  A203,  A204,  A205,  A206,  A207,  A208,  A209,
  A210, A211,  A212,  A213,  A214,  A215,  A216,  A217,  A218,  A219,
  A220, A221,  A222,  A223,  A224,  A225,  A226,  A227,  A228,  A229,
  A230, A231,  A232,  A233,  A234,  A235,  A236,  A237,  A238,  A239,
  A240, A241,  A242,  A243,  A244,  A245,  A246,  A247,  A248,  A249,
  A250, A251,  A252,  A253,  A254,  A255,  A256,  A257,  A258,  A259,
  A260, A261,  A262,  A263,  A264,  A265,  A266,  A267,  A268,  A269,
  A270, A271,  A272,  A273,  A274,  A275,  A276,  A277,  A278,  A279,
  A280, A281,  A282,  A283,  A284,  A285,  A286,  A287,  A288,  A289,
  A290, A291,  A292,  A293,  A294,  A295,  A296,  A297,  A298,  A299,
  A300, A301,  A302,  A303,  A304,  A305,  A306,  A307,  A308,  A309,
  A310, A311,  A312,  A313,  A314,  A315,  A316,  A317,  A318,  A319,
  A320, A321,  A322,  A323,  A324,  A325,  A326,  A327,  A328,  A329,
  A330, A331,  A332,  A333,  A334,  A335,  A336,  A337,  A338,  A339,
  A340, A341,  A342,  A343,  A344,  A345,  A346,  A347,  A348,  A349,
  A350, A351,  A352,  A353,  A354,  A355,  A356,  A357,  A358,  A359,
  A360, A361,  A362,  A363,  A364,  A365,  A366,  A367,  A368,  A369,
  A370, A371,  A372,  A373,  A374,  A375,  A376,  A377,  A378,  A379,
  A380, A381,  A382,  A383,  A384,  A385,  A386,  A387,  A388,  A389,
  A390, A391,  A392,  A393,  A394,  A395,  A396,  A397,  A398,  A399,
  A400, A401,  A402,  A403,  A404,  A405,  A406,  A407,  A408,  A409,
  A410, A411,  A412,  A413,  A414,  A415,  A416,  A417,  A418,  A419,
  A420, A421,  A422,  A423,  A424,  A425,  A426,  A427,  A428,  A429,
  A430, A431,  A432,  A433,  A434,  A435,  A436,  A437,  A438,  A439,
  A440, A441,  A442,  A443,  A444,  A445,  A446,  A447,  A448,  A449,
  A450, A451,  A452,  A453,  A454,  A455,  A456,  A457,  A458,  A459,
  A460, A461,  A462,  A463,  A464,  A465,  A466,  A467,  A468,  A469,
  A470, A471,  A472,  A473,  A474,  A475,  A476,  A477,  A478,  A479,
  A480, A481,  A482,  A483,  A484,  A485,  A486,  A487,  A488,  A489,
  A490, A491,  A492,  A493,  A494,  A495,  A496,  A497,  A498,  A499 : INTEGER;

begin
  A499 := 0;
end COMPB;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compc.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPC is
  A, B, C : INTEGER := 0;

begin
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;
  B := A;  C := B;  A:= B;  C := A;  B := C;

end COMPC;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compd.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPD is
  A, B, C : INTEGER := 0;

begin
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;

end COMPD;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compe.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPE is
  A, B, C : INTEGER := 0;

begin
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;

end COMPE;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compf.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPF is
  A, B, C : INTEGER := 0;

begin
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
--  COMMENT
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;
  B := A;
  C := B;
  A := B;
  C := A;
  B := C;

end COMPF;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compg.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPG is
  A, B, C : INTEGER := 0;

begin
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;
--  COMMENT
  B := A;
--  COMMENT
  C := B;
--  COMMENT
  A := B;
--  COMMENT
  C := A;
--  COMMENT
  B := C;

end COMPG;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
package COMPK is

  package COMPK1 is
    function K1 return INTEGER;
  end COMPK1;

  package COMPK2 is
    function K2 return INTEGER;
  end COMPK2;

  package COMPK3 is
    function K3 return INTEGER;
  end COMPK3;

  package COMPK4 is
    function K4 return INTEGER;
  end COMPK4;

  package COMPK5 is
    function K5 return INTEGER;
  end COMPK5;

  package COMPK6 is
    function K6 return INTEGER;
  end COMPK6;

  package COMPK7 is
    function K7 return INTEGER;
  end COMPK7;

  package COMPK8 is
    function K8 return INTEGER;
  end COMPK8;

  package COMPK9 is
    function K9 return INTEGER;
  end COMPK9;

  package COMPK10 is
    function K10 return INTEGER;
  end COMPK10;

  package COMPK11 is
    function K11 return INTEGER;
  end COMPK11;

  package COMPK12 is
    function K12 return INTEGER;
  end COMPK12;

  package COMPK13 is
    function K13 return INTEGER;
  end COMPK13;

  package COMPK14 is
    function K14 return INTEGER;
  end COMPK14;

  package COMPK15 is
    function K15 return INTEGER;
  end COMPK15;

  package COMPK16 is
    function K16 return INTEGER;
  end COMPK16;

  package COMPK17 is
    function K17 return INTEGER;
  end COMPK17;

  package COMPK18 is
    function K18 return INTEGER;
  end COMPK18;

  package COMPK19 is
    function K19 return INTEGER;
  end COMPK19;

  package COMPK20 is
    function K20 return INTEGER;
  end COMPK20;

  package COMPK21 is
    function K21 return INTEGER;
  end COMPK21;

  package COMPK22 is
    function K22 return INTEGER;
  end COMPK22;

  package COMPK23 is
    function K23 return INTEGER;
  end COMPK23;

  package COMPK24 is
    function K24 return INTEGER;
  end COMPK24;

  package COMPK25 is
    function K25 return INTEGER;
  end COMPK25;

end COMPK;


package body COMPK is

  package body COMPK1 is
    function K1 return INTEGER is
    begin
      return 1;
    end K1;
  end COMPK1;

  package body COMPK2 is
    function K2 return INTEGER is
    begin
      return 2;
    end K2;
  end COMPK2;

  package body COMPK3 is
    function K3 return INTEGER is
    begin
      return 3;
    end K3;
  end COMPK3;

  package body COMPK4 is
    function K4 return INTEGER is
    begin
      return 4;
    end K4;
  end COMPK4;

  package body COMPK5 is
    function K5 return INTEGER is
    begin
      return 5;
    end K5;
  end COMPK5;

  package body COMPK6 is
    function K6 return INTEGER is
    begin
      return 6;
    end K6;
  end COMPK6;

  package body COMPK7 is
    function K7 return INTEGER is
    begin
      return 7;
    end K7;
  end COMPK7;

  package body COMPK8 is
    function K8 return INTEGER is
    begin
      return 8;
    end K8;
  end COMPK8;

  package body COMPK9 is
    function K9 return INTEGER is
    begin
      return 9;
    end K9;
  end COMPK9;

  package body COMPK10 is
    function K10 return INTEGER is
    begin
      return 10;
    end K10;
  end COMPK10;

  package body COMPK11 is
    function K11 return INTEGER is
    begin
      return 11;
    end K11;
  end COMPK11;

  package body COMPK12 is
    function K12 return INTEGER is
    begin
      return 12;
    end K12;
  end COMPK12;

  package body COMPK13 is
    function K13 return INTEGER is
    begin
      return 13;
    end K13;
  end COMPK13;

  package body COMPK14 is
    function K14 return INTEGER is
    begin
      return 14;
    end K14;
  end COMPK14;

  package body COMPK15 is
    function K15 return INTEGER is
    begin
      return 15;
    end K15;
  end COMPK15;

  package body COMPK16 is
    function K16 return INTEGER is
    begin
      return 16;
    end K16;
  end COMPK16;

  package body COMPK17 is
    function K17 return INTEGER is
    begin
      return 17;
    end K17;
  end COMPK17;

  package body COMPK18 is
    function K18 return INTEGER is
    begin
      return 18;
    end K18;
  end COMPK18;

  package body COMPK19 is
    function K19 return INTEGER is
    begin
      return 19;
    end K19;
  end COMPK19;

  package body COMPK20 is
    function K20 return INTEGER is
    begin
      return 20;
    end K20;
  end COMPK20;

  package body COMPK21 is
    function K21 return INTEGER is
    begin
      return 21;
    end K21;
  end COMPK21;

  package body COMPK22 is
    function K22 return INTEGER is
    begin
      return 22;
    end K22;
  end COMPK22;

  package body COMPK23 is
    function K23 return INTEGER is
    begin
      return 23;
    end K23;
  end COMPK23;

  package body COMPK24 is
    function K24 return INTEGER is
    begin
      return 24;
    end K24;
  end COMPK24;

  package body COMPK25 is
    function K25 return INTEGER is
    begin
      return 25;
    end K25;
  end COMPK25;

end COMPK;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk1.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK1 is
    function K1 return INTEGER;
  end COMPK1;


  package body COMPK1 is
    function K1 return INTEGER is
    begin
      return 1;
    end K1;
  end COMPK1;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk2.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK2 is
    function K2 return INTEGER;
  end COMPK2;

  package body COMPK2 is
    function K2 return INTEGER is
    begin
      return 2;
    end K2;
  end COMPK2;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk3.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK3 is
    function K3 return INTEGER;
  end COMPK3;

  package body COMPK3 is
    function K3 return INTEGER is
    begin
      return 3;
    end K3;
  end COMPK3;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk4.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK4 is
    function K4 return INTEGER;
  end COMPK4;

  package body COMPK4 is
    function K4 return INTEGER is
    begin
      return 4;
    end K4;
  end COMPK4;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk5.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK5 is
    function K5 return INTEGER;
  end COMPK5;

  package body COMPK5 is
    function K5 return INTEGER is
    begin
      return 5;
    end K5;
  end COMPK5;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk6.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK6 is
    function K6 return INTEGER;
  end COMPK6;

  package body COMPK6 is
    function K6 return INTEGER is
    begin
      return 6;
    end K6;
  end COMPK6;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk7.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK7 is
    function K7 return INTEGER;
  end COMPK7;

  package body COMPK7 is
    function K7 return INTEGER is
    begin
      return 7;
    end K7;
  end COMPK7;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk8.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK8 is
    function K8 return INTEGER;
  end COMPK8;

  package body COMPK8 is
    function K8 return INTEGER is
    begin
      return 8;
    end K8;
  end COMPK8;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk9.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK9 is
    function K9 return INTEGER;
  end COMPK9;

  package body COMPK9 is
    function K9 return INTEGER is
    begin
      return 9;
    end K9;
  end COMPK9;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk10.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK10 is
    function K10 return INTEGER;
  end COMPK10;

  package body COMPK10 is
    function K10 return INTEGER is
    begin
      return 10;
    end K10;
  end COMPK10;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk11.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK11 is
    function K11 return INTEGER;
  end COMPK11;

  package body COMPK11 is
    function K11 return INTEGER is
    begin
      return 11;
    end K11;
  end COMPK11;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk12.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK12 is
    function K12 return INTEGER;
  end COMPK12;

  package body COMPK12 is
    function K12 return INTEGER is
    begin
      return 12;
    end K12;
  end COMPK12;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk13.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK13 is
    function K13 return INTEGER;
  end COMPK13;

  package body COMPK13 is
    function K13 return INTEGER is
    begin
      return 13;
    end K13;
  end COMPK13;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk14.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK14 is
    function K14 return INTEGER;
  end COMPK14;

  package body COMPK14 is
    function K14 return INTEGER is
    begin
      return 14;
    end K14;
  end COMPK14;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk15.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK15 is
    function K15 return INTEGER;
  end COMPK15;

  package body COMPK15 is
    function K15 return INTEGER is
    begin
      return 15;
    end K15;
  end COMPK15;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk16.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK16 is
    function K16 return INTEGER;
  end COMPK16;

  package body COMPK16 is
    function K16 return INTEGER is
    begin
      return 16;
    end K16;
  end COMPK16;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk17.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK17 is
    function K17 return INTEGER;
  end COMPK17;

  package body COMPK17 is
    function K17 return INTEGER is
    begin
      return 17;
    end K17;
  end COMPK17;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk18.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK18 is
    function K18 return INTEGER;
  end COMPK18;

  package body COMPK18 is
    function K18 return INTEGER is
    begin
      return 18;
    end K18;
  end COMPK18;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk19.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK19 is
    function K19 return INTEGER;
  end COMPK19;

  package body COMPK19 is
    function K19 return INTEGER is
    begin
      return 19;
    end K19;
  end COMPK19;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk20.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK20 is
    function K20 return INTEGER;
  end COMPK20;

  package body COMPK20 is
    function K20 return INTEGER is
    begin
      return 20;
    end K20;
  end COMPK20;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk21.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK21 is
    function K21 return INTEGER;
  end COMPK21;

  package body COMPK21 is
    function K21 return INTEGER is
    begin
      return 21;
    end K21;
  end COMPK21;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk22.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK22 is
    function K22 return INTEGER;
  end COMPK22;

  package body COMPK22 is
    function K22 return INTEGER is
    begin
      return 22;
    end K22;
  end COMPK22;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk23.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK23 is
    function K23 return INTEGER;
  end COMPK23;

  package body COMPK23 is
    function K23 return INTEGER is
    begin
      return 23;
    end K23;
  end COMPK23;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk24.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK24 is
    function K24 return INTEGER;
  end COMPK24;

  package body COMPK24 is
    function K24 return INTEGER is
    begin
      return 24;
    end K24;
  end COMPK24;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk25.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  package COMPK25 is
    function K25 return INTEGER;
  end COMPK25;

  package body COMPK25 is
    function K25 return INTEGER is
    begin
      return 25;
    end K25;
  end COMPK25;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compk50.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
package COMPK is

  package COMPK1 is
    function K1 return INTEGER;
  end COMPK1;

  package COMPK2 is
    function K2 return INTEGER;
  end COMPK2;

  package COMPK3 is
    function K3 return INTEGER;
  end COMPK3;

  package COMPK4 is
    function K4 return INTEGER;
  end COMPK4;

  package COMPK5 is
    function K5 return INTEGER;
  end COMPK5;

  package COMPK6 is
    function K6 return INTEGER;
  end COMPK6;

  package COMPK7 is
    function K7 return INTEGER;
  end COMPK7;

  package COMPK8 is
    function K8 return INTEGER;
  end COMPK8;

  package COMPK9 is
    function K9 return INTEGER;
  end COMPK9;

  package COMPK10 is
    function K10 return INTEGER;
  end COMPK10;

  package COMPK11 is
    function K11 return INTEGER;
  end COMPK11;

  package COMPK12 is
    function K12 return INTEGER;
  end COMPK12;

  package COMPK13 is
    function K13 return INTEGER;
  end COMPK13;

  package COMPK14 is
    function K14 return INTEGER;
  end COMPK14;

  package COMPK15 is
    function K15 return INTEGER;
  end COMPK15;

  package COMPK16 is
    function K16 return INTEGER;
  end COMPK16;

  package COMPK17 is
    function K17 return INTEGER;
  end COMPK17;

  package COMPK18 is
    function K18 return INTEGER;
  end COMPK18;

  package COMPK19 is
    function K19 return INTEGER;
  end COMPK19;

  package COMPK20 is
    function K20 return INTEGER;
  end COMPK20;

  package COMPK21 is
    function K21 return INTEGER;
  end COMPK21;

  package COMPK22 is
    function K22 return INTEGER;
  end COMPK22;

  package COMPK23 is
    function K23 return INTEGER;
  end COMPK23;

  package COMPK24 is
    function K24 return INTEGER;
  end COMPK24;

  package COMPK25 is
    function K25 return INTEGER;
  end COMPK25;

  package COMPK26 is
    function K26 return INTEGER;
  end COMPK26;

  package COMPK27 is
    function K27 return INTEGER;
  end COMPK27;

  package COMPK28 is
    function K28 return INTEGER;
  end COMPK28;

  package COMPK29 is
    function K29 return INTEGER;
  end COMPK29;

  package COMPK30 is
    function K30 return INTEGER;
  end COMPK30;

  package COMPK31 is
    function K31 return INTEGER;
  end COMPK31;

  package COMPK32 is
    function K32 return INTEGER;
  end COMPK32;

  package COMPK33 is
    function K33 return INTEGER;
  end COMPK33;

  package COMPK34 is
    function K34 return INTEGER;
  end COMPK34;

  package COMPK35 is
    function K35 return INTEGER;
  end COMPK35;

  package COMPK36 is
    function K36 return INTEGER;
  end COMPK36;

  package COMPK37 is
    function K37 return INTEGER;
  end COMPK37;

  package COMPK38 is
    function K38 return INTEGER;
  end COMPK38;

  package COMPK39 is
    function K39 return INTEGER;
  end COMPK39;

  package COMPK40 is
    function K40 return INTEGER;
  end COMPK40;

  package COMPK41 is
    function K41 return INTEGER;
  end COMPK41;

  package COMPK42 is
    function K42 return INTEGER;
  end COMPK42;

  package COMPK43 is
    function K43 return INTEGER;
  end COMPK43;

  package COMPK44 is
    function K44 return INTEGER;
  end COMPK44;

  package COMPK45 is
    function K45 return INTEGER;
  end COMPK45;

  package COMPK46 is
    function K46 return INTEGER;
  end COMPK46;

  package COMPK47 is
    function K47 return INTEGER;
  end COMPK47;

  package COMPK48 is
    function K48 return INTEGER;
  end COMPK48;

  package COMPK49 is
    function K49 return INTEGER;
  end COMPK49;

  package COMPK50 is
    function K50 return INTEGER;
  end COMPK50;

end COMPK;


package body COMPK is

  package body COMPK1 is
    function K1 return INTEGER is
    begin
      return 1;
    end K1;
  end COMPK1;

  package body COMPK2 is
    function K2 return INTEGER is
    begin
      return 2;
    end K2;
  end COMPK2;

  package body COMPK3 is
    function K3 return INTEGER is
    begin
      return 3;
    end K3;
  end COMPK3;

  package body COMPK4 is
    function K4 return INTEGER is
    begin
      return 4;
    end K4;
  end COMPK4;

  package body COMPK5 is
    function K5 return INTEGER is
    begin
      return 5;
    end K5;
  end COMPK5;

  package body COMPK6 is
    function K6 return INTEGER is
    begin
      return 6;
    end K6;
  end COMPK6;

  package body COMPK7 is
    function K7 return INTEGER is
    begin
      return 7;
    end K7;
  end COMPK7;

  package body COMPK8 is
    function K8 return INTEGER is
    begin
      return 8;
    end K8;
  end COMPK8;

  package body COMPK9 is
    function K9 return INTEGER is
    begin
      return 9;
    end K9;
  end COMPK9;

  package body COMPK10 is
    function K10 return INTEGER is
    begin
      return 10;
    end K10;
  end COMPK10;

  package body COMPK11 is
    function K11 return INTEGER is
    begin
      return 11;
    end K11;
  end COMPK11;

  package body COMPK12 is
    function K12 return INTEGER is
    begin
      return 12;
    end K12;
  end COMPK12;

  package body COMPK13 is
    function K13 return INTEGER is
    begin
      return 13;
    end K13;
  end COMPK13;

  package body COMPK14 is
    function K14 return INTEGER is
    begin
      return 14;
    end K14;
  end COMPK14;

  package body COMPK15 is
    function K15 return INTEGER is
    begin
      return 15;
    end K15;
  end COMPK15;

  package body COMPK16 is
    function K16 return INTEGER is
    begin
      return 16;
    end K16;
  end COMPK16;

  package body COMPK17 is
    function K17 return INTEGER is
    begin
      return 17;
    end K17;
  end COMPK17;

  package body COMPK18 is
    function K18 return INTEGER is
    begin
      return 18;
    end K18;
  end COMPK18;

  package body COMPK19 is
    function K19 return INTEGER is
    begin
      return 19;
    end K19;
  end COMPK19;

  package body COMPK20 is
    function K20 return INTEGER is
    begin
      return 20;
    end K20;
  end COMPK20;

  package body COMPK21 is
    function K21 return INTEGER is
    begin
      return 21;
    end K21;
  end COMPK21;

  package body COMPK22 is
    function K22 return INTEGER is
    begin
      return 22;
    end K22;
  end COMPK22;

  package body COMPK23 is
    function K23 return INTEGER is
    begin
      return 23;
    end K23;
  end COMPK23;

  package body COMPK24 is
    function K24 return INTEGER is
    begin
      return 24;
    end K24;
  end COMPK24;

  package body COMPK25 is
    function K25 return INTEGER is
    begin
      return 25;
    end K25;
  end COMPK25;

  package body COMPK26 is
    function K26 return INTEGER is
    begin
      return 26;
    end K26;
  end COMPK26;

  package body COMPK27 is
    function K27 return INTEGER is
    begin
      return 27;
    end K27;
  end COMPK27;

  package body COMPK28 is
    function K28 return INTEGER is
    begin
      return 28;
    end K28;
  end COMPK28;

  package body COMPK29 is
    function K29 return INTEGER is
    begin
      return 29;
    end K29;
  end COMPK29;

  package body COMPK30 is
    function K30 return INTEGER is
    begin
      return 30;
    end K30;
  end COMPK30;

  package body COMPK31 is
    function K31 return INTEGER is
    begin
      return 31;
    end K31;
  end COMPK31;

  package body COMPK32 is
    function K32 return INTEGER is
    begin
      return 32;
    end K32;
  end COMPK32;

  package body COMPK33 is
    function K33 return INTEGER is
    begin
      return 33;
    end K33;
  end COMPK33;

  package body COMPK34 is
    function K34 return INTEGER is
    begin
      return 34;
    end K34;
  end COMPK34;

  package body COMPK35 is
    function K35 return INTEGER is
    begin
      return 35;
    end K35;
  end COMPK35;

  package body COMPK36 is
    function K36 return INTEGER is
    begin
      return 36;
    end K36;
  end COMPK36;

  package body COMPK37 is
    function K37 return INTEGER is
    begin
      return 37;
    end K37;
  end COMPK37;

  package body COMPK38 is
    function K38 return INTEGER is
    begin
      return 38;
    end K38;
  end COMPK38;

  package body COMPK39 is
    function K39 return INTEGER is
    begin
      return 39;
    end K39;
  end COMPK39;

  package body COMPK40 is
    function K40 return INTEGER is
    begin
      return 40;
    end K40;
  end COMPK40;

  package body COMPK41 is
    function K41 return INTEGER is
    begin
      return 41;
    end K41;
  end COMPK41;

  package body COMPK42 is
    function K42 return INTEGER is
    begin
      return 42;
    end K42;
  end COMPK42;

  package body COMPK43 is
    function K43 return INTEGER is
    begin
      return 43;
    end K43;
  end COMPK43;

  package body COMPK44 is
    function K44 return INTEGER is
    begin
      return 44;
    end K44;
  end COMPK44;

  package body COMPK45 is
    function K45 return INTEGER is
    begin
      return 45;
    end K45;
  end COMPK45;

  package body COMPK46 is
    function K46 return INTEGER is
    begin
      return 46;
    end K46;
  end COMPK46;

  package body COMPK47 is
    function K47 return INTEGER is
    begin
      return 47;
    end K47;
  end COMPK47;

  package body COMPK48 is
    function K48 return INTEGER is
    begin
      return 48;
    end K48;
  end COMPK48;

  package body COMPK49 is
    function K49 return INTEGER is
    begin
      return 49;
    end K49;
  end COMPK49;

  package body COMPK50 is
    function K50 return INTEGER is
    begin
      return 50;
    end K50;
  end COMPK50;

end COMPK;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compl.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
with COMPK; use COMPK;
procedure COMPL is
  L : INTEGER;
begin
  L :=
    COMPK1.K1   + COMPK2.K2   + COMPK3.K3   + COMPK4.K4   + COMPK5.K5
  + COMPK6.K6   + COMPK7.K7   + COMPK8.K8   + COMPK9.K9   + COMPK10.K10
  + COMPK11.K11 + COMPK12.K12 + COMPK13.K13 + COMPK14.K14 + COMPK15.K15
  + COMPK16.K16 + COMPK17.K17 + COMPK18.K18 + COMPK19.K19 + COMPK20.K20
  + COMPK21.K21 + COMPK22.K22 + COMPK23.K23 + COMPK24.K24 + COMPK25.K25 ;
end COMPL;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compm.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
with COMPK1,  COMPK2,  COMPK3,  COMPK4,  COMPK5,
     COMPK6,  COMPK7,  COMPK8,  COMPK9,  COMPK10,
     COMPK11, COMPK12, COMPK13, COMPK14, COMPK15,
     COMPK16, COMPK17, COMPK18, COMPK19, COMPK20,
     COMPK21, COMPK22, COMPK23, COMPK24, COMPK25 ;
procedure COMPM is
  L : INTEGER;
begin
  L :=
    COMPK1.K1   + COMPK2.K2   + COMPK3.K3   + COMPK4.K4   + COMPK5.K5
  + COMPK6.K6   + COMPK7.K7   + COMPK8.K8   + COMPK9.K9   + COMPK10.K10
  + COMPK11.K11 + COMPK12.K12 + COMPK13.K13 + COMPK14.K14 + COMPK15.K15
  + COMPK16.K16 + COMPK17.K17 + COMPK18.K18 + COMPK19.K19 + COMPK20.K20
  + COMPK21.K21 + COMPK22.K22 + COMPK23.K23 + COMPK24.K24 + COMPK25.K25 ;
end COMPM;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compm50.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
with COMPK1,  COMPK2,  COMPK3,  COMPK4,  COMPK5,
     COMPK6,  COMPK7,  COMPK8,  COMPK9,  COMPK10,
     COMPK11, COMPK12, COMPK13, COMPK14, COMPK15,
     COMPK16, COMPK17, COMPK18, COMPK19, COMPK20,
     COMPK21, COMPK22, COMPK23, COMPK24, COMPK25,
     COMPK26, COMPK27, COMPK28, COMPK29, COMPK30,
     COMPK31, COMPK32, COMPK33, COMPK34, COMPK35,
     COMPK36, COMPK37, COMPK38, COMPK39, COMPK40,
     COMPK41, COMPK42, COMPK43, COMPK44, COMPK45,
     COMPK46, COMPK47, COMPK48, COMPK49, COMPK50  ;
procedure COMPM is
  L : INTEGER;
begin
  L :=
    COMPK1.K1   + COMPK2.K2   + COMPK3.K3   + COMPK4.K4   + COMPK5.K5 +
    COMPK6.K6   + COMPK7.K7   + COMPK8.K8   + COMPK9.K9   + COMPK10.K10 +
    COMPK11.K11 + COMPK12.K12 + COMPK13.K13 + COMPK14.K14 + COMPK15.K15 +
    COMPK16.K16 + COMPK17.K17 + COMPK18.K18 + COMPK19.K19 + COMPK20.K20 +
    COMPK21.K21 + COMPK22.K22 + COMPK23.K23 + COMPK24.K24 + COMPK25.K25 +
    COMPK26.K26 + COMPK27.K27 + COMPK28.K28 + COMPK29.K29 + COMPK30.K30 +
    COMPK31.K31 + COMPK32.K32 + COMPK33.K33 + COMPK34.K34 + COMPK35.K35 +
    COMPK36.K36 + COMPK37.K37 + COMPK38.K38 + COMPK39.K39 + COMPK40.K40 +
    COMPK41.K41 + COMPK42.K42 + COMPK43.K43 + COMPK44.K44 + COMPK45.K45 +
    COMPK46.K46 + COMPK47.K47 + COMPK48.K48 + COMPK49.K49 + COMPK50.K50 ;
end COMPM;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compn.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPN is
begin
  null;
end COMPN;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compt.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
with TEXT_IO; use TEXT_IO;
procedure COMPT is
  A : INTEGER;
begin
  A := 0;
end COMPT;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--compz.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
procedure COMPZ is
  A : INTEGER;
begin
  A := 0;
end COMPZ;
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
--imp.txt
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

with TEXT_IO;
with CALENDAR; use CALENDAR;
with SYSTEM;
with DIRECT_IO;
procedure IMP is
  package INTEGER_IO is new TEXT_IO.INTEGER_IO(INTEGER);
  package FLOAT_IO is new TEXT_IO.FLOAT_IO(FLOAT);
  use TEXT_IO;
  use INTEGER_IO;
  use FLOAT_IO;

  pragma SUPPRESS(ACCESS_CHECK);
  pragma SUPPRESS(DISCRIMINANT_CHECK);
  pragma SUPPRESS(INDEX_CHECK);
  pragma SUPPRESS(LENGTH_CHECK);
  pragma SUPPRESS(RANGE_CHECK);
  pragma SUPPRESS(DIVISION_CHECK);
  pragma SUPPRESS(OVERFLOW_CHECK);
  pragma SUPPRESS(STORAGE_CHECK);

  MACHINE_SPEED : constant FLOAT := 1.0;

  procedure GOOD is
  begin
    PUT("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    ");
  end GOOD;
  
  procedure BAD is
  begin
    PUT("####################################    ");
  end BAD;

  procedure IMPLEMENTATION_DEFINITIONS is
    --LONG_INTEGER_IO is new TEXT_IO.INTEGER_IO(LONG_INTEGER); 
    --LONG_FLOAT_IO is new TEXT_IO.FLOAT_IO(LONG_FLOAT);
    package BOOLEAN_IO is new TEXT_IO.ENUMERATION_IO(BOOLEAN); use BOOLEAN_IO;
  --use LONG_INTEGER_IO;
  --use LONG_FLOAT_IO;
     
    
  begin
    
    PACKAGE_SYSTEM_PARAMETERS:
    begin
      PUT("PACKAGE SYSTEM:"); NEW_LINE; NEW_LINE;
      PUT("SYSTEM.STORAGE_UNIT "); PUT(SYSTEM.STORAGE_UNIT); NEW_LINE;
      PUT("SYSTEM.MEMORY_SIZE  "); PUT(SYSTEM.MEMORY_SIZE); NEW_LINE;
      PUT("SYSTEM.MIN_INT      "); PUT(SYSTEM.MIN_INT); NEW_LINE;
      PUT("SYSTEM.MAX_INT      "); PUT(SYSTEM.MAX_INT); NEW_LINE;
      if SYSTEM.MAX_DIGITS < 7  then BAD; end if;
      PUT("SYSTEM.MAX_DIGITS   "); PUT(SYSTEM.MAX_DIGITS); NEW_LINE;
      if SYSTEM.FINE_DELTA < 0.001  then GOOD; end if;
      PUT("SYSTEM.FINE_DELTA   "); PUT(SYSTEM.FINE_DELTA); NEW_LINE;
      PUT("SYSTEM.TICK         "); PUT(SYSTEM.TICK); NEW_LINE;
      NEW_LINE; NEW_LINE;
    end PACKAGE_SYSTEM_PARAMETERS;
    
    STANDARD:
    begin
      PUT("STANDARD:"); NEW_LINE; NEW_LINE;
      --PUT("SHORT_INTEGER is range "); PUT(SHORT_INTEGER'FIRST);
                                --PUT(".."); PUT(SHORT_INTEGER'LAST); NEW_LINE;
      if FLOAT(INTEGER'LAST) < 2.0E6  then  BAD; end if;
      PUT("INTEGER is range "); PUT(INTEGER'FIRST);
                                PUT(".."); PUT(INTEGER'LAST); NEW_LINE;
      --PUT("LONG_INTEGER is range "); PUT(LONG_INTEGER'FIRST);
                                --PUT(".."); PUT(LONG_INTEGER'LAST); NEW_LINE;
      PUT("DURATION'DELTA = "); PUT(FLOAT(DURATION'DELTA)); NEW_LINE;
      PUT("DURATION'SMALL = "); PUT(FLOAT(DURATION'SMALL)); NEW_LINE;
      NEW_LINE; NEW_LINE;
    end STANDARD;
    
    GENERAL_ATTRIBUTES:
    begin
      PUT("GENERAL ATTRIBUTES:"); NEW_LINE; NEW_LINE;
      if FLOAT'MACHINE_ROUNDS = FALSE  then BAD; end if;
      PUT("FLOAT'MACHINE_ROUNDS = "); PUT(FLOAT'MACHINE_ROUNDS); NEW_LINE;
      NEW_LINE; NEW_LINE;
    end GENERAL_ATTRIBUTES;
   
    CHAPTER_14:
    begin
      PUT("CHAPTER 14:"); NEW_LINE; NEW_LINE;
      if FLOAT(DIRECT_IO.COUNT'LAST) < 2.0E6  then BAD; end if;
      PUT("DIRECT_IO.COUNT'LAST "); PUT(DIRECT_IO.COUNT'LAST); NEW_LINE;
      PUT("TEXT_IO.COUNT'LAST "); PUT(TEXT_IO.COUNT'LAST); NEW_LINE;
      PUT("TEXT_IO.FIELD'LAST "); PUT(TEXT_IO.FIELD'LAST); NEW_LINE;
      NEW_LINE; NEW_LINE;
    end CHAPTER_14;
    
  end IMPLEMENTATION_DEFINITIONS;
  
  procedure CHARACTERISTICS_OF_MACHINE_FLOAT is
    subtype NUMBER is FLOAT;
  
    IBETA : INTEGER;
    --  The radix of the floating-point representation

    IT : INTEGER;
    --  The number of base IBETA digits in the NUMBER significand

    IRND : INTEGER;
    --  TRUE (1) if floating addition rounds, FALSE (0) if truncates

    NGRD : INTEGER;
    --  Number of guard digits for multiplication

    MACHEP : INTEGER;
    --  The largest negative integer 

    NEGEP : INTEGER;
    --  The largest negative integer such that
    --    1.0 + NUMBER(IBETA) ** MACHEP /= 1.0
    --  except that MACHEP is bounded below by -(IT + 3)

    IEXP : INTEGER;
    --  The number of bits (decimal places if IBETA = 10)
    --  reserved for the representation of the exponent (including
    --  the bias or sign) of a floating-point number

    MINEXP : INTEGER;
    --  The largest in magnitude negative integer such that
    --  NUMBER(IBETA) ** M is a positive floating-point number


    MAXEXP : INTEGER;
    --  The largest positive exponent for a finite floating-point number

    EPS : NUMBER;
    --  The smallest positive floating-point number such that
    --                              1.0 + EPS /= 1.0
    --  In particular, if IBETA = 2 or IRND = 0,
    --  EPS = NUMBER(IBETA) ** MACHEP
    --  Otherwise, EPS = (NUMBER(IBETA) ** MACHEP) / 2


    EPSNEG : NUMBER;
    --  A small positive floating-point number such that 1.0-EPSNEG /= 1.0  XMIN : NUMBER;
    --  The smallest non-vanishing floating-point power of the radix
    --  In particular, XMIN = NUMBER(IBETA) ** MAXEXP

    XMIN : NUMBER;
    --  The smallest finite floating-point number

    XMAX : NUMBER;
    --  The largest finite floating-point number

    --  ONE and ZERO must be defined in the package for NUMBER
    --  since they may not be able to take a litteral for user type
    ZERO : NUMBER := 0.0;
    ONE  : NUMBER := 1.0;
    A, B, Y, Z : NUMBER;
    I, K, MX, IZ : INTEGER;
    BETA, BETAM1, BETAIN : NUMBER;


  begin
    NEW_LINE; PUT(" CHARACTERISTICS_OF_MACHINE_FLOAT:"); NEW_LINE;
    
    A := ONE;
    while (((A + ONE) - A) - ONE) = ZERO  loop
      A := A + A;
    end loop;
    B := ONE;
    while ((A + B) - A) = ZERO  loop
      B := B + B;
    end loop;
  --  IBETA := INTEGER((A + B) - A);
  --  BETA := NUMBER(IBETA);
    B := (A + B) - A;
    B := B - ONE/(ONE+ONE);
    IBETA := 0;
    BETA := ZERO;
    while B > ZERO  loop
      BETA := BETA + ONE;
      IBETA := IBETA + 1;
      B := B - ONE;
    end loop;
  PUT("    IBETA  : INTEGER  :=    "); PUT(IBETA); NEW_LINE;
  PUT("    BETA   : NUMBER   :=    "); PUT(BETA); NEW_LINE;
  
    IT := 0;
    B := ONE;
    while (((B + ONE) - B) - ONE) = ZERO  loop
      IT := IT + 1;
      B := B * BETA;
    end loop;
  PUT("    IT     : INTEGER  :=    "); PUT(IT); NEW_LINE;
  
    IRND := 0;
    BETAM1 := BETA - ONE;
    if ((A + BETAM1) - A) /= ZERO  then
      IRND := 1;
    end if;
  PUT("    IRND   : INTEGER  :=    "); PUT(IRND); NEW_LINE;
  
    NEGEP := IT + 3;
    BETAIN := ONE / BETA;
    A := ONE;
  --  for I in 1..NEGEP  loop
  for I in 1..50  loop
  exit when I > NEGEP;
      A := A * BETAIN;
    end loop;
    B := A;
    while ((ONE - A) - ONE) = ZERO  loop
      A := A * BETA;
      NEGEP := NEGEP - 1;
    end loop;
    NEGEP := -NEGEP;
  PUT("    NEGEP  : INTEGER  :=    "); PUT(NEGEP); NEW_LINE;
  
    EPSNEG := A;
    if (IBETA /= 2) and (IRND /= 0)  then
      A := (A * (ONE + A)) / (ONE + ONE);
      if ((ONE - A) - ONE) /= ZERO  then
        EPSNEG := A;
      end if;
    end if;
  PUT("    EPSNEG : NUMBER   :=    "); PUT(EPSNEG); NEW_LINE;
  
    MACHEP := -IT - 3;
    A := B;
    while ((ONE + A) - ONE) = ZERO  loop
      A := A * BETA;
      MACHEP := MACHEP + 1;
    end loop;
  PUT("    MACHEP : INTEGER  :=    "); PUT(MACHEP); NEW_LINE;
  
    EPS := A;
    if (IBETA /= 2) and (IRND /= 0)  then
      A := (A * (ONE + A)) / (ONE + ONE);
      if ((ONE + A) - ONE) /= ZERO  then
        EPS := A;
      end if;
    end if;
  PUT("    EPS    : NUMBER   :=    "); PUT(EPS); NEW_LINE;
  
    NGRD := 0;
    if ((IRND = 0) and ((ONE + EPS) * ONE - ONE) /= ZERO)  then
      NGRD := 1;
    end if;
  PUT("    NGRD   : INTEGER  :=    "); PUT(NGRD); NEW_LINE;
  
    I := 0;
    K := 1;
    Z := BETAIN;
    loop
      Y := Z;
      Z := Y * Y;
      A := Z * ONE;
      exit when ((A + A) = ZERO) or (ABS(Z) >= Y);
      I := I + 1;
      K := K + K;
    end loop;
    if (IBETA /= 10)  then
      IEXP := I + 1;
      MX := K + K;
    else
      IEXP := 2;
      IZ := IBETA;
      while (K >= IZ)  loop
        IZ := IZ * IBETA;
        IEXP := IEXP + 1;
      end loop;
      MX := IZ + IZ - 1;
    end if;
    loop
      XMIN := Y;
      Y := Y * BETAIN;
      A := Y * ONE;
      exit when ((A + A) = ZERO) or (ABS(Y) >= XMIN);
      K := K + 1;
    end loop;
  PUT("    XMIN   : NUMBER   :=    "); PUT(XMIN); NEW_LINE;
  
    MINEXP := -K;
  PUT("    MINEXP : INTEGER  :=    "); PUT(MINEXP); NEW_LINE;
  
    if ((MX <= (K + K - 3)) and (IBETA /= 10))  then
      MX := MX + MX;
      IEXP := IEXP + 1;
    end if;
  PUT("    IEXP   : INTEGER  :=    "); PUT(IEXP); NEW_LINE;
  
    MAXEXP := MX + MINEXP;
    I := MAXEXP + MINEXP;
    if ((IBETA = 2) and (I = 0))  then
      MAXEXP := MAXEXP - 1;
    end if;
    if (I > 20)  then
      MAXEXP := MAXEXP - 1;
    end if;
    if (A /= Y)  then
      MAXEXP := MAXEXP - 2;
    end if;
  PUT("    MAXEXP : INTEGER  :=    "); PUT(MAXEXP); NEW_LINE;
  
    XMAX := ONE - EPSNEG;
    if ((XMAX * ONE) /= XMAX)  then
      XMAX := ONE - BETA * EPSNEG;
    end if;
    XMAX := XMAX / (BETA * BETA * BETA * XMIN);
    I := MAXEXP + MINEXP + 3;
    if I > 0  then
      for J in 1..50  loop
  exit when J > I;
        if IBETA = 2  then
          XMAX := XMAX + XMAX;
        else
          XMAX := XMAX * BETA;
        end if;
      end loop;
    end if;
  PUT("    XMAX   : NUMBER   :=    "); PUT(XMAX); NEW_LINE;
  
  exception
  when others  =>
    null;
  end CHARACTERISTICS_OF_MACHINE_FLOAT;

  procedure INTEGER_ADD is
    X : INTEGER := 1;
    Y : INTEGER := 0;
  begin
      for J in 1..1_000 loop
        Y := Y + X + X + X + X + X + X + X + X + X + X;
      end loop;
  end INTEGER_ADD;
  
  procedure FLOAT_ADD is
    X : FLOAT := 0.0001;
    Y : FLOAT := 0.0;
  begin
      for J in 1..1_000 loop
        Y := Y + X + X + X + X + X + X + X + X + X + X;
      end loop;
  end FLOAT_ADD;
  
  procedure MULT is
    X : FLOAT := 1.000_001;
    Y : FLOAT := 1.0;
  
  begin
    for I in 1..100  loop
      for J in 1..1_000 loop
        Y := Y * X * X * X * X * X * X * X * X * X * X;
      end loop;
    end loop;
  end MULT;
  
    function ACKERMANN(N, M : INTEGER) return INTEGER is
      begin
        if N = 0  then
          return M + 1;
        elsif M = 0  then
          return ACKERMANN(N-1, 1);
        else
          return ACKERMANN(N-1, ACKERMANN(N,M-1));
        end if;
      end ACKERMANN;
  
  
  procedure SIEVE is
    
    SIZE  : constant INTEGER := 8_190;
    FLAGS: array (0..SIZE) of BOOLEAN;
    COUNT : INTEGER := 0;
    TIMES : constant INTEGER := 10;
    
    procedure PRIMES is
      PRIME, K : INTEGER;
    begin
      for I in 0..SIZE  loop
        FLAGS(I) := TRUE;
      end loop;
      COUNT := 2;
      for I in 0..SIZE  loop
        if FLAGS(I) = TRUE  then
          PRIME := I + I + 3;
          K := I + PRIME;
          while K <= SIZE  loop
            FLAGS(K) := FALSE;
            K := K + PRIME;
          end loop;
          COUNT := COUNT + 1;
        end if;
      end loop;
    end PRIMES;
    
  begin
  
    for I in 1..TIMES  loop
      PRIMES;
    end loop;
  
  end SIEVE;
  
  procedure MACK is
  EXPECTED_ACKER_TIME : constant FLOAT := 8.0;
  EXPECTED_SIEVE_TIME : constant FLOAT := 8.0;
  
  START_TIME, STOP_TIME, TOTAL_TIME : FLOAT := 0.0;
  INTEGER_ADD_TIME, FLOAT_ADD_TIME, ACKER_TIME, SIEVE_TIME : FLOAT;
  I : INTEGER;
  
  begin

    START_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    INTEGER_ADD;
    STOP_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    INTEGER_ADD_TIME := STOP_TIME - START_TIME;
    PUT("INTEGER ADD TIME FOR 10000 = "); PUT(INTEGER_ADD_TIME); NEW_LINE;

    START_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    FLOAT_ADD;
    STOP_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    FLOAT_ADD_TIME := STOP_TIME - START_TIME;
    PUT("  FLOAT ADD TIME FOR 10000 = "); PUT(FLOAT_ADD_TIME); NEW_LINE;

    if FLOAT_ADD_TIME > INTEGER_ADD_TIME * 4.0  then
      BAD;
      PUT("FLOAT may be slow"); NEW_LINE;
    end if;

    START_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    I := ACKERMANN(3, 6);
    STOP_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    ACKER_TIME := STOP_TIME - START_TIME;
    if ACKER_TIME > EXPECTED_ACKER_TIME / MACHINE_SPEED * 2.0  then
      BAD;
    elsif ACKER_TIME < EXPECTED_ACKER_TIME / MACHINE_SPEED / 2.0  then
      GOOD;
    end if;
    PUT(" ACKER BENCHMARK   "); PUT(ACKER_TIME); NEW_LINE;

    START_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    SIEVE;
    STOP_TIME := FLOAT(CALENDAR.SECONDS(CALENDAR.CLOCK));
    SIEVE_TIME := STOP_TIME - START_TIME;
    if SIEVE_TIME > EXPECTED_SIEVE_TIME / MACHINE_SPEED * 2.0  then
      BAD;
    elsif SIEVE_TIME < EXPECTED_SIEVE_TIME / MACHINE_SPEED / 2.0  then
      GOOD;
    end if;
    PUT(" SIEVE BENCHMARK   "); PUT(SIEVE_TIME); NEW_LINE;
  
  end MACK;

  procedure TIMER is
    DATE, DATE1, DATE2 : TIME;
    YR, MO, DA : INTEGER;
    HR, MN, SC : INTEGER;
    SEC : FLOAT;
    J, K : INTEGER;
    A, B, C, D : FLOAT;
  
    procedure PUT_FILLED(N, W : in INTEGER) is
    begin
      if W = 2  and   N < 10  then
        PUT('0');
        PUT(N, 1);
      else 
        PUT(N, W);
      end if;
    end PUT_FILLED;
  
  begin
    DATE := CLOCK;
    YR :=(INTEGER(YEAR(DATE)));
    MO := (INTEGER(MONTH(DATE)));
    DA := (INTEGER(DAY(DATE)));
    PUT("THE DATE (IN ISO FORMAT) IS ");
    PUT(YR, 4);
    PUT_FILLED(MO, 2);
    PUT_FILLED(DA, 2);
    NEW_LINE;
    SEC := (FLOAT(SECONDS(DATE)));
    PUT("THE TIME OF DAY IS ");
    HR := INTEGER(SEC/3600.0 - 0.5);
    MN := INTEGER((SEC-FLOAT(HR)*3600.0)/60.0 - 0.5);
    SC := INTEGER((SEC-FLOAT(HR)*3600.0)-FLOAT(MN)*60.0);
    PUT_FILLED(HR,2); PUT(':'); PUT_FILLED(MN,2); PUT(':'); PUT_FILLED(SC,2);
    NEW_LINE;
  
    NEW_LINE;
    A := 0.0;
    C := 0.0;
    D := 1000.0;
    FOR I IN 1..1000  LOOP
      DATE1 := CLOCK;
      DATE2 := CLOCK;
      B := (FLOAT(SECONDS(DATE2) - SECONDS(DATE1)));
      IF B > A  THEN
        A := B;
      END IF;
      IF B < D  THEN
        D := B;
      END IF;
      C := C + B;
    END LOOP;
    PUT("AVERAGE TIME BETWEEN SUCCESSIVE CALLS TO CLOCK  ");
    PUT(FLOAT(C/1000.0));
    NEW_LINE;
    PUT("MAXIMUM TIME BETWEEN SUCCESSIVE CALLS TO CLOCK  ");
    PUT(FLOAT(A));
    NEW_LINE;
    PUT("MINIMUM TIME BETWEEN SUCCESSIVE CALLS TO CLOCK  ");
    PUT(FLOAT(D));
    NEW_LINE;
    NEW_LINE;
  
    DATE1 := CLOCK;
    FOR I IN 1..10000  LOOP
      K := I + 1 - I /2;
    END LOOP;
    DATE2 := CLOCK;
    PUT("10000 ARBITARY OPERATIONS    ");
    PUT(FLOAT(SECONDS(DATE2) - SECONDS(DATE1)));
    NEW_LINE;
  
  end TIMER;

begin
  
  IMPLEMENTATION_DEFINITIONS;
  CHARACTERISTICS_OF_MACHINE_FLOAT;
  MACK;
  TIMER;
  
end IMP;