Shlomi Fish avatar Shlomi Fish committed 9b1e231

Add the bfp.

Comments (0)

Files changed (37)

bfp/bfp_LUSOL/LUSOL/LUSOL-overview.txt

+            Notes for Contribution of LUSOL to COIN-OR
+                            May 2004
+
+Introduction
+============
+
+LUSOL maintains sparse LU factors of a square or rectangular sparse matrix.  It includes a Basis Factorization Package (BFP) suitable for implementing simplex and reduced-gradient methods for optimization.  It is a set of  routines written in ANSI C (adapted from the original Fortran 77 version).
+
+LUSOL includes the following features:
+
+-  A Markowitz-based sparse LU factorization for square,
+   rectangular and possibly singular matrices.
+
+-  Three options for balancing sparsity and stability:
+   Threshold Partial/Rook/Complete Pivoting (TPP, TRP, TCP).
+
+-  Rank-revealing properties.  TRP and TCP are intended for detecting singularities.
+
+-  Dynamic storage allocation (C version only).
+
+-  Stable column replacement as in the method of Bartels and Golub.
+
+-  Other stable updates: add, replace, or delete row or column
+   (currently F77 version only).
+
+-  Implementation into an easy-to-use BFP API (C version only).
+
+
+Implementation
+==============
+
+The Factor routine is similar to the classical Markowitz routines MA28 and LA05 in the Harwell Subroutine Library. The source matrix nonzeros are stored column-wise with the largest entry at the top of each column.  Internally, the structure is also accessible row-wise.  All entries in a particular column or row are held in contiguous storage.  Fill is accommodated by moving a column or row to the beginning of free storage. Occasional compressions recover storage.  This scheme is effective for column-oriented TPP.  When the remaining matrix reaches a specified density, the factors are completed using dense processing.
+
+TRP uses an additional vector of storage to maintain the largest element in each remaining row.
+
+TCP uses a heap structure to hold the largest element in each column.  The largest element in the remaining matrix is then available at the top of the heap.
+
+The final L is stored column-wise (and never changed).  The final U is stored row-wise as a triangular or trapezoidal sparse matrix.
+
+Column replacements are implemented using a forward sweep of 2-by-2 stabilized elimination matrices.  L is updated in product form.  U is updated explicitly.
+
+The other updates use either forward or backward sweeps. They tend to generate more nonzeros than column replacement.
+
+Both the F77 and C versions contain extensive comments, method and implementational information as part of the code.
+
+The C version contains a record-based wrapper for the data.  Function calls have been simplified by including references to this structure.  New maintenance routines enable dynamic instance creation and destruction, and  simplifies access to the most frequently used functions.  The LUSOL C library is multi-instance and fully re-entrant.  All control and output parameters have been given long descriptive names for usability. 
+
+
+Benefits
+========
+
+Rank-revealing properties and rectangular factors (and updates) have not previously been available in sparse LU software.  With sensible parameter settings and reasonably scaled data, all routines are numerically stable.  The updates may be called hundreds of times, and the decision to refactorize can be based on sparsity considerations alone.
+
+In the Factor routine, rook pivoting (TRP) gives reliable rank determination without catastrophic degradation in sparsity or speed.  Complete pivoting (TCP) is included for moderate-sized matrices and for checking pathological cases (but the factors tend to be substantially more dense).
+
+To conserve storage, one may request only the row and column pivot orders.  The factors are discarded as they are computed.  This is useful for basis repair, or for selecting a basis from a rectangular matrix.
+
+
+Known Inefficiencies
+====================
+
+LUSOL is usually efficient on sparse matrices with dimensions up to about 100,000 (but not millions).
+
+In the Factor routine, row and column lists must be updated each time a row and column is eliminated.  Deleting the pivot row and column is inefficient if the original matrix contains unusually dense rows or columns.  For TPP, dense columns could be kept aside and incorporated at the end via updates (but dense rows remain a difficulty).  For TRP and TCP, all rows and columns must be present to achieve the required numerical properties.
+
+For TRP, the current bottleneck is updating the vector containing the largest element in each row.  One solution would be to include the matrix nonzeros in the row structure (but this carries its own cost).
+
+For TCP, the heap structure is already efficient, but the dense factors (and the extended searching for acceptable pivots) are unavoidable expenses.
+
+The triangular Solve routines do not take full of advantage of sparse right-hand sides.  Gilbert and Peierls have shown how to solve Lx = (sparse b) efficiently if L is stored column-wise.  Their approach could therefore be implemented in LUSOL for solves with L and U(transpose).  Solves with L(transpose) and U would need a second copy of L and U. 
+
+
+Original Reference
+==================
+
+P. E. Gill, W. Murray, M. A. Saunders and M. H. Wright, Maintaining LU factors of a general sparse matrix, Linear Algebra and its Applications 88/89, 239-270 (1987).
+
+
+Maintainers
+===========
+
+F77 version: Michael Saunders (saunders@stanford.edu).
+C version: Kjell Eikland (kjell.eikland@broadpark.no).
+
+
+Contributors
+============
+
+Philip Gill, Walter Murray, Margaret Wright, Michael O'Sullivan.

bfp/bfp_LUSOL/LUSOL/LUSOL_LGPL.txt

+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+

bfp/bfp_LUSOL/LUSOL/LUSOL_Overview.txt

+            Notes for Contribution of LUSOL to COIN-OR
+                            May 2004
+
+Introduction
+============
+
+LUSOL maintains sparse LU factors of a square or rectangular sparse matrix.  It includes a Basis Factorization Package (BFP) suitable for implementing simplex and reduced-gradient methods for optimization.  It is a set of  routines written in ANSI C (adapted from the original Fortran 77 version).
+
+LUSOL includes the following features:
+
+-  A Markowitz-based sparse LU factorization for square,
+   rectangular and possibly singular matrices.
+
+-  Three options for balancing sparsity and stability:
+   Threshold Partial/Rook/Complete Pivoting (TPP, TRP, TCP).
+
+-  Rank-revealing properties.  TRP and TCP are intended for detecting singularities.
+
+-  Dynamic storage allocation (C version only).
+
+-  Stable column replacement as in the method of Bartels and Golub.
+
+-  Other stable updates: add, replace, or delete row or column
+   (currently F77 version only).
+
+-  Implementation into an easy-to-use BFP API (C version only).
+
+
+Implementation
+==============
+
+The Factor routine is similar to the classical Markowitz routines MA28 and LA05 in the Harwell Subroutine Library. The source matrix nonzeros are stored column-wise with the largest entry at the top of each column.  Internally, the structure is also accessible row-wise.  All entries in a particular column or row are held in contiguous storage.  Fill is accommodated by moving a column or row to the beginning of free storage. Occasional compressions recover storage.  This scheme is effective for column-oriented TPP.  When the remaining matrix reaches a specified density, the factors are completed using dense processing.
+
+TRP uses an additional vector of storage to maintain the largest element in each remaining row.
+
+TCP uses a heap structure to hold the largest element in each column.  The largest element in the remaining matrix is then available at the top of the heap.
+
+The final L is stored column-wise (and never changed).  The final U is stored row-wise as a triangular or trapezoidal sparse matrix.
+
+Column replacements are implemented using a forward sweep of 2-by-2 stabilized elimination matrices.  L is updated in product form.  U is updated explicitly.
+
+The other updates use either forward or backward sweeps. They tend to generate more nonzeros than column replacement.
+
+Both the F77 and C versions contain extensive comments, method and implementational information as part of the code.
+
+The C version contains a record-based wrapper for the data.  Function calls have been simplified by including references to this structure.  New maintenance routines enable dynamic instance creation and destruction, and  simplifies access to the most frequently used functions.  The LUSOL C library is multi-instance and fully re-entrant.  All control and output parameters have been given long descriptive names for usability. 
+
+
+Benefits
+========
+
+Rank-revealing properties and rectangular factors (and updates) have not previously been available in sparse LU software.  With sensible parameter settings and reasonably scaled data, all routines are numerically stable.  The updates may be called hundreds of times, and the decision to refactorize can be based on sparsity considerations alone.
+
+In the Factor routine, rook pivoting (TRP) gives reliable rank determination without catastrophic degradation in sparsity or speed.  Complete pivoting (TCP) is included for moderate-sized matrices and for checking pathological cases (but the factors tend to be substantially more dense).
+
+To conserve storage, one may request only the row and column pivot orders.  The factors are discarded as they are computed.  This is useful for basis repair, or for selecting a basis from a rectangular matrix.
+
+
+Known Inefficiencies
+====================
+
+LUSOL is usually efficient on sparse matrices with dimensions up to about 100,000 (but not millions).
+
+In the Factor routine, row and column lists must be updated each time a row and column is eliminated.  Deleting the pivot row and column is inefficient if the original matrix contains unusually dense rows or columns.  For TPP, dense columns could be kept aside and incorporated at the end via updates (but dense rows remain a difficulty).  For TRP and TCP, all rows and columns must be present to achieve the required numerical properties.
+
+For TRP, the current bottleneck is updating the vector containing the largest element in each row.  One solution would be to include the matrix nonzeros in the row structure (but this carries its own cost).
+
+For TCP, the heap structure is already efficient, but the dense factors (and the extended searching for acceptable pivots) are unavoidable expenses.
+
+The triangular Solve routines do not take full of advantage of sparse right-hand sides.  Gilbert and Peierls have shown how to solve Lx = (sparse b) efficiently if L is stored column-wise.  Their approach could therefore be implemented in LUSOL for solves with L and U(transpose).  Solves with L(transpose) and U would need a second copy of L and U. 
+
+
+Original Reference
+==================
+
+P. E. Gill, W. Murray, M. A. Saunders and M. H. Wright, Maintaining LU factors of a general sparse matrix, Linear Algebra and its Applications 88/89, 239-270 (1987).
+
+
+Maintainers
+===========
+
+F77 version: Michael Saunders (saunders@stanford.edu).
+C version: Kjell Eikland (kjell.eikland@broadpark.no).
+
+
+Contributors
+============
+
+Philip Gill, Walter Murray, Margaret Wright, Michael O'Sullivan.

bfp/bfp_LUSOL/LUSOL/LUSOL_README.txt

+README.TXT for LUSOL - Advanced LU solver with enhanced numerical stability options
+-----------------------------------------------------------------------------------
+
+LUSOL - pronounced "L-U-SOL" - was developed by Prof. Michael Saunders at the 
+Stanford (University) Optimization Laboratory over a period of 2 decades of 
+progressive improvements.  It is a particularly capable matrix factorization system
+and includes sparsity-preserving column updates and equation solving.  It is
+therefore particularly well suited to be part of a system to solve tough mathematical 
+programming problems.  Further details can be found in the file "LUSOL-overview.txt."
+
+A big step has been made in converting the original Fortran code into a much more
+easily accessible and modularized system based on ANSI C as part of the release of
+lp_solve v5.  LUSOL is fully implemented as a "Basis Factorization Package", BFP in 
+lp_solve and is the BFP of choice for large and complex models, if not all.  As part
+of the conversion to C, processor optimized BLAS functionality has been enabled, and
+future enhancements to LUSOL may make increasing use of this, ensuring top performance. 
+
+For the lp_solve release of LUSOL, a stand-alone equation solving system has also been
+developed.  A pre-compiled Windows command-line executable version is included in the
+standard distribution of LUSOL. In addition, the program options illustrate several 
+advanced uses of LUSOL.  The equation solving utility features reading of standard 
+matrix files in the Harwell-Boeing, MatrixMarket and text formats.  Sample matrix 
+models are provided for Harwell-Boeing (.RUA) and MatrixMarket (.mtx).  
+
+The LUSOL code is released under the GNU Lesser General Public Licence.  Confer the 
+file "Licence_LGPL.txt" for the full terms of this licence.  These terms make lp_solve
+and LUSOL available and distributable on equal licencing terms.  It is expected that
+LUSOL will have an official repository in the near future, but the LUSOL archive at
+the Yahoo lp_solve group will be an official copy and the formal repository until
+further notice.
+
+
+Kjell Eikland
+14 July 2004
+Oslo, Norway

bfp/bfp_LUSOL/LUSOL/Row-based L0.txt

+Traditional column-based L0
+---------------------------
+V[  3] = V[  3] + L[1,3]*V[  1]
+0.9375 = -1.26316 + -0.789474*-2.7875
+V[  2] = V[  2] + L[1,2]*V[  1]
+-0.846875 =  -0.15 +   0.25*-2.7875
+V[  2] = V[  2] + L[3,2]*V[  3]
+-0.925 = -0.846875 + -0.0833333*0.9375
+V[  4] = V[  4] + L[3,4]*V[  3]
+-0.3125 =      0 + -0.333333*0.9375
+
+Solution vector
+            -2.7875             -0.925             0.9375            -0.3125
+
+
+New row-based L0
+----------------
+V[  4] = V[  4] + L[3,4]*V[  3]
+0.421053 =      0 + -0.333333*-1.26316
+V[  2] = V[  2] + L[3,2]*V[  3]
+-0.0447368 =  -0.15 + -0.0833333*-1.26316
+V[  2] = V[  2] + L[1,2]*V[  1]
+-0.741612 = -0.0447368 +   0.25*-2.7875
+V[  3] = V[  3] + L[1,3]*V[  1]
+0.9375 = -1.26316 + -0.789474*-2.7875
+
+Solution vector
+            -2.7875          -0.741612             0.9375           0.421053
+
+
+L0 generated
+----------------
+         0         0         0         0
+         0         0         0         0
+         0      0.25 -0.789474         0
+         0-0.0833333         0 -0.333333

bfp/bfp_LUSOL/LUSOL/Victoria1850.RUA

+1UNSYMMETRIC MATRIX             MAHINDAS ST ERTAR             24OCT84   MAHINDAS
+          2488           126           769          1537            56          
+RUA                     1258          1258          7682             0          
+(10I8)          (10I8)          (1P5D16.8)          (1P5D16.8)                  
+M                         55           162                                      
+       1      37      74     111     148     185     222     259     296     317
+     337     351     366     378     394     407     422     434     444     456
+     466     478     486     497     511     526     541     556     572     589
+     611     624     638     655     670     683     697     709     720     730
+     742     756     777     789     801     815     827     852     862     874
+     881     885     889     891     893     895     897     899     901     903
+     905     907     909     911     913     915     917     919     921     923
+     925     927     929     931     933     935     937     939     941     943
+     945     947     949     951     953     955     957     959     961     963
+     965     967     969     971     973     975     977     979     981     983
+     985     986     987     989     991     993     995     997     999    1001
+    1003    1005    1007    1009    1011    1013    1015    1017    1019    1021
+    1023    1025    1027    1029    1031    1033    1035    1037    1039    1041
+    1043    1045    1047    1049    1051    1053    1055    1057    1059    1061
+    1063    1065    1067    1069    1071    1073    1075    1077    1079    1081
+    1083    1085    1087    1089    1091    1093    1095    1097    1099    1101
+    1103    1105    1107    1109    1111    1113    1115    1117    1119    1121
+    1123    1125    1127    1129    1131    1133    1135    1137    1139    1141
+    1143    1145    1147    1149    1151    1153    1155    1157    1159    1161
+    1163    1165    1167    1169    1171    1173    1175    1177    1179    1181
+    1183    1185    1187    1189    1191    1193    1195    1197    1199    1201
+    1203    1205    1207    1209    1211    1213    1215    1217    1219    1221
+    1223    1225    1227    1229    1231    1233    1235    1237    1239    1241
+    1243    1245    1247    1249    1251    1253    1255    1257    1259    1261
+    1263    1265    1267    1269    1271    1273    1275    1277    1279    1281
+    1283    1285    1287    1289    1291    1293    1295    1297    1299    1301
+    1303    1305    1307    1309    1311    1313    1315    1317    1319    1321
+    1323    1325    1327    1329    1331    1333    1335    1337    1339    1341
+    1343    1345    1347    1349    1351    1353    1355    1357    1359    1361
+    1363    1365    1367    1369    1371    1373    1375    1377    1379    1381
+    1383    1385    1387    1389    1391    1393    1395    1397    1399    1401
+    1403    1405    1407    1409    1411    1413    1415    1417    1419    1421
+    1423    1425    1427    1429    1431    1433    1435    1437    1439    1441
+    1443    1445    1447    1448    1449    1450    1452    1454    1455    1457
+    1458    1460    1462    1464    1466    1468    1469    1471    1473    1475
+    1477    1479    1481    1483    1485    1487    1488    1489    1491    1492
+    1493    1494    1496    1498    1500    1502    1504    1506    1508    1510
+    1512    1514    1516    1518    1520    1522    1524    1525    1526    1528
+    1530    1531    1533    1535    1536    1537    1538    1539    1540    1541
+    1543    1545    1547    1549    1550    1552    1554    1556    1558    1560
+    1561    1562    1564    1566    1568    1570    1572    1574    1576    1578
+    1579    1581    1583    1584    1585    1586    1588    1590    1592    1594
+    1596    1598    1600    1602    1604    1605    1607    1609    1611    1613
+    1615    1617    1619    1621    1623    1625    1627    1629    1630    1632
+    1634    1637    1640    1643    1646    1649    1652    1655    1658    1661
+    1664    1667    1670    1673    1676    1679    1682    1685    1688    1691
+    1694    1697    1700    1703    1706    1709    1712    1715    1718    1721
+    1724    1727    1730    1733    1736    1739    1742    1745    1748    1751
+    1754    1757    1760    1763    1766    1769    1772    1775    1778    1781
+    1784    1787    1790    1793    1796    1801    1806    1811    1816    1821
+    1826    1831    1832    1833    1834    1835    1836    1837    1838    1839
+    1840    1841    1842    1843    1844    1845    1846    1847    1848    1850
+    1851    1852    1853    1854    1855    1856    1857    1858    1859    1860
+    1861    1862    1863    1865    1866    1868    1870    1871    1872    1873
+    1875    1876    1877    1878    1879    1881    1882    1883    1885    1887
+    1888    1890    1891    1892    1894    1895    1896    1897    1898    1899
+    1900    1901    1902    1903    1904    1905    1906    1907    1908    1909
+    1910    1911    1912    1914    1915    1916    1917    1918    1919    1920
+    1922    1923    1924    1925    1926    1927    1928    1929    1930    1931
+    1932    1933    1934    1935    1936    1937    1938    1939    1940    1942
+    1943    1944    1945    1946    1947    1948    1949    1950    1951    1952
+    1954    1956    1958    1960    1962    1964    1966    1968    1970    1972
+    1974    1976    1978    1980    1982    1984    1986    1988    1990    1992
+    1994    1996    1998    2000    2002    2004    2006    2008    2010    2012
+    2014    2016    2018    2020    2022    2024    2026    2028    2030    2032
+    2034    2036    2038    2040    2042    2044    2046    2048    2050    2052
+    2054    2056    2058    2060    2062    2064    2066    2068    2070    2071
+    2073    2075    2077    2079    2081    2083    2085    2087    2089    2091
+    2093    2095    2097    2099    2101    2103    2105    2107    2109    2111
+    2113    2115    2117    2119    2121    2123    2125    2127    2129    2131
+    2133    2135    2137    2139    2140    2142    2144    2146    2147    2148
+    2149    2150    2151    2152    2153    2155    2156    2157    2166    2174
+    2181    2196    2199    2202    2205    2208    2211    2214    2217    2220
+    2223    2226    2229    2232    2235    2238    2241    2244    2247    2250
+    2253    2256    2259    2262    2265    2268    2271    2274    2277    2280
+    2283    2286    2289    2292    2295    2298    2301    2304    2307    2310
+    2313    2316    2319    2322    2325    2328    2331    2334    2337    2340
+    2343    2345    2347    2348    2442    2536    2630    2727    2824    2915
+    3014    3110    3208    3306    3323    3329    3338    3359    3367    3374
+    3380    3401    3407    3413    3419    3425    3431    3438    3445    3457
+    3464    3469    3477    3483    3511    3551    3572    3578    3587    3601
+    3610    3628    3667    3682    3688    3698    3720    3757    3763    3772
+    3871    3971    3979    4032    4037    4041    4045    4050    4055    4067
+    4079    4095    4104    4106    4114    4121    4126    4131    4136    4141
+    4149    4155    4160    4166    4171    4179    4184    4189    4195    4200
+    4207    4212    4221    4232    4238    4241    4246    4252    4271    4279
+    4300    4305    4310    4319    4325    4349    4386    4395    4397    4405
+    4420    4442    4444    4446    4448    4450    4452    4454    4456    4459
+    4461    4463    4666    4671    4676    4681    4686    4691    4696    4701
+    4706    4711    4716    4721    4726    4731    4736    4741    4746    4751
+    4756    4761    4766    4771    4776    4781    4786    4791    4796    4801
+    4806    4811    4816    4821    4826    4831    4836    4841    4846    4851
+    4856    4861    4866    4871    4876    4881    4886    4891    4896    4901
+    4906    4910    4914    4916    4918    4922    4926    4930    4934    4938
+    4942    4946    4950    4951    4952    4953    4954    4955    4956    4957
+    4958    4959    4960    4961    4962    4963    4964    4965    4966    4967
+    4968    4969    4970    4971    4972    4973    4974    4975    4976    4977
+    4978    4979    4980    4981    4982    4983    4984    4985    4986    4987
+    4988    4989    4990    4991    4992    4993    4994    4996    4998    5000
+    5055    5110    5112    5167    5169    5224    5279    5334    5389    5444
+    5446    5501    5556    5611    5666    5721    5776    5831    5886    5941
+    5943    5998    6053    6055    6057    6059    6114    6169    6224    6279
+    6334    6389    6444    6499    6554    6609    6664    6719    6774    6829
+    6884    6886    6888    6943    6998    7000    7055    7110    7112    7114
+    7116    7119    7122    7125    7128    7131    7133    7136    7139    7142
+    7145    7148    7151    7154    7157    7160    7163    7166    7169    7172
+    7175    7178    7181    7184    7186    7189    7192    7195    7198    7201
+    7204    7207    7210    7213    7216    7219    7222    7225    7228    7231
+    7234    7236    7239    7242    7245    7247    7250    7252    7254    7256
+    7258    7260    7263    7265    7267    7278    7315    7321    7329    7331
+    7333    7335    7337    7339    7341    7343    7345    7347    7349    7351
+    7353    7355    7357    7359    7361    7363    7365    7367    7369    7371
+    7373    7375    7377    7379    7381    7383    7385    7387    7389    7391
+    7393    7395    7397    7399    7401    7403    7405    7407    7409    7411
+    7413    7415    7417    7418    7419    7420    7421    7422    7423    7424
+    7426    7428    7430    7432    7434    7436    7438    7440    7442    7444
+    7446    7448    7450    7452    7454    7456    7458    7460    7462    7464
+    7466    7468    7470    7472    7474    7476    7478    7480    7482    7484
+    7486    7488    7490    7492    7494    7496    7498    7500    7502    7504
+    7506    7508    7510    7512    7514    7515    7516    7517    7518    7519
+    7520    7521    7523    7568    7569    7571    7573    7574    7577    7579
+    7634    7636    7637    7638    7639    7640    7641    7642    7643    7644
+    7645    7646    7647    7648    7649    7650    7651    7652    7653    7654
+    7655    7656    7657    7658    7659    7660    7661    7662    7663    7664
+    7665    7666    7667    7668    7669    7670    7671    7672    7673    7674
+    7675    7676    7677    7678    7679    7680    7681    7682    7683        
+       1      53     105     157     158     159     160     161     162     163
+     164     165     166     986     987     988     989     991     992     996
+     999    1003    1016    1017    1018    1029    1032    1033    1035    1200
+    1201    1202    1229    1231    1236    1242       2      54     106     167
+     168     169     170     171     172     173     174     175     176     986
+     987     988     989     990     991     992     996     999    1003    1016
+    1017    1018    1029    1032    1033    1035    1200    1201    1202    1229
+    1231    1236    1242       3      55     107     177     178     179     180
+     181     182     183     184     185     186     986     987     988     989
+     990     991     992     996     999    1003    1016    1017    1018    1029
+    1032    1033    1035    1200    1201    1202    1229    1231    1236    1242
+       4      56     108     187     188     189     190     191     192     193
+     194     195     196     986     987     988     989     990     991     992
+     996     999    1003    1016    1017    1018    1029    1032    1033    1035
+    1200    1201    1202    1229    1231    1236    1242       5      57     109
+     197     198     199     200     201     202     203     204     205     206
+     986     987     988     989     990     991     992     996     999    1003
+    1016    1017    1018    1029    1032    1033    1035    1200    1201    1202
+    1229    1231    1236    1242       6      58     110     207     208     209
+     210     211     212     213     214     215     216     986     987     988
+     989     990     991     992     996     999    1003    1016    1017    1018
+    1029    1032    1033    1035    1200    1201    1202    1229    1231    1236
+    1242       7      59     111     217     218     219     220     221     222
+     223     224     225     226     986     987     988     989     990     991
+     992     996     999    1003    1016    1017    1018    1029    1032    1033
+    1035    1200    1201    1202    1229    1231    1236    1242       8      60
+     112     227     228     229     230     231     232     233     234     235
+     236     986     987     988     989     990     991     992     996     999
+    1003    1016    1017    1018    1029    1032    1033    1035    1200    1201
+    1202    1229    1231    1236    1242       9      61     113     237     986
+     987     989     994    1016    1017    1018    1020    1024    1029    1032
+    1033    1035    1199    1231    1237    1242      10      62     114     238
+     988     989     990     992    1021    1024    1025    1032    1033    1035
+    1202    1203    1234    1236    1237    1238      11      63     115     239
+     993     999    1016    1017    1024    1032    1033    1035    1206    1237
+      12      64     116     240     993     995    1001    1016    1024    1032
+    1033    1035    1206    1212    1237      13      65     117     241    1024
+    1025    1029    1031    1032    1033    1035    1237      14      66     118
+     242     995     999    1016    1017    1022    1024    1029    1032    1033
+    1035    1214    1237      15      67     119     243     992    1021    1024
+    1029    1032    1033    1035    1205    1237      16      68     120     244
+    1016    1023    1024    1029    1032    1033    1035    1229    1236    1237
+    1242      17      69     121     245    1017    1023    1024    1028    1032
+    1033    1035    1237      18      70     122     246    1003    1016    1017
+    1032    1033    1035      19      71     123     247    1017    1023    1024
+    1032    1033    1035    1219    1237      20      72     124     248    1016
+    1024    1032    1033    1035    1237      21      73     125     249    1025
+    1027    1028    1029    1032    1033    1035    1221      22      74     126
+     250    1028    1032    1033    1035      23      75     127     251    1024
+    1028    1032    1033    1035    1223    1237      24      76     128     252
+    1017    1024    1028    1029    1032    1033    1035    1231    1237    1241
+      25      77     129     253     999    1017    1023    1024    1028    1029
+    1032    1033    1035    1225    1237      26      78     130     254    1017
+    1018    1023    1024    1028    1029    1032    1033    1035    1226    1237
+      27      79     131     255    1017    1023    1024    1025    1028    1029
+    1031    1032    1033    1035    1237      28      80     132     256     999
+    1017    1023    1024    1028    1032    1033    1035    1228    1229    1236
+    1237      29      81     133     257     999    1016    1017    1021    1024
+    1028    1029    1032    1033    1035    1229    1236    1237      30      82
+     134     258     993     995     998     999    1016    1017    1022    1024
+    1032    1033    1035    1206    1211    1212    1230    1231    1236    1237
+      31      83     135     259    1017    1018    1024    1029    1032    1033
+    1035    1231    1237      32      84     136     260     994     995    1017
+    1021    1024    1029    1032    1033    1035    1237      33      85     137
+     261     990     992     994     996    1003    1017    1020    1021    1024
+    1032    1033    1035    1237      34      86     138     262     992     994
+    1020    1024    1026    1032    1033    1035    1203    1234    1237      35
+      87     139     263     995     999    1017    1024    1032    1033    1035
+    1235    1237      36      88     140     264     996    1017    1023    1024
+    1029    1032    1033    1035    1236    1237      37      89     141     265
+    1023    1024    1029    1031    1032    1033    1035    1237      38      90
+     142     266    1024    1025    1029    1032    1033    1035    1237      39
+      91     143     267    1024    1026    1032    1033    1035    1237      40
+      92     144     268    1025    1027    1029    1031    1032    1033    1035
+    1240      41      93     145     269    1016    1024    1028    1029    1031
+    1032    1033    1035    1237    1241      42      94     146     270     994
+     996    1003    1016    1017    1018    1020    1021    1022    1024    1027
+    1028    1032    1033    1035    1237    1242      43      95     147     271
+    1010    1024    1029    1032    1033    1035    1223    1237      44      96
+     148     272    1017    1024    1032    1033    1035    1039    1223    1237
+      45      97     149     273    1017    1024    1028    1029    1032    1033
+    1035    1237    1241    1242      46      98     150     274    1003    1017
+    1018    1023    1032    1033    1035    1236      47      99     151     275
+    1000    1010    1014    1016    1017    1018    1023    1025    1028    1029
+    1030    1032    1033    1035    1213    1227    1229    1231    1236    1238
+    1241      48     100     152     276    1003    1017    1032    1033    1216
+    1236      49     101     153     277    1014    1016    1017    1025    1030
+    1032    1033    1035      50     102     154     278    1032    1033    1250
+      51     103     155     279      52     104     156     280       1    1094
+       2    1094       3    1094       4    1094       5    1094       6    1094
+       7    1094       8    1094       9    1094      10    1094      11    1094
+      12    1094      13    1094      14    1094      15    1094      16    1094
+      17    1094      18    1094      19    1094      20    1094      21    1094
+      22    1094      23    1094      24    1094      25    1094      26    1094
+      27    1094      28    1094      29    1094      30    1094      31    1094
+      32    1094      33    1094      34    1094      35    1094      36    1094
+      37    1094      38    1094      39    1094      40    1094      41    1094
+      42    1094      43    1094      44    1094      45    1094      46    1094
+      47    1094      48    1094      49      50      51    1094      52    1094
+      53    1095      54    1096      55    1097      56    1098      57    1099
+      58    1100      59    1101      60    1102      61    1103      62    1104
+      63    1105      64    1106      65    1107      66    1108      67    1109
+      68    1110      69    1111      70    1112      71    1113      72    1114
+      73    1115      74    1116      75    1117      76    1118      77    1119
+      78    1120      79    1121      80    1122      81    1123      82    1124
+      83    1125      84    1126      85    1127      86    1128      87    1129
+      88    1130      89    1131      90    1132      91    1133      92    1134
+      93    1135      94    1136      95    1137      96    1138      97    1139
+      98    1140      99    1141     100    1142     101    1143     102    1144
+     103    1145     104    1146     105    1147     106    1148     107    1149
+     108    1150     109    1151     110    1152     111    1153     112    1154
+     113    1155     114    1156     115    1157     116    1158     117    1159
+     118    1160     119    1161     120    1162     121    1163     122    1164
+     123    1165     124    1166     125    1167     126    1168     127    1169
+     128    1170     129    1171     130    1172     131    1173     132    1174
+     133    1175     134    1176     135    1177     136    1178     137    1179
+     138    1180     139    1181     140    1182     141    1183     142    1184
+     143    1185     144    1186     145    1187     146    1188     147    1189
+     148    1190     149    1191     150    1192     151    1193     152    1194
+     153    1195     154    1196     155    1197     156    1198     157    1040
+     158    1041     159    1042     160    1043     161    1044     162    1045
+     163    1046     164    1047     165    1048     166    1049     167    1040
+     168    1041     169    1042     170    1043     171    1044     172    1045
+     173    1046     174    1047     175    1048     176    1049     177    1040
+     178    1041     179    1042     180    1043     181    1044     182    1045
+     183    1046     184    1047     185    1048     186    1049     187    1040
+     188    1041     189    1042     190    1043     191    1044     192    1045
+     193    1046     194    1047     195    1048     196    1049     197    1040
+     198    1041     199    1042     200    1043     201    1044     202    1045
+     203    1046     204    1047     205    1048     206    1049     207    1040
+     208    1041     209    1042     210    1043     211    1044     212    1045
+     213    1046     214    1047     215    1048     216    1049     217    1040
+     218    1041     219    1042     220    1043     221    1044     222    1045
+     223    1046     224    1047     225    1048     226    1049     227    1040
+     228    1041     229    1042     230    1043     231    1044     232    1045
+     233    1046     234    1047     235    1048     236    1049     237    1050
+     238    1051     239    1052     240    1053     241    1054     242    1055
+     243    1056     244    1057     245    1058     246    1059     247    1060
+     248    1061     249    1062     250    1063     251    1064     252    1065
+     253    1066     254    1067     255    1068     256    1069     257    1070
+     258    1071     259    1072     260    1073     261    1074     262    1075
+     263    1076     264    1077     265    1078     266    1079     267    1080
+     268    1081     269    1082     270    1083     271    1084     272    1085
+     273    1086     274    1087     275    1088     276    1089     277    1090
+     278    1091     279    1092     280    1093     285     286     287     288
+     989     289     990     290     291     992     292     293     994     294
+     995     295     996     296     997     297     998     298     299    1000
+     300    1001     301    1002     302    1003     303    1004     304    1005
+     305    1006     306    1007     307    1008     308     309     310    1011
+     311     312     313     314    1015     315    1016     316    1017     317
+    1018     318    1019     319    1020     320    1021     321    1022     322
+    1023     323    1024     324    1025     325    1026     326    1027     327
+    1028     328    1029     329     330     331    1032     332    1033     333
+     334    1035     335    1036     336     337     338     339     340     341
+     342    1202     343    1203     344    1204     345    1205     346     347
+    1207     348    1208     349    1209     350    1210     351    1211     352
+     353     354    1214     355    1215     356    1216     357    1217     358
+    1218     359    1219     360    1220     361    1221     362     363    1223
+     364    1224     365     366     367     368    1228     369    1229     370
+    1230     371    1231     372    1232     373    1233     374    1234     375
+    1235     376    1236     377     378    1238     379    1239     380    1240
+     381    1241     382    1242     383    1243     384    1244     385    1245
+     386    1246     387    1247     388    1248     389    1249     390     391
+    1251     392    1252     285     339     447     286     340     448     287
+     341     449     288     342     450     289     343     451     290     344
+     452     291     345     453     292     346     454     293     347     455
+     294     348     456     295     349     457     296     350     458     297
+     351     459     298     352     460     299     353     461     300     354
+     462     301     355     463     302     356     464     303     357     465
+     304     358     466     305     359     467     306     360     468     307
+     361     469     308     362     470     309     363     471     310     364
+     472     311     365     473     312     366     474     313     367     475
+     314     368     476     315     369     477     316     370     478     317
+     371     479     318     372     480     319     373     481     320     374
+     482     321     375     483     322     376     484     323     377     485
+     324     378     486     325     379     487     326     380     488     327
+     381     489     328     382     490     329     383     491     330     384
+     492     331     385     493     332     386     494     333     387     495
+     334     388     496     335     389     497     336     390     498     337
+     391     499     338     392     500     501     986    1032    1033    1254
+     505     990    1032    1033    1254     508     993    1032    1033    1254
+     514     999    1032    1033    1254     516    1001    1032    1033    1254
+     534    1019    1032    1033    1254     546    1031    1032    1033    1254
+     555     556     557     558     559     560     561     562     563     564
+     565     566     567     568     569     570     571     572    1003     573
+     574     575     576     577     578     579     580     581     582     583
+     584     585     586    1017     587     588    1019     589    1020     590
+     591     592     593    1024     594     595     596     597     598    1029
+     599     600     601    1032     602    1033     603     604    1035     605
+     606     607    1038     608     609     610     611     612     613     614
+     615     616     617     618     619     620     621     622     623     624
+     625     626    1216     627     628     629     630     631     632     633
+    1223     634     635     636     637     638     639     640     641     642
+     643     644     645     646     647     648     649     650     651     652
+    1242     653     654     655     656     657     658     659     660     661
+     662     986    1040     987    1041     988    1042     989    1043     990
+    1044     991    1045     992    1046     993    1047     994    1048     995
+    1049     996    1050     997    1051     998    1052     999    1053    1000
+    1054    1001    1055    1002    1056    1003    1057    1004    1058    1005
+    1059    1006    1060    1007    1061    1008    1062    1009    1063    1010
+    1064    1011    1065    1012    1066    1013    1067    1014    1068    1015
+    1069    1016    1070    1017    1071    1018    1072    1019    1073    1020
+    1074    1021    1075    1022    1076    1023    1077    1024    1078    1025
+    1079    1026    1080    1027    1081    1028    1082    1029    1083    1030
+    1084    1031    1085    1032    1086    1033    1087    1034    1088    1035
+    1089    1036    1090    1037    1091    1038    1092    1039    1093    1199
+    1253    1200    1253    1201    1253    1202    1253    1203    1253    1204
+    1205    1253    1206    1253    1207    1253    1208    1253    1209    1253
+    1210    1253    1211    1253    1212    1253    1213    1253    1214    1253
+    1215    1253    1216    1253    1217    1253    1218    1253    1219    1253
+    1220    1253    1221    1253    1222    1253    1223    1253    1224    1253
+    1225    1253    1226    1253    1227    1253    1228    1253    1229    1253
+    1230    1253    1231    1253    1232    1253    1233    1253    1234    1253
+    1235    1253    1236    1253    1237    1253    1238    1253    1239    1240
+    1253    1241    1253    1242    1253    1243    1244    1245    1246    1247
+    1248    1249    1250    1253    1251    1252     281    1011    1032    1033
+    1034    1224    1231    1241    1242     282    1011    1032    1033    1034
+    1224    1241    1242     283    1011    1032    1033    1034    1224    1241
+     284    1009    1011    1012    1013    1028    1032    1033    1034    1221
+    1222    1224    1225    1241    1242     281     925     977     281     926
+     977     281     927     977     281     928     977     281     929     977
+     281     930     977     281     931     977     281     932     977     282
+     933     977     282     934     977     282     935     977     282     936
+     977     282     937     977     282     938     977     282     939     977
+     282     940     977     282     941     977     282     942     977     282
+     943     977     282     944     977     282     945     977     282     946
+     977     282     947     977     282     948     977     282     949     977
+     282     950     977     282     951     977     282     952     977     282
+     953     977     282     954     977     282     955     977     282     956
+     977     282     957     977     282     958     977     282     959     977
+     282     960     977     282     961     977     282     962     977     282
+     963     977     282     964     977     282     965     977     282     966
+     977     283     967     977     283     968     977     284     969     978
+     284     970     979     284     971     980     284     972     981     284
+     973     982     974     983     975     984     976     157     158     159
+     160     161     162     163     164     165     166     167     168     169
+     170     171     172     173     174     175     176     177     178     179
+     180     181     182     183     184     185     186     187     188     189
+     190     191     192     193     194     195     196     197     198     199
+     200     201     202     203     204     205     206     207     208     209
+     210     211     212     213     214     215     216     217     218     219
+     220     221     222     223     224     225     226     227     228     229
+     230     231     232     233     234     235     236     339     393     664
+     665     666     667     668     669     670     671     672     774     986
+    1199     157     158     159     160     161     162     163     164     165
+     166     167     168     169     170     171     172     173     174     175
+     176     177     178     179     180     181     182     183     184     185
+     186     187     188     189     190     191     192     193     194     195
+     196     197     198     199     200     201     202     203     204     205
+     206     207     208     209     210     211     212     213     214     215
+     216     217     218     219     220     221     222     223     224     225
+     226     227     228     229     230     231     232     233     234     235
+     236     340     394     664     665     666     667     668     669     670
+     671     672     775     987    1200     157     158     159     160     161
+     162     163     164     165     166     167     168     169     170     171
+     172     173     174     175     176     177     178     179     180     181
+     182     183     184     185     186     187     188     189     190     191
+     192     193     194     195     196     197     198     199     200     201
+     202     203     204     205     206     207     208     209     210     211
+     212     213     214     215     216     217     218     219     220     221
+     222     223     224     225     226     227     228     229     230     231
+     232     233     234     235     236     341     395     664     665     666
+     667     668     669     670     671     673     776     988    1201     157
+     158     159     160     161     162     163     164     165     166     167
+     168     169     170     171     172     173     174     175     176     177
+     178     179     180     181     182     183     184     185     186     187
+     188     189     190     191     192     193     194     195     196     197
+     198     199     200     201     202     203     204     205     206     207
+     208     209     210     211     212     213     214     215     216     217
+     218     219     220     221     222     223     224     225     226     227
+     228     229     230     231     232     233     234     235     236     288
+     342     396     664     665     666     667     668     669     670     671
+     672     673     777     989    1202    1256     157     158     159     160
+     161     162     163     164     165     166     167     168     169     170
+     171     172     173     174     175     176     177     178     179     180
+     181     182     183     184     185     186     187     188     189     190
+     191     192     193     194     195     196     197     198     199     200
+     201     202     203     204     205     206     207     208     209     210
+     211     212     213     214     215     216     217     218     219     220
+     221     222     223     224     225     226     227     228     229     230
+     231     232     233     234     235     236     289     343     397     664
+     665     666     667     668     669     670     671     673     696     778
+     990    1203    1256     157     158     159     160     161     162     163
+     164     165     166     167     168     169     170     171     172     173
+     174     175     176     177     178     179     180     181     182     183
+     184     185     186     187     188     189     190     191     192     193
+     194     195     196     197     198     199     200     201     202     203
+     204     205     206     207     208     209     210     211     212     213
+     214     215     216     217     218     219     220     221     222     223
+     224     225     226     227     228     229     230     231     232     233
+     234     235     236     344     398     664     665     666     667     668
+     669     670     671     779     157     158     159     160     161     162
+     163     164     165     166     167     168     169     170     171     172
+     173     174     175     176     177     178     179     180     181     182
+     183     184     185     186     187     188     189     190     191     192
+     193     194     195     196     197     198     199     200     201     202
+     203     204     205     206     207     208     209     210     211     212
+     213     214     215     216     217     218     219     220     221     222
+     223     224     225     226     227     228     229     230     231     232
+     233     234     235     236     291     345     399     664     665     666
+     667     668     669     670     671     673     678     696     697     780
+     992    1205    1256     157     158     159     160     161     162     163
+     164     165     166     167     168     169     170     171     172     173
+     174     175     176     177     178     179     180     181     182     183
+     184     185     186     187     188     189     190     191     192     193
+     194     195     196     197     198     199     200     201     202     203
+     204     205     206     207     208     209     210     211     212     213
+     214     215     216     217     218     219     220     221     222     223
+     224     225     226     227     228     229     230     231     232     233
+     234     235     236     346     400     664     665     666     667     668
+     669     670     671     674     675     693     781     993    1206     157
+     158     159     160     161     162     163     164     165     166     167
+     168     169     170     171     172     173     174     175     176     177
+     178     179     180     181     182     183     184     185     186     187
+     188     189     190     191     192     193     194     195     196     197
+     198     199     200     201     202     203     204     205     206     207
+     208     209     210     211     212     213     214     215     216     217
+     218     219     220     221     222     223     224     225     226     227
+     228     229     230     231     232     233     234     235     236     293
+     347     401     664     665     666     667     668     669     670     671
+     672     695     696     697     705     782    1256     157     158     159
+     160     161     162     163     164     165     166     167     168     169
+     170     171     172     173     174     175     176     177     178     179
+     180     181     182     183     184     185     186     187     188     189
+     190     191     192     193     194     195     196     197     198     199
+     200     201     202     203     204     205     206     207     208     209
+     210     211     212     213     214     215     216     217     218     219
+     220     221     222     223     224     225     226     227     228     229
+     230     231     232     233     234     235     236     294     348     402
+     664     665     666     667     668     669     670     671     675     677
+     693     695     698     783    1256     295     349     403     664     665
+     666     667     668     669     670     671     672     696     699     705
+     784    1256     296     350     404     673     785    1256     297     351
+     405     674     693     786     998    1211    1256     352     406     664
+     665     666     667     668     669     670     671     674     675     677
+     688     691     692     693     698     787     999    1212     353     407
+     676     710     788    1000    1213    1256     300     354     408     675
+     677     789    1256     301     355     409     678     790    1256     302
+     356     410     664     665     666     667     668     669     670     671
+     679     681     696     705     709     711     791    1003    1216    1256
+     303     357     411     680     792    1256     304     358     412     681
+     793    1256     305     359     413     682     794    1256     306     360
+     414     683     795    1256     307     361     415     684     796    1256
+     362     416     685     719     797    1009    1222     309     686     706
+     710     798    1010    1223     310     364     418     687     716     717
+     718     719     799    1011    1224    1256     365     419     688     719
+     800    1012    1225     366     420     689     719     801     367     421
+     690     710     712     802    1014    1227     314     368     422     691
+     803    1256     315     369     423     664     665     666     667     668
+     669     670     671     672     674     675     677     679     681     683
+     692     693     704     705     710     712     804    1016    1229    1256
+     316     370     424     664     665     666     667     668     669     670
+     671     672     674     677     680     681     682     687     688     689
+     690     691     692     693     694     695     696     698     699     705
+     707     708     709     710     711     712     805    1017    1230    1256
+     317     371     425     664     665     666     667     668     669     670
+     671     672     689     694     705     709     710     806    1018    1231
+    1256     318     372     426     695     807    1256     319     373     427
+     672     696     697     705     808    1256     320     374     428     673
+     678     692     695     696     697     705     809    1021    1234    1256
+     321     375     429     677     693     698     705     810    1256     322
+     376     430     679     680     682     688     689     690     691     699
+     700     709     710     811    1023    1236    1256     377     431     672
+     673     674     675     676     677     678     679     680     682     683
+     686     687     688     689     690     691     692     693     694     695
+     696     697     698     699     700     701     702     704     705     706
+     707     708     812    1024    1237    1256     324     378     432     673
+     676     684     690     701     703     710     712     813    1025    1238
+    1256     379     433     697     702     814    1256     326     380     434
+     684     703     705     815    1027    1240    1256     327     381     435
+     680     684     685     686     687     688     689     690     691     692
+     704     705     708     710     719     816    1028    1241    1256     328
+     382     436     664     665     666     667     668     669     670     671
+     672     676     677     678     679     684     687     688     689     690
+     692     694     695     699     700     701     703     704     705     706
+     708     710     817    1029    1242    1256     383     437     706     710
+     712     818     384     438     676     690     700     703     704     707
+     819     385     439     664     665     666     667     668     669     670
+     671     672     673     674     675     676     677     678     679     680
+     681     682     683     684     685     686     687     688     689     690
+     691     692     693     694     695     696     697     698     699     700
+     701     702     703     704     705     706     707     708     709     710
+     711     712     713     716     717     718     719     774     775     776
+     777     778     780     781     782     783     784     785     786     787
+     788     789     790     791     792     793     794     796     798     799
+     800     801     802     803     804     805     806     807     808     809
+     810     811     812     813     815     816     817     819     820    1256
+     386     440     664     665     666     667     668     669     670     671
+     672     673     674     675     676     677     678     679     680     681
+     682     683     684     685     686     687     688     689     690     691
+     692     693     694     695     696     697     698     699     700     701
+     702     703     704     705     706     707     708     709     710     711
+     712     713     716     717     718     719     774     775     776     777
+     778     780     781     782     783     784     785     786     787     788
+     789     790     791     792     793     794     795     796     798     799
+     800     801     802     803     804     805     806     807     808     809
+     810     811     812     813     815     816     817     819     821    1256
+     387     441     710     716     717     718     719     822     388     442
+     664     665     666     667     668     669     670     671     672     673
+     674     675     676     677     678     679     680     681     682     683
+     684     685     686     687     688     689     690     691     692     693
+     694     695     696     697     698     699     700     701     702     703
+     704     705     706     707     708     709     710     711     712     823
+    1256     389     443     712     824    1256     390     444     713     825
+     391     445     714     826     392     446     707     715     827     339
+     672     720     986    1199     340     664     665     666     667     668
+     669     670     671     721     987    1200     341     664     665     666
+     667     668     669     670     671     722     988    1201     288     342
+     396     664     665     666     667     668     669     670     671     673
+     723     989    1202    1256     289     343     397     673     697     724
+     990    1203    1256     344     725     291     345     399     678     726
+     992    1205    1256     346     674     675     693     727     993    1206
+     293     347     401     728    1256     294     348     402     729    1256
+     295     349     403     730    1256     296     350     404     731    1256
+     297     351     405     693     732     998    1211    1256     352     675
+     693     733     999    1212     353     710     734    1000    1213     300
+     354     408     677     735    1256     301     355     409     736    1256
+     302     356     410     711     737    1003    1216    1256     303     357
+     411     738    1256     304     358     412     739    1256     305     359
+     413     682     740    1256     306     360     414     741    1256     307
+     361     415     684     719     742    1256     362     719     743    1009
+    1222     309     417     686     706     707     744    1010    1223    1256
+     310     364     418     716     717     718     719     745    1011    1224
+    1256     365     688     719     746    1012    1225     366     689     747
+     367     710     748    1014    1227     314     368     422     691     749
+    1256     315     369     423     664     665     666     667     668     669
+     670     671     679     691     692     710     750    1016    1229    1256
+     316     370     424     693     751    1017    1230    1256     317     371
+     425     664     665     666     667     668     669     670     671     672
+     687     693     694     710     716     752    1018    1231    1256     318
+     372     426     753    1256     319     373     427     754    1256     320
+     374     428     673     697     755    1021    1234    1256     321     375
+     429     698     756    1256     322     376     430     664     665     666
+     667     668     669     670     671     673     679     691     692     693
+     699     709     710     711     757    1023    1236    1256     377     672
+     673     674     675     676     677     678     679     680     682     683
+     686     687     688     689     690     691     692     693     694     695
+     696     697     698     699     700     701     702     704     705     706
+     707     708     758    1024    1237     324     378     432     673     710
+     759    1025    1238    1256     379     760     326     380     434     703
+     761    1027    1240    1256     327     381     435     687     704     708
+     710     716     717     718     719     762    1028    1241    1256     328
+     382     436     664     665     666     667     668     669     670     671
+     672     679     705     708     716     717     719     763    1029    1242
+    1256     383     764     384     765     385     766     386     767     387
+     768     388     769     389     770     390     713     771     391     772
+     392     773       1       2       3       4       5       6       7       8
+       9      10      11      12      13      14      15      16      17      18
+      19      20      21      22      23      24      25      26      27      28
+      29      30      31      32      33      34      35      36      37      38
+      39      40      41      42      43      44      45      46      47      48
+      49      50      53      54      55      56      57      58      59      60
+      61      62      63      64      65      66      67      68      69      70
+      71      72      73      74      75      76      77      78      79      80
+      81      82      83      84      85      86      87      88      89      90
+      91      92      93      94      95      96      97      98      99     100
+     102     103     104     105     106     107     108     109     110     111
+     112     113     114     115     116     117     118     119     120     121
+     122     123     124     125     126     127     128     129     130     131
+     132     133     134     135     136     137     138     139     140     141
+     142     143     144     145     146     147     148     149     150     151
+     152     154     155     156     664     665     666     667     668     669
+     670     671     672     673     674     675     676     677     678     679
+     680     681     682     683     684     685     686     687     688     689
+     690     691     692     693     694     695     696     697     698     699
+     700     701     702     703     704     705     706     707     708     709
+     710     711     714     715    1258       1      53     105     664     828
+       2      54     106     665     829       3      55     107     666     830
+       4      56     108     667     831       5      57     109     668     832
+       6      58     110     669     833       7      59     111     670     834
+       8      60     112     671     835       9      61     113     672     836
+      10      62     114     673     837      11      63     115     674     838
+      12      64     116     675     839      13      65     117     676     840
+      14      66     118     677     841      15      67     119     678     842
+      16      68     120     679     843      17      69     121     680     844
+      18      70     122     681     845      19      71     123     682     846
+      20      72     124     683     847      21      73     125     684     848
+      22      74     126     685     849      23      75     127     686     850
+      24      76     128     687     851      25      77     129     688     852
+      26      78     130     689     853      27      79     131     690     854
+      28      80     132     691     855      29      81     133     692     856
+      30      82     134     693     857      31      83     135     694     858
+      32      84     136     695     859      33      85     137     696     860
+      34      86     138     697     861      35      87     139     698     862
+      36      88     140     699     863      37      89     141     700     864
+      38      90     142     701     865      39      91     143     702     866
+      40      92     144     703     867      41      93     145     704     868
+      42      94     146     705     869      43      95     147     706     870
+      44      96     148     707     871      45      97     149     708     872
+      46      98     150     709     873      47      99     151     710     874
+      48     100     152     711     875      49     153     712     876      50
+     102     154     877     103     878     104     879       1      53     105
+     664       2      54     106     665       3      55     107     666       4
+      56     108     667       5      57     109     668       6      58     110
+     669       7      59     111     670       8      60     112     671     113
+     114     115     116     117     118     119     120     121     122     123
+     124     125     126     127     128     129     130     131     132     133
+     134     135     136     137     138     139     140     141     142     143
+     144     145     146     147     148     149     150     151     152     153
+     154     155     156     393     447     394     448     395     449     396
+     447     448     449     450     451     452     453     454     455     456
+     457     458     459     460     461     462     463     464     465     466
+     467     468     469     470     471     472     473     474     475     476
+     477     478     479     480     481     482     483     484     485     486
+     487     488     489     490     491     492     493     494     495     496
+     497     498     499     500     397     447     448     449     450     451
+     452     453     454     455     456     457     458     459     460     461
+     462     463     464     465     466     467     468     469     470     471
+     472     473     474     475     476     477     478     479     480     481
+     482     483     484     485     486     487     488     489     490     491
+     492     493     494     495     496     497     498     499     500     398
+     452     399     447     448     449     450     451     452     453     454
+     455     456     457     458     459     460     461     462     463     464
+     465     466     467     468     469     470     471     472     473     474
+     475     476     477     478     479     480     481     482     483     484
+     485     486     487     488     489     490     491     492     493     494
+     495     496     497     498     499     500     400     454     401     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     402     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     403     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     404     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     405     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     406     460     407     447     448     449     450
+     451     452     453     454     455     456     457     458     459     460
+     461     462     463     464     465     466     467     468     469     470
+     471     472     473     474     475     476     477     478     479     480
+     481     482     483     484     485     486     487     488     489     490
+     491     492     493     494     495     496     497     498     499     500
+     408     447     448     449     450     451     452     453     454     455
+     456     457     458     459     460     461     462     463     464     465
+     466     467     468     469     470     471     472     473     474     475
+     476     477     478     479     480     481     482     483     484     485
+     486     487     488     489     490     491     492     493     494     495
+     496     497     498     499     500     409     447     448     449     450
+     451     452     453     454     455     456     457     458     459     460
+     461     462     463     464     465     466     467     468     469     470
+     471     472     473     474     475     476     477     478     479     480
+     481     482     483     484     485     486     487     488     489     490
+     491     492     493     494     495     496     497     498     499     500
+     410     447     448     449     450     451     452     453     454     455
+     456     457     458     459     460     461     462     463     464     465
+     466     467     468     469     470     471     472     473     474     475
+     476     477     478     479     480     481     482     483     484     485
+     486     487     488     489     490     491     492     493     494     495
+     496     497     498     499     500     411     447     448     449     450
+     451     452     453     454     455     456     457     458     459     460
+     461     462     463     464     465     466     467     468     469     470
+     471     472     473     474     475     476     477     478     479     480
+     481     482     483     484     485     486     487     488     489     490
+     491     492     493     494     495     496     497     498     499     500
+     412     447     448     449     450     451     452     453     454     455
+     456     457     458     459     460     461     462     463     464     465
+     466     467     468     469     470     471     472     473     474     475
+     476     477     478     479     480     481     482     483     484     485
+     486     487     488     489     490     491     492     493     494     495
+     496     497     498     499     500     413     447     448     449     450
+     451     452     453     454     455     456     457     458     459     460
+     461     462     463     464     465     466     467     468     469     470
+     471     472     473     474     475     476     477     478     479     480
+     481     482     483     484     485     486     487     488     489     490
+     491     492     493     494     495     496     497     498     499     500
+     414     447     448     449     450     451     452     453     454     455
+     456     457     458     459     460     461     462     463     464     465
+     466     467     468     469     470     471     472     473     474     475
+     476     477     478     479     480     481     482     483     484     485
+     486     487     488     489     490     491     492     493     494     495
+     496     497     498     499     500     415     447     448     449     450
+     451     452     453     454     455     456     457     458     459     460
+     461     462     463     464     465     466     467     468     469     470
+     471     472     473     474     475     476     477     478     479     480
+     481     482     483     484     485     486     487     488     489     490
+     491     492     493     494     495     496     497     498     499     500
+     416     470     417     447     448     449     450     451     452     453
+     454     455     456     457     458     459     460     461     462     463
+     464     465     466     467     468     469     470     471     472     473
+     474     475     476     477     478     479     480     481     482     483
+     484     485     486     487     488     489     490     491     492     493
+     494     495     496     497     498     499     500     418     447     448
+     449     450     451     452     453     454     455     456     457     458
+     459     460     461     462     463     464     465     466     467     468
+     469     470     471     472     473     474     475     476     477     478
+     479     480     481     482     483     484     485     486     487     488
+     489     490     491     492     493     494     495     496     497     498
+     499     500     419     473     420     474     421     475     422     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     423     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     424     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     425     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     426     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     427     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     428     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     429     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     430     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     431     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     432     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     433     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     434     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     435     447     448     449     450     451     452
+     453     454     455     456     457     458     459     460     461     462
+     463     464     465     466     467     468     469     470     471     472
+     473     474     475     476     477     478     479     480     481     482
+     483     484     485     486     487     488     489     490     491     492
+     493     494     495     496     497     498     499     500     436     447
+     448     449     450     451     452     453     454     455     456     457
+     458     459     460     461     462     463     464     465     466     467
+     468     469     470     471     472     473     474     475     476     477
+     478     479     480     481     482     483     484     485     486     487
+     488     489     490     491     492     493     494     495     496     497
+     498     499     500     437     491     438     492     439     447     448
+     449     450     451     452     453     454     455     456     457     458
+     459     460     461     462     463     464     465     466     467     468
+     469     470     471     472     473     474     475     476     477     478
+     479     480     481     482     483     484     485     486     487     488
+     489     490     491     492     493     494     495     496     497     498
+     499     500     440     447     448     449     450     451     452     453
+     454     455     456     457     458     459     460     461     462     463
+     464     465     466     467     468     469     470     471     472     473
+     474     475     476     477     478     479     480     481     482     483
+     484     485     486     487     488     489     490     491     492     493
+     494     495     496     497     498     499     500     441     495     442
+     447     448     449     450     451     452     453     454     455     456
+     457     458     459     460     461     462     463     464     465     466
+     467     468     469     470     471     472     473     474     475     476
+     477     478     479     480     481     482     483     484     485     486
+     487     488     489     490     491     492     493     494     495     496
+     497     498     499     500     443     447     448     449     450     451
+     452     453     454     455     456     457     458     459     460     461
+     462     463     464     465     466     467     468     469     470     471
+     472     473     474     475     476     477     478     479     480     481
+     482     483     484     485     486     487     488     489     490     491
+     492     493     494     495     496     497     498     499     500     444
+     498     445     499     446     500     501     774    1254     502     775
+    1254     503     776    1254     504     777    1254     505     778    1254
+     506     779     507     780    1254     508     781    1254     509     782
+    1254     510     783    1254     511     784    1254     512     785    1254
+     513     786    1254     514     787    1254     515     788    1254     516
+     789    1254     517     790    1254     518     791    1254     519     792
+    1254     520     793    1254     521     794    1254     522     795    1254
+     523     796    1254     524     797     525     798    1254     526     799
+    1254     527     800    1254     528     801    1254     529     802    1254
+     530     803    1254     531     804    1254     532     805    1254     533
+     806    1254     534     807    1254     535     808    1254     536     809
+    1254     537     810    1254     538     811    1254     539     812    1254
+     540     813    1254     541     814     542     815    1254     543     816
+    1254     544     817    1254     545     818     546     819    1254     547
+     820     548     821     549     822     550     823     551     824     552
+     825    1254     553     826     554     827     716     828     829     830
+     831     832     833     834     835     977    1257     717     836     837
+     838     839     840     841     842     843     844     845     846     847
+     848     849     850     851     852     853     854     855     856     857
+     858     859     860     861     862     863     864     865     866     867
+     868     869     977    1257     718     870     871     879     977    1257
+     719     872     873     874     875     876     877     878     880     925
+     881     926     882     927     883     928     884     929     885     930
+     886     931     887     932     888     933     889     934     890     935
+     891     936     892     937     893     938     894     939     895     940
+     896     941     897     942     898     943     899     944     900     945
+     901     946     902     947     903     948     904     949     905     950
+     906     951     907     952     908     953     909     954     910     955
+     911     956     912     957     913     958     914     959     915     960
+     916     961     917     962     918     963     919     964     920     965
+     921     966     922     967     923     968     969     970     971     972
+     973     974     975     924     976     828     880     829     881     830
+     882     831     883     832     884     833     885     834     886     835
+     887     836     888     837     889     838     890     839     891     840
+     892     841     893     842     894     843     895     844     896     845
+     897     846     898     847     899     848     900     849     901     850
+     902     851     903     852     904     853     905     854     906     855
+     907     856     908     857     909     858     910     859     911     860
+     912     861     913     862     914     863     915     864     916     865
+     917     866     918     867     919     868     920     869     921     870
+     922     871     923     872     873     874     875     876     877     878
+     879     924     880     881     882     883     884     885     886     887
+     888     889     890     891     892     893     894     895     896     897
+     898     899     900     901     902     903     904     905     906     907
+     908     909     910     911     912     913     914     915     916     917
+     918     919     920     921     922     923     924    1094    1253    1255
+    1254    1255    1255     663    1256    1258     985    1257     447     448
+     449     450     451     452     453     454     455     456     457     458
+     459     460     461     462     463     464     465     466     467     468
+     469     470     471     472     473     474     475     476     477     478
+     479     480     481     482     483     484     485     486     487     488
+     489     490     491     492     493     494     495     496     497     498
+     499     500     663     977     985     775     776     777     779     780
+     782     783     784     785     786     788     790     791     792     793
+     794     795     796     797     798     799     800     801     802     803
+     804     805     806     808     809     810     811     812     813     814
+     815     816     817     818     820     821     822     823     824     825
+     826     827                                                                
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -5.93589153D-03 -8.27388279D-03
+ -8.60892702D-03 -1.37353456D-03 -4.92890272D-03 -1.55171787D-04 -1.30801986D-04
+ -8.56874278D-04 -1.83234370D-04 -1.37678441D-03 -9.81827034D-04 -3.93233960D-03
+ -3.73784045D-04 -6.89376247D-05 -1.66634141D-04 -1.05326253D-04 -1.00132599D-02
+ -9.98593494D-03 -5.46094589D-03 -7.06019695D-04 -2.78090150D-03 -2.38090535D-04
+ -1.64178631D-03 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -6.19863123D-02
+ -7.16687143D-02 -6.68680817D-02 -1.15005681D-02 -1.90558087D-04 -7.38000050D-02
+ -2.59988802D-03 -1.93114602D-03 -3.63798230D-03 -1.55267026D-03 -9.03802924D-03
+ -6.42052805D-03 -3.30437534D-02 -3.13421409D-03 -5.57913794D-04 -1.34995126D-03
+ -6.88492961D-04 -7.00013712D-02 -7.00070336D-02 -3.82313095D-02 -8.13334715D-03
+ -1.48213431D-02 -2.86629447D-03 -5.33711677D-03 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -6.43365784D-03 -1.46014765D-01 -1.32799476D-01 -4.80291620D-02
+ -1.27418283D-02 -2.09978819D-01 -6.17644563D-03 -3.45171918D-03 -9.97103006D-03
+ -2.30328832D-03 -1.80562958D-02 -1.28339566D-02 -4.90272008D-02 -4.65024495D-03
+ -8.43684305D-04 -2.04204884D-03 -1.37659872D-03 -1.69996798D-01 -1.70007035D-01
+ -9.28501487D-02 -3.88781494D-03 -4.44640294D-02 -6.44817576D-03 -9.85071808D-03
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -9.52748433D-02 -1.84948742D-01
+ -2.01589674D-01 -2.73518991D-02 -4.88014601D-04 -1.38668075D-01 -6.40007528D-03
+ -4.22320887D-03 -2.66946550D-03 -2.67779361D-03 -1.42026180D-02 -1.00969886D-02
+ -5.69765754D-02 -5.40477782D-03 -9.67531581D-04 -2.34273169D-03 -1.08307914D-03
+ -1.80010065D-01 -1.79992974D-01 -9.83157754D-02 -1.23726027D-02 -1.11134751D-02
+ -4.53819009D-03 -7.38803856D-03 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -8.71037971D-03 -1.18917592D-01 -1.02624908D-01 -3.30613479D-02 -6.81361323D-03
+ -1.36338934D-01 -3.95535911D-03 -2.64995149D-03 -1.38095417D-03 -1.48837746D-03
+ -6.73240982D-03 -4.78634099D-03 -3.16886082D-02 -3.00652371D-03 -5.41481015D-04
+ -1.31053664D-03 -5.13465493D-04 -1.29989490D-01 -1.29992962D-01 -7.10063577D-02
+ -3.18179536D-03 -6.48370478D-03 -2.38879793D-03 -4.10446571D-03 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -2.51121563D-03 -2.03185737D-01 -1.92379743D-01
+ -5.52012399D-02 -2.22557895D-02 -2.92612076D-01 -2.19613705D-02 -5.13518928D-03
+ -1.95196667D-03 -2.93014268D-03 -1.19892228D-02 -8.52459297D-03 -6.23729564D-02
+ -5.91553887D-03 -1.05771166D-03 -2.56029260D-03 -9.14247415D-04 -2.39998177D-01
+ -2.40014061D-01 -1.31086141D-01 -3.88781494D-03 -8.33763927D-03 -4.29878384D-03
+ -7.38803856D-03 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -9.12127737D-03
+ -9.66502652D-02 -8.96248892D-02 -1.80861093D-02 -2.58647744D-03 -3.19746435D-02
+ -8.87065381D-03 -2.36170273D-03 -8.52607656D-04 -6.57393481D-04 -4.91426373D-03
+ -3.49397887D-03 -1.39749302D-02 -1.32565643D-03 -2.53706501D-04 -6.14048797D-04
+ -3.74643947D-04 -1.10008687D-01 -1.09985933D-01 -6.00797832D-02 -1.76975597D-03
+ -3.70280328D-03 -1.67189550D-03 -2.46267952D-03 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.72779313D-03 -7.32349306D-02 -6.92287683D-02 -3.76125723D-02
+ -6.32327469D-03 -1.11695595D-01 -2.23021419D-03 -1.86090055D-03 -2.39640358D-04
+ -1.08172570D-03 -4.17646533D-03 -2.96730525D-03 -2.30374597D-02 -2.18466320D-03
+ -3.89978552D-04 -9.44000029D-04 -3.18302133D-04 -8.99821669D-02 -9.00140628D-02
+ -4.91578877D-02 -1.41517725D-03 -9.26967128D-04 -1.43248949D-03 -2.87443749D-03
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -5.39141834D-01
+ -7.24108219D-02 -2.70749658D-01 -1.21773174D-02 -4.69028950D-03 -1.54549666D-02
+ -1.32671088D-01 -5.41632026D-02 -2.29070000D-02 -1.02059292D-02 -2.30139447D-03
+ -5.57160983D-03 -7.13856425D-04 -1.00000000D+00 -4.73746061D-01 -3.32121551D-02
+ -4.78609577D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.28765732D-01 -3.11814636D-01 -2.33154781D-02 -7.09880516D-02 -4.69889343D-02
+ -3.15410877D-03 -1.07982764D-02 -5.53905789D-04 -1.34165853D-03 -2.59249733D-04
+ -1.31625205D-01 -1.44391209D-01 -5.64676113D-02 -2.39616428D-02 -5.95942466D-03
+ -1.50985867D-01 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -6.88045193D-03 -1.94378905D-02 -4.44655260D-03 -2.45325267D-04 -5.37030539D-03
+ -1.53506466D-04 -3.71707312D-04 -7.68649334D-05 -9.63710174D-02 -7.38798082D-03
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -9.01386291D-02
+ -1.22320458D-01 -3.04286312D-02 -8.37532878D-02 -4.68578050D-03 -1.73666712D-03
+ -4.20468301D-03 -6.42606348D-04 -6.97601080D-01 -3.87774557D-01 -6.43205643D-03
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -5.67285763D-03
+ -8.43898356D-02 -7.12952465D-02 -2.18436681D-03 -2.09217687D-04 -5.06146345D-04
+ -1.28947213D-04 -3.80237587D-03 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -2.41041323D-03 -1.25423633D-02 -1.31881451D-02 -1.33477459D-02
+ -5.36979139D-01 -5.27575752D-03 -1.30613148D-01 -6.97793090D-04 -1.68956094D-03
+ -2.89647200D-04 -3.43984067D-01 -5.14919870D-03 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.01745531D-01 -2.69539990D-02 -4.38700983D-04
+ -3.81027572D-02 -2.16832879D-04 -5.24975592D-04 -9.08051734D-05 -4.47068959D-02
+ -6.04115834D-04 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.70154739D-02 -5.44804186D-02 -2.94610416D-03 -3.52424942D-03 -5.30659396D-04
+ -1.28507311D-03 -3.73675866D-04 -1.34332012D-02 -1.33385956D-01 -3.07743694D-03
+ -3.23741399D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -5.22729533D-04 -4.91144974D-03 -1.17239055D-04 -4.91660368D-03 -4.84968186D-05
+ -1.17170734D-04 -3.02038534D-05 -1.20823162D-04 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.84873845D-02 -9.48597852D-04 -1.18245208D-03
+ -3.76752141D-05 -9.16097561D-05 -2.07167450D-05 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -7.71998952D-04 -1.67202950D-02 -6.54269592D-04
+ -8.01600327D-05 -1.94536580D-04 -4.97589099D-05 -2.03145415D-01 -7.49814324D-04
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -3.93997468D-02
+ -3.02552417D-05 -1.28256052D-05 -3.05365866D-05 -9.09987830D-06 -3.55362245D-05
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -4.90518920D-02
+ -3.67200300D-02 -2.71796845D-02 -3.59273776D-02 -2.38876892D-04 -5.77658531D-04
+ -1.04939027D-04 -5.05565293D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.21411122D-03 -6.01200236D-06 -1.42439021D-05 -3.67867437D-06
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -3.47935274D-04
+ -2.35384447D-03 -3.32664131D-05 -7.99024419D-05 -1.47146975D-05 -1.36343017D-01
+ -3.37594131D-04 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.82508340D-03 -9.35265142D-03 -3.97599563D-02 -5.92482509D-03 -5.05008211D-04
+ -1.22273166D-03 -7.55212503D-03 -3.74332629D-03 -9.20388196D-03 -9.66170877D-02
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -5.53583428D-02
+ -1.56889856D-02 -1.50773702D-02 -8.01763905D-04 -3.58140953D-02 -3.03902687D-03
+ -5.37873828D-04 -1.30273169D-03 -3.15010693D-04 -7.46915162D-01 -9.20388207D-04
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.96155044D-03
+ -2.13435292D-02 -3.22694657D-03 -3.08981654D-03 -8.41127534D-04 -1.17707148D-03
+ -4.40880176D-05 -1.06243904D-04 -6.73778268D-05 -1.00000000D+00 -3.56072956D-03
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -6.53464487D-03
+ -4.78093931D-03 -2.98770494D-04 -1.25943303D-01 -7.90266134D-03 -1.20934229D-02
+ -8.96510552D-04 -1.88376071D-04 -4.56000009D-04 -1.34755654D-04 -3.02057917D-04
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -3.42344381D-02
+ -7.49491062D-03 -5.08867763D-02 -1.53167162D-03 -4.46431991D-03 -4.15228977D-04
+ -1.00536586D-03 -2.18397094D-04 -1.15931267D-02 -1.34739932D-02 -2.05113031D-02
+ -1.80524017D-03 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -2.25418378D-04 -3.57041694D-03 -2.39277597D-05 -1.42107746D-02 -2.45445641D-03
+ -6.50260481D-04 -9.39567667D-03 -1.57514456D-04 -3.81170743D-04 -7.84138465D-05
+ -1.52073503D-01 -1.34146260D-02 -2.97793560D-03 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.39835760D-01 -5.19003533D-02 -4.34840858D-01
+ -3.61280963D-02 -8.04134309D-02 -1.93728089D-01 -1.11547887D-01 -1.16482680D-03
+ -3.34107014D-03 -8.08946323D-03 -1.76595734D-03 -2.06027895D-01 -3.05439346D-03
+ -6.12225473D-01 -1.51701225D-02 -9.47329998D-02 -3.37812342D-02 -1.57425471D-03
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -2.20819050D-03
+ -2.20815986D-02 -1.26315630D-03 -6.98581478D-03 -1.08616841D-04 -2.63512193D-04
+ -4.74355365D-05 -1.68003932D-01 -1.38235907D-03 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -3.79240662D-02 -3.79112288D-02 -3.78637087D-05
+ -2.06161980D-02 -1.18751824D-03 -9.24244896D-03 -3.09818512D-04 -7.49756116D-04
+ -1.13651680D-04 -1.90118793D-03 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.03008263D-01 -3.86701792D-01 -2.99895387D-02 -5.25375903D-02
+ -1.23860007D-02 -5.47971984D-04 -8.51425901D-02 -6.35736883D-02 -1.41821441D-03
+ -8.42481910D-04 -2.03999993D-03 -3.50635761D-04 -2.42357049D-03 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.66872039D-01 -3.37420292D-02
+ -8.80064443D-02 -3.89158027D-03 -6.62715316D-01 -5.41481015D-04 -1.31102442D-03
+ -2.28077814D-04 -1.27128080D-01 -8.09310284D-03 -7.43773161D-03 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -2.97079161D-02 -5.42924087D-03
+ -2.06804206D-03 -3.53608117D-03 -2.03606483D-04 -4.92780469D-04 -9.89369801D-05
+ -3.20892364D-01 -4.84358752D-03 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.22674100D-01 -1.09305168D-02 -2.05520347D-01 -4.30607721D-02
+ -4.88937367D-03 -2.13786797D-03 -5.17551228D-03 -9.38836427D-04 -4.67726886D-01
+ -4.98075709D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -2.56573432D-03 -9.37912439D-04 -9.42864418D-02 -1.70647688D-02 -3.70740134D-04
+ -8.98439030D-04 -2.28465040D-04 -6.78741897D-04 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -2.07248400D-03 -2.02045768D-01 -6.14770278D-02
+ -2.10019280D-04 -5.07902412D-04 -1.28366373D-04 -1.47830695D-03 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -3.40371451D-04 -2.59070516D-01
+ -6.81360279D-06 -1.66829268D-05 -6.38927668D-06 -6.04115834D-04 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.57857910D-02 -4.08238396D-02
+ -5.86399846D-02 -1.60451792D-02 -3.32263327D-04 -8.04975629D-04 -1.56246853D-04
+ -7.34207183D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -4.65537570D-02 -1.24538131D-02 -4.12854701D-01 -3.76570015D-03 -4.29942692D-03
+ -2.45209527D-03 -5.93648758D-03 -1.22170709D-03 -2.08562091D-02 -1.58014163D-01
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -3.14314887D-02
+ -3.47981751D-02 -4.16617095D-03 -1.12184873D-02 -1.80052444D-02 -2.45015007D-02
+ -1.56204402D-02 -2.99912523D-02 -2.06400584D-02 -3.67979356D-03 -4.41914909D-02
+ -4.77933232D-03 -4.08415362D-04 -9.88682965D-04 -1.65540347D-04 -6.01272890D-03
+ -3.15532461D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.85339358D-02 -1.16104481D-03 -4.73614549D-04 -9.61920341D-06 -2.31219510D-05
+ -4.22079465D-05 -3.23306620D-02 -1.04121130D-03 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -4.53286432D-03 -1.78381115D-01 -3.97593743D-04
+ -9.62439051D-04 -1.75821269D-03 -1.00000000D+00 -4.71103936D-01 -3.14317912D-01
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -4.37515154D-02
+ -5.10670662D-01 -1.60897091D-01 -7.86571670D-03 -2.05049361D-03 -4.96419519D-03
+ -1.57118123D-03 -5.00001788D-01 -6.21112846D-02 -4.10499051D-02 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -6.98079586D-01 -1.94451973D-01
+ -8.52652192D-02 -3.07986289D-02 -7.04887230D-03 -1.70657560D-02 -2.77327120D-01
+ -1.43419951D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -7.45730400D-01 -6.41808689D-01 -9.49445844D-01 -1.16051726D-01 -7.41642267D-02
+ -1.46283031D-01 -1.69224694D-01 -1.78926215D-01 -1.40577674D-01 -1.35398041D-02
+ -9.27194357D-01 -4.80118487D-03 -1.16230240D-02 -3.06480043D-02 -1.00000000D+00
+ -1.00000000D+00 -1.75491393D-01 -1.90357510D-02 -2.82683177D-03 -2.79957622D-01
+ -4.48854752D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.33129418D-01 -1.00396676D-02 -3.90780158D-04 -9.46048764D-04 -6.60542548D-02
+ -1.13310050D-02 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -3.76148261D-02 -4.02495340D-02 -2.78500728D-02 -4.21503261D-02 -7.28056729D-02
+ -2.98596104D-04 -7.22439028D-04 -2.63993279D-03 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -8.09095241D-03 -9.52975638D-03 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00 -1.00000000D+00
+ -1.00000000D+00 -1.00000000D+00 -1.00000000D+00  1.00000000D+00 -3.56158568D-03
+  1.00000000D+00 -3.36924791D-02  1.00000000D+00 -9.01731327D-02  1.00000000D+00
+ -5.66755012D-02  1.00000000D+00 -2.80031972D-02  1.00000000D+00 -4.98667546D-02
+  1.00000000D+00 -2.37598270D-02  1.00000000D+00 -1.64391100D-02  1.00000000D+00
+ -2.31136009D-03  1.00000000D+00 -2.48041283D-03  1.00000000D+00 -1.27226813D-03
+  1.00000000D+00 -5.37730055D-03  1.00000000D+00 -2.57951277D-03  1.00000000D+00
+ -1.56978657D-03  1.00000000D+00 -2.18602782D-03  1.00000000D+00 -8.61218385D-03
+  1.00000000D+00 -6.97780051D-04  1.00000000D+00 -5.19145164D-04  1.00000000D+00
+ -1.32793898D-03  1.00000000D+00 -2.91506789D-04  1.00000000D+00 -1.51601026D-03
+  1.00000000D+00 -9.04286790D-05  1.00000000D+00 -1.42273973D-04  1.00000000D+00
+ -7.39766378D-03  1.00000000D+00 -8.19738582D-03  1.00000000D+00 -2.08459608D-03
+  1.00000000D+00 -3.65354470D-03  1.00000000D+00 -4.88446048D-03  1.00000000D+00
+ -1.22504996D-03  1.00000000D+00 -4.36096154D-02  1.00000000D+00 -6.93262264D-04
+  1.00000000D+00 -1.65846641D-03  1.00000000D+00 -8.10870528D-03  1.00000000D+00
+ -3.22366226D-03  1.00000000D+00 -1.27204950D-03  1.00000000D+00 -1.30607868D-02
+  1.00000000D+00 -1.65249128D-03  1.00000000D+00 -1.77341502D-03  1.00000000D+00
+ -3.16500373D-04  1.00000000D+00 -2.04896391D-03  1.00000000D+00 -2.36979984D-02
+  1.00000000D+00 -1.35482708D-03  1.00000000D+00 -1.56581530D-03  1.00000000D+00
+ -5.38427010D-02  1.00000000D+00 -2.21645720D-02  1.00000000D+00 -1.42507151D-01
+  1.00000000D+00 -4.82241735D-02  1.00000000D+00 -1.79205015D-01  1.00000000D+00
+  1.00000000D+00  1.00000000D+00 -5.76346964D-02  1.00000000D+00 -3.17968652D-02
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.78465787D-02
+  1.00000000D+00 -5.69905678D-04  1.00000000D+00 -4.49396856D-03  1.00000000D+00
+ -5.19715795D-05  1.00000000D+00 -1.39432741D-05  1.00000000D+00 -3.59829981D-03
+  1.00000000D+00 -2.16023461D-03  1.00000000D+00 -2.96454262D-02  1.00000000D+00
+ -4.90016444D-03  1.00000000D+00 -1.30853141D-02  1.00000000D+00 -2.92256594D-01
+  1.00000000D+00 -4.58589569D-02  1.00000000D+00 -2.51878798D-02  1.00000000D+00
+ -7.07555935D-03  1.00000000D+00 -3.27899330D-03  1.00000000D+00 -6.71901256D-02
+  1.00000000D+00 -4.52964678D-02  1.00000000D+00 -1.56934559D-01  1.00000000D+00
+ -5.25400750D-02  1.00000000D+00 -8.18570703D-02  1.00000000D+00 -3.68810818D-02
+  1.00000000D+00 -1.44300938D-01  1.00000000D+00 -7.79947191D-02  1.00000000D+00
+ -2.54118741D-01  1.00000000D+00 -2.48348296D-01  1.00000000D+00 -2.14205191D-01
+  1.00000000D+00 -1.20531969D-01  1.00000000D+00 -4.81847942D-01  1.00000000D+00
+ -1.67683020D-01  1.00000000D+00 -2.87884384D-01  1.00000000D+00 -5.31182885D-01
+  1.00000000D+00 -3.48290294D-01  1.00000000D+00 -6.13069355D-01  1.00000000D+00
+ -2.59709395D-02  1.00000000D+00 -8.81912094D-03  1.00000000D+00 -1.31283581D-01
+  1.00000000D+00 -1.15888983D-01  1.00000000D+00 -1.19731724D-01  1.00000000D+00
+ -1.63664266D-01  1.00000000D+00 -1.43314779D-01  1.00000000D+00 -4.88956943D-02
+  1.00000000D+00 -1.82706028D-01  1.00000000D+00 -6.37331307D-02  1.00000000D+00
+ -1.64185643D-01  1.00000000D+00 -1.31180644D-01  1.00000000D+00 -1.37433782D-01
+  1.00000000D+00 -7.62486756D-02  1.00000000D+00 -6.59873635D-02  1.00000000D+00
+ -1.53722018D-01  1.00000000D+00 -1.00952752D-01  1.00000000D+00 -1.59418490D-02
+  1.00000000D+00 -1.75022557D-01  1.00000000D+00 -1.48241401D-01  1.00000000D+00
+ -2.95332223D-01  1.00000000D+00 -4.35067326D-01  1.00000000D+00 -2.99447656D-01
+  1.00000000D+00 -4.29889739D-01  1.00000000D+00 -9.46358740D-02  1.00000000D+00
+ -2.62589782D-01  1.00000000D+00 -1.57239005D-01  1.00000000D+00 -4.79257405D-02
+  1.00000000D+00 -6.81549832D-02  1.00000000D+00 -4.14365530D-02  1.00000000D+00
+ -3.13165896D-02  1.00000000D+00 -4.82902043D-02  1.00000000D+00 -3.12532112D-02
+  1.00000000D+00 -1.65843651D-01  1.00000000D+00 -3.94780114D-02  1.00000000D+00
+ -1.06069766D-01  1.00000000D+00 -1.06182404D-01  1.00000000D+00 -9.06958152D-03
+  1.00000000D+00 -3.50963511D-02  1.00000000D+00 -2.58430243D-02  1.00000000D+00
+ -2.21948341D-01  1.00000000D+00 -1.25001445D-01  1.00000000D+00 -1.15588143D-01
+  1.00000000D+00 -4.41402867D-02  1.00000000D+00 -1.17391003D-02  1.00000000D+00
+ -8.88309106D-02  1.00000000D+00 -1.09484315D-01  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00
+  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00
+ -1.00000000D+00  1.00000000D+00 -1.00000000D+00  1.00000000D+00 -1.00000000D+00