diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5205120e1a9ca7a71f97320d0c8251459be386ad..430768e62000dcad079f3694aebdb90646fb2f01 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -107,6 +107,7 @@ add_subdirectory(config)
 add_subdirectory(core)
 add_subdirectory(rawmodel)
 add_subdirectory(loop)
+add_subdirectory(sidechain)
 add_subdirectory(scripts)
 add_subdirectory(actions)
 add_subdirectory(extras)
diff --git a/cmake_support/doc/index.rst b/cmake_support/doc/index.rst
index 8fb98c962d01b733a99644e1d3d0d1bc7be3fb9e..356ca03334b386e9164e54b04f54e3537bc85f28 100644
--- a/cmake_support/doc/index.rst
+++ b/cmake_support/doc/index.rst
@@ -1,3 +1,8 @@
+<<<<<<< HEAD
+=======
+.. _pm3-cmake-doc:
+
+>>>>>>> develop
 |project|'s Share Of |cmake|
 ===============================================================================
 
diff --git a/conf-scripts/bc2-conf b/conf-scripts/bc2-conf
index d5ef540c7bd9826baee7489ffe29ce18c88274f8..21b23757a2b8edf56b1ec161d935deb5350604b4 100755
--- a/conf-scripts/bc2-conf
+++ b/conf-scripts/bc2-conf
@@ -43,7 +43,7 @@ if test "$CENTOS_RELEASE" == "6.5"; then
     # load required modules
     module purge
     module load CMake/2.8.12-goolf-1.4.10
-    module load OpenStructure/1.4.0-goolf-1.4.10_20141024
+    module load OpenStructure/1.4.0-goolf-1.4.10_20150123
     module load Boost/1.47.0-goolf-1.4.10-Python-2.7.5
     module load Python/2.7.5-goolf-1.4.10
     module load OpenBLAS/0.2.6-gompi-1.4.10-LAPACK-3.4.2
diff --git a/doc/contributing.rst b/doc/contributing.rst
index be7f6cf077eddf29fe179c6deafbd8a39105dc6d..e2f9ce22d0ac7275956500c542c40215c7239088 100644
--- a/doc/contributing.rst
+++ b/doc/contributing.rst
@@ -121,6 +121,45 @@ For branches which are available to others, do a proper merge:
 
 This may require some manual conflict solving and will end up in a merge commit.
 
+--------------------------------------------------------------------------------
+|git| Hooks
+--------------------------------------------------------------------------------
+|git| hooks are scripts invoked by |git| in connection to certain commands.
+|project| currently provides one for :command:`commit`. It is installed by
+
+.. code-block:: console
+
+   $ cp extras/pre_commit/pre-commit .git/hooks/
+   $
+
+Its task is applying coding standards and doing a bunch of other checks on the
+files involved in a commit. Everything around the script is hosted in :file:`extras/pre_commit/`.
+
+If you ever have to skip the hook,
+
+.. code-block:: console
+
+   $ git commit --no-verify
+   $
+
+does the trick. **But** checks are always run on the complete file containing
+changes, not only on the lines changed. This means if you opt out of an issue,
+it will reappear next time that very file changes.
+
+For checking |python| code, the pre-commit hook employs |pylint|_, to make sure
+we stay close to |pep8|_. If you feel the need to make changes to the |pylint|
+call, please make sure you fully understand what the complaints are. Sometimes
+|pep8| sounds overly restrictive but it may help with performance and
+compatibility with |python| 3. For |project| it is also important that the code
+looks similar throughout the various modules. So do not disable a check because
+it just seems inconvenient or you do not understand why |pylint| is croaking at
+what looks like 'working' code. But then there are also cases where |pylint| is
+not smart enough to cope with valid |pep8| code. For changes with valid cause,
+the configuration flushed into |pylint| may be found at
+:file:`extras/pre_commit/pm3_csc/filecheck/pylintrc` and
+:file:`extras/pre_commit/pm3_csc/filecheck/pylint-unittest-rc`. The latter one
+is invoked on unit test code, where we may go a little bit less restrictive.
+
 --------------------------------------------------------------------------------
 Directory Structure
 --------------------------------------------------------------------------------
@@ -169,10 +208,10 @@ tell it which files have to be considered packaging, compiling, etc.. Also
 documentation. |cmake| is a rather complex topic (unfortunately all usable
 build systems seem to be) so we skip a detailed view, here, and just advice you
 to go by example. There is a tiny bit of documentation on our additions to
-|cmake| in the top-level :file:`cmake_support` directory. If you really need to
-make changes to the build system, other than adding new files and modules, you
-have to dive into |cmake| documentation all by yourself and on your own
-responsibility. You have been warned.
+|cmake| :ref:`here <pm3-cmake-doc>`. If you really need to make changes to the
+build system, other than adding new files and modules, you have to dive into
+|cmake| documentation all by yourself and on your own responsibility. You have
+been warned.
 
 --------------------------------------------------------------------------------
 The :file:`stage` Directory
@@ -191,7 +230,7 @@ tutorial on unit testing here. Again, have a look at how other modules treat
 this topic and then there is quite a lot of educated material to be found on
 the Internet. Nevertheless, here is a short list of most important advices:
 
-* Tests go into dedicated scripts in the :file:`tests` directory
+* Tests go into dedicated scripts/ source files in the :file:`tests` directory
 * No external data dependencies, if tests need data, they find it in
   :file:`tests/data`
 * If 'exotic' |python| modules are used, consider making the test aware of the
@@ -431,7 +470,8 @@ top level :file:`CMakeLists.txt`:
                COMPONENTS io mol seq seq_alg mol_alg conop)
   find_package(QMEAN 1.0 REQUIRED)
 
-  #The KIC loop closing algorithm requires a solver for a generalized eigen
+
+  #The KIC loop closing algorithm requires a solver for a generalised eigen
   #problem. Eigen3 would provide such a solver, but only allows to extract
   #the resulting eigenvalues and not the eigenvectors.
   #As soon as there is an Eigen3 release with the required functionality,
@@ -535,10 +575,11 @@ sporting a single monolithic :file:`test_sidechains.py`.
 
 |python| code is evaluated using its own
 :py_docs:`unit testing framework <library/unittest.html>` with a little help
-from |ost_s|_. The basic scheme is to import your module, subclass
-:class:`unittest.TestCase` and make the whole file runnable as script using the
-most common |nameattr|_ attribute. A file :file:`tests/test_something.py` could
-look like this, carrying a single test case:
+from |ost_s|_ (|C++| uses the |boost| `Test Library <http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/index.html>`_).
+The basic scheme is to import your module, subclass :class:`unittest.TestCase`
+and make the whole file runnable as script using the most common |nameattr|_
+attribute. A file :file:`tests/test_something.py` could look like this,
+carrying a single test case:
 
 .. testcode:: promod3unittest
   :hide:
@@ -634,7 +675,10 @@ contributions to web pages using |project|.
 
 .. |fedora| replace:: Fedora
 .. |nameattr| replace:: :attr:`__name__`
-
+.. |pylint| replace:: Pylint
+.. _pylint: http://www.pylint.org
+.. |pep8| replace:: PEP 8
+.. _pep8: https://www.python.org/dev/peps/pep-0008/
 ..  LocalWords:  cmake hotfix doctest linkcheck rebase BRANCHNAME rebasing py
 ..  LocalWords:  CMakeLists txt rst pymod init submodule src restructuredtext
 ..  LocalWords:  makefiles formatters Changelog codetest promod sidechains io
@@ -643,4 +687,6 @@ contributions to web pages using |project|.
 ..  LocalWords:  changelog Optimized DOPTIMIZE gitignore cd conf subtree attr
 ..  LocalWords:  unittest TestCase nameattr testcode staticmethod builtin cp
 ..  LocalWords:  SomethingTests testFileExistsFalse testutils RunTests DQMEAN
-..  LocalWords:  pre
+..  LocalWords:  pre API inline CMake hh ProMod Bienchen OST OPENSTRUCTURE
+..  LocalWords:  mol alg conop QMEAN KIC eigen eigenvectors Lapack rawmodel
+..  LocalWords:  OpenStructure ost pylint
diff --git a/doc/html/_modules/index.html b/doc/html/_modules/index.html
index ec0ee24d707fa8876592b0e532d9edc361916db9..2f0828e6f53e70413b75ec397afc28b321ace832 100644
--- a/doc/html/_modules/index.html
+++ b/doc/html/_modules/index.html
@@ -86,7 +86,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/_modules/promod3/core/argcheck.html b/doc/html/_modules/promod3/core/argcheck.html
index a93ba9d32fd1b86169f8f064e849c3a9b938a69d..6a12535cfa0b13a1c2996eb4896eae9b36427b5d 100644
--- a/doc/html/_modules/promod3/core/argcheck.html
+++ b/doc/html/_modules/promod3/core/argcheck.html
@@ -193,7 +193,11 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
+<<<<<<< HEAD
       Last updated on Dec 16 17:54, 2014.
+=======
+      Last updated on Jan 05 15:48, 2015.
+>>>>>>> develop
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/_modules/promod3/core/helper.html b/doc/html/_modules/promod3/core/helper.html
index ed1ae04495979a658c8d0ef5c71a8a3cf62ceeb3..f30d4279225dd3a8efe1a554c4d46919ddcb377b 100644
--- a/doc/html/_modules/promod3/core/helper.html
+++ b/doc/html/_modules/promod3/core/helper.html
@@ -113,7 +113,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/_modules/promod3/rawmodel.html b/doc/html/_modules/promod3/rawmodel.html
index 97ba70bac439900312553bbd3493790a09ccdca9..c6e7453f42428ddabe038387b5255f28ac2ef5c8 100644
--- a/doc/html/_modules/promod3/rawmodel.html
+++ b/doc/html/_modules/promod3/rawmodel.html
@@ -90,7 +90,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/_sources/cmake/index.txt b/doc/html/_sources/cmake/index.txt
index 8fb98c962d01b733a99644e1d3d0d1bc7be3fb9e..ca224d7d0eb730c29dc1409317d30ebc68739963 100644
--- a/doc/html/_sources/cmake/index.txt
+++ b/doc/html/_sources/cmake/index.txt
@@ -1,3 +1,5 @@
+.. _pm3-cmake-doc:
+
 |project|'s Share Of |cmake|
 ===============================================================================
 
diff --git a/doc/html/_sources/contributing.txt b/doc/html/_sources/contributing.txt
index be7f6cf077eddf29fe179c6deafbd8a39105dc6d..e2f9ce22d0ac7275956500c542c40215c7239088 100644
--- a/doc/html/_sources/contributing.txt
+++ b/doc/html/_sources/contributing.txt
@@ -121,6 +121,45 @@ For branches which are available to others, do a proper merge:
 
 This may require some manual conflict solving and will end up in a merge commit.
 
+--------------------------------------------------------------------------------
+|git| Hooks
+--------------------------------------------------------------------------------
+|git| hooks are scripts invoked by |git| in connection to certain commands.
+|project| currently provides one for :command:`commit`. It is installed by
+
+.. code-block:: console
+
+   $ cp extras/pre_commit/pre-commit .git/hooks/
+   $
+
+Its task is applying coding standards and doing a bunch of other checks on the
+files involved in a commit. Everything around the script is hosted in :file:`extras/pre_commit/`.
+
+If you ever have to skip the hook,
+
+.. code-block:: console
+
+   $ git commit --no-verify
+   $
+
+does the trick. **But** checks are always run on the complete file containing
+changes, not only on the lines changed. This means if you opt out of an issue,
+it will reappear next time that very file changes.
+
+For checking |python| code, the pre-commit hook employs |pylint|_, to make sure
+we stay close to |pep8|_. If you feel the need to make changes to the |pylint|
+call, please make sure you fully understand what the complaints are. Sometimes
+|pep8| sounds overly restrictive but it may help with performance and
+compatibility with |python| 3. For |project| it is also important that the code
+looks similar throughout the various modules. So do not disable a check because
+it just seems inconvenient or you do not understand why |pylint| is croaking at
+what looks like 'working' code. But then there are also cases where |pylint| is
+not smart enough to cope with valid |pep8| code. For changes with valid cause,
+the configuration flushed into |pylint| may be found at
+:file:`extras/pre_commit/pm3_csc/filecheck/pylintrc` and
+:file:`extras/pre_commit/pm3_csc/filecheck/pylint-unittest-rc`. The latter one
+is invoked on unit test code, where we may go a little bit less restrictive.
+
 --------------------------------------------------------------------------------
 Directory Structure
 --------------------------------------------------------------------------------
@@ -169,10 +208,10 @@ tell it which files have to be considered packaging, compiling, etc.. Also
 documentation. |cmake| is a rather complex topic (unfortunately all usable
 build systems seem to be) so we skip a detailed view, here, and just advice you
 to go by example. There is a tiny bit of documentation on our additions to
-|cmake| in the top-level :file:`cmake_support` directory. If you really need to
-make changes to the build system, other than adding new files and modules, you
-have to dive into |cmake| documentation all by yourself and on your own
-responsibility. You have been warned.
+|cmake| :ref:`here <pm3-cmake-doc>`. If you really need to make changes to the
+build system, other than adding new files and modules, you have to dive into
+|cmake| documentation all by yourself and on your own responsibility. You have
+been warned.
 
 --------------------------------------------------------------------------------
 The :file:`stage` Directory
@@ -191,7 +230,7 @@ tutorial on unit testing here. Again, have a look at how other modules treat
 this topic and then there is quite a lot of educated material to be found on
 the Internet. Nevertheless, here is a short list of most important advices:
 
-* Tests go into dedicated scripts in the :file:`tests` directory
+* Tests go into dedicated scripts/ source files in the :file:`tests` directory
 * No external data dependencies, if tests need data, they find it in
   :file:`tests/data`
 * If 'exotic' |python| modules are used, consider making the test aware of the
@@ -431,7 +470,8 @@ top level :file:`CMakeLists.txt`:
                COMPONENTS io mol seq seq_alg mol_alg conop)
   find_package(QMEAN 1.0 REQUIRED)
 
-  #The KIC loop closing algorithm requires a solver for a generalized eigen
+
+  #The KIC loop closing algorithm requires a solver for a generalised eigen
   #problem. Eigen3 would provide such a solver, but only allows to extract
   #the resulting eigenvalues and not the eigenvectors.
   #As soon as there is an Eigen3 release with the required functionality,
@@ -535,10 +575,11 @@ sporting a single monolithic :file:`test_sidechains.py`.
 
 |python| code is evaluated using its own
 :py_docs:`unit testing framework <library/unittest.html>` with a little help
-from |ost_s|_. The basic scheme is to import your module, subclass
-:class:`unittest.TestCase` and make the whole file runnable as script using the
-most common |nameattr|_ attribute. A file :file:`tests/test_something.py` could
-look like this, carrying a single test case:
+from |ost_s|_ (|C++| uses the |boost| `Test Library <http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/index.html>`_).
+The basic scheme is to import your module, subclass :class:`unittest.TestCase`
+and make the whole file runnable as script using the most common |nameattr|_
+attribute. A file :file:`tests/test_something.py` could look like this,
+carrying a single test case:
 
 .. testcode:: promod3unittest
   :hide:
@@ -634,7 +675,10 @@ contributions to web pages using |project|.
 
 .. |fedora| replace:: Fedora
 .. |nameattr| replace:: :attr:`__name__`
-
+.. |pylint| replace:: Pylint
+.. _pylint: http://www.pylint.org
+.. |pep8| replace:: PEP 8
+.. _pep8: https://www.python.org/dev/peps/pep-0008/
 ..  LocalWords:  cmake hotfix doctest linkcheck rebase BRANCHNAME rebasing py
 ..  LocalWords:  CMakeLists txt rst pymod init submodule src restructuredtext
 ..  LocalWords:  makefiles formatters Changelog codetest promod sidechains io
@@ -643,4 +687,6 @@ contributions to web pages using |project|.
 ..  LocalWords:  changelog Optimized DOPTIMIZE gitignore cd conf subtree attr
 ..  LocalWords:  unittest TestCase nameattr testcode staticmethod builtin cp
 ..  LocalWords:  SomethingTests testFileExistsFalse testutils RunTests DQMEAN
-..  LocalWords:  pre
+..  LocalWords:  pre API inline CMake hh ProMod Bienchen OST OPENSTRUCTURE
+..  LocalWords:  mol alg conop QMEAN KIC eigen eigenvectors Lapack rawmodel
+..  LocalWords:  OpenStructure ost pylint
diff --git a/doc/html/buildsystem.html b/doc/html/buildsystem.html
index 06711aebda183009f626c52f3f47cf90b45b71c6..af691cbbc98b65a50537323a40fde5c2be99bea6 100644
--- a/doc/html/buildsystem.html
+++ b/doc/html/buildsystem.html
@@ -212,7 +212,7 @@ builder</li>
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 14:50, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/changelog.html b/doc/html/changelog.html
index 9296d61ae2472c946c5a86c0d34d226dc7347da1..231598ff1f6241b13f3a6663ff81c4f21f64a7c5 100644
--- a/doc/html/changelog.html
+++ b/doc/html/changelog.html
@@ -128,7 +128,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 14:50, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/cmake/index.html b/doc/html/cmake/index.html
index b37ddcc54ece2dc7f254a75cc0549dbd99006d38..b3bf525c1d333db686a585ec3850da882f113008 100644
--- a/doc/html/cmake/index.html
+++ b/doc/html/cmake/index.html
@@ -55,7 +55,7 @@
           <div class="body">
             
   <div class="section" id="project-s-share-of-cmake">
-<h1>ProMod3&#8216;s Share Of CMake<a class="headerlink" href="#project-s-share-of-cmake" title="Permalink to this headline">¶</a></h1>
+<span id="pm3-cmake-doc"></span><h1>ProMod3&#8216;s Share Of CMake<a class="headerlink" href="#project-s-share-of-cmake" title="Permalink to this headline">¶</a></h1>
 <div class="section" id="introduction">
 <h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
 <p>This section describes the set of ProMod3&#8216;s own set of CMake functions (or
@@ -194,7 +194,11 @@ build directory.</dd>
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
+<<<<<<< HEAD
       Last updated on Dec 16 17:54, 2014.
+=======
+      Last updated on Jan 05 14:50, 2015.
+>>>>>>> develop
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/contributing.html b/doc/html/contributing.html
index 94cb4f14d7f13f885454ac2c9d9212d8a94cae14..8d21fe48e4c16e3948d3623b7e3cbf9b58d329f3 100644
--- a/doc/html/contributing.html
+++ b/doc/html/contributing.html
@@ -155,6 +155,38 @@ case <tt class="docutils literal"><span class="pre">develop</span></tt> may be u
 </div>
 <p>This may require some manual conflict solving and will end up in a merge commit.</p>
 </div>
+<div class="section" id="git-hooks">
+<h2>Git Hooks<a class="headerlink" href="#git-hooks" title="Permalink to this headline">¶</a></h2>
+<p>Git hooks are scripts invoked by Git in connection to certain commands.
+ProMod3 currently provides one for <strong class="command">commit</strong>. It is installed by</p>
+<div class="highlight-console"><div class="highlight"><pre><span class="gp">$</span> cp extras/pre_commit/pre-commit .git/hooks/
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Its task is applying coding standards and doing a bunch of other checks on the
+files involved in a commit. Everything around the script is hosted in <tt class="file docutils literal"><span class="pre">extras/pre_commit/</span></tt>.</p>
+<p>If you ever have to skip the hook,</p>
+<div class="highlight-console"><div class="highlight"><pre><span class="gp">$</span> git commit --no-verify
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>does the trick. <strong>But</strong> checks are always run on the complete file containing
+changes, not only on the lines changed. This means if you opt out of an issue,
+it will reappear next time that very file changes.</p>
+<p>For checking Python code, the pre-commit hook employs <a class="reference external" href="http://www.pylint.org">Pylint</a>, to make sure
+we stay close to <a class="reference external" href="https://www.python.org/dev/peps/pep-0008/">PEP 8</a>. If you feel the need to make changes to the Pylint
+call, please make sure you fully understand what the complaints are. Sometimes
+PEP 8 sounds overly restrictive but it may help with performance and
+compatibility with Python 3. For ProMod3 it is also important that the code
+looks similar throughout the various modules. So do not disable a check because
+it just seems inconvenient or you do not understand why Pylint is croaking at
+what looks like &#8216;working&#8217; code. But then there are also cases where Pylint is
+not smart enough to cope with valid PEP 8 code. For changes with valid cause,
+the configuration flushed into Pylint may be found at
+<tt class="file docutils literal"><span class="pre">extras/pre_commit/pm3_csc/filecheck/pylintrc</span></tt> and
+<tt class="file docutils literal"><span class="pre">extras/pre_commit/pm3_csc/filecheck/pylint-unittest-rc</span></tt>. The latter one
+is invoked on unit test code, where we may go a little bit less restrictive.</p>
+</div>
 <div class="section" id="directory-structure">
 <h2>Directory Structure<a class="headerlink" href="#directory-structure" title="Permalink to this headline">¶</a></h2>
 <p>The directory structure of the ProMod3 repository is supposed to &#8216;keep
@@ -200,10 +232,10 @@ Python modules are declared there as well as which files belong to the
 documentation. CMake is a rather complex topic (unfortunately all usable
 build systems seem to be) so we skip a detailed view, here, and just advice you
 to go by example. There is a tiny bit of documentation on our additions to
-CMake in the top-level <tt class="file docutils literal"><span class="pre">cmake_support</span></tt> directory. If you really need to
-make changes to the build system, other than adding new files and modules, you
-have to dive into CMake documentation all by yourself and on your own
-responsibility. You have been warned.</p>
+CMake <a class="reference internal" href="cmake/index.html#pm3-cmake-doc"><em>here</em></a>. If you really need to make changes to the
+build system, other than adding new files and modules, you have to dive into
+CMake documentation all by yourself and on your own responsibility. You have
+been warned.</p>
 </div>
 <div class="section" id="the-stage-directory">
 <h2>The <tt class="file docutils literal"><span class="pre">stage</span></tt> Directory<a class="headerlink" href="#the-stage-directory" title="Permalink to this headline">¶</a></h2>
@@ -220,7 +252,7 @@ tutorial on unit testing here. Again, have a look at how other modules treat
 this topic and then there is quite a lot of educated material to be found on
 the Internet. Nevertheless, here is a short list of most important advices:</p>
 <ul class="simple">
-<li>Tests go into dedicated scripts in the <tt class="file docutils literal"><span class="pre">tests</span></tt> directory</li>
+<li>Tests go into dedicated scripts/ source files in the <tt class="file docutils literal"><span class="pre">tests</span></tt> directory</li>
 <li>No external data dependencies, if tests need data, they find it in
 <tt class="file docutils literal"><span class="pre">tests/data</span></tt></li>
 <li>If &#8216;exotic&#8217; Python modules are used, consider making the test aware of the
@@ -550,7 +582,11 @@ top level <tt class="file docutils literal"><span class="pre">CMakeLists.txt</sp
              <span class="s">COMPONENTS</span> <span class="s">io</span> <span class="s">mol</span> <span class="s">seq</span> <span class="s">seq_alg</span> <span class="s">mol_alg</span> <span class="s">conop</span><span class="p">)</span>
 <span class="nb">find_package</span><span class="p">(</span><span class="s">QMEAN</span> <span class="s">1.0</span> <span class="s">REQUIRED</span><span class="p">)</span>
 
+<<<<<<< HEAD
 <span class="c">#The KIC loop closing algorithm requires a solver for a generalized eigen</span>
+=======
+<span class="c">#The KIC loop closing algorithm requires a solver for a generalised eigen</span>
+>>>>>>> develop
 <span class="c">#problem. Eigen3 would provide such a solver, but only allows to extract</span>
 <span class="c">#the resulting eigenvalues and not the eigenvectors.</span>
 <span class="c">#As soon as there is an Eigen3 release with the required functionality,</span>
@@ -648,10 +684,11 @@ files with a prefix <tt class="file docutils literal"><span class="pre">test_</s
 sporting a single monolithic <tt class="file docutils literal"><span class="pre">test_sidechains.py</span></tt>.</p>
 <p>Python code is evaluated using its own
 <a class="reference external" href="https://docs.python.org/2.7/library/unittest.html">unit testing framework</a> with a little help
-from <a class="reference external" href="http://www.OpenStructure.org">OST</a>. The basic scheme is to import your module, subclass
-<a class="reference external" href="https://docs.python.org/2.7/library/unittest.html#unittest.TestCase" title="(in Python v2.7)"><tt class="xref py py-class docutils literal"><span class="pre">unittest.TestCase</span></tt></a> and make the whole file runnable as script using the
-most common <a class="reference external" href="https://docs.python.org/2.7/library/__main__.html"><tt class="xref py py-attr docutils literal"><span class="pre">__name__</span></tt></a> attribute. A file <tt class="file docutils literal"><span class="pre">tests/test_something.py</span></tt> could
-look like this, carrying a single test case:</p>
+from <a class="reference external" href="http://www.OpenStructure.org">OST</a> (C++ uses the Boost <a class="reference external" href="http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/index.html">Test Library</a>).
+The basic scheme is to import your module, subclass <a class="reference external" href="https://docs.python.org/2.7/library/unittest.html#unittest.TestCase" title="(in Python v2.7)"><tt class="xref py py-class docutils literal"><span class="pre">unittest.TestCase</span></tt></a>
+and make the whole file runnable as script using the most common <a class="reference external" href="https://docs.python.org/2.7/library/__main__.html"><tt class="xref py py-attr docutils literal"><span class="pre">__name__</span></tt></a>
+attribute. A file <tt class="file docutils literal"><span class="pre">tests/test_something.py</span></tt> could look like this,
+carrying a single test case:</p>
 <div class="highlight-python"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
  2
  3
@@ -742,6 +779,7 @@ contributions to web pages using ProMod3.</p>
   <ul>
 <li><a class="reference internal" href="#">Contributing</a><ul>
 <li><a class="reference internal" href="#git-branches">Git Branches</a></li>
+<li><a class="reference internal" href="#git-hooks">Git Hooks</a></li>
 <li><a class="reference internal" href="#directory-structure">Directory Structure</a></li>
 <li><a class="reference internal" href="#cmake">CMake</a></li>
 <li><a class="reference internal" href="#the-stage-directory">The <tt class="file docutils literal"><span class="pre">stage</span></tt> Directory</a></li>
@@ -802,7 +840,7 @@ contributions to web pages using ProMod3.</p>
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/core/argcheck.html b/doc/html/core/argcheck.html
index 4178be9a28efdc40684a29c433b2387735cf5670..3597372c7668a439e6841989a95f614ed23ec8bf 100644
--- a/doc/html/core/argcheck.html
+++ b/doc/html/core/argcheck.html
@@ -217,7 +217,7 @@ shell. <tt class="docutils literal"><span class="pre">0</span></tt> is tradition
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 14:50, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/core/helper.html b/doc/html/core/helper.html
index 5690b18b4be9bdb9fa90a8beb12d16630269c5c7..ae498d5517be94c37ecbd14e94f0206f93ac1069 100644
--- a/doc/html/core/helper.html
+++ b/doc/html/core/helper.html
@@ -160,7 +160,7 @@ traditionally reserved to successful commands.</li>
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 14:50, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/core/index.html b/doc/html/core/index.html
index b322dd3dece56f60bf8f969574e914809727dcca..0663e0669e8f6fa0e8702070fafcff28ce3ad32c 100644
--- a/doc/html/core/index.html
+++ b/doc/html/core/index.html
@@ -129,7 +129,7 @@ modeling per se but cover standard programming issues.</p>
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 14:50, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/developers.html b/doc/html/developers.html
index 7c507c835e62753270ae0576d148bc8c1ea2cb47..a6ac379a5a2c306044fd26c85dd634579ab9a5e4 100644
--- a/doc/html/developers.html
+++ b/doc/html/developers.html
@@ -73,6 +73,7 @@
 </li>
 <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="contributing.html#git-branches">Git Branches</a></li>
+<li class="toctree-l2"><a class="reference internal" href="contributing.html#git-hooks">Git Hooks</a></li>
 <li class="toctree-l2"><a class="reference internal" href="contributing.html#directory-structure">Directory Structure</a></li>
 <li class="toctree-l2"><a class="reference internal" href="contributing.html#cmake">CMake</a></li>
 <li class="toctree-l2"><a class="reference internal" href="contributing.html#the-stage-directory">The <tt class="file docutils literal"><span class="pre">stage</span></tt> Directory</a></li>
@@ -145,7 +146,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/genindex.html b/doc/html/genindex.html
index 6f5b46d30f7de647c8512faf2e13be857e13d7cc..46eb6c8e3591ad2348c4c212aaf0487186314efd 100644
--- a/doc/html/genindex.html
+++ b/doc/html/genindex.html
@@ -229,7 +229,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/index.html b/doc/html/index.html
index b7e39fb3eb4107d82b0927b537c784169154dd19..1df5318c52f97ba2b451b07ddf294798d72bc505 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -133,7 +133,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/py-modindex.html b/doc/html/py-modindex.html
index 7823911e73107b166e6280f19403bcf9f98c6564..faefcc62b30bc01711adbcb2f84f8ca01d39d9d3 100644
--- a/doc/html/py-modindex.html
+++ b/doc/html/py-modindex.html
@@ -113,7 +113,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/rawmodel/index.html b/doc/html/rawmodel/index.html
index 7441ae35d38804a0891cbd7fe9cda10315fb5e19..fb42a2a37a380818b52bc813d92abc045d540099 100644
--- a/doc/html/rawmodel/index.html
+++ b/doc/html/rawmodel/index.html
@@ -214,7 +214,7 @@ missing or incomplete backbone coordinates in the template structure.</p>
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 14:50, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/search.html b/doc/html/search.html
index 2cf86f8af270a57f8bd625b6356c9f470df92c80..0092fa7ff786751c875c689bb28a2f0c498b4bc5 100644
--- a/doc/html/search.html
+++ b/doc/html/search.html
@@ -99,7 +99,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 15:48, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js
index e2cee77e57da65935300d1119432fea72e74b492..882ce3ce1f380ba6ff700808c4f9b967cdd627c7 100644
--- a/doc/html/searchindex.js
+++ b/doc/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({envversion:42,terms:{aln:8,all:[7,0,4,10,8],code:[7,0,4,1,10],forget:[7,4],chain:[7,8],messi:7,skip:7,forbidden:7,sidechains_unit_test:7,ost:[0,1,2,3,4,5,6,7,8,9,10],disable_document:[7,4],prefix:[7,0],concept:7,legal:7,abil:7,follow:[7,8],content:[7,3,9],middl:7,test_foo:10,readabl:7,send:1,init:7,program:[10,6],under:7,introduc:7,sourc:[7,0,4,1,10],everi:[7,8],string:0,fals:[7,0,8],internet:7,worst:7,failur:[7,0],veri:[7,0],affect:7,solver:7,runnabl:7,tri:8,magic:7,level:[7,4],did:7,list:[7,0,4,8],assertequ:7,item:[7,8],fileextens:0,align:8,dir:7,malici:7,promod_gcc_45:7,your_modul:7,direct:7,past:7,second:8,design:0,pass:7,download:4,acid:8,even:[7,4],index:[7,3],what:[7,0,4],hide:7,sub:7,resembl:7,section:10,exot:7,"while":[7,0],find:[7,10],current:7,delet:8,version:[7,4],"new":[7,8],boost:[0,1,2,3,4,5,6,7,8,9,10],meld:5,subtre:[7,10],submodule1:7,honour:8,gener:7,never:7,here:[0,4,1,8,7,10],sphinx:[0,1,2,3,4,5,6,7,8,9,10],save:7,lib_stage_path:7,let:7,set_directory_properti:7,path:[7,0,4,10],along:7,modifi:[7,8,5],implicit:4,valu:[4,0,1],wait:7,headlin:7,search:[7,3,4],produc:[4,10],executable_output_path:7,setup_boost:7,host:10,promod3_version_minor:7,gly:8,doctest:[7,4],action:7,implement:7,chanc:7,spawn:7,via:7,extra:7,activ:7,modul:5,submodul:7,put:[7,0,4,10],unix:7,api:[7,9],instal:[7,4],smallish:[7,4],unit:4,highli:4,fed:[7,10],from:[0,5,4,1,8,7,10],describ:[0,10],would:[7,4,1],regist:[7,10],two:7,next:7,everybodi:7,few:[7,4,8],live:7,call:[7,4,10],recommend:4,msg:1,loadalign:8,checkout:7,tell:[7,0],tightli:7,more:[7,4,10,8],sort:10,chapter:7,peopl:7,relat:7,notic:[7,10],warn:7,flag:[7,0,10],include_directori:7,particular:7,known:0,actual:7,hold:8,cach:[7,4],must:7,ost_double_precis:4,word:10,py_run:[7,10],hous:7,setup:[7,5],work:[7,4,10],histori:7,paragraph:7,can:[7,0,4,8],purpos:7,root:7,fetch:[7,0],def:7,test_suite_:10,control:7,give:[7,10],process:7,add_argu:0,indic:0,topic:7,abort:7,want:[7,4],phrase:7,made:10,hydrogen:8,contribut:10,alwai:7,gcc:7,cours:7,end:[7,0,4,1],sit:7,rather:[7,1],comfort:0,"_xml":10,"__init__":7,verifi:0,config:7,updat:7,python_vers:7,product:7,entityhandl:8,rebas:7,mess:7,clone:7,after:[7,4],usabl:7,befor:7,wrong:4,attent:7,date:7,multipl:7,data:[7,10],grow:8,man:[7,4],"short":7,essenti:7,practic:[7,10],ost_doc_url:7,python_binari:7,correspond:7,stash:7,exclud:7,alias:7,"switch":7,maintain:7,environ:7,allow:7,exclus:7,origin:7,promod3_version_major:7,eigen:[7,4],over:[7,4,8],insight:7,becaus:[7,4],through:7,same:[7,4],rawmodel:[7,3,9,5],gitignor:7,still:7,pointer:4,disable_disable_doctest:7,paramet:[0,1,10,8],perfect:7,output_vari:7,funni:4,fix:[7,0],selenium:8,structuralgaplist:8,relev:[4,10],carri:[7,0],drawback:7,onc:7,bin:7,python_doc_url:7,therefor:7,linkcheck:[7,4],them:[7,10],good:7,"return":[0,1,8],thei:[7,4],python:[0,1,2,3,4,5,6,7,8,9,10],dai:0,initi:5,"break":7,framework:7,conquer:7,instead:[7,0,4,10],front:[7,0,4],now:[7,8],pre_commit:7,minimalist:8,cmake_cxx_flags_releas:7,libexec_stage_path:7,somewher:10,name:[7,0,10],anyth:[7,4],drop:7,separ:7,easili:[7,10],achiev:7,each:7,debug:7,found:[7,10],went:7,complet:[7,8],side:[7,8],mean:[7,0,4],compil:7,everyth:7,monolith:7,cmake_module_path:7,test_sidechain:7,idea:[7,5],realli:[7,0,4],runtest:7,member:[7,8],"static":7,our:[7,10],extract:7,special:[7,4,10],out:[7,4,10],variabl:[7,4],shown:7,goe:[7,4],promod3_unittest:[7,10],crucial:7,categori:10,rel:10,reader:7,print:4,got:4,exec_program:7,merg:7,dive:7,integr:[7,10],insid:10,runtimeerror:8,differ:[7,4,10],free:7,standard:[7,4],test_someth:7,reason:7,base:[0,8],latest:4,ask:7,org:7,basi:[7,10],could:[7,10,8],insert:8,keep:7,thing:[7,4],place:[7,1],think:7,first:[7,5],oper:7,softwar:7,major:7,suffix:0,obviou:7,prevent:7,feel:7,sidechains_pymod:7,number:8,yourself:[7,4],restrict:7,mai:[7,4,10,8],alreadi:7,done:7,least:[7,4,10],blank:7,stabl:7,miss:[0,8],exit_statu:[0,1],given:[0,10],script:[7,0,4,1],top:[7,4],perfectli:7,mkdir:7,system:[7,4,5],messag:[7,0],stack:7,attach:8,stori:7,master:7,too:7,"_run":10,termin:0,scheme:7,"final":[7,8],store:[7,8],shell:[4,0,1],option:[7,0,4],tool:[0,10],copi:[7,10,8],restrict_chain:8,specifi:10,openstructur:[0,1,2,3,4,5,6,7,8,9,10],part:7,pars:0,boost_include_dir:7,mostli:7,rst:7,off:[7,8],exactli:4,than:7,kind:7,grep:4,target:[7,4,10],whenev:7,provid:[7,4],seamlessli:7,tree:[7,10],unrecognis:0,project:[7,10],matter:10,reus:8,str:[0,1],were:7,posit:0,toward:7,builder:4,pre:7,linker:10,mind:7,argument:4,packag:[7,10],manner:7,have:[7,4,10,8],"__main__":7,need:[7,0,4,10],dedic:[7,4,10],turn:[7,0],tidi:7,cmake_current_source_dir:7,optimis:7,imagin:7,probabl:[7,4,10],built:7,advic:7,inform:8,diverg:7,self:7,mix:10,without:[7,0,10,8],take:[7,8],which:[7,4,1,8,6],thoroughli:7,data1:10,noth:7,singl:[7,10,8],data2:10,"_opt":7,sure:7,distribut:7,track:0,forg:7,compress:0,strict:7,wno:7,most:[7,0,8],eigen3_found:7,hotfix:7,"class":[7,8,6],charg:7,renam:5,bug:7,url:7,doc:[7,4],later:7,cover:[7,0,6],doe:[7,0,10,8],ext:0,declar:[7,10],clean:[7,4],brew:10,usual:[7,4,10],review:7,came:7,cmakelist:[7,4,10],show:7,test_suite_your_module_run:7,dbg:7,attachview:8,bring:7,permiss:7,cmake_support:[7,10],fine:7,anywai:7,help:[7,4],involv:7,onli:[7,0,10,8],locat:[4,10],nevertheless:7,explain:7,configur:[7,4],solut:7,state:[7,4],should:[7,0,1,10],suppos:7,templat:8,folder:7,move:7,hit:7,unus:7,variou:[4,10],get:[7,4],watch:7,autom:10,cannot:7,loadpdb:8,report:[7,8],toolbox:7,requir:[7,4],setup_compiler_flag:7,add_changelog_to_doc:7,enabl:0,"2b1":4,"default":[7,4],common:[7,0],contain:[7,0,4,10,8],python_root:4,where:7,remov:4,view:7,set:[7,0,4,10,8],project_nam:7,seq:[7,8],frame:7,ost_include_dir:7,see:7,temporarili:7,mandatori:7,result:[7,4,8],smng:5,arg:7,testcas:7,close:7,sport:7,servic:7,best:10,subject:7,awar:7,statu:7,detect:0,msgerrorandexit:1,vari:10,someth:[7,1],version_great:7,enumer:7,label:7,figur:7,header_stage_path:7,subdir:7,simplest:7,"import":[7,0,4,1,8],awai:7,entiti:7,approach:7,attribut:7,accord:7,extend:[7,10],sole:7,cmake_cxx_compiler_vers:7,test_your_modul:7,solv:7,come:[7,0],popul:[7,4],fail:[7,1],last:10,extens:0,alon:1,disable_doctest:[7,4],promod3_version_patch:7,tutori:7,grain:7,fno:7,mani:1,whole:[7,8],pdb:[0,8],comment:7,sidechains_rst:7,author:7,point:[7,4],cxx:7,overview:7,unittest:7,argumentpars:0,pop:7,walk:7,residu:8,header:[7,4],featur:7,littl:[7,10],codetest:[7,10],test_submodule1:7,assum:7,amino:8,sever:[7,4],quit:7,template_structur:8,creat:[7,4,10],coupl:7,addition:10,rebuild:[7,4],three:[7,10],been:7,sinc:[7,0,4,10],compon:7,trigger:7,besid:[4,10],treat:[7,8],basic:[7,4,8],ost_root:[7,4],addit:[7,0,10],seq_alg:7,tini:7,quickli:7,life:7,fasta:8,convert:8,ani:7,coordin:[3,9],togeth:7,els:7,fileexist:0,educ:7,those:[7,4,10],"case":7,cmake_c_compiler_vers:7,uncertain:7,look:[7,0],raw:9,testfileexistsfals:7,disable_disable_linkcheck:7,straight:7,properti:7,commerci:7,formatt:7,defin:10,invok:[7,4],boost_root:4,abov:7,error:[0,1],wild:10,dost_root:[7,4],loop:[7,8],stage_dir:7,methionin:8,real:7,argpars:0,helper:10,almost:10,sidechain:7,henc:7,non:7,itself:[7,10],clutter:7,conf:[7,4],protein:8,vanish:7,calpha_onli:8,feed:10,reviv:7,parent:8,develop:7,fedora:7,etc:7,suggest:7,belong:7,savepdb:8,files_to_be_remov:7,promod3_version_str:7,binari:7,complex:7,flag2:10,flag1:10,advis:7,admir:7,document:[4,10,5],start:4,conflict:7,higher:4,http:7,cmakecach:4,optim:[7,4],bienchen:7,make_directori:7,effect:10,hand:4,driven:7,moment:7,rais:8,disable_linkcheck:[7,4],user:3,kic:7,respons:7,tradition:[0,1],expand:7,recent:7,task:7,conop:7,pymod:7,find_packag:7,macro:[7,10],markup:7,well:[7,4,8],exampl:[7,4,8],command:7,branchnam:7,thi:[0,4,8,7,6,10],endif:7,gzip:0,model:[3,9,6],academ:7,spend:7,piec:7,left:1,interpret:1,add_doc_sourc:7,entri:7,just:[7,4],elabor:7,obtain:8,rest:[0,1,2,3,4,5,6,7,8,9,10],touch:7,languag:10,web:[7,4],also:[7,0,4,10,8],lapack:[7,4],restructuredtext:[0,1,2,3,4,5,6,7,8,9,10],makefil:[7,4],except:7,seem:7,add:[7,10],eigen3:7,input:0,subsequ:8,match:[7,8],opt:0,around:7,format:7,handl:8,specimen:0,term:7,source2:[7,10],source1:[7,10],know:4,background:4,mol:7,bit:[7,4],you:[7,0,4,10],dare:10,mod:7,eigen3_include_dir:[7,4],loss:7,like:[7,4,10,8],success:[0,1],incred:8,manual:[7,4],html:[7,4,5],test_:7,test_awesome_featur:7,collect:1,"boolean":0,either:[7,8],output:[7,0],hook:7,page:[7,3,4],www:7,right:[7,4],often:[7,0],acknowledg:7,some:[7,0,4],begin:7,resolv:7,intern:7,proper:7,home:10,librari:[7,10],qmean:[7,4],thu:0,txt:[7,4,10],lead:0,avoid:7,definit:7,subclass:7,exit:[0,1],select:8,recognis:7,devot:6,condit:7,manag:[7,10],core:[7,0,1],plu:7,cmake_source_dir:7,backbon:8,step:7,promot:7,repositori:[7,10,5],"__name__":7,add_subdirectori:7,intervent:7,mmcif:0,stage:4,trustworthi:7,src:7,about:[7,10,8],rare:7,materi:7,unfortun:7,coars:7,commit:7,mol_alg:7,disabl:7,qmean_root:[7,4],own:10,within:[7,4],automat:[7,0],due:8,empti:[7,1],cmake_cxx_flag:7,strip:8,announc:7,soon:7,your:[4,10],per:[7,10,6],git:[4,10,5],log:[7,1],wai:[7,4,10],pictur:7,qmean_include_dir:7,support:[7,0],renumb:8,custom:7,avail:[7,4],lost:7,much:[7,8],interfac:7,includ:[7,0,5],lot:[7,0],suit:7,forward:7,parse_arg:0,headach:7,unexpect:4,enough:7,tupl:0,buildrawmodel:8,somethingtest:7,back:7,link:[7,4,10],atom:8,don:[7,4],line:7,inlin:7,"true":[7,0,8],setup_stag:7,pull:[7,4],tripl:0,immedi:7,wise:10,consist:7,possibl:[7,8],whether:0,type:[0,8],displai:0,below:7,otherwis:7,problem:7,similar:4,eigenvector:7,testutil:7,reserv:[0,1],gather:[7,10,6],evalu:7,"int":[0,1],certain:[4,10],utilis:[7,0],fellow:7,incomplet:8,exist:[7,0],file:[7,4,10],dqmean_root:[7,4],deuterium:8,check:[7,0,4],fill:7,echo:7,again:[7,4],readi:4,calpha:8,modif:8,when:[7,8],detail:[7,8],other:[7,4,8],bool:0,test:4,cmake_compiler_is_gnucxx:7,phosphoserin:8,nice:7,sometim:7,additional_make_clean_fil:7,extern:[7,10],determin:0,rawmodelingresult:8,sequenc:8,cmake_build_typ:7,cmake_minimum_requir:7,briefli:7,eigenvalu:7,consid:[7,10],gap:8,homolog:6,doptim:7,fatal_error:7,stai:7,library2:10,library1:10,peptid:8,algorithm:[7,8],project_binary_dir:7,directori:[4,10],descript:7,pseudo:8,rule:7,ignor:8,time:[7,8],push:7},objtypes:{"0":"cmake:command","1":"py:module","2":"py:function","3":"py:attribute","4":"py:class"},objnames:{"0":["cmake","command","CMake command"],"1":["py","module","Python module"],"2":["py","function","Python function"],"3":["py","attribute","Python attribute"],"4":["py","class","Python class"]},filenames:["core/argcheck","core/helper","users","index","buildsystem","changelog","core/index","contributing","rawmodel/index","developers","cmake/index"],titles:["<tt class=\"docutils literal\"><span class=\"pre\">argcheck</span></tt> - Standard Tests For Command Line Arguments","<tt class=\"docutils literal\"><span class=\"pre\">helper</span></tt> - Shared Functionality For the Everything","Documentation For Users","Welcome To ProMod3&#8217;s Documentation!","Building ProMod3","Changelog","<tt class=\"docutils literal\"><span class=\"pre\">core</span></tt> - ProMod3 Core Functionality","Contributing","<tt class=\"docutils literal\"><span class=\"pre\">rawmodel</span></tt> - Coordinate Modeling","Documentation For Developes","ProMod3&#8216;s Share Of CMake"],objects:{"":{"command:promod3_unittest":[10,0,1,""]},"promod3.rawmodel":{BuildRawModel:[8,2,1,""],RawModelingResult:[8,4,1,""]},"promod3.core.argcheck":{FileExtension:[0,2,1,""],FileExists:[0,2,1,""]},"promod3.rawmodel.RawModelingResult":{model:[8,3,1,""],gaps:[8,3,1,""]},promod3:{core:[6,1,0,"-"],rawmodel:[8,1,0,"-"]},"promod3.core.helper":{MsgErrorAndExit:[1,2,1,""]}},titleterms:{own:7,helper:1,modul:[7,10],share:[1,10],argument:0,indic:3,raw:8,api:8,file:0,tabl:3,run:4,your:7,unit:[7,10],git:7,develop:9,welcom:3,how:7,parti:7,make:4,messag:1,write:7,start:7,build:4,branch:7,test:[7,0,10],stage:7,promod3:[4,3,10,6],"function":[1,10,6],core:6,argcheck:0,contribut:7,chang:5,standard:0,coordin:8,mainten:10,user:2,releas:5,cmake:[7,4,10],line:0,everyth:1,introduct:[0,1,10],document:[7,3,9,2],third:7,changelog:5,directori:7,structur:7,issu:7,command:0,rawmodel:8,model:8,licens:7,depend:4}})
\ No newline at end of file
+Search.setIndex({envversion:42,terms:{aln:9,all:[8,0,4,10,9],code:[8,0,1,10,4],forget:[8,4],chain:[8,9],messi:8,skip:8,forbidden:8,sidechains_unit_test:8,ost:[0,1,2,3,4,5,6,7,8,9,10],disable_document:[8,4],prefix:[8,0],concept:8,subclass:8,abil:8,follow:[8,9],content:[8,3,6],middl:8,test_foo:10,readabl:8,send:1,init:8,program:[10,7],under:8,introduc:8,"case":8,sourc:[8,0,1,10,4],everi:[8,9],string:0,fals:[8,0,9],internet:8,worst:8,failur:[8,0],veri:[8,0],rawmodel:[],relev:[4,10],tri:9,magic:8,solver:8,did:8,list:[8,0,4,9],assertequ:8,item:[8,9],fileextens:0,straight:8,dir:8,pleas:8,malici:8,promod_gcc_45:8,your_modul:8,direct:8,past:8,second:9,pm3_csc:8,design:0,pass:8,download:4,acid:9,even:[8,4],index:[8,3],what:[8,0,4],hide:8,sub:8,resembl:8,section:10,invok:[8,4],anywai:8,current:8,delet:9,version:[8,4],"new":[8,9],boost:[0,1,2,3,4,5,6,7,8,9,10],meld:5,subtre:[8,10],submodule1:8,honour:9,gener:8,never:8,here:[0,4,1,9,8,10],lib_stage_path:8,let:8,set_directory_properti:8,path:[8,0,4,10],along:8,modifi:[8,9,5],implicit:4,valu:[4,0,1],wait:8,test_someth:8,search:[8,3,4],find_packag:8,executable_output_path:8,setup_boost:8,step:8,promod3_version_minor:8,gly:9,doctest:[8,4],action:8,implement:8,chanc:8,methionin:9,via:8,extra:8,solut:8,modul:[],submodul:8,ask:8,unix:8,api:[],instal:[8,4],smallish:[8,4],unit:[],highli:4,fed:[8,10],from:[0,5,4,1,9,8,10],describ:[0,10],would:[8,4,1],regist:[8,10],two:8,next:8,everybodi:8,few:[8,4,9],live:8,call:[8,4,10],recommend:4,msg:1,loadalign:9,checkout:8,tell:[8,0],tightli:8,more:[8,4,10,9],sort:10,trustworthi:8,peopl:8,relat:8,pylint:8,notic:[8,10],warn:8,flag:[8,0,10],include_directori:8,particular:8,known:0,rare:8,hold:9,cach:[8,4],must:8,ost_double_precis:4,word:10,py_run:[8,10],hous:8,generalis:8,setup:[8,5],work:[8,4,10],histori:8,left:1,paragraph:8,can:[8,0,4,9],purpos:8,root:8,fetch:[8,0],def:8,test_suite_:10,control:8,give:[8,10],process:8,add_argu:0,indic:[],topic:8,abort:8,want:[8,4],phrase:8,hydrogen:9,unus:8,alwai:8,gcc:8,cours:8,end:[8,0,4,1],sit:8,rather:[8,1],peptid:9,comfort:0,"_xml":10,calpha_onli:9,sever:[8,4],opt:[8,0],instead:[8,0,4,10],config:8,updat:8,python_vers:8,product:8,entityhandl:9,rebas:8,mess:8,dive:8,after:[8,4],usabl:8,befor:8,wrong:4,attent:8,mai:[8,4,10,9],multipl:8,data:[8,10],grow:9,man:[8,4],subsequ:9,"short":8,essenti:8,practic:[8,10],mol_alg:8,python_binari:8,correspond:8,stash:8,exclud:8,caus:8,alias:8,"switch":8,maintain:8,environ:8,allow:8,exclus:8,croak:8,origin:8,promod3_version_major:8,eigen:[8,4],over:[8,4,9],insight:8,becaus:[8,4],through:8,files_to_be_remov:8,affect:8,smart:8,gitignor:8,still:8,pointer:4,disable_disable_doctest:8,paramet:[0,1,10,9],perfect:8,output_vari:8,binari:8,fix:[8,0],selenium:9,structuralgaplist:9,runnabl:8,carri:[8,0],complex:8,onc:8,python_doc_url:8,therefor:8,linkcheck:[8,4],them:[8,10],good:8,"return":[0,1,9],thei:[8,4],python:[0,1,2,3,4,5,6,7,8,9,10],dai:0,exot:8,"break":8,framework:8,conquer:8,verifi:[8,0],front:[8,0,4],now:[8,9],pre_commit:8,minimalist:9,cmake_cxx_flags_releas:8,libexec_stage_path:8,somewher:10,name:[8,0,10],anyth:[8,4],drop:8,separ:8,easili:[8,10],achiev:8,each:8,debug:8,found:[8,10],went:8,higher:4,side:[8,9],mean:[8,0,4],compil:8,monolith:8,strip:9,idea:[8,5],realli:[8,0,4],runtest:8,"static":8,connect:8,our:[8,10],extract:8,special:[8,4,10],out:[8,4,10],variabl:[8,4],shown:8,goe:[8,4],promod3_unittest:[8,10],crucial:8,categori:10,rel:10,reader:8,print:4,got:4,exec_program:8,merg:8,clone:8,common:[8,0],model:[],insid:10,make_directori:8,runtimeerror:9,given:[0,10],free:8,standard:[],headlin:8,reason:8,base:[0,9],term:8,put:[8,0,4,10],org:8,basi:[8,10],could:[8,10,9],promod3_version_patch:8,keep:8,thing:[8,4],place:[8,1],think:8,first:[8,5],oper:8,softwar:8,major:8,suffix:0,obviou:8,prevent:8,feel:8,sidechains_pymod:8,number:9,yourself:[8,4],restrict:8,date:8,alreadi:8,done:8,messag:[],blank:8,stabl:8,miss:[0,9],exit_statu:[0,1],differ:[8,4,10],level:[8,4],script:[8,0,4,1],top:[8,4],perfectli:8,mkdir:8,system:[8,4,5],least:[8,4,10],tradition:[0,1],attach:9,stori:8,master:8,too:8,"_run":10,termin:0,scheme:8,"final":[8,9],store:[8,9],shell:[4,0,1],option:[8,0,4],cope:8,tool:[0,10],copi:[8,10,9],restrict_chain:9,specifi:10,openstructur:[0,1,2,3,4,5,6,7,8,9,10],part:8,pars:0,boost_include_dir:8,mostli:8,rst:8,conop:8,exactli:4,than:8,kind:8,grep:4,target:[8,4,10],whenev:8,provid:[8,4],seamlessli:8,tree:[8,10],unrecognis:0,project:[8,10],matter:10,reus:9,str:[0,1],were:8,posit:0,toward:8,markup:8,pre:8,linker:10,mind:8,argument:[],packag:[8,10],manner:8,have:[8,4,10,9],"__main__":8,need:[8,0,4,10],dedic:[8,4,10],turn:[8,0],tidi:8,cmake_current_source_dir:8,optimis:8,imagin:8,built:8,advic:8,inform:9,diverg:8,latter:8,mix:10,exampl:[8,4,9],take:[8,9],which:[8,4,1,9,7],thoroughli:8,data1:10,noth:8,singl:[8,10,9],data2:10,compat:8,"_opt":8,sure:8,distribut:8,track:0,buildrawmodel:9,compress:0,strict:8,somethingtest:8,most:[8,0,9],eigen3_found:8,hotfix:8,"class":[8,9,7],charg:8,renam:5,url:8,doc:[8,4],later:8,cover:[8,0,7],doe:[8,0,10,9],ext:0,declar:[8,10],clean:[8,4],brew:10,usual:[8,4,10],someth:[8,1],came:8,cmakelist:[8,4,10],show:8,enumer:8,dbg:8,attachview:9,bring:8,permiss:8,add_doc_sourc:8,fine:8,find:[8,10],help:[8,4],involv:8,onli:[8,0,10,9],locat:[4,10],explain:8,configur:[8,4],activ:8,figur:8,should:[8,0,1,10],suppos:8,templat:9,folder:8,move:8,hit:8,contribut:[],variou:[8,4,10],get:[8,4],watch:8,autom:10,cannot:8,loadpdb:9,report:[8,9],toolbox:8,requir:[8,4],setup_compiler_flag:8,add_changelog_to_doc:8,enabl:0,ever:8,"2b1":4,gather:[8,10,7],whether:0,feed:10,integr:[8,10],contain:[8,0,4,10,9],python_root:4,where:8,remov:4,view:8,user:[],set:[8,0,4,10,9],project_nam:8,seq:[8,9],frame:8,around:8,ost_include_dir:8,see:8,temporarili:8,mandatori:8,result:[8,4,9],smng:5,arg:8,testcas:8,close:8,sport:8,servic:8,best:10,subject:8,awar:8,statu:8,detect:0,msgerrorandexit:1,inconveni:8,vari:10,review:8,version_great:8,test_suite_your_module_run:8,label:8,state:[8,4],header_stage_path:8,subdir:8,simplest:8,"import":[8,0,4,1,9],awai:8,entiti:8,approach:8,attribut:8,accord:8,extend:[8,10],sole:8,cmake_cxx_compiler_vers:8,test_your_modul:8,recent:8,solv:8,come:[8,0],popul:[8,4],fail:[8,1],last:10,extens:0,alon:1,disable_doctest:[8,4],etc:8,tutori:8,grain:8,fno:8,mani:1,whole:[8,9],pdb:[0,9],comment:8,sidechains_rst:8,point:[8,4],cxx:8,overview:8,unittest:8,argumentpars:0,pop:8,walk:8,residu:9,header:[8,4],test_submodule1:8,throughout:8,assum:8,amino:9,quit:8,template_structur:9,evalu:8,coupl:8,addition:10,rebuild:[8,4],three:[8,10],been:8,sinc:[8,0,4,10],compon:8,trigger:8,besid:[4,10],treat:[8,9],basic:[8,4,9],ost_root:[8,4],addit:[8,0,10],seq_alg:8,tini:8,quickli:8,life:8,convert:9,ani:8,coordin:[],understand:8,togeth:8,input:0,"catch":[],fileexist:0,educ:8,those:[8,4,10],emploi:8,cmake_c_compiler_vers:8,uncertain:8,look:[8,0],raw:[],testfileexistsfals:8,disable_disable_linkcheck:8,align:9,properti:8,commerci:8,trick:8,defin:10,"while":[8,0],match:[8,9],abov:8,error:[0,1],wild:10,dost_root:[8,4],loop:[8,9],stage_dir:8,spawn:8,real:8,test_sidechain:8,helper:[],almost:10,sidechain:8,henc:8,non:8,itself:[8,10],clutter:8,conf:[8,4],protein:9,vanish:8,fasta:9,"__init__":8,reviv:8,parent:9,disabl:8,develop:[],fedora:8,author:8,perform:8,suggest:8,belong:8,savepdb:9,same:[8,4],member:[8,9],funni:4,drawback:8,flag2:10,flag1:10,admir:8,document:[],start:[],conflict:8,complet:[8,9],http:8,again:[8,4],optim:[8,4],bienchen:8,argpars:0,effect:10,hand:4,driven:8,moment:8,rais:9,disable_linkcheck:[8,4],initi:5,kic:8,immedi:8,respons:8,stack:8,expand:8,codetest:[8,10],task:8,off:[8,9],pymod:8,nevertheless:8,macro:[8,10],builder:4,well:[8,4,9],pep8:[],without:[8,0,10,9],command:[],branchnam:8,thi:[0,4,9,8,7,10],endif:8,gzip:0,everyth:[],academ:8,loss:8,spend:8,latest:4,interpret:1,cmake_support:[8,10],entri:8,just:[8,4],less:8,sound:8,mol:8,obtain:9,rest:[0,1,2,3,4,5,6,7,8,9,10],legal:8,touch:8,languag:10,web:[8,4],also:[8,0,4,10,9],lapack:[8,4],restructuredtext:[0,1,2,3,4,5,6,7,8,9,10],makefil:[8,4],except:8,littl:[8,10],add:[8,10],valid:8,eigen3:8,appli:8,els:8,save:8,boost_root:4,bin:8,complaint:8,advis:8,format:8,handl:9,specimen:0,setup_stag:8,piec:8,source2:[8,10],source1:[8,10],know:4,background:4,elabor:8,bit:[8,4],cmake_compiler_is_gnucxx:8,dare:10,mod:8,eigen3_include_dir:[8,4],insert:9,like:[8,4,10,9],success:[0,1],incred:9,manual:[8,4],resolv:8,test_:8,test_awesome_featur:8,collect:1,"boolean":0,either:[8,9],bunch:8,output:[8,0],hook:[],page:[8,3,4],filecheck:8,www:8,right:[8,4],often:[8,0],acknowledg:8,some:[8,0,4],begin:8,self:8,intern:8,flush:8,proper:8,home:10,librari:[8,10],qmean:[8,4],thu:0,txt:[8,4,10],lead:0,avoid:8,definit:8,per:[8,10,7],exit:[0,1],select:9,recognis:8,sequenc:9,condit:8,overli:8,core:[],plu:8,cmake_source_dir:8,backbon:9,host:[8,10],promot:8,repositori:[8,10,5],fulli:8,"__name__":8,cmake_minimum_requir:8,intervent:8,mmcif:0,stage:[],chapter:8,src:8,about:[8,10,9],pep:8,actual:8,reappear:8,materi:8,unfortun:8,coars:8,commit:8,ost_doc_url:8,produc:[4,10],qmean_root:[8,4],own:[],within:[8,4],automat:[8,0],due:9,promod3_version_str:8,empti:[8,1],cmake_cxx_flag:8,cmake_module_path:8,ensur:[],announc:8,soon:8,your:[],manag:[8,10],git:[],fill:8,log:[8,1],wai:[8,4,10],pictur:8,qmean_include_dir:8,support:[8,0],renumb:9,custom:8,avail:[8,4],lost:8,much:[8,9],interfac:8,includ:[8,0,5],lot:[8,0],suit:8,forward:8,parse_arg:0,ehi:[],headach:8,unexpect:4,enough:8,tupl:0,forg:8,wno:8,back:8,link:[8,4,10],atom:9,don:[8,4],line:[],inlin:8,"true":[8,0,9],bug:8,pull:[8,4],tripl:0,made:10,wise:10,consist:8,possibl:[8,9],"default":[8,4],type:[0,9],displai:0,below:8,otherwis:8,problem:8,similar:[8,4],eigenvector:8,testutil:8,reserv:[0,1],featur:8,creat:[8,4,10],"int":[0,1],certain:[8,4,10],utilis:[8,0],html:[8,4,5],fellow:8,incomplet:9,exist:[8,0],file:[],dqmean_root:[8,4],deuterium:9,check:[8,0,4],pylintrc:8,probabl:[8,4,10],echo:8,cmakecach:4,readi:4,calpha:9,modif:9,when:[8,9],detail:[8,9],other:[8,4,9],bool:0,seem:8,test:[],you:[8,0,4,10],phosphoserin:9,nice:8,sometim:8,additional_make_clean_fil:8,extern:[8,10],determin:0,rawmodelingresult:9,devot:7,why:8,cmake_build_typ:8,add_subdirectori:8,formatt:8,briefli:8,eigenvalu:8,consid:[8,10],gap:9,homolog:7,doptim:8,fatal_error:8,stai:8,library2:10,library1:10,sphinx:[0,1,2,3,4,5,6,7,8,9,10],algorithm:[8,9],project_binary_dir:8,directori:[],descript:8,pseudo:9,rule:8,ignor:9,time:[8,9],push:8},objtypes:{"0":"cmake:command","1":"py:module","2":"py:function","3":"py:attribute","4":"py:class"},objnames:{"0":["cmake","command","CMake command"],"1":["py","module","Python module"],"2":["py","function","Python function"],"3":["py","attribute","Python attribute"],"4":["py","class","Python class"]},filenames:["core/argcheck","core/helper","users","index","buildsystem","changelog","developers","core/index","contributing","rawmodel/index","cmake/index"],titles:["<tt class=\"docutils literal\"><span class=\"pre\">argcheck</span></tt> - Standard Tests For Command Line Arguments","<tt class=\"docutils literal\"><span class=\"pre\">helper</span></tt> - Shared Functionality For the Everything","Documentation For Users","Welcome To ProMod3&#8217;s Documentation!","Building ProMod3","Changelog","Documentation For Developes","<tt class=\"docutils literal\"><span class=\"pre\">core</span></tt> - ProMod3 Core Functionality","Contributing","<tt class=\"docutils literal\"><span class=\"pre\">rawmodel</span></tt> - Coordinate Modeling","ProMod3&#8216;s Share Of CMake"],objects:{"":{"command:promod3_unittest":[10,0,1,""]},"promod3.rawmodel":{BuildRawModel:[9,2,1,""],RawModelingResult:[9,4,1,""]},"promod3.core.argcheck":{FileExtension:[0,2,1,""],FileExists:[0,2,1,""]},"promod3.rawmodel.RawModelingResult":{model:[9,3,1,""],gaps:[9,3,1,""]},promod3:{core:[7,1,0,"-"],rawmodel:[9,1,0,"-"]},"promod3.core.helper":{MsgErrorAndExit:[1,2,1,""]}},titleterms:{model:9,own:8,helper:1,modul:[8,10],share:[1,10],argument:0,indic:3,hook:8,api:9,file:0,tabl:3,argcheck:0,your:8,unit:[8,10],git:8,develop:6,welcom:3,start:8,parti:8,make:4,messag:1,write:8,how:8,build:4,branch:8,test:[8,0,10],foo:[],promod3:[4,3,10,7],"function":[1,10,7],core:7,run:4,contribut:8,standard:0,coordin:9,mainten:10,user:2,releas:5,cmake:[8,4,10],line:0,everyth:1,stage:8,document:[8,3,6,2],third:8,raw:9,directori:8,changelog:5,introduct:[0,1,10],structur:8,issu:8,command:0,rawmodel:9,chang:5,licens:8,depend:4}})
diff --git a/doc/html/users.html b/doc/html/users.html
index 26b34d4a653d1cb39db874ab84f579099d2c1d25..e28a90ef7180e6e0f3617696a8cc112d8f1d6935 100644
--- a/doc/html/users.html
+++ b/doc/html/users.html
@@ -110,7 +110,7 @@
     </div>
     <div class="footer">
         &copy; Copyright 2014, Bienchen.
-      Last updated on Dec 16 17:54, 2014.
+      Last updated on Jan 05 14:50, 2015.
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
     </div>
   </body>
diff --git a/extras/pre_commit/pm3_csc/filecheck/rest.py b/extras/pre_commit/pm3_csc/filecheck/rest.py
index d234a14b57c3c1d14d1987dec187fd92bd478a78..0ae713cc18da993e899f8c781778a09aaf34f922 100644
--- a/extras/pre_commit/pm3_csc/filecheck/rest.py
+++ b/extras/pre_commit/pm3_csc/filecheck/rest.py
@@ -24,9 +24,11 @@ class Rest(base.FileCheck):
             if re_head1.match(line) and len(last_line):
                 ma_title = re_title1.match(last_line)
                 if ma_title:
-                    wl_title = ma_title.group(1).split()
+                    wl_title = ma_title.group(1).split(' ()')
                     for wrd in wl_title:
                         if wrd not in ['-', 'a', 'an', 'the'] and wrd[0] != '|':
+                            if re.match(r':.+:`.+`', wrd):
+                                continue
                             if not wrd[0].isupper():
                                 pm3_csc.FailMsg("Line %d"%(self.current_line-1)+
                                                 " seems to be a headline "+
diff --git a/sidechain/CMakeLists.txt b/sidechain/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b5bced647c7b5a80c3692def545e5e6a5993d5fb
--- /dev/null
+++ b/sidechain/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_subdirectory(src)
+add_subdirectory(pymod)
+add_subdirectory(data)
+add_subdirectory(tests)
diff --git a/sidechain/data/2010DunbrackLib.dat b/sidechain/data/2010DunbrackLib.dat
new file mode 100644
index 0000000000000000000000000000000000000000..cab01208fc627146d4ce4c1449e11dd876a045c5
Binary files /dev/null and b/sidechain/data/2010DunbrackLib.dat differ
diff --git a/sidechain/data/CMakeLists.txt b/sidechain/data/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..de99684f319c5660c5b3efc5ba587746b124993b
--- /dev/null
+++ b/sidechain/data/CMakeLists.txt
@@ -0,0 +1,8 @@
+set(SIDECHAIN_DATA_FILES 
+2010DunbrackLib.dat
+)
+
+add_custom_target(sidechain_data ALL)
+copy_if_different("${CMAKE_CURRENT_SOURCE_DIR}" "${SHARED_DATA_PATH}/sidechain_data" 
+                  "${SIDECHAIN_DATA_FILES}" "sidechain_data" sidechain_data)
+install(FILES ${SIDECHAIN_DATA_FILES} DESTINATION "share/promod3/sidechain_data")
diff --git a/sidechain/pymod/CMakeLists.txt b/sidechain/pymod/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c514f8702a3a6e8fbf8238479df0588f7194b633
--- /dev/null
+++ b/sidechain/pymod/CMakeLists.txt
@@ -0,0 +1,21 @@
+set(SIDECHAIN_CPP
+export_rotamer_lib.cc
+export_sidechain_object_loader.cc
+export_pairwise.cc
+export_construct_atom.cc
+export_particle.cc
+export_rotamer_ids.cc
+export_rotamer.cc
+export_settings.cc
+export_frame.cc
+export_connector.cc
+export_graph.cc
+export_disulfid.cc
+wrap_sidechain.cc
+)
+
+set(SIDECHAIN_PYMOD
+__init__.py
+)
+
+pymod(NAME sidechain CPP ${SIDECHAIN_CPP} PY ${SIDECHAIN_PYMOD})
diff --git a/sidechain/pymod/__init__.py b/sidechain/pymod/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..d1ec151ce26503ab0bab0363a155f6a0dc87721d
--- /dev/null
+++ b/sidechain/pymod/__init__.py
@@ -0,0 +1 @@
+from _sidechain import *
diff --git a/sidechain/pymod/export_connector.cc b/sidechain/pymod/export_connector.cc
new file mode 100644
index 0000000000000000000000000000000000000000..b1eaecfef8424924044036ebf0cb24659306f3da
--- /dev/null
+++ b/sidechain/pymod/export_connector.cc
@@ -0,0 +1,14 @@
+#include <boost/python.hpp>
+
+#include <promod3/sidechain/sidechain_connector.hh>
+
+
+using namespace boost::python;
+using namespace promod3::sidechain;
+
+
+
+void export_Connector()
+{  
+  def("ConnectSidechain",&ConnectSidechain,(arg("residue"),arg("rotamer_id")));
+}
diff --git a/sidechain/pymod/export_construct_atom.cc b/sidechain/pymod/export_construct_atom.cc
new file mode 100644
index 0000000000000000000000000000000000000000..3259c41217bb05b5004e84fcf3fe6da33c8dd0d2
--- /dev/null
+++ b/sidechain/pymod/export_construct_atom.cc
@@ -0,0 +1,23 @@
+#include <boost/python.hpp>
+#include <boost/python/iterator.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+
+#include <promod3/sidechain/construct_atom.hh>
+
+using namespace promod3;
+using namespace promod3::sidechain;
+using namespace boost::python;
+
+namespace{
+  geom::Vec3 wrap_construct_atom_pos(const geom::Vec3& A, const geom::Vec3& B, const geom::Vec3& C, 
+                                     Real bond_length, Real angle, Real dihedral){
+    geom::Vec3 return_vec;
+    ConstructAtomPos(A,B,C,bond_length,angle,dihedral,return_vec);
+    return return_vec;
+  }
+}
+
+
+void export_ConstructAtom(){
+  def("ConstructAtomPos",&wrap_construct_atom_pos,(arg("A"),arg("B"),arg("C"),arg("bond_length"),arg("angle"),arg("dihedral")));
+}
diff --git a/sidechain/pymod/export_disulfid.cc b/sidechain/pymod/export_disulfid.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7bc07b432fed0678e94c4fcf1ccb5dbabff2bc3d
--- /dev/null
+++ b/sidechain/pymod/export_disulfid.cc
@@ -0,0 +1,43 @@
+#include <boost/python.hpp>
+#include <boost/python/iterator.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+
+#include <promod3/sidechain/disulfid.hh>
+
+using namespace promod3;
+using namespace promod3::sidechain;
+using namespace boost::python;
+
+namespace{
+
+Real WrapDisulfidOne(RRMRotamerPtr rot_one, RRMRotamerPtr rot_two,
+                     const geom::Vec3& ca_pos_one, const geom::Vec3& cb_pos_one, 
+                     const geom::Vec3& ca_pos_two, const geom::Vec3& cb_pos_two){
+
+  return DisulfidScore(rot_one, rot_two,ca_pos_one, cb_pos_one, 
+                       ca_pos_two, cb_pos_two);
+}
+
+Real WrapDisulfidTwo(FRMRotamerPtr rot_one, FRMRotamerPtr rot_two,
+                     const geom::Vec3& ca_pos_one, const geom::Vec3& cb_pos_one, 
+                     const geom::Vec3& ca_pos_two, const geom::Vec3& cb_pos_two){
+
+  return DisulfidScore(rot_one, rot_two,ca_pos_one, cb_pos_one, 
+                       ca_pos_two, cb_pos_two);
+}
+
+
+
+
+}
+
+
+void export_Disulfid(){
+
+  def("DisulfidScore",&WrapDisulfidOne,(arg("rotamer_one"),arg("rotamer_two"),
+                                        arg("ca_pos_one"),arg("cb_pos_one"),
+                                        arg("ca_pos_two"),arg("cb_pos_two")));
+  def("DisulfidScore",&WrapDisulfidTwo,(arg("rotamer_one"),arg("rotamer_two"),
+                                        arg("ca_pos_one"),arg("cb_pos_one"),
+                                        arg("ca_pos_two"),arg("cb_pos_two")));
+}
\ No newline at end of file
diff --git a/sidechain/pymod/export_frame.cc b/sidechain/pymod/export_frame.cc
new file mode 100644
index 0000000000000000000000000000000000000000..b5491bdf088166ae3afd37269622687cc7dc68c4
--- /dev/null
+++ b/sidechain/pymod/export_frame.cc
@@ -0,0 +1,157 @@
+#include <boost/python.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+#include <promod3/sidechain/frame.hh>
+#include <promod3/sidechain/frame_constructor.hh>
+
+
+using namespace boost::python;
+using namespace promod3::sidechain;
+
+namespace{
+
+FramePtr WrapFrameInitOne(boost::python::list& frame_residues){
+  std::vector<FrameResiduePtr> v_residues(boost::python::len(frame_residues));
+  for(uint i = 0; i < boost::python::len(frame_residues); ++i){
+    v_residues[i] = boost::python::extract<FrameResiduePtr>(frame_residues[i]);
+  }
+  return FramePtr(new Frame(v_residues));
+}
+
+FramePtr WrapFrameInitTwo(boost::python::list& frame_residues,
+                       boost::python::list& rt_operators){
+  std::vector<FrameResiduePtr> v_residues(boost::python::len(frame_residues));
+  for(uint i = 0; i < boost::python::len(frame_residues); ++i){
+    v_residues[i] = boost::python::extract<FrameResiduePtr>(frame_residues[i]);
+  }
+  std::vector<geom::Transform> v_rt_operators;
+  for(uint i = 0; i < boost::python::len(rt_operators); ++i){
+    v_rt_operators.push_back(boost::python::extract<geom::Transform>(rt_operators[i]));
+  } 
+  return FramePtr(new Frame(v_residues,v_rt_operators));
+}
+
+FrameResiduePtr WrapFrameResidueInit(boost::python::list& particles, uint residue_index){
+
+  size_t size = boost::python::len(particles);
+  Particle* new_particles = new Particle[size];
+
+  for(uint i = 0; i < size; ++i){
+    new_particles[i] = (boost::python::extract<Particle>(particles[i]));
+  }
+  return FrameResiduePtr(new FrameResidue(new_particles,size,residue_index));
+}
+
+ParticlePtr WrapGetItem(FrameResiduePtr p, uint index){
+  if(index >= p->size()){
+    throw promod3::Error("Invalid Index");
+  }
+  ParticlePtr ret_particle(new Particle( *(*p)[index] ));
+  return ret_particle;
+}
+
+FrameResiduePtr ConstructFrameResidue_one(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                          const geom::Vec3& c_pos, const geom::Vec3& o_pos,
+                                          const geom::Vec3& cb_pos, RotamerID id, uint residue_index,
+                                          RotamerSettingsPtr settings, Real phi,
+                                          bool n_ter, bool c_ter){
+  return ConstructBackboneFrameResidue(n_pos,ca_pos,c_pos,o_pos,cb_pos,id,
+                                       residue_index,settings,phi,n_ter,c_ter);
+}
+
+FrameResiduePtr ConstructFrameResidue_two(const ost::mol::ResidueHandle& res,
+                                          RotamerID id, uint residue_index,
+                                          RotamerSettingsPtr settings, Real phi,
+                                          bool n_ter, bool c_ter){
+  return ConstructBackboneFrameResidue(res,id,residue_index,settings,phi,n_ter,c_ter);
+}
+
+FrameResiduePtr ConstructFrameResidue_three(const ost::mol::ResidueHandle& res,
+                                            RotamerID id, uint residue_index,
+                                            RotamerSettingsPtr settings){
+  return ConstructSidechainFrameResidue(res,id,residue_index,settings);
+}
+
+FrameResiduePtr ConstructFrameResidue_four(const ost::mol::ResidueHandle& res,
+                                            uint residue_index, RotamerSettingsPtr settings, 
+                                            boost::python::list& radius,
+                                            boost::python::list& emin){
+
+  int len_radius = boost::python::len(radius);
+  int len_emin = boost::python::len(emin);
+
+  if(len_radius != len_emin){
+    throw promod3::Error("radius and emin lists must be of same length!");
+  }
+
+  if(len_radius == 0){
+    return ConstructFrameResidue(res,residue_index,settings);
+  }
+
+
+  std::vector<Real> v_radius;
+  std::vector<Real> v_emin;
+  for(int i = 0; i < len_radius; ++i){
+    v_radius.push_back(boost::python::extract<Real>(radius[i]));
+    v_emin.push_back(boost::python::extract<Real>(emin[i]));
+  }
+
+  return ConstructFrameResidue(res,residue_index,settings,v_radius,v_emin);
+}
+
+void SetFrameEnergyOne(FramePtr frame, RRMRotamerGroupPtr p){
+  frame->SetFrameEnergy(p);
+}
+
+void SetFrameEnergyTwo(FramePtr frame, FRMRotamerGroupPtr p){
+  frame->SetFrameEnergy(p);
+}
+
+void AddFrameEnergyOne(FramePtr frame, RRMRotamerGroupPtr p){
+  frame->AddFrameEnergy(p);
+}
+
+void AddFrameEnergyTwo(FramePtr frame, FRMRotamerGroupPtr p){
+  frame->AddFrameEnergy(p);
+}
+
+}
+
+void export_Frame()
+{
+  class_<Frame>("Frame", no_init)
+    .def("__init__",make_constructor(&WrapFrameInitOne))
+    .def("__init__",make_constructor(&WrapFrameInitTwo))
+    .def("SetFrameEnergy",&SetFrameEnergyOne,(arg("rrm_rotamer_group")))
+    .def("SetFrameEnergy",&SetFrameEnergyTwo,(arg("frm_rotamer_group")))
+    .def("AddFrameEnergy",&AddFrameEnergyOne,(arg("rrm_rotamer_group")))
+    .def("AddFrameEnergy",&AddFrameEnergyTwo,(arg("frm_rotamer_group")))
+  ;  
+
+  register_ptr_to_python<FramePtr>();
+
+  class_<FrameResidue>("FrameResidue", no_init)
+    .def("__init__",make_constructor(&WrapFrameResidueInit))
+    .def("__len__", &FrameResidue::size)
+    .def("__getitem__", &WrapGetItem, (arg( "index" )))
+  ;
+
+  register_ptr_to_python<FrameResiduePtr>();
+
+  def("ConstructBackboneFrameResidue",&ConstructFrameResidue_one,(arg("n_pos"),arg("ca_pos"),arg("c_pos"),
+                                                                  arg("o_pos"),arg("cb_pos"),arg("id"),arg("residue_index"),
+                                                                  arg("settings"),arg("phi"),arg("n_ter")=false,arg("c_ter")=false));
+
+  //def("ConstructBackboneFrameResidue",&ConstructFrameResidue_two,(arg("residue"),arg("id"),arg("residue_index"),
+  //                                                                arg("settings"),arg("phi"),arg("n_ter")=false,                                                                  arg("hydrogen_phi")=M_PI,arg("n_ter")=false,
+  //                                                                arg("c_ter")=false));
+
+  def("ConstructBackboneFrameResidue",&ConstructFrameResidue_two);
+
+
+  def("ConstructSidechainFrameResidue",&ConstructFrameResidue_three,(arg("residue"),arg("id"),arg("residue_index"),
+                                                                     arg("settings")));
+
+  def("ConstructFrameResidue",&ConstructFrameResidue_four,(arg("residue"),arg("residue_index"),arg("settings"),
+                                                            arg("radius")=boost::python::list(),
+                                                            arg("emin")=boost::python::list()));
+}
diff --git a/sidechain/pymod/export_graph.cc b/sidechain/pymod/export_graph.cc
new file mode 100644
index 0000000000000000000000000000000000000000..71d294af727d0515752cf52ab776471c8c4b44b1
--- /dev/null
+++ b/sidechain/pymod/export_graph.cc
@@ -0,0 +1,64 @@
+#include <boost/python.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+#include <promod3/sidechain/graph.hh>
+
+
+using namespace boost::python;
+using namespace promod3::sidechain;
+
+namespace{
+
+GraphPtr WrapRRMList(boost::python::list& rotamer_groups,
+                     boost::python::list& rt_operators){
+  std::vector<RRMRotamerGroupPtr> v_rotamer_groups;
+  for(uint i = 0; i < boost::python::len(rotamer_groups); ++i){
+    v_rotamer_groups.push_back(boost::python::extract<RRMRotamerGroupPtr>(rotamer_groups[i]));
+  }
+  std::vector<geom::Transform> v_rt_operators;
+  for(uint i = 0; i < boost::python::len(rt_operators); ++i){
+    v_rt_operators.push_back(boost::python::extract<geom::Transform>(rt_operators[i]));
+  }  
+  return Graph::CreateFromRRMList(v_rotamer_groups,v_rt_operators);
+}
+
+GraphPtr WrapFRMList(boost::python::list& rotamer_groups,
+                     boost::python::list& rt_operators){
+  std::vector<FRMRotamerGroupPtr> v_rotamer_groups;
+  for(uint i = 0; i < boost::python::len(rotamer_groups); ++i){
+    v_rotamer_groups.push_back(boost::python::extract<FRMRotamerGroupPtr>(rotamer_groups[i]));
+  }
+  std::vector<geom::Transform> v_rt_operators;
+  for(uint i = 0; i < boost::python::len(rt_operators); ++i){
+    v_rt_operators.push_back(boost::python::extract<geom::Transform>(rt_operators[i]));
+  }
+  return Graph::CreateFromFRMList(v_rotamer_groups,v_rt_operators);
+}
+
+boost::python::list WrapSolve(GraphPtr graph, uint64_t max_complexity,Real initial_epsilon){
+  std::vector<int> solution = graph->Solve(max_complexity,initial_epsilon);
+  boost::python::list return_list;
+  for(std::vector<int>::iterator i = solution.begin(); i != solution.end(); ++i){
+    return_list.append(*i);
+  }
+  return return_list;
+}
+
+}
+
+
+void export_Graph()
+{
+  class_<Graph,boost::noncopyable>("Graph", no_init)
+    .def("CreateFromRRMList",&WrapRRMList,(arg("rotamer_groups"),
+                                           arg("rt_operators")=boost::python::list())).staticmethod("CreateFromRRMList")
+    .def("CreateFromFRMList",&WrapFRMList,(arg("rotamer_groups"),
+                                           arg("rt_operators")=boost::python::list())).staticmethod("CreateFromFRMList")
+    .def("Prune",&Graph::Prune,(arg("epsilon"),arg("consider_all_nodes")=false))
+    .def("Reset", &Graph::Reset)
+    .def("GetNumNodes", &Graph::GetNumNodes)
+    .def("GetNumEdges", &Graph::GetNumEdges)
+    .def("Solve",&WrapSolve,(arg("max_complexity")=std::numeric_limits<uint64_t>::max(),arg("initial_epsilon")=0.02))
+  ;  
+
+  register_ptr_to_python<GraphPtr>();
+}
diff --git a/sidechain/pymod/export_pairwise.cc b/sidechain/pymod/export_pairwise.cc
new file mode 100644
index 0000000000000000000000000000000000000000..c63c5a04b677e987e7e78dbf76b325d09aeb16b0
--- /dev/null
+++ b/sidechain/pymod/export_pairwise.cc
@@ -0,0 +1,15 @@
+#include <boost/python.hpp>
+#include <boost/python/iterator.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+
+#include <promod3/sidechain/pairwise_terms.hh>
+
+using namespace promod3;
+using namespace promod3::sidechain;
+using namespace boost::python;
+
+
+void export_PairwiseTerms(){
+  def("VDW",&VDW,(arg("pos1"),arg("pos2"),arg("r1"),arg("r2"),arg("emin1"),arg("emin2")));
+  def("LinearClash",&LinearClash,(arg("pos1"),arg("pos2"),arg("r1"),arg("r2")));
+}
\ No newline at end of file
diff --git a/sidechain/pymod/export_particle.cc b/sidechain/pymod/export_particle.cc
new file mode 100644
index 0000000000000000000000000000000000000000..e1a29b7ef87231a2d86dab77762214a0d26eaefb
--- /dev/null
+++ b/sidechain/pymod/export_particle.cc
@@ -0,0 +1,29 @@
+#include <boost/python.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+#include <promod3/sidechain/particle.hh>
+
+
+using namespace boost::python;
+using namespace promod3::sidechain;
+
+
+namespace{
+  Real WrapPairwiseEnergy(ParticlePtr p, ParticlePtr other){
+    return p->PairwiseEnergy(other);
+  }
+
+}
+
+void export_Particle()
+{
+  class_<Particle>("Particle", init<const geom::Vec3&,Real,Real,Real,Real,const String&>())
+    .def("PairwiseEnergy", &WrapPairwiseEnergy,(arg("other")))
+    .def("GetPos", &Particle::GetPos,(arg("GetPos")))
+    .def("GetRadius", &Particle::GetRadius)
+    .def("GetEMin", &Particle::GetEMin)
+    .def("GetCharge", &Particle::GetCharge)
+    .def("GetName", &Particle::GetName)
+  ;  
+
+  register_ptr_to_python<ParticlePtr>();
+}
diff --git a/sidechain/pymod/export_rotamer.cc b/sidechain/pymod/export_rotamer.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7ad4707f03fd704f88049512c3522dc4df537cb6
--- /dev/null
+++ b/sidechain/pymod/export_rotamer.cc
@@ -0,0 +1,303 @@
+#include <boost/python.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+
+#include <promod3/sidechain/rotamer.hh>
+#include <promod3/sidechain/rotamer_group.hh>
+#include <promod3/sidechain/rotamer_constructor.hh>
+
+
+using namespace boost::python;
+using namespace promod3::sidechain;
+
+namespace{
+
+RRMRotamerGroupPtr WrapRRMRotamerGroupInit(const boost::python::list& rotamers, uint residue_index){
+  std::vector<RRMRotamerPtr> v_rotamers;
+  for(uint i = 0; i < boost::python::len(rotamers); ++i){
+    v_rotamers.push_back(boost::python::extract<RRMRotamerPtr>(rotamers[i]));
+  }
+  return RRMRotamerGroupPtr(new RRMRotamerGroup(v_rotamers,residue_index));
+}
+
+FRMRotamerGroupPtr WrapFRMRotamerGroupInit(const boost::python::list& rotamers, uint residue_index){
+  std::vector<FRMRotamerPtr> v_rotamers;
+  for(uint i = 0; i < boost::python::len(rotamers); ++i){
+    v_rotamers.push_back(boost::python::extract<FRMRotamerPtr>(rotamers[i]));
+  }
+  return FRMRotamerGroupPtr(new FRMRotamerGroup(v_rotamers,residue_index));
+}
+
+Particle WrapRRMGetItem(RRMRotamerPtr p, uint index){
+  if(index >= p->size()){
+    throw promod3::Error("Invalid particle index!");
+  }
+  return *(*p)[index];
+}
+
+Particle WrapFRMGetItem(FRMRotamerPtr p, uint index){
+  if(index >= p->size()){
+    throw promod3::Error("Invalid particle index!");
+  }
+  return *(*p)[index];
+}
+
+boost::python::list WrapGetSubrotamerDefinitions(FRMRotamerPtr p,uint i){
+  boost::python::list return_list;
+  for(FRMRotamer::subrotamer_iterator i = p->subrotamers_begin();
+      i != p->subrotamers_end(); ++i){
+    boost::python::list subrotamer_definition;
+    for(std::vector<int>::iterator j = i->begin(); j != i->end(); ++j){
+      subrotamer_definition.append(*j);
+    }
+    return_list.append(subrotamer_definition);
+  }
+  return return_list;
+}
+
+boost::python::list WrapGetSubrotamerAssociations(FRMRotamerPtr p, uint particle_index){
+  if(particle_index >= p->size()){
+    throw promod3::Error("Invalid particle index!");
+  }
+  boost::python::list return_list;
+  for(FRMRotamer::subrotamer_association_iterator i = p->subrotamer_association_begin(particle_index);
+      i != p->subrotamer_association_end(particle_index); ++i){
+    return_list.append(*i);
+  }
+  return return_list;
+}
+
+RRMRotamerPtr ConstructRRMRotamer_one(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                      const geom::Vec3& cb_pos, RotamerID id, uint,
+                                      RotamerSettingsPtr settings,
+                                      Real probability, Real chi1, Real chi2, Real chi3, Real chi4){
+  return ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,
+                             chi1,chi2,chi3,chi4);
+}
+
+RRMRotamerPtr ConstructRRMRotamer_two(const ost::mol::ResidueHandle& res, RotamerID id, uint,
+                                      RotamerSettingsPtr settings,
+                                      Real probability, Real chi1, Real chi2, Real chi3, Real chi4){
+  return ConstructRRMRotamer(res,id,settings,probability,
+                             chi1,chi2,chi3,chi4);
+}
+
+
+FRMRotamerPtr ConstructFRMRotamer_one(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                      const geom::Vec3& cb_pos, RotamerID id, uint,
+                                      RotamerSettingsPtr settings,
+                                      Real probability, Real chi1, Real sig1, Real chi2, Real sig2, 
+                                      Real chi3, Real sig3, Real chi4, Real sig4){
+  return ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,
+                             chi1,sig1,chi2,sig2,chi3,sig3,chi4,sig4);
+}
+
+FRMRotamerPtr ConstructFRMRotamer_two(const ost::mol::ResidueHandle& res, RotamerID id, uint,
+                                      RotamerSettingsPtr settings,
+                                      Real probability, Real chi1, Real sig1, Real chi2, Real sig2, 
+                                      Real chi3, Real sig3, Real chi4, Real sig4){
+  return ConstructFRMRotamer(res,id,settings,probability,
+                             chi1,sig1,chi2,sig2,chi3,sig3,chi4,sig4);
+}
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup_one(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                                 const geom::Vec3& cb_pos, RotamerID id, uint residue_index,
+                                                 BBDepRotamerLibPtr rot_lib,
+                                                 RotamerSettingsPtr settings,
+                                                 Real phi, Real psi){
+    return ConstructRRMRotamerGroup(n_pos,ca_pos,cb_pos,id,residue_index,rot_lib,settings,phi,psi);
+}
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup_two(const ost::mol::ResidueHandle& res, 
+                                                RotamerID id, uint residue_index,
+                                                BBDepRotamerLibPtr rot_lib,
+                                                RotamerSettingsPtr settings,
+                                                Real phi, Real psi){
+    return ConstructRRMRotamerGroup(res,id,residue_index,rot_lib,settings,phi,psi);
+}
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup_three(const ost::mol::ResidueHandle& res, 
+                                                  uint residue_index,
+                                                  BBDepRotamerLibPtr rot_lib,
+                                                  RotamerSettingsPtr settings,
+                                                  Real phi, Real psi){
+    return ConstructRRMRotamerGroup(res,residue_index,rot_lib,settings,phi,psi);
+}
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup_one(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                                const geom::Vec3& cb_pos, RotamerID id, uint residue_index,
+                                                BBDepRotamerLibPtr rot_lib,
+                                                RotamerSettingsPtr settings,
+                                                Real phi, Real psi){
+    return ConstructFRMRotamerGroup(n_pos,ca_pos,cb_pos,id,residue_index,rot_lib,settings,phi,psi);
+}
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup_two(const ost::mol::ResidueHandle& res, 
+                                                RotamerID id, uint residue_index,
+                                                BBDepRotamerLibPtr rot_lib,
+                                                RotamerSettingsPtr settings,
+                                                Real phi, Real psi){
+    return ConstructFRMRotamerGroup(res,id,residue_index,rot_lib,settings,phi,psi);
+}
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup_three(const ost::mol::ResidueHandle& res, 
+                                                  uint residue_index,
+                                                  BBDepRotamerLibPtr rot_lib,
+                                                  RotamerSettingsPtr settings,
+                                                  Real phi, Real psi){
+    return ConstructFRMRotamerGroup(res,residue_index,rot_lib,settings,phi,psi);
+}
+
+Real GetFRMFrameEnergyOne(FRMRotamerPtr p){
+  return p->GetFrameEnergy();
+}
+
+Real GetFRMFrameEnergyTwo(FRMRotamerPtr p, int index){
+  return p->GetFrameEnergy(index);
+}
+
+void SetFRMFrameEnergyOne(FRMRotamerPtr p, Real e){
+  p->SetFrameEnergy(e);
+}
+
+void SetFRMFrameEnergyTwo(FRMRotamerPtr p, Real e, int index){
+  p->SetFrameEnergy(e,index);
+}
+
+}
+
+void export_Rotamer()
+{  
+
+  class_<RRMRotamer>("RRMRotamer", no_init)
+    .def("__len__",&RRMRotamer::size)
+    .def("__getitem__",&WrapRRMGetItem,arg("index"))
+    .def("ApplyOnResidue", &RRMRotamer::ApplyOnResidue,(arg("res"),arg("consider_hydrogens")=false,arg("new_res_name")=""))
+    .def("GetTransformedCopy",&RRMRotamer::GetTransformedCopy,(arg("transform")))
+    .def("CalculateInternalEnergy", &RRMRotamer::CalculateInternalEnergy,(arg("normalization_factor")))
+    .def("GetInternalEnergy",&RRMRotamer::GetInternalEnergy)
+    .def("GetFrameEnergy",&RRMRotamer::GetFrameEnergy)
+    .def("GetSelfEnergy",&RRMRotamer::GetSelfEnergy)
+    .def("GetProbability",&RRMRotamer::GetProbability)
+    .def("SetInternalEnergy",&RRMRotamer::SetInternalEnergy,(arg("internal_energy")))
+    .def("SetFrameEnergy",&RRMRotamer::SetFrameEnergy,(arg("frame_energy")))
+    .def("SetProbability",&RRMRotamer::SetProbability,(arg("probability")))
+  ; 
+
+  register_ptr_to_python<RRMRotamerPtr>();
+
+
+  class_<FRMRotamer>("FRMRotamer", no_init)
+    .def("__len__",&FRMRotamer::size)
+    .def("__getitem__",&WrapFRMGetItem,arg("index"))
+    .def("GetNumSubrotamers",&FRMRotamer::subrotamer_size)
+    .def("GetSubrotamerDefinitions",&WrapGetSubrotamerDefinitions)
+    .def("GetSubrotamerAssociations",&WrapGetSubrotamerAssociations)
+    .def("ApplyOnResidue", &FRMRotamer::ApplyOnResidue,(arg("res"),arg("consider_hydrogens")=false,arg("new_res_name")=""))
+    .def("GetTransformedCopy",&FRMRotamer::GetTransformedCopy,(arg("transform")))
+    .def("CalculateInternalEnergy", &FRMRotamer::CalculateInternalEnergy,(arg("normalization_factor")))
+    .def("GetInternalEnergy",&FRMRotamer::GetInternalEnergy)
+    .def("GetFrameEnergy",&GetFRMFrameEnergyOne)
+    .def("GetFrameEnergy",&GetFRMFrameEnergyTwo)
+    .def("GetSelfEnergy",&FRMRotamer::GetSelfEnergy)
+    .def("GetTemperature",&FRMRotamer::GetTemperature)
+    .def("GetProbability",&FRMRotamer::GetProbability)
+    .def("SetInternalEnergy",&FRMRotamer::SetInternalEnergy,(arg("internal_energy")))
+    .def("SetFrameEnergy",&SetFRMFrameEnergyOne,(arg("frame_energy")))
+    .def("SetFrameEnergy",&SetFRMFrameEnergyTwo,(arg("frame_energy"),arg("subrotamer_index")))
+    .def("SetTemperature",&FRMRotamer::SetTemperature,(arg("temperature")))
+    .def("SetProbability",&FRMRotamer::SetProbability,(arg("probability")))
+  ; 
+
+  register_ptr_to_python<FRMRotamerPtr>();
+
+
+  class_<RRMRotamerGroup>("RRMRotamerGroup",no_init)
+    .def("__init__",&WrapRRMRotamerGroupInit,(arg("rotamers"),arg("residue_index")))
+    .def("__len__",&RRMRotamerGroup::size)
+    .def("__getitem__", &RRMRotamerGroup::operator[], (arg( "index" )))
+    .def("ApplyOnResidue", &RRMRotamerGroup::ApplyOnResidue,(arg("index"),arg("res"),arg("consider_hydrogens")=false,arg("new_res_name")=""))
+    .def("Merge",&RRMRotamerGroup::Merge,(arg("other")))
+    .def("CalculateInternalEnergies", &RRMRotamerGroup::CalculateInternalEnergies)
+    .def("ApplySelfEnergyThresh",&RRMRotamerGroup::ApplySelfEnergyThresh,(arg("thresh")=30))
+  ;
+
+  register_ptr_to_python<RRMRotamerGroupPtr>();
+
+
+  class_<FRMRotamerGroup>("FRMRotamerGroup",no_init)
+    .def("__init__",&WrapFRMRotamerGroupInit,(arg("rotamers"),arg("residue_index")))
+    .def("__len__",&FRMRotamerGroup::size)
+    .def("__getitem__", &FRMRotamerGroup::operator[], (arg( "index" )))
+    .def("ApplyOnResidue", &FRMRotamerGroup::ApplyOnResidue,(arg("index"),arg("res"),arg("consider_hydrogens")=false,arg("new_res_name")=""))
+    .def("Merge",&FRMRotamerGroup::Merge,(arg("other")))
+    .def("CalculateInternalEnergies", &FRMRotamerGroup::CalculateInternalEnergies)
+    .def("ApplySelfEnergyThresh",&FRMRotamerGroup::ApplySelfEnergyThresh,(arg("thresh")=30))
+  ;
+
+  register_ptr_to_python<FRMRotamerGroupPtr>();
+
+
+
+  def("ConstructRRMRotamer",&ConstructRRMRotamer_one,(arg("n_pos"),arg("ca_pos"),arg("cb_pos"),
+                                                      arg("rotamer_id"),arg("settings"),arg("probability"),
+                                                      arg("chi1")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi2")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi3")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi4")=std::numeric_limits<Real>::quiet_NaN()));
+
+  def("ConstructRRMRotamer",&ConstructRRMRotamer_two,(arg("residue"),
+                                                      arg("rotamer_id"),arg("settings"),arg("probability"),
+                                                      arg("chi1")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi2")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi3")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi4")=std::numeric_limits<Real>::quiet_NaN()));
+
+
+  def("ConstructFRMRotamer",&ConstructFRMRotamer_one,(arg("n_pos"),arg("ca_pos"),arg("cb_pos"),
+                                                      arg("rotamer_id"),arg("settings"),arg("probability"),
+                                                      arg("chi1")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig1")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi2")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig2")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi3")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig3")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi4")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig4")=std::numeric_limits<Real>::quiet_NaN()));
+
+  def("ConstructFRMRotamer",&ConstructFRMRotamer_two,(arg("residue"),
+                                                      arg("rotamer_id"),arg("settings"),arg("probability"),
+                                                      arg("chi1")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig1")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi2")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig2")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi3")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig3")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("chi4")=std::numeric_limits<Real>::quiet_NaN(),
+                                                      arg("sig4")=std::numeric_limits<Real>::quiet_NaN()));
+
+  def("ConstructRRMRotamerGroup",&ConstructRRMRotamerGroup_one,(arg("n_pos"),arg("ca_pos"),arg("cb_pos"),
+                                                                arg("id"),arg("residue_index"),arg("rot_lib"),
+                                                                arg("settings"),arg("phi")=-1.0472,arg("psi")=1.0472));
+
+  def("ConstructRRMRotamerGroup",&ConstructRRMRotamerGroup_two,(arg("residue"),arg("id"),
+                                                                arg("residue_index"),arg("rot_lib"),
+                                                                arg("settings"),arg("phi")=-1.0472,arg("psi")=1.0472));
+
+  def("ConstructRRMRotamerGroup",&ConstructRRMRotamerGroup_three,(arg("residue"),
+                                                                  arg("residue_index"),arg("rot_lib"),
+                                                                  arg("settings"),arg("phi")=-1.0472,arg("psi")=1.0472));
+
+
+  def("ConstructFRMRotamerGroup",&ConstructFRMRotamerGroup_one,(arg("n_pos"),arg("ca_pos"),arg("cb_pos"),
+                                                                arg("id"),arg("residue_index"),arg("rot_lib"),
+                                                                arg("settings"),arg("phi")=-1.0472,arg("psi")=1.0472));
+
+  def("ConstructFRMRotamerGroup",&ConstructFRMRotamerGroup_two,(arg("residue"),arg("id"),
+                                                                arg("residue_index"),arg("rot_lib"),
+                                                                arg("settings"),arg("phi")=-1.0472,arg("psi")=1.0472));
+
+  def("ConstructFRMRotamerGroup",&ConstructFRMRotamerGroup_three,(arg("residue"),
+                                                                  arg("residue_index"),arg("rot_lib"),
+                                                                  arg("settings"),arg("phi")=-1.0472,arg("psi")=1.0472));
+
+}
diff --git a/sidechain/pymod/export_rotamer_ids.cc b/sidechain/pymod/export_rotamer_ids.cc
new file mode 100644
index 0000000000000000000000000000000000000000..1c1560f0632a4e0fbfc885c33d03c25be54a9868
--- /dev/null
+++ b/sidechain/pymod/export_rotamer_ids.cc
@@ -0,0 +1,42 @@
+#include <boost/python.hpp>
+#include <promod3/sidechain/rotamer_id.hh>
+
+
+using namespace boost::python;
+using namespace promod3::sidechain;
+
+void export_RotamerIDs()
+{
+  enum_<RotamerID>("RotamerID")
+    .value("ALA", ALA)
+    .value("ARG", ARG)
+    .value("ASN", ASN)
+    .value("ASP", ASP)
+    .value("GLN", GLN) 
+    .value("GLU", GLU)
+    .value("LYS", LYS)
+    .value("SER", SER)
+    .value("CYS", CYS)
+    .value("CYH", CYH)
+    .value("CYD", CYD)
+    .value("TYR", TYR)
+    .value("THR", THR)
+    .value("VAL", VAL)
+    .value("ILE", ILE)
+    .value("LEU", LEU)
+    .value("GLY", GLY)
+    .value("PRO", PRO)
+    .value("CPR", CPR)
+    .value("TPR", TPR)
+    .value("MET", MET)
+    .value("HIS", HIS)
+    .value("HSD", HSD)
+    .value("HSE", HSE)
+    .value("PHE", PHE)
+    .value("TRP", TRP)
+    .value("XXX", XXX)
+    .export_values()
+  ;
+
+  def("TLCToRotID",&TLCToRotID,(arg("tlc")));
+}
diff --git a/sidechain/pymod/export_rotamer_lib.cc b/sidechain/pymod/export_rotamer_lib.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0e5494e21e8b3636ee76ba61bfa3dfc9fdf10b29
--- /dev/null
+++ b/sidechain/pymod/export_rotamer_lib.cc
@@ -0,0 +1,70 @@
+#include <boost/python.hpp>
+#include <boost/python/iterator.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+
+#include <promod3/sidechain/bb_dep_rotamer_lib.hh>
+#include <promod3/sidechain/rotamer_lib.hh>
+#include <promod3/sidechain/dunbrack_lib.hh>
+#include <promod3/sidechain/rotamer_lib_reader.hh>
+
+using namespace promod3;
+using namespace promod3::sidechain;
+using namespace boost::python;
+
+namespace{
+
+boost::python::list query_bbdep_wrapper(promod3::sidechain::BBDepRotamerLibPtr lib, 
+                                        RotamerID id, Real phi, Real psi){
+
+  boost::python::list return_list;
+  std::pair<RotamerLibEntry*,uint> lib_entries = lib->QueryLib(id, phi, psi);
+  for(uint i = 0; i < lib_entries.second; ++i){
+    return_list.append(*lib_entries.first);
+    ++lib_entries.first;
+  } 
+  return return_list;
+}
+
+}
+
+void export_RotamerLib(){
+
+  class_<RotamerLibEntry>("RotamerLibEntry",init<Real,Real,Real,Real,Real,Real,Real,Real,Real>())
+
+    .def_readwrite("probability",&RotamerLibEntry::probability)
+    .def_readwrite("chi1",&RotamerLibEntry::chi1)
+    .def_readwrite("chi2",&RotamerLibEntry::chi2)
+    .def_readwrite("chi3",&RotamerLibEntry::chi3)
+    .def_readwrite("chi4",&RotamerLibEntry::chi4)
+    .def_readwrite("sig1",&RotamerLibEntry::sig1)
+    .def_readwrite("sig2",&RotamerLibEntry::sig2)
+    .def_readwrite("sig3",&RotamerLibEntry::sig3)
+    .def_readwrite("sig4",&RotamerLibEntry::sig4)
+  ;
+
+  register_ptr_to_python<RotamerLibEntryPtr>();
+
+
+
+  class_<BBDepRotamerLib,boost::noncopyable>("BBDepRotamerLib",no_init)
+  ;
+
+  class_<RotamerLib,boost::noncopyable>("RotamerLib",no_init)
+  ;
+
+  class_<DunbrackLib, bases<BBDepRotamerLib> >("DunbrackLib",init<uint,uint>())
+    .def("AddRotamer",&DunbrackLib::AddRotamer,(arg("id"),arg("phi"),arg("psi"),arg("rotamer")))
+    .def("Save",&DunbrackLib::Save,(arg("filename")))
+    .def("Load",&DunbrackLib::Load,(arg("filename"))).staticmethod("Load")
+    .def("QueryLib",&query_bbdep_wrapper,(arg("id"),arg("phi"),arg("psi")))
+    .def("MakeStatic",&DunbrackLib::MakeStatic)
+  ;
+
+  register_ptr_to_python<BBDepRotamerLibPtr>();
+  register_ptr_to_python<RotamerLibPtr>();
+  register_ptr_to_python<DunbrackLibPtr>();
+
+
+  def("ReadDunbrackFile",&ReadDunbrackFile,(arg("filename")));
+
+}
diff --git a/sidechain/pymod/export_settings.cc b/sidechain/pymod/export_settings.cc
new file mode 100644
index 0000000000000000000000000000000000000000..00ba9219edf0bc7a7b2d8963e1457546d09f4da3
--- /dev/null
+++ b/sidechain/pymod/export_settings.cc
@@ -0,0 +1,104 @@
+#include <boost/python.hpp>
+#include <boost/python/register_ptr_to_python.hpp>
+#include <promod3/sidechain/settings.hh>
+
+
+using namespace boost::python;
+using namespace promod3::sidechain;
+
+void export_Settings()
+{
+  class_<RotamerSettings>("RotamerSettings", init<>())
+    .def_readwrite("FRM_T_ARG", &RotamerSettings::FRM_T_ARG)
+    .def_readwrite("FRM_T_ASN", &RotamerSettings::FRM_T_ASN)
+    .def_readwrite("FRM_T_ASP", &RotamerSettings::FRM_T_ASP)
+    .def_readwrite("FRM_T_GLN", &RotamerSettings::FRM_T_GLN)
+    .def_readwrite("FRM_T_GLU", &RotamerSettings::FRM_T_GLU)
+    .def_readwrite("FRM_T_LYS", &RotamerSettings::FRM_T_LYS)
+    .def_readwrite("FRM_T_SER", &RotamerSettings::FRM_T_SER)
+    .def_readwrite("FRM_T_CYS", &RotamerSettings::FRM_T_CYS)
+    .def_readwrite("FRM_T_MET", &RotamerSettings::FRM_T_MET)
+    .def_readwrite("FRM_T_TRP", &RotamerSettings::FRM_T_TRP)
+    .def_readwrite("FRM_T_TYR", &RotamerSettings::FRM_T_TYR)
+    .def_readwrite("FRM_T_THR", &RotamerSettings::FRM_T_THR)
+    .def_readwrite("FRM_T_VAL", &RotamerSettings::FRM_T_VAL)
+    .def_readwrite("FRM_T_ILE", &RotamerSettings::FRM_T_ILE)
+    .def_readwrite("FRM_T_LEU", &RotamerSettings::FRM_T_LEU)
+    .def_readwrite("FRM_T_PRO", &RotamerSettings::FRM_T_PRO)
+    .def_readwrite("FRM_T_HIS", &RotamerSettings::FRM_T_HIS)
+    .def_readwrite("FRM_T_PHE", &RotamerSettings::FRM_T_PHE)
+    .def_readwrite("FRM_delta1_ARG", &RotamerSettings::FRM_delta1_ARG)
+    .def_readwrite("FRM_delta2_ARG", &RotamerSettings::FRM_delta2_ARG)
+    .def_readwrite("FRM_delta3_ARG", &RotamerSettings::FRM_delta3_ARG)
+    .def_readwrite("FRM_delta4_ARG", &RotamerSettings::FRM_delta4_ARG)
+    .def_readwrite("FRM_delta1_ASN", &RotamerSettings::FRM_delta1_ASN)
+    .def_readwrite("FRM_delta2_ASN", &RotamerSettings::FRM_delta2_ASN)
+    .def_readwrite("FRM_delta1_ASP", &RotamerSettings::FRM_delta1_ASP)
+    .def_readwrite("FRM_delta2_ASP", &RotamerSettings::FRM_delta2_ASP)
+    .def_readwrite("FRM_delta1_GLN", &RotamerSettings::FRM_delta1_GLN)
+    .def_readwrite("FRM_delta2_GLN", &RotamerSettings::FRM_delta2_GLN)
+    .def_readwrite("FRM_delta3_GLN", &RotamerSettings::FRM_delta3_GLN)
+    .def_readwrite("FRM_delta1_GLU", &RotamerSettings::FRM_delta1_GLU)
+    .def_readwrite("FRM_delta2_GLU", &RotamerSettings::FRM_delta2_GLU)
+    .def_readwrite("FRM_delta3_GLU", &RotamerSettings::FRM_delta3_GLU)
+    .def_readwrite("FRM_delta1_LYS", &RotamerSettings::FRM_delta1_LYS)
+    .def_readwrite("FRM_delta2_LYS", &RotamerSettings::FRM_delta2_LYS)
+    .def_readwrite("FRM_delta3_LYS", &RotamerSettings::FRM_delta3_LYS)
+    .def_readwrite("FRM_delta4_LYS", &RotamerSettings::FRM_delta4_LYS)
+    .def_readwrite("FRM_delta1_SER", &RotamerSettings::FRM_delta1_SER)
+    .def_readwrite("FRM_delta1_CYS", &RotamerSettings::FRM_delta1_CYS)
+    .def_readwrite("FRM_delta1_MET", &RotamerSettings::FRM_delta1_MET)
+    .def_readwrite("FRM_delta2_MET", &RotamerSettings::FRM_delta2_MET)
+    .def_readwrite("FRM_delta3_MET", &RotamerSettings::FRM_delta3_MET)
+    .def_readwrite("FRM_delta1_TRP", &RotamerSettings::FRM_delta1_TRP)
+    .def_readwrite("FRM_delta2_TRP", &RotamerSettings::FRM_delta2_TRP)
+    .def_readwrite("FRM_delta1_TYR", &RotamerSettings::FRM_delta1_TYR)
+    .def_readwrite("FRM_delta2_TYR", &RotamerSettings::FRM_delta2_TYR)
+    .def_readwrite("FRM_delta1_THR", &RotamerSettings::FRM_delta1_THR)
+    .def_readwrite("FRM_delta1_VAL", &RotamerSettings::FRM_delta1_VAL)
+    .def_readwrite("FRM_delta1_ILE", &RotamerSettings::FRM_delta1_ILE)
+    .def_readwrite("FRM_delta2_ILE", &RotamerSettings::FRM_delta2_ILE)
+    .def_readwrite("FRM_delta1_LEU", &RotamerSettings::FRM_delta1_LEU)
+    .def_readwrite("FRM_delta2_LEU", &RotamerSettings::FRM_delta2_LEU)
+    .def_readwrite("FRM_delta1_PRO", &RotamerSettings::FRM_delta1_PRO)
+    .def_readwrite("FRM_delta2_PRO", &RotamerSettings::FRM_delta2_PRO)
+    .def_readwrite("FRM_delta1_HIS", &RotamerSettings::FRM_delta1_HIS)
+    .def_readwrite("FRM_delta2_HIS", &RotamerSettings::FRM_delta2_HIS)
+    .def_readwrite("FRM_delta1_PHE", &RotamerSettings::FRM_delta1_PHE)
+    .def_readwrite("FRM_delta2_PHE", &RotamerSettings::FRM_delta2_PHE)
+    .def_readwrite("internal_e_prefactor_ARG", &RotamerSettings::internal_e_prefactor_ARG)
+    .def_readwrite("internal_e_prefactor_ASN", &RotamerSettings::internal_e_prefactor_ASN)
+    .def_readwrite("internal_e_prefactor_ASP", &RotamerSettings::internal_e_prefactor_ASP)
+    .def_readwrite("internal_e_prefactor_GLN", &RotamerSettings::internal_e_prefactor_GLN)
+    .def_readwrite("internal_e_prefactor_GLU", &RotamerSettings::internal_e_prefactor_GLU)
+    .def_readwrite("internal_e_prefactor_LYS", &RotamerSettings::internal_e_prefactor_LYS)
+    .def_readwrite("internal_e_prefactor_SER", &RotamerSettings::internal_e_prefactor_SER)
+    .def_readwrite("internal_e_prefactor_CYS", &RotamerSettings::internal_e_prefactor_CYS)
+    .def_readwrite("internal_e_prefactor_MET", &RotamerSettings::internal_e_prefactor_MET)
+    .def_readwrite("internal_e_prefactor_TRP", &RotamerSettings::internal_e_prefactor_TRP)
+    .def_readwrite("internal_e_prefactor_TYR", &RotamerSettings::internal_e_prefactor_TYR)
+    .def_readwrite("internal_e_prefactor_THR", &RotamerSettings::internal_e_prefactor_THR)
+    .def_readwrite("internal_e_prefactor_VAL", &RotamerSettings::internal_e_prefactor_VAL)
+    .def_readwrite("internal_e_prefactor_ILE", &RotamerSettings::internal_e_prefactor_ILE)
+    .def_readwrite("internal_e_prefactor_LEU", &RotamerSettings::internal_e_prefactor_LEU)
+    .def_readwrite("internal_e_prefactor_PRO", &RotamerSettings::internal_e_prefactor_PRO)
+    .def_readwrite("internal_e_prefactor_HIS", &RotamerSettings::internal_e_prefactor_HIS)
+    .def_readwrite("internal_e_prefactor_PHE", &RotamerSettings::internal_e_prefactor_PHE)
+    .def_readwrite("probability_cutoff", &RotamerSettings::probability_cutoff)
+    .def_readwrite("consider_hbonds",&RotamerSettings::consider_hbonds)
+    .def_readwrite("sample_polar_hydrogens", &RotamerSettings::sample_polar_hydrogens)
+    .def_readwrite("H_radius", &RotamerSettings::H_radius)
+    .def_readwrite("C_radius", &RotamerSettings::C_radius)
+    .def_readwrite("S_radius", &RotamerSettings::S_radius)
+    .def_readwrite("N_radius", &RotamerSettings::N_radius)
+    .def_readwrite("O_radius", &RotamerSettings::O_radius)
+    .def_readwrite("H_max_radius", &RotamerSettings::H_max_radius)  
+    .def_readwrite("C_max_radius", &RotamerSettings::C_max_radius)   
+    .def_readwrite("S_max_radius", &RotamerSettings::S_max_radius)
+    .def_readwrite("N_max_radius", &RotamerSettings::N_max_radius)
+    .def_readwrite("O_max_radius", &RotamerSettings::O_max_radius) 
+  ;  
+
+  register_ptr_to_python<RotamerSettingsPtr>();
+
+}
\ No newline at end of file
diff --git a/sidechain/pymod/export_sidechain_object_loader.cc b/sidechain/pymod/export_sidechain_object_loader.cc
new file mode 100644
index 0000000000000000000000000000000000000000..3bdc9e8583089c24d6108e1dd12b8fc9e2e6ffab
--- /dev/null
+++ b/sidechain/pymod/export_sidechain_object_loader.cc
@@ -0,0 +1,10 @@
+#include <boost/python.hpp>
+#include <promod3/sidechain/sidechain_object_loader.hh>
+
+using namespace promod3;
+using namespace promod3::sidechain;
+using namespace boost::python;
+
+void export_SidechainObjectLoader(){
+  def("LoadDunbrackLib", &LoadDunbrackLib);
+}
\ No newline at end of file
diff --git a/sidechain/pymod/wrap_sidechain.cc b/sidechain/pymod/wrap_sidechain.cc
new file mode 100644
index 0000000000000000000000000000000000000000..1de21449c0cfc9eec28552108747d89ce378debc
--- /dev/null
+++ b/sidechain/pymod/wrap_sidechain.cc
@@ -0,0 +1,33 @@
+#include <boost/python.hpp>
+#include <promod3/config.hh>
+
+void export_RotamerLib();
+void export_SidechainObjectLoader();
+void export_PairwiseTerms();
+void export_ConstructAtom();
+void export_RotamerIDs();
+void export_Particle();
+void export_Rotamer();
+void export_Settings();
+void export_Frame();
+void export_Connector();
+void export_Graph();
+void export_Disulfid();
+
+using namespace boost::python;
+
+BOOST_PYTHON_MODULE(_sidechain)
+{
+  export_RotamerLib(); 
+  export_SidechainObjectLoader();
+  export_PairwiseTerms();
+  export_ConstructAtom();
+  export_RotamerIDs();
+  export_Particle();
+  export_Rotamer();
+  export_Settings();
+  export_Frame();
+  export_Connector();
+  export_Graph();
+  export_Disulfid();
+}
diff --git a/sidechain/src/CMakeLists.txt b/sidechain/src/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..49d3c6311ca2f03d9794cb52851d4353507445d2
--- /dev/null
+++ b/sidechain/src/CMakeLists.txt
@@ -0,0 +1,45 @@
+set(SIDECHAIN_HEADERS
+rotamer_lib_entry.hh
+bb_dep_rotamer_lib.hh
+rotamer_lib.hh
+dunbrack_lib.hh
+rotamer_lib_reader.hh
+sidechain_object_loader.hh
+pairwise_terms.hh
+construct_atom.hh
+tetrahedral_polytope.hh
+particle.hh
+rotamer.hh
+rotamer_group.hh
+frame.hh
+graph.hh
+tree.hh
+rotamer_id.hh
+rotamer_constructor.hh
+frame_constructor.hh
+sidechain_connector.hh
+settings.hh
+disulfid.hh
+)
+
+set(SIDECHAIN_SOURCES
+dunbrack_lib.cc
+rotamer_lib_reader.cc
+sidechain_object_loader.cc
+pairwise_terms.cc
+construct_atom.cc
+tetrahedral_polytope.cc
+particle.cc
+rotamer.cc
+rotamer_group.cc
+frame.cc
+graph.cc
+tree.cc
+rotamer_constructor.cc
+frame_constructor.cc
+sidechain_connector.cc
+disulfid.cc
+)
+
+module(NAME sidechain HEADERS ${SIDECHAIN_HEADERS} SOURCES ${SIDECHAIN_SOURCES}
+       LINK ${OST_LIBRARIES} ${BOOST_LIBRARIES})
diff --git a/sidechain/src/bb_dep_rotamer_lib.hh b/sidechain/src/bb_dep_rotamer_lib.hh
new file mode 100644
index 0000000000000000000000000000000000000000..a5bb1dcab50528a14b617cb3dbd016ff615f2dcd
--- /dev/null
+++ b/sidechain/src/bb_dep_rotamer_lib.hh
@@ -0,0 +1,31 @@
+#ifndef PROMOD3_BB_DEP_ROTAMER_LIB_HH
+#define PROMOD3_BB_DEP_ROTAMER_LIB_HH
+
+#include <ost/base.hh>
+
+#include <boost/shared_ptr.hpp>
+#include <vector>
+
+#include <promod3/sidechain/rotamer_id.hh>
+#include <promod3/sidechain/rotamer_lib_entry.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+class BBDepRotamerLib;
+typedef boost::shared_ptr<BBDepRotamerLib> BBDepRotamerLibPtr;
+
+
+class BBDepRotamerLib{
+
+public:
+
+  virtual ~BBDepRotamerLib() { }
+
+  virtual std::pair<RotamerLibEntry*,uint> QueryLib(RotamerID id, Real phi, Real psi) const = 0;
+
+};
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/construct_atom.cc b/sidechain/src/construct_atom.cc
new file mode 100644
index 0000000000000000000000000000000000000000..3796a8e20466fb3e7f15891d917cdf3d29251622
--- /dev/null
+++ b/sidechain/src/construct_atom.cc
@@ -0,0 +1,121 @@
+#include <promod3/sidechain/construct_atom.hh>
+
+namespace promod3{ namespace sidechain{
+
+
+void ConstructAtomPos(const geom::Vec3& A, const geom::Vec3& B, const geom::Vec3& C, 
+                      Real bond_length, Real angle, Real dihedral, geom::Vec3& pos){
+
+  Real x,xx,x1;
+  x = std::tan((M_PI-angle)/2);
+  xx = x*x;
+  x1 = 1+xx;
+  Real bond_length_x_sin_angle = bond_length*2*x/x1;
+  Real bond_length_x_cos_angle = bond_length*(1-xx)/x1;
+
+  x = std::tan(dihedral/2);
+  xx = x*x;
+  x1 = 1+xx;
+  Real sin_dihedral = 2*x/x1;
+  Real cos_dihedral = (1-xx)/x1;
+
+  Real ab[] = {B[0]-A[0],B[1]-A[1],B[2]-A[2]};
+
+  Real norm_bc[] = {C[0]-B[0],C[1]-B[1],C[2]-B[2]};
+  Real a = norm_bc[0] * norm_bc[0];
+  a += norm_bc[1] * norm_bc[1];
+  a += norm_bc[2] * norm_bc[2];
+  a = 1.0 / std::sqrt(a);
+
+  norm_bc[0]*=a;
+  norm_bc[1]*=a;
+  norm_bc[2]*=a;
+
+  Real norm_n[] = {ab[1]*norm_bc[2]-norm_bc[1]*ab[2],
+                   ab[2]*norm_bc[0]-norm_bc[2]*ab[0],
+                   ab[0]*norm_bc[1]-norm_bc[0]*ab[1]};
+
+  a = norm_n[0]*norm_n[0];  
+  a += norm_n[1]*norm_n[1];  
+  a += norm_n[2]*norm_n[2];  
+  a = 1.0 / std::sqrt(a);
+
+  norm_n[0]*=a;
+  norm_n[1]*=a;
+  norm_n[2]*=a;
+
+  Real n_x_bc[] = {norm_n[1]*norm_bc[2]-norm_bc[1]*norm_n[2],
+                   norm_n[2]*norm_bc[0]-norm_bc[2]*norm_n[0],
+                   norm_n[0]*norm_bc[1]-norm_bc[0]*norm_n[1]};
+
+  pos[0] = norm_bc[0]*bond_length_x_cos_angle + 
+           n_x_bc[0]*cos_dihedral*bond_length_x_sin_angle + 
+           norm_n[0]*sin_dihedral*bond_length_x_sin_angle + C[0];
+
+  pos[1] = norm_bc[1]*bond_length_x_cos_angle + 
+           n_x_bc[1]*cos_dihedral*bond_length_x_sin_angle + 
+           norm_n[1]*sin_dihedral*bond_length_x_sin_angle + C[1];
+
+  pos[2] = norm_bc[2]*bond_length_x_cos_angle + 
+           n_x_bc[2]*cos_dihedral*bond_length_x_sin_angle + 
+           norm_n[2]*sin_dihedral*bond_length_x_sin_angle + C[2];
+
+}
+
+
+void ConstructAtomPos(const geom::Vec3& A, const geom::Vec3& B, const geom::Vec3& C, 
+                      Real bond_length, Real B_C_bond_length, Real angle, Real dihedral, geom::Vec3& pos){
+
+  Real x,xx,x1;
+  x = std::tan((M_PI-angle)/2);
+  xx = x*x;
+  x1 = 1+xx;
+  Real bond_length_x_sin_angle = bond_length*2*x/x1;
+  Real bond_length_x_cos_angle = bond_length*(1-xx)/x1;
+
+  x = std::tan(dihedral/2);
+  xx = x*x;
+  x1 = 1+xx;
+  Real sin_dihedral = 2*x/x1;
+  Real cos_dihedral = (1-xx)/x1;
+
+  Real ab[] = {B[0]-A[0],B[1]-A[1],B[2]-A[2]};
+
+  Real one_over_B_C_length = 1.0/B_C_bond_length;
+
+  Real norm_bc[] = {(C[0]-B[0]) * one_over_B_C_length,
+                    (C[1]-B[1]) * one_over_B_C_length,
+                    (C[2]-B[2]) * one_over_B_C_length};
+
+  Real norm_n[] = {ab[1]*norm_bc[2]-norm_bc[1]*ab[2],
+                   ab[2]*norm_bc[0]-norm_bc[2]*ab[0],
+                   ab[0]*norm_bc[1]-norm_bc[0]*ab[1]};
+
+  Real a = norm_n[0]*norm_n[0];  
+  a += norm_n[1]*norm_n[1];  
+  a += norm_n[2]*norm_n[2];  
+  a = 1.0 / std::sqrt(a);
+
+
+  norm_n[0]*=a;
+  norm_n[1]*=a;
+  norm_n[2]*=a;
+
+  Real n_x_bc[] = {norm_n[1]*norm_bc[2]-norm_bc[1]*norm_n[2],
+                   norm_n[2]*norm_bc[0]-norm_bc[2]*norm_n[0],
+                   norm_n[0]*norm_bc[1]-norm_bc[0]*norm_n[1]};
+
+  pos[0] = norm_bc[0]*bond_length_x_cos_angle + 
+           n_x_bc[0]*cos_dihedral*bond_length_x_sin_angle + 
+           norm_n[0]*sin_dihedral*bond_length_x_sin_angle + C[0];
+
+  pos[1] = norm_bc[1]*bond_length_x_cos_angle + 
+           n_x_bc[1]*cos_dihedral*bond_length_x_sin_angle + 
+           norm_n[1]*sin_dihedral*bond_length_x_sin_angle + C[1];
+
+  pos[2] = norm_bc[2]*bond_length_x_cos_angle + 
+           n_x_bc[2]*cos_dihedral*bond_length_x_sin_angle + 
+           norm_n[2]*sin_dihedral*bond_length_x_sin_angle + C[2];
+}
+
+}}
diff --git a/sidechain/src/construct_atom.hh b/sidechain/src/construct_atom.hh
new file mode 100644
index 0000000000000000000000000000000000000000..fc7268df7c76cb1cdaaaa58cedb687e5fef8228d
--- /dev/null
+++ b/sidechain/src/construct_atom.hh
@@ -0,0 +1,21 @@
+#ifndef PROMOD3_CONSTRUCT_ATOM_HH
+#define PROMOD3_CONSTRUCT_ATOM_HH
+
+#include <math.h>
+
+#include <ost/base.hh>
+#include <ost/geom/vecmat3_op.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+void ConstructAtomPos(const geom::Vec3& A, const geom::Vec3& B, const geom::Vec3& C, 
+                      Real bond_length, Real angle, Real dihedral, geom::Vec3& pos);
+
+void ConstructAtomPos(const geom::Vec3& A, const geom::Vec3& B, const geom::Vec3& C, 
+                      Real bond_length, Real B_C_bond_length, Real angle, Real dihedral, geom::Vec3& pos);
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/disulfid.cc b/sidechain/src/disulfid.cc
new file mode 100644
index 0000000000000000000000000000000000000000..d9cfbcc05e7c870832456333d69cda92667dff16
--- /dev/null
+++ b/sidechain/src/disulfid.cc
@@ -0,0 +1,77 @@
+#include <promod3/sidechain/disulfid.hh>
+
+
+namespace{
+
+Real RawScore(const geom::Vec3& ca_pos_one, const geom::Vec3& cb_pos_one,
+              const geom::Vec3& sg_pos_one, const geom::Vec3& ca_pos_two, 
+              const geom::Vec3& cb_pos_two, const geom::Vec3& sg_pos_two){
+
+  Real d = geom::Distance(sg_pos_one,sg_pos_two);
+  Real a1 = geom::Angle(cb_pos_one-sg_pos_one,sg_pos_two-sg_pos_one);
+  Real a2 = geom::Angle(sg_pos_one-sg_pos_two,cb_pos_two-sg_pos_two);
+  Real x2 = std::abs(geom::DihedralAngle(ca_pos_one,cb_pos_one,sg_pos_one,sg_pos_two));
+  Real x3 = std::abs(geom::DihedralAngle(cb_pos_one,sg_pos_one,sg_pos_two,cb_pos_two));
+  Real x4 = std::abs(geom::DihedralAngle(sg_pos_one,sg_pos_two,cb_pos_two,ca_pos_two));
+  
+
+  return std::abs(d-2)/0.05+std::abs(a1-1.8151)/0.087266 + std::abs(a2-1.8151)/0.087266 + 
+         std::min(std::abs(x2-1.3963),std::abs(x2-M_PI))/0.17453+
+         std::min(std::abs(x4-1.3963),std::abs(x4-M_PI))/0.17453+
+         std::abs(x3-M_PI/2)/0.34907;
+
+}
+
+}
+
+
+namespace promod3{ namespace sidechain{
+
+
+
+Real DisulfidScore(RRMRotamerPtr rot_one, RRMRotamerPtr rot_two, 
+                   const geom::Vec3& ca_pos_one, const geom::Vec3& cb_pos_one, 
+                   const geom::Vec3& ca_pos_two, const geom::Vec3& cb_pos_two){
+
+  if(rot_one->size() != 1 || rot_two->size() != 1){
+    std::stringstream ss;
+    ss << "Expect rigid rotamers to have exactly one particle ";
+    ss << "representing the gamma sulfur";
+    throw promod3::Error(ss.str());
+  }
+
+  geom::Vec3 sg_pos_one = (*rot_one)[0]->GetCenter();
+  geom::Vec3 sg_pos_two = (*rot_two)[0]->GetCenter();
+
+  return RawScore(ca_pos_one,cb_pos_one,sg_pos_one,ca_pos_two,cb_pos_two,sg_pos_two) +
+         rot_one->GetSelfEnergy() + rot_two->GetSelfEnergy();
+}
+
+Real DisulfidScore(FRMRotamerPtr rot_one, FRMRotamerPtr rot_two, 
+                   const geom::Vec3& ca_pos_one, const geom::Vec3& cb_pos_one, 
+                   const geom::Vec3& ca_pos_two, const geom::Vec3& cb_pos_two){
+
+  if(rot_one->size() != 3 || rot_two->size() != 3){
+    std::stringstream ss;
+    ss << "Expect flexible rotamers to have exactly three particles ";
+    ss << "representing the gamma sulfur.";
+    throw promod3::Error(ss.str());
+  }
+
+  Real min_raw_score = std::numeric_limits<Real>::max();
+
+  geom::Vec3 sg_pos_one, sg_pos_two;
+
+  for(uint i = 0; i < 3; ++i){
+    for(uint j = 0; j < 3; ++j){
+      sg_pos_one = (*rot_one)[i]->GetCenter();
+      sg_pos_two = (*rot_two)[j]->GetCenter();
+
+      min_raw_score = std::min(RawScore(ca_pos_one,cb_pos_one,sg_pos_one,ca_pos_two,cb_pos_two,sg_pos_two)
+                           ,min_raw_score);
+    }
+  }
+  return min_raw_score + rot_one->GetSelfEnergy() + rot_two->GetSelfEnergy();
+}
+
+}} //ns
diff --git a/sidechain/src/disulfid.hh b/sidechain/src/disulfid.hh
new file mode 100644
index 0000000000000000000000000000000000000000..eb7dcb60a87798c2780238abc7686b47d30a3918
--- /dev/null
+++ b/sidechain/src/disulfid.hh
@@ -0,0 +1,24 @@
+#ifndef PROMOD3_SIDECHAIN_DISULFID_HH
+#define PROMOD3_SIDECHAIN_DISULFID_HH
+
+#include <limits>
+
+#include <promod3/sidechain/rotamer_group.hh>
+#include <promod3/core/message.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+
+Real DisulfidScore(RRMRotamerPtr rot_one, RRMRotamerPtr rot_two, 
+                   const geom::Vec3& ca_pos_one, const geom::Vec3& cb_pos_one, 
+                   const geom::Vec3& ca_pos_two, const geom::Vec3& cb_pos_two);
+
+Real DisulfidScore(FRMRotamerPtr rot_one, FRMRotamerPtr rot_two, 
+                   const geom::Vec3& ca_pos_one, const geom::Vec3& cb_pos_one, 
+                   const geom::Vec3& ca_pos_two, const geom::Vec3& cb_pos_two);
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/dunbrack_lib.cc b/sidechain/src/dunbrack_lib.cc
new file mode 100644
index 0000000000000000000000000000000000000000..c702cad2d9ae9a319778f410870cb6bc365ce54d
--- /dev/null
+++ b/sidechain/src/dunbrack_lib.cc
@@ -0,0 +1,452 @@
+#include <promod3/sidechain/dunbrack_lib.hh>
+
+
+namespace{
+  bool RotamerLibEntrySorter(const promod3::sidechain::RotamerLibEntry& a, 
+                             const promod3::sidechain::RotamerLibEntry& b){
+    return a.probability > b.probability;
+  }
+
+  inline Real BilinearInterpolation(Real f00, Real f10, Real f01, Real f11, Real x, Real y){
+    return f00 + (f10-f00)*x + (f01-f00)*y + (f00-f10-f01+f11)*x*y;
+  }
+
+  Real BoundAngle(Real a){
+    if(a < -M_PI) return a + 2*M_PI; 
+    if(a > M_PI) return a - 2*M_PI;
+    return a;
+  }
+
+  inline Real CircularBilinearInterpolation(Real f00, Real f10, Real f01, Real f11, Real x, Real y){
+    
+    Real interpol_one;
+    Real interpol_two;
+    Real diff;
+
+    //do first interpolation
+    diff = f10-f00;
+    
+    if(diff > 0){
+      if(diff > M_PI){
+        diff = diff - 2*M_PI;
+      }
+      interpol_one = BoundAngle(f00 + diff*x);
+    }
+    else{
+      if(diff < -M_PI){
+        diff = diff + 2*M_PI;
+      }
+      interpol_one = BoundAngle(f00 + diff*x);
+    }
+
+    //do second interpolation
+    diff = f11-f01;
+    
+    if(diff > 0){
+      if(diff > M_PI){
+        diff = diff - 2*M_PI;
+      }
+      interpol_two = BoundAngle(f01 + diff*x);
+    }
+    else{
+      if(diff < -M_PI){
+        diff = diff + 2*M_PI;
+      }
+      interpol_two = BoundAngle(f01 + diff*x);
+    }
+
+    //do last interpolation
+    diff = interpol_two-interpol_one;
+    
+    if(diff > 0){
+      if(diff > M_PI){
+        diff = diff-2*M_PI;
+      }
+      return BoundAngle(interpol_one + diff*y);
+    }
+    else{
+      if(diff < -M_PI){
+        diff = diff + 2*M_PI;
+      }
+      return BoundAngle(interpol_one + diff*y);
+    }    
+  }
+
+}
+
+
+
+namespace promod3{ namespace sidechain{
+
+DunbrackLib::~DunbrackLib(){
+  delete [] static_data_;
+}
+
+
+void DunbrackLib::Save(const String& filename){
+
+  this->MakeStatic();
+
+  std::ofstream out_stream(filename.c_str(), std::ios::binary);
+
+  out_stream.write(reinterpret_cast<char*>(&phi_bins_),sizeof(uint));
+  out_stream.write(reinterpret_cast<char*>(&psi_bins_),sizeof(uint));
+
+  uint size = static_data_helper_.size();
+  out_stream.write(reinterpret_cast<char*>(&size),sizeof(uint));
+
+  RotamerID id;
+  uint64_t current_pos;
+  uint num_rotamers;
+
+  for(std::map<RotamerID,std::pair<uint64_t,uint> >::iterator i = static_data_helper_.begin();
+      i != static_data_helper_.end(); ++i){
+    id = i->first;
+    current_pos = i->second.first;
+    num_rotamers = i->second.second;
+    out_stream.write(reinterpret_cast<char*>(&id),sizeof(RotamerID));
+    out_stream.write(reinterpret_cast<char*>(&current_pos),sizeof(uint64_t));
+    out_stream.write(reinterpret_cast<char*>(&num_rotamers),sizeof(uint));
+  }
+
+  out_stream.write(reinterpret_cast<char*>(&total_num_rotamers_),sizeof(uint64_t));
+  out_stream.write(reinterpret_cast<char*>(static_data_),total_num_rotamers_*sizeof(RotamerLibEntry));
+
+  out_stream.close();
+}
+
+DunbrackLibPtr DunbrackLib::Load(const String& filename){
+
+  std::ifstream in_stream(filename.c_str(), std::ios::binary);
+  if (!in_stream){
+    std::stringstream ss;
+    ss << "the file '" << filename << "' does not exist.";
+    throw promod3::Error(ss.str());
+  }
+
+  uint phi_bins, psi_bins;
+  in_stream.read(reinterpret_cast<char*>(&phi_bins),sizeof(uint));
+  in_stream.read(reinterpret_cast<char*>(&psi_bins),sizeof(uint));
+
+  DunbrackLibPtr p(new DunbrackLib(phi_bins,psi_bins));
+  p->readonly_ = true;
+
+  uint size;
+  in_stream.read(reinterpret_cast<char*>(&size),sizeof(uint));
+
+  RotamerID id;
+  uint64_t current_pos;
+  uint num_rotamers;
+  for(uint i = 0; i < size; ++i){
+    in_stream.read(reinterpret_cast<char*>(&id),sizeof(RotamerID));
+    in_stream.read(reinterpret_cast<char*>(&current_pos),sizeof(uint64_t));
+    in_stream.read(reinterpret_cast<char*>(&num_rotamers),sizeof(uint));
+    p->static_data_helper_[id] = std::make_pair(current_pos,num_rotamers);    
+  }
+
+  in_stream.read(reinterpret_cast<char*>(&p->total_num_rotamers_),sizeof(uint64_t));
+  p->static_data_ = new RotamerLibEntry[p->total_num_rotamers_];
+  in_stream.read(reinterpret_cast<char*>(p->static_data_),p->total_num_rotamers_*sizeof(RotamerLibEntry));
+
+  in_stream.close();
+  return p;
+}
+
+void DunbrackLib::AddRotamer(RotamerID id, uint r1, uint r2, uint r3, uint r4,
+                             Real phi, Real psi, const RotamerLibEntry& rot){
+
+  if(readonly_){
+    throw promod3::Error("Cannot add rotamer to static library!");
+  }
+
+  std::vector<uint> configuration(4);
+  configuration[0] = r1;
+  configuration[1] = r2;
+  configuration[2] = r3;
+  configuration[3] = r4;
+
+  //check whether it is the first rotamer of this identity
+  std::map<RotamerID, std::vector<std::vector<std::pair<std::vector<uint>,RotamerLibEntry> > > >::iterator it = 
+  dynamic_data_.find(id);
+  if(it == dynamic_data_.end()){
+    std::vector<std::vector<std::pair<std::vector<uint>,RotamerLibEntry> > > temp;
+    temp.assign(phi_bins_*psi_bins_,std::vector<std::pair<std::vector<uint>,RotamerLibEntry> >());
+    dynamic_data_[id] = temp;
+    it = dynamic_data_.find(id);
+  }
+
+  uint bin = this->GetBackboneBin(phi,psi);
+
+  //insert it at the proper position, sorted by the configuration
+  std::vector<std::pair<std::vector<uint>,RotamerLibEntry> >::iterator rot_it = dynamic_data_[id][bin].begin();
+  std::vector<std::pair<std::vector<uint>,RotamerLibEntry> >::iterator end = dynamic_data_[id][bin].end();
+
+  for(;rot_it != end; ++rot_it){
+    if(configuration < rot_it->first){
+      dynamic_data_[id][bin].insert(rot_it,std::make_pair(configuration,rot));
+      return;
+    }
+  }
+  //we end up here if there are only rotamers with bigger configurations 
+  //are present or when there are no other rotamers for this given 
+  //identity and backbone angles 
+  dynamic_data_[id][bin].push_back(std::make_pair(configuration,rot));
+}
+
+void DunbrackLib::MakeStatic(){
+
+  if(readonly_){
+    //it's already static...
+    return;
+  }
+
+  total_num_rotamers_ = 0;
+
+  //we first check following things
+  // -every rotamer id must contain the same number of rotamers for every dihedral pair
+  // -the configurations must be unique and present for all dihedral pairs
+
+  for(std::map<RotamerID, std::vector<std::vector<std::pair<std::vector<uint>,RotamerLibEntry> > > >::iterator
+      i = dynamic_data_.begin(); i != dynamic_data_.end(); ++i){
+
+    //lets extract the data for the first entry and compare to all other entries
+    uint num_rotamers = (i->second)[0].size();
+    std::set<std::vector<uint> > unique_configurations;
+    for(std::vector<std::pair<std::vector<uint>,RotamerLibEntry> >::iterator j = (i->second)[0].begin();
+        j != (i->second)[0].end(); ++j){
+      unique_configurations.insert(j->first);
+    }
+    if(unique_configurations.size() != num_rotamers){
+      throw promod3::Error("Cannot make library static! Only unique configurations are allowed for specific dihedral pair!");
+    }
+
+
+    for(std::vector<std::vector<std::pair<std::vector<uint>,RotamerLibEntry> > >::iterator j = (i->second).begin();
+        j != (i->second).end(); ++j){
+      //check for the size
+      if(j->size() != num_rotamers){
+        throw promod3::Error("Cannot make library static! Must have same number of rotamers for every dihedral pair!");
+      }
+      //extract all configurations
+      std::set<std::vector<uint> > current_configurations;
+      for(std::vector<std::pair<std::vector<uint>,RotamerLibEntry> >::iterator k = j->begin();
+        k != j->end(); ++k){
+        current_configurations.insert(k->first);
+      }
+      //check whether all necessary configurations are present
+      for(std::set<std::vector<uint> >::iterator k = unique_configurations.begin();
+          k != unique_configurations.end(); ++k){
+        if(current_configurations.find(*k) == current_configurations.end()){
+          throw promod3::Error("Cannot make library static! Inconsisten configurations observed!");
+        }
+      }
+    }
+    total_num_rotamers_ += (phi_bins_ * psi_bins_ * num_rotamers);
+  }
+
+  //All checks passed! Lets throw the dynamic data into static data!
+  static_data_ = new RotamerLibEntry[total_num_rotamers_];
+  static_data_helper_.clear();
+  
+  uint64_t current_pos = 0;
+  for(std::map<RotamerID, std::vector<std::vector<std::pair<std::vector<uint>,RotamerLibEntry> > > >::iterator i = 
+      dynamic_data_.begin(); i != dynamic_data_.end(); ++i){
+    uint rot_per_dihedral_pair = (i->second)[0].size();
+    static_data_helper_[i->first] = std::make_pair(current_pos,rot_per_dihedral_pair);
+    for(uint j = 0; j < phi_bins_*psi_bins_; ++j){
+      for(uint k = 0; k < rot_per_dihedral_pair; ++k){
+        static_data_[current_pos] = ((i->second)[j][k]).second;
+        ++current_pos;
+      }
+    }
+  }
+
+  readonly_=true;
+  dynamic_data_.clear();
+}
+
+std::pair<RotamerLibEntry*,uint> DunbrackLib::QueryLib(RotamerID id, Real phi, Real psi) const{
+
+  if(!readonly_){
+    throw promod3::Error("Can only read rotamers from static library!");
+  }
+
+  //this is some hacky knowledge based stuff
+  if(id == HSE || id == HSD) id = HIS;
+
+  std::map<RotamerID,std::pair<uint64_t,uint> >::const_iterator it = static_data_helper_.find(id);
+   if(it == static_data_helper_.end()){
+    throw promod3::Error("No rotamers for given id...");
+  } 
+
+  uint bin00,bin10,bin01,bin11;
+  Real x,y;
+  Real summed_probability = 0.0;
+  
+  this->GetBackboneBin(phi,psi,bin00,bin10,bin01,bin11,x,y);
+
+  uint64_t pos00 = it->second.first + it->second.second * bin00;
+  uint64_t pos10 = it->second.first + it->second.second * bin10;
+  uint64_t pos01 = it->second.first + it->second.second * bin01;
+  uint64_t pos11 = it->second.first + it->second.second * bin11;
+
+  Real probability;
+  Real chi1;
+  Real chi2;
+  Real chi3;
+  Real chi4;
+  Real sig1;
+  Real sig2;
+  Real sig3;
+  Real sig4;
+
+  result_buffer_.clear();
+
+  for(uint i = 0; i < it->second.second; ++i){
+    probability = BilinearInterpolation(static_data_[pos00].probability,
+                                        static_data_[pos10].probability,
+                                        static_data_[pos01].probability,
+                                        static_data_[pos11].probability,
+                                        x,y);
+    summed_probability += probability;
+    chi1 = CircularBilinearInterpolation(static_data_[pos00].chi1,
+                                         static_data_[pos10].chi1,
+                                         static_data_[pos01].chi1,
+                                         static_data_[pos11].chi1,
+                                         x,y);
+    chi2 = CircularBilinearInterpolation(static_data_[pos00].chi2,
+                                         static_data_[pos10].chi2,
+                                         static_data_[pos01].chi2,
+                                         static_data_[pos11].chi2,
+                                         x,y);
+    chi3 = CircularBilinearInterpolation(static_data_[pos00].chi3,
+                                         static_data_[pos10].chi3,
+                                         static_data_[pos01].chi3,
+                                         static_data_[pos11].chi3,
+                                         x,y);
+    chi4 = CircularBilinearInterpolation(static_data_[pos00].chi4,
+                                         static_data_[pos10].chi4,
+                                         static_data_[pos01].chi4,
+                                         static_data_[pos11].chi4,
+                                         x,y);
+    sig1 = BilinearInterpolation(static_data_[pos00].sig1,
+                                 static_data_[pos10].sig1,
+                                 static_data_[pos01].sig1,
+                                 static_data_[pos11].sig1,
+                                 x,y);
+    sig2 = BilinearInterpolation(static_data_[pos00].sig2,
+                                 static_data_[pos10].sig2,
+                                 static_data_[pos01].sig2,
+                                 static_data_[pos11].sig2,
+                                 x,y);
+    sig3 = BilinearInterpolation(static_data_[pos00].sig3,
+                                 static_data_[pos10].sig3,
+                                 static_data_[pos01].sig3,
+                                 static_data_[pos11].sig3,
+                                 x,y);
+    sig4 = BilinearInterpolation(static_data_[pos00].sig4,
+                                 static_data_[pos10].sig4,
+                                 static_data_[pos01].sig4,
+                                 static_data_[pos11].sig4,
+                                 x,y);
+    result_buffer_.push_back(RotamerLibEntry(probability, chi1, chi2, chi3, chi4,
+                                             sig1, sig2, sig3, sig4));
+    ++pos00;
+    ++pos01;
+    ++pos10;
+    ++pos11;
+  }
+
+  for(std::vector<RotamerLibEntry>::iterator i = result_buffer_.begin();
+      i != result_buffer_.end(); ++i){
+    i->probability /= summed_probability;
+  }
+
+  std::sort(result_buffer_.begin(),result_buffer_.end(),RotamerLibEntrySorter);
+  
+  return std::make_pair(&result_buffer_[0], result_buffer_.size());
+}
+
+uint DunbrackLib::GetBackboneBin(Real phi, Real psi) const{
+
+  Real big_pi = M_PI+0.0001; //avoiding rounding errors in the subsequent checks...
+                             //when the transformed_phi/transformed_psi values get
+                             //generated, this value gets added...
+                             //this COULD have an effect when the angle is exactly
+                             //in between two bins...
+
+  //validity check for torsion angles
+  if(phi < -big_pi || phi > big_pi){
+    std::stringstream ss;
+    ss << "Invalid phi torsion encountered in backbone dependent rotamer library: ";
+    ss << phi;
+    throw promod3::Error(ss.str());
+  }
+  if(psi < -big_pi || psi > big_pi){
+    std::stringstream ss;
+    ss << "Invalid psi torsion encountered in backbone dependent rotamer library: ";
+    ss << psi;
+    throw promod3::Error(ss.str());
+  }
+
+  //we first add pi to get the angles in a range [0,2*pi]
+  //we then add half of the bin size
+  Real transformed_phi = phi + big_pi + phi_bin_size_ / 2;
+  Real transformed_psi = psi + big_pi + psi_bin_size_ / 2;
+
+  //let's ensure the proper range again
+  if(transformed_phi > 2 * M_PI) transformed_phi -= (2 * M_PI);
+  if(transformed_psi > 2 * M_PI) transformed_psi -= (2 * M_PI);
+
+  uint phi_bin = std::min(static_cast<uint>(transformed_phi / phi_bin_size_), phi_bins_ - 1);
+  uint psi_bin = std::min(static_cast<uint>(transformed_psi / psi_bin_size_), psi_bins_ - 1);
+
+  return psi_bin*phi_bins_+phi_bin; 
+}
+
+void DunbrackLib::GetBackboneBin(Real phi, Real psi, uint& bin00, uint& bin10, 
+                                 uint& bin01, uint& bin11, Real& x, Real& y) const{
+
+  Real big_pi = M_PI+0.0001;
+  //validity check for torsion angles
+  if(phi < -big_pi || phi > big_pi){
+    std::stringstream ss;
+    ss << "Invalid phi torsion encountered in backbone dependent rotamer library: ";
+    ss << phi;
+    throw promod3::Error(ss.str());
+  }
+  if(psi < -big_pi || psi > big_pi){
+    std::stringstream ss;
+    ss << "Invalid psi torsion encountered in backbone dependent rotamer library: ";
+    ss << psi;
+    throw promod3::Error(ss.str());
+  }
+
+  //we first add pi to get the angles in a range [0,2*pi]
+  //half of the bin size doesn't get added as above!
+  Real transformed_phi = phi + big_pi;
+  Real transformed_psi = psi + big_pi;
+
+  //let's ensure the proper range again
+  if(transformed_phi > 2 * M_PI) transformed_phi -= (2 * M_PI);
+  if(transformed_psi > 2 * M_PI) transformed_psi -= (2 * M_PI);
+
+  uint phi_bin = std::min(static_cast<uint>(transformed_phi / phi_bin_size_), phi_bins_ - 1);
+  uint psi_bin = std::min(static_cast<uint>(transformed_psi / psi_bin_size_), psi_bins_ - 1);
+
+  bin00 = psi_bin*phi_bins_+phi_bin;
+
+  uint phi_bin_plus_one = phi_bin + 1;
+  uint psi_bin_plus_one = psi_bin + 1;
+  if(phi_bin_plus_one == phi_bins_) phi_bin_plus_one = 0;
+  if(psi_bin_plus_one == psi_bins_) psi_bin_plus_one = 0;
+
+  bin10 = psi_bin * phi_bins_ + phi_bin_plus_one; 
+  bin01 = psi_bin_plus_one * phi_bins_ + phi_bin; 
+  bin11 = psi_bin_plus_one * phi_bins_ + phi_bin_plus_one; 
+
+  x = (transformed_phi - phi_bin * phi_bin_size_)/phi_bin_size_;
+  y = (transformed_psi - psi_bin * psi_bin_size_)/psi_bin_size_;
+}
+
+}}//ns
diff --git a/sidechain/src/dunbrack_lib.hh b/sidechain/src/dunbrack_lib.hh
new file mode 100644
index 0000000000000000000000000000000000000000..6be59d118ad924aa95e54b9afbf60b07a8fc3cf8
--- /dev/null
+++ b/sidechain/src/dunbrack_lib.hh
@@ -0,0 +1,77 @@
+#ifndef PROMOD3_DUNBRACK_LIB_HH
+#define PROMOD3_DUNBRACK_LIB_HH
+
+#include <ost/base.hh>
+
+#include <boost/shared_ptr.hpp>
+
+#include <stdint.h>
+#include <map>
+#include <vector>
+#include <set>
+#include <fstream>
+#include <iostream>
+#include <algorithm>
+
+#include <promod3/sidechain/bb_dep_rotamer_lib.hh>
+#include <promod3/core/message.hh>
+#include <promod3/sidechain/rotamer_id.hh>
+#include <promod3/sidechain/rotamer_lib_entry.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+class DunbrackLib;
+typedef boost::shared_ptr<DunbrackLib> DunbrackLibPtr;
+
+class DunbrackLib : public BBDepRotamerLib{
+
+public:
+
+  DunbrackLib(uint phi_bins, uint psi_bins): phi_bins_(phi_bins),
+                                             psi_bins_(psi_bins),
+                                             phi_bin_size_(2*M_PI/phi_bins),
+                                             psi_bin_size_(2*M_PI/psi_bins),
+                                             readonly_(false){ }
+
+  ~DunbrackLib();
+
+  void Save(const String& filename);
+
+  static DunbrackLibPtr Load(const String& filename);
+
+  virtual std::pair<RotamerLibEntry*,uint> QueryLib(RotamerID id, Real phi, Real psi) const;
+
+  void MakeStatic();
+
+  void AddRotamer(RotamerID id, uint r1, uint r2, uint r3, uint r4,
+                  Real phi, Real psi, const RotamerLibEntry& rot);
+
+private:
+
+  uint GetBackboneBin(Real phi, Real psi) const;
+
+  void GetBackboneBin(Real phi, Real psi, uint& bin00, uint& bin10, 
+                      uint& bin01, uint& bin11, Real& x, Real& y) const;
+
+  uint phi_bins_;
+  uint psi_bins_;
+  Real phi_bin_size_;
+  Real psi_bin_size_;
+  bool readonly_;
+
+  mutable std::vector<RotamerLibEntry> result_buffer_;
+
+  //dynamic data
+  std::map<RotamerID, std::vector<std::vector<std::pair<std::vector<uint>,RotamerLibEntry> > > > dynamic_data_;
+  
+  //static data
+  std::map<RotamerID,std::pair<uint64_t,uint> > static_data_helper_;
+  uint64_t total_num_rotamers_;
+  RotamerLibEntry* static_data_;
+};
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/frame.cc b/sidechain/src/frame.cc
new file mode 100644
index 0000000000000000000000000000000000000000..34d69372a80601e8604b2e4f0b19663f97588e16
--- /dev/null
+++ b/sidechain/src/frame.cc
@@ -0,0 +1,231 @@
+#include <promod3/sidechain/frame.hh>
+
+
+namespace{
+
+inline float LogSumExp(double* values, double avg, int n){
+
+  double sum = 0.0;
+  double* value_ptr = values;
+  for(int i = 0; i < n; ++i){
+    sum += std::exp((*value_ptr)-avg);
+    ++value_ptr;
+  }
+  return std::log(sum) + avg;
+}
+
+}
+
+namespace promod3{ namespace sidechain{ 
+
+FrameResiduePtr FrameResidue::GetTransformedCopy(const geom::Transform& t, uint residue_index) const{
+
+  Particle* transformed_particles = new Particle[n_particles_];
+
+  Particle* p_ptr = transformed_particles;
+
+  for(uint i = 0; i < n_particles_; ++i){
+    particles_[i].GetTransformedCopy(t,p_ptr);
+    ++p_ptr;
+  }
+  
+  FrameResiduePtr return_res(new FrameResidue(transformed_particles,
+                                              n_particles_,
+                                              residue_index));
+
+  return return_res;  
+
+} 
+
+
+Frame::Frame(const std::vector<FrameResiduePtr>& frame_residues,
+             const std::vector<geom::Transform>& rt_operators): 
+             frame_residues_(frame_residues){
+
+  int overall_size = 0;
+  for(std::vector<FrameResiduePtr>::const_iterator i = frame_residues_.begin();
+      i != frame_residues_.end(); ++i){
+    overall_size += (*i)->size();
+  }
+  frame_particles_.resize(overall_size);
+  residue_indices_.resize(overall_size);
+
+  int particle_counter = 0;
+  uint actual_index;
+
+  for(std::vector<FrameResiduePtr>::const_iterator i = frame_residues_.begin(); 
+      i != frame_residues_.end(); ++i){
+    actual_index = (*i)->GetResidueIndex();
+    for(FrameResidue::iterator j = (*i)->begin();j != (*i)->end(); ++j){
+      frame_particles_[particle_counter] = j;
+      residue_indices_[particle_counter] = actual_index;
+      ++particle_counter;
+    }
+  }
+
+  //add the copies from the rt operators
+  if(!rt_operators.empty()){
+    int original_frame_residues = frame_residues_.size();
+    int num_rt_operators = rt_operators.size();
+    int num_rt_particles = num_rt_operators * overall_size;
+    int num_rt_residues = num_rt_operators * original_frame_residues;
+
+    //set the residue index to the maximal possible value, since it can be assumed,
+    //that every transformed rotamer interacts with ALL original particles
+    uint max_index = std::numeric_limits<uint>::max();
+    residue_indices_.resize(overall_size + num_rt_particles, max_index);
+    frame_particles_.resize(overall_size + num_rt_particles);
+
+    int frame_residue_counter = original_frame_residues;
+    frame_residues_.resize(original_frame_residues + num_rt_residues);
+    
+    //let's generate all transformed frame residues
+    for(std::vector<geom::Transform>::const_iterator t_it = rt_operators.begin(); 
+        t_it != rt_operators.end(); ++t_it){
+      for(int i = 0; i < original_frame_residues; ++i){
+        frame_residues_[frame_residue_counter] = frame_residues[i]->GetTransformedCopy(*t_it,max_index);
+        ++frame_residue_counter;
+      }
+    }
+    //and copy over the single particles
+    particle_counter = overall_size;
+    frame_residue_counter = original_frame_residues;
+
+    for(int i = 0; i < num_rt_residues; ++i){
+      for(FrameResidue::iterator j = frame_residues_[frame_residue_counter]->begin();
+          j != frame_residues_[frame_residue_counter]->end(); ++j){
+        frame_particles_[particle_counter] = j;
+        ++particle_counter;
+      }
+      ++frame_residue_counter;
+    }
+  }
+  this->ResetTetrahedralPolytopeTree(std::vector<TetrahedralPolytope*>(frame_particles_.begin(),
+                                                                       frame_particles_.end()));
+}
+
+void Frame::SetFrameEnergy(RRMRotamerGroupPtr p) const{
+
+  for(RRMRotamerGroup::iterator i = p->begin(); i != p->end(); ++i){
+    (*i)->SetFrameEnergy(0.0);
+  }
+  this->AddFrameEnergy(p);
+}
+
+void Frame::AddFrameEnergy(RRMRotamerGroupPtr p) const{
+
+  std::vector<std::pair<int,int> > overlapping_particles;
+  this->OverlappingPolytopes(p,overlapping_particles);
+
+  const std::vector<int>& p_rotamer_indices = p->GetRotamerIndices();
+  const std::vector<Particle*>& p_particles = p->GetParticles();
+  uint p_residue_index = p->GetResidueIndex();
+
+  Real frame_energies[p->size()];
+  memset(frame_energies,0,p->size()*sizeof(Real));
+  Real e;
+
+  for(std::vector<std::pair<int,int> >::iterator i = overlapping_particles.begin();
+      i != overlapping_particles.end(); ++i){
+    if(residue_indices_[i->first] == p_residue_index) continue;
+    e = frame_particles_[i->first]->PairwiseEnergy(p_particles[i->second]);
+    frame_energies[p_rotamer_indices[i->second]] += e;
+  }
+
+  Real* e_ptr = frame_energies;
+  for(RRMRotamerGroup::iterator i = p->begin(); i != p->end(); ++i){
+    (*i)->AddFrameEnergy(*e_ptr);
+    ++e_ptr;
+  }
+}
+
+void Frame::SetFrameEnergy(FRMRotamerGroupPtr p) const{
+
+  for(FRMRotamerGroup::iterator i = p->begin(); i != p->end(); ++i){
+    (*i)->SetFrameEnergy(0);
+    for(uint j = 0, e = (*i)->subrotamer_size(); j < e; ++j){
+      (*i)->SetFrameEnergy(0,j);
+    }
+  }
+  this->AddFrameEnergy(p);
+}
+
+void Frame::AddFrameEnergy(FRMRotamerGroupPtr p) const{
+  std::vector<std::pair<int,int> > overlapping_particles;
+  overlapping_particles.reserve(10000);
+  this->OverlappingPolytopes(p,overlapping_particles);
+
+  const std::vector<int>& p_rotamer_indices = p->GetRotamerIndices();
+  const std::vector<FRMRotamer::subrotamer_association_iterator>& p_ass_ind_b = p->GetSubrotamerAssociationIndB();
+  const std::vector<FRMRotamer::subrotamer_association_iterator>& p_ass_ind_e = p->GetSubrotamerAssociationIndE();
+  const std::vector<Particle*>& p_particles = p->GetParticles();
+  uint p_residue_index = p->GetResidueIndex();
+
+
+  //reserve the memory
+  float** frame_energies = new float*[p->size()];
+  int counter = 0;
+  int subrotamer_size;
+  int max_subrotamer_size = 0;
+  for(FRMRotamerGroup::iterator i = p->begin(); i != p->end(); ++i){
+    subrotamer_size = (*i)->subrotamer_size();
+    frame_energies[counter] = new float[subrotamer_size];
+    //set the subrotamer frame energies to the already existing
+    //energies
+    for(int j = 0; j < subrotamer_size; ++j){
+      frame_energies[counter][j] = (*i)->GetFrameEnergy(j);
+    }
+    max_subrotamer_size = std::max(max_subrotamer_size,subrotamer_size);
+    ++counter;
+  }
+
+  float energy;
+  float* e_ptr;
+  for(std::vector<std::pair<int,int> >::iterator i = overlapping_particles.begin(),
+      e = overlapping_particles.end(); i != e ; ++i){
+
+    if(residue_indices_[i->first] == p_residue_index){
+      continue;
+    }
+
+    energy = frame_particles_[i->first]->PairwiseEnergy(p_particles[i->second]);
+    if(energy == 0) continue;
+
+    e_ptr = frame_energies[p_rotamer_indices[i->second]];
+
+    for(FRMRotamer::subrotamer_association_iterator j = p_ass_ind_b[i->second];
+        j != p_ass_ind_e[i->second]; ++j){
+      e_ptr[*j] += energy;
+    }
+  }
+
+  double exp_buffer[max_subrotamer_size];
+  double avg_exp;
+  counter = 0;
+  float T;
+  float one_over_T;
+  int actual_subrotamer_size;
+
+  for(FRMRotamerGroup::iterator i = p->begin(); i != p->end(); ++i){
+    actual_subrotamer_size = (*i)->subrotamer_size(); 
+    e_ptr = frame_energies[counter];
+    avg_exp = 0.0;
+    T = (*i)->GetTemperature();
+    one_over_T = 1.0/T;
+    for(int j = 0; j < actual_subrotamer_size; ++j){
+      (*i)->SetFrameEnergy(e_ptr[j],j);
+      exp_buffer[j] = -e_ptr[j]*one_over_T;
+      avg_exp += exp_buffer[j];
+    }
+    avg_exp /= (*i)->subrotamer_size();
+    (*i)->SetFrameEnergy(-T*LogSumExp(exp_buffer,avg_exp,actual_subrotamer_size));
+    ++counter;
+  }
+
+  for(uint i = 0; i < p->size(); ++i){
+    delete [] frame_energies[i];
+  }
+  delete [] frame_energies;
+}
+
+}}//ns
diff --git a/sidechain/src/frame.hh b/sidechain/src/frame.hh
new file mode 100644
index 0000000000000000000000000000000000000000..7502de8cf44f27300e5167d0fd8e7c97718f95eb
--- /dev/null
+++ b/sidechain/src/frame.hh
@@ -0,0 +1,86 @@
+#ifndef PROMOD3_FRAME_HH
+#define PROMOD3_FRAME_HH
+
+#include <math.h>
+#include <vector>
+#include <map>
+#include <limits>
+
+#include <promod3/sidechain/tetrahedral_polytope.hh>
+#include <promod3/sidechain/particle.hh>
+#include <promod3/core/message.hh>
+#include <promod3/sidechain/settings.hh>
+#include <promod3/sidechain/rotamer_group.hh>
+#include <boost/shared_ptr.hpp>
+
+
+namespace promod3{ namespace sidechain{
+
+
+class Frame;
+class FrameResidue;
+typedef boost::shared_ptr<Frame> FramePtr;
+typedef boost::shared_ptr<FrameResidue> FrameResiduePtr;
+
+
+
+class FrameResidue{
+public:
+
+  FrameResidue(Particle* particles, size_t n_particles, 
+               uint residue_index):particles_(particles),
+                                   n_particles_(n_particles),
+                                   residue_index_(residue_index) { }
+
+  virtual ~FrameResidue() { delete [] particles_; }
+
+  FrameResiduePtr GetTransformedCopy(const geom::Transform& t, uint residue_index) const;
+
+  Particle* operator[](size_t index) { return particles_ + index; }
+
+  size_t size() const { return n_particles_; }
+
+  typedef Particle* iterator;
+  
+  iterator begin() const { return particles_; }
+  iterator end() const { return particles_ + n_particles_; }
+
+  uint GetResidueIndex() const { return residue_index_; }
+
+private:
+  Particle* particles_;
+  size_t n_particles_;
+  uint residue_index_;
+};
+
+
+
+
+class Frame: public TetrahedralPolytopeTree{
+
+public:
+
+  Frame(const std::vector<FrameResiduePtr>& frame_residues, 
+        const std::vector<geom::Transform>& rt_operators = std::vector<geom::Transform>());
+
+  void SetFrameEnergy(RRMRotamerGroupPtr p) const;
+
+  void SetFrameEnergy(FRMRotamerGroupPtr p) const;
+
+  void AddFrameEnergy(RRMRotamerGroupPtr p) const;
+
+  void AddFrameEnergy(FRMRotamerGroupPtr p) const;
+
+private:
+
+  std::vector<Particle*> frame_particles_;
+  std::vector<FrameResiduePtr> frame_residues_;
+  std::vector<uint> residue_indices_;
+};
+
+
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/frame_constructor.cc b/sidechain/src/frame_constructor.cc
new file mode 100644
index 0000000000000000000000000000000000000000..8e194da00d9511c732d4188281eba40cbacfb960
--- /dev/null
+++ b/sidechain/src/frame_constructor.cc
@@ -0,0 +1,1841 @@
+#include <promod3/sidechain/frame_constructor.hh>
+
+
+namespace promod3 { namespace sidechain{
+  
+FrameResiduePtr ConstructSidechainFrameARG(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle ne = res.FindAtom("NE");
+  ost::mol::AtomHandle cz = res.FindAtom("CZ");
+  ost::mol::AtomHandle nh1 = res.FindAtom("NH1");
+  ost::mol::AtomHandle nh2 = res.FindAtom("NH2");
+
+  if(!cg.IsValid() || !cd.IsValid() || !ne.IsValid() || 
+     !cz.IsValid() || !nh1.IsValid() || !nh2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str());
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[11];
+  else particles = new Particle[6];
+  
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  //construct CD
+  particles[1] = Particle(cd.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.10,"CD");
+
+  //construct NE
+  particles[2] = Particle(ne.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE");
+
+  //construct CZ
+  particles[3] = Particle(cz.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.50,"CZ");
+
+  //construct NH1
+  particles[4] = Particle(nh1.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.45,"NH1");
+
+  //construct NH2
+  particles[5] = Particle(nh2.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.45,"NH2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,6,
+                                                                         residue_index);
+
+  //construct HE
+  ost::mol::AtomHandle he = res.FindAtom("HE");
+  geom::Vec3 he_pos;
+  if(he.IsValid()) he_pos = he.GetPos();
+  else ConstructAtomPos(cg.GetPos(),cd.GetPos(),ne.GetPos(),
+                        1.0065,1.9747,0.0,he_pos);
+  particles[6] = Particle(he_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE");
+  particles[6].SetPolarDirection(he_pos-ne.GetPos());
+
+  //construct HH11
+  ost::mol::AtomHandle hh11 = res.FindAtom("HH11");
+  geom::Vec3 hh11_pos;
+  if(hh11.IsValid()) hh11_pos = hh11.GetPos();
+  else ConstructAtomPos(ne.GetPos(),cz.GetPos(),nh1.GetPos(),
+                        0.9903,2.1050,-3.1116,hh11_pos);
+  particles[7] = Particle(hh11_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HH11");
+  particles[7].SetPolarDirection(hh11_pos-nh1.GetPos());
+
+  //construct HH12
+  ost::mol::AtomHandle hh12 = res.FindAtom("HH12");
+  geom::Vec3 hh12_pos;
+  if(hh12.IsValid()) hh12_pos = hh12.GetPos();
+  else ConstructAtomPos(ne.GetPos(),cz.GetPos(),nh1.GetPos(),
+                        1.0023,-0.12374,M_PI,hh12_pos);
+  particles[8] = Particle(hh12_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HH12");
+  particles[8].SetPolarDirection(hh12_pos-nh1.GetPos());
+
+  //construct HH21
+  ost::mol::AtomHandle hh21 = res.FindAtom("HH21");
+  geom::Vec3 hh21_pos;
+  if(hh21.IsValid()) hh21_pos = hh21.GetPos();
+  else ConstructAtomPos(ne.GetPos(),cz.GetPos(),nh2.GetPos(),
+                        0.9899,2.0928,-3.0393,hh21_pos);
+  particles[9] = Particle(hh21_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HH21");
+  particles[9].SetPolarDirection(hh21_pos-nh2.GetPos());
+
+  //construct HH22  
+  ost::mol::AtomHandle hh22 = res.FindAtom("HH22");
+  geom::Vec3 hh22_pos;
+  if(hh22.IsValid()) hh22_pos = hh22.GetPos();
+  else ConstructAtomPos(ne.GetPos(),cz.GetPos(),nh2.GetPos(),
+                        0.9914,2.0399,-0.13928,hh22_pos);
+  particles[10] = Particle(hh22_pos,settings->H_max_radius,
+                           settings->H_radius,-0.0498,0.35,"HH22");
+  particles[10].SetPolarDirection(hh22_pos-nh2.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,11,residue_index);
+}
+
+FrameResiduePtr ConstructSidechainFrameASN(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle od1 = res.FindAtom("OD1");
+  ost::mol::AtomHandle nd2 = res.FindAtom("ND2");
+
+  if(!cg.IsValid() || !od1.IsValid() || !nd2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str());
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[5];
+  else particles = new Particle[3];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.55,"CG");
+
+  //construct OD1
+  particles[1] = Particle(od1.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OD1");
+
+  //construct ND2
+  particles[2] = Particle(nd2.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"ND2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,3,
+                                                                         residue_index);
+
+  //construct HD21
+  ost::mol::AtomHandle hd21 = res.FindAtom("HD21");
+  geom::Vec3 hd21_pos;
+  if(hd21.IsValid()) hd21_pos = hd21.GetPos();
+  else ConstructAtomPos(od1.GetPos(),cg.GetPos(),nd2.GetPos(),
+                        0.9963,2.0481,M_PI,hd21_pos);
+  particles[3] = Particle(hd21_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HD21");
+  particles[3].SetPolarDirection(hd21_pos-nd2.GetPos());
+
+  //construct HD22
+  ost::mol::AtomHandle hd22 = res.FindAtom("HD22");
+  geom::Vec3 hd22_pos;
+  if(hd21.IsValid()) hd22_pos = hd22.GetPos();
+  else ConstructAtomPos(od1.GetPos(),cg.GetPos(),nd2.GetPos(),
+                        0.9951,2.0953,0,hd22_pos);
+  particles[4] = Particle(hd22_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HD22");
+  particles[4].SetPolarDirection(hd22_pos-nd2.GetPos());
+
+  //construct electron lone pair of od1
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(nd2.GetPos(),cg.GetPos(),od1.GetPos(),1.00,2.0944,
+                   M_PI,lone_pair_center_one);
+  ConstructAtomPos(nd2.GetPos(),cg.GetPos(),od1.GetPos(),1.00,2.0944,
+                   0.0,lone_pair_center_two);
+  particles[1].AddLonePair(lone_pair_center_one-od1.GetPos());
+  particles[1].AddLonePair(lone_pair_center_two-od1.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,5,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameASP(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle od1 = res.FindAtom("OD1");
+  ost::mol::AtomHandle od2 = res.FindAtom("OD2");
+
+  if(!cg.IsValid() || !od1.IsValid() || !od2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str());
+  }
+
+  Particle* particles = new Particle[3];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CG");
+
+  //construct OD1
+  particles[1] = Particle(od1.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD1");
+
+  //construct OD2
+  particles[2] = Particle(od2.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD2");
+
+  if(!settings->consider_hbonds) boost::make_shared<FrameResidue>(particles,3,
+                                                                  residue_index);
+
+  //construct electron lone pairs
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(od2.GetPos(),cg.GetPos(),od1.GetPos(),1.00,2.0944,
+                   M_PI,lone_pair_center_one);
+  ConstructAtomPos(od2.GetPos(),cg.GetPos(),od1.GetPos(),1.00,2.0944,
+                   0.0,lone_pair_center_two);
+  particles[1].AddLonePair(lone_pair_center_one-od1.GetPos());
+  particles[1].AddLonePair(lone_pair_center_two-od1.GetPos());
+
+  ConstructAtomPos(od1.GetPos(),cg.GetPos(),od2.GetPos(),1.00,2.0944,
+                   M_PI,lone_pair_center_one);
+  ConstructAtomPos(od1.GetPos(),cg.GetPos(),od2.GetPos(),1.00,2.0944,
+                   0.0,lone_pair_center_two);
+  particles[2].AddLonePair(lone_pair_center_one-od2.GetPos());
+  particles[2].AddLonePair(lone_pair_center_two-od2.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,3,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameGLN(const ost::mol::ResidueHandle& res,
+                                           uint residue_index,RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle oe1 = res.FindAtom("OE1");
+  ost::mol::AtomHandle ne2 = res.FindAtom("NE2");
+
+  if(!cg.IsValid() || !cd.IsValid() || !oe1.IsValid() || !ne2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str());
+  } 
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[6];
+  else particles = new Particle[4];
+  
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  //construct CD
+  particles[1] =  Particle(cd.GetPos(),settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.55,"CD");
+
+  //construct OE1
+  particles[2] = Particle(oe1.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  //construct NE2
+  particles[3] = Particle(ne2.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,4,
+                                                                         residue_index);
+
+  //construct HE21
+  ost::mol::AtomHandle he21 = res.FindAtom("HE21");
+  geom::Vec3 he21_pos;
+  if(he21.IsValid()) he21_pos = he21.GetPos();
+  else ConstructAtomPos(oe1.GetPos(), cd.GetPos(), ne2.GetPos(),
+                        0.9959,2.0396,M_PI,he21_pos);
+  particles[4] = Particle(he21_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE21");
+  particles[4].SetPolarDirection(he21_pos-ne2.GetPos());
+
+  //construct HE22
+  ost::mol::AtomHandle he22 = res.FindAtom("HE22");
+  geom::Vec3 he22_pos;
+  if(he22.IsValid()) he22_pos = he22.GetPos();
+  else  ConstructAtomPos(oe1.GetPos(), cd.GetPos(), ne2.GetPos(),
+                         0.9943,2.0914,0,he22_pos);
+  particles[5] = Particle(he22_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE22");
+  particles[5].SetPolarDirection(he22_pos-ne2.GetPos());
+
+  //construct electron lone pairs
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(ne2.GetPos(),cd.GetPos(),oe1.GetPos(),1.00,2.0944,
+                   M_PI,lone_pair_center_one);
+  ConstructAtomPos(ne2.GetPos(),cd.GetPos(),oe1.GetPos(),1.00,2.0944,
+                   0.0,lone_pair_center_two);
+  particles[2].AddLonePair(lone_pair_center_one-oe1.GetPos());
+  particles[2].AddLonePair(lone_pair_center_two-oe1.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,6,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameGLU(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle oe1 = res.FindAtom("OE1");
+  ost::mol::AtomHandle oe2 = res.FindAtom("OE2");
+
+  if(!cg.IsValid() || !cd.IsValid() || !oe1.IsValid() || !oe2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str());
+  } 
+
+  Particle* particles = new Particle[4];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,-0.16,"CG");
+
+  //construct CD
+  particles[1] = Particle(cd.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CD");
+
+  //construct OE1
+  particles[2] = Particle(oe1.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.60,"OE1");
+
+  //construct OE2
+  particles[3] = Particle(oe2.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OE2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,4,
+                                                                         residue_index);
+
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(oe2.GetPos(),cd.GetPos(),oe1.GetPos(),1.00,2.0944,
+                   M_PI,lone_pair_center_one);
+  ConstructAtomPos(oe2.GetPos(),cd.GetPos(),oe1.GetPos(),1.00,2.0944,
+                   0.0,lone_pair_center_two);
+  particles[2].AddLonePair(lone_pair_center_one-oe1.GetPos());
+  particles[2].AddLonePair(lone_pair_center_two-oe1.GetPos());
+
+  ConstructAtomPos(oe1.GetPos(),cd.GetPos(),oe2.GetPos(),1.00,2.0944,
+                   M_PI,lone_pair_center_one);
+  ConstructAtomPos(oe1.GetPos(),cd.GetPos(),oe2.GetPos(),1.00,2.0944,
+                   0.0,lone_pair_center_two);
+  particles[3].AddLonePair(lone_pair_center_one-oe2.GetPos());
+  particles[3].AddLonePair(lone_pair_center_two-oe2.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,4,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameLYS(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle ce = res.FindAtom("CE");
+  ost::mol::AtomHandle nz = res.FindAtom("NZ");
+
+  if(!cg.IsValid() || !cd.IsValid() || !ce.IsValid() || !nz.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str());
+  }  
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[7];
+  else particles = new Particle[4];
+  
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  //construct CD
+  particles[1] = Particle(cd.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CD");
+
+  //construct CE
+  particles[2] = Particle(ce.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.25,"CE");
+
+  //construct NZ
+  particles[3] = Particle(nz.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.30,"NZ");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,4,
+                                                                         residue_index);
+
+  //construct HZ1
+  ost::mol::AtomHandle hz1 = res.FindAtom("HZ1");
+  geom::Vec3 hz1_pos;
+  if(hz1.IsValid()) hz1_pos = hz1.GetPos();
+  else  ConstructAtomPos(cd.GetPos(),ce.GetPos(), nz.GetPos(),
+                         1.04,1.9111,M_PI,hz1_pos);
+  particles[4] = Particle(hz1_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HZ1");
+  particles[4].SetPolarDirection(hz1_pos-nz.GetPos());
+
+
+  //construct HZ2
+  ost::mol::AtomHandle hz2 = res.FindAtom("HZ2");
+  geom::Vec3 hz2_pos;
+  if(hz2.IsValid()) hz2_pos = hz2.GetPos();
+  else ConstructAtomPos(cd.GetPos(),ce.GetPos(),nz.GetPos(),
+                        1.04,1.9111,M_PI+2.0944,hz2_pos);
+  particles[5] = Particle(hz2_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HZ2");
+  particles[5].SetPolarDirection(hz2_pos-nz.GetPos());
+
+  //construct HZ3
+  ost::mol::AtomHandle hz3 = res.FindAtom("HZ3");
+  geom::Vec3 hz3_pos;
+  if(hz3.IsValid()) hz3_pos = hz3.GetPos();
+  else ConstructAtomPos(cd.GetPos(), ce.GetPos(), nz.GetPos(),
+                        1.04,1.9111,M_PI-2.0944,hz3_pos);
+  particles[6] = Particle(hz3_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HZ3");
+  particles[6].SetPolarDirection(hz3_pos-nz.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,7,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameSER(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle og = res.FindAtom("OG");
+  ost::mol::AtomHandle cb = res.FindAtom("CB"); 
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+
+  //it is guaranteed from the calling function, that ca and cb exist...
+  if(!og.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[2];
+  else particles = new Particle[1];
+  
+
+  //construct OG
+  particles[0] = Particle(og.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.1142,-0.65,"OG");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,1,
+                                                                         residue_index);
+
+  //construct HG
+  ost::mol::AtomHandle hg = res.FindAtom("HG");
+  geom::Vec3 hg_pos;
+  if(hg.IsValid()) hg_pos = hg.GetPos();
+  else ConstructAtomPos(ca.GetPos(),cb.GetPos(),og.GetPos(),
+                        0.9655,1.8689,M_PI,hg_pos);
+
+  particles[1] = Particle(hg_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.40,"HG");
+  particles[1].SetPolarDirection(hg_pos-og.GetPos());
+
+  //create a center point between the two lone pair clouds with distance to OG equals 1
+  geom::Vec3 center_point = og.GetPos() + 
+                            geom::Normalize(geom::Normalize(og.GetPos()-hg_pos) + 
+                            geom::Normalize(og.GetPos()-cb.GetPos()));
+
+  //the two lone pair representatives can now be calculated. Note, that they have tetrahedral
+  //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(cb.GetPos(),og.GetPos(),
+                   center_point,1.4150,M_PI/2,
+                   M_PI/2,lone_pair_center_one);
+  ConstructAtomPos(cb.GetPos(),og.GetPos(),
+                   center_point,1.4150,M_PI/2,
+                   -M_PI/2,lone_pair_center_two);
+  particles[0].AddLonePair(lone_pair_center_one-og.GetPos());
+  particles[0].AddLonePair(lone_pair_center_two-og.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,2,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameCYS(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+  
+  ost::mol::AtomHandle sg = res.FindAtom("SG");
+
+  if(!sg.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles = new Particle[1];
+
+  //construct SG
+  particles[0] = Particle(sg.GetPos(),settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.19,"SG");
+
+  return boost::make_shared<FrameResidue>(particles,1,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameMET(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+  
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle sd = res.FindAtom("SD");
+  ost::mol::AtomHandle ce = res.FindAtom("CE");
+
+  if(!cg.IsValid() || !sd.IsValid() || !ce.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles = new Particle[3];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.06,"CG");
+
+  //construct SD
+  particles[1] = Particle(sd.GetPos(),settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.12,"SD");
+
+  //construct CE
+  particles[2] = Particle(ce.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  return boost::make_shared<FrameResidue>(particles,3,residue_index);
+
+}
+
+
+FrameResiduePtr ConstructSidechainFrameTRP(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce2 = res.FindAtom("CE2");
+  ost::mol::AtomHandle ne1 = res.FindAtom("NE1");
+  ost::mol::AtomHandle ce3 = res.FindAtom("CE3");
+  ost::mol::AtomHandle cz3 = res.FindAtom("CZ3");
+  ost::mol::AtomHandle ch2 = res.FindAtom("CH2");
+  ost::mol::AtomHandle cz2 = res.FindAtom("CZ2");
+
+  if(!cg.IsValid() || !cd1.IsValid() || !cd2.IsValid() || !ce2.IsValid() ||
+     !ne1.IsValid() || !ce3.IsValid() || !cz3.IsValid() || !ch2.IsValid() ||
+     !cz2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[10];
+  else particles = new Particle[9];
+  
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                       settings->C_radius,-0.1200,-0.03,"CG");
+ 
+  //construct CD1
+  particles[1] = Particle(cd1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.06,"CD1");
+
+  //construct CD2
+  particles[2] = Particle(cd2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  //construct CE2
+  particles[3] = Particle(ce2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,-0.04,"CE2");
+
+  //construct NE1
+  particles[4] = Particle(ne1.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.36,"NE1");
+
+  //construct CE3
+  particles[5] = Particle(ce3.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,-0.03,"CE3");
+
+  //construct CZ3
+  particles[6] = Particle(cz3.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CZ3");
+
+  //construct CH2
+  particles[7] = Particle(ch2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CH2");
+
+  //construct CZ2
+  particles[8] = Particle(cz2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CZ2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,9,
+                                                                         residue_index);
+
+  //construct HE1
+  ost::mol::AtomHandle he1 = res.FindAtom("HE1");
+  geom::Vec3 he1_pos;
+  if(he1.IsValid()) he1_pos = he1.GetPos();
+  else  ConstructAtomPos(cz2.GetPos(),ce2.GetPos(), ne1.GetPos(),
+                         0.9767,2.1761,0.0,he1_pos);
+  
+  particles[9] = Particle(he1_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE1");
+  particles[9].SetPolarDirection(he1_pos-ne1.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,10,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameTYR(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce1 = res.FindAtom("CE1");
+  ost::mol::AtomHandle ce2 = res.FindAtom("CE2");
+  ost::mol::AtomHandle cz = res.FindAtom("CZ");
+  ost::mol::AtomHandle oh = res.FindAtom("OH");
+
+
+  if(!cg.IsValid() || !cd1.IsValid() || !cd2.IsValid() || !ce1.IsValid() ||
+     !ce2.IsValid() || !cz.IsValid() || !oh.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[8];
+  else particles = new Particle[7];
+  
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG");
+
+  //construct CD1
+  particles[1] = Particle(cd1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD1");
+
+  //construct CD2
+  particles[2] = Particle(cd2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD2");
+
+  //construct CE1
+  particles[3] = Particle(ce1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE1");
+
+  //construct CE2
+  particles[4] = Particle(ce2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE2");
+
+  //construct CZ
+  particles[5] = Particle(cz.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.25,"CZ");
+
+  //construct OH
+  particles[6] = Particle(oh.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.65,"OH");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,7,
+                                                                         residue_index);
+
+  //construct HH
+  ost::mol::AtomHandle hh = res.FindAtom("HH");
+  geom::Vec3 hh_pos;
+  if(hh.IsValid()) hh_pos = hh.GetPos();
+  else ConstructAtomPos(ce1.GetPos(),cz.GetPos(),oh.GetPos(),
+                        0.9594,1.8757,M_PI,hh_pos);
+
+  particles[7] = Particle(hh_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.40,"HH");
+  particles[7].SetPolarDirection(hh_pos-oh.GetPos());
+
+  //create a center point between the two lone pair clouds with distance to OG equals 1
+  geom::Vec3 center_point = oh.GetPos() + 
+                            geom::Normalize(geom::Normalize(oh.GetPos()-hh_pos) + 
+                            geom::Normalize(oh.GetPos()-cz.GetPos()));
+
+  //the two lone pair representatives can now be calculated. Note, that they have tetrahedral
+  //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(cz.GetPos(),oh.GetPos(),
+                   center_point,1.4150,M_PI/2,
+                   M_PI/2,lone_pair_center_one);
+  ConstructAtomPos(cz.GetPos(),oh.GetPos(),
+                   center_point,1.4150,M_PI/2,
+                   -M_PI/2,lone_pair_center_two);
+  particles[6].AddLonePair(lone_pair_center_one-oh.GetPos());
+  particles[6].AddLonePair(lone_pair_center_two-oh.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,8,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameTHR(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle og1 = res.FindAtom("OG1");
+  ost::mol::AtomHandle cg2 = res.FindAtom("CG2");
+  ost::mol::AtomHandle cb = res.FindAtom("CB"); 
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+
+  //it is guaranteed from the calling function, that ca and cb exist...
+  if(!og1.IsValid() || !cg2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[3];
+  else particles = new Particle[2];
+
+  //construct OG1
+  particles[0] = Particle(og1.GetPos(),settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.65,"OG1");
+  
+  //construct CG2
+  particles[1] = Particle(cg2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,2,
+                                                                         residue_index);
+
+  //construct HG1
+  ost::mol::AtomHandle hg1 = res.FindAtom("HG1");
+  geom::Vec3 hg1_pos;
+  if(hg1.IsValid()) hg1_pos = hg1.GetPos();
+  else ConstructAtomPos(ca.GetPos(),cb.GetPos(),og1.GetPos(),
+                        0.9633,1.8404,M_PI,hg1_pos);
+
+
+  particles[2] = Particle(hg1_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.40,"HG1");
+  particles[2].SetPolarDirection(hg1_pos-og1.GetPos());
+
+  //create a center point between the two lone pair clouds with distance to OG equals 1
+  geom::Vec3 center_point = og1.GetPos() + 
+                            geom::Normalize(geom::Normalize(og1.GetPos()-hg1_pos) + 
+                            geom::Normalize(og1.GetPos()-cb.GetPos()));
+
+  //the two lone pair representatives can now be calculated. Note, that they have tetrahedral
+  //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(cb.GetPos(),og1.GetPos(),
+                   center_point,1.4150,M_PI/2,
+                   M_PI/2,lone_pair_center_one);
+  ConstructAtomPos(cb.GetPos(),og1.GetPos(),
+                   center_point,1.4150,M_PI/2,
+                   -M_PI/2,lone_pair_center_two);
+  particles[0].AddLonePair(lone_pair_center_one-og1.GetPos());
+  particles[0].AddLonePair(lone_pair_center_two-og1.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,3,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameVAL(const ost::mol::ResidueHandle& res,
+                                           uint residue_index,RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg1 = res.FindAtom("CG1");
+  ost::mol::AtomHandle cg2 = res.FindAtom("CG2");
+
+  if(!cg1.IsValid() || !cg2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles = new Particle[2];
+
+  //constructing CG1
+  particles[0] = Particle(cg1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG1");
+
+  //constructing CG2
+  particles[1] = Particle(cg2.GetPos(),settings->C_max_radius,
+                         settings->C_radius,-0.1811,0.00,"CG2");
+
+  return boost::make_shared<FrameResidue>(particles,2,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFrameILE(const ost::mol::ResidueHandle& res,
+                                           uint residue_index,RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg1 = res.FindAtom("CG1");
+  ost::mol::AtomHandle cg2 = res.FindAtom("CG2");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+
+  if(!cd1.IsValid()) cd1 = res.FindAtom("CD"); //sometimes it varies...
+
+  if(!cg1.IsValid() || !cg2.IsValid() || !cd1.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles = new Particle[3];
+
+  //construct CG1
+  particles[0] = Particle(cg1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG1");
+
+  //construct CG2
+  particles[1] = Particle(cg2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+  //construct CD1
+  particles[2] = Particle(cd1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  return boost::make_shared<FrameResidue>(particles,3,residue_index);   
+}
+
+FrameResiduePtr ConstructSidechainFrameLEU(const ost::mol::ResidueHandle& res,
+                                           uint residue_index,RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+
+  if(!cg.IsValid() || !cd1.IsValid() || !cd2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles = new Particle[3];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.0486,0.00,"CG");
+
+  //construct CD1
+  particles[1] = Particle(cd1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  //construct CD2
+  particles[2] = Particle(cd2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD2");
+
+  return boost::make_shared<FrameResidue>(particles,3,residue_index);   
+}
+
+FrameResiduePtr ConstructSidechainFramePRO(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CG");
+
+  if(!cg.IsValid() || !cd.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles = new Particle[2];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  //construct CD
+  particles[1] = Particle(cd.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.10,"CD");
+
+  return boost::make_shared<FrameResidue>(particles,2,residue_index);   
+}
+
+FrameResiduePtr ConstructSidechainFrameHSD(const ost::mol::ResidueHandle& res,
+                                           uint residue_index, RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle nd1 = res.FindAtom("ND1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce1 = res.FindAtom("CE1");
+  ost::mol::AtomHandle ne2 = res.FindAtom("NE2");
+
+  if(!cg.IsValid() || !nd1.IsValid() || !cd2.IsValid() || 
+     !ce1.IsValid() || !ne2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[6];
+  else particles = new Particle[5];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                         settings->C_radius,-0.1200,0.10,"CG");
+  
+  //construct ND1
+  particles[1] = Particle(nd1.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  //construct CD2
+  particles[2] = Particle(cd2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  //construct CE1
+  particles[3] = Particle(ce1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.30,"CE1");
+
+  //construct NE2
+  particles[4] = Particle(ne2.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,5,
+                                                                         residue_index);
+
+  geom::Vec3 lone_pair_dir = geom::Normalize(ne2.GetPos()-cd2.GetPos())+
+                             geom::Normalize(ne2.GetPos()-ce1.GetPos());
+  particles[4].AddLonePair(lone_pair_dir);
+
+  //construct HD1
+  ost::mol::AtomHandle hd1 = res.FindAtom("HD1");
+  geom::Vec3 hd1_pos;
+  if(hd1.IsValid()) hd1_pos = hd1.GetPos();
+  else ConstructAtomPos(cd2.GetPos(),cg.GetPos(),nd1.GetPos(),
+                        1.0005,2.2037,M_PI,hd1_pos);
+  particles[5] = Particle(hd1_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HD1");  
+  particles[5].SetPolarDirection(hd1_pos-nd1.GetPos());
+
+  return boost::make_shared<FrameResidue>(particles,6,residue_index);
+
+}
+
+FrameResiduePtr ConstructSidechainFrameHSE(const ost::mol::ResidueHandle& res,
+                                           uint residue_index,RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle nd1 = res.FindAtom("ND1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce1 = res.FindAtom("CE1");
+  ost::mol::AtomHandle ne2 = res.FindAtom("NE2");
+
+  if(!cg.IsValid() || !nd1.IsValid() || !cd2.IsValid() || 
+     !ce1.IsValid() || !ne2.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles;
+
+  if(settings->consider_hbonds) particles = new Particle[6];
+  else particles = new Particle[5];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CG");
+  
+  //construct ND1
+  particles[1] = Particle(nd1.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  //construct CD2
+  particles[2] = Particle(cd2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  //construct CE1
+  particles[3] = Particle(ce1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.30,"CE1");
+
+  //construct NE2
+  particles[4] = Particle(ne2.GetPos(),settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  if(!settings->consider_hbonds) return boost::make_shared<FrameResidue>(particles,5,
+                                                                         residue_index);
+
+  //construct HE2
+  ost::mol::AtomHandle he2 = res.FindAtom("HE2");
+  geom::Vec3 he2_pos;
+  if(he2.IsValid()) he2_pos = he2.GetPos();
+  else ConstructAtomPos(cg.GetPos(),cd2.GetPos(), ne2.GetPos(),
+                        0.9996,2.1967,M_PI,he2_pos);
+  particles[5] = Particle(he2_pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE2");  
+  particles[5].SetPolarDirection(he2_pos-ne2.GetPos());
+
+  geom::Vec3 lone_pair_dir = geom::Normalize(nd1.GetPos()-cg.GetPos())+
+                             geom::Normalize(nd1.GetPos()-ce1.GetPos());
+
+  particles[1].AddLonePair(lone_pair_dir);
+ 
+  return boost::make_shared<FrameResidue>(particles,6,residue_index);
+}
+
+
+FrameResiduePtr ConstructSidechainFramePHE(const ost::mol::ResidueHandle& res,
+                                           uint residue_index,RotamerSettingsPtr settings){
+
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce1 = res.FindAtom("CE1");
+  ost::mol::AtomHandle ce2 = res.FindAtom("CE2");
+  ost::mol::AtomHandle cz = res.FindAtom("CZ");
+
+  if(!cg.IsValid() || !cd1.IsValid() || !cd2.IsValid() || 
+     !ce1.IsValid() || !ce2.IsValid() || !cz.IsValid()){
+    std::stringstream ss;
+    ss << "Cannot use sidechain of " << res.GetQualifiedName() << " as frameresidue,";
+    ss << " not all atoms are present."; 
+    throw promod3::Error(ss.str()); 
+  }
+
+  Particle* particles = new Particle[6];
+
+  //construct CG
+  particles[0] = Particle(cg.GetPos(),settings->C_max_radius,
+                                  settings->C_radius,-0.1200,0.0,"CG");
+
+  //construct CD1
+  particles[1] = Particle(cd1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.0,"CD1");
+
+  //construct CD2
+  particles[2] = Particle(cd2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.0,"CD2");
+
+  //construct CE1
+  particles[3] = Particle(ce1.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.0,"CE1");
+
+  //construct CE2
+  particles[4] = Particle(ce2.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.0,"CE2");
+
+  //construct CZ
+  particles[5] = Particle(cz.GetPos(),settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.0,"CZ");
+
+  return boost::make_shared<FrameResidue>(particles,5,residue_index);
+}
+
+
+FrameResiduePtr ConstructBackboneFrameResidue(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                              const geom::Vec3& c_pos, const geom::Vec3& o_pos,
+                                              const geom::Vec3& cb_pos, RotamerID id, uint residue_index,
+                                              RotamerSettingsPtr settings, Real phi, bool n_ter,
+                                              bool c_ter){
+
+  Real n_charge, h_charge, ca_charge, cb_charge, c_charge, o_charge;
+
+  switch(id){
+    case ASP:{
+      n_charge = -0.35;
+      h_charge = 0.25;
+      ca_charge = 0.10;
+      cb_charge = -0.16;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break;
+    }
+    case CYS:{
+      n_charge = -0.35;
+      h_charge = 0.25;
+      ca_charge = 0.10;
+      cb_charge = 0.19;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break;
+    }
+    case PRO:{
+      n_charge = -0.20;
+      ca_charge = 0.10;
+      cb_charge = 0.25;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break; 
+    }
+    case CPR:{ // cis proline
+      n_charge = -0.20;
+      ca_charge = 0.10;
+      cb_charge = 0.25;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break;      
+    }
+    case TPR:{ // trans proline
+      n_charge = -0.20;
+      ca_charge = 0.10;
+      cb_charge = 0.25;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break;      
+    }
+    case SER:{
+      n_charge = -0.35;
+      h_charge = 0.25;
+      ca_charge = 0.10;
+      cb_charge = 0.25;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break; 
+    }
+    case THR:{
+      n_charge = -0.35;
+      h_charge = 0.25;
+      ca_charge = 0.10;
+      cb_charge = 0.25;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break; 
+    }
+    default:{
+      n_charge = -0.35;
+      h_charge = 0.25;
+      ca_charge = 0.10;
+      cb_charge = 0.00;
+      c_charge = 0.55;
+      o_charge = -0.55;
+      break;
+    }
+  }
+
+  if(c_ter){
+    c_charge = 0.14;
+    o_charge = -0.57;
+  }
+
+  if(n_ter){
+    n_charge = -0.30;
+  }
+
+  switch(id){
+    case GLY:{
+
+      uint num_particles = 4;
+      uint actual_pos = 0;
+      if(c_ter) ++num_particles;
+      if(settings->consider_hbonds){
+        ++num_particles;
+        if(n_ter){
+          num_particles += 2;
+        }
+      }
+
+      Particle* particles = new Particle[num_particles];
+      
+      particles[actual_pos] = Particle(n_pos,settings->N_max_radius,
+                                       settings->N_radius,-0.2384,n_charge,"N");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(ca_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1142,ca_charge,"CA");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(c_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1200,c_charge,"C");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(o_pos,settings->O_max_radius,
+                                       settings->O_radius,-0.1591,o_charge,"O");
+      ++actual_pos;
+
+      if(settings->consider_hbonds){
+        geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,0.0,lone_pair_center_two);
+        particles[actual_pos-1].AddLonePair(lone_pair_center_one-o_pos);
+        particles[actual_pos-1].AddLonePair(lone_pair_center_two-o_pos);
+        if(n_ter){
+          geom::Vec3 h_pos;
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,M_PI,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT1");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,1.0472,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT2");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,-1.0472,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT3");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos; 
+        }
+        else{
+          //construct H in case of n_ter, it will be constructed below
+          geom::Vec3 hn_pos;
+          ConstructAtomPos(c_pos,ca_pos,n_pos,0.9970,2.0420,-phi+M_PI,hn_pos);
+          particles[actual_pos] = Particle(hn_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,h_charge,"H");
+          particles[actual_pos].SetPolarDirection(hn_pos-n_pos);
+          ++actual_pos;          
+        }
+      }
+
+      if(c_ter){
+        geom::Vec3 ot_pos;
+        //position gets estimated a bit hacky...
+        ConstructAtomPos(n_pos,ca_pos, c_pos,1.2304,2.0944,
+                         geom::DihedralAngle(n_pos,ca_pos,c_pos,o_pos)+M_PI,ot_pos);
+        particles[actual_pos] = Particle(ot_pos,settings->O_max_radius,
+                                         settings->O_radius,-0.1591,o_charge,"OT");
+        if(settings->consider_hbonds){
+          geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,0.0,lone_pair_center_two);
+          particles[actual_pos].AddLonePair(lone_pair_center_one-ot_pos);
+          particles[actual_pos].AddLonePair(lone_pair_center_two-ot_pos);
+        } 
+        ++actual_pos;
+      }
+
+      return boost::make_shared<FrameResidue>(particles,num_particles,residue_index);
+
+    }
+    case ALA:{
+
+      uint num_particles = 5;
+      uint actual_pos = 0;
+      if(c_ter) ++num_particles;
+      if(settings->consider_hbonds){
+        ++num_particles;
+        if(n_ter){
+          num_particles += 2;
+        }
+      }
+
+      Particle* particles = new Particle[num_particles];
+      
+      particles[actual_pos] = Particle(n_pos,settings->N_max_radius,
+                                       settings->N_radius,-0.2384,n_charge,"N");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(ca_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.0486,ca_charge,"CA");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(c_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1200,c_charge,"C");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(o_pos,settings->O_max_radius,
+                                       settings->O_radius,-0.1591,o_charge,"O");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(cb_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1811,cb_charge,"CB");
+      ++actual_pos;
+
+
+      if(settings->consider_hbonds){
+        geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,0.0,lone_pair_center_two);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_one-o_pos);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_two-o_pos);
+        if(n_ter){
+          geom::Vec3 h_pos;
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,M_PI,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT1");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,1.0472,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT2");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,-1.0472,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT3");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos; 
+        }
+        else{
+          //construct H in case of n_ter, it will be constructed below
+          geom::Vec3 hn_pos;
+          ConstructAtomPos(c_pos,ca_pos,n_pos,0.9970,2.0420,-phi+M_PI,hn_pos);
+          particles[actual_pos] = Particle(hn_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,h_charge,"H");
+          particles[actual_pos].SetPolarDirection(hn_pos-n_pos);
+          ++actual_pos;          
+        }
+      }
+
+      if(c_ter){
+        geom::Vec3 ot_pos;
+        //position gets estimated a bit hacky...
+        ConstructAtomPos(n_pos,ca_pos, c_pos,1.2304,2.0944,
+                         geom::DihedralAngle(n_pos,ca_pos,c_pos,o_pos)+M_PI,ot_pos);
+        particles[actual_pos] = Particle(ot_pos,settings->O_max_radius,
+                                         settings->O_radius,-0.1591,o_charge,"OT");
+        if(settings->consider_hbonds){
+          geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,0.0,lone_pair_center_two);
+          particles[actual_pos].AddLonePair(lone_pair_center_one-ot_pos);
+          particles[actual_pos].AddLonePair(lone_pair_center_two-ot_pos);
+        } 
+        ++actual_pos;
+      }
+
+      return boost::make_shared<FrameResidue>(particles,num_particles,residue_index);
+    }
+
+    case PRO:{
+
+      uint num_particles = 5;
+      uint actual_pos = 0;
+      if(c_ter) ++num_particles;
+      if(settings->consider_hbonds && n_ter) num_particles += 2;
+      
+      Particle* particles = new Particle[num_particles];
+      
+      particles[actual_pos] = Particle(n_pos,settings->N_max_radius,
+                                       settings->N_radius,-0.2384,n_charge,"N");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(ca_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.0486,ca_charge,"CA");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(c_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1200,c_charge,"C");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(o_pos,settings->O_max_radius,
+                                       settings->O_radius,-0.1591,o_charge,"O");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(cb_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1811,cb_charge,"CB");
+      ++actual_pos;
+
+
+      if(settings->consider_hbonds){
+        geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,0.0,lone_pair_center_two);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_one-o_pos);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_two-o_pos);
+        if(n_ter){
+          geom::Vec3 h_pos;
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,2.0944,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT1");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,-2.0944,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT2");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos; 
+        }
+      }
+
+      if(c_ter){
+        geom::Vec3 ot_pos;
+        //position gets estimated a bit hacky...
+        ConstructAtomPos(n_pos,ca_pos, c_pos,1.2304,2.0944,
+                         geom::DihedralAngle(n_pos,ca_pos,c_pos,o_pos)+M_PI,ot_pos);
+        particles[actual_pos] = Particle(ot_pos,settings->O_max_radius,
+                                         settings->O_radius,-0.1591,o_charge,"OT");
+        if(settings->consider_hbonds){
+          geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,0.0,lone_pair_center_two);
+          particles[actual_pos].AddLonePair(lone_pair_center_one-ot_pos);
+          particles[actual_pos].AddLonePair(lone_pair_center_two-ot_pos);
+        } 
+        ++actual_pos;
+
+      }
+
+      return boost::make_shared<FrameResidue>(particles,num_particles,residue_index);
+    }
+    
+    case CPR:{
+      uint num_particles = 5;
+      uint actual_pos = 0;
+      if(c_ter) ++num_particles;
+      if(settings->consider_hbonds && n_ter) num_particles += 2;
+      
+      Particle* particles = new Particle[num_particles];
+      
+      particles[actual_pos] = Particle(n_pos,settings->N_max_radius,
+                                       settings->N_radius,-0.2384,n_charge,"N");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(ca_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.0486,ca_charge,"CA");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(c_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1200,c_charge,"C");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(o_pos,settings->O_max_radius,
+                                       settings->O_radius,-0.1591,o_charge,"O");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(cb_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1811,cb_charge,"CB");
+      ++actual_pos;
+
+
+      if(settings->consider_hbonds){
+        geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,0.0,lone_pair_center_two);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_one-o_pos);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_two-o_pos);
+        if(n_ter){
+          geom::Vec3 h_pos;
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,2.0944,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT1");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,-2.0944,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT2");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos; 
+        }
+      }
+
+      if(c_ter){
+        geom::Vec3 ot_pos;
+        //position gets estimated a bit hacky...
+        ConstructAtomPos(n_pos,ca_pos, c_pos,1.2304,2.0944,
+                         geom::DihedralAngle(n_pos,ca_pos,c_pos,o_pos)+M_PI,ot_pos);
+        particles[actual_pos] = Particle(ot_pos,settings->O_max_radius,
+                                         settings->O_radius,-0.1591,o_charge,"OT");
+        if(settings->consider_hbonds){
+          geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,0.0,lone_pair_center_two);
+          particles[actual_pos].AddLonePair(lone_pair_center_one-ot_pos);
+          particles[actual_pos].AddLonePair(lone_pair_center_two-ot_pos);
+        } 
+        ++actual_pos;
+      }
+
+      return boost::make_shared<FrameResidue>(particles,num_particles,residue_index);
+    }
+
+    case TPR:{
+      uint num_particles = 5;
+      uint actual_pos = 0;
+      if(c_ter) ++num_particles;
+      if(settings->consider_hbonds && n_ter) num_particles += 2;
+      
+      Particle* particles = new Particle[num_particles];
+      
+      particles[actual_pos] = Particle(n_pos,settings->N_max_radius,
+                                       settings->N_radius,-0.2384,n_charge,"N");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(ca_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.0486,ca_charge,"CA");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(c_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1200,c_charge,"C");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(o_pos,settings->O_max_radius,
+                                       settings->O_radius,-0.1591,o_charge,"O");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(cb_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1811,cb_charge,"CB");
+      ++actual_pos;
+
+
+      if(settings->consider_hbonds){
+        geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,0.0,lone_pair_center_two);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_one-o_pos);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_two-o_pos);
+        if(n_ter){
+          geom::Vec3 h_pos;
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,2.0944,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT1");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,-2.0944,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT2");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos; 
+        }
+      }
+
+      if(c_ter){
+        geom::Vec3 ot_pos;
+        //position gets estimated a bit hacky...
+        ConstructAtomPos(n_pos,ca_pos, c_pos,1.2304,2.0944,
+                         geom::DihedralAngle(n_pos,ca_pos,c_pos,o_pos)+M_PI,ot_pos);
+        particles[actual_pos] = Particle(ot_pos,settings->O_max_radius,
+                                         settings->O_radius,-0.1591,o_charge,"OT");
+        if(settings->consider_hbonds){
+          geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,0.0,lone_pair_center_two);
+          particles[actual_pos].AddLonePair(lone_pair_center_one-ot_pos);
+          particles[actual_pos].AddLonePair(lone_pair_center_two-ot_pos);
+        } 
+        ++actual_pos;
+      }
+
+      return boost::make_shared<FrameResidue>(particles,num_particles,residue_index);
+    }
+
+    default:{
+      uint num_particles = 5;
+      uint actual_pos = 0;
+      if(c_ter) ++num_particles;
+      if(settings->consider_hbonds){
+        ++num_particles;
+        if(n_ter){
+          num_particles += 2;
+        }
+      }
+
+      Particle* particles = new Particle[num_particles];
+      
+      particles[actual_pos] = Particle(n_pos,settings->N_max_radius,
+                                       settings->N_radius,-0.2384,n_charge,"N");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(ca_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.0486,ca_charge,"CA");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(c_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1200,c_charge,"C");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(o_pos,settings->O_max_radius,
+                                       settings->O_radius,-0.1591,o_charge,"O");
+      ++actual_pos;
+
+      particles[actual_pos] = Particle(cb_pos,settings->C_max_radius,
+                                       settings->C_radius,-0.1142,cb_charge,"CB");
+      ++actual_pos;
+
+      if(settings->consider_hbonds){
+        geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+        ConstructAtomPos(ca_pos,c_pos,o_pos,1.00,2.0944,0.0,lone_pair_center_two);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_one-o_pos);
+        particles[actual_pos-2].AddLonePair(lone_pair_center_two-o_pos);
+        if(n_ter){
+          geom::Vec3 h_pos;
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,M_PI,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT1");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,1.0472,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT2");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos;
+
+          ConstructAtomPos(cb_pos,ca_pos,n_pos,0.9970,2.0420,-1.0472,h_pos);
+          particles[actual_pos] = Particle(h_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,0.35,"HT3");
+          particles[actual_pos].SetPolarDirection(h_pos-n_pos);
+          ++actual_pos; 
+        }
+        else{
+          //construct H in case of n_ter, it will be constructed below
+          geom::Vec3 hn_pos;
+          ConstructAtomPos(c_pos,ca_pos,n_pos,0.9970,2.0420,-phi+M_PI,hn_pos);
+          particles[actual_pos] = Particle(hn_pos,settings->H_max_radius,
+                                           settings->H_radius,-0.0498,h_charge,"H");
+          particles[actual_pos].SetPolarDirection(hn_pos-n_pos);
+          ++actual_pos;          
+        }
+      }
+
+      if(c_ter){
+        geom::Vec3 ot_pos;
+        //position gets estimated a bit hacky...
+        ConstructAtomPos(n_pos,ca_pos, c_pos,1.2304,2.0944,
+                         geom::DihedralAngle(n_pos,ca_pos,c_pos,o_pos)+M_PI,ot_pos);
+        particles[actual_pos] = Particle(ot_pos,settings->O_max_radius,
+                                         settings->O_radius,-0.1591,o_charge,"OT");
+        if(settings->consider_hbonds){
+          geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,M_PI,lone_pair_center_one);
+          ConstructAtomPos(ca_pos,c_pos,ot_pos,1.00,2.0944,0.0,lone_pair_center_two);
+          particles[actual_pos].AddLonePair(lone_pair_center_one-ot_pos);
+          particles[actual_pos].AddLonePair(lone_pair_center_two-ot_pos);
+        } 
+        ++actual_pos;
+      }
+
+      return boost::make_shared<FrameResidue>(particles,num_particles,residue_index);
+    }
+  }
+}
+
+
+FrameResiduePtr ConstructBackboneFrameResidue(const ost::mol::ResidueHandle& res, RotamerID id,
+                                               uint residue_index, RotamerSettingsPtr settings, 
+                                               Real phi, bool n_ter, bool c_ter){
+
+  ost::mol::AtomHandle n = res.FindAtom("N");
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle c = res.FindAtom("C");
+  ost::mol::AtomHandle o = res.FindAtom("O");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+
+  if(!(n.IsValid() && ca.IsValid() && c.IsValid() && o.IsValid())){
+    throw promod3::Error("Could not find all required backbone atoms!");
+  }
+
+  geom::Vec3 n_pos = n.GetPos();
+  geom::Vec3 ca_pos = ca.GetPos();
+  geom::Vec3 c_pos = c.GetPos();
+  geom::Vec3 o_pos = o.GetPos();
+  geom::Vec3 cb_pos;
+
+
+  if(cb.IsValid()) cb_pos = cb.GetPos();
+  else if(id != GLY) cb_pos = ost::mol::alg::CBetaPosition(n_pos, ca_pos, c_pos);
+  
+
+  return ConstructBackboneFrameResidue(n_pos,ca_pos,c_pos,o_pos,cb_pos,id,
+                                       residue_index,settings,phi,n_ter,c_ter);
+}
+
+FrameResiduePtr ConstructSidechainFrameResidue(const ost::mol::ResidueHandle& res, RotamerID id,
+                                               uint residue_index, RotamerSettingsPtr settings){
+
+  switch (id){
+    case ARG :{     
+      return ConstructSidechainFrameARG(res,residue_index, settings);
+    }
+
+    case ASN :{ 
+      return ConstructSidechainFrameASN(res,residue_index, settings);
+    }
+
+    case ASP :{
+      return ConstructSidechainFrameASP(res,residue_index, settings);
+    }
+
+    case GLN :{
+      return ConstructSidechainFrameGLN(res,residue_index, settings);
+    }
+
+    case GLU :{
+      return ConstructSidechainFrameGLU(res,residue_index, settings);
+    }
+
+    case LYS :{
+      return ConstructSidechainFrameLYS(res,residue_index, settings);
+    }
+
+    case SER :{
+      return ConstructSidechainFrameSER(res,residue_index, settings);
+    }
+
+    case CYS :{
+      return ConstructSidechainFrameCYS(res,residue_index, settings);
+    }
+
+    case CYH :{
+      return ConstructSidechainFrameCYS(res,residue_index, settings);
+    }
+
+    case CYD :{
+      return ConstructSidechainFrameCYS(res,residue_index, settings);
+    }
+
+    case MET :{
+      return ConstructSidechainFrameMET(res,residue_index, settings);
+    }
+
+    case TRP :{
+      return ConstructSidechainFrameTRP(res,residue_index, settings);
+    }
+
+    case TYR :{
+      return ConstructSidechainFrameTYR(res,residue_index, settings);
+    }
+
+    case THR :{
+      return ConstructSidechainFrameTHR(res,residue_index, settings);
+    }
+
+    case VAL :{
+      return ConstructSidechainFrameVAL(res,residue_index, settings);
+    }
+
+    case ILE :{
+      return ConstructSidechainFrameILE(res,residue_index, settings);
+    }
+
+    case LEU :{
+      return ConstructSidechainFrameLEU(res,residue_index, settings);
+    }
+
+    case PRO :{
+      return ConstructSidechainFramePRO(res,residue_index, settings);
+    }
+
+    case CPR :{
+      return ConstructSidechainFramePRO(res,residue_index, settings);
+    }
+
+    case TPR :{
+      return ConstructSidechainFramePRO(res,residue_index, settings);
+    }
+
+    case HSD :{
+      return ConstructSidechainFrameHSD(res,residue_index, settings);
+    }
+
+    case HSE :{
+      return ConstructSidechainFrameHSE(res,residue_index, settings);
+    }
+
+    case PHE :{
+      return ConstructSidechainFramePHE(res,residue_index, settings);
+    }
+
+    case ALA :{
+      Particle* p = new Particle[0];
+      return boost::make_shared<FrameResidue>(p,0,0);
+    }
+
+    case GLY :{
+      Particle* p = new Particle[0];
+      return boost::make_shared<FrameResidue>(p,0,0);
+    }
+
+    default : 
+      throw promod3::Error("Cannot construct frame for this type of residue...");
+  }  
+}
+
+FrameResiduePtr ConstructFrameResidue(const ost::mol::ResidueHandle& res, 
+                                      uint residue_index,
+                                      RotamerSettingsPtr settings,
+                                      std::vector<Real> radius, 
+                                      std::vector<Real> emin){
+
+  ost::mol::AtomHandleList atom_list = res.GetAtomList();
+  uint size = atom_list.size();
+
+  if(radius.empty()){
+    if(!emin.empty()){
+      std::stringstream ss;
+      ss << "radius and emin must have the same size for constructing frame residue!";
+      throw promod3::Error(ss.str());
+    }
+    radius.resize(size,settings->C_radius);
+    emin.resize(size,-0.1811);  
+  }
+
+  if(emin.empty()){
+    if(!radius.empty()){
+      std::stringstream ss;
+      ss << "radius and emin must have the same size for constructing frame residue!";
+      throw promod3::Error(ss.str());
+    }
+    //radius.resize(atom_list.size(),settings->C_radius);
+    radius.resize(size,settings->C_radius);
+    emin.resize(size,-0.1811);  
+  }
+
+
+  if(emin.size() != size || radius.size() != size){
+    std::stringstream ss;
+    ss << "sizes of emin and radius are not consistent with number of atoms";
+    ss <<" present in residue when constructing frame residue!"<<std::endl;
+  }
+
+  Particle* particles = new Particle[size];
+  
+  for(uint i = 0; i < size; ++i){
+    //calculate the max radius, for which the pairwise energy function
+    //will be nonzero given an interaction with sulfur, the standard atom 
+    //with largest radius 
+    Real max_radius = 4 * (settings->S_radius + radius[i]) / 3.0 - settings->S_max_radius;
+    particles[i] = Particle(atom_list[i].GetPos(), radius[i], max_radius,
+                            emin[i], 0.0, atom_list[i].GetName());
+  }
+
+  return boost::make_shared<FrameResidue>(particles, size, residue_index);
+}
+
+}}
diff --git a/sidechain/src/frame_constructor.hh b/sidechain/src/frame_constructor.hh
new file mode 100644
index 0000000000000000000000000000000000000000..8bf210460233b9490883c6a6b2fe154878da66d3
--- /dev/null
+++ b/sidechain/src/frame_constructor.hh
@@ -0,0 +1,44 @@
+#ifndef PROMOD3_FRAME_CONSTRUCTOR_HH
+#define PROMOD3_FRAME_CONSTRUCTOR_HH
+
+#include <vector>
+#include <limits>
+
+#include <boost/make_shared.hpp>
+
+#include <promod3/sidechain/rotamer_id.hh>
+#include <promod3/sidechain/frame.hh>
+#include <promod3/core/message.hh>
+#include <promod3/sidechain/particle.hh>
+#include <promod3/sidechain/settings.hh>
+
+#include <ost/mol/residue_handle.hh>
+#include <ost/mol/atom_handle.hh>
+#include <ost/mol/alg/construct_cbeta.hh>
+#include <promod3/sidechain/construct_atom.hh>
+
+namespace promod3{ namespace sidechain{
+
+FrameResiduePtr ConstructBackboneFrameResidue(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                              const geom::Vec3& c_pos, const geom::Vec3& o_pos,
+                                              const geom::Vec3& cb_pos, RotamerID id, uint residue_index,
+                                              RotamerSettingsPtr settings, Real phi,
+                                              bool n_ter=false, bool c_ter=false);
+
+FrameResiduePtr ConstructBackboneFrameResidue(const ost::mol::ResidueHandle& res, RotamerID id,
+                                              uint residue_index, RotamerSettingsPtr settings,
+                                              Real phi, bool n_ter = false, bool c_ter = false);
+
+
+FrameResiduePtr ConstructSidechainFrameResidue(const ost::mol::ResidueHandle& res, RotamerID id,
+                                               uint residue_index, RotamerSettingsPtr settings);
+
+
+FrameResiduePtr ConstructFrameResidue(const ost::mol::ResidueHandle& res, uint residue_index,
+                                      RotamerSettingsPtr settings,
+                                      std::vector<Real> radius = std::vector<Real>(), 
+                                      std::vector<Real> emin = std::vector<Real>());
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/graph.cc b/sidechain/src/graph.cc
new file mode 100644
index 0000000000000000000000000000000000000000..71c93fb5553250d5f93e98c9de1ef20cc6944129
--- /dev/null
+++ b/sidechain/src/graph.cc
@@ -0,0 +1,630 @@
+#include <promod3/sidechain/graph.hh>
+#include <promod3/sidechain/tree.hh>
+
+namespace{
+
+  bool active_rotamer_sorter(std::pair<uint,float> a, std::pair<uint,float> b){
+    return a.second < b.second;
+  }
+
+}
+
+namespace promod3{ namespace sidechain{
+
+Edge::Edge(uint index, Node* node1, Node* node2, uint num_i, uint num_j, 
+           float* pairwise_energies):  index_(index),
+                                       active_(true),
+                                       node1_(node1), node2_(node2),
+                                       maxi_(num_i), maxj_(num_j),
+                                       pairwise_energies_(pairwise_energies){
+
+}
+
+Edge::~Edge(){
+  delete [] pairwise_energies_;
+  //Nodes don't get deleted here!
+  //It is assumed, that this happens in the graph object
+}
+
+void Edge::Reset(){
+  active_ = true;
+}
+
+void Edge::Deactivate(){
+  if(!active_) return;
+  active_ = false;
+}
+
+bool Edge::Decompose(Real thresh){
+
+  if(!active_) return false;
+
+  Real summed_e = 0.0;
+  uint m = node1_->GetNumActiveRotamers();
+  uint n = node2_->GetNumActiveRotamers();
+  uint n_total = node2_->GetNumRotamers();
+  int temp;
+
+  for(Node::iterator i = node1_->active_rotamers_begin();
+      i != node1_->active_rotamers_end(); ++i){
+    temp = (*i) * n_total;
+    for(Node::iterator j = node2_->active_rotamers_begin();
+        j != node2_->active_rotamers_end(); ++j){
+      summed_e += pairwise_energies_[temp + (*j)];
+    }
+  }
+
+  Real avg_value = summed_e/(2*n*m);
+
+  Real ak[m];
+  Real bl[n];
+
+  uint m_counter = 0;
+  for(Node::iterator i = node1_->active_rotamers_begin();
+      i != node1_->active_rotamers_end(); ++i){
+    summed_e = 0.0;
+    int temp = (*i) * n_total;
+    for(Node::iterator j = node2_->active_rotamers_begin();
+        j != node2_->active_rotamers_end(); ++j){
+      summed_e += pairwise_energies_[temp + (*j)];
+    }
+    ak[m_counter] = summed_e/n - avg_value;
+    ++m_counter;
+  }
+
+  Real e;
+  uint n_counter = 0;
+  for(Node::iterator i = node2_->active_rotamers_begin();
+      i != node2_->active_rotamers_end(); ++i){
+    summed_e = 0.0;
+    for(Node::iterator j = node1_->active_rotamers_begin();
+        j != node1_->active_rotamers_end(); ++j){
+      summed_e += pairwise_energies_[(*j) * node2_->GetNumRotamers() + (*i)];
+    }
+    bl[n_counter] = summed_e/m - avg_value;
+
+    m_counter = 0;
+    for(Node::iterator j = node1_->active_rotamers_begin();
+        j != node1_->active_rotamers_end(); ++j){
+      e = std::abs(pairwise_energies_[(*j)*n_total+(*i)]-ak[m_counter]-bl[n_counter]);
+      if(e > thresh) return false;
+      ++m_counter;
+    }
+    ++n_counter;
+  }
+
+  for(uint i = 0; i < m; ++i){
+    for(Node::iterator j = node1_->active_rotamers_begin(); 
+        j != node1_->active_rotamers_end(); ++j){
+      node1_->AddValue(*j,ak[i]);
+    }
+  }
+
+  for(uint i = 0; i < n; ++i){
+    for(Node::iterator j = node2_->active_rotamers_begin(); 
+        j != node2_->active_rotamers_end(); ++j){
+      node2_->AddValue(*j,bl[i]);
+    }
+  }
+  this->Deactivate();
+  node1_->RemoveFromActiveEdges(this);
+  node2_->RemoveFromActiveEdges(this);
+  return true;
+}
+
+Real Edge::EMinDiff(const Node* node_ptr, uint idx1, uint idx2) const{
+
+  float min = std::numeric_limits<float>::max();
+  if(node_ptr == node1_){
+    int temp1 = idx1 * node2_->GetNumRotamers();
+    int temp2 = idx2 * node2_->GetNumRotamers();
+    for(Node::const_iterator i = node2_->active_rotamers_begin();
+        i != node2_->active_rotamers_end(); ++i){
+      min = std::min(min,pairwise_energies_[temp1 + (*i)] - pairwise_energies_[temp2 + (*i)]);
+    }
+    return min;
+  }
+  else if(node_ptr == node2_){
+    int num = node2_->GetNumRotamers();
+    for(Node::const_iterator i = node1_->active_rotamers_begin();
+        i != node1_->active_rotamers_end(); ++i){
+      min = std::min(min,pairwise_energies_[(*i)*num + idx1] - pairwise_energies_[(*i)*num + idx2]);
+    }
+    return min;
+  }
+  throw promod3::Error("Cannot evaluate Node which is unconnected to the edge of interest!");
+}
+
+void Edge::FillActiveEnergies(float* pairwise_energies) const{
+  for(Node::const_iterator i = node1_->active_rotamers_begin();
+      i != node1_->active_rotamers_end(); ++i){
+    for(Node::const_iterator j = node2_->active_rotamers_begin();
+        j != node2_->active_rotamers_end(); ++j){
+      *pairwise_energies = pairwise_energies_[*i*node2_->GetNumRotamers() + *j];
+      ++pairwise_energies;
+    }
+  }
+}
+
+Node* Edge::GetOtherNode(Node* node){
+  if(node == node1_) return node2_;
+  if(node == node2_) return node1_;
+  throw promod3::Error("Node does not belong to edge!");
+}
+
+Node::Node(uint index,
+           uint num_rotamers,
+           float* internal_energies,
+           float* frame_energies): active_(true),index_(index),
+                                   num_rotamers_(num_rotamers),
+                                   internal_energies_(internal_energies),
+                                   frame_energies_(frame_energies){
+
+  self_energies_ = new float[num_rotamers_];
+
+  for(uint i = 0; i < num_rotamers_; ++i){
+    active_rotamers_.push_back(i);
+    self_energies_[i] = internal_energies_[i] + frame_energies_[i];
+    sorted_active_rotamers_.push_back(std::make_pair(i,self_energies_[i]));
+  }
+
+  std::sort(sorted_active_rotamers_.begin(), sorted_active_rotamers_.end(),active_rotamer_sorter);
+}
+
+Node::~Node(){
+  delete [] internal_energies_;
+  delete [] frame_energies_;
+  delete [] self_energies_;
+}
+
+void Node::Reset(){
+
+  //clear everything
+  active_rotamers_.clear();
+  active_edges_.clear();
+  sorted_active_rotamers_.clear();
+  active_ = true;
+
+  //and refill
+  for(uint i = 0; i < num_rotamers_; ++i){
+    active_rotamers_.push_back(i);
+    self_energies_[i] = internal_energies_[i] + frame_energies_[i];
+    sorted_active_rotamers_.push_back(std::make_pair(i,self_energies_[i]));
+  }
+  std::sort(sorted_active_rotamers_.begin(), sorted_active_rotamers_.end(),active_rotamer_sorter);
+
+  for(uint i = 0; i < edges_.size(); ++i){
+    active_edges_.push_back(i);
+  }
+
+  for(std::vector<Edge*>::iterator i = edges_.begin(); i != edges_.end(); ++i) (*i)->Reset();
+}
+
+void Node::Deactivate(){
+  if(!active_) return;
+  active_ = false;
+  //lets first figure out which is the lowest energy
+  //rotamer and set it to the only active rotamer
+  float e_min = std::numeric_limits<float>::max();
+  uint index = 0;
+  for(uint i = 0; i < active_rotamers_.size(); ++i){
+    if(self_energies_[active_rotamers_[i]] < e_min){
+      e_min = self_energies_[active_rotamers_[i]];
+      index = active_rotamers_[i];
+    }
+  }
+  active_rotamers_.resize(1);
+  active_rotamers_[0] = index;
+  
+  //deactivate all edges connected to this node
+  for(iterator i = this->active_edges_begin(); i != this->active_edges_end(); ++i){
+    Node* other = edges_[*i]->GetOtherNode(this);
+    other->RemoveFromActiveEdges(edges_[*i]);
+    edges_[*i]->Deactivate();
+  } 
+  active_edges_.clear();
+}
+
+void Node::AddEdge(Edge* edge){
+  edges_.push_back(edge);
+  active_edges_.push_back(edges_.size()-1);
+}
+
+void Node::AddValue(Real value){
+  for(std::vector<uint>::iterator i = active_rotamers_.begin();
+      i != active_rotamers_.end(); ++i){
+    self_energies_[*i] += value;
+  }
+}
+
+void Node::AddValue(uint node_idx, Real value){
+  self_energies_[node_idx] += value;
+}
+
+void Node::RemoveFromActiveEdges(Edge* edge){
+  uint counter = 0;
+  for(; counter < edges_.size(); ++counter){
+    if(edge == edges_[counter]){
+      iterator i = std::find(active_edges_.begin(), active_edges_.end(), counter);
+      if(i != active_edges_.end()){
+        active_edges_.erase(i);
+      }
+      if(active_edges_.empty()) this->Deactivate();
+      return;
+    }
+  }
+}
+
+bool Node::DEE(){
+
+  if(active_rotamers_.size() <= 1) return false;
+
+  bool something_happened = false; 
+  float sum;
+  int rotamer_to_eliminate = sorted_active_rotamers_.size()-1;
+  while(rotamer_to_eliminate >= 0){
+    for(uint i = 0; i < active_rotamers_.size(); ++i){
+      if(i == rotamer_to_eliminate) continue;
+      sum = self_energies_[sorted_active_rotamers_[rotamer_to_eliminate].first] -
+            self_energies_[sorted_active_rotamers_[i].first];
+      for(iterator j = this->active_edges_.begin(); j != this->active_edges_.end(); ++j){
+        sum += edges_[*j]->EMinDiff(this,sorted_active_rotamers_[rotamer_to_eliminate].first,
+                                    sorted_active_rotamers_[i].first);
+      }
+      if(sum >= 0){
+        something_happened = true;
+        std::vector<uint>::iterator it = std::find(active_rotamers_.begin(),
+                                                   active_rotamers_.end(),
+                                                   sorted_active_rotamers_[rotamer_to_eliminate].first);
+        active_rotamers_.erase(it);
+        sorted_active_rotamers_.erase(sorted_active_rotamers_.begin() + rotamer_to_eliminate);
+        break;
+      }
+    }
+    --rotamer_to_eliminate;
+  }
+
+  return something_happened;
+}
+
+void Node::FillActiveSelfEnergies(float* self_energies) const{
+  for(const_iterator i = this->active_rotamers_begin();
+      i != this->active_rotamers_end(); ++i){
+    *self_energies = self_energies_[*i];
+    ++self_energies;
+  }
+}
+
+Graph::~Graph(){
+  for(std::vector<Node*>::iterator i = nodes_.begin(); 
+      i != nodes_.end(); ++i){
+    delete *i;
+  }
+
+  for(std::vector<Edge*>::iterator i = edges_.begin(); 
+      i != edges_.end(); ++i){
+    delete *i;
+  }
+}
+
+GraphPtr Graph::CreateFromRRMList(const std::vector<RRMRotamerGroupPtr>& rotamer_groups,
+                                  const std::vector<geom::Transform>& rt_operators){
+
+  GraphPtr graph(new Graph);
+
+  //let's create the nodes
+  graph->nodes_.resize(rotamer_groups.size());
+  uint counter = 0;
+  float* internal_energies;
+  float* frame_energies;
+  for(std::vector<RRMRotamerGroupPtr>::const_iterator i = rotamer_groups.begin(); 
+      i != rotamer_groups.end(); ++i, ++counter){
+    internal_energies = new float[(*i)->size()];
+    frame_energies = new float[(*i)->size()];
+    for(uint j = 0; j < (*i)->size(); ++j){
+      internal_energies[j] = (**i)[j]->GetInternalEnergy();
+      frame_energies[j] = (**i)[j]->GetFrameEnergy();
+    }
+    graph->nodes_[counter] = new Node(counter,(*i)->size(),internal_energies,frame_energies);
+  }
+
+  //let's create the edges and directly add them to the corresponding nodes
+
+  for(uint i = 0; i < rotamer_groups.size(); ++i){
+    for(uint j = i+1; j < rotamer_groups.size(); ++j){
+      float* pairwise_energies = rotamer_groups[i]->CalculatePairwiseEnergies(rotamer_groups[j],0.01);
+      if(pairwise_energies!=NULL){
+        Edge* edge = new Edge(graph->edges_.size(),
+                              graph->nodes_[i],graph->nodes_[j],
+                              rotamer_groups[i]->size(),
+                              rotamer_groups[j]->size(),
+                              pairwise_energies);
+        graph->nodes_[i]->AddEdge(edge);
+        graph->nodes_[j]->AddEdge(edge);
+        graph->edges_.push_back(edge);
+      }
+    }
+  }
+
+  //let's do the same thing for the transformed rotamergroups
+  for(std::vector<geom::Transform>::const_iterator t_it = rt_operators.begin(); 
+      t_it != rt_operators.end(); ++t_it){
+    std::vector<RRMRotamerGroupPtr> transformed_groups;
+    transformed_groups.reserve(rotamer_groups.size());
+    for(std::vector<RRMRotamerGroupPtr>::const_iterator i = rotamer_groups.begin();
+        i != rotamer_groups.end(); ++i){
+      transformed_groups.push_back((*i)->GetTransformedCopy(*t_it));
+    }
+
+    for(uint i = 0; i < rotamer_groups.size(); ++i){
+      for(uint j = 0; j < transformed_groups.size(); ++j){
+        float* pairwise_energies = rotamer_groups[i]->CalculatePairwiseEnergies(transformed_groups[j],0.01);
+        if(pairwise_energies!=NULL){
+          if(i > j){
+            int i_size = rotamer_groups[i]->size();
+            int j_size = transformed_groups[j]->size();
+            float* inverted_energies = new float[i_size * j_size];
+            Invert(pairwise_energies,inverted_energies,i_size,j_size);
+            delete [] pairwise_energies;
+            Edge* edge = new Edge(graph->edges_.size(),
+                                  graph->nodes_[j],
+                                  graph->nodes_[i],
+                                  rotamer_groups[j]->size(),
+                                  rotamer_groups[i]->size(),
+                                  inverted_energies);
+            graph->nodes_[j]->AddEdge(edge);
+            graph->nodes_[i]->AddEdge(edge);
+            graph->edges_.push_back(edge);            
+            continue;
+          }
+
+          Edge* edge = new Edge(graph->edges_.size(),
+                                graph->nodes_[i],
+                                graph->nodes_[j],
+                                rotamer_groups[i]->size(),
+                                rotamer_groups[j]->size(),
+                                pairwise_energies);
+          graph->nodes_[i]->AddEdge(edge);
+          graph->nodes_[j]->AddEdge(edge);
+          graph->edges_.push_back(edge);          
+        }
+      }
+    }
+  }
+
+  return graph;
+}
+
+
+GraphPtr Graph::CreateFromFRMList(const std::vector<FRMRotamerGroupPtr>& rotamer_groups,
+                                  const std::vector<geom::Transform>& rt_operators){
+
+  GraphPtr graph(new Graph);
+
+  //let's create the nodes
+  graph->nodes_.resize(rotamer_groups.size());
+  uint counter = 0;
+  float* internal_energies;
+  float* frame_energies;
+  for(std::vector<FRMRotamerGroupPtr>::const_iterator i = rotamer_groups.begin(); 
+      i != rotamer_groups.end(); ++i, ++counter){
+    internal_energies = new float[(*i)->size()];
+    frame_energies = new float[(*i)->size()];
+    for(uint j = 0; j < (*i)->size(); ++j){
+      internal_energies[j] = (**i)[j]->GetInternalEnergy();
+      frame_energies[j] = (**i)[j]->GetFrameEnergy();
+    }
+    graph->nodes_[counter] = new Node(counter,(*i)->size(),internal_energies,frame_energies);
+  }
+
+  //let's create the edges and directly add them to the corresponding nodes
+  for(uint i = 0; i < rotamer_groups.size(); ++i){
+    for(uint j = i+1; j < rotamer_groups.size(); ++j){
+      float* pairwise_energies = rotamer_groups[i]->CalculatePairwiseEnergies(rotamer_groups[j],0.01);
+      if(pairwise_energies != NULL){
+        Edge* edge = new Edge(graph->edges_.size(),
+                              graph->nodes_[i],
+                              graph->nodes_[j],
+                              rotamer_groups[i]->size(),
+                              rotamer_groups[j]->size(),
+                              pairwise_energies);
+        graph->nodes_[i]->AddEdge(edge);
+        graph->nodes_[j]->AddEdge(edge);
+        graph->edges_.push_back(edge);          
+      }
+    }
+  }
+
+  //let's do the same thing for the transformed rotamergroups
+  for(std::vector<geom::Transform>::const_iterator t_it = rt_operators.begin(); 
+      t_it != rt_operators.end(); ++t_it){
+    std::vector<FRMRotamerGroupPtr> transformed_groups;
+    transformed_groups.reserve(rotamer_groups.size());
+    for(std::vector<FRMRotamerGroupPtr>::const_iterator i = rotamer_groups.begin();
+        i != rotamer_groups.end(); ++i){
+      transformed_groups.push_back((*i)->GetTransformedCopy(*t_it));
+    }
+
+    for(uint i = 0; i < rotamer_groups.size(); ++i){
+      for(uint j = 0; j < transformed_groups.size(); ++j){
+        float* pairwise_energies = rotamer_groups[i]->CalculatePairwiseEnergies(transformed_groups[j],0.01);
+        if(pairwise_energies!=NULL){
+          if(i > j){
+            int i_size = rotamer_groups[i]->size();
+            int j_size = transformed_groups[j]->size();
+            float* inverted_energies = new float[i_size * j_size];
+            Invert(pairwise_energies,inverted_energies,i_size,j_size);
+            delete [] pairwise_energies;
+            Edge* edge = new Edge(graph->edges_.size(),
+                                  graph->nodes_[j],
+                                  graph->nodes_[i],
+                                  rotamer_groups[j]->size(),
+                                  rotamer_groups[i]->size(),
+                                  inverted_energies);
+            graph->nodes_[j]->AddEdge(edge);
+            graph->nodes_[i]->AddEdge(edge);
+            graph->edges_.push_back(edge);            
+            continue;
+          }
+
+          Edge* edge = new Edge(graph->edges_.size(),
+                                graph->nodes_[i],
+                                graph->nodes_[j],
+                                rotamer_groups[i]->size(),
+                                rotamer_groups[j]->size(),
+                                pairwise_energies);
+          graph->nodes_[i]->AddEdge(edge);
+          graph->nodes_[j]->AddEdge(edge);
+          graph->edges_.push_back(edge);          
+        }
+      }
+    }
+  }
+
+  return graph;
+}
+
+size_t Graph::GetNumActiveRotamers() const{
+  size_t num_rotamers = 0;
+  for(std::vector<Node*>::const_iterator i = nodes_.begin(); i != nodes_.end(); ++i){
+    if(!(*i)->IsActive()) continue;
+    num_rotamers += (*i)->GetNumActiveRotamers();
+  }
+  return num_rotamers;
+}
+
+size_t Graph::GetNumActiveEdges() const{
+  size_t num_edges = 0;
+  for(std::vector<Edge*>::const_iterator i = edges_.begin(); i != edges_.end(); ++i){
+    if((*i)->IsActive()) ++num_edges;
+  }
+  return num_edges; 
+}
+
+size_t Graph::GetNumActiveNodes() const{
+  size_t num_nodes = 0;
+  for(std::vector<Node*>::const_iterator i = nodes_.begin(); i != nodes_.end(); ++i){
+    if((*i)->IsActive()) ++num_nodes;
+  }
+  return num_nodes;
+}
+
+size_t Graph::GetNumRotamers() const{
+  size_t num_rotamers = 0;
+  for(std::vector<Node*>::const_iterator i = nodes_.begin(); i != nodes_.end(); ++i){
+    num_rotamers += (*i)->GetNumRotamers();
+  }
+  return num_rotamers;
+}
+
+void Graph::GetNumRotamers(std::vector<int>& num_rotamers) const{
+  num_rotamers.resize(nodes_.size());
+  for(uint i = 0; i < nodes_.size(); ++i){
+    num_rotamers[i] = nodes_[i]->GetNumRotamers();
+  }
+}
+
+void Graph::GetNumActiveRotamers(std::vector<int>& num_rotamers) const{
+  num_rotamers.resize(nodes_.size());
+  for(uint i = 0; i < nodes_.size(); ++i){
+    num_rotamers[i] = nodes_[i]->GetNumActiveRotamers();
+  }
+}
+
+
+void Graph::Prune(Real epsilon, bool consider_all_nodes){
+
+  //nodes/edges, where something happened
+  std::vector<bool> hot_edges(edges_.size(),true);
+  std::vector<bool> hot_nodes;
+  if(consider_all_nodes)hot_nodes.resize(nodes_.size(),true);   
+  else hot_nodes.resize(nodes_.size(),false);
+
+  bool something_happened = true;
+  while(something_happened){
+    something_happened = false;
+    //let's first do edge decomposition
+    for(uint i = 0; i < hot_edges.size(); ++i){
+      if(!hot_edges[i]) continue;
+      if(edges_[i]->Decompose(epsilon)){
+        //let's set the status hot to the nodes connected by the
+        //edge
+        hot_nodes[edges_[i]->GetNode1()->GetIndex()] = true;
+        hot_nodes[edges_[i]->GetNode2()->GetIndex()] = true;
+        something_happened = true;
+      }
+      //either nothing happened, or successfully decomposed...
+      //edge is not hot anymore
+      hot_edges[i] = false;
+    }
+    //let's do DEE
+    for(uint i = 0; i < hot_nodes.size(); ++i){
+      if(!hot_nodes[i]) continue;
+      if(nodes_[i]->DEE()){
+        //let's set the status hot to the edges, as well as other
+        //nodes connected to that node
+        for(Node::iterator j = nodes_[i]->active_edges_begin();
+            j != nodes_[i]->active_edges_end(); ++j){
+          Edge* current_edge = nodes_[i]->GetEdge(*j);
+          hot_edges[current_edge->GetIndex()] = true;
+          //one of the following connected node is the checked node
+          //itself... will be set to false again...
+          hot_nodes[current_edge->GetNode1()->GetIndex()] = true;
+          hot_nodes[current_edge->GetNode2()->GetIndex()] = true;
+        }
+        something_happened = true;
+      }
+      //either nothing happened, or successful DEE...
+      //node is not hot anymore
+      hot_nodes[i] = false;
+    }
+  }
+}
+
+void Graph::Reset(){
+  for(node_iterator i = nodes_begin(); i != nodes_end(); ++i){
+    (*i)->Reset();
+  }
+  for(edge_iterator i = edges_begin(); i != edges_end(); ++i){
+    (*i)->Reset();
+  }
+}
+
+std::vector<int> Graph::Solve(uint64_t max_complexity, Real initial_epsilon){
+
+  TreePtr t;
+  bool first_iteration = true;
+
+  while(true){
+    this->Prune(initial_epsilon,first_iteration);
+    t = TreePtr(new Tree(this));
+    if(t->GenerateTree(this) < max_complexity){
+      break;
+    }
+    first_iteration = false;
+    initial_epsilon *= 2;
+  }
+
+  std::vector<int> return_vec(t->GetNumNodes(),0);
+  t->Solve(this,return_vec);
+  //the indices are based on the active rotamers in the rotamer groups
+  //we have to map that
+  int actual_pos = 0;;
+  for(node_iterator i = this->nodes_begin(); i != this->nodes_end(); ++i, ++actual_pos){
+    return_vec[actual_pos] = (*i)->GetOverallIndex(return_vec[actual_pos]);
+  }
+  return return_vec;
+}
+
+void Graph::Invert(float* energies, float* inverted_energies, int i_size, int j_size){
+  float* e_ptr = energies;
+  for(int i = 0; i < i_size; ++i){
+    for(int j = 0; j < j_size; ++j){
+      inverted_energies[j*i_size+i] = *e_ptr;
+      ++e_ptr;
+    }
+  }
+}
+
+
+}}//ns
diff --git a/sidechain/src/graph.hh b/sidechain/src/graph.hh
new file mode 100644
index 0000000000000000000000000000000000000000..4a00db7dff313f0d58f866fd2e3f699b9ef8702f
--- /dev/null
+++ b/sidechain/src/graph.hh
@@ -0,0 +1,208 @@
+#ifndef PROMOD3_GRAPH_COMPONENTS_HH
+#define PROMOD3_GRAPH_COMPONENTS_HH
+
+#include <math.h>
+#include <vector>
+#include <limits.h>
+#include <ctime>
+#include <algorithm>
+
+#include <boost/shared_ptr.hpp>
+
+#include <promod3/sidechain/tetrahedral_polytope.hh>
+#include <promod3/sidechain/pairwise_terms.hh>
+#include <promod3/sidechain/particle.hh>
+#include <promod3/sidechain/frame.hh>
+#include <promod3/sidechain/rotamer_group.hh>
+#include <promod3/core/message.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+class Edge;
+class Node;
+class Graph;
+
+typedef boost::shared_ptr<Graph> GraphPtr;
+
+class Edge{
+
+public:
+  Edge(uint index, Node* node1, Node* node2, uint num_i, uint num_j, float* pairwise_energies_);
+
+  ~Edge();
+
+  void Reset();
+
+  void Deactivate();
+
+  bool IsActive() const { return active_; }
+
+  uint GetIndex() const { return index_; }
+
+  bool Decompose(Real thresh);
+
+  Node* GetNode1() const { return node1_; }
+
+  Node* GetNode2() const { return node2_; }
+
+  Node* GetOtherNode(Node* node);
+
+  //resolves the expression  min_x(EPair(idx1,x)-EPair(idx2,x))
+  //in the DEE formalism, where x only considers the active
+  //rotamers from the OTHER node than node_ptr
+  Real EMinDiff(const Node* node_ptr, uint idx1, uint idx2) const;
+
+  void FillActiveEnergies(float* pairwise_energies) const;
+
+private:
+  uint index_;
+  bool active_;
+  Node* node1_;
+  Node* node2_;
+  uint maxi_;
+  uint maxj_;
+  float* pairwise_energies_;
+};
+
+class Node{
+
+public:
+  Node(uint index,
+       uint num_rotamers,
+       float* internal_energies,
+       float* frame_energies);
+
+  ~Node();
+
+  void Reset();
+
+  void Deactivate();
+
+  bool IsActive() { return active_; }
+
+  uint GetIndex() { return index_; }
+
+  void AddEdge(Edge* edge);
+
+  Edge* GetEdge(uint index) const { return edges_.at(index); }
+
+  void RemoveFromActiveEdges(Edge* edge);
+
+  void AddValue(Real val);
+
+  void AddValue(uint node_idx, Real val);
+
+  bool DEE();
+
+  uint GetOverallIndex(uint active_index) const { return active_rotamers_.at(active_index); }
+
+  size_t GetNumActiveRotamers() const { return active_rotamers_.size(); }
+
+  size_t GetNumActiveEdges() const { return active_edges_.size(); }
+
+  size_t GetNumRotamers() const { return num_rotamers_; }
+
+  size_t GetNumEdges() const { return edges_.size(); }
+
+  float GetSelfEnergy(uint index) const { return self_energies_[index]; }
+
+  void FillActiveSelfEnergies(float* self_energies) const;
+
+  typedef std::vector<uint>::const_iterator const_iterator;
+  typedef std::vector<uint>::iterator iterator;
+  
+  iterator active_rotamers_begin() { return active_rotamers_.begin(); }
+  iterator active_rotamers_end() { return active_rotamers_.end(); }
+  iterator active_edges_begin() { return active_edges_.begin(); }
+  iterator active_edges_end() { return active_edges_.end(); }
+
+  const_iterator active_rotamers_begin() const { return active_rotamers_.begin(); }
+  const_iterator active_rotamers_end() const { return active_rotamers_.end(); }
+  const_iterator active_edges_begin() const { return active_edges_.begin(); }
+  const_iterator active_edges_end() const { return active_edges_.end(); }
+
+private:
+
+  bool active_;
+  uint index_;
+  uint num_rotamers_;
+  float* internal_energies_;
+  float* frame_energies_;
+  float* self_energies_;
+  std::vector<uint> active_rotamers_;
+  std::vector<uint> active_edges_;
+  std::vector<std::pair<uint,float> > sorted_active_rotamers_;
+  std::vector<Edge*> edges_;
+};
+
+class Graph{
+
+public:
+
+  ~Graph();
+
+  static GraphPtr CreateFromRRMList(const std::vector<RRMRotamerGroupPtr>& rotamer_groups,
+                                    const std::vector<geom::Transform>& rt_operators = std::vector<geom::Transform>()); 
+
+  static GraphPtr CreateFromFRMList(const std::vector<FRMRotamerGroupPtr>& rotamer_groups,
+                                    const std::vector<geom::Transform>& rt_operators = std::vector<geom::Transform>());
+
+  size_t GetNumActiveRotamers() const;
+
+  size_t GetNumActiveEdges() const;
+
+  size_t GetNumActiveNodes() const;
+
+  size_t GetNumNodes() const { return nodes_.size(); }
+
+  size_t GetNumEdges() const { return edges_.size(); }
+
+  size_t GetNumRotamers() const;
+
+  void GetNumRotamers(std::vector<int>& num_rotamers) const;
+
+  void GetNumActiveRotamers(std::vector<int>& num_rotamers) const;
+
+  void Prune(Real epsilon, bool consider_all_nodes = true);
+
+  void Reset();
+
+  std::vector<int> Solve(uint64_t max_complexity = std::numeric_limits<uint64_t>::max(),
+                         Real intial_epsilon = 0.02);
+
+  Node* GetNode(uint index) { return nodes_.at(index); }
+
+  Edge* GetEdge(uint index) { return edges_.at(index); }
+
+  typedef std::vector<Node*>::const_iterator const_node_iterator;
+  typedef std::vector<Node*>::iterator node_iterator;
+
+  typedef std::vector<Edge*>::const_iterator const_edge_iterator;
+  typedef std::vector<Edge*>::iterator edge_iterator;
+  
+  node_iterator nodes_begin() { return nodes_.begin(); }
+  node_iterator nodes_end() { return nodes_.end(); }
+  edge_iterator edges_begin() { return edges_.begin(); }
+  edge_iterator edges_end() { return edges_.end(); } 
+
+  const_node_iterator nodes_begin() const{ return nodes_.begin(); }
+  const_node_iterator nodes_end() const{ return nodes_.end(); }
+  const_edge_iterator edges_begin() const{ return edges_.begin(); }
+  const_edge_iterator edges_end() const{ return edges_.end(); } 
+
+private:
+  Graph() { }
+
+  Graph(const Graph& other) { }
+
+  static void Invert(float* energies, float* inverted_energies, 
+                     int i_size , int j_size);
+
+  std::vector<Node*> nodes_;
+  std::vector<Edge*> edges_;
+};
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/pairwise_terms.cc b/sidechain/src/pairwise_terms.cc
new file mode 100644
index 0000000000000000000000000000000000000000..cc07be0b9b8d169d2ea5b013c61c169d9ce7085f
--- /dev/null
+++ b/sidechain/src/pairwise_terms.cc
@@ -0,0 +1,38 @@
+#include <promod3/sidechain/pairwise_terms.hh>
+
+namespace promod3{ namespace sidechain{
+
+Real VDW(const geom::Vec3& pos1, const geom::Vec3& pos2, Real r1, Real r2, Real emin1, Real emin2){
+
+  Real e = sqrt(emin1*emin2);
+  Real d = geom::Distance(pos1, pos2);
+  Real rr = r1 + r2;
+  Real frac = d/rr;
+  //std::cerr<<"in vdw with parameters "<<d<<" "<<rr<<" "<<frac<<" "<<e<<std::endl;
+  if(frac >= 1.3333) return 0.0;
+  if(frac <= 0.8254) return 10.0;
+  if(frac < 1.1111){
+    if(frac < 1.0){
+      return 57.273*(1-frac);
+    }
+    return e * pow(10-9*frac,57.273/(9*e)) - e;
+  }
+  Real temp = 9*frac-10;
+  return e/4*temp*temp-e;
+}
+
+Real LinearClash(const geom::Vec3& pos1, const geom::Vec3& pos2,     
+                 Real r1, Real r2){
+  geom::Vec3 d=pos1-pos2;
+  Real distance_sqr=geom::Length2(d); 
+  Real rr=r1+r2;
+  if (distance_sqr>rr*rr) {
+    return 0.0;
+  }
+  if (distance_sqr<0.8254*0.8254*rr*rr) {
+    return 10.0;
+  }
+  return 57.273*(1.0-sqrt(distance_sqr)/rr);
+}
+
+}}//ns
diff --git a/sidechain/src/pairwise_terms.hh b/sidechain/src/pairwise_terms.hh
new file mode 100644
index 0000000000000000000000000000000000000000..b697bda2180929585eb17b5b0ec6db00cdd936b0
--- /dev/null
+++ b/sidechain/src/pairwise_terms.hh
@@ -0,0 +1,21 @@
+#ifndef PROMOD3_PAIRWISE_TERMS_HH
+#define PROMOD3_PAIRWISE_TERMS_HH
+
+#include <math.h>
+
+#include <ost/base.hh>
+#include <ost/geom/vecmat3_op.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+Real VDW(const geom::Vec3& pos1, const geom::Vec3& pos2, 
+         Real r1, Real r2, Real emin1, Real emin2);//pairwise function from SCWRL4
+
+Real LinearClash(const geom::Vec3& pos1, const geom::Vec3& pos2, //copied over from ost!
+                 Real r1, Real r2);                              //pairwise function from SCWRL3
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/particle.cc b/sidechain/src/particle.cc
new file mode 100644
index 0000000000000000000000000000000000000000..5ab577d950fc6ccefb6b194ddf1f0c8079988ab9
--- /dev/null
+++ b/sidechain/src/particle.cc
@@ -0,0 +1,25174 @@
+#include <promod3/sidechain/particle.hh>
+
+namespace{
+
+const float ENERGY_LOOKUP[] ={
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0278683228731,-0.0525471027412,
+-0.0597885904641,-0.0618815539392,-0.062477162946,-0.0626439861394,
+-0.0626899557107,-0.0627024128909,-0.0627057311744,-0.0627065996414,
+-0.0627068228611,-0.0627068791778,-0.0627068931171,-0.0627068965002,
+-0.0627068973049,-0.0627068974923,-0.0627068975351,-0.0627068975446,
+-0.0627068975467,-0.0627068975471,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.0627068975472,-0.0627068975472,-0.0627068975472,
+-0.0627068975472,-0.06270684954,-0.0627039338174,-0.0626965034239,
+-0.0626845583596,-0.0626680986244,-0.0626471242182,-0.0626216351412,
+-0.0625916313934,-0.0625571129746,-0.0625180798849,-0.0624745321244,
+-0.062426469693,-0.0623738925907,-0.0623168008176,-0.0622551943735,
+-0.0621890732586,-0.0621184374728,-0.0620432870161,-0.0619636218885,
+-0.06187944209,-0.0617907476207,-0.0616975384805,-0.0615998146694,
+-0.0614975761874,-0.0613908230345,-0.0612795552108,-0.0611637727161,
+-0.0610434755506,-0.0609186637143,-0.060789337207,-0.0606554960288,
+-0.0605171401798,-0.0603742696599,-0.0602268844691,-0.0600749846074,
+-0.0599185700748,-0.0597576408714,-0.0595921969971,-0.0594222384519,
+-0.0592477652358,-0.0590687773488,-0.058885274791,-0.0586972575622,
+-0.0585047256626,-0.0583076790921,-0.0581061178508,-0.0579000419385,
+-0.0576894513554,-0.0574743461014,-0.0572547261765,-0.0570305915807,
+-0.056801942314,-0.0565687783765,-0.056331099768,-0.0560889064887,
+-0.0558421985385,-0.0555909759175,-0.0553352386255,-0.0550749866627,
+-0.054810220029,-0.0545409387244,-0.0542671427489,-0.0539888321025,
+-0.0537060067853,-0.0534186667972,-0.0531268121382,-0.0528304428083,
+-0.0525295588075,-0.0522241601359,-0.0519142467934,-0.05159981878,
+-0.0512808760957,-0.0509574187405,-0.0506294467144,-0.0502969600175,
+-0.0499599586497,-0.049618442611,-0.0492724119014,-0.048921866521,
+-0.0485668064696,-0.0482072317474,-0.0478431423543,-0.0474745382903,
+-0.0471014195554,-0.0467237861497,-0.0463416380731,-0.0459549753255,
+-0.0455637979072,-0.0451681058179,-0.0447678990577,-0.0443631776267,
+-0.0439539415248,-0.043540190752,-0.0431219253083,-0.0426991451937,
+-0.0422718504083,-0.041840040952,-0.0414037168248,-0.0409628780267,
+-0.0405175245577,-0.0400676564178,-0.0396132736071,-0.0391543761255,
+-0.038690963973,-0.0382230371496,-0.0377505956554,-0.0372736394902,
+-0.0367921686542,-0.0363061831473,-0.0358156829695,-0.0353206681209,
+-0.0348211386013,-0.0343170944109,-0.0338085355496,-0.0332954620174,
+-0.0327778738143,-0.0322557709404,-0.0317291533955,-0.0311980211798,
+-0.0306623742932,-0.0301222127357,-0.0295775365074,-0.0290283456081,
+-0.028474640038,-0.027916419797,-0.0273536848851,-0.0267864353024,
+-0.0262146710487,-0.0256383921242,-0.0250575985288,-0.0244722902625,
+-0.0238824673253,-0.0232881297173,-0.0226892774383,-0.0220859104885,
+-0.0214780288678,-0.0208656325762,-0.0202487216138,-0.0196272959804,
+-0.0190013556762,-0.0183709007011,-0.0177359310551,-0.0170964467382,
+-0.0164524477505,-0.0158039340918,-0.0151509057623,-0.0144933627619,
+-0.0138313050907,-0.0131647327485,-0.0124936457355,-0.0118180440515,
+-0.0111379276967,-0.0104532966711,-0.00976415097449,-0.00907049060705,
+-0.00837231556872,-0.00766962585951,-0.00696242147942,-0.00625070242845,
+-0.0055344687066,-0.00481372031386,-0.00408845725025,-0.00335867951575,
+-0.00262438711037,-0.00188558003411,-0.00114225828697,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0302415511406,-0.0646738977191,
+-0.0793764013306,-0.0855887057312,-0.0881854962601,-0.0892590543335,
+-0.0896978837484,-0.0898751882805,-0.0899459771834,-0.0899738957933,
+-0.0899847691117,-0.089988949539,-0.0899905355779,-0.089991129158,
+-0.0899913482105,-0.0899914278894,-0.0899914564444,-0.0899914665222,
+-0.0899914700234,-0.08999147122,-0.0899914716223,-0.0899914717551,
+-0.0899914717983,-0.089991471812,-0.0899914718163,-0.0899914718176,
+-0.089991471818,-0.0899914718181,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914718182,-0.0899914718182,-0.0899914718182,
+-0.0899914718182,-0.0899914029224,-0.0899872185315,-0.0899765550787,
+-0.0899594125639,-0.089935790987,-0.0899056903481,-0.0898691106473,
+-0.0898260518844,-0.0897765140595,-0.0897204971726,-0.0896580012238,
+-0.0895890262129,-0.08951357214,-0.0894316390051,-0.0893432268081,
+-0.0892483355492,-0.0891469652283,-0.0890391158454,-0.0889247874004,
+-0.0888039798935,-0.0886766933246,-0.0885429276936,-0.0884026830007,
+-0.0882559592457,-0.0881027564287,-0.0879430745498,-0.0877769136088,
+-0.0876042736058,-0.0874251545408,-0.0872395564138,-0.0870474792248,
+-0.0868489229738,-0.0866438876608,-0.0864323732858,-0.0862143798487,
+-0.0859899073497,-0.0857589557887,-0.0855215251656,-0.0852776154806,
+-0.0850272267335,-0.0847703589245,-0.0845070120534,-0.0842371861203,
+-0.0839608811253,-0.0836780970682,-0.0833888339491,-0.083093091768,
+-0.0827908705249,-0.0824821702198,-0.0821669908527,-0.0818453324236,
+-0.0815171949325,-0.0811825783793,-0.0808414827642,-0.0804939080871,
+-0.0801398543479,-0.0797793215468,-0.0794123096836,-0.0790388187585,
+-0.0786588487713,-0.0782723997221,-0.0778794716109,-0.0774800644378,
+-0.0770741782026,-0.0766618129054,-0.0762429685462,-0.075817645125,
+-0.0753858426418,-0.0749475610965,-0.0745028004893,-0.0740515608201,
+-0.0735938420889,-0.0731296442956,-0.0726589674404,-0.0721818115231,
+-0.0716981765439,-0.0712080625026,-0.0707114693993,-0.0702083972341,
+-0.0696988460068,-0.0691828157175,-0.0686603063662,-0.0681313179529,
+-0.0675958504776,-0.0670539039403,-0.066505478341,-0.0659505736797,
+-0.0653891899564,-0.064821327171,-0.0642469853237,-0.0636661644144,
+-0.063078864443,-0.0624850854097,-0.0618848273143,-0.0612780901569,
+-0.0606648739376,-0.0600451786562,-0.0594190043128,-0.0587863509074,
+-0.05814721844,-0.0575016069106,-0.0568495163192,-0.0561909466658,
+-0.0555258979504,-0.054854370173,-0.0541763633336,-0.0534918774321,
+-0.0528009124687,-0.0521034684432,-0.0513995453558,-0.0506891432063,
+-0.0499722619949,-0.0492489017214,-0.0485190623859,-0.0477827439885,
+-0.047039946529,-0.0462906700075,-0.045534914424,-0.0447726797785,
+-0.044003966071,-0.0432287733015,-0.04244710147,-0.0416589505765,
+-0.0408643206209,-0.0400632116034,-0.0392556235239,-0.0384415563823,
+-0.0376210101788,-0.0367939849132,-0.0359604805856,-0.0351204971961,
+-0.0342740347445,-0.0334210932309,-0.0325616726553,-0.0316957730177,
+-0.0308233943181,-0.0299445365565,-0.0290591997329,-0.0281673838473,
+-0.0272690888997,-0.0263643148901,-0.0254530618185,-0.0245353296848,
+-0.0236111184892,-0.0226804282315,-0.0217432589119,-0.0207996105302,
+-0.0198494830866,-0.0188928765809,-0.0179297910132,-0.0169602263835,
+-0.0159841826918,-0.0150016599382,-0.0140126581225,-0.0130171772448,
+-0.012015217305,-0.0110067783033,-0.00999186023961,-0.00897046311389,
+-0.00794258692615,-0.00690823167642,-0.00586739736467,-0.00482008399093,
+-0.00376629155517,-0.00270602005741,-0.00163926949765,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0313503322594,-0.0712305354831,
+-0.0912471081002,-0.101208603338,-0.106122990763,-0.108525850229,
+-0.109689981251,-0.110248691166,-0.110514258316,-0.110639242172,
+-0.110697467063,-0.110724309223,-0.110736551271,-0.110742073151,
+-0.110744535666,-0.110745621059,-0.110746093732,-0.110746297036,
+-0.11074638337,-0.110746419551,-0.11074643451,-0.110746440608,
+-0.110746443059,-0.110746444029,-0.110746444407,-0.110746444552,
+-0.110746444606,-0.110746444627,-0.110746444634,-0.110746444637,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746444638,-0.110746444638,-0.110746444638,
+-0.110746444638,-0.110746359853,-0.110741210405,-0.110728087611,
+-0.110706991473,-0.110677921989,-0.110640879159,-0.110595862985,
+-0.110542873465,-0.110481910599,-0.110412974388,-0.110336064832,
+-0.110251181931,-0.110158325684,-0.110057496092,-0.109948693155,
+-0.109831916872,-0.109707167244,-0.109574444271,-0.109433747952,
+-0.109285078288,-0.109128435279,-0.108963818924,-0.108791229224,
+-0.108610666179,-0.108422129788,-0.108225620052,-0.108021136971,
+-0.107808680544,-0.107588250772,-0.107359847655,-0.107123471192,
+-0.106879121384,-0.106626798231,-0.106366501732,-0.106098231888,
+-0.105821988699,-0.105537772164,-0.105245582284,-0.104945419059,
+-0.104637282488,-0.104321172572,-0.103997089311,-0.103665032704,
+-0.103325002752,-0.102976999455,-0.102621022813,-0.102257072825,
+-0.101885149491,-0.101505252813,-0.101117382789,-0.100721539419,
+-0.100317722705,-0.0999059326448,-0.0994861692395,-0.0990584324889,
+-0.0986227223929,-0.0981790389517,-0.097727382165,-0.0972677520331,
+-0.0968001485558,-0.0963245717332,-0.0958410215652,-0.095349498052,
+-0.0948500011934,-0.0943425309894,-0.0938270874402,-0.0933036705455,
+-0.0927722803056,-0.0922329167203,-0.0916855797897,-0.0911302695138,
+-0.0905669858926,-0.089995728926,-0.089416498614,-0.0888292949568,
+-0.0882341179542,-0.0876309676063,-0.087019843913,-0.0864007468744,
+-0.0857736764905,-0.0851386327613,-0.0844956156867,-0.0838446252668,
+-0.0831856615015,-0.082518724391,-0.0818438139351,-0.0811609301338,
+-0.0804700729873,-0.0797712424954,-0.0790644386581,-0.0783496614756,
+-0.0776269109477,-0.0768961870744,-0.0761574898559,-0.075410819292,
+-0.0746561753828,-0.0738935581282,-0.0731229675283,-0.0723444035831,
+-0.0715578662925,-0.0707633556567,-0.0699608716754,-0.0691504143489,
+-0.068331983677,-0.0675055796598,-0.0666712022973,-0.0658288515894,
+-0.0649785275362,-0.0641202301377,-0.0632539593938,-0.0623797153046,
+-0.0614974978701,-0.0606073070902,-0.059709142965,-0.0588030054945,
+-0.0578888946786,-0.0569668105174,-0.0560367530109,-0.0550987221591,
+-0.0541527179619,-0.0531987404194,-0.0522367895315,-0.0512668652983,
+-0.0502889677198,-0.049303096796,-0.0483092525268,-0.0473074349123,
+-0.0462976439525,-0.0452798796473,-0.0442541419968,-0.0432204310009,
+-0.0421787466598,-0.0411290889733,-0.0400714579415,-0.0390058535643,
+-0.0379322758418,-0.036850724774,-0.0357612003608,-0.0346637026023,
+-0.0335582314985,-0.0324447870494,-0.0313233692549,-0.0301939781151,
+-0.0290566136299,-0.0279112757994,-0.0267579646236,-0.0255966801025,
+-0.024427422236,-0.0232501910242,-0.0220649864671,-0.0208718085646,
+-0.0196706573168,-0.0184615327237,-0.0172444347852,-0.0160193635014,
+-0.0147863188723,-0.0135453008978,-0.012296309578,-0.0110393449129,
+-0.00977440690245,-0.00850149554667,-0.00722061084555,-0.0059317527991,
+-0.00463492140732,-0.00333011667021,-0.00201733858776,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.032030618658,-0.0755628820458,
+-0.0995990085302,-0.112773418229,-0.119940322989,-0.123809184585,
+-0.125881233367,-0.126981993687,-0.12756191468,-0.127864837319,
+-0.128021686089,-0.12810217064,-0.128143088898,-0.128163694322,
+-0.128173969455,-0.128179041832,-0.128181519967,-0.12818271779,
+-0.128183290421,-0.128183561081,-0.128183687521,-0.128183745879,
+-0.128183772479,-0.128183784449,-0.128183789764,-0.128183792092,
+-0.128183793097,-0.128183793525,-0.128183793704,-0.128183793778,
+-0.128183793808,-0.12818379382,-0.128183793825,-0.128183793826,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183793827,-0.128183793827,-0.128183793827,
+-0.128183793827,-0.128183695692,-0.128177735449,-0.128162546433,
+-0.128138128647,-0.128104482088,-0.128061606757,-0.128009502655,
+-0.127948169782,-0.127877608136,-0.127797817719,-0.12770879853,
+-0.127610550569,-0.127503073837,-0.127386368333,-0.127260434058,
+-0.12712527101,-0.126980879191,-0.1268272586,-0.126664409238,
+-0.126492331104,-0.126311024198,-0.12612048852,-0.125920724071,
+-0.12571173085,-0.125493508857,-0.125266058093,-0.125029378557,
+-0.124783470249,-0.12452833317,-0.124263967318,-0.123990372696,
+-0.123707549301,-0.123415497135,-0.123114216197,-0.122803706487,
+-0.122483968006,-0.122155000753,-0.121816804728,-0.121469379931,
+-0.121112726363,-0.120746844023,-0.120371732912,-0.119987393028,
+-0.119593824373,-0.119191026947,-0.118779000748,-0.118357745778,
+-0.117927262037,-0.117487549523,-0.117038608238,-0.116580438181,
+-0.116113039353,-0.115636411752,-0.11515055538,-0.114655470237,
+-0.114151156321,-0.113637613634,-0.113114842175,-0.112582841945,
+-0.112041612943,-0.111491155169,-0.110931468623,-0.110362553306,
+-0.109784409217,-0.109197036356,-0.108600434724,-0.10799460432,
+-0.107379545144,-0.106755257197,-0.106121740478,-0.105478994987,
+-0.104827020724,-0.10416581769,-0.103495385884,-0.102815725306,
+-0.102126835957,-0.101428717836,-0.100721370943,-0.100004795279,
+-0.0992789908426,-0.0985439576347,-0.0977996956552,-0.0970462049039,
+-0.096283485381,-0.0955115370863,-0.0947303600199,-0.0939399541819,
+-0.0931403195721,-0.0923314561907,-0.0915133640375,-0.0906860431127,
+-0.0898494934161,-0.0890037149479,-0.0881487077079,-0.0872844716962,
+-0.0864110069129,-0.0855283133578,-0.0846363910311,-0.0837352399326,
+-0.0828248600625,-0.0819052514206,-0.0809764140071,-0.0800383478218,
+-0.0790910528649,-0.0781345291362,-0.0771687766359,-0.0761937953638,
+-0.0752095853201,-0.0742161465046,-0.0732134789175,-0.0722015825586,
+-0.0711804574281,-0.0701501035258,-0.0691105208519,-0.0680617094062,
+-0.0670036691889,-0.0659364001999,-0.0648599024391,-0.0637741759067,
+-0.0626792206025,-0.0615750365267,-0.0604616236791,-0.0593389820599,
+-0.0582071116689,-0.0570660125063,-0.0559156845719,-0.0547561278659,
+-0.0535873423882,-0.0524093281387,-0.0512220851176,-0.0500256133247,
+-0.0488199127602,-0.0476049834239,-0.046380825316,-0.0451474384364,
+-0.043904822785,-0.042652978362,-0.0413919051672,-0.0401216032008,
+-0.0388420724627,-0.0375533129528,-0.0362553246713,-0.034948107618,
+-0.0336316617931,-0.0323059871965,-0.0309710838281,-0.0296269516881,
+-0.0282735907764,-0.0269110010929,-0.0255391826378,-0.0241581354109,
+-0.0227678594124,-0.0213683546422,-0.0199596211002,-0.0185416587866,
+-0.0171144677013,-0.0156780478442,-0.0142323992155,-0.0127775218151,
+-0.0113134156429,-0.00984008069911,-0.00835751698357,-0.00686572449634,
+-0.00536470323741,-0.00385445320678,-0.00233497440445,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0325037846801,-0.0787223205423,
+-0.105948161513,-0.121881500124,-0.131143859382,-0.136491375567,
+-0.139557019453,-0.14130184051,-0.142287568339,-0.142840223353,
+-0.14314765795,-0.143317310259,-0.143410159469,-0.143460545132,
+-0.143487649585,-0.143502099629,-0.143509732321,-0.143513725754,
+-0.143515794702,-0.143516855802,-0.143517394355,-0.143517664766,
+-0.143517799039,-0.143517864951,-0.143517896925,-0.143517912246,
+-0.143517919495,-0.14351792288,-0.14351792444,-0.143517925148,
+-0.143517925465,-0.143517925605,-0.143517925665,-0.143517925691,
+-0.143517925702,-0.143517925707,-0.143517925708,-0.143517925709,
+-0.143517925709,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.14351792571,-0.14351792571,-0.14351792571,
+-0.14351792571,-0.143517815835,-0.143511142591,-0.143494136572,
+-0.14346679778,-0.143429126213,-0.143381121873,-0.143322784758,
+-0.14325411487,-0.143175112207,-0.143085776771,-0.14298610856,
+-0.142876107576,-0.142755773818,-0.142625107285,-0.142484107979,
+-0.142332775898,-0.142171111044,-0.141999113416,-0.141816783013,
+-0.141624119837,-0.141421123887,-0.141207795162,-0.140984133664,
+-0.140750139392,-0.140505812345,-0.140251152525,-0.139986159931,
+-0.139710834562,-0.13942517642,-0.139129185504,-0.138822861813,
+-0.138506205349,-0.138179216111,-0.137841894099,-0.137494239312,
+-0.137136251752,-0.136767931418,-0.13638927831,-0.136000292427,
+-0.135600973771,-0.135191322341,-0.134771338137,-0.134341021158,
+-0.133900371406,-0.13344938888,-0.13298807358,-0.132516425506,
+-0.132034444658,-0.131542131035,-0.131039484639,-0.130526505469,
+-0.130003193525,-0.129469548807,-0.128925571315,-0.128371261049,
+-0.127806618009,-0.127231642194,-0.126646333606,-0.126050692244,
+-0.125444718108,-0.124828411198,-0.124201771514,-0.123564799056,
+-0.122917493824,-0.122259855818,-0.121591885038,-0.120913581484,
+-0.120224945156,-0.119525976054,-0.118816674178,-0.118097039528,
+-0.117367072104,-0.116626771906,-0.115876138934,-0.115115173188,
+-0.114343874668,-0.113562243374,-0.112770279306,-0.111967982464,
+-0.111155352848,-0.110332390458,-0.109499095294,-0.108655467356,
+-0.107801506644,-0.106937213158,-0.106062586898,-0.105177627864,
+-0.104282336057,-0.103376711475,-0.102460754119,-0.101534463989,
+-0.100597841085,-0.0996508854073,-0.0986935969554,-0.0977259757296,
+-0.0967480217298,-0.0957597349559,-0.0947611154081,-0.0937521630863,
+-0.0927328779905,-0.0917032601207,-0.0906633094769,-0.0896130260591,
+-0.0885524098673,-0.0874814609016,-0.0864001791618,-0.0853085646481,
+-0.0842066173603,-0.0830943372986,-0.0819717244628,-0.0808387788531,
+-0.0796955004694,-0.0785418893117,-0.07737794538,-0.0762036686743,
+-0.0750190591946,-0.0738241169409,-0.0726188419132,-0.0714032341115,
+-0.0701772935359,-0.0689410201862,-0.0676944140626,-0.0664374751649,
+-0.0651702034933,-0.0638925990476,-0.062604661828,-0.0613063918344,
+-0.0599977890668,-0.0586788535252,-0.0573495852096,-0.05600998412,
+-0.0546600502564,-0.0532997836189,-0.0519291842073,-0.0505482520217,
+-0.0491569870622,-0.0477553893286,-0.0463434588211,-0.0449211955396,
+-0.043488599484,-0.0420456706545,-0.040592409051,-0.0391288146735,
+-0.037654887522,-0.0361706275965,-0.034676034897,-0.0331711094235,
+-0.0316558511761,-0.0301302601546,-0.0285943363592,-0.0270480797897,
+-0.0254914904463,-0.0239245683288,-0.0223473134374,-0.020759725772,
+-0.0191618053326,-0.0175535521192,-0.0159349661318,-0.0143060473704,
+-0.012666795835,-0.0110172115256,-0.00935729444223,-0.00768704458487,
+-0.00600646195351,-0.00431554654816,-0.00261429836881,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0328579281638,-0.0811681357082,
+-0.111014017157,-0.129343302741,-0.140531436589,-0.147318058686,
+-0.151408441068,-0.153857594521,-0.155314175688,-0.156174459479,
+-0.156678953155,-0.156972644997,-0.15714233721,-0.157239628461,
+-0.157294967492,-0.157326187646,-0.157343653094,-0.157353339358,
+-0.157358663514,-0.157361563149,-0.15736312741,-0.157363963047,
+-0.157364404953,-0.157364636215,-0.157364755941,-0.157364817235,
+-0.157364848255,-0.157364863767,-0.157364871428,-0.157364875164,
+-0.157364876961,-0.157364877814,-0.157364878213,-0.157364878397,
+-0.157364878481,-0.157364878518,-0.157364878535,-0.157364878542,
+-0.157364878545,-0.157364878546,-0.157364878546,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364878547,-0.157364878547,-0.157364878547,
+-0.157364878547,-0.157364758071,-0.157357440976,-0.157338794176,
+-0.157308817672,-0.157267511462,-0.157214875548,-0.157150909929,
+-0.157075614606,-0.156988989577,-0.156891034844,-0.156781750407,
+-0.156661136264,-0.156529192417,-0.156385918865,-0.156231315608,
+-0.156065382646,-0.15588811998,-0.155699527609,-0.155499605533,
+-0.155288353752,-0.155065772267,-0.154831861077,-0.154586620182,
+-0.154330049583,-0.154062149278,-0.153782919269,-0.153492359556,
+-0.153190470137,-0.152877251014,-0.152552702186,-0.152216823653,
+-0.151869615415,-0.151511077473,-0.151141209826,-0.150760012474,
+-0.150367485418,-0.149963628656,-0.14954844219,-0.149121926019,
+-0.148684080144,-0.148234904564,-0.147774399279,-0.147302564289,
+-0.146819399594,-0.146324905195,-0.145819081091,-0.145301927282,
+-0.144773443769,-0.14423363055,-0.143682487627,-0.143120015,
+-0.142546212667,-0.14196108063,-0.141364618888,-0.140756827441,
+-0.140137706289,-0.139507255433,-0.138865474872,-0.138212364606,
+-0.137547924636,-0.136872154961,-0.136185055581,-0.135486626496,
+-0.134776867706,-0.134055779212,-0.133323361013,-0.132579613109,
+-0.131824535501,-0.131058128187,-0.130280391169,-0.129491324447,
+-0.128690928019,-0.127879201887,-0.12705614605,-0.126221760508,
+-0.125376045262,-0.12451900031,-0.123650625654,-0.122770921294,
+-0.121879887228,-0.120977523458,-0.120063829983,-0.119138806803,
+-0.118202453919,-0.11725477133,-0.116295759036,-0.115325417037,
+-0.114343745333,-0.113350743925,-0.112346412812,-0.111330751994,
+-0.110303761472,-0.109265441245,-0.108215791313,-0.107154811676,
+-0.106082502334,-0.104998863288,-0.103903894537,-0.102797596082,
+-0.101679967921,-0.100551010056,-0.0994107224859,-0.0982591052112,
+-0.0970961582317,-0.0959218815475,-0.0947362751585,-0.0935393390648,
+-0.0923310732663,-0.0911114777631,-0.0898805525551,-0.0886382976424,
+-0.087384713025,-0.0861197987028,-0.0848435546758,-0.0835559809441,
+-0.0822570775077,-0.0809468443665,-0.0796252815205,-0.0782923889698,
+-0.0769481667143,-0.0755926147541,-0.0742257330892,-0.0728475217195,
+-0.0714579806451,-0.0700571098659,-0.0686449093819,-0.0672213791932,
+-0.0657865192998,-0.0643403297016,-0.0628828103987,-0.061413961391,
+-0.0599337826785,-0.0584422742613,-0.0569394361394,-0.0554252683127,
+-0.0538997707813,-0.0523629435451,-0.0508147866042,-0.0492552999585,
+-0.0476844836081,-0.0461023375529,-0.044508861793,-0.0429040563283,
+-0.0412879211589,-0.0396604562847,-0.0380216617058,-0.0363715374221,
+-0.0347100834337,-0.0330372997405,-0.0313531863426,-0.02965774324,
+-0.0279509704325,-0.0262328679204,-0.0245034357035,-0.0227626737818,
+-0.0210105821554,-0.0192471608242,-0.0174724097883,-0.0156863290477,
+-0.0138889186023,-0.0120801784521,-0.0102601085972,-0.00842870903755,
+-0.00658597977315,-0.004731920804,-0.00286653213011,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0331361231147,-0.0831393300326,
+-0.115193061617,-0.13562798024,-0.148582494034,-0.156747589255,
+-0.161863570929,-0.165049656597,-0.167021521578,-0.168234116904,
+-0.168974912517,-0.169424429831,-0.169695310747,-0.16985738326,
+-0.169953644325,-0.170010387,-0.170043575701,-0.170062832809,
+-0.17007391452,-0.170080237578,-0.1700838139,-0.170085818437,
+-0.170086931533,-0.170087543686,-0.170087877001,-0.170088056628,
+-0.170088152403,-0.170088202909,-0.17008822924,-0.170088242806,
+-0.170088249709,-0.170088253178,-0.170088254898,-0.170088255739,
+-0.170088256145,-0.170088256337,-0.170088256427,-0.170088256469,
+-0.170088256488,-0.170088256496,-0.1700882565,-0.170088256501,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088256502,-0.170088256502,-0.170088256502,
+-0.170088256502,-0.170088126286,-0.170080217584,-0.17006006314,
+-0.170027662953,-0.169983017025,-0.169926125354,-0.169856987941,
+-0.169775604786,-0.169681975889,-0.169576101249,-0.169457980868,
+-0.169327614744,-0.169185002878,-0.16903014527,-0.16886304192,
+-0.168683692828,-0.168492097993,-0.168288257417,-0.168072171098,
+-0.167843839037,-0.167603261234,-0.167350437689,-0.167085368401,
+-0.166808053372,-0.1665184926,-0.166216686086,-0.16590263383,
+-0.165576335832,-0.165237792091,-0.164887002609,-0.164523967384,
+-0.164148686417,-0.163761159708,-0.163361387257,-0.162949369064,
+-0.162525105128,-0.162088595451,-0.161639840031,-0.161178838869,
+-0.160705591965,-0.160220099319,-0.15972236093,-0.1592123768,
+-0.158690146927,-0.158155671312,-0.157608949955,-0.157049982856,
+-0.156478770014,-0.155895311431,-0.155299607105,-0.154691657037,
+-0.154071461227,-0.153439019675,-0.152794332381,-0.152137399344,
+-0.151468220566,-0.150786796045,-0.150093125782,-0.149387209777,
+-0.14866904803,-0.14793864054,-0.147195987309,-0.146441088335,
+-0.145673943619,-0.144894553161,-0.144102916961,-0.143299035018,
+-0.142482907334,-0.141654533907,-0.140813914738,-0.139961049827,
+-0.139095939174,-0.138218582779,-0.137328980641,-0.136427132762,
+-0.13551303914,-0.134586699776,-0.13364811467,-0.132697283821,
+-0.131734207231,-0.130758884898,-0.129771316824,-0.128771503007,
+-0.127759443448,-0.126735138147,-0.125698587103,-0.124649790318,
+-0.12358874779,-0.12251545952,-0.121429925508,-0.120332145754,
+-0.119222120258,-0.118099849019,-0.116965332038,-0.115818569316,
+-0.114659560851,-0.113488306644,-0.112304806694,-0.111109061003,
+-0.109901069569,-0.108680832393,-0.107448349476,-0.106203620815,
+-0.104946646413,-0.103677426269,-0.102395960382,-0.101102248754,
+-0.0997962913828,-0.0984780882698,-0.0971476394146,-0.0958049448173,
+-0.0944500044778,-0.0930828183961,-0.0917033865723,-0.0903117090064,
+-0.0889077856982,-0.087491616648,-0.0860632018555,-0.0846225413209,
+-0.0831696350442,-0.0817044830252,-0.0802270852642,-0.078737441761,
+-0.0772355525156,-0.075721417528,-0.0741950367983,-0.0726564103265,
+-0.0711055381124,-0.0695424201563,-0.0679670564579,-0.0663794470174,
+-0.0647795918348,-0.06316749091,-0.061543144243,-0.0599065518339,
+-0.0582577136826,-0.0565966297891,-0.0549233001535,-0.0532377247758,
+-0.0515399036559,-0.0498298367938,-0.0481075241896,-0.0463729658432,
+-0.0446261617546,-0.0428671119239,-0.0410958163511,-0.039312275036,
+-0.0375164879788,-0.0357084551795,-0.033888176638,-0.0320556523544,
+-0.0302108823285,-0.0283538665606,-0.0264846050504,-0.0246030977982,
+-0.0227093448037,-0.0208033460671,-0.0188851015883,-0.0169546113674,
+-0.0150118754043,-0.0130568936991,-0.0110896662517,-0.00911019306216,
+-0.00711847413045,-0.00511450945658,-0.00309829904055,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0333623011924,-0.0847749209064,
+-0.11872604422,-0.141031518416,-0.155609116095,-0.165085001944,
+-0.17121066338,-0.175148186138,-0.177664502418,-0.179263000032,
+-0.180272237088,-0.180905429566,-0.181300126321,-0.181544524117,
+-0.181694822465,-0.181786602454,-0.181842242634,-0.181875722338,
+-0.181895713076,-0.181907555133,-0.181914512883,-0.181918566482,
+-0.181920907608,-0.181922247582,-0.181923007427,-0.181923434178,
+-0.181923671479,-0.181923802081,-0.181923873196,-0.181923911494,
+-0.181923931883,-0.181923942609,-0.181923948183,-0.181923951042,
+-0.18192395249,-0.181923953212,-0.181923953568,-0.18192395374,
+-0.181923953822,-0.181923953861,-0.181923953878,-0.181923953887,
+-0.18192395389,-0.181923953892,-0.181923953892,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923953893,-0.181923953893,-0.181923953893,
+-0.181923953893,-0.181923814615,-0.181915355581,-0.181893798677,
+-0.181859143904,-0.18181139126,-0.181750540747,-0.181676592364,
+-0.181589546112,-0.181489401989,-0.181376159997,-0.181249820135,
+-0.181110382404,-0.180957846802,-0.180792213331,-0.18061348199,
+-0.180421652779,-0.180216725699,-0.179998700748,-0.179767577928,
+-0.179523357239,-0.179266038679,-0.17899562225,-0.178712107951,
+-0.178415495782,-0.178105785743,-0.177782977835,-0.177447072057,
+-0.177098068409,-0.176735966891,-0.176360767504,-0.175972470247,
+-0.17557107512,-0.175156582123,-0.174728991257,-0.17428830252,
+-0.173834515914,-0.173367631439,-0.172887649093,-0.172394568878,
+-0.171888390793,-0.171369114838,-0.170836741014,-0.170291269319,
+-0.169732699755,-0.169161032321,-0.168576267018,-0.167978403844,
+-0.167367442801,-0.166743383888,-0.166106227106,-0.165455972453,
+-0.164792619931,-0.164116169539,-0.163426621277,-0.162723975146,
+-0.162008231145,-0.161279389274,-0.160537449533,-0.159782411922,
+-0.159014276442,-0.158233043092,-0.157438711872,-0.156631282783,
+-0.155810755823,-0.154977130994,-0.154130408296,-0.153270587727,
+-0.152397669289,-0.15151165298,-0.150612538802,-0.149700326755,
+-0.148775016837,-0.14783660905,-0.146885103393,-0.145920499867,
+-0.14494279847,-0.143951999204,-0.142948102068,-0.141931107062,
+-0.140901014187,-0.139857823441,-0.138801534826,-0.137732148341,
+-0.136649663987,-0.135554081763,-0.134445401668,-0.133323623705,
+-0.132188747871,-0.131040774168,-0.129879702594,-0.128705533152,
+-0.127518265839,-0.126317900656,-0.125104437604,-0.123877876682,
+-0.122638217891,-0.121385461229,-0.120119606698,-0.118840654297,
+-0.117548604026,-0.116243455886,-0.114925209875,-0.113593865995,
+-0.112249424245,-0.110891884626,-0.109521247137,-0.108137511777,
+-0.106740678549,-0.10533074745,-0.103907718482,-0.102471591643,
+-0.101022366935,-0.0995600443578,-0.0980846239104,-0.0965961055932,
+-0.0950944894062,-0.0935797753495,-0.092051963423,-0.0905110536267,
+-0.0889570459607,-0.087389940425,-0.0858097370194,-0.0842164357441,
+-0.0826100365991,-0.0809905395842,-0.0793579446997,-0.0777122519453,
+-0.0760534613212,-0.0743815728273,-0.0726965864637,-0.0709985022303,
+-0.0692873201272,-0.0675630401542,-0.0658256623116,-0.0640751865991,
+-0.0623116130169,-0.0605349415649,-0.0587451722432,-0.0569423050517,
+-0.0551263399905,-0.0532972770594,-0.0514551162587,-0.0495998575881,
+-0.0477315010478,-0.0458500466378,-0.0439554943579,-0.0420478442083,
+-0.040127096189,-0.0381932502999,-0.036246306541,-0.0342862649124,
+-0.0323131254139,-0.0303268880458,-0.0283275528079,-0.0263151197002,
+-0.0242895887227,-0.0222509598755,-0.0201992331585,-0.0181344085718,
+-0.0160564861153,-0.013965465789,-0.011861347593,-0.00974413152722,
+-0.00761381759168,-0.00547040578637,-0.00331389611129,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0335509812857,-0.086162311427,
+-0.121769543396,-0.145752452101,-0.161826223429,-0.172544663871,
+-0.179654945337,-0.184346585151,-0.187425404364,-0.189434505988,
+-0.190738008212,-0.191578715966,-0.192117643183,-0.192460957827,
+-0.192678254885,-0.192814880911,-0.192900200019,-0.192953105884,
+-0.192985675556,-0.1930055767,-0.193017643618,-0.193024902372,
+-0.193029233128,-0.193031795159,-0.193033297614,-0.193034170758,
+-0.19303467345,-0.19303496007,-0.193035121859,-0.193035212239,
+-0.193035262186,-0.193035289481,-0.193035304224,-0.193035312092,
+-0.193035316239,-0.193035318396,-0.193035319502,-0.193035320062,
+-0.193035320341,-0.193035320478,-0.193035320544,-0.193035320576,
+-0.19303532059,-0.193035320597,-0.1930353206,-0.193035320601,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035320602,-0.193035320602,-0.193035320602,
+-0.193035320602,-0.193035172818,-0.193026197132,-0.193003323597,
+-0.192966552214,-0.192915882984,-0.192851315905,-0.192772850977,
+-0.192680488202,-0.192574227578,-0.192454069107,-0.192320012787,
+-0.192172058619,-0.192010206603,-0.191834456738,-0.191644809026,
+-0.191441263465,-0.191223820056,-0.190992478799,-0.190747239694,
+-0.190488102741,-0.190215067939,-0.18992813529,-0.189627304792,
+-0.189312576446,-0.188983950252,-0.188641426209,-0.188285004319,
+-0.18791468458,-0.187530466993,-0.187132351558,-0.186720338275,
+-0.186294427144,-0.185854618164,-0.185400911337,-0.184933306661,
+-0.184451804137,-0.183956403765,-0.183447105545,-0.182923909476,
+-0.182386815559,-0.181835823795,-0.181270934182,-0.180692146721,
+-0.180099461411,-0.179492878254,-0.178872397248,-0.178238018394,
+-0.177589741692,-0.176927567142,-0.176251494744,-0.175561524498,
+-0.174857656403,-0.17413989046,-0.173408226669,-0.17266266503,
+-0.171903205543,-0.171129848207,-0.170342593024,-0.169541439992,
+-0.168726389112,-0.167897440384,-0.167054593808,-0.166197849383,
+-0.165327207111,-0.16444266699,-0.163544229021,-0.162631893204,
+-0.161705659539,-0.160765528025,-0.159811498664,-0.158843571454,
+-0.157861746396,-0.15686602349,-0.155856402736,-0.154832884133,
+-0.153795467683,-0.152744153384,-0.151678941237,-0.150599831242,
+-0.149506823399,-0.148399917708,-0.147279114168,-0.14614441278,
+-0.144995813544,-0.14383331646,-0.142656921528,-0.141466628748,
+-0.140262438119,-0.139044349642,-0.137812363318,-0.136566479144,
+-0.135306697123,-0.134033017254,-0.132745439536,-0.131443963971,
+-0.130128590557,-0.128799319295,-0.127456150185,-0.126099083226,
+-0.12472811842,-0.123343255765,-0.121944495262,-0.120531836911,
+-0.119105280712,-0.117664826665,-0.116210474769,-0.114742225025,
+-0.113260077434,-0.111764031994,-0.110254088705,-0.108730247569,
+-0.107192508584,-0.105640871752,-0.104075337071,-0.102495904542,
+-0.100902574165,-0.0992953459395,-0.097674219866,-0.0960391959443,
+-0.0943902741745,-0.0927274545565,-0.0910507370904,-0.089360121776,
+-0.0876556086136,-0.0859371976029,-0.0842048887441,-0.0824586820371,
+-0.080698577482,-0.0789245750787,-0.0771366748272,-0.0753348767276,
+-0.0735191807798,-0.0716895869838,-0.0698460953396,-0.0679887058473,
+-0.0661174185069,-0.0642322333183,-0.0623331502815,-0.0604201693965,
+-0.0584932906634,-0.0565525140821,-0.0545978396526,-0.052629267375,
+-0.0506467972492,-0.0486504292753,-0.0466401634532,-0.0446159997829,
+-0.0425779382645,-0.0405259788979,-0.0384601216831,-0.0363803666201,
+-0.034286713709,-0.0321791629498,-0.0300577143423,-0.0279223678868,
+-0.025773123583,-0.0236099814311,-0.021432941431,-0.0192420035827,
+-0.0170371678863,-0.0148184343417,-0.012585802949,-0.010339273708,
+-0.00807884661897,-0.00580452168172,-0.00351629889631,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0337115590642,-0.0873597191364,
+-0.124430773839,-0.149930244553,-0.167388219635,-0.179283413731,
+-0.187348530418,-0.192789241315,-0.196440551545,-0.198877968428,
+-0.200496183947,-0.201564508657,-0.202265742286,-0.202723298089,
+-0.203020036357,-0.203211274401,-0.203333726424,-0.203411613367,
+-0.203460815356,-0.203491677651,-0.203510895519,-0.203522772691,
+-0.203530056292,-0.203534487212,-0.203537160465,-0.203538759515,
+-0.203539707568,-0.203540264516,-0.203540588607,-0.203540775349,
+-0.203540881854,-0.203540941958,-0.203540975504,-0.203540994015,
+-0.203541004108,-0.203541009543,-0.203541012433,-0.203541013949,
+-0.203541014733,-0.203541015132,-0.203541015333,-0.203541015432,
+-0.20354101548,-0.203541015503,-0.203541015514,-0.203541015519,
+-0.203541015521,-0.203541015522,-0.203541015522,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203541015523,-0.203541015523,-0.203541015523,
+-0.203541015523,-0.203540859695,-0.203531395519,-0.203507277122,
+-0.203468504505,-0.203415077668,-0.20334699661,-0.203264261332,
+-0.203166871833,-0.203054828114,-0.202928130175,-0.202786778015,
+-0.202630771635,-0.202460111034,-0.202274796213,-0.202074827172,
+-0.20186020391,-0.201630926428,-0.201386994726,-0.201128408803,
+-0.20085516866,-0.200567274296,-0.200264725712,-0.199947522908,
+-0.199615665883,-0.199269154638,-0.198907989173,-0.198532169487,
+-0.198141695581,-0.197736567454,-0.197316785107,-0.19688234854,
+-0.196433257752,-0.195969512744,-0.195491113515,-0.194998060066,
+-0.194490352397,-0.193967990508,-0.193430974398,-0.192879304067,
+-0.192312979516,-0.191732000745,-0.191136367754,-0.190526080542,
+-0.18990113911,-0.189261543457,-0.188607293584,-0.18793838949,
+-0.187254831177,-0.186556618642,-0.185843751888,-0.185116230913,
+-0.184374055718,-0.183617226302,-0.182845742666,-0.182059604809,
+-0.181258812733,-0.180443366435,-0.179613265918,-0.17876851118,
+-0.177909102221,-0.177035039043,-0.176146321644,-0.175242950024,
+-0.174324924184,-0.173392244124,-0.172444909843,-0.171482921342,
+-0.170506278621,-0.169514981679,-0.168509030517,-0.167488425135,
+-0.166453165532,-0.165403251708,-0.164338683665,-0.163259461401,
+-0.162165584916,-0.161057054211,-0.159933869286,-0.158796030141,
+-0.157643536775,-0.156476389188,-0.155294587382,-0.154098131355,
+-0.152887021107,-0.151661256639,-0.150420837951,-0.149165765043,
+-0.147896037914,-0.146611656564,-0.145312620995,-0.143998931204,
+-0.142670587194,-0.141327588963,-0.139969936512,-0.13859762984,
+-0.137210668948,-0.135809053836,-0.134392784503,-0.13296186095,
+-0.131516283176,-0.130056051183,-0.128581164968,-0.127091624534,
+-0.125587429879,-0.124068581003,-0.122535077907,-0.120986920591,
+-0.119424109055,-0.117846643298,-0.11625452332,-0.114647749123,
+-0.113026320705,-0.111390238066,-0.109739501207,-0.108074110128,
+-0.106394064829,-0.104699365309,-0.102990011568,-0.101266003608,
+-0.0995273414265,-0.097774025025,-0.0960060544031,-0.0942234295609,
+-0.0924261504983,-0.0906142172153,-0.0887876297119,-0.0869463879881,
+-0.085090492044,-0.0832199418795,-0.0813347374946,-0.0794348788893,
+-0.0775203660637,-0.0755911990177,-0.0736473777513,-0.0716889022645,
+-0.0697157725573,-0.0677279886298,-0.0657255504818,-0.0637084581135,
+-0.0616767115248,-0.0596303107158,-0.0575692556863,-0.0554935464365,
+-0.0534031829663,-0.0512981652757,-0.0491784933648,-0.0470441672334,
+-0.0448951868817,-0.0427315523096,-0.0405532635172,-0.0383603205043,
+-0.0361527232711,-0.0339304718175,-0.0316935661435,-0.0294420062491,
+-0.0271757921343,-0.0248949237992,-0.0225994012437,-0.0202892244678,
+-0.0179643934716,-0.0156249082549,-0.0132707688179,-0.0109019751605,
+-0.00851852728271,-0.00612042518455,-0.00370766886601,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0338504234306,-0.0884076923019,
+-0.126786155646,-0.153666475344,-0.17240976966,-0.185419641908,
+-0.194407678454,-0.200587392949,-0.204815332605,-0.207693319026,
+-0.209642215527,-0.210954919872,-0.21183426353,-0.212419992413,
+-0.212807884375,-0.21306322966,-0.213230289242,-0.213338897178,
+-0.213409045107,-0.213454048362,-0.213482720319,-0.213500857061,
+-0.21351224511,-0.213519341248,-0.213523728241,-0.213526418336,
+-0.213528054029,-0.213529039947,-0.213529628857,-0.213529977341,
+-0.213530181558,-0.213530300031,-0.213530368044,-0.213530406666,
+-0.21353042835,-0.213530440383,-0.213530446978,-0.213530450546,
+-0.213530452452,-0.213530453455,-0.213530453976,-0.213530454242,
+-0.213530454376,-0.213530454442,-0.213530454474,-0.213530454489,
+-0.213530454497,-0.2135304545,-0.213530454501,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530454502,-0.213530454502,-0.213530454502,
+-0.213530454502,-0.213530291027,-0.213520362366,-0.21349506028,
+-0.21345438477,-0.213398335837,-0.213326913479,-0.213240117697,
+-0.213137948491,-0.213020405861,-0.212887489808,-0.21273920033,
+-0.212575537428,-0.212396501102,-0.212202091352,-0.211992308178,
+-0.21176715158,-0.211526621558,-0.211270718112,-0.210999441242,
+-0.210712790948,-0.210410767229,-0.210093370087,-0.209760599521,
+-0.209412455531,-0.209048938117,-0.208670047278,-0.208275783016,
+-0.20786614533,-0.207441134219,-0.207000749685,-0.206544991727,
+-0.206073860344,-0.205587355538,-0.205085477307,-0.204568225653,
+-0.204035600574,-0.203487602072,-0.202924230145,-0.202345484795,
+-0.20175136602,-0.201141873822,-0.200517008199,-0.199876769152,
+-0.199221156682,-0.198550170787,-0.197863811468,-0.197162078725,
+-0.196444972559,-0.195712492968,-0.194964639953,-0.194201413514,
+-0.193422813651,-0.192628840364,-0.191819493653,-0.190994773518,
+-0.190154679959,-0.189299212976,-0.188428372569,-0.187542158738,
+-0.186640571483,-0.185723610804,-0.184791276701,-0.183843569174,
+-0.182880488223,-0.181902033848,-0.180908206048,-0.179899004825,
+-0.178874430178,-0.177834482107,-0.176779160611,-0.175708465692,
+-0.174622397349,-0.173520955581,-0.17240414039,-0.171271951774,
+-0.170124389735,-0.168961454271,-0.167783145384,-0.166589463072,
+-0.165380407337,-0.164155978177,-0.162916175594,-0.161660999586,
+-0.160390450154,-0.159104527299,-0.157803231019,-0.156486561315,
+-0.155154518187,-0.153807101636,-0.15244431166,-0.15106614826,
+-0.149672611436,-0.148263701188,-0.146839417516,-0.14539976042,
+-0.143944729901,-0.142474325957,-0.140988548589,-0.139487397797,
+-0.137970873581,-0.13643897594,-0.134891704876,-0.133329060388,
+-0.131751042476,-0.13015765114,-0.12854888638,-0.126924748196,
+-0.125285236587,-0.123630351555,-0.121960093099,-0.120274461218,
+-0.118573455914,-0.116857077186,-0.115125325033,-0.113378199457,
+-0.111615700457,-0.109837828032,-0.108044582184,-0.106235962911,
+-0.104411970215,-0.102572604094,-0.10071786455,-0.0988477515809,
+-0.0969622651883,-0.0950614053716,-0.093145172131,-0.0912135654663,
+-0.0892665853776,-0.0873042318648,-0.0853265049281,-0.0833334045673,
+-0.0813249307825,-0.0793010835736,-0.0772618629408,-0.0752072688839,
+-0.073137301403,-0.071051960498,-0.0689512461691,-0.0668351584161,
+-0.0647036972391,-0.062556862638,-0.060394654613,-0.0582170731639,
+-0.0560241182908,-0.0538157899937,-0.0515920882725,-0.0493530131273,
+-0.0470985645581,-0.0448287425649,-0.0425435471477,-0.0402429783064,
+-0.0379270360411,-0.0355957203518,-0.0332490312384,-0.0308869687011,
+-0.0285095327397,-0.0261167233543,-0.0237085405448,-0.0212849843114,
+-0.0188460546539,-0.0163917515723,-0.0139220750668,-0.0114370251372,
+-0.00893660178366,-0.00642080500605,-0.00388963480441,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0339720926251,-0.0893354969141,
+-0.12889194367,-0.157037324818,-0.176978337815,-0.191044986815,
+-0.200923435865,-0.207828869991,-0.212633331863,-0.215959892058,
+-0.21825174108,-0.21982267305,-0.220893816931,-0.221620245639,
+-0.222110166443,-0.222438697537,-0.222657711463,-0.222802834142,
+-0.222898396609,-0.222960920273,-0.223001557034,-0.223027788332,
+-0.223044601536,-0.22305529973,-0.223062055798,-0.223066289205,
+-0.223068920571,-0.22307054255,-0.223071533729,-0.223072134023,
+-0.22307249422,-0.223072708274,-0.223072834211,-0.223072907538,
+-0.223072949773,-0.223072973827,-0.223072987366,-0.223072994894,
+-0.223072999026,-0.223073001265,-0.223073002461,-0.22307300309,
+-0.223073003417,-0.223073003583,-0.223073003667,-0.223073003708,
+-0.223073003728,-0.223073003737,-0.223073003742,-0.223073003744,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223073003745,-0.223073003745,-0.223073003745,
+-0.223073003745,-0.223072832965,-0.223062460597,-0.223036027776,
+-0.222993534502,-0.222934980775,-0.222860366594,-0.222769691961,
+-0.222662956874,-0.222540161333,-0.22240130534,-0.222246388893,
+-0.222075411994,-0.221888374641,-0.221685276834,-0.221466118575,
+-0.221230899862,-0.220979620696,-0.220712281077,-0.220428881005,
+-0.220129420479,-0.2198138995,-0.219482318068,-0.219134676183,
+-0.218770973845,-0.218391211053,-0.217995387808,-0.21758350411,
+-0.217155559959,-0.216711555354,-0.216251490296,-0.215775364785,
+-0.215283178821,-0.214774932404,-0.214250625533,-0.213710258209,
+-0.213153830432,-0.212581342202,-0.211992793519,-0.211388184382,
+-0.210767514792,-0.210130784749,-0.209477994253,-0.208809143303,
+-0.2081242319,-0.207423260044,-0.206706227735,-0.205973134973,
+-0.205223981757,-0.204458768088,-0.203677493966,-0.202880159391,
+-0.202066764362,-0.20123730888,-0.200391792945,-0.199530216557,
+-0.198652579716,-0.197758882421,-0.196849124673,-0.195923306472,
+-0.194981427818,-0.194023488711,-0.19304948915,-0.192059429136,
+-0.191053308669,-0.190031127749,-0.188992886375,-0.187938584548,
+-0.186868222268,-0.185781799535,-0.184679316349,-0.183560772709,
+-0.182426168616,-0.18127550407,-0.180108779071,-0.178925993618,
+-0.177727147713,-0.176512241354,-0.175281274542,-0.174034247276,
+-0.172771159558,-0.171492011386,-0.170196802761,-0.168885533683,
+-0.167558204151,-0.166214814166,-0.164855363729,-0.163479852837,
+-0.162088281493,-0.160680649696,-0.159256957445,-0.157817204741,
+-0.156361391584,-0.154889517973,-0.15340158391,-0.151897589393,
+-0.150377534423,-0.148841418999,-0.147289243123,-0.145721006793,
+-0.14413671001,-0.142536352774,-0.140919935085,-0.139287456942,
+-0.137638918346,-0.135974319297,-0.134293659795,-0.13259693984,
+-0.130884159431,-0.129155318569,-0.127410417254,-0.125649455486,
+-0.123872433264,-0.12207935059,-0.120270207462,-0.11844500388,
+-0.116603739846,-0.114746415358,-0.112873030418,-0.110983585024,
+-0.109078079176,-0.107156512876,-0.105218886122,-0.103265198915,
+-0.101295451255,-0.0993096431417,-0.0973077745751,-0.0952898455553,
+-0.0932558560823,-0.0912058061561,-0.0891396957767,-0.087057524944,
+-0.0849592936582,-0.0828450019191,-0.0807146497268,-0.0785682370813,
+-0.0764057639825,-0.0742272304306,-0.0720326364254,-0.069821981967,
+-0.0675952670554,-0.0653524916906,-0.0630936558726,-0.0608187596013,
+-0.0585278028768,-0.0562207856991,-0.0538977080682,-0.0515585699841,
+-0.0492033714468,-0.0468321124562,-0.0444447930125,-0.0420414131155,
+-0.0396219727653,-0.0371864719618,-0.0347349107052,-0.0322672889954,
+-0.0297836068323,-0.027283864216,-0.0247680611465,-0.0222361976238,
+-0.0196882736478,-0.0171242892187,-0.0145442443363,-0.0119481390007,
+-0.00933597321189,-0.00670774696987,-0.00406346027463,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0340798655387,-0.0901648800562,
+-0.130790660296,-0.160101319746,-0.181162133483,-0.196231862005,
+-0.206968535457,-0.214584406568,-0.219962205076,-0.223742033821,
+-0.226386072514,-0.228226568017,-0.229501285093,-0.230379585836,
+-0.230981533553,-0.231391825732,-0.231669910092,-0.231857295389,
+-0.231982809781,-0.232066364409,-0.232121633537,-0.232157953215,
+-0.232181659121,-0.232197024018,-0.232206910911,-0.232213225434,
+-0.232217227272,-0.232219743203,-0.232221311882,-0.232222281574,
+-0.232222875675,-0.232223236309,-0.232223453129,-0.232223582189,
+-0.232223658217,-0.232223702523,-0.232223728053,-0.232223742592,
+-0.232223750771,-0.232223755314,-0.232223757804,-0.232223759149,
+-0.232223759865,-0.232223760241,-0.232223760435,-0.232223760533,
+-0.232223760582,-0.232223760606,-0.232223760618,-0.232223760623,
+-0.232223760626,-0.232223760627,-0.232223760627,-0.232223760627,
+-0.232223760627,-0.232223760628,-0.232223760628,-0.232223760628,
+-0.232223760628,-0.232223760628,-0.232223760628,-0.232223760628,
+-0.232223760628,-0.232223760628,-0.232223760628,-0.232223760628,
+-0.232223760628,-0.232223760628,-0.232223760628,-0.232223760628,
+-0.232223760628,-0.232223760628,-0.232223760628,-0.232223760628,
+-0.232223760628,-0.232223760628,-0.232223760628,-0.232223760628,
+-0.232223760628,-0.232223760628,-0.232223760628,-0.232223760628,
+-0.232223760628,-0.232223582841,-0.232212784985,-0.232185267854,
+-0.232141031448,-0.232080075768,-0.232002400812,-0.231908006582,
+-0.231796893077,-0.231669060298,-0.231524508243,-0.231363236914,
+-0.23118524631,-0.230990536432,-0.230779107278,-0.23055095885,
+-0.230306091147,-0.230044504169,-0.229766197916,-0.229471172389,
+-0.229159427587,-0.22883096351,-0.228485780158,-0.228123877532,
+-0.227745255631,-0.227349914455,-0.226937854004,-0.226509074279,
+-0.226063575278,-0.225601357003,-0.225122419454,-0.224626762629,
+-0.22411438653,-0.223585291156,-0.223039476507,-0.222476942583,
+-0.221897689385,-0.221301716911,-0.220689025163,-0.220059614141,
+-0.219413483843,-0.218750634271,-0.218071065424,-0.217374777302,
+-0.216661769905,-0.215932043234,-0.215185597288,-0.214422432067,
+-0.213642547571,-0.212845943801,-0.212032620756,-0.211202578436,
+-0.210355816841,-0.209492335971,-0.208612135827,-0.207715216408,
+-0.206801577714,-0.205871219746,-0.204924142502,-0.203960345984,
+-0.202979830191,-0.201982595123,-0.200968640781,-0.199937967164,
+-0.198890574272,-0.197826462105,-0.196745630664,-0.195648079947,
+-0.194533809956,-0.19340282069,-0.19225511215,-0.191090684334,
+-0.189909537244,-0.188711670879,-0.18749708524,-0.186265780325,
+-0.185017756136,-0.183753012672,-0.182471549933,-0.181173367919,
+-0.179858466631,-0.178526846068,-0.17717850623,-0.175813447118,
+-0.17443166873,-0.173033171068,-0.171617954131,-0.170186017919,
+-0.168737362433,-0.167271987672,-0.165789893636,-0.164291080325,
+-0.162775547739,-0.161243295879,-0.159694324744,-0.158128634334,
+-0.156546224649,-0.15494709569,-0.153331247456,-0.151698679947,
+-0.150049393163,-0.148383387105,-0.146700661771,-0.145001217163,
+-0.143285053281,-0.141552170123,-0.139802567691,-0.138036245984,
+-0.136253205002,-0.134453444745,-0.132636965214,-0.130803766407,
+-0.128953848326,-0.127087210971,-0.12520385434,-0.123303778435,
+-0.121386983255,-0.1194534688,-0.117503235071,-0.115536282066,
+-0.113552609787,-0.111552218233,-0.109535107405,-0.107501277301,
+-0.105450727923,-0.10338345927,-0.101299471342,-0.0991987641397,
+-0.0970813376624,-0.0949471919104,-0.0927963268836,-0.090628742582,
+-0.0884444390056,-0.0862434161545,-0.0840256740286,-0.0817912126279,
+-0.0795400319525,-0.0772721320023,-0.0749875127773,-0.0726861742775,
+-0.070368116503,-0.0680333394537,-0.0656818431297,-0.0633136275308,
+-0.0609286926572,-0.0585270385088,-0.0561086650857,-0.0536735723878,
+-0.0512217604151,-0.0487532291677,-0.0462679786454,-0.0437660088484,
+-0.0412473197767,-0.0387119114302,-0.0361597838089,-0.0335909369128,
+-0.0310053707419,-0.0284030852963,-0.0257840805759,-0.0231483565808,
+-0.0204959133109,-0.0178267507662,-0.0151408689467,-0.0124382678525,
+-0.00971894748348,-0.00698290783971,-0.00423014892116,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0341762153729,-0.090912398573,
+-0.132515168543,-0.162904345126,-0.185015350861,-0.201038492912,
+-0.212602053141,-0.220911908691,-0.226857634647,-0.23109284854,
+-0.234095827911,-0.236215073185,-0.237703423033,-0.23874349744,
+-0.23946659596,-0.239966676122,-0.240310648391,-0.240545924823,
+-0.24070592886,-0.240814098134,-0.240886778425,-0.24093530556,
+-0.240967495434,-0.240988704793,-0.241002582313,-0.241011597394,
+-0.241017410294,-0.241021129653,-0.241023490543,-0.241024976784,
+-0.241025904416,-0.24102647826,-0.24102682998,-0.241027043492,
+-0.241027171817,-0.241027248144,-0.241027293053,-0.24102731918,
+-0.241027334202,-0.241027342733,-0.241027347516,-0.241027350162,
+-0.241027351605,-0.24102735238,-0.24102735279,-0.241027353004,
+-0.241027353113,-0.241027353168,-0.241027353195,-0.241027353208,
+-0.241027353214,-0.241027353217,-0.241027353219,-0.241027353219,
+-0.241027353219,-0.241027353219,-0.241027353219,-0.241027353219,
+-0.24102735322,-0.24102735322,-0.24102735322,-0.24102735322,
+-0.24102735322,-0.24102735322,-0.24102735322,-0.24102735322,
+-0.24102735322,-0.24102735322,-0.24102735322,-0.24102735322,
+-0.24102735322,-0.24102735322,-0.24102735322,-0.24102735322,
+-0.24102735322,-0.24102735322,-0.24102735322,-0.24102735322,
+-0.24102735322,-0.24102735322,-0.24102735322,-0.24102735322,
+-0.24102735322,-0.241027168693,-0.241015961491,-0.240987401187,
+-0.240941487781,-0.240878221273,-0.240797601664,-0.240699628952,
+-0.240584303139,-0.240451624225,-0.240301592208,-0.24013420709,
+-0.23994946887,-0.239747377548,-0.239527933125,-0.2392911356,
+-0.239036984973,-0.238765481244,-0.238476624414,-0.238170414482,
+-0.237846851448,-0.237505935312,-0.237147666075,-0.236772043735,
+-0.236379068295,-0.235968739752,-0.235541058108,-0.235096023361,
+-0.234633635514,-0.234153894564,-0.233656800513,-0.23314235336,
+-0.232610553105,-0.232061399748,-0.23149489329,-0.23091103373,
+-0.230309821068,-0.229691255304,-0.229055336439,-0.228402064472,
+-0.227731439403,-0.227043461233,-0.226338129961,-0.225615445587,
+-0.224875408111,-0.224118017533,-0.223343273854,-0.222551177073,
+-0.22174172719,-0.220914924206,-0.22007076812,-0.219209258932,
+-0.218330396642,-0.21743418125,-0.216520612757,-0.215589691162,
+-0.214641416466,-0.213675788667,-0.212692807767,-0.211692473765,
+-0.210674786661,-0.209639746456,-0.208587353149,-0.20751760674,
+-0.206430507229,-0.205326054617,-0.204204248903,-0.203065090087,
+-0.201908578169,-0.20073471315,-0.199543495029,-0.198334923806,
+-0.197108999481,-0.195865722055,-0.194605091527,-0.193327107897,
+-0.192031771166,-0.190719081332,-0.189389038397,-0.18804164236,
+-0.186676893222,-0.185294790981,-0.183895335639,-0.182478527196,
+-0.18104436565,-0.179592851003,-0.178123983254,-0.176637762403,
+-0.175134188451,-0.173613261396,-0.17207498124,-0.170519347983,
+-0.168946361623,-0.167356022162,-0.165748329599,-0.164123283934,
+-0.162480885168,-0.1608211333,-0.15914402833,-0.157449570258,
+-0.155737759084,-0.154008594809,-0.152262077432,-0.150498206954,
+-0.148716983373,-0.146918406691,-0.145102476907,-0.143269194022,
+-0.141418558034,-0.139550568945,-0.137665226754,-0.135762531462,
+-0.133842483067,-0.131905081571,-0.129950326973,-0.127978219274,
+-0.125988758472,-0.123981944569,-0.121957777564,-0.119916257458,
+-0.11785738425,-0.115781157939,-0.113687578528,-0.111576646014,
+-0.109448360399,-0.107302721682,-0.105139729863,-0.102959384942,
+-0.10076168692,-0.0985466357962,-0.0963142315704,-0.0940644742429,
+-0.0917973638137,-0.0895129002827,-0.0872110836499,-0.0848919139155,
+-0.0825553910792,-0.0802015151413,-0.0778302861016,-0.0754417039601,
+-0.0730357687169,-0.0706124803719,-0.0681718389253,-0.0657138443768,
+-0.0632384967266,-0.0607457959747,-0.0582357421211,-0.0557083351656,
+-0.0531635751085,-0.0506014619496,-0.0480219956889,-0.0454251763266,
+-0.0428110038624,-0.0401794782966,-0.0375305996289,-0.0348643678596,
+-0.0321807829885,-0.0294798450156,-0.026761553941,-0.0240259097647,
+-0.0212729124866,-0.0185025621068,-0.0157148586252,-0.0129098020419,
+-0.0100873923568,-0.00724762957,-0.00439051368145,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.034263038146,-0.0915909194411,
+-0.134091349654,-0.165483002343,-0.18858174031,-0.20551239725,
+-0.217872654706,-0.226859439608,-0.233366090345,-0.238056797103,
+-0.241423432295,-0.243828781221,-0.245539306229,-0.246749884378,
+-0.247602412236,-0.248199742289,-0.248616079403,-0.2489047037,
+-0.249103682399,-0.249240075331,-0.249333017091,-0.24939596512,
+-0.249438331375,-0.249466660623,-0.249485476863,-0.249497888084,
+-0.249506015938,-0.249511299266,-0.249514707221,-0.249516888007,
+-0.24951827201,-0.249519142832,-0.249519685891,-0.249520021426,
+-0.24952022675,-0.249520351139,-0.249520425713,-0.249520469936,
+-0.249520495865,-0.249520510888,-0.249520519484,-0.24952052434,
+-0.249520527045,-0.249520528531,-0.249520529336,-0.249520529764,
+-0.249520529988,-0.249520530104,-0.249520530162,-0.249520530191,
+-0.249520530205,-0.249520530212,-0.249520530215,-0.249520530216,
+-0.249520530217,-0.249520530217,-0.249520530217,-0.249520530217,
+-0.249520530217,-0.249520530217,-0.249520530217,-0.249520530217,
+-0.249520530217,-0.249520530217,-0.249520530217,-0.249520530217,
+-0.249520530217,-0.249520530217,-0.249520530217,-0.249520530217,
+-0.249520530217,-0.249520530217,-0.249520530217,-0.249520530217,
+-0.249520530217,-0.249520530217,-0.249520530217,-0.249520530217,
+-0.249520530217,-0.249520530217,-0.249520530217,-0.249520530217,
+-0.249520530217,-0.249520339189,-0.249508737074,-0.249479170379,
+-0.249431639104,-0.249366143249,-0.249282682814,-0.249181257799,
+-0.249061868205,-0.24892451403,-0.248769195276,-0.248595911941,
+-0.248404664027,-0.248195451533,-0.247968274459,-0.247723132805,
+-0.247460026571,-0.247178955757,-0.246879920363,-0.246562920389,
+-0.246227955836,-0.245875026702,-0.245504132989,-0.245115274696,
+-0.244708451822,-0.244283664369,-0.243840912336,-0.243380195723,
+-0.24290151453,-0.242404868757,-0.241890258405,-0.241357683472,
+-0.240807143959,-0.240238639867,-0.239652171195,-0.239047737942,
+-0.23842534011,-0.237784977698,-0.237126650706,-0.236450359134,
+-0.235756102982,-0.23504388225,-0.234313696939,-0.233565547047,
+-0.232799432575,-0.232015353524,-0.231213309893,-0.230393301681,
+-0.22955532889,-0.228699391519,-0.227825489568,-0.226933623037,
+-0.226023791926,-0.225095996236,-0.224150235965,-0.223186511115,
+-0.222204821684,-0.221205167674,-0.220187549083,-0.219151965913,
+-0.218098418163,-0.217026905833,-0.215937428923,-0.214829987433,
+-0.213704581363,-0.212561210714,-0.211399875484,-0.210220575675,
+-0.209023311285,-0.207808082316,-0.206574888767,-0.205323730637,
+-0.204054607928,-0.202767520639,-0.20146246877,-0.200139452322,
+-0.198798471293,-0.197439525684,-0.196062615496,-0.194667740727,
+-0.193254901379,-0.191824097451,-0.190375328942,-0.188908595854,
+-0.187423898186,-0.185921235938,-0.18440060911,-0.182862017703,
+-0.181305461715,-0.179730941147,-0.178138456,-0.176528006272,
+-0.174899591965,-0.173253213078,-0.171588869611,-0.169906561564,
+-0.168206288937,-0.16648805173,-0.164751849943,-0.162997683576,
+-0.16122555263,-0.159435457103,-0.157627396996,-0.15580137231,
+-0.153957383044,-0.152095429198,-0.150215510771,-0.148317627765,
+-0.146401780179,-0.144467968014,-0.142516191268,-0.140546449942,
+-0.138558744037,-0.136553073551,-0.134529438486,-0.13248783884,
+-0.130428274615,-0.12835074581,-0.126255252425,-0.12414179446,
+-0.122010371915,-0.11986098479,-0.117693633085,-0.115508316801,
+-0.113305035936,-0.111083790492,-0.108844580467,-0.106587405863,
+-0.104312266679,-0.102019162915,-0.0997080945707,-0.0973790616468,
+-0.0950320641429,-0.0926671020591,-0.0902841753955,-0.0878832841519,
+-0.0854644283283,-0.0830276079249,-0.0805728229416,-0.0781000733783,
+-0.0756093592352,-0.0731006805121,-0.0705740372091,-0.0680294293262,
+-0.0654668568634,-0.0628863198207,-0.060287818198,-0.0576713519955,
+-0.055036921213,-0.0523845258506,-0.0497141659084,-0.0470258413862,
+-0.044319552284,-0.041595298602,-0.0388530803401,-0.0360928974982,
+-0.0333147500764,-0.0305186380748,-0.0277045614932,-0.0248725203317,
+-0.0220225145902,-0.0191545442689,-0.0162686093677,-0.0133647098865,
+-0.0104428458254,-0.00750301718444,-0.00454522396354,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0343418153912,-0.0922106199027,
+-0.13553991993,-0.167866926847,-0.191897111475,-0.209692855833,
+-0.22282092168,-0.232467367644,-0.239526814471,-0.244671557483,
+-0.248404896277,-0.251102143984,-0.253042050749,-0.254430794494,
+-0.255420228588,-0.256121707913,-0.256616523326,-0.25696374448,
+-0.257206090021,-0.257374302378,-0.257490393633,-0.25757004276,
+-0.257624357759,-0.25766116464,-0.257685945577,-0.257702518157,
+-0.257713524566,-0.257720781919,-0.25772553173,-0.257728616496,
+-0.257730603925,-0.257731873777,-0.25773267817,-0.257733183167,
+-0.257733497262,-0.257733690734,-0.257733808707,-0.257733879889,
+-0.257733922368,-0.25773394743,-0.257733962038,-0.257733970448,
+-0.257733975225,-0.257733977902,-0.25773397938,-0.257733980184,
+-0.257733980614,-0.257733980841,-0.257733980958,-0.257733981017,
+-0.257733981047,-0.257733981061,-0.257733981068,-0.257733981071,
+-0.257733981072,-0.257733981073,-0.257733981073,-0.257733981073,
+-0.257733981073,-0.257733981073,-0.257733981074,-0.257733981074,
+-0.257733981074,-0.257733981074,-0.257733981074,-0.257733981074,
+-0.257733981074,-0.257733981074,-0.257733981074,-0.257733981074,
+-0.257733981074,-0.257733981074,-0.257733981074,-0.257733981074,
+-0.257733981074,-0.257733981074,-0.257733981074,-0.257733981074,
+-0.257733981074,-0.257733981074,-0.257733981074,-0.257733981074,
+-0.257733981074,-0.257733783757,-0.257721799736,-0.257691259796,
+-0.257642163937,-0.257574512159,-0.257488304463,-0.257383540848,
+-0.257260221314,-0.257118345861,-0.256957914489,-0.256778927199,
+-0.256581383989,-0.256365284861,-0.256130629814,-0.255877418849,
+-0.255605651964,-0.255315329161,-0.255006450439,-0.254679015798,
+-0.254333025238,-0.253968478759,-0.253585376362,-0.253183718046,
+-0.252763503811,-0.252324733657,-0.251867407584,-0.251391525593,
+-0.250897087683,-0.250384093854,-0.249852544106,-0.249302438439,
+-0.248733776854,-0.24814655935,-0.247540785927,-0.246916456585,
+-0.246273571324,-0.245612130145,-0.244932133046,-0.244233580029,
+-0.243516471094,-0.242780806239,-0.242026585465,-0.241253808773,
+-0.240462476162,-0.239652587632,-0.238824143183,-0.237977142816,
+-0.237111586529,-0.236227474324,-0.2353248062,-0.234403582158,
+-0.233463802196,-0.232505466316,-0.231528574517,-0.230533126799,
+-0.229519123162,-0.228486563606,-0.227435448132,-0.226365776739,
+-0.225277549427,-0.224170766196,-0.223045427046,-0.221901531978,
+-0.22073908099,-0.219558074084,-0.21835851126,-0.217140392516,
+-0.215903717853,-0.214648487272,-0.213374700772,-0.212082358353,
+-0.210771460015,-0.209442005759,-0.208093995584,-0.20672742949,
+-0.205342307477,-0.203938629545,-0.202516395694,-0.201075605925,
+-0.199616260237,-0.19813835863,-0.196641901104,-0.19512688766,
+-0.193593318296,-0.192041193014,-0.190470511813,-0.188881274693,
+-0.187273481655,-0.185647132697,-0.184002227821,-0.182338767026,
+-0.180656750312,-0.17895617768,-0.177237049128,-0.175499364658,
+-0.173743124269,-0.171968327961,-0.170174975734,-0.168363067589,
+-0.166532603525,-0.164683583542,-0.16281600764,-0.160929875819,
+-0.15902518808,-0.157101944421,-0.155160144844,-0.153199789348,
+-0.151220877933,-0.1492234106,-0.147207387348,-0.145172808176,
+-0.143119673087,-0.141047982078,-0.13895773515,-0.136848932304,
+-0.134721573539,-0.132575658855,-0.130411188252,-0.12822816173,
+-0.12602657929,-0.123806440931,-0.121567746653,-0.119310496456,
+-0.11703469034,-0.114740328306,-0.112427410352,-0.11009593648,
+-0.10774590669,-0.10537732098,-0.102990179351,-0.100584481804,
+-0.0981602283381,-0.0957174189532,-0.0932560536495,-0.090776132427,
+-0.0882776552857,-0.0857606222256,-0.0832250332466,-0.0806708883489,
+-0.0780981875324,-0.075506930797,-0.0728971181429,-0.0702687495699,
+-0.0676218250782,-0.0649563446676,-0.0622723083382,-0.05956971609,
+-0.056848567923,-0.0541088638373,-0.0513506038327,-0.0485737879092,
+-0.045778416067,-0.042964488306,-0.0401320046262,-0.0372809650275,
+-0.0344113695101,-0.0315232180739,-0.0286165107188,-0.0256912474449,
+-0.0227474282523,-0.0197850531408,-0.0168041221105,-0.0138046351614,
+-0.0107865922935,-0.00774999350684,-0.00469483880133,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0344137240294,-0.0927796737782,
+-0.136877697389,-0.170080428804,-0.194991130235,-0.213612707644,
+-0.227481056151,-0.237769948367,-0.245373285264,-0.250969392086,
+-0.255071116263,-0.258064733031,-0.260240056194,-0.26181366059,
+-0.262946727592,-0.263758707922,-0.264337742315,-0.264748578294,
+-0.26503856044,-0.265242144175,-0.26538428244,-0.265482955515,
+-0.265551052196,-0.265597762084,-0.265629601058,-0.265651162806,
+-0.265665666744,-0.265675355375,-0.265681780849,-0.265686010458,
+-0.265688773115,-0.265690563137,-0.265691713301,-0.265692445939,
+-0.26569290842,-0.265693197633,-0.265693376728,-0.265693486506,
+-0.265693553083,-0.265693593012,-0.265693616683,-0.265693630545,
+-0.26569363856,-0.265693643133,-0.265693645706,-0.265693647132,
+-0.26569364791,-0.265693648328,-0.265693648549,-0.265693648663,
+-0.265693648721,-0.26569364875,-0.265693648764,-0.265693648771,
+-0.265693648774,-0.265693648775,-0.265693648776,-0.265693648776,
+-0.265693648776,-0.265693648776,-0.265693648776,-0.265693648776,
+-0.265693648776,-0.265693648776,-0.265693648776,-0.265693648776,
+-0.265693648776,-0.265693648776,-0.265693648776,-0.265693648776,
+-0.265693648776,-0.265693648776,-0.265693648776,-0.265693648776,
+-0.265693648776,-0.265693648776,-0.265693648776,-0.265693648776,
+-0.265693648776,-0.265693648776,-0.265693648776,-0.265693648776,
+-0.265693648776,-0.265693445366,-0.265681091239,-0.265649608126,
+-0.265598996026,-0.265529254941,-0.265440384869,-0.265332385811,
+-0.265205257767,-0.265059000736,-0.264893614719,-0.264709099716,
+-0.264505455727,-0.264282682751,-0.26404078079,-0.263779749842,
+-0.263499589908,-0.263200300987,-0.262881883081,-0.262544336188,
+-0.262187660309,-0.261811855444,-0.261416921592,-0.261002858754,
+-0.26056966693,-0.26011734612,-0.259645896324,-0.259155317541,
+-0.258645609772,-0.258116773017,-0.257568807276,-0.257001712548,
+-0.256415488834,-0.255810136134,-0.255185654448,-0.254542043776,
+-0.253879304117,-0.253197435472,-0.252496437841,-0.251776311224,
+-0.25103705562,-0.25027867103,-0.249501157454,-0.248704514892,
+-0.247888743343,-0.247053842809,-0.246199813288,-0.245326654781,
+-0.244434367287,-0.243522950808,-0.242592405342,-0.24164273089,
+-0.240673927451,-0.239685995027,-0.238678933616,-0.237652743219,
+-0.236607423836,-0.235542975466,-0.234459398111,-0.233356691769,
+-0.232234856441,-0.231093892126,-0.229933798826,-0.228754576539,
+-0.227556225266,-0.226338745007,-0.225102135761,-0.223846397529,
+-0.222571530312,-0.221277534107,-0.219964408917,-0.21863215474,
+-0.217280771578,-0.215910259428,-0.214520618293,-0.213111848172,
+-0.211683949064,-0.21023692097,-0.20877076389,-0.207285477823,
+-0.205781062771,-0.204257518732,-0.202714845707,-0.201153043695,
+-0.199572112698,-0.197972052714,-0.196352863744,-0.194714545788,
+-0.193057098845,-0.191380522916,-0.189684818002,-0.1879699841,
+-0.186236021213,-0.184482929339,-0.18271070848,-0.180919358634,
+-0.179108879801,-0.177279271983,-0.175430535178,-0.173562669387,
+-0.17167567461,-0.169769550846,-0.167844298097,-0.165899916361,
+-0.163936405639,-0.16195376593,-0.159951997236,-0.157931099555,
+-0.155891072888,-0.153831917235,-0.151753632595,-0.14965621897,
+-0.147539676358,-0.14540400476,-0.143249204175,-0.141075274605,
+-0.138882216048,-0.136670028505,-0.134438711976,-0.13218826646,
+-0.129918691958,-0.12762998847,-0.125322155996,-0.122995194536,
+-0.120649104089,-0.118283884656,-0.115899536237,-0.113496058832,
+-0.11107345244,-0.108631717063,-0.106170852699,-0.103690859348,
+-0.101191737012,-0.0986734856893,-0.0961361053804,-0.0935795960853,
+-0.091003957804,-0.0884091905364,-0.0857952942826,-0.0831622690425,
+-0.0805101148163,-0.0778388316038,-0.0751484194051,-0.0724388782201,
+-0.069710208049,-0.0669624088916,-0.0641954807479,-0.0614094236181,
+-0.058604237502,-0.0557799223997,-0.0529364783112,-0.0500739052364,
+-0.0471922031755,-0.0442913721283,-0.0413714120948,-0.0384323230752,
+-0.0354741050693,-0.0324967580772,-0.0295002820988,-0.0264846771343,
+-0.0234499431835,-0.0203960802464,-0.0173230883232,-0.0142309674137,
+-0.011119717518,-0.00798933863609,-0.00483983076793,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0344797125776,-0.0933047343872,
+-0.138118505844,-0.172143680364,-0.197888635825,-0.217299680301,
+-0.231882155285,-0.242796513761,-0.250934318622,-0.256978175278,
+-0.261448847317,-0.264742177644,-0.267157925781,-0.268922215212,
+-0.270204946062,-0.27113325412,-0.271801875747,-0.272281099828,
+-0.272622844807,-0.272865284288,-0.273036353349,-0.273156395116,
+-0.273240149649,-0.27329824184,-0.273338289304,-0.273365723368,
+-0.273384394406,-0.273397015887,-0.27340548837,-0.273411134606,
+-0.273414869156,-0.273417320053,-0.273418915524,-0.273419945415,
+-0.273420604415,-0.273421022261,-0.273421284693,-0.273421447892,
+-0.273421548335,-0.27342160949,-0.273421646307,-0.27342166821,
+-0.273421681081,-0.273421688547,-0.273421692819,-0.273421695228,
+-0.273421696567,-0.273421697299,-0.273421697692,-0.2734216979,
+-0.273421698008,-0.273421698063,-0.27342169809,-0.273421698103,
+-0.27342169811,-0.273421698113,-0.273421698114,-0.273421698114,
+-0.273421698115,-0.273421698115,-0.273421698115,-0.273421698115,
+-0.273421698115,-0.273421698115,-0.273421698115,-0.273421698115,
+-0.273421698115,-0.273421698115,-0.273421698115,-0.273421698115,
+-0.273421698115,-0.273421698115,-0.273421698115,-0.273421698115,
+-0.273421698115,-0.273421698115,-0.273421698115,-0.273421698115,
+-0.273421698115,-0.273421698115,-0.273421698115,-0.273421698115,
+-0.273421698115,-0.273421488788,-0.273408775325,-0.273376376484,
+-0.273324292265,-0.273252522669,-0.273161067694,-0.273049927341,
+-0.27291910161,-0.272768590501,-0.272598394015,-0.27240851215,
+-0.272198944907,-0.271969692287,-0.271720754288,-0.271452130912,
+-0.271163822157,-0.270855828025,-0.270528148515,-0.270180783626,
+-0.26981373336,-0.269426997716,-0.269020576694,-0.268594470294,
+-0.268148678516,-0.267683201359,-0.267198038825,-0.266693190914,
+-0.266168657624,-0.265624438956,-0.26506053491,-0.264476945486,
+-0.263873670684,-0.263250710505,-0.262608064947,-0.261945734011,
+-0.261263717698,-0.260562016006,-0.259840628937,-0.259099556489,
+-0.258338798664,-0.25755835546,-0.256758226879,-0.25593841292,
+-0.255098913582,-0.254239728867,-0.253360858774,-0.252462303303,
+-0.251544062454,-0.250606136227,-0.249648524622,-0.248671227639,
+-0.247674245278,-0.246657577539,-0.245621224422,-0.244565185927,
+-0.243489462054,-0.242394052804,-0.241278958175,-0.240144178168,
+-0.238989712784,-0.237815562021,-0.236621725881,-0.235408204362,
+-0.234174997466,-0.232922105191,-0.231649527539,-0.230357264509,
+-0.2290453161,-0.227713682314,-0.22636236315,-0.224991358608,
+-0.223600668688,-0.22219029339,-0.220760232714,-0.21931048666,
+-0.217841055228,-0.216351938418,-0.21484313623,-0.213314648664,
+-0.21176647572,-0.210198617399,-0.208611073699,-0.207003844621,
+-0.205376930166,-0.203730330332,-0.202064045121,-0.200378074531,
+-0.198672418564,-0.196947077218,-0.195202050495,-0.193437338394,
+-0.191652940914,-0.189848858057,-0.188025089822,-0.186181636209,
+-0.184318497218,-0.182435672849,-0.180533163102,-0.178610967977,
+-0.176669087474,-0.174707521593,-0.172726270334,-0.170725333697,
+-0.168704711682,-0.16666440429,-0.164604411519,-0.16252473337,
+-0.160425369844,-0.158306320939,-0.156167586657,-0.154009166996,
+-0.151831061958,-0.149633271541,-0.147415795747,-0.145178634575,
+-0.142921788024,-0.140645256096,-0.13834903879,-0.136033136106,
+-0.133697548044,-0.131342274603,-0.128967315785,-0.126572671589,
+-0.124158342016,-0.121724327064,-0.119270626734,-0.116797241026,
+-0.11430416994,-0.111791413476,-0.109258971635,-0.106706844415,
+-0.104135031817,-0.101543533842,-0.0989323504884,-0.0963014817569,
+-0.0936509276475,-0.0909806881601,-0.0882907632947,-0.0855811530514,
+-0.0828518574301,-0.0801028764309,-0.0773342100537,-0.0745458582985,
+-0.0717378211654,-0.0689100986543,-0.0660626907653,-0.0631955974983,
+-0.0603088188534,-0.0574023548305,-0.0544762054296,-0.0515303706508,
+-0.048564850494,-0.0455796449592,-0.0425747540465,-0.0395501777559,
+-0.0365059160873,-0.0334419690407,-0.0303583366162,-0.0272550188137,
+-0.0241320156332,-0.0209893270748,-0.0178269531385,-0.0146448938241,
+-0.0114431491319,-0.00822171906162,-0.00498060361342,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0345405552506,-0.0937912818768,
+-0.139273833577,-0.174073591583,-0.200610624037,-0.220777393566,
+-0.236049180666,-0.247572381695,-0.256234912667,-0.262722180428,
+-0.267561445817,-0.271156877482,-0.273817161879,-0.275777179241,
+-0.277214963799,-0.278264928463,-0.27902814016,-0.279580274472,
+-0.279977750577,-0.280262444481,-0.280465295578,-0.280609055072,
+-0.280710371557,-0.280781366729,-0.280830820497,-0.280865058177,
+-0.280888611471,-0.280904708453,-0.280915634944,-0.280922999605,
+-0.280927927337,-0.280931199564,-0.280933355397,-0.280934764126,
+-0.280935676848,-0.28093626298,-0.280936635921,-0.280936870938,
+-0.280937017557,-0.280937108073,-0.280937163342,-0.280937196705,
+-0.280937216602,-0.280937228321,-0.280937235131,-0.280937239034,
+-0.280937241238,-0.280937242464,-0.280937243135,-0.280937243496,
+-0.280937243686,-0.280937243785,-0.280937243835,-0.28093724386,
+-0.280937243872,-0.280937243877,-0.28093724388,-0.280937243881,
+-0.280937243882,-0.280937243882,-0.280937243882,-0.280937243882,
+-0.280937243882,-0.280937243882,-0.280937243882,-0.280937243882,
+-0.280937243882,-0.280937243882,-0.280937243882,-0.280937243882,
+-0.280937243882,-0.280937243882,-0.280937243882,-0.280937243882,
+-0.280937243882,-0.280937243882,-0.280937243882,-0.280937243882,
+-0.280937243882,-0.280937243882,-0.280937243882,-0.280937243882,
+-0.280937243882,-0.280937028802,-0.280923965884,-0.280890676495,
+-0.280837160637,-0.280763418308,-0.280669449509,-0.28055525424,
+-0.280420832501,-0.280266184291,-0.280091309611,-0.279896208461,
+-0.279680880841,-0.279445326751,-0.27918954619,-0.27891353916,
+-0.278617305659,-0.278300845688,-0.277964159246,-0.277607246335,
+-0.277230106953,-0.276832741101,-0.276415148779,-0.275977329987,
+-0.275519284724,-0.275041012992,-0.274542514789,-0.274023790116,
+-0.273484838973,-0.272925661359,-0.272346257275,-0.271746626721,
+-0.271126769697,-0.270486686203,-0.269826376239,-0.269145839804,
+-0.268445076899,-0.267724087524,-0.266982871679,-0.266221429363,
+-0.265439760578,-0.264637865322,-0.263815743596,-0.262973395399,
+-0.262110820733,-0.261228019596,-0.26032499199,-0.259401737912,
+-0.258458257365,-0.257494550348,-0.25651061686,-0.255506456902,
+-0.254482070474,-0.253437457576,-0.252372618208,-0.251287552369,
+-0.25018226006,-0.249056741281,-0.247910996032,-0.246745024312,
+-0.245558826123,-0.244352401463,-0.243125750333,-0.241878872733,
+-0.240611768662,-0.239324438122,-0.238016881111,-0.23668909763,
+-0.235341087679,-0.233972851257,-0.232584388366,-0.231175699004,
+-0.229746783172,-0.22829764087,-0.226828272097,-0.225338676855,
+-0.223828855142,-0.222298806959,-0.220748532306,-0.219178031182,
+-0.217587303589,-0.215976349525,-0.214345168991,-0.212693761987,
+-0.211022128512,-0.209330268568,-0.207618182153,-0.205885869268,
+-0.204133329913,-0.202360564088,-0.200567571792,-0.198754353026,
+-0.19692090779,-0.195067236084,-0.193193337908,-0.191299213261,
+-0.189384862145,-0.187450284558,-0.1854954805,-0.183520449973,
+-0.181525192976,-0.179509709508,-0.17747399957,-0.175418063162,
+-0.173341900283,-0.171245510935,-0.169128895116,-0.166992052827,
+-0.164834984068,-0.162657688839,-0.160460167139,-0.158242418969,
+-0.15600444433,-0.153746243219,-0.151467815639,-0.149169161589,
+-0.146850281068,-0.144511174077,-0.142151840616,-0.139772280685,
+-0.137372494283,-0.134952481411,-0.132512242069,-0.130051776257,
+-0.127571083975,-0.125070165223,-0.12254902,-0.120007648307,
+-0.117446050144,-0.114864225511,-0.112262174407,-0.109639896833,
+-0.10699739279,-0.104334662275,-0.101651705291,-0.0989485218367,
+-0.096225111912,-0.0934814755171,-0.090717612652,-0.0879335233168,
+-0.0851292075113,-0.0823046652356,-0.0794598964898,-0.0765949012737,
+-0.0737096795875,-0.070804231431,-0.0678785568043,-0.0649326557075,
+-0.0619665281404,-0.0589801741032,-0.0559735935957,-0.0529467866181,
+-0.0498997531702,-0.0468324932522,-0.043745006864,-0.0406372940055,
+-0.0375093546769,-0.0343611888781,-0.031192796609,-0.0280041778698,
+-0.0247953326604,-0.0215662609807,-0.0183169628309,-0.0150474382109,
+-0.0117576871207,-0.00844770956024,-0.00511750552962,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0345968911635,-0.0942438778893,
+-0.140353322026,-0.175884467774,-0.203174993115,-0.224066128069,
+-0.240003706773,-0.252119562132,-0.261296905418,-0.268222692751,
+-0.273429446306,-0.277328553856,-0.280236701574,-0.282396789857,
+-0.283994429956,-0.285170911726,-0.286033362408,-0.286662676803,
+-0.287119685264,-0.287449933128,-0.287687369923,-0.28785718572,
+-0.287977982857,-0.288063431764,-0.288123527913,-0.288165541702,
+-0.288194732944,-0.288214885703,-0.288228706665,-0.28823812034,
+-0.288244486631,-0.288248760325,-0.288251607319,-0.28825348882,
+-0.288254721979,-0.288255523256,-0.288256039243,-0.288256368414,
+-0.288256576361,-0.288256706391,-0.288256786835,-0.288256836049,
+-0.288256865805,-0.288256883578,-0.288256894056,-0.288256900151,
+-0.288256903646,-0.28825690562,-0.288256906718,-0.288256907318,
+-0.28825690764,-0.28825690781,-0.288256907897,-0.288256907942,
+-0.288256907964,-0.288256907974,-0.288256907979,-0.288256907981,
+-0.288256907982,-0.288256907983,-0.288256907983,-0.288256907983,
+-0.288256907983,-0.288256907983,-0.288256907983,-0.288256907983,
+-0.288256907983,-0.288256907983,-0.288256907983,-0.288256907983,
+-0.288256907983,-0.288256907983,-0.288256907983,-0.288256907983,
+-0.288256907983,-0.288256907983,-0.288256907983,-0.288256907983,
+-0.288256907983,-0.288256907983,-0.288256907983,-0.288256907983,
+-0.288256907983,-0.288256687299,-0.288243284034,-0.288209127309,
+-0.288154217124,-0.28807855348,-0.287982136376,-0.287864965813,
+-0.28772704179,-0.287568364307,-0.287388933364,-0.287188748962,
+-0.2869678111,-0.286726119779,-0.286463674997,-0.286180476757,
+-0.285876525056,-0.285551819896,-0.285206361276,-0.284840149197,
+-0.284453183657,-0.284045464659,-0.2836169922,-0.283167766282,
+-0.282697786904,-0.282207054067,-0.28169556777,-0.281163328013,
+-0.280610334796,-0.28003658812,-0.279442087984,-0.278826834389,
+-0.278190827334,-0.277534066819,-0.276856552845,-0.276158285411,
+-0.275439264517,-0.274699490163,-0.27393896235,-0.273157681078,
+-0.272355646345,-0.271532858153,-0.270689316501,-0.26982502139,
+-0.268939972819,-0.268034170788,-0.267107615298,-0.266160306348,
+-0.265192243938,-0.264203428069,-0.26319385874,-0.262163535951,
+-0.261112459703,-0.260040629994,-0.258948046827,-0.257834710199,
+-0.256700620112,-0.255545776566,-0.254370179559,-0.253173829093,
+-0.251956725168,-0.250718867782,-0.249460256937,-0.248180892633,
+-0.246880774868,-0.245559903644,-0.244218278961,-0.242855900817,
+-0.241472769214,-0.240068884152,-0.23864424563,-0.237198853648,
+-0.235732708206,-0.234245809305,-0.232738156944,-0.231209751123,
+-0.229660591843,-0.228090679103,-0.226500012903,-0.224888593244,
+-0.223256420125,-0.221603493546,-0.219929813508,-0.21823538001,
+-0.216520193053,-0.214784252635,-0.213027558759,-0.211250111422,
+-0.209451910626,-0.20763295637,-0.205793248654,-0.203932787479,
+-0.202051572844,-0.20014960475,-0.198226883195,-0.196283408182,
+-0.194319179708,-0.192334197775,-0.190328462382,-0.188301973529,
+-0.186254731217,-0.184186735445,-0.182097986214,-0.179988483523,
+-0.177858227372,-0.175707217761,-0.173535454691,-0.171342938161,
+-0.169129668172,-0.166895644723,-0.164640867814,-0.162365337446,
+-0.160069053617,-0.15775201633,-0.155414225582,-0.153055681375,
+-0.150676383708,-0.148276332582,-0.145855527996,-0.14341396995,
+-0.140951658444,-0.138468593479,-0.135964775055,-0.13344020317,
+-0.130894877826,-0.128328799022,-0.125741966759,-0.123134381036,
+-0.120506041853,-0.117856949211,-0.115187103108,-0.112496503547,
+-0.109785150525,-0.107053044044,-0.104300184104,-0.101526570703,
+-0.0987322038431,-0.0959170835234,-0.093081209744,-0.090224582505,
+-0.0873472018063,-0.0844490676479,-0.0815301800299,-0.0785905389522,
+-0.0756301444149,-0.0726489964179,-0.0696470949612,-0.0666244400448,
+-0.0635810316688,-0.0605168698332,-0.0574319545378,-0.0543262857828,
+-0.0511998635682,-0.0480526878939,-0.0448847587599,-0.0416960761662,
+-0.0384866401129,-0.0352564506,-0.0320055076273,-0.028733811195,
+-0.0254413613031,-0.0221281579514,-0.0187942011402,-0.0154394908692,
+-0.0120640271386,-0.00866780994832,-0.00525083929839,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0346492532567,-0.0946663555182,
+-0.141365134243,-0.177588510395,-0.205597117822,-0.227183422323,
+-0.243764506726,-0.256457312914,-0.266139494038,-0.273498493446,
+-0.279071016376,-0.283274682972,-0.286433335798,-0.288797212038,
+-0.290558971883,-0.291866393165,-0.292832392208,-0.293542907017,
+-0.294063076965,-0.294442069545,-0.29471683631,-0.294915024301,
+-0.295057223913,-0.295158697307,-0.295230701811,-0.29528149878,
+-0.295317119223,-0.295341942108,-0.295359129096,-0.295370949703,
+-0.295379023251,-0.295384497944,-0.295388182672,-0.295390643456,
+-0.295392273613,-0.295393344464,-0.295394041764,-0.295394491689,
+-0.295394779241,-0.295394961196,-0.295395075139,-0.295395145718,
+-0.29539518894,-0.295395215093,-0.29539523072,-0.295395239935,
+-0.295395245294,-0.295395248365,-0.295395250098,-0.29539525106,
+-0.295395251584,-0.295395251865,-0.295395252013,-0.295395252089,
+-0.295395252127,-0.295395252146,-0.295395252155,-0.295395252159,
+-0.295395252161,-0.295395252162,-0.295395252162,-0.295395252162,
+-0.295395252162,-0.295395252162,-0.295395252162,-0.295395252162,
+-0.295395252162,-0.295395252162,-0.295395252162,-0.295395252162,
+-0.295395252162,-0.295395252162,-0.295395252162,-0.295395252162,
+-0.295395252162,-0.295395252162,-0.295395252162,-0.295395252162,
+-0.295395252162,-0.295395252162,-0.295395252162,-0.295395252162,
+-0.295395252162,-0.295395026013,-0.295381290832,-0.295346288256,
+-0.295290018285,-0.295212480919,-0.295113676159,-0.294993604004,
+-0.294852264454,-0.294689657509,-0.29450578317,-0.294300641436,
+-0.294074232307,-0.293826555784,-0.293557611865,-0.293267400552,
+-0.292955921844,-0.292623175742,-0.292269162245,-0.291893881353,
+-0.291497333066,-0.291079517384,-0.290640434308,-0.290180083837,
+-0.289698465971,-0.289195580711,-0.288671428055,-0.288126008005,
+-0.287559320561,-0.286971365721,-0.286362143487,-0.285731653858,
+-0.285079896834,-0.284406872416,-0.283712580602,-0.282997021394,
+-0.282260194792,-0.281502100794,-0.280722739402,-0.279922110615,
+-0.279100214433,-0.278257050857,-0.277392619886,-0.27650692152,
+-0.275599955759,-0.274671722603,-0.273722222053,-0.272751454108,
+-0.271759418769,-0.270746116034,-0.269711545905,-0.268655708381,
+-0.267578603462,-0.266480231149,-0.265360591441,-0.264219684338,
+-0.26305750984,-0.261874067948,-0.260669358661,-0.259443381979,
+-0.258196137902,-0.256927626431,-0.255637847565,-0.254326801304,
+-0.252994487648,-0.251640906598,-0.250266058153,-0.248869942313,
+-0.247452559078,-0.246013908449,-0.244553990425,-0.243072805006,
+-0.241570352192,-0.240046631984,-0.238501644381,-0.236935389383,
+-0.235347866991,-0.233739077203,-0.232109020021,-0.230457695444,
+-0.228785103473,-0.227091244107,-0.225376117346,-0.22363972319,
+-0.221882061639,-0.220103132694,-0.218302936354,-0.216481472619,
+-0.21463874149,-0.212774742965,-0.210889477046,-0.208982943733,
+-0.207055143024,-0.205106074921,-0.203135739423,-0.20114413653,
+-0.199131266242,-0.19709712856,-0.195041723483,-0.192965051012,
+-0.190867111145,-0.188747903884,-0.186607429228,-0.184445687177,
+-0.182262677732,-0.180058400891,-0.177832856657,-0.175586045027,
+-0.173317966002,-0.171028619583,-0.168718005769,-0.166386124561,
+-0.164032975957,-0.161658559959,-0.159262876566,-0.156845925778,
+-0.154407707596,-0.151948222019,-0.149467469047,-0.14696544868,
+-0.144442160919,-0.141897605763,-0.139331783212,-0.136744693266,
+-0.134136335926,-0.131506711191,-0.128855819061,-0.126183659536,
+-0.123490232617,-0.120775538303,-0.118039576594,-0.11528234749,
+-0.112503850992,-0.109704087099,-0.106883055811,-0.104040757128,
+-0.101177191051,-0.0982923575789,-0.0953862567121,-0.0924588884505,
+-0.0895102527942,-0.0865403497431,-0.0835491792973,-0.0805367414567,
+-0.0775030362214,-0.0744480635914,-0.0713718235666,-0.068274316147,
+-0.0651555413328,-0.0620154991237,-0.0588541895199,-0.0556716125214,
+-0.0524677681281,-0.0492426563401,-0.0459962771574,-0.0427286305798,
+-0.0394397166076,-0.0361295352406,-0.0327980864788,-0.0294453703223,
+-0.0260713867711,-0.0226761358251,-0.0192596174844,-0.0158218317489,
+-0.0123627786187,-0.0088824580937,-0.00538087017398,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0346980899867,-0.0950619631781,
+-0.142316236746,-0.179196203964,-0.207890297022,-0.230144542175,
+-0.24734801622,-0.260602582432,-0.270779649813,-0.278566247038,
+-0.284502320212,-0.289010841192,-0.29242204209,-0.294992863994,
+-0.296922517377,-0.298364892553,-0.29943842591,-0.300233917479,
+-0.300820704072,-0.301251516768,-0.301566289283,-0.30179513267,
+-0.301960649897,-0.30207972964,-0.302164930764,-0.302225546376,
+-0.302268418024,-0.302298555903,-0.302319609072,-0.302334220239,
+-0.302344292101,-0.302351186253,-0.30235587094,-0.302359030193,
+-0.302361143977,-0.302362546689,-0.302363469601,-0.302364071434,
+-0.302364460254,-0.302364709024,-0.302364866579,-0.302364965307,
+-0.302365026487,-0.302365063959,-0.30236508663,-0.30236510017,
+-0.302365108147,-0.302365112781,-0.302365115431,-0.302365116924,
+-0.30236511775,-0.302365118199,-0.302365118439,-0.302365118564,
+-0.302365118628,-0.30236511866,-0.302365118676,-0.302365118683,
+-0.302365118687,-0.302365118688,-0.302365118689,-0.302365118689,
+-0.302365118689,-0.302365118689,-0.302365118689,-0.302365118689,
+-0.302365118689,-0.302365118689,-0.302365118689,-0.302365118689,
+-0.302365118689,-0.302365118689,-0.302365118689,-0.302365118689,
+-0.302365118689,-0.302365118689,-0.302365118689,-0.302365118689,
+-0.302365118689,-0.302365118689,-0.302365118689,-0.302365118689,
+-0.302365118689,-0.302364887204,-0.302350827941,-0.302314999477,
+-0.302257401813,-0.302178034949,-0.302076898885,-0.301953993621,
+-0.301809319157,-0.301642875493,-0.301454662629,-0.301244680565,
+-0.301012929301,-0.300759408837,-0.300484119173,-0.300187060308,
+-0.299868232244,-0.29952763498,-0.299165268515,-0.298781132851,
+-0.298375227986,-0.297947553922,-0.297498110657,-0.297026898193,
+-0.296533916528,-0.296019165663,-0.295482645599,-0.294924356334,
+-0.294344297869,-0.293742470204,-0.293118873339,-0.292473507274,
+-0.291806372009,-0.291117467544,-0.290406793879,-0.289674351014,
+-0.288920138948,-0.288144157683,-0.287346407218,-0.286526887553,
+-0.285685598687,-0.284822540622,-0.283937713356,-0.283031116891,
+-0.282102751225,-0.281152616359,-0.280180712294,-0.279187039028,
+-0.278171596562,-0.277134384897,-0.276075404031,-0.274994653965,
+-0.273892134699,-0.272767846233,-0.271621788567,-0.270453961701,
+-0.269264365635,-0.268053000369,-0.266819865902,-0.265564962236,
+-0.26428828937,-0.262989847303,-0.261669636037,-0.260327655571,
+-0.258963905904,-0.257578387038,-0.256171098971,-0.254742041705,
+-0.253291215238,-0.251818619571,-0.250324254704,-0.248808120638,
+-0.247270217371,-0.245710544904,-0.244129103237,-0.24252589237,
+-0.240900912303,-0.239254163036,-0.237585644569,-0.235895356902,
+-0.234183300035,-0.232449473967,-0.2306938787,-0.228916514233,
+-0.227117380565,-0.225296477698,-0.223453805631,-0.221589364363,
+-0.219703153896,-0.217795174228,-0.21586542536,-0.213913907293,
+-0.211940620025,-0.209945563557,-0.207928737889,-0.205890143021,
+-0.203829778954,-0.201747645686,-0.199643743218,-0.19751807155,
+-0.195370630682,-0.193201420613,-0.191010441345,-0.188797692877,
+-0.186563175209,-0.18430688834,-0.182028832272,-0.179729007004,
+-0.177407412535,-0.175064048867,-0.172698915998,-0.17031201393,
+-0.167903342661,-0.165472902192,-0.163020692524,-0.160546713655,
+-0.158050965586,-0.155533448317,-0.152994161848,-0.150433106179,
+-0.14785028131,-0.145245687241,-0.142619323972,-0.139971191503,
+-0.137301289834,-0.134609618965,-0.131896178896,-0.129160969626,
+-0.126403991157,-0.123625243488,-0.120824726618,-0.118002440549,
+-0.115158385279,-0.11229256081,-0.10940496714,-0.10649560427,
+-0.103564472201,-0.100611570931,-0.0976369004612,-0.0946404607914,
+-0.0916222519215,-0.0885822738516,-0.0855205265816,-0.0824370101116,
+-0.0793317244415,-0.0762046695714,-0.0730558455013,-0.0698852522311,
+-0.0666928897609,-0.0634787580906,-0.0602428572203,-0.0569851871499,
+-0.0537057478795,-0.050404539409,-0.0470815617385,-0.043736814868,
+-0.0403702987974,-0.0369820135268,-0.0335719590561,-0.0301401353854,
+-0.0266865425146,-0.0232111804438,-0.0197140491729,-0.016195148702,
+-0.0126544790311,-0.00909204016007,-0.00550783208903,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0347437818282,-0.0954334750829,
+-0.143212617961,-0.180716618634,-0.210066106748,-0.232962854083,
+-0.250768704993,-0.264570365984,-0.275232453434,-0.283440814801,
+-0.289737812578,-0.294550983601,-0.298216252196,-0.300996677914,
+-0.303097551998,-0.304678516667,-0.305863263886,-0.306747272042,
+-0.307403956988,-0.307889545734,-0.308246924454,-0.308508665651,
+-0.308699400667,-0.308837671954,-0.308937373407,-0.309008865781,
+-0.309059836817,-0.309095961585,-0.309121407157,-0.309139216485,
+-0.309151598982,-0.309160149368,-0.309166011627,-0.309170001184,
+-0.30917269542,-0.309174500352,-0.309175699452,-0.309176489156,
+-0.30917700453,-0.309177337692,-0.309177550934,-0.30917768601,
+-0.309177770645,-0.309177823072,-0.309177855162,-0.309177874557,
+-0.309177886125,-0.309177892929,-0.309177896871,-0.309177899121,
+-0.309177900383,-0.30917790108,-0.309177901456,-0.309177901656,
+-0.30917790176,-0.309177901813,-0.309177901839,-0.309177901852,
+-0.309177901858,-0.30917790186,-0.309177901861,-0.309177901862,
+-0.309177901862,-0.309177901862,-0.309177901862,-0.309177901862,
+-0.309177901862,-0.309177901862,-0.309177901862,-0.309177901862,
+-0.309177901862,-0.309177901862,-0.309177901862,-0.309177901862,
+-0.309177901862,-0.309177901862,-0.309177901862,-0.309177901862,
+-0.309177901862,-0.309177901862,-0.309177901862,-0.309177901862,
+-0.309177901862,-0.309177665162,-0.30916328912,-0.309126653382,
+-0.309067757948,-0.308986602818,-0.308883187992,-0.308757513471,
+-0.308609579253,-0.30843938534,-0.308246931731,-0.308032218426,
+-0.307795245424,-0.307536012727,-0.307254520335,-0.306950768246,
+-0.306624756461,-0.30627648498,-0.305905953804,-0.305513162931,
+-0.305098112363,-0.304660802099,-0.304201232139,-0.303719402483,
+-0.303215313131,-0.302688964083,-0.302140355339,-0.301569486899,
+-0.300976358764,-0.300360970932,-0.299723323405,-0.299063416181,
+-0.298381249262,-0.297676822647,-0.296950136336,-0.296201190329,
+-0.295429984626,-0.294636519227,-0.293820794133,-0.292982809342,
+-0.292122564856,-0.291240060673,-0.290335296795,-0.289408273221,
+-0.28845898995,-0.287487446984,-0.286493644322,-0.285477581965,
+-0.284439259911,-0.283378678161,-0.282295836716,-0.281190735574,
+-0.280063374737,-0.278913754203,-0.277741873974,-0.276547734049,
+-0.275331334428,-0.274092675111,-0.272831756098,-0.27154857739,
+-0.270243138985,-0.268915440884,-0.267565483088,-0.266193265596,
+-0.264798788407,-0.263382051523,-0.261943054943,-0.260481798667,
+-0.258998282695,-0.257492507027,-0.255964471664,-0.254414176604,
+-0.252841621848,-0.251246807397,-0.24962973325,-0.247990399406,
+-0.246328805867,-0.244644952632,-0.242938839701,-0.241210467074,
+-0.239459834751,-0.237686942733,-0.235891791018,-0.234074379607,
+-0.232234708501,-0.230372777699,-0.2284885872,-0.226582137006,
+-0.224653427116,-0.22270245753,-0.220729228248,-0.218733739271,
+-0.216715990597,-0.214675982227,-0.212613714162,-0.2105291864,
+-0.208422398943,-0.20629335179,-0.204142044941,-0.201968478396,
+-0.199772652155,-0.197554566218,-0.195314220585,-0.193051615256,
+-0.190766750232,-0.188459625511,-0.186130241095,-0.183778596983,
+-0.181404693174,-0.17900852967,-0.17659010647,-0.174149423574,
+-0.171686480982,-0.169201278695,-0.166693816711,-0.164164095031,
+-0.161612113656,-0.159037872585,-0.156441371817,-0.153822611354,
+-0.151181591195,-0.14851831134,-0.145832771789,-0.143124972542,
+-0.1403949136,-0.137642594961,-0.134868016626,-0.132071178596,
+-0.12925208087,-0.126410723447,-0.123547106329,-0.120661229515,
+-0.117753093005,-0.114822696799,-0.111870040897,-0.1088951253,
+-0.105897950006,-0.102878515016,-0.099836820331,-0.0967728659496,
+-0.0936866518724,-0.0905781780992,-0.0874474446301,-0.0842944514651,
+-0.0811191986043,-0.0779216860475,-0.0747019137948,-0.0714598818462,
+-0.0681955902016,-0.0649090388612,-0.0616002278249,-0.0582691570926,
+-0.0549158266645,-0.0515402365404,-0.0481423867205,-0.0447222772046,
+-0.0412799079928,-0.0378152790852,-0.0343283904816,-0.0308192421821,
+-0.0272878341867,-0.0237341664953,-0.0201582391081,-0.016560052025,
+-0.012939605246,-0.00929689877101,-0.00563193260016,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0347866539974,-0.0957832771441,
+-0.144059459519,-0.182157649478,-0.212134681668,-0.235650124943,
+-0.25403937717,-0.268373995465,-0.279511368546,-0.288135510926,
+-0.29479047908,-0.299907671275,-0.303828069737,-0.306820311355,
+-0.309095327009,-0.310818165963,-0.312117517515,-0.313093354333,
+-0.313823048217,-0.314366247333,-0.314768752428,-0.31506558662,
+-0.315283417694,-0.315442462307,-0.315557977117,-0.315641421775,
+-0.315701362249,-0.315744169455,-0.315774557192,-0.315795994458,
+-0.315811019977,-0.315821480957,-0.315828713413,-0.315833677631,
+-0.315837059378,-0.315839345099,-0.315840877438,-0.315841895992,
+-0.315842567037,-0.315843005045,-0.315843288182,-0.315843469356,
+-0.315843584057,-0.315843655868,-0.315843700302,-0.315843727459,
+-0.315843743843,-0.315843753594,-0.315843759313,-0.315843762617,
+-0.315843764495,-0.315843765544,-0.31584376612,-0.315843766429,
+-0.315843766593,-0.315843766677,-0.315843766719,-0.31584376674,
+-0.31584376675,-0.315843766755,-0.315843766757,-0.315843766758,
+-0.315843766758,-0.315843766758,-0.315843766758,-0.315843766758,
+-0.315843766758,-0.315843766758,-0.315843766758,-0.315843766758,
+-0.315843766758,-0.315843766758,-0.315843766758,-0.315843766758,
+-0.315843766758,-0.315843766758,-0.315843766758,-0.315843766758,
+-0.315843766758,-0.315843766758,-0.315843766758,-0.315843766758,
+-0.315843766758,-0.315843524954,-0.315828838965,-0.315791413362,
+-0.315731248145,-0.315648343313,-0.315542698867,-0.315414314807,
+-0.315263191133,-0.315089327845,-0.314892724943,-0.314673382426,
+-0.314431300295,-0.31416647855,-0.313878917191,-0.313568616218,
+-0.31323557563,-0.312879795428,-0.312501275612,-0.312100016182,
+-0.311676017138,-0.31122927848,-0.310759800207,-0.31026758232,
+-0.309752624819,-0.309214927704,-0.308654490975,-0.308071314631,
+-0.307465398673,-0.306836743101,-0.306185347915,-0.305511213115,
+-0.3048143387,-0.304094724672,-0.303352371029,-0.302587277772,
+-0.301799444901,-0.300988872415,-0.300155560316,-0.299299508602,
+-0.298420717274,-0.297519186332,-0.296594915776,-0.295647905605,
+-0.29467815582,-0.293685666422,-0.292670437408,-0.291632468781,
+-0.29057176054,-0.289488312684,-0.288382125214,-0.287253198131,
+-0.286101531432,-0.28492712512,-0.283729979194,-0.282510093653,
+-0.281267468498,-0.280002103729,-0.278713999346,-0.277403155348,
+-0.276069571737,-0.274713248511,-0.273334185671,-0.271932383217,
+-0.270507841148,-0.269060559466,-0.267590538169,-0.266097777258,
+-0.264582276733,-0.263044036594,-0.26148305684,-0.259899337473,
+-0.258292878491,-0.256663679895,-0.255011741685,-0.25333706386,
+-0.251639646422,-0.249919489369,-0.248176592702,-0.246410956421,
+-0.244622580526,-0.242811465016,-0.240977609893,-0.239121015155,
+-0.237241680803,-0.235339606837,-0.233414793256,-0.231467240062,
+-0.229496947253,-0.22750391483,-0.225488142793,-0.223449631142,
+-0.221388379876,-0.219304388997,-0.217197658503,-0.215068188395,
+-0.212915978673,-0.210741029336,-0.208543340386,-0.206322911821,
+-0.204079743642,-0.201813835849,-0.199525188441,-0.19721380142,
+-0.194879674784,-0.192522808534,-0.19014320267,-0.187740857192,
+-0.1853157721,-0.182867947393,-0.180397383072,-0.177904079137,
+-0.175388035588,-0.172849252425,-0.170287729648,-0.167703467256,
+-0.16509646525,-0.16246672363,-0.159814242396,-0.157139021547,
+-0.154441061085,-0.151720361008,-0.148976921317,-0.146210742012,
+-0.143421823092,-0.140610164559,-0.137775766411,-0.134918628649,
+-0.132038751273,-0.129136134283,-0.126210777678,-0.12326268146,
+-0.120291845627,-0.11729827018,-0.114281955119,-0.111242900444,
+-0.108181106154,-0.10509657225,-0.101989298732,-0.0988592856003,
+-0.095706532854,-0.0925310404936,-0.0893328085189,-0.0861118369301,
+-0.0828681257271,-0.0796016749099,-0.0763124844786,-0.073000554433,
+-0.0696658847733,-0.0663084754994,-0.0629283266113,-0.059525438109,
+-0.0560998099925,-0.0526514422618,-0.049180334917,-0.045686487958,
+-0.0421699013848,-0.0386305751974,-0.0350685093958,-0.0314837039801,
+-0.0278761589501,-0.024245874306,-0.0205928500477,-0.0169170861752,
+-0.0132185826886,-0.00949733958772,-0.00575335687269,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.034826986376,-0.0961134345192,
+-0.144861272032,-0.183526207645,-0.214104941673,-0.238216765166,
+-0.257171416294,-0.272025376913,-0.283628466914,-0.292662313819,
+-0.299672034386,-0.305092258526,-0.309268449122,-0.312474320446,
+-0.314926029212,-0.316793702931,-0.31821077743,-0.319281536804,
+-0.320087182757,-0.320690704356,-0.321140772298,-0.3214748424,
+-0.321721620136,-0.321903010632,-0.322035655722,-0.322132140805,
+-0.322201938622,-0.322252144237,-0.322288044958,-0.322313560292,
+-0.322331580019,-0.322344222726,-0.322353032541,-0.32235912808,
+-0.322363314594,-0.322366167956,-0.322368097197,-0.322369390776,
+-0.322370250617,-0.32237081698,-0.322371186503,-0.322371425212,
+-0.322371577817,-0.322371674315,-0.322371734639,-0.322371771896,
+-0.322371794616,-0.322371808287,-0.322371816398,-0.322371821138,
+-0.322371823865,-0.322371825408,-0.322371826265,-0.322371826733,
+-0.322371826983,-0.322371827113,-0.32237182718,-0.322371827213,
+-0.322371827229,-0.322371827237,-0.32237182724,-0.322371827242,
+-0.322371827243,-0.322371827243,-0.322371827243,-0.322371827243,
+-0.322371827243,-0.322371827243,-0.322371827243,-0.322371827243,
+-0.322371827243,-0.322371827243,-0.322371827243,-0.322371827243,
+-0.322371827243,-0.322371827243,-0.322371827243,-0.322371827243,
+-0.322371827243,-0.322371827243,-0.322371827243,-0.322371827243,
+-0.322371827243,-0.322371580441,-0.322356590913,-0.322318391773,
+-0.322256983023,-0.322172364661,-0.322064536689,-0.321933499105,
+-0.321779251911,-0.321601795105,-0.321401128688,-0.321177252661,
+-0.320930167022,-0.320659871772,-0.320366366911,-0.32004965244,
+-0.319709728357,-0.319346594663,-0.318960251358,-0.318550698442,
+-0.318117935915,-0.317661963777,-0.317182782027,-0.316680390667,
+-0.316154789696,-0.315605979114,-0.315033958921,-0.314438729116,
+-0.313820289701,-0.313178640675,-0.312513782037,-0.311825713789,
+-0.311114435929,-0.310379948459,-0.309622251377,-0.308841344685,
+-0.308037228381,-0.307209902466,-0.30635936694,-0.305485621804,
+-0.304588667056,-0.303668502697,-0.302725128727,-0.301758545146,
+-0.300768751954,-0.299755749151,-0.298719536737,-0.297660114712,
+-0.296577483076,-0.295471641829,-0.294342590971,-0.293190330502,
+-0.292014860421,-0.29081618073,-0.289594291428,-0.288349192514,
+-0.28708088399,-0.285789365855,-0.284474638108,-0.283136700751,
+-0.281775553782,-0.280391197203,-0.278983631012,-0.27755285521,
+-0.276098869798,-0.274621674774,-0.273121270139,-0.271597655893,
+-0.270050832036,-0.268480798569,-0.26688755549,-0.2652711028,
+-0.263631440499,-0.261968568587,-0.260282487064,-0.258573195929,
+-0.256840695184,-0.255084984828,-0.253306064861,-0.251503935283,
+-0.249678596093,-0.247830047293,-0.245958288882,-0.244063320859,
+-0.242145143226,-0.240203755981,-0.238239159126,-0.236251352659,
+-0.234240336582,-0.232206110893,-0.230148675593,-0.228068030683,
+-0.225964176161,-0.223837112028,-0.221686838284,-0.21951335493,
+-0.217316661964,-0.215096759387,-0.212853647199,-0.2105873254,
+-0.20829779399,-0.205985052969,-0.203649102337,-0.201289942093,
+-0.198907572239,-0.196501992774,-0.194073203698,-0.19162120501,
+-0.189145996712,-0.186647578803,-0.184125951282,-0.181581114151,
+-0.179013067408,-0.176421811055,-0.17380734509,-0.171169669515,
+-0.168508784328,-0.16582468953,-0.163117385122,-0.160386871102,
+-0.157633147471,-0.154856214229,-0.152056071376,-0.149232718912,
+-0.146386156838,-0.143516385152,-0.140623403855,-0.137707212946,
+-0.134767812427,-0.131805202297,-0.128819382556,-0.125810353204,
+-0.122778114241,-0.119722665666,-0.116644007481,-0.113542139685,
+-0.110417062277,-0.107268775259,-0.104097278629,-0.100902572389,
+-0.0976846565374,-0.0944435310748,-0.0911791960012,-0.0878916513165,
+-0.0845808970209,-0.0812469331141,-0.0778897595964,-0.0745093764676,
+-0.0711057837277,-0.0676789813769,-0.064228969415,-0.060755747842,
+-0.057259316658,-0.053739675863,-0.0501968254569,-0.0466307654398,
+-0.0430414958117,-0.0394290165725,-0.0357933277223,-0.0321344292611,
+-0.0284523211888,-0.0247470035054,-0.0210184762111,-0.0172667393057,
+-0.0134917927893,-0.00969363666178,-0.00587227092327,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0348650213389,-0.0964257452818,
+-0.145622003789,-0.184828374523,-0.215984775888,-0.240672027411,
+-0.260174986866,-0.275535186895,-0.287594615255,-0.297032041808,
+-0.304393087174,-0.31011504857,-0.314547343962,-0.317968303169,
+-0.320598921018,-0.322614090561,-0.324151751602,-0.325320319276,
+-0.3262046976,-0.326871132204,-0.327371113628,-0.327744506433,
+-0.328022049051,-0.328227343792,-0.328378435198,-0.328489057144,
+-0.328569614344,-0.328627951711,-0.328669954883,-0.328700016954,
+-0.32872139957,-0.32873651102,-0.328747119351,-0.328754514884,
+-0.328759633502,-0.328763149659,-0.328765546172,-0.328767166274,
+-0.328768252204,-0.32876897363,-0.328769448461,-0.328769757955,
+-0.328769957634,-0.32877008509,-0.328770165536,-0.328770215714,
+-0.328770246625,-0.32877026542,-0.328770276689,-0.328770283349,
+-0.328770287224,-0.328770289442,-0.328770290689,-0.328770291378,
+-0.32877029175,-0.328770291948,-0.32877029205,-0.328770292102,
+-0.328770292127,-0.328770292139,-0.328770292145,-0.328770292148,
+-0.328770292149,-0.328770292149,-0.328770292149,-0.328770292149,
+-0.328770292149,-0.328770292149,-0.328770292149,-0.328770292149,
+-0.328770292149,-0.328770292149,-0.328770292149,-0.328770292149,
+-0.328770292149,-0.328770292149,-0.328770292149,-0.328770292149,
+-0.328770292149,-0.328770292149,-0.328770292149,-0.328770292149,
+-0.328770292149,-0.328770040449,-0.328754753407,-0.328715796088,
+-0.328653168491,-0.328566870617,-0.328456902465,-0.328323264036,
+-0.328165955329,-0.327984976345,-0.327780327083,-0.327552007544,
+-0.327300017727,-0.327024357633,-0.326725027261,-0.326402026612,
+-0.326055355686,-0.325685014482,-0.325291003,-0.324873321241,
+-0.324431969205,-0.323966946891,-0.3234782543,-0.322965891431,
+-0.322429858284,-0.321870154861,-0.321286781159,-0.32067973718,
+-0.320049022924,-0.31939463839,-0.318716583579,-0.31801485849,
+-0.317289463124,-0.316540397481,-0.31576766156,-0.314971255361,
+-0.314151178885,-0.313307432131,-0.3124400151,-0.311548927792,
+-0.310634170206,-0.309695742342,-0.308733644201,-0.307747875783,
+-0.306738437087,-0.305705328114,-0.304648548863,-0.303568099335,
+-0.302463979529,-0.301336189446,-0.300184729085,-0.299009598447,
+-0.297810797531,-0.296588326338,-0.295342184867,-0.294072373119,
+-0.292778891093,-0.29146173879,-0.29012091621,-0.288756423352,
+-0.287368260216,-0.285956426803,-0.284520923113,-0.283061749145,
+-0.281578904899,-0.280072390376,-0.278542205576,-0.276988350498,
+-0.275410825143,-0.27380962951,-0.2721847636,-0.270536227412,
+-0.268864020947,-0.267168144204,-0.265448597184,-0.263705379886,
+-0.261938492311,-0.260147934459,-0.258333706328,-0.256495807921,
+-0.254634239236,-0.252749000273,-0.250840091033,-0.248907511516,
+-0.246951261721,-0.244971341648,-0.242967751299,-0.240940490671,
+-0.238889559766,-0.236814958584,-0.234716687124,-0.232594745387,
+-0.230449133372,-0.22827985108,-0.22608689851,-0.223870275663,
+-0.221629982538,-0.219366019136,-0.217078385457,-0.214767081499,
+-0.212432107265,-0.210073462753,-0.207691147963,-0.205285162896,
+-0.202855507552,-0.20040218193,-0.19792518603,-0.195424519854,
+-0.192900183399,-0.190352176667,-0.187780499658,-0.185185152371,
+-0.182566134807,-0.179923446965,-0.177257088846,-0.174567060449,
+-0.171853361775,-0.169115992823,-0.166354953594,-0.163570244088,
+-0.160761864303,-0.157929814242,-0.155074093903,-0.152194703286,
+-0.149291642392,-0.146364911221,-0.143414509772,-0.140440438045,
+-0.137442696041,-0.13442128376,-0.131376201201,-0.128307448365,
+-0.125215025251,-0.12209893186,-0.118959168191,-0.115795734245,
+-0.112608630021,-0.10939785552,-0.106163410741,-0.102905295685,
+-0.0996235103513,-0.0963180547402,-0.0929889288516,-0.0896361326855,
+-0.086259666242,-0.082859529521,-0.0794357225225,-0.0759882452465,
+-0.0725170976931,-0.0690222798622,-0.0655037917538,-0.0619616333679,
+-0.0583958047045,-0.0548063057637,-0.0511931365454,-0.0475562970496,
+-0.0438957872764,-0.0402116072256,-0.0365037568974,-0.0327722362918,
+-0.0290170454086,-0.025238184248,-0.0214356528098,-0.0176094510942,
+-0.0137595791012,-0.00988603683063,-0.00598882428261,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0349009699886,-0.0967217834698,
+-0.14634512854,-0.186069527104,-0.217781193346,-0.243024170335,
+-0.263059201366,-0.278913036036,-0.291419631412,-0.301254500371,
+-0.308963278445,-0.314985423995,-0.319673831235,-0.323311018925,
+-0.326122457021,-0.328287507273,-0.329948379687,-0.331217443461,
+-0.332183176933,-0.332914995033,-0.333467153625,-0.333881896967,
+-0.334191986482,-0.334422725421,-0.3345935741,-0.334719433758,
+-0.334811663107,-0.334878880067,-0.334927591495,-0.334962685719,
+-0.33498781608,-0.335005698254,-0.335018339642,-0.3350272155,
+-0.335033403474,-0.335037685837,-0.335040626746,-0.335042630298,
+-0.335043983895,-0.335044890433,-0.335045492046,-0.335045887504,
+-0.335046144861,-0.335046310595,-0.335046416155,-0.335046482615,
+-0.335046523949,-0.335046549328,-0.335046564701,-0.33504657388,
+-0.335046579278,-0.335046582402,-0.335046584179,-0.335046585172,
+-0.335046585715,-0.335046586007,-0.33504658616,-0.335046586239,
+-0.335046586278,-0.335046586297,-0.335046586306,-0.33504658631,
+-0.335046586312,-0.335046586313,-0.335046586313,-0.335046586313,
+-0.335046586313,-0.335046586313,-0.335046586313,-0.335046586313,
+-0.335046586313,-0.335046586313,-0.335046586313,-0.335046586313,
+-0.335046586313,-0.335046586313,-0.335046586313,-0.335046586313,
+-0.335046586313,-0.335046586313,-0.335046586313,-0.335046586313,
+-0.335046586313,-0.335046329808,-0.335030750933,-0.33499104991,
+-0.334927226739,-0.33483928142,-0.334727213953,-0.334591024338,
+-0.334430712575,-0.334246278664,-0.334037722605,-0.333805044398,
+-0.333548244042,-0.333267321539,-0.332962276887,-0.332633110088,
+-0.33227982114,-0.331902410045,-0.331500876801,-0.331075221409,
+-0.330625443869,-0.330151544181,-0.329653522345,-0.329131378361,
+-0.328585112229,-0.328014723949,-0.327420213521,-0.326801580945,
+-0.32615882622,-0.325491949348,-0.324800950327,-0.324085829159,
+-0.323346585842,-0.322583220378,-0.321795732765,-0.320984123004,
+-0.320148391095,-0.319288537038,-0.318404560834,-0.317496462481,
+-0.316564241979,-0.31560789933,-0.314627434533,-0.313622847588,
+-0.312594138495,-0.311541307253,-0.310464353864,-0.309363278326,
+-0.308238080641,-0.307088760807,-0.305915318825,-0.304717754695,
+-0.303496068418,-0.302250259992,-0.300980329418,-0.299686276696,
+-0.298368101826,-0.297025804808,-0.295659385641,-0.294268844327,
+-0.292854180865,-0.291415395254,-0.289952487496,-0.28846545759,
+-0.286954305535,-0.285419031332,-0.283859634982,-0.282276116483,
+-0.280668475836,-0.279036713041,-0.277380828098,-0.275700821007,
+-0.273996691768,-0.272268440381,-0.270516066846,-0.268739571163,
+-0.266938953331,-0.265114213352,-0.263265351225,-0.261392366949,
+-0.259495260526,-0.257574031954,-0.255628681234,-0.253659208367,
+-0.251665613351,-0.249647896187,-0.247606056875,-0.245540095415,
+-0.243450011807,-0.241335806051,-0.239197478147,-0.237035028094,
+-0.234848455894,-0.232637761546,-0.230402945049,-0.228144006405,
+-0.225860945612,-0.223553762672,-0.221222457583,-0.218867030346,
+-0.216487480961,-0.214083809429,-0.211656015748,-0.209204099919,
+-0.206728061942,-0.204227901817,-0.201703619543,-0.199155215122,
+-0.196582688553,-0.193986039836,-0.19136526897,-0.188720375957,
+-0.186051360795,-0.183358223486,-0.180640964028,-0.177899582422,
+-0.175134078668,-0.172344452767,-0.169530704717,-0.166692834519,
+-0.163830842173,-0.160944727679,-0.158034491036,-0.155100132246,
+-0.152141651308,-0.149159048222,-0.146152322987,-0.143121475605,
+-0.140066506074,-0.136987414396,-0.133884200569,-0.130756864594,
+-0.127605406471,-0.124429826201,-0.121230123782,-0.118006299215,
+-0.1147583525,-0.111486283637,-0.108190092625,-0.104869779466,
+-0.101525344159,-0.0981567867037,-0.0947641071003,-0.0913473053488,
+-0.0879063814493,-0.0844413354017,-0.0809521672061,-0.0774388768624,
+-0.0739014643706,-0.0703399297308,-0.0667542729429,-0.063144494007,
+-0.0595105929229,-0.0558525696909,-0.0521704243107,-0.0484641567825,
+-0.0447337671063,-0.040979255282,-0.0372006213096,-0.0333978651891,
+-0.0295709869206,-0.0257199865041,-0.0218448639394,-0.0179456192267,
+-0.014022252366,-0.0100747633572,-0.00610315220028,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.034935017167,-0.0970029339183,
+-0.147033717006,-0.187254440773,-0.219500447287,-0.2452805945,
+-0.265832259625,-0.282167606131,-0.29511241577,-0.30533860633,
+-0.313391398337,-0.319711956902,-0.324656215972,-0.328510489114,
+-0.33150438179,-0.333821443083,-0.335607928491,-0.33697998842,
+-0.338029548045,-0.338829102376,-0.339435614607,-0.339893675356,
+-0.340238054539,-0.340495755675,-0.340687663862,-0.340829863024,
+-0.340934684887,-0.341011541105,-0.341067580727,-0.34110820753,
+-0.341137485346,-0.341158454233,-0.341173375961,-0.341183923723,
+-0.341191327999,-0.341196488153,-0.34120005734,-0.34120250676,
+-0.34120417399,-0.341205299134,-0.341206051677,-0.341206550313,
+-0.341206877483,-0.341207089948,-0.34120722644,-0.341207313134,
+-0.341207367543,-0.341207401262,-0.341207421882,-0.341207434316,
+-0.341207441702,-0.341207446021,-0.341207448505,-0.341207449907,
+-0.341207450684,-0.341207451106,-0.341207451331,-0.341207451447,
+-0.341207451506,-0.341207451535,-0.341207451549,-0.341207451555,
+-0.341207451558,-0.341207451559,-0.34120745156,-0.34120745156,
+-0.34120745156,-0.34120745156,-0.34120745156,-0.34120745156,
+-0.34120745156,-0.34120745156,-0.34120745156,-0.34120745156,
+-0.34120745156,-0.34120745156,-0.34120745156,-0.34120745156,
+-0.34120745156,-0.34120745156,-0.34120745156,-0.34120745156,
+-0.34120745156,-0.341207190338,-0.341191324997,-0.341150893949,
+-0.341085897192,-0.340996334727,-0.340882206554,-0.340743512673,
+-0.340580253083,-0.340392427786,-0.34018003678,-0.339943080066,
+-0.339681557643,-0.339395469513,-0.339084815674,-0.338749596128,
+-0.338389810873,-0.33800545991,-0.337596543238,-0.337163060859,
+-0.336705012771,-0.336222398975,-0.335715219471,-0.335183474259,
+-0.334627163339,-0.33404628671,-0.333440844373,-0.332810836329,
+-0.332156262575,-0.331477123114,-0.330773417945,-0.330045147067,
+-0.329292310481,-0.328514908187,-0.327712940185,-0.326886406475,
+-0.326035307056,-0.325159641929,-0.324259411094,-0.323334614551,
+-0.3223852523,-0.321411324341,-0.320412830673,-0.319389771297,
+-0.318342146213,-0.317269955421,-0.316173198921,-0.315051876712,
+-0.313905988795,-0.31273553517,-0.311540515837,-0.310320930796,
+-0.309076780047,-0.307808063589,-0.306514781423,-0.305196933549,
+-0.303854519967,-0.302487540677,-0.301095995678,-0.299679884971,
+-0.298239208557,-0.296773966433,-0.295284158602,-0.293769785063,
+-0.292230845815,-0.290667340859,-0.289079270195,-0.287466633823,
+-0.285829431743,-0.284167663954,-0.282481330458,-0.280770431253,
+-0.27903496634,-0.277274935718,-0.275490339389,-0.273681177351,
+-0.271847449606,-0.269989156152,-0.26810629699,-0.266198872119,
+-0.264266881541,-0.262310325254,-0.260329203259,-0.258323515556,
+-0.256293262145,-0.254238443025,-0.252159058198,-0.250055107662,
+-0.247926591418,-0.245773509466,-0.243595861806,-0.241393648437,
+-0.23916686936,-0.236915524576,-0.234639614083,-0.232339137881,
+-0.230014095972,-0.227664488354,-0.225290315029,-0.222891575995,
+-0.220468271252,-0.218020400802,-0.215547964644,-0.213050962777,
+-0.210529395202,-0.207983261919,-0.205412562928,-0.202817298229,
+-0.200197467821,-0.197553071705,-0.194884109881,-0.192190582349,
+-0.189472489109,-0.18672983016,-0.183962605504,-0.181170815139,
+-0.178354459066,-0.175513537285,-0.172648049795,-0.169757996598,
+-0.166843377692,-0.163904193078,-0.160940442756,-0.157952126726,
+-0.154939244987,-0.151901797541,-0.148839784386,-0.145753205523,
+-0.142642060952,-0.139506350672,-0.136346074685,-0.133161232989,
+-0.129951825585,-0.126717852473,-0.123459313653,-0.120176209124,
+-0.116868538887,-0.113536302943,-0.11017950129,-0.106798133928,
+-0.103392200859,-0.0999617020816,-0.0965066375958,-0.0930270074019,
+-0.0895228114998,-0.0859940498896,-0.0824407225711,-0.0788628295445,
+-0.0752603708097,-0.0716333463667,-0.0679817562155,-0.0643056003562,
+-0.0606048787887,-0.0568795915129,-0.0531297385291,-0.049355319837,
+-0.0455563354367,-0.0417327853283,-0.0378846695117,-0.0340119879869,
+-0.0301147407539,-0.0261929278127,-0.0222465491634,-0.0182756048059,
+-0.0142800947402,-0.0102600189663,-0.00621537748423,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.034967325518,-0.0972704206704,
+-0.147690495559,-0.188387374173,-0.221148138418,-0.247447955921,
+-0.268501565887,-0.28530676583,-0.298681062547,-0.309292493286,
+-0.317685485414,-0.324302502538,-0.329502120127,-0.333574082356,
+-0.336751812534,-0.339222780687,-0.341137072286,-0.342614450721,
+-0.343750161755,-0.344619690115,-0.345282645638,-0.34578592841,
+-0.346166298416,-0.346452454847,-0.346666712898,-0.34682635121,
+-0.346944690721,-0.347031955203,-0.347095955007,-0.347142628143,
+-0.347176466678,-0.347200851312,-0.347218312722,-0.34723073477,
+-0.347239511722,-0.347245669296,-0.347249957373,-0.347252920601,
+-0.347254951891,-0.347256332679,-0.347257263068,-0.347257884231,
+-0.347258294966,-0.347258563827,-0.34725873796,-0.347258849489,
+-0.347258920087,-0.347258964226,-0.347258991463,-0.34725900804,
+-0.347259017983,-0.347259023855,-0.347259027265,-0.347259029212,
+-0.347259030302,-0.347259030901,-0.347259031223,-0.347259031392,
+-0.347259031478,-0.347259031522,-0.347259031542,-0.347259031552,
+-0.347259031557,-0.347259031559,-0.347259031559,-0.34725903156,
+-0.34725903156,-0.34725903156,-0.34725903156,-0.34725903156,
+-0.34725903156,-0.34725903156,-0.34725903156,-0.34725903156,
+-0.34725903156,-0.34725903156,-0.34725903156,-0.34725903156,
+-0.34725903156,-0.34725903156,-0.34725903156,-0.34725903156,
+-0.34725903156,-0.347258765705,-0.34724261898,-0.347201470856,
+-0.347135321331,-0.347044170406,-0.346928018081,-0.346786864355,
+-0.34662070923,-0.346429552704,-0.346213394778,-0.345972235452,
+-0.345706074726,-0.3454149126,-0.345098749073,-0.344757584147,
+-0.34439141782,-0.344000250093,-0.343584080966,-0.343142910439,
+-0.342676738511,-0.342185565184,-0.341669390456,-0.341128214328,
+-0.3405620368,-0.339970857872,-0.339354677544,-0.338713495815,
+-0.338047312687,-0.337356128158,-0.336639942229,-0.3358987549,
+-0.335132566171,-0.334341376041,-0.333525184512,-0.332683991582,
+-0.331817797252,-0.330926601522,-0.330010404392,-0.329069205862,
+-0.328103005931,-0.327111804601,-0.32609560187,-0.325054397739,
+-0.323988192208,-0.322896985277,-0.321780776945,-0.320639567214,
+-0.319473356082,-0.31828214355,-0.317065929618,-0.315824714286,
+-0.314558497553,-0.313267279421,-0.311951059888,-0.310609838955,
+-0.309243616622,-0.307852392889,-0.306436167756,-0.304994941223,
+-0.303528713289,-0.302037483955,-0.300521253221,-0.298980021087,
+-0.297413787553,-0.295822552619,-0.294206316284,-0.292565078549,
+-0.290898839415,-0.28920759888,-0.287491356944,-0.285750113609,
+-0.283983868874,-0.282192622738,-0.280376375202,-0.278535126266,
+-0.27666887593,-0.274777624194,-0.272861371058,-0.270920116521,
+-0.268953860584,-0.266962603248,-0.264946344511,-0.262905084373,
+-0.260838822836,-0.258747559899,-0.256631295561,-0.254490029823,
+-0.252323762685,-0.250132494147,-0.247916224209,-0.24567495287,
+-0.243408680132,-0.241117405993,-0.238801130454,-0.236459853515,
+-0.234093575176,-0.231702295437,-0.229286014297,-0.226844731758,
+-0.224378447818,-0.221887162478,-0.219370875738,-0.216829587597,
+-0.214263298057,-0.211672007116,-0.209055714776,-0.206414421035,
+-0.203748125894,-0.201056829352,-0.198340531411,-0.19559923207,
+-0.192832931328,-0.190041629186,-0.187225325644,-0.184384020702,
+-0.18151771436,-0.178626406617,-0.175710097475,-0.172768786932,
+-0.169802474989,-0.166811161646,-0.163794846903,-0.160753530759,
+-0.157687213216,-0.154595894272,-0.151479573928,-0.148338252184,
+-0.14517192904,-0.141980604496,-0.138764278551,-0.135522951206,
+-0.132256622462,-0.128965292317,-0.125648960772,-0.122307627826,
+-0.118941293481,-0.115549957735,-0.11213362059,-0.108692282044,
+-0.105225942098,-0.101734600752,-0.0982182580053,-0.0946769138588,
+-0.0911105683122,-0.0875192213654,-0.0839028730184,-0.0802615232713,
+-0.076595172124,-0.0729038195766,-0.069187465629,-0.0654461102813,
+-0.0616797535334,-0.0578883953853,-0.0540720358371,-0.0502306748888,
+-0.0463643125402,-0.0424729487916,-0.0385565836427,-0.0346152170938,
+-0.0306488491446,-0.0266574797953,-0.0226411090459,-0.0185997368963,
+-0.0145333633465,-0.0104419883966,-0.00632561204654,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0349980388066,-0.097525330325,
+-0.14831789473,-0.189472139774,-0.222729301251,-0.249532261514,
+-0.271073827698,-0.288337668799,-0.302132954566,-0.313123601638,
+-0.321852911561,-0.328764279361,-0.334218558529,-0.338508587192,
+-0.34187130946,-0.344497864315,-0.346541960857,-0.348126812226,
+-0.349350860339,-0.350292488796,-0.351013891386,-0.351564237843,
+-0.351982256418,-0.352298333905,-0.352536217587,-0.352714389826,
+-0.352847174318,-0.352945623117,-0.353018225182,-0.353071470124,
+-0.353110294924,-0.353138436417,-0.353158708213,-0.353173217256,
+-0.353183532385,-0.353190814891,-0.353195919129,-0.353199469638,
+-0.353201919921,-0.353203597007,-0.353204735013,-0.353205500273,
+-0.353206010029,-0.353206346232,-0.353206565671,-0.353206707337,
+-0.353206797744,-0.353206854742,-0.353206890218,-0.353206912001,
+-0.353206925185,-0.353206933044,-0.353206937654,-0.353206940311,
+-0.353206941815,-0.35320694265,-0.353206943103,-0.353206943344,
+-0.353206943469,-0.353206943532,-0.353206943563,-0.353206943578,
+-0.353206943585,-0.353206943588,-0.353206943589,-0.353206943589,
+-0.35320694359,-0.35320694359,-0.35320694359,-0.35320694359,
+-0.35320694359,-0.35320694359,-0.35320694359,-0.35320694359,
+-0.35320694359,-0.35320694359,-0.35320694359,-0.35320694359,
+-0.35320694359,-0.35320694359,-0.35320694359,-0.35320694359,
+-0.35320694359,-0.353206673181,-0.353190249893,-0.353148396976,
+-0.353081114431,-0.352988402257,-0.352870260455,-0.352726689024,
+-0.352557687965,-0.352363257278,-0.352143396962,-0.351898107018,
+-0.351627387446,-0.351331238245,-0.351009659416,-0.350662650958,
+-0.350290212872,-0.349892345157,-0.349469047814,-0.349020320843,
+-0.348546164243,-0.348046578015,-0.347521562158,-0.346971116673,
+-0.34639524156,-0.345793936818,-0.345167202447,-0.344515038449,
+-0.343837444822,-0.343134421566,-0.342405968682,-0.34165208617,
+-0.340872774029,-0.34006803226,-0.339237860863,-0.338382259837,
+-0.337501229182,-0.3365947689,-0.335662878988,-0.334705559449,
+-0.333722810281,-0.332714631484,-0.33168102306,-0.330621985006,
+-0.329537517325,-0.328427620015,-0.327292293076,-0.326131536509,
+-0.324945350314,-0.32373373449,-0.322496689038,-0.321234213958,
+-0.319946309249,-0.318632974912,-0.317294210946,-0.315930017352,
+-0.314540394129,-0.313125341278,-0.311684858799,-0.310218946691,
+-0.308727604955,-0.30721083359,-0.305668632597,-0.304101001976,
+-0.302507941726,-0.300889451848,-0.299245532341,-0.297576183206,
+-0.295881404443,-0.294161196051,-0.292415558031,-0.290644490382,
+-0.288847993105,-0.287026066199,-0.285178709665,-0.283305923503,
+-0.281407707712,-0.279484062293,-0.277534987246,-0.27556048257,
+-0.273560548265,-0.271535184333,-0.269484390771,-0.267408167582,
+-0.265306514764,-0.263179432317,-0.261026920243,-0.258848978539,
+-0.256645607208,-0.254416806248,-0.252162575659,-0.249882915442,
+-0.247577825597,-0.245247306123,-0.242891357021,-0.240509978291,
+-0.238103169932,-0.235670931945,-0.233213264329,-0.230730167085,
+-0.228221640212,-0.225687683711,-0.223128297582,-0.220543481824,
+-0.217933236438,-0.215297561423,-0.21263645678,-0.209949922509,
+-0.207237958609,-0.204500565081,-0.201737741924,-0.198949489139,
+-0.196135806726,-0.193296694684,-0.190432153013,-0.187542181715,
+-0.184626780788,-0.181685950232,-0.178719690048,-0.175728000236,
+-0.172710880795,-0.169668331726,-0.166600353028,-0.163506944702,
+-0.160388106748,-0.157243839165,-0.154074141954,-0.150879015114,
+-0.147658458646,-0.14441247255,-0.141141056825,-0.137844211472,
+-0.13452193649,-0.13117423188,-0.127801097642,-0.124402533775,
+-0.12097854028,-0.117529117156,-0.114054264404,-0.110553982023,
+-0.107028270014,-0.103477128377,-0.0999005571113,-0.0962985562171,
+-0.0926711256945,-0.0890182655436,-0.0853399757642,-0.0816362563564,
+-0.0779071073202,-0.0741525286556,-0.0703725203626,-0.0665670824411,
+-0.0627362148913,-0.058879917713,-0.0549981909064,-0.0510910344713,
+-0.0471584484078,-0.0432004327159,-0.0392169873956,-0.0352081124469,
+-0.0311738078698,-0.0271140736643,-0.0230289098304,-0.018918316368,
+-0.0147822932773,-0.0106208405581,-0.00643395821054,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0350272846502,-0.0977686313566,
+-0.148918089577,-0.190512162912,-0.224248476728,-0.251538949804,
+-0.273555139933,-0.291266837475,-0.305474844404,-0.31683875587,
+-0.325900454983,-0.333103937915,-0.338812004152,-0.343320274472,
+-0.346868936029,-0.349652558564,-0.35182827752,-0.353522597788,
+-0.35483703526,-0.355852781645,-0.356634550558,-0.357233739185,
+-0.357691019363,-0.35803845436,-0.35830122254,-0.358499016209,
+-0.358647172905,-0.358757587018,-0.358839441681,-0.358899794086,
+-0.358944041741,-0.358976292329,-0.358999655867,-0.359016474441,
+-0.359028502047,-0.35903704468,-0.359043068924,-0.35904728569,
+-0.359050214435,-0.359052232146,-0.359053610468,-0.359054543692,
+-0.359055169699,-0.359055585547,-0.359055858973,-0.359056036828,
+-0.359056151212,-0.359056223901,-0.359056269515,-0.35905629776,
+-0.359056315003,-0.359056325374,-0.359056331513,-0.359056335086,
+-0.359056337128,-0.359056338272,-0.359056338901,-0.359056339238,
+-0.359056339415,-0.359056339506,-0.359056339551,-0.359056339572,
+-0.359056339583,-0.359056339587,-0.359056339589,-0.35905633959,
+-0.35905633959,-0.35905633959,-0.35905633959,-0.35905633959,
+-0.35905633959,-0.35905633959,-0.35905633959,-0.35905633959,
+-0.35905633959,-0.35905633959,-0.35905633959,-0.35905633959,
+-0.35905633959,-0.35905633959,-0.35905633959,-0.35905633959,
+-0.35905633959,-0.359056064704,-0.359039369432,-0.358996823397,
+-0.358928426597,-0.358834179034,-0.358714080707,-0.358568131616,
+-0.358396331762,-0.358198681143,-0.357975179761,-0.357725827614,
+-0.357450624704,-0.35714957103,-0.356822666592,-0.35646991139,
+-0.356091305425,-0.355686848695,-0.355256541202,-0.354800382945,
+-0.354318373924,-0.353810514139,-0.35327680359,-0.352717242277,
+-0.352131830201,-0.35152056736,-0.350883453756,-0.350220489388,
+-0.349531674256,-0.34881700836,-0.3480764917,-0.347310124277,
+-0.346517906089,-0.345699837138,-0.344855917423,-0.343986146944,
+-0.343090525701,-0.342169053694,-0.341221730924,-0.340248557389,
+-0.339249533091,-0.338224658028,-0.337173932202,-0.336097355612,
+-0.334994928259,-0.333866650141,-0.332712521259,-0.331532541614,
+-0.330326711205,-0.329095030032,-0.327837498095,-0.326554115394,
+-0.325244881929,-0.3239097977,-0.322548862708,-0.321162076952,
+-0.319749440432,-0.318310953147,-0.3168466151,-0.315356426288,
+-0.313840386712,-0.312298496373,-0.310730755269,-0.309137163402,
+-0.307517720771,-0.305872427376,-0.304201283217,-0.302504288295,
+-0.300781442608,-0.299032746158,-0.297258198943,-0.295457800965,
+-0.293631552223,-0.291779452717,-0.289901502448,-0.287997701414,
+-0.286068049617,-0.284112547055,-0.28213119373,-0.280123989641,
+-0.278090934788,-0.276032029171,-0.273947272791,-0.271836665646,
+-0.269700207738,-0.267537899066,-0.265349739629,-0.26313572943,
+-0.260895868466,-0.258630156738,-0.256338594246,-0.254021180991,
+-0.251677916972,-0.249308802189,-0.246913836642,-0.244493020331,
+-0.242046353256,-0.239573835417,-0.237075466815,-0.234551247449,
+-0.232001177318,-0.229425256424,-0.226823484766,-0.224195862345,
+-0.221542389159,-0.21886306521,-0.216157890496,-0.213426865019,
+-0.210669988778,-0.207887261773,-0.205078684004,-0.202244255471,
+-0.199383976175,-0.196497846114,-0.19358586529,-0.190648033702,
+-0.18768435135,-0.184694818234,-0.181679434354,-0.178638199711,
+-0.175571114303,-0.172478178132,-0.169359391197,-0.166214753498,
+-0.163044265035,-0.159847925808,-0.156625735817,-0.153377695063,
+-0.150103803544,-0.146804061262,-0.143478468216,-0.140127024406,
+-0.136749729832,-0.133346584495,-0.129917588393,-0.126462741528,
+-0.122982043898,-0.119475495505,-0.115943096348,-0.112384846427,
+-0.108800745743,-0.105190794294,-0.101554992082,-0.0978933391052,
+-0.094205835365,-0.090492480861,-0.086753275593,-0.0829882195612,
+-0.0791973127656,-0.0753805552061,-0.0715379468827,-0.0676694877955,
+-0.0637751779444,-0.0598550173294,-0.0559090059505,-0.0519371438079,
+-0.0479394309013,-0.0439158672309,-0.0398664527966,-0.0357911875984,
+-0.0316900716364,-0.0275631049105,-0.0234102874208,-0.0192316191672,
+-0.0150271001497,-0.0107967303684,-0.00654050982316,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0350551767816,-0.0980011902053,
+-0.149493033468,-0.191510531469,-0.225709773658,-0.253472959537,
+-0.275951056548,-0.294100234889,-0.308712924214,-0.320444231218,
+-0.329834363273,-0.33732762038,-0.343288444539,-0.348014951213,
+-0.351750310883,-0.354692298983,-0.357001288903,-0.358806924655,
+-0.36021367653,-0.361305454106,-0.362149425769,-0.362799172063,
+-0.363297281284,-0.363677479362,-0.363966372049,-0.364184865277,
+-0.364349319214,-0.364472482656,-0.364564246802,-0.36463225106,
+-0.364682368017,-0.364719090121,-0.364745836694,-0.364765196647,
+-0.364779119481,-0.364789064902,-0.364796119444,-0.364801086904,
+-0.364804558121,-0.364806964494,-0.364808618816,-0.364809746234,
+-0.364810507568,-0.364811016781,-0.364811353949,-0.364811574846,
+-0.364811717964,-0.364811809605,-0.364811867561,-0.364811903736,
+-0.364811926004,-0.364811939511,-0.364811947576,-0.364811952313,
+-0.364811955045,-0.364811956592,-0.36481195745,-0.364811957915,
+-0.364811958162,-0.36481195829,-0.364811958354,-0.364811958385,
+-0.3648119584,-0.364811958406,-0.364811958409,-0.364811958411,
+-0.364811958411,-0.364811958411,-0.364811958411,-0.364811958411,
+-0.364811958411,-0.364811958411,-0.364811958411,-0.364811958411,
+-0.364811958411,-0.364811958411,-0.364811958411,-0.364811958411,
+-0.364811958411,-0.364811958411,-0.364811958411,-0.364811958411,
+-0.364811958411,-0.364811679118,-0.364794716224,-0.364751488182,
+-0.364681994993,-0.364586236655,-0.36446421317,-0.364315924538,
+-0.364141370757,-0.363940551829,-0.363713467753,-0.36346011853,
+-0.363180504159,-0.36287462464,-0.362542479973,-0.362184070159,
+-0.361799395197,-0.361388455087,-0.36095124983,-0.360487779425,
+-0.359998043872,-0.359482043171,-0.358939777323,-0.358371246327,
+-0.357776450184,-0.357155388892,-0.356508062453,-0.355834470867,
+-0.355134614132,-0.35440849225,-0.35365610522,-0.352877453043,
+-0.352072535718,-0.351241353245,-0.350383905624,-0.349500192856,
+-0.34859021494,-0.347653971876,-0.346691463665,-0.345702690306,
+-0.344687651799,-0.343646348145,-0.342578779343,-0.341484945393,
+-0.340364846295,-0.33921848205,-0.338045852657,-0.336846958116,
+-0.335621798428,-0.334370373592,-0.333092683608,-0.331788728477,
+-0.330458508197,-0.329102022771,-0.327719272196,-0.326310256474,
+-0.324874975604,-0.323413429586,-0.321925618421,-0.320411542108,
+-0.318871200647,-0.317304594039,-0.315711722282,-0.314092585379,
+-0.312447183327,-0.310775516128,-0.309077583781,-0.307353386286,
+-0.305602923644,-0.303826195854,-0.302023202916,-0.300193944831,
+-0.298338421597,-0.296456633217,-0.294548579688,-0.292614261012,
+-0.290653677188,-0.288666828216,-0.286653714097,-0.28461433483,
+-0.282548690415,-0.280456780853,-0.278338606143,-0.276194166285,
+-0.274023461279,-0.271826491126,-0.269603255825,-0.267353755376,
+-0.26507798978,-0.262775959036,-0.260447663144,-0.258093102105,
+-0.255712275918,-0.253305184583,-0.250871828101,-0.24841220647,
+-0.245926319692,-0.243414167767,-0.240875750694,-0.238311068472,
+-0.235720121104,-0.233102908587,-0.230459430923,-0.227789688111,
+-0.225093680152,-0.222371407045,-0.21962286879,-0.216848065387,
+-0.214046996837,-0.211219663139,-0.208366064293,-0.2054862003,
+-0.202580071159,-0.19964767687,-0.196689017433,-0.193704092849,
+-0.190692903117,-0.187655448238,-0.18459172821,-0.181501743035,
+-0.178385492713,-0.175242977242,-0.172074196624,-0.168879150859,
+-0.165657839945,-0.162410263884,-0.159136422675,-0.155836316318,
+-0.152509944814,-0.149157308162,-0.145778406362,-0.142373239415,
+-0.13894180732,-0.135484110077,-0.132000147687,-0.128489920149,
+-0.124953427463,-0.121390669629,-0.117801646648,-0.114186358519,
+-0.110544805242,-0.106876986818,-0.103182903246,-0.099462554526,
+-0.0957159406585,-0.0919430616434,-0.0881439174805,-0.08431850817,
+-0.0804668337117,-0.0765888941057,-0.0726846893521,-0.0687542194507,
+-0.0647974844017,-0.0608144842049,-0.0568052188604,-0.0527696883683,
+-0.0487078927284,-0.0446198319409,-0.0405055060056,-0.0363649149227,
+-0.032198058692,-0.0280049373137,-0.0237855507876,-0.0195398991139,
+-0.0152679822924,-0.0109698003233,-0.00664535320645,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0350818169358,-0.098223784758,
+-0.150044486544,-0.192470037926,-0.227116920958,-0.255338788292,
+-0.278266652152,-0.296843326541,-0.311852886089,-0.323945811452,
+-0.333660408176,-0.341441012304,-0.347653430809,-0.352598007334,
+-0.356520652814,-0.359622135805,-0.362065887896,-0.36398454502,
+-0.365485415154,-0.366655036408,-0.367562966355,-0.368264923335,
+-0.368805382916,-0.369219717541,-0.369535954246,-0.369776213954,
+-0.369957886134,-0.370094584178,-0.370196919662,-0.370273127524,
+-0.370329568946,-0.370371134251,-0.370401564387,-0.370423706353,
+-0.370439715244,-0.370451213339,-0.370459414778,-0.370465222767,
+-0.37046930499,-0.370472151796,-0.370474120832,-0.370475471094,
+-0.370476388737,-0.370477006509,-0.370477418301,-0.370477689946,
+-0.370477867185,-0.370477981497,-0.370478054329,-0.370478100138,
+-0.370478128559,-0.370478145938,-0.370478156403,-0.370478162602,
+-0.37047816621,-0.370478168272,-0.370478169426,-0.370478170059,
+-0.370478170397,-0.370478170574,-0.370478170664,-0.370478170709,
+-0.37047817073,-0.37047817074,-0.370478170744,-0.370478170746,
+-0.370478170746,-0.370478170747,-0.370478170747,-0.370478170747,
+-0.370478170747,-0.370478170747,-0.370478170747,-0.370478170747,
+-0.370478170747,-0.370478170747,-0.370478170747,-0.370478170747,
+-0.370478170747,-0.370478170747,-0.370478170747,-0.370478170747,
+-0.370478170747,-0.370477887116,-0.370460660756,-0.370416761302,
+-0.370346188753,-0.370248943109,-0.370125024371,-0.369974432539,
+-0.369797167612,-0.36959322959,-0.369362618473,-0.369105334262,
+-0.368821376957,-0.368510746557,-0.368173443062,-0.367809466472,
+-0.367418816789,-0.36700149401,-0.366557498137,-0.366086829169,
+-0.365589487107,-0.36506547195,-0.364514783698,-0.363937422352,
+-0.363333387912,-0.362702680377,-0.362045299747,-0.361361246022,
+-0.360650519203,-0.35991311929,-0.359149046281,-0.358358300179,
+-0.357540880981,-0.356696788689,-0.355826023303,-0.354928584822,
+-0.354004473246,-0.353053688576,-0.352076230811,-0.351072099951,
+-0.350041295997,-0.348983818949,-0.347899668805,-0.346788845567,
+-0.345651349235,-0.344487179808,-0.343296337286,-0.34207882167,
+-0.340834632959,-0.339563771154,-0.338266236254,-0.336942028259,
+-0.33559114717,-0.334213592987,-0.332809365708,-0.331378465335,
+-0.329920891868,-0.328436645306,-0.326925725649,-0.325388132898,
+-0.323823867052,-0.322232928111,-0.320615316076,-0.318971030947,
+-0.317300072723,-0.315602441404,-0.31387813699,-0.312127159482,
+-0.31034950888,-0.308545185183,-0.306714188391,-0.304856518505,
+-0.302972175524,-0.301061159448,-0.299123470278,-0.297159108013,
+-0.295168072654,-0.2931503642,-0.291105982652,-0.289034928009,
+-0.286937200271,-0.284812799439,-0.282661725512,-0.280483978491,
+-0.278279558375,-0.276048465164,-0.273790698859,-0.271506259459,
+-0.269195146965,-0.266857361376,-0.264492902692,-0.262101770914,
+-0.259683966041,-0.257239488074,-0.254768337012,-0.252270512856,
+-0.249746015605,-0.247194845259,-0.244617001819,-0.242012485284,
+-0.239381295654,-0.23672343293,-0.234038897112,-0.231327688199,
+-0.228589806191,-0.225825251089,-0.223034022892,-0.2202161216,
+-0.217371547214,-0.214500299733,-0.211602379158,-0.208677785488,
+-0.205726518723,-0.202748578864,-0.199743965911,-0.196712679862,
+-0.19365472072,-0.190570088482,-0.18745878315,-0.184320804724,
+-0.181156153202,-0.177964828587,-0.174746830876,-0.171502160071,
+-0.168230816172,-0.164932799177,-0.161608109089,-0.158256745905,
+-0.154878709628,-0.151474000255,-0.148042617788,-0.144584562226,
+-0.14109983357,-0.137588431819,-0.134050356974,-0.130485609034,
+-0.126894187999,-0.12327609387,-0.119631326646,-0.115959886328,
+-0.112261772915,-0.108536986407,-0.104785526805,-0.101007394108,
+-0.0972025883168,-0.0933711094308,-0.0895129574503,-0.0856281323752,
+-0.0817166342055,-0.0777784629412,-0.0738136185824,-0.0698221011289,
+-0.0658039105808,-0.0617590469382,-0.057687510201,-0.0535893003691,
+-0.0494644174427,-0.0453128614217,-0.0411346323062,-0.036929730096,
+-0.0326981547912,-0.0284399063919,-0.0241549848979,-0.0198433903094,
+-0.0155051226263,-0.0111401818486,-0.00674856797627,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0351072964317,-0.0984371157079,
+-0.150574039804,-0.193393215128,-0.228473312298,-0.257140542804,
+-0.28050657509,-0.299501133947,-0.314899974468,-0.327348839185,
+-0.337383933347,-0.345449387765,-0.351912120423,-0.357074456399,
+-0.361184819927,-0.364446771953,-0.367026630898,-0.369059882855,
+-0.370656559822,-0.371905740298,-0.3728793053,-0.373635064283,
+-0.374219349191,-0.3746691608,-0.375013939176,-0.375277019496,
+-0.375476825237,-0.375627842824,-0.375741415001,-0.375826384293,
+-0.375889612967,-0.375936401538,-0.375970824299,-0.375995997173,
+-0.376014290649,-0.376027498271,-0.376036969353,-0.37604371301,
+-0.376048479272,-0.376051822023,-0.376054147548,-0.376055751774,
+-0.376056848661,-0.376057591719,-0.376058090197,-0.376058421185,
+-0.376058638601,-0.376058779797,-0.376058870399,-0.376058927801,
+-0.376058963684,-0.376058985796,-0.376058999218,-0.376059007234,
+-0.37605901194,-0.376059014652,-0.376059016185,-0.376059017033,
+-0.376059017492,-0.376059017734,-0.376059017858,-0.37605901792,
+-0.37605901795,-0.376059017964,-0.37605901797,-0.376059017973,
+-0.376059017974,-0.376059017974,-0.376059017974,-0.376059017975,
+-0.376059017975,-0.376059017975,-0.376059017975,-0.376059017975,
+-0.376059017975,-0.376059017975,-0.376059017975,-0.376059017975,
+-0.376059017975,-0.376059017975,-0.376059017975,-0.376059017975,
+-0.376059017975,-0.376058730071,-0.376041244215,-0.375996683464,
+-0.375925047817,-0.375826337274,-0.375700551836,-0.375547691503,
+-0.375367756274,-0.37516074615,-0.37492666113,-0.374665501214,
+-0.374377266403,-0.374061956697,-0.373719572095,-0.373350112598,
+-0.372953578205,-0.372529968916,-0.372079284733,-0.371601525653,
+-0.371096691678,-0.370564782808,-0.370005799042,-0.369419740381,
+-0.368806606824,-0.368166398371,-0.367499115024,-0.36680475678,
+-0.366083323641,-0.365334815607,-0.364559232677,-0.363756574852,
+-0.362926842131,-0.362070034514,-0.361186152003,-0.360275194595,
+-0.359337162292,-0.358372055094,-0.357379873,-0.356360616011,
+-0.355314284126,-0.354240877346,-0.35314039567,-0.352012839098,
+-0.350858207632,-0.349676501269,-0.348467720011,-0.347231863858,
+-0.345968932809,-0.344678926865,-0.343361846025,-0.34201769029,
+-0.340646459659,-0.339248154132,-0.337822773711,-0.336370318393,
+-0.33489078818,-0.333384183072,-0.331850503068,-0.330289748169,
+-0.328701918374,-0.327087013684,-0.325445034098,-0.323775979617,
+-0.32207985024,-0.320356645968,-0.3186063668,-0.316829012736,
+-0.315024583778,-0.313193079923,-0.311334501173,-0.309448847528,
+-0.307536118987,-0.305596315551,-0.303629437219,-0.301635483992,
+-0.299614455869,-0.297566352851,-0.295491174937,-0.293388922128,
+-0.291259594423,-0.289103191823,-0.286919714327,-0.284709161935,
+-0.282471534649,-0.280206832466,-0.277915055389,-0.275596203415,
+-0.273250276547,-0.270877274782,-0.268477198122,-0.266050046567,
+-0.263595820116,-0.26111451877,-0.258606142528,-0.256070691391,
+-0.253508165358,-0.25091856443,-0.248301888606,-0.245658137887,
+-0.242987312272,-0.240289411762,-0.237564436356,-0.234812386055,
+-0.232033260858,-0.229227060766,-0.226393785778,-0.223533435895,
+-0.220646011116,-0.217731511442,-0.214789936872,-0.211821287407,
+-0.208825563046,-0.20580276379,-0.202752889638,-0.199675940591,
+-0.196571916648,-0.19344081781,-0.190282644076,-0.187097395447,
+-0.183885071922,-0.180645673502,-0.177379200186,-0.174085651975,
+-0.170765028868,-0.167417330866,-0.164042557968,-0.160640710175,
+-0.157211787486,-0.153755789902,-0.150272717422,-0.146762570047,
+-0.143225347776,-0.13966105061,-0.136069678548,-0.132451231591,
+-0.128805709738,-0.12513311299,-0.121433441346,-0.117706694807,
+-0.113952873372,-0.110171977042,-0.106364005816,-0.102528959695,
+-0.0986668386785,-0.0947776427663,-0.0908613719586,-0.0869180262554,
+-0.0829476056566,-0.0789501101624,-0.0749255397727,-0.0708738944875,
+-0.0667951743068,-0.0626893792306,-0.0585565092589,-0.0543965643917,
+-0.050209544629,-0.0459954499708,-0.0417542804171,-0.037486035968,
+-0.0331907166233,-0.0288683223831,-0.0245188532474,-0.0201423092162,
+-0.0157386902895,-0.0113079964673,-0.00685022774965,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0351316975067,-0.0986418161761,
+-0.151083135608,-0.19428236685,-0.229782044434,-0.258881982347,
+-0.282675093399,-0.30207828117,-0.317859031822,-0.330658259828,
+-0.341009896155,-0.349357648946,-0.356069314675,-0.361448971313,
+-0.365747343888,-0.369170596223,-0.371887770285,-0.374037065959,
+-0.375731128776,-0.377061490924,-0.378102291248,-0.378913382839,
+-0.379542921721,-0.380029517057,-0.380404011792,-0.380690952705,
+-0.380909800178,-0.381075920472,-0.381201396851,-0.381295690271,
+-0.381366175574,-0.381418575,-0.381457307293,-0.381485767703,
+-0.381506551605,-0.381521632298,-0.381532501742,-0.381540281413,
+-0.381545809195,-0.381549707139,-0.381552434011,-0.381554325821,
+-0.381555626893,-0.38155651354,-0.381557111989,-0.381557511857,
+-0.381557776212,-0.381557949029,-0.381558060677,-0.38155813191,
+-0.381558176759,-0.381558204602,-0.381558221632,-0.381558231884,
+-0.381558237951,-0.381558241478,-0.381558243488,-0.38155824461,
+-0.381558245223,-0.381558245549,-0.381558245719,-0.381558245804,
+-0.381558245846,-0.381558245866,-0.381558245875,-0.381558245879,
+-0.38155824588,-0.381558245881,-0.381558245881,-0.381558245881,
+-0.381558245881,-0.381558245881,-0.381558245881,-0.381558245881,
+-0.381558245881,-0.381558245881,-0.381558245881,-0.381558245881,
+-0.381558245881,-0.381558245881,-0.381558245881,-0.381558245881,
+-0.381558245881,-0.381557953767,-0.38154021221,-0.381494999833,
+-0.381422316636,-0.381322162619,-0.381194537781,-0.381039442124,
+-0.380856875646,-0.380646838348,-0.38040933023,-0.380144351292,
+-0.379851901534,-0.379531980956,-0.379184589558,-0.378809727339,
+-0.378407394301,-0.377977590442,-0.377520315763,-0.377035570264,
+-0.376523353945,-0.375983666806,-0.375416508847,-0.374821880068,
+-0.374199780468,-0.373550210048,-0.372873168809,-0.372168656749,
+-0.371436673869,-0.370677220169,-0.369890295649,-0.369075900309,
+-0.368234034148,-0.367364697168,-0.366467889367,-0.365543610747,
+-0.364591861306,-0.363612641045,-0.362605949964,-0.361571788063,
+-0.360510155342,-0.3594210518,-0.358304477439,-0.357160432257,
+-0.355988916256,-0.354789929434,-0.353563471792,-0.35230954333,
+-0.351028144048,-0.349719273946,-0.348382933023,-0.347019121281,
+-0.345627838718,-0.344209085336,-0.342762861133,-0.34128916611,
+-0.339788000267,-0.338259363604,-0.336703256121,-0.335119677817,
+-0.333508628694,-0.33187010875,-0.330204117987,-0.328510656403,
+-0.326789723999,-0.325041320775,-0.323265446731,-0.321462101867,
+-0.319631286182,-0.317772999678,-0.315887242353,-0.313974014209,
+-0.312033315244,-0.310065145459,-0.308069504854,-0.306046393429,
+-0.303995811184,-0.301917758118,-0.299812234233,-0.297679239527,
+-0.295518774002,-0.293330837656,-0.29111543049,-0.288872552504,
+-0.286602203698,-0.284304384072,-0.281979093625,-0.279626332359,
+-0.277246100272,-0.274838397366,-0.272403223639,-0.269940579092,
+-0.267450463725,-0.264932877538,-0.262387820531,-0.259815292703,
+-0.257215294056,-0.254587824588,-0.251932884301,-0.249250473193,
+-0.246540591265,-0.243803238517,-0.241038414949,-0.238246120561,
+-0.235426355352,-0.232579119324,-0.229704412475,-0.226802234807,
+-0.223872586318,-0.220915467009,-0.21793087688,-0.214918815931,
+-0.211879284162,-0.208812281572,-0.205717808163,-0.202595863933,
+-0.199446448884,-0.196269563014,-0.193065206324,-0.189833378814,
+-0.186574080484,-0.183287311334,-0.179973071363,-0.176631360573,
+-0.173262178962,-0.169865526532,-0.166441403281,-0.16298980921,
+-0.159510744319,-0.156004208608,-0.152470202077,-0.148908724725,
+-0.145319776554,-0.141703357562,-0.138059467751,-0.134388107119,
+-0.130689275667,-0.126962973395,-0.123209200303,-0.119427956391,
+-0.115619241659,-0.111783056106,-0.107919399734,-0.104028272541,
+-0.100109674528,-0.0961636056953,-0.0921900660423,-0.0881890555692,
+-0.084160574276,-0.0801046221627,-0.0760211992292,-0.0719103054757,
+-0.067771940902,-0.0636061055083,-0.0594127992944,-0.0551920222604,
+-0.0509437744063,-0.0466680557321,-0.0423648662378,-0.0380342059233,
+-0.0336760747888,-0.0292904728342,-0.0248774000594,-0.0204368564645,
+-0.0159688420495,-0.0114733568144,-0.00695040075922,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0351550944472,-0.0988384599026,
+-0.151573085197,-0.195139594053,-0.231045950262,-0.260566556304,
+-0.284776134752,-0.30457903541,-0.320734538634,-0.33387866017,
+-0.344542904445,-0.353170360956,-0.360129491685,-0.365725915712,
+-0.370212460024,-0.373797712398,-0.376653282839,-0.378919953967,
+-0.380712877627,-0.382125954619,-0.383235516379,-0.384103411633,
+-0.384779587048,-0.385304238728,-0.385709600652,-0.386021426827,
+-0.386260215773,-0.386442218857,-0.386580267864,-0.386684451854,
+-0.386762668778,-0.386821073343,-0.386864439258,-0.386896451042,
+-0.386919938127,-0.38693706185,-0.386949464153,-0.386958385275,
+-0.386964756449,-0.38696927255,-0.386972448719,-0.386974664266,
+-0.386976196502,-0.386977246662,-0.386977959637,-0.386978438896,
+-0.386978757695,-0.386978967428,-0.386979103809,-0.386979191405,
+-0.386979246939,-0.386979281661,-0.386979303053,-0.386979316029,
+-0.386979323769,-0.386979328304,-0.386979330911,-0.386979332379,
+-0.386979333188,-0.386979333623,-0.386979333851,-0.386979333967,
+-0.386979334024,-0.386979334052,-0.386979334064,-0.38697933407,
+-0.386979334072,-0.386979334073,-0.386979334073,-0.386979334073,
+-0.386979334074,-0.386979334074,-0.386979334074,-0.386979334074,
+-0.386979334074,-0.386979334074,-0.386979334074,-0.386979334074,
+-0.386979334074,-0.386979334074,-0.386979334074,-0.386979334074,
+-0.386979334074,-0.386979037809,-0.386961044185,-0.386915189441,
+-0.386841473578,-0.386739896597,-0.386610458496,-0.386453159276,
+-0.386267998938,-0.38605497748,-0.385814094904,-0.385545351209,
+-0.385248746395,-0.384924280461,-0.384571953409,-0.384191765238,
+-0.383783715948,-0.383347805539,-0.382884034011,-0.382392401364,
+-0.381872907598,-0.381325552714,-0.38075033671,-0.380147259587,
+-0.379516321346,-0.378857521985,-0.378170861506,-0.377456339907,
+-0.37671395719,-0.375943713354,-0.375145608398,-0.374319642324,
+-0.373465815131,-0.372584126819,-0.371674577388,-0.370737166838,
+-0.369771895169,-0.368778762381,-0.367757768474,-0.366708913448,
+-0.365632197304,-0.36452762004,-0.363395181657,-0.362234882156,
+-0.361046721535,-0.359830699796,-0.358586816937,-0.35731507296,
+-0.356015467864,-0.354688001649,-0.353332674314,-0.351949485861,
+-0.350538436289,-0.349099525598,-0.347632753788,-0.346138120859,
+-0.344615626812,-0.343065271645,-0.341487055359,-0.339880977954,
+-0.338247039431,-0.336585239788,-0.334895579027,-0.333178057146,
+-0.331432674147,-0.329659430028,-0.327858324791,-0.326029358435,
+-0.32417253096,-0.322287842366,-0.320375292652,-0.31843488182,
+-0.31646660987,-0.3144704768,-0.312446482611,-0.310394627303,
+-0.308314910876,-0.306207333331,-0.304071894666,-0.301908594882,
+-0.29971743398,-0.297498411958,-0.295251528818,-0.292976784559,
+-0.29067417918,-0.288343712683,-0.285985385067,-0.283599196332,
+-0.281185146478,-0.278743235505,-0.276273463413,-0.273775830202,
+-0.271250335872,-0.268696980423,-0.266115763855,-0.263506686168,
+-0.260869747363,-0.258204947438,-0.255512286395,-0.252791764232,
+-0.250043380951,-0.24726713655,-0.244463031031,-0.241631064393,
+-0.238771236636,-0.235883547759,-0.232967997764,-0.23002458665,
+-0.227053314417,-0.224054181065,-0.221027186595,-0.217972331005,
+-0.214889614296,-0.211779036468,-0.208640597522,-0.205474297456,
+-0.202280136271,-0.199058113968,-0.195808230545,-0.192530486004,
+-0.189224880344,-0.185891413564,-0.182530085666,-0.179140896649,
+-0.175723846513,-0.172278935258,-0.168806162884,-0.165305529391,
+-0.161777034779,-0.158220679048,-0.154636462198,-0.15102438423,
+-0.147384445142,-0.143716644935,-0.14002098361,-0.136297461165,
+-0.132546077602,-0.12876683292,-0.124959727118,-0.121124760198,
+-0.117261932159,-0.113371243001,-0.109452692723,-0.105506281327,
+-0.101532008812,-0.0975298751783,-0.0934998804254,-0.0894420245536,
+-0.0853563075628,-0.0812427294531,-0.0771012902244,-0.0729319898768,
+-0.0687348284102,-0.0645098058247,-0.0602569221202,-0.0559761772968,
+-0.0516675713544,-0.0473311042931,-0.0429667761129,-0.0385745868137,
+-0.0341545363956,-0.0297066248585,-0.0252308522025,-0.0207272184275,
+-0.0161957235336,-0.0116363675207,-0.00704915038892,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0351775545521,-0.0990275682523,
+-0.152045083746,-0.195966817519,-0.232267627434,-0.262197436825,
+-0.286813321318,-0.307007342547,-0.323530648513,-0.337014302332,
+-0.347987248955,-0.356891782586,-0.364096835547,-0.369909371693,
+-0.374584133868,-0.37833196489,-0.381326894748,-0.383712162947,
+-0.385605323735,-0.387102563224,-0.388282340791,-0.389208452503,
+-0.389932601338,-0.390496547609,-0.390933902998,-0.39127162281,
+-0.391531243411,-0.391729905118,-0.391881194958,-0.391995838665,
+-0.392082266886,-0.392147076789,-0.392195406947,-0.392231240637,
+-0.392257650186,-0.392276993021,-0.392291068263,-0.392301241234,
+-0.392308541989,-0.392313742896,-0.392317419404,-0.392319997391,
+-0.392321789844,-0.392323025097,-0.392323868457,-0.392324438635,
+-0.39232482016,-0.392325072688,-0.392325237924,-0.392325344737,
+-0.392325412902,-0.392325455813,-0.392325482438,-0.392325498704,
+-0.39232550848,-0.392325514252,-0.392325517597,-0.392325519496,
+-0.392325520552,-0.392325521124,-0.392325521427,-0.392325521583,
+-0.392325521661,-0.392325521698,-0.392325521716,-0.392325521724,
+-0.392325521727,-0.392325521728,-0.392325521729,-0.392325521729,
+-0.392325521729,-0.392325521729,-0.392325521729,-0.392325521729,
+-0.392325521729,-0.392325521729,-0.392325521729,-0.392325521729,
+-0.392325521729,-0.392325521729,-0.392325521729,-0.392325521729,
+-0.392325521729,-0.392325221372,-0.392306979162,-0.392260490927,
+-0.392185756667,-0.392082776381,-0.39195155007,-0.391792077734,
+-0.391604359373,-0.391388394987,-0.391144184575,-0.390871728139,
+-0.390571025677,-0.390242077189,-0.389884882677,-0.389499442139,
+-0.389085755576,-0.388643822988,-0.388173644375,-0.387675219737,
+-0.387148549073,-0.386593632384,-0.38601046967,-0.385399060931,
+-0.384759406166,-0.384091505376,-0.383395358561,-0.382670965721,
+-0.381918326856,-0.381137441965,-0.380328311049,-0.379490934108,
+-0.378625311142,-0.377731442151,-0.376809327134,-0.375858966092,
+-0.374880359025,-0.373873505933,-0.372838406816,-0.371775061673,
+-0.370683470505,-0.369563633312,-0.368415550094,-0.36723922085,
+-0.366034645581,-0.364801824287,-0.363540756968,-0.362251443624,
+-0.360933884254,-0.359588078859,-0.358214027439,-0.356811729994,
+-0.355381186524,-0.353922397028,-0.352435361507,-0.350920079961,
+-0.34937655239,-0.347804778794,-0.346204759172,-0.344576493525,
+-0.342919981853,-0.341235224156,-0.339522220433,-0.337780970685,
+-0.336011474912,-0.334213733114,-0.332387745291,-0.330533511442,
+-0.328651031569,-0.32674030567,-0.324801333745,-0.322834115796,
+-0.320838651821,-0.318814941822,-0.316762985797,-0.314682783746,
+-0.312574335671,-0.31043764157,-0.308272701444,-0.306079515293,
+-0.303858083117,-0.301608404915,-0.299330480689,-0.297024310437,
+-0.29468989416,-0.292327231857,-0.28993632353,-0.287517169177,
+-0.285069768799,-0.282594122396,-0.280090229967,-0.277558091514,
+-0.274997707035,-0.272409076531,-0.269792200001,-0.267147077447,
+-0.264473708867,-0.261772094262,-0.259042233632,-0.256284126977,
+-0.253497774297,-0.250683175591,-0.24784033086,-0.244969240104,
+-0.242069903322,-0.239142320516,-0.236186491684,-0.233202416827,
+-0.230190095945,-0.227149529038,-0.224080716105,-0.220983657147,
+-0.217858352164,-0.214704801156,-0.211523004122,-0.208312961064,
+-0.20507467198,-0.201808136871,-0.198513355736,-0.195190328577,
+-0.191839055392,-0.188459536182,-0.185051770947,-0.181615759687,
+-0.178151502401,-0.174658999091,-0.171138249755,-0.167589254393,
+-0.164012013007,-0.160406525595,-0.156772792159,-0.153110812696,
+-0.149420587209,-0.145702115697,-0.141955398159,-0.138180434596,
+-0.134377225008,-0.130545769395,-0.126686067756,-0.122798120093,
+-0.118881926404,-0.11493748669,-0.11096480095,-0.106963869186,
+-0.102934691396,-0.098877267581,-0.0947915977408,-0.0906776818755,
+-0.0865355199848,-0.082365112069,-0.078166458128,-0.0739395581618,
+-0.0696844121703,-0.0654010201537,-0.0610893821118,-0.0567494980447,
+-0.0523813679525,-0.047984991835,-0.0435603696923,-0.0391075015243,
+-0.0346263873312,-0.0301170271129,-0.0255794208693,-0.0210135686006,
+-0.0164194703066,-0.0117971259874,-0.00714653564305,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0351991389565,-0.0992096162319,
+-0.152500223348,-0.196765797449,-0.23344946324,-0.26377754732,
+-0.288790000282,-0.30936685837,-0.326251219142,-0.340069153779,
+-0.351346932011,-0.36052589356,-0.367975262171,-0.374003164382,
+-0.378866084671,-0.382776961418,-0.385912103678,-0.388417087075,
+-0.390411767669,-0.39199453547,-0.393245913906,-0.394231598004,
+-0.395005012029,-0.395609456696,-0.39607990675,-0.396444511457,
+-0.396725843348,-0.396941934213,-0.397107131839,-0.397232806139,
+-0.397327929157,-0.397399549753,-0.397453180683,-0.397493113001,
+-0.397522670426,-0.397544414286,-0.397560307916,-0.397571847957,
+-0.397580168717,-0.397586124724,-0.397590355693,-0.397593337387,
+-0.397595421203,-0.397596864821,-0.397597855767,-0.397598529439,
+-0.397598982782,-0.397599284599,-0.397599483273,-0.397599612495,
+-0.397599695485,-0.397599748072,-0.39759978092,-0.397599801129,
+-0.397599813361,-0.397599820639,-0.397599824888,-0.397599827321,
+-0.397599828683,-0.397599829429,-0.397599829827,-0.397599830034,
+-0.397599830138,-0.397599830189,-0.397599830213,-0.397599830224,
+-0.397599830228,-0.39759983023,-0.397599830231,-0.397599830231,
+-0.397599830231,-0.397599830231,-0.397599830231,-0.397599830231,
+-0.397599830231,-0.397599830231,-0.397599830231,-0.397599830231,
+-0.397599830231,-0.397599830231,-0.397599830231,-0.397599830231,
+-0.397599830231,-0.397599525836,-0.397581038384,-0.397533925174,
+-0.397458186209,-0.397353821487,-0.397220831008,-0.397059214773,
+-0.396868972782,-0.396650105034,-0.39640261153,-0.396126492269,
+-0.395821747252,-0.395488376478,-0.395126379948,-0.394735757662,
+-0.394316509619,-0.39386863582,-0.393392136264,-0.392887010952,
+-0.392353259883,-0.391790883058,-0.391199880476,-0.390580252139,
+-0.389931998044,-0.389255118193,-0.388549612586,-0.387815481222,
+-0.387052724102,-0.386261341226,-0.385441332593,-0.384592698203,
+-0.383715438058,-0.382809552155,-0.381875040497,-0.380911903081,
+-0.37992013991,-0.378899750982,-0.377850736297,-0.376773095857,
+-0.375666829659,-0.374531937705,-0.373368419995,-0.372176276529,
+-0.370955507306,-0.369706112326,-0.36842809159,-0.367121445098,
+-0.365786172849,-0.364422274844,-0.363029751082,-0.361608601564,
+-0.360158826289,-0.358680425258,-0.357173398471,-0.355637745927,
+-0.354073467627,-0.35248056357,-0.350859033757,-0.349208878187,
+-0.347530096861,-0.345822689779,-0.34408665694,-0.342321998345,
+-0.340528713993,-0.338706803885,-0.33685626802,-0.334977106399,
+-0.333069319021,-0.331132905887,-0.329167866997,-0.32717420235,
+-0.325151911947,-0.323100995787,-0.321021453871,-0.318913286199,
+-0.31677649277,-0.314611073584,-0.312417028642,-0.310194357944,
+-0.307943061489,-0.305663139278,-0.303354591311,-0.301017417587,
+-0.298651618106,-0.296257192869,-0.293834141876,-0.291382465126,
+-0.28890216262,-0.286393234357,-0.283855680338,-0.281289500563,
+-0.278694695031,-0.276071263742,-0.273419206697,-0.270738523896,
+-0.268029215339,-0.265291281024,-0.262524720954,-0.259729535127,
+-0.256905723543,-0.254053286204,-0.251172223107,-0.248262534254,
+-0.245324219645,-0.24235727928,-0.239361713158,-0.236337521279,
+-0.233284703644,-0.230203260253,-0.227093191105,-0.223954496201,
+-0.22078717554,-0.217591229123,-0.21436665695,-0.21111345902,
+-0.207831635333,-0.20452118589,-0.201182110691,-0.197814409735,
+-0.194418083023,-0.190993130555,-0.18753955233,-0.184057348348,
+-0.18054651861,-0.177007063116,-0.173438981865,-0.169842274858,
+-0.166216942095,-0.162562983575,-0.158880399298,-0.155169189265,
+-0.151429353476,-0.14766089193,-0.143863804628,-0.140038091569,
+-0.136183752754,-0.132300788182,-0.128389197854,-0.12444898177,
+-0.120480139929,-0.116482672332,-0.112456578978,-0.108401859868,
+-0.104318515001,-0.100206544378,-0.096065947999,-0.0918967258631,
+-0.0876988779708,-0.0834724043221,-0.0792173049169,-0.0749335797552,
+-0.0706212288372,-0.0662802521627,-0.0619106497318,-0.0575124215444,
+-0.0530855676006,-0.0486300879003,-0.0441459824437,-0.0396332512306,
+-0.035091894261,-0.030521911535,-0.0259233030526,-0.0212960688138,
+-0.0166402088185,-0.0119557230668,-0.00724261155862,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0352199033406,-0.0993850376822,
+-0.152939504249,-0.197538150502,-0.23459365631,-0.265309587414,
+-0.29070927067,-0.311660976109,-0.328899839634,-0.343046913906,
+-0.354625693016,-0.36407641877,-0.371768442272,-0.378010883795,
+-0.383061806297,-0.387136093139,-0.390412198345,-0.39303791782,
+-0.395135312165,-0.396804895844,-0.398129193342,-0.399175750354,
+-0.399999676904,-0.400645789395,-0.401150409855,-0.401542872927,
+-0.401846784343,-0.402081068667,-0.402260838833,-0.402398115443,
+-0.402502419756,-0.402581260851,-0.402640534382,-0.402684847745,
+-0.402717784201,-0.402742116533,-0.402759979161,-0.402773006168,
+-0.402782441498,-0.402789226493,-0.402794069109,-0.402797498339,
+-0.402799906782,-0.402801583749,-0.402802740855,-0.402803531679,
+-0.402804066769,-0.402804425012,-0.40280466219,-0.402804817373,
+-0.402804917646,-0.402804981583,-0.402805021781,-0.402805046678,
+-0.402805061853,-0.402805070945,-0.402805076294,-0.402805079379,
+-0.402805081121,-0.402805082083,-0.402805082601,-0.402805082872,
+-0.40280508301,-0.402805083078,-0.40280508311,-0.402805083125,
+-0.402805083131,-0.402805083134,-0.402805083135,-0.402805083136,
+-0.402805083136,-0.402805083136,-0.402805083136,-0.402805083136,
+-0.402805083136,-0.402805083136,-0.402805083136,-0.402805083136,
+-0.402805083136,-0.402805083136,-0.402805083136,-0.402805083136,
+-0.402805083136,-0.402804774756,-0.402786045271,-0.40273831527,
+-0.402661584754,-0.402555853721,-0.402421122173,-0.402257390109,
+-0.402064657528,-0.401842924432,-0.40159219082,-0.401312456692,
+-0.401003722049,-0.400665986889,-0.400299251213,-0.399903515022,
+-0.399478778314,-0.399025041091,-0.398542303352,-0.398030565097,
+-0.397489826326,-0.396920087039,-0.396321347236,-0.395693606917,
+-0.395036866082,-0.394351124732,-0.393636382865,-0.392892640483,
+-0.392119897585,-0.39131815417,-0.39048741024,-0.389627665794,
+-0.388738920832,-0.387821175355,-0.386874429361,-0.385898682851,
+-0.384893935826,-0.383860188284,-0.382797440227,-0.381705691654,
+-0.380584942564,-0.379435192959,-0.378256442838,-0.377048692201,
+-0.375811941049,-0.37454618938,-0.373251437195,-0.371927684495,
+-0.370574931278,-0.369193177546,-0.367782423298,-0.366342668534,
+-0.364873913254,-0.363376157458,-0.361849401146,-0.360293644318,
+-0.358708886975,-0.357095129115,-0.35545237074,-0.353780611848,
+-0.352079852441,-0.350350092518,-0.348591332079,-0.346803571124,
+-0.344986809653,-0.343141047666,-0.341266285163,-0.339362522145,
+-0.33742975861,-0.33546799456,-0.333477229993,-0.331457464911,
+-0.329408699313,-0.327330933199,-0.325224166569,-0.323088399423,
+-0.320923631761,-0.318729863584,-0.31650709489,-0.314255325681,
+-0.311974555955,-0.309664785714,-0.307326014957,-0.304958243684,
+-0.302561471895,-0.30013569959,-0.297680926769,-0.295197153432,
+-0.29268437958,-0.290142605211,-0.287571830327,-0.284972054926,
+-0.28234327901,-0.279685502578,-0.27699872563,-0.274282948166,
+-0.271538170186,-0.26876439169,-0.265961612678,-0.263129833151,
+-0.260269053107,-0.257379272548,-0.254460491473,-0.251512709881,
+-0.248535927774,-0.245530145151,-0.242495362012,-0.239431578357,
+-0.236338794187,-0.2332170095,-0.230066224298,-0.226886438579,
+-0.223677652345,-0.220439865594,-0.217173078328,-0.213877290546,
+-0.210552502248,-0.207198713434,-0.203815924104,-0.200404134259,
+-0.196963343897,-0.19349355302,-0.189994761626,-0.186466969717,
+-0.182910177292,-0.179324384351,-0.175709590893,-0.172065796921,
+-0.168393002432,-0.164691207427,-0.160960411906,-0.15720061587,
+-0.153411819317,-0.149594022249,-0.145747224664,-0.141871426564,
+-0.137966627948,-0.134032828816,-0.130070029168,-0.126078229004,
+-0.122057428325,-0.118007627129,-0.113928825418,-0.10982102319,
+-0.105684220447,-0.101518417188,-0.0973236134124,-0.0930998091213,
+-0.0888470043143,-0.0845651989915,-0.0802543931527,-0.075914586798,
+-0.0715457799274,-0.0671479725409,-0.0627211646385,-0.0582653562202,
+-0.053780547286,-0.0492667378359,-0.0447239278699,-0.0401521173879,
+-0.0355513063901,-0.0309214948763,-0.0262626828467,-0.0215748703011,
+-0.0168580572397,-0.0121122436623,-0.00733742956905,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0352398985403,-0.0995542297732,
+-0.153363844622,-0.198285364657,-0.235702235618,-0.266796054865,
+-0.292574006994,-0.313892850775,-0.331479854794,-0.345951037683,
+-0.357827031137,-0.367546849879,-0.37547982188,-0.381935904342,
+-0.387174585859,-0.391412552583,-0.39483027591,-0.397577660981,
+-0.399778878943,-0.401536491298,-0.402934961613,-0.404043638186,
+-0.404919280931,-0.405608196484,-0.40614803739,-0.406569313957,
+-0.406896660999,-0.407149896016,-0.407344900426,-0.407494351068,
+-0.407608325419,-0.407694800588,-0.407760063272,-0.407809045317,
+-0.407845597315,-0.407872710805,-0.407892697977,-0.407907336371,
+-0.407917984876,-0.407925676283,-0.407931190767,-0.407935113924,
+-0.407937882381,-0.407939819422,-0.407941162659,-0.407942085403,
+-0.407942713038,-0.407943135511,-0.407943416768,-0.407943601843,
+-0.407943722133,-0.4079437993,-0.407943848119,-0.407943878551,
+-0.407943897223,-0.407943908488,-0.407943915162,-0.40794391904,
+-0.407943921247,-0.407943922475,-0.407943923141,-0.407943923494,
+-0.407943923674,-0.407943923764,-0.407943923808,-0.407943923828,
+-0.407943923836,-0.40794392384,-0.407943923842,-0.407943923842,
+-0.407943923842,-0.407943923842,-0.407943923842,-0.407943923842,
+-0.407943923842,-0.407943923842,-0.407943923842,-0.407943923842,
+-0.407943923842,-0.407943923842,-0.407943923842,-0.407943923842,
+-0.407943923842,-0.407943611528,-0.4079246431,-0.407876304177,
+-0.40779859476,-0.40769151485,-0.407555064445,-0.407389243547,
+-0.407194052155,-0.406969490268,-0.406715557888,-0.406432255014,
+-0.406119581646,-0.405777537784,-0.405406123428,-0.405005338578,
+-0.404575183234,-0.404115657397,-0.403626761065,-0.403108494239,
+-0.40256085692,-0.401983849106,-0.401377470799,-0.400741721997,
+-0.400076602702,-0.399382112913,-0.39865825263,-0.397905021852,
+-0.397122420581,-0.396310448816,-0.395469106557,-0.394598393805,
+-0.393698310558,-0.392768856817,-0.391810032582,-0.390821837854,
+-0.389804272631,-0.388757336915,-0.387681030704,-0.386575354,
+-0.385440306802,-0.384275889109,-0.383082100923,-0.381858942243,
+-0.380606413069,-0.379324513401,-0.378013243239,-0.376672602583,
+-0.375302591433,-0.37390320979,-0.372474457652,-0.37101633502,
+-0.369528841895,-0.368011978275,-0.366465744162,-0.364890139555,
+-0.363285164453,-0.361650818858,-0.359987102769,-0.358294016186,
+-0.356571559109,-0.354819731538,-0.353038533473,-0.351227964914,
+-0.349388025861,-0.347518716314,-0.345620036274,-0.343691985739,
+-0.341734564711,-0.339747773188,-0.337731611172,-0.335686078661,
+-0.333611175657,-0.331506902159,-0.329373258167,-0.327210243681,
+-0.325017858701,-0.322796103227,-0.320544977259,-0.318264480797,
+-0.315954613841,-0.313615376391,-0.311246768448,-0.30884879001,
+-0.306421441079,-0.303964721653,-0.301478631734,-0.29896317132,
+-0.296418340413,-0.293844139012,-0.291240567117,-0.288607624728,
+-0.285945311845,-0.283253628468,-0.280532574597,-0.277782150232,
+-0.275002355373,-0.272193190021,-0.269354654174,-0.266486747833,
+-0.263589470999,-0.26066282367,-0.257706805848,-0.254721417532,
+-0.251706658721,-0.248662529417,-0.245589029619,-0.242486159327,
+-0.239353918541,-0.236192307261,-0.233001325487,-0.229780973219,
+-0.226531250457,-0.223252157202,-0.219943693452,-0.216605859209,
+-0.213238654471,-0.20984207924,-0.206416133514,-0.202960817295,
+-0.199476130582,-0.195962073374,-0.192418645673,-0.188845847478,
+-0.185243678789,-0.181612139606,-0.177951229929,-0.174260949759,
+-0.170541299094,-0.166792277935,-0.163013886283,-0.159206124136,
+-0.155368991495,-0.151502488361,-0.147606614733,-0.14368137061,
+-0.139726755994,-0.135742770884,-0.13172941528,-0.127686689182,
+-0.12361459259,-0.119513125504,-0.115382287924,-0.11122207985,
+-0.107032501282,-0.102813552221,-0.0985652326651,-0.0942875426156,
+-0.0899804820721,-0.0856440510347,-0.0812782495033,-0.076883077478,
+-0.0724585349588,-0.0680046219456,-0.0635213384385,-0.0590086844374,
+-0.0544666599425,-0.0498952649535,-0.0452944994707,-0.0406643634939,
+-0.0360048570231,-0.0313159800585,-0.0265977325999,-0.0218501146473,
+-0.0170731262008,-0.0122667672604,-0.00743103782608,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0352591710771,-0.0997175569127,
+-0.153774089086,-0.199008812221,-0.236777077172,-0.26823926489,
+-0.294386880157,-0.316065420761,-0.333994386703,-0.348784756726,
+-0.360954225581,-0.370940464652,-0.379112640706,-0.385781402278,
+-0.391207520386,-0.395609349678,-0.399169257523,-0.402039151874,
+-0.404345223672,-0.406192006104,-0.407665840947,-0.408837831401,
+-0.409766351196,-0.410499171155,-0.411075256712,-0.411526283133,
+-0.411877909135,-0.41215084428,-0.412361740809,-0.412523936455,
+-0.412648071114,-0.412742597063,-0.412814199624,-0.412868142739,
+-0.412908551771,-0.41293864405,-0.41296091603,-0.41297729459,
+-0.41298925881,-0.412997937524,-0.413004187098,-0.413008653125,
+-0.413011819117,-0.413014044708,-0.413015595472,-0.413016666036,
+-0.413017397907,-0.413017893108,-0.413018224547,-0.413018443843,
+-0.413018587184,-0.413018679675,-0.413018738541,-0.413018775463,
+-0.413018798263,-0.41301881211,-0.413018820371,-0.413018825205,
+-0.413018827976,-0.41301882953,-0.41301883038,-0.413018830833,
+-0.413018831068,-0.413018831186,-0.413018831243,-0.41301883127,
+-0.413018831281,-0.413018831287,-0.413018831289,-0.413018831289,
+-0.41301883129,-0.41301883129,-0.41301883129,-0.41301883129,
+-0.41301883129,-0.41301883129,-0.41301883129,-0.41301883129,
+-0.41301883129,-0.41301883129,-0.41301883129,-0.41301883129,
+-0.41301883129,-0.41301851509,-0.41299931069,-0.412950370422,
+-0.412871694284,-0.412763282277,-0.412625134401,-0.412457250656,
+-0.412259631042,-0.412032275559,-0.411775184207,-0.411488356986,
+-0.411171793896,-0.410825494937,-0.410449460109,-0.410043689412,
+-0.409608182846,-0.409142940411,-0.408647962107,-0.408123247934,
+-0.407568797892,-0.406984611981,-0.406370690201,-0.405727032552,
+-0.405053639034,-0.404350509647,-0.403617644391,-0.402855043266,
+-0.402062706272,-0.401240633409,-0.400388824677,-0.399507280076,
+-0.398595999606,-0.397654983267,-0.396684231059,-0.395683742982,
+-0.394653519036,-0.393593559221,-0.392503863537,-0.391384431984,
+-0.390235264562,-0.389056361271,-0.387847722111,-0.386609347082,
+-0.385341236184,-0.384043389417,-0.382715806781,-0.381358488276,
+-0.379971433902,-0.378554643659,-0.377108117546,-0.375631855565,
+-0.374125857715,-0.372590123996,-0.371024654408,-0.369429448951,
+-0.367804507625,-0.36614983043,-0.364465417366,-0.362751268432,
+-0.36100738363,-0.359233762959,-0.357430406419,-0.35559731401,
+-0.353734485732,-0.351841921585,-0.349919621569,-0.347967585683,
+-0.345985813929,-0.343974306306,-0.341933062814,-0.339862083453,
+-0.337761368223,-0.335630917123,-0.333470730155,-0.331280807318,
+-0.329061148612,-0.326811754037,-0.324532623593,-0.322223757279,
+-0.319885155097,-0.317516817046,-0.315118743126,-0.312690933337,
+-0.310233387678,-0.307746106151,-0.305229088755,-0.30268233549,
+-0.300105846355,-0.297499621352,-0.29486366048,-0.292197963739,
+-0.289502531129,-0.286777362649,-0.284022458301,-0.281237818084,
+-0.278423441998,-0.275579330042,-0.272705482218,-0.269801898525,
+-0.266868578962,-0.263905523531,-0.260912732231,-0.257890205062,
+-0.254837942023,-0.251755943116,-0.24864420834,-0.245502737694,
+-0.24233153118,-0.239130588797,-0.235899910545,-0.232639496423,
+-0.229349346433,-0.226029460574,-0.222679838845,-0.219300481248,
+-0.215891387782,-0.212452558446,-0.208983993242,-0.205485692169,
+-0.201957655226,-0.198399882415,-0.194812373735,-0.191195129185,
+-0.187548148767,-0.18387143248,-0.180164980323,-0.176428792298,
+-0.172662868403,-0.16886720864,-0.165041813008,-0.161186681506,
+-0.157301814136,-0.153387210897,-0.149442871788,-0.145468796811,
+-0.141464985964,-0.137431439249,-0.133368156665,-0.129275138211,
+-0.125152383889,-0.120999893697,-0.116817667637,-0.112605705707,
+-0.108364007909,-0.104092574242,-0.0997914047051,-0.0954604992997,
+-0.0910998580252,-0.0867094808818,-0.0822893678693,-0.0778395189879,
+-0.0733599342374,-0.068850613618,-0.0643115571295,-0.059742764772,
+-0.0551442365456,-0.0505159724501,-0.0458579724856,-0.0411702366521,
+-0.0364527649496,-0.0317055573781,-0.0269286139376,-0.0221219346281,
+-0.0172855194496,-0.0124193684021,-0.00752348148561,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.035277763618,-0.0998753541552,
+-0.154171016167,-0.199709761259,-0.237819918727,-0.269641367245,
+-0.296150375996,-0.318181427043,-0.336446353956,-0.351551098139,
+-0.36401035375,-0.374260344283,-0.382669948613,-0.389550371376,
+-0.395163531782,-0.399729326116,-0.403431902224,-0.406425068909,
+-0.40883694933,-0.410773975093,-0.412324306493,-0.413560754392,
+-0.414543270191,-0.415321062378,-0.415934390921,-0.416416084451,
+-0.416792819456,-0.417086195714,-0.417313637712,-0.417489147882,
+-0.417623933986,-0.417726929949,-0.41780522675,-0.417864427627,
+-0.4179089398,-0.41794221315,-0.417966934693,-0.417985186399,
+-0.417998572694,-0.418008323006,-0.418015373853,-0.418020434227,
+-0.418024037407,-0.418026581795,-0.418028362919,-0.418029598365,
+-0.41803044708,-0.418031024223,-0.418031412498,-0.418031670763,
+-0.418031840497,-0.418031950635,-0.418032021139,-0.418032065626,
+-0.418032093268,-0.418032110163,-0.418032120308,-0.418032126287,
+-0.418032129738,-0.418032131688,-0.418032132763,-0.41803213334,
+-0.418032133642,-0.418032133795,-0.41803213387,-0.418032133905,
+-0.418032133921,-0.418032133928,-0.418032133931,-0.418032133932,
+-0.418032133932,-0.418032133932,-0.418032133932,-0.418032133932,
+-0.418032133932,-0.418032133932,-0.418032133932,-0.418032133932,
+-0.418032133932,-0.418032133932,-0.418032133932,-0.418032133932,
+-0.418032133932,-0.418031813895,-0.418012376388,-0.417962842073,
+-0.417883210949,-0.417773483016,-0.417633658274,-0.417463736724,
+-0.417263718365,-0.417033603197,-0.41677339122,-0.416483082435,
+-0.416162676841,-0.415812174438,-0.415431575226,-0.415020879206,
+-0.414580086377,-0.414109196739,-0.413608210292,-0.413077127037,
+-0.412515946973,-0.4119246701,-0.411303296419,-0.410651825928,
+-0.409970258629,-0.409258594521,-0.408516833605,-0.40774497588,
+-0.406943021346,-0.406110970003,-0.405248821851,-0.404356576891,
+-0.403434235122,-0.402481796544,-0.401499261158,-0.400486628962,
+-0.399443899958,-0.398371074146,-0.397268151524,-0.396135132094,
+-0.394972015855,-0.393778802807,-0.392555492951,-0.391302086285,
+-0.390018582811,-0.388704982529,-0.387361285437,-0.385987491537,
+-0.384583600828,-0.38314961331,-0.381685528984,-0.380191347849,
+-0.378667069905,-0.377112695152,-0.375528223591,-0.37391365522,
+-0.372268990041,-0.370594228054,-0.368889369257,-0.367154413652,
+-0.365389361238,-0.363594212016,-0.361768965984,-0.359913623144,
+-0.358028183495,-0.356112647037,-0.354167013771,-0.352191283696,
+-0.350185456812,-0.348149533119,-0.346083512618,-0.343987395308,
+-0.341861181189,-0.339704870261,-0.337518462525,-0.33530195798,
+-0.333055356626,-0.330778658463,-0.328471863492,-0.326134971712,
+-0.323767983123,-0.321370897725,-0.318943715519,-0.316486436504,
+-0.31399906068,-0.311481588048,-0.308934018606,-0.306356352356,
+-0.303748589297,-0.30111072943,-0.298442772753,-0.295744719268,
+-0.293016568975,-0.290258321872,-0.287469977961,-0.284651537241,
+-0.281802999712,-0.278924365374,-0.276015634228,-0.273076806273,
+-0.270107881509,-0.267108859937,-0.264079741556,-0.261020526366,
+-0.257931214367,-0.254811805559,-0.251662299943,-0.248482697518,
+-0.245272998284,-0.242033202242,-0.238763309391,-0.235463319731,
+-0.232133233262,-0.228773049984,-0.225382769898,-0.221962393003,
+-0.218511919299,-0.215031348787,-0.211520681466,-0.207979917336,
+-0.204409056397,-0.20080809865,-0.197177044094,-0.193515892729,
+-0.189824644555,-0.186103299573,-0.182351857781,-0.178570319181,
+-0.174758683773,-0.170916951555,-0.167045122529,-0.163143196694,
+-0.159211174051,-0.155249054598,-0.151256838337,-0.147234525267,
+-0.143182115389,-0.139099608701,-0.134987005205,-0.1308443049,
+-0.126671507787,-0.122468613864,-0.118235623133,-0.113972535593,
+-0.109679351245,-0.105356070087,-0.101002692121,-0.0966192173463,
+-0.0922056457627,-0.0877619773703,-0.0832882121692,-0.0787843501594,
+-0.0742503913408,-0.0696863357135,-0.0650921832774,-0.0604679340326,
+-0.0558135879791,-0.0511291451168,-0.0464146054457,-0.0416699689659,
+-0.0368952356774,-0.0320904055801,-0.027255478674,-0.0223904549592,
+-0.0174953344357,-0.0125701171034,-0.00761480296239,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0352957153773,-0.100027930186,
+-0.154555344851,-0.200389385655,-0.23883237278,-0.271004361371,
+-0.297866811774,-0.320243430312,-0.338838488879,-0.354252901398,
+-0.366998307544,-0.377509388985,-0.386154620447,-0.393245637034,
+-0.399045380284,-0.403775168272,-0.407620819439,-0.410737945767,
+-0.413256518176,-0.415284795503,-0.416912698115,-0.41821469785,
+-0.419252287661,-0.420076086824,-0.420727630872,-0.421240889421,
+-0.421643549733,-0.421958099073,-0.422202734738,-0.42239212686,
+-0.422538055794,-0.422649942966,-0.422735291508,-0.422800050712,
+-0.422848916388,-0.422885577453,-0.422912917585,-0.422933179449,
+-0.42294809788,-0.422959007401,-0.422966928619,-0.422972637329,
+-0.42297671948,-0.422979614684,-0.42298165046,-0.422983069026,
+-0.422984048134,-0.422984717168,-0.422985169505,-0.42298547192,
+-0.422985671719,-0.422985802068,-0.422985885979,-0.422985939231,
+-0.422985972516,-0.422985992986,-0.422986005358,-0.422986012696,
+-0.422986016962,-0.422986019389,-0.422986020737,-0.422986021467,
+-0.422986021852,-0.422986022048,-0.422986022145,-0.422986022191,
+-0.422986022212,-0.422986022222,-0.422986022225,-0.422986022227,
+-0.422986022227,-0.422986022228,-0.422986022228,-0.422986022228,
+-0.422986022228,-0.422986022228,-0.422986022228,-0.422986022228,
+-0.422986022228,-0.422986022228,-0.422986022228,-0.422986022228,
+-0.422986022228,-0.422985698398,-0.422966030547,-0.422915909225,
+-0.422835334433,-0.422724306169,-0.422582824435,-0.42241088923,
+-0.422208500554,-0.421975658407,-0.42171236279,-0.421418613701,
+-0.421094411142,-0.420739755111,-0.42035464561,-0.419939082638,
+-0.419493066195,-0.419016596281,-0.418509672897,-0.417972296041,
+-0.417404465715,-0.416806181917,-0.416177444649,-0.41551825391,
+-0.4148286097,-0.41410851202,-0.413357960868,-0.412576956246,
+-0.411765498152,-0.410923586588,-0.410051221553,-0.409148403047,
+-0.40821513107,-0.407251405622,-0.406257226704,-0.405232594314,
+-0.404177508454,-0.403091969123,-0.401975976321,-0.400829530048,
+-0.399652630304,-0.398445277089,-0.397207470404,-0.395939210248,
+-0.39464049662,-0.393311329522,-0.391951708953,-0.390561634913,
+-0.389141107402,-0.387690126421,-0.386208691968,-0.384696804045,
+-0.383154462651,-0.381581667786,-0.37997841945,-0.378344717643,
+-0.376680562365,-0.374985953617,-0.373260891397,-0.371505375707,
+-0.369719406546,-0.367902983914,-0.366056107811,-0.364178778237,
+-0.362270995192,-0.360332758677,-0.35836406869,-0.356364925233,
+-0.354335328305,-0.352275277906,-0.350184774036,-0.348063816695,
+-0.345912405884,-0.343730541601,-0.341518223848,-0.339275452623,
+-0.337002227928,-0.334698549762,-0.332364418126,-0.329999833018,
+-0.327604794439,-0.32517930239,-0.322723356869,-0.320236957878,
+-0.317720105416,-0.315172799483,-0.312595040079,-0.309986827205,
+-0.307348160859,-0.304679041043,-0.301979467756,-0.299249440997,
+-0.296488960768,-0.293698027069,-0.290876639898,-0.288024799256,
+-0.285142505144,-0.28222975756,-0.279286556506,-0.276312901981,
+-0.273308793985,-0.270274232518,-0.26720921758,-0.264113749172,
+-0.260987827292,-0.257831451942,-0.254644623121,-0.251427340829,
+-0.248179605066,-0.244901415832,-0.241592773127,-0.238253676952,
+-0.234884127305,-0.231484124188,-0.2280536676,-0.224592757541,
+-0.221101394011,-0.21757957701,-0.214027306539,-0.210444582596,
+-0.206831405183,-0.203187774299,-0.199513689943,-0.195809152117,
+-0.192074160821,-0.188308716053,-0.184512817814,-0.180686466105,
+-0.176829660924,-0.172942402273,-0.169024690151,-0.165076524558,
+-0.161097905494,-0.15708883296,-0.153049306954,-0.148979327478,
+-0.144878894531,-0.140748008112,-0.136586668223,-0.132394874863,
+-0.128172628033,-0.123919927731,-0.119636773959,-0.115323166715,
+-0.110979106001,-0.106604591816,-0.10219962416,-0.0977642030329,
+-0.0932983284352,-0.0888020003666,-0.0842752188272,-0.0797179838168,
+-0.0751302953356,-0.0705121533835,-0.0658635579606,-0.0611845090668,
+-0.0564750067021,-0.0517350508665,-0.0469646415601,-0.0421637787828,
+-0.0373324625347,-0.0324706928156,-0.0275784696257,-0.022655792965,
+-0.0177026628333,-0.0127190792308,-0.00770504215743,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0353130624686,-0.100175569943,
+-0.154927740353,-0.201048774012,-0.239815938098,-0.27233010986,
+-0.299538350883,-0.322253826288,-0.341173352951,-0.356892833523,
+-0.369920808029,-0.380690332029,-0.389569369416,-0.396869868997,
+-0.402855676606,-0.407749418854,-0.411738480227,-0.414980182356,
+-0.417606262492,-0.419726737609,-0.421433230967,-0.42280182933,
+-0.423895531204,-0.42476633953,-0.42545704591,-0.426002747884,
+-0.426432135704,-0.426768580585,-0.427031052396,-0.427234891222,
+-0.427392454049,-0.427513655053,-0.427606415495,-0.42767703705,
+-0.427730510495,-0.427770770001,-0.427800901792,-0.42782331469,
+-0.4278398789,-0.427852038474,-0.427860902027,-0.427867315548,
+-0.427871920571,-0.427875200389,-0.427877516579,-0.4278791377,
+-0.427880261706,-0.427881033342,-0.427881557554,-0.427881909755,
+-0.42788214363,-0.427882297012,-0.427882396283,-0.427882459634,
+-0.427882499461,-0.4278825241,-0.427882539083,-0.427882548028,
+-0.427882553263,-0.427882556261,-0.427882557938,-0.427882558854,
+-0.42788255934,-0.42788255959,-0.427882559714,-0.427882559774,
+-0.427882559802,-0.427882559814,-0.427882559819,-0.427882559821,
+-0.427882559822,-0.427882559822,-0.427882559822,-0.427882559822,
+-0.427882559822,-0.427882559822,-0.427882559822,-0.427882559822,
+-0.427882559822,-0.427882559822,-0.427882559822,-0.427882559822,
+-0.427882559822,-0.427882232243,-0.427862336715,-0.427811635183,
+-0.427730127647,-0.427617814107,-0.427474694563,-0.427300769015,
+-0.427096037463,-0.426860499907,-0.426594156348,-0.426297006784,
+-0.425969051216,-0.425610289645,-0.425220722069,-0.42480034849,
+-0.424349168906,-0.423867183319,-0.423354391727,-0.422810794132,
+-0.422236390533,-0.42163118093,-0.420995165322,-0.420328343711,
+-0.419630716096,-0.418902282477,-0.418143042854,-0.417352997227,
+-0.416532145597,-0.415680487962,-0.414798024323,-0.41388475468,
+-0.412940679034,-0.411965797383,-0.410960109728,-0.40992361607,
+-0.408856316408,-0.407758210741,-0.406629299071,-0.405469581396,
+-0.404279057718,-0.403057728036,-0.40180559235,-0.40052265066,
+-0.399208902966,-0.397864349268,-0.396488989566,-0.39508282386,
+-0.39364585215,-0.392178074436,-0.390679490719,-0.389150100997,
+-0.387589905271,-0.385998903542,-0.384377095808,-0.382724482071,
+-0.381041062329,-0.379326836584,-0.377581804835,-0.375805967081,
+-0.373999323324,-0.372161873563,-0.370293617798,-0.368394556029,
+-0.366464688256,-0.364504014479,-0.362512534698,-0.360490248913,
+-0.358437157124,-0.356353259331,-0.354238555535,-0.352093045734,
+-0.349916729929,-0.347709608121,-0.345471680308,-0.343202946492,
+-0.340903406671,-0.338573060847,-0.336211909019,-0.333819951186,
+-0.33139718735,-0.32894361751,-0.326459241666,-0.323944059818,
+-0.321398071966,-0.31882127811,-0.31621367825,-0.313575272386,
+-0.310906060518,-0.308206042647,-0.305475218771,-0.302713588891,
+-0.299921153008,-0.29709791112,-0.294243863228,-0.291359009333,
+-0.288443349434,-0.28549688353,-0.282519611623,-0.279511533712,
+-0.276472649797,-0.273402959877,-0.270302463954,-0.267171162027,
+-0.264009054096,-0.260816140161,-0.257592420222,-0.25433789428,
+-0.251052562333,-0.247736424382,-0.244389480427,-0.241011730469,
+-0.237603174506,-0.23416381254,-0.230693644569,-0.227192670595,
+-0.223660890616,-0.220098304634,-0.216504912648,-0.212880714657,
+-0.209225710663,-0.205539900665,-0.201823284663,-0.198075862657,
+-0.194297634647,-0.190488600633,-0.186648760615,-0.182778114593,
+-0.178876662568,-0.174944404538,-0.170981340504,-0.166987470467,
+-0.162962794425,-0.15890731238,-0.15482102433,-0.150703930277,
+-0.146556030219,-0.142377324158,-0.138167812093,-0.133927494023,
+-0.12965636995,-0.125354439873,-0.121021703792,-0.116658161707,
+-0.112263813618,-0.107838659525,-0.103382699428,-0.0988959333275,
+-0.0943783612228,-0.0898299831141,-0.0852507990014,-0.0806408088848,
+-0.0760000127642,-0.0713284106397,-0.0666260025113,-0.0618927883789,
+-0.0571287682425,-0.0523339421022,-0.047508309958,-0.0426518718098,
+-0.0377646276576,-0.0328465775015,-0.0278977213415,-0.0229180591775,
+-0.0179075910095,-0.0128663168376,-0.00779423666176,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0353298382126,-0.100318536923,
+-0.155288819211,-0.20168893753,-0.240772009955,-0.273620350454,
+-0.301167015984,-0.324214859452,-0.343453350668,-0.359473402733,
+-0.372780418684,-0.383805752441,-0.392916759182,-0.400425592875,
+-0.406596892922,-0.411654487426,-0.415787227444,-0.419154054691,
+-0.421888394279,-0.424101954282,-0.425888004995,-0.427324202741,
+-0.428475015791,-0.429393803458,-0.430124593495,-0.4307035977,
+-0.431160500836,-0.431519553782,-0.431800498,-0.43201934507,
+-0.432189032002,-0.432319970389,-0.432420505096,-0.432497296085,
+-0.432555635135,-0.432599707609,-0.432632807958,-0.432657516458,
+-0.432675843542,-0.432689347167,-0.432699227822,-0.432706405083,
+-0.432711578987,-0.432715278996,-0.43271790284,-0.432719747161,
+-0.432721031547,-0.432721917268,-0.432722521779,-0.432722929871,
+-0.432723202191,-0.432723381692,-0.432723498474,-0.432723573403,
+-0.432723620771,-0.432723650245,-0.432723668275,-0.432723679105,
+-0.432723685484,-0.432723689162,-0.432723691234,-0.432723692373,
+-0.432723692982,-0.432723693298,-0.432723693457,-0.432723693534,
+-0.43272369357,-0.432723693586,-0.432723693593,-0.432723693595,
+-0.432723693596,-0.432723693597,-0.432723693597,-0.432723693597,
+-0.432723693597,-0.432723693597,-0.432723693597,-0.432723693597,
+-0.432723693597,-0.432723693597,-0.432723693597,-0.432723693597,
+-0.432723693597,-0.432723362312,-0.432703241682,-0.432651966505,
+-0.432569536779,-0.432455952505,-0.432311213683,-0.432135320313,
+-0.431928272394,-0.431690069928,-0.431420712913,-0.43112020135,
+-0.430788535239,-0.43042571458,-0.430031739373,-0.429606609617,
+-0.429150325314,-0.428662886462,-0.428144293062,-0.427594545114,
+-0.427013642618,-0.426401585573,-0.425758373981,-0.42508400784,
+-0.424378487151,-0.423641811914,-0.422873982129,-0.422074997796,
+-0.421244858915,-0.420383565485,-0.419491117507,-0.418567514981,
+-0.417612757907,-0.416626846285,-0.415609780115,-0.414561559396,
+-0.41348218413,-0.412371654315,-0.411229969952,-0.410057131041,
+-0.408853137581,-0.407617989574,-0.406351687018,-0.405054229915,
+-0.403725618263,-0.402365852063,-0.400974931314,-0.399552856018,
+-0.398099626174,-0.396615241781,-0.39509970284,-0.393553009351,
+-0.391975161314,-0.390366158729,-0.388726001595,-0.387054689914,
+-0.385352223684,-0.383618602906,-0.38185382758,-0.380057897706,
+-0.378230813284,-0.376372574313,-0.374483180795,-0.372562632728,
+-0.370610930113,-0.36862807295,-0.366614061238,-0.364568894979,
+-0.362492574171,-0.360385098816,-0.358246468912,-0.35607668446,
+-0.35387574546,-0.351643651911,-0.349380403815,-0.34708600117,
+-0.344760443977,-0.342403732237,-0.340015865947,-0.33759684511,
+-0.335146669725,-0.332665339791,-0.33015285531,-0.32760921628,
+-0.325034422702,-0.322428474575,-0.319791371901,-0.317123114679,
+-0.314423702908,-0.311693136589,-0.308931415722,-0.306138540307,
+-0.303314510344,-0.300459325833,-0.297572986773,-0.294655493165,
+-0.29170684501,-0.288727042306,-0.285716085053,-0.282673973253,
+-0.279600706905,-0.276496286008,-0.273360710563,-0.27019398057,
+-0.266996096029,-0.26376705694,-0.260506863303,-0.257215515117,
+-0.253893012383,-0.250539355102,-0.247154543272,-0.243738576893,
+-0.240291455967,-0.236813180493,-0.23330375047,-0.229763165899,
+-0.22619142678,-0.222588533113,-0.218954484898,-0.215289282135,
+-0.211592924823,-0.207865412964,-0.204106746556,-0.2003169256,
+-0.196495950096,-0.192643820043,-0.188760535443,-0.184846096294,
+-0.180900502597,-0.176923754353,-0.172915851559,-0.168876794218,
+-0.164806582329,-0.160705215891,-0.156572694906,-0.152409019372,
+-0.14821418929,-0.14398820466,-0.139731065482,-0.135442771755,
+-0.131123323481,-0.126772720658,-0.122390963287,-0.117978051368,
+-0.113533984901,-0.109058763885,-0.104552388322,-0.10001485821,
+-0.0954461735503,-0.0908463343423,-0.0862153405862,-0.0815531922819,
+-0.0768598894295,-0.0721354320289,-0.0673798200802,-0.0625930535833,
+-0.0577751325383,-0.0529260569451,-0.0480458268037,-0.0431344421142,
+-0.0381919028766,-0.0332182090908,-0.0282133607568,-0.0231773578747,
+-0.0181102004444,-0.013011888466,-0.00788242193944,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0353460734102,-0.100457075222,
+-0.155639153809,-0.202310817011,-0.241701889262,-0.274876706776,
+-0.30275470079,-0.32612863538,-0.345680742025,-0.361996970786,
+-0.375579557362,-0.386858086493,-0.396199214827,-0.403915200582,
+-0.410271372822,-0.41549265995,-0.419769284939,-0.423261723828,
+-0.426105013996,-0.428412489619,-0.430279013496,-0.43178376689,
+-0.43299265232,-0.433960358094,-0.434732127856,-0.435345273472,
+-0.435830465109,-0.436212828342,-0.43651287456,-0.43674728772,
+-0.436929587628,-0.437070687409,-0.437179360523,-0.437262630708,
+-0.437326096443,-0.437374199943,-0.437410449353,-0.437437601548,
+-0.437457811933,-0.437472756663,-0.437483731937,-0.437491734282,
+-0.437497525166,-0.437501682719,-0.437504642941,-0.437506732328,
+-0.437508193568,-0.437509205653,-0.437509899508,-0.43751037008,
+-0.437510685586,-0.437510894572,-0.437511031225,-0.43751111936,
+-0.437511175377,-0.437511210427,-0.437511231992,-0.437511245023,
+-0.437511252746,-0.437511257228,-0.437511259771,-0.437511261178,
+-0.437511261936,-0.437511262332,-0.437511262533,-0.437511262631,
+-0.437511262677,-0.437511262698,-0.437511262707,-0.43751126271,
+-0.437511262711,-0.437511262712,-0.437511262712,-0.437511262712,
+-0.437511262712,-0.437511262712,-0.437511262712,-0.437511262712,
+-0.437511262712,-0.437511262712,-0.437511262712,-0.437511262712,
+-0.437511262712,-0.437510927762,-0.437490584522,-0.437438742046,
+-0.437355400334,-0.437240559386,-0.437094219202,-0.436916379783,
+-0.436707041127,-0.436466203236,-0.436193866109,-0.435890029745,
+-0.435554694146,-0.435187859311,-0.434789525241,-0.434359691934,
+-0.433898359391,-0.433405527613,-0.432881196598,-0.432325366348,
+-0.431738036862,-0.43111920814,-0.430468880182,-0.429787052988,
+-0.429073726558,-0.428328900892,-0.427552575991,-0.426744751853,
+-0.42590542848,-0.425034605871,-0.424132284025,-0.423198462944,
+-0.422233142627,-0.421236323075,-0.420208004286,-0.419148186261,
+-0.418056869001,-0.416934052504,-0.415779736772,-0.414593921804,
+-0.4133766076,-0.41212779416,-0.410847481484,-0.409535669572,
+-0.408192358424,-0.406817548041,-0.405411238421,-0.403973429566,
+-0.402504121475,-0.401003314148,-0.399471007585,-0.397907201786,
+-0.396311896751,-0.39468509248,-0.393026788973,-0.391336986231,
+-0.389615684253,-0.387862883038,-0.386078582588,-0.384262782902,
+-0.38241548398,-0.380536685822,-0.378626388428,-0.376684591799,
+-0.374711295933,-0.372706500832,-0.370670206494,-0.368602412921,
+-0.366503120112,-0.364372328067,-0.362210036786,-0.360016246269,
+-0.357790956516,-0.355534167528,-0.353245879303,-0.350926091843,
+-0.348574805147,-0.346192019214,-0.343777734046,-0.341331949642,
+-0.338854666002,-0.336345883127,-0.333805601015,-0.331233819667,
+-0.328630539084,-0.325995759265,-0.323329480209,-0.320631701918,
+-0.317902424391,-0.315141647628,-0.31234937163,-0.309525596395,
+-0.306670321924,-0.303783548218,-0.300865275275,-0.297915503097,
+-0.294934231683,-0.291921461033,-0.288877191147,-0.285801422025,
+-0.282694153667,-0.279555386073,-0.276385119244,-0.273183353178,
+-0.269950087877,-0.26668532334,-0.263389059567,-0.260061296558,
+-0.256702034313,-0.253311272832,-0.249889012115,-0.246435252163,
+-0.242949992974,-0.23943323455,-0.23588497689,-0.232305219993,
+-0.228693963861,-0.225051208493,-0.221376953889,-0.21767120005,
+-0.213933946974,-0.210165194663,-0.206364943115,-0.202533192332,
+-0.198669942313,-0.194775193057,-0.190848944566,-0.186891196839,
+-0.182901949877,-0.178881203678,-0.174828958243,-0.170745213573,
+-0.166629969667,-0.162483226524,-0.158304984146,-0.154095242532,
+-0.149854001682,-0.145581261596,-0.141277022274,-0.136941283717,
+-0.132574045923,-0.128175308894,-0.123745072628,-0.119283337127,
+-0.11479010239,-0.110265368417,-0.105709135208,-0.101121402763,
+-0.0965021710827,-0.0918514401662,-0.0871692100137,-0.0824554806253,
+-0.077710252001,-0.0729335241409,-0.0681252970448,-0.0632855707128,
+-0.058414345145,-0.0535116203412,-0.0485773963016,-0.0436116730261,
+-0.0386144505146,-0.0335857287673,-0.0285255077841,-0.023433787565,
+-0.01831056811,-0.0131558494191,-0.0079696314923,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0353617965817,-0.100591411339,
+-0.155979276386,-0.202915289101,-0.242606790717,-0.276100697934,
+-0.304303180643,-0.327997131846,-0.34785765379,-0.364465764121,
+-0.378320507144,-0.389849638125,-0.399419032811,-0.407340959824,
+-0.413881340364,-0.419266107455,-0.423686765905,-0.427305243972,
+-0.430258118485,-0.432660286745,-0.434608150859,-0.436182373194,
+-0.437450255336,-0.4384677872,-0.439281407785,-0.439929514392,
+-0.440443752918,-0.44085011805,-0.441169888801,-0.441420421762,
+-0.441615821727,-0.441767506936,-0.441884683969,-0.441974745432,
+-0.442043601857,-0.44209595771,-0.442135540076,-0.442165287413,
+-0.442187504723,-0.442203990578,-0.442216140671,-0.442225031826,
+-0.442231489855,-0.442236144072,-0.442239470883,-0.442241828436,
+-0.44224348401,-0.442244635542,-0.442245428431,-0.44224596857,
+-0.442246332388,-0.442246574516,-0.442246733615,-0.442246836746,
+-0.442246902636,-0.442246944085,-0.442246969731,-0.442246985317,
+-0.44224699461,-0.442247000037,-0.442247003136,-0.442247004863,
+-0.4422470058,-0.442247006293,-0.442247006545,-0.442247006669,
+-0.442247006728,-0.442247006755,-0.442247006766,-0.442247006771,
+-0.442247006772,-0.442247006773,-0.442247006773,-0.442247006773,
+-0.442247006773,-0.442247006773,-0.442247006773,-0.442247006773,
+-0.442247006773,-0.442247006773,-0.442247006773,-0.442247006773,
+-0.442247006773,-0.442246668197,-0.442226104756,-0.442173701123,
+-0.442089457297,-0.441973373279,-0.441825449068,-0.441645684665,
+-0.441434080069,-0.441190635281,-0.440915350301,-0.440608225128,
+-0.440269259763,-0.439898454205,-0.439495808455,-0.439061322513,
+-0.438594996378,-0.438096830051,-0.437566823531,-0.437004976819,
+-0.436411289914,-0.435785762817,-0.435128395528,-0.434439188046,
+-0.433718140372,-0.432965252505,-0.432180524446,-0.431363956195,
+-0.430515547751,-0.429635299115,-0.428723210286,-0.427779281265,
+-0.426803512051,-0.425795902645,-0.424756453047,-0.423685163256,
+-0.422582033273,-0.421447063097,-0.420280252729,-0.419081602168,
+-0.417851111416,-0.41658878047,-0.415294609332,-0.413968598002,
+-0.41261074648,-0.411221054765,-0.409799522857,-0.408346150757,
+-0.406860938465,-0.40534388598,-0.403794993303,-0.402214260434,
+-0.400601687372,-0.398957274118,-0.397281020671,-0.395572927032,
+-0.3938329932,-0.392061219176,-0.39025760496,-0.388422150551,
+-0.386554855949,-0.384655721156,-0.38272474617,-0.380761930991,
+-0.37876727562,-0.376740780057,-0.374682444301,-0.372592268353,
+-0.370470252212,-0.368316395879,-0.366130699354,-0.363913162636,
+-0.361663785725,-0.359382568623,-0.357069511327,-0.35472461384,
+-0.35234787616,-0.349939298288,-0.347498880223,-0.345026621965,
+-0.342522523516,-0.339986584874,-0.337418806039,-0.334819187012,
+-0.332187727793,-0.329524428381,-0.326829288777,-0.324102308981,
+-0.321343488992,-0.31855282881,-0.315730328436,-0.31287598787,
+-0.309989807111,-0.30707178616,-0.304121925017,-0.301140223681,
+-0.298126682153,-0.295081300432,-0.292004078519,-0.288895016413,
+-0.285754114115,-0.282581371625,-0.279376788942,-0.276140366066,
+-0.272872102999,-0.269571999739,-0.266240056286,-0.262876272641,
+-0.259480648804,-0.256053184774,-0.252593880552,-0.249102736137,
+-0.24557975153,-0.242024926731,-0.238438261739,-0.234819756554,
+-0.231169411178,-0.227487225609,-0.223773199847,-0.220027333893,
+-0.216249627747,-0.212440081408,-0.208598694877,-0.204725468153,
+-0.200820401237,-0.196883494129,-0.192914746828,-0.188914159334,
+-0.184881731649,-0.18081746377,-0.1767213557,-0.172593407437,
+-0.168433618981,-0.164241990334,-0.160018521493,-0.155763212461,
+-0.151476063236,-0.147157073818,-0.142806244208,-0.138423574406,
+-0.134009064411,-0.129562714224,-0.125084523844,-0.120574493272,
+-0.116032622508,-0.111458911551,-0.106853360402,-0.10221596906,
+-0.097546737526,-0.0928456657995,-0.0881127538806,-0.0833480017692,
+-0.0785514094655,-0.0737229769693,-0.0688627042807,-0.0639705913996,
+-0.0590466383262,-0.0540908450603,-0.049103211602,-0.0440837379513,
+-0.0390324241082,-0.0339492700727,-0.0288342758447,-0.0236874414243,
+-0.0185087668115,-0.0132982520063,-0.0080558970087,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0353770341804,-0.100721755786,
+-0.156309682609,-0.203503171853,-0.243487850106,-0.277293747151,
+-0.305814122037,-0.329822208849,-0.349986089688,-0.366881883977,
+-0.381005426184,-0.392782588432,-0.402578390033,-0.410705022736,
+-0.417428908314,-0.422976893924,-0.427541680476,-0.431286569835,
+-0.434349608168,-0.436847194889,-0.438877219567,-0.440521782657,
+-0.441849550011,-0.442917785815,-0.443774103683,-0.444457971333,
+-0.445002000221,-0.445433047996,-0.445773158403,-0.446040360342,
+-0.44624934524,-0.446412039529,-0.446538086981,-0.446635253774,
+-0.446709767522,-0.446766600063,-0.446809702461,-0.446842199574,
+-0.446866550504,-0.446884680375,-0.446898088103,-0.446907934128,
+-0.446915111512,-0.446920303271,-0.44692402837,-0.446926678426,
+-0.446928546828,-0.446929851716,-0.44693075398,-0.446931371291,
+-0.446931788941,-0.446932068174,-0.446932252523,-0.446932372605,
+-0.446932449713,-0.446932498473,-0.446932528805,-0.446932547344,
+-0.446932558461,-0.446932564993,-0.446932568746,-0.446932570851,
+-0.446932572001,-0.446932572612,-0.446932572926,-0.446932573081,
+-0.446932573156,-0.44693257319,-0.446932573205,-0.446932573211,
+-0.446932573213,-0.446932573214,-0.446932573214,-0.446932573214,
+-0.446932573214,-0.446932573214,-0.446932573214,-0.446932573214,
+-0.446932573214,-0.446932573214,-0.446932573214,-0.446932573214,
+-0.446932573214,-0.446932231051,-0.446911449742,-0.446858490897,
+-0.446773354516,-0.446656040598,-0.446506549144,-0.446324880153,
+-0.446111033627,-0.445865009563,-0.445586807964,-0.445276428828,
+-0.444933872156,-0.444559137948,-0.444152226203,-0.443713136922,
+-0.443241870104,-0.44273842575,-0.44220280386,-0.441635004434,
+-0.441035027471,-0.440402872972,-0.439738540936,-0.439042031365,
+-0.438313344256,-0.437552479612,-0.436759437431,-0.435934217714,
+-0.43507682046,-0.434187245671,-0.433265493345,-0.432311563482,
+-0.431325456083,-0.430307171148,-0.429256708677,-0.428174068669,
+-0.427059251125,-0.425912256044,-0.424733083427,-0.423521733274,
+-0.422278205585,-0.421002500359,-0.419694617597,-0.418354557298,
+-0.416982319463,-0.415577904092,-0.414141311185,-0.412672540741,
+-0.411171592761,-0.409638467244,-0.408073164191,-0.406475683602,
+-0.404846025477,-0.403184189815,-0.401490176617,-0.399763985882,
+-0.398005617611,-0.396215071804,-0.394392348461,-0.392537447581,
+-0.390650369165,-0.388731113212,-0.386779679723,-0.384796068698,
+-0.382780280137,-0.380732314039,-0.378652170405,-0.376539849234,
+-0.374395350527,-0.372218674284,-0.370009820504,-0.367768789189,
+-0.365495580336,-0.363190193948,-0.360852630023,-0.358482888562,
+-0.356080969564,-0.35364687303,-0.35118059896,-0.348682147354,
+-0.346151518211,-0.343588711532,-0.340993727316,-0.338366565564,
+-0.335707226276,-0.333015709452,-0.330292015091,-0.327536143193,
+-0.32474809376,-0.32192786679,-0.319075462284,-0.316190880241,
+-0.313274120662,-0.310325183547,-0.307344068896,-0.304330776708,
+-0.301285306984,-0.298207659723,-0.295097834926,-0.291955832593,
+-0.288781652723,-0.285575295317,-0.282336760375,-0.279066047897,
+-0.275763157882,-0.272428090331,-0.269060845243,-0.265661422619,
+-0.262229822459,-0.258766044762,-0.255270089529,-0.25174195676,
+-0.248181646455,-0.244589158613,-0.240964493235,-0.23730765032,
+-0.233618629869,-0.229897431882,-0.226144056358,-0.222358503298,
+-0.218540772702,-0.21469086457,-0.210808778901,-0.206894515695,
+-0.202948074954,-0.198969456676,-0.194958660862,-0.190915687511,
+-0.186840536624,-0.182733208201,-0.178593702241,-0.174422018746,
+-0.170218157713,-0.165982119145,-0.16171390304,-0.157413509399,
+-0.153080938221,-0.148716189507,-0.144319263257,-0.13989015947,
+-0.135428878147,-0.130935419288,-0.126409782892,-0.121851968961,
+-0.117261977492,-0.112639808488,-0.107985461947,-0.103298937869,
+-0.0985802362559,-0.093829357106,-0.0890463004197,-0.0842310661971,
+-0.0793836544382,-0.0745040651429,-0.0695922983113,-0.0646483539434,
+-0.0596722320391,-0.0546639325985,-0.0496234556216,-0.0445508011083,
+-0.0394459690587,-0.0343089594727,-0.0291397723505,-0.0239384076919,
+-0.0187048654969,-0.0134391457656,-0.00814124849803,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0353918107812,-0.100848304508,
+-0.156630834762,-0.204075229725,-0.244346130853,-0.278457189524,
+-0.307289091208,-0.331605617675,-0.352067939646,-0.369247315562,
+-0.383636356667,-0.395659004297,-0.4056793521,-0.414009433767,
+-0.420916085665,-0.426626983492,-0.431335942647,-0.435207563345,
+-0.438381293582,-0.440974975811,-0.443087936564,-0.444803672199,
+-0.446192178472,-0.4473119666,-0.448211803936,-0.448932213269,
+-0.449506760999,-0.449963161081,-0.450324218552,-0.450608633759,
+-0.450831685879,-0.451005812137,-0.451141097138,-0.451245684953,
+-0.451326124991,-0.451387661318,-0.451434473799,-0.45146987834,
+-0.451496492525,-0.451516372077,-0.451531122805,-0.451541992047,
+-0.451549943013,-0.451555714937,-0.451559871508,-0.451562839648,
+-0.451564940401,-0.451566413384,-0.451567436033,-0.451568138646,
+-0.451568616062,-0.451568936674,-0.451569149313,-0.45156928848,
+-0.45156937828,-0.451569435354,-0.451569471044,-0.451569492976,
+-0.451569506203,-0.45156951402,-0.451569518539,-0.45156952109,
+-0.451569522493,-0.451569523243,-0.451569523631,-0.451569523826,
+-0.451569523919,-0.451569523962,-0.451569523981,-0.451569523989,
+-0.451569523992,-0.451569523993,-0.451569523994,-0.451569523994,
+-0.451569523994,-0.451569523994,-0.451569523994,-0.451569523994,
+-0.451569523994,-0.451569523994,-0.451569523994,-0.451569523994,
+-0.451569523994,-0.451569178281,-0.451548181365,-0.451494673068,
+-0.451408653392,-0.451290122336,-0.451139079899,-0.450955526083,
+-0.450739460886,-0.45049088431,-0.450209796353,-0.449896197016,
+-0.449550086299,-0.449171464202,-0.448760330724,-0.448316685867,
+-0.44784052963,-0.447331862012,-0.446790683015,-0.446216992637,
+-0.445610790879,-0.444972077741,-0.444300853223,-0.443597117325,
+-0.442860870047,-0.442092111389,-0.44129084135,-0.440457059932,
+-0.439590767133,-0.438691962954,-0.437760647396,-0.436796820457,
+-0.435800482138,-0.434771632439,-0.43371027136,-0.4326163989,
+-0.431490015061,-0.430331119842,-0.429139713242,-0.427915795262,
+-0.426659365903,-0.425370425163,-0.424048973043,-0.422695009543,
+-0.421308534663,-0.419889548402,-0.418438050762,-0.416954041742,
+-0.415437521341,-0.41388848956,-0.4123069464,-0.410692891859,
+-0.409046325938,-0.407367248637,-0.405655659956,-0.403911559895,
+-0.402134948453,-0.400325825632,-0.39848419143,-0.396610045849,
+-0.394703388887,-0.392764220545,-0.390792540823,-0.388788349721,
+-0.386751647239,-0.384682433377,-0.382580708135,-0.380446471512,
+-0.37827972351,-0.376080464127,-0.373848693365,-0.371584411222,
+-0.369287617699,-0.366958312796,-0.364596496513,-0.36220216885,
+-0.359775329806,-0.357315979383,-0.35482411758,-0.352299744396,
+-0.349742859832,-0.347153463889,-0.344531556565,-0.341877137861,
+-0.339190207777,-0.336470766313,-0.333718813468,-0.330934349244,
+-0.32811737364,-0.325267886655,-0.32238588829,-0.319471378546,
+-0.316524357421,-0.313544824916,-0.310532781031,-0.307488225766,
+-0.304411159121,-0.301301581095,-0.29815949169,-0.294984890904,
+-0.291777778739,-0.288538155193,-0.285266020267,-0.281961373961,
+-0.278624216275,-0.275254547209,-0.271852366763,-0.268417674937,
+-0.26495047173,-0.261450757144,-0.257918531177,-0.254353793831,
+-0.250756545104,-0.247126784997,-0.24346451351,-0.239769730643,
+-0.236042436396,-0.232282630768,-0.228490313761,-0.224665485374,
+-0.220808145606,-0.216918294458,-0.212995931931,-0.209041058023,
+-0.205053672735,-0.201033776067,-0.196981368019,-0.19289644859,
+-0.188779017782,-0.184629075594,-0.180446622025,-0.176231657076,
+-0.171984180748,-0.167704193039,-0.16339169395,-0.159046683481,
+-0.154669161632,-0.150259128402,-0.145816583793,-0.141341527804,
+-0.136833960434,-0.132293881685,-0.127721291555,-0.123116190045,
+-0.118478577155,-0.113808452885,-0.109105817235,-0.104370670205,
+-0.0996030117946,-0.0948028420042,-0.0899701608337,-0.0851049682832,
+-0.0802072643525,-0.0752770490417,-0.0703143223508,-0.0653190842798,
+-0.0602913348288,-0.0552310739976,-0.0501383017863,-0.0450130181949,
+-0.0398552232235,-0.0346649168719,-0.0294420991403,-0.0241867700285,
+-0.0188989295366,-0.0135785776647,-0.00822571441264,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354061492487,-0.100971240167,
+-0.156943164604,-0.204632178046,-0.24518262992,-0.279592279029,
+-0.308729561901,-0.333349009109,-0.354104988175,-0.371563936413,
+-0.386215232977,-0.398480846274,-0.408723880871,-0.417256136884,
+-0.424344784518,-0.430218247026,-0.435071376607,-0.439069999769,
+-0.442354901351,-0.445045309666,-0.447241939037,-0.44902964041,
+-0.450479705543,-0.4516518656,-0.452596020699,-0.453353733091,
+-0.453959513123,-0.454441923921,-0.454824527887,-0.455126695441,
+-0.455364294139,-0.455550274139,-0.455695164109,-0.45580748997,
+-0.455894127321,-0.455960597051,-0.456011312436,-0.456049784913,
+-0.456078794801,-0.456100532372,-0.456116713942,-0.456128676991,
+-0.456137457752,-0.456143854193,-0.456148476898,-0.45615178995,
+-0.456154143607,-0.456155800272,-0.456156954997,-0.456157751581,
+-0.456158295117,-0.456158661708,-0.456158905925,-0.456159066493,
+-0.456159170595,-0.456159237084,-0.456159278873,-0.456159304689,
+-0.456159320343,-0.456159329648,-0.456159335059,-0.456159338132,
+-0.456159339833,-0.456159340748,-0.456159341226,-0.456159341467,
+-0.456159341583,-0.456159341638,-0.456159341662,-0.456159341672,
+-0.456159341676,-0.456159341677,-0.456159341678,-0.456159341678,
+-0.456159341678,-0.456159341678,-0.456159341678,-0.456159341678,
+-0.456159341678,-0.456159341678,-0.456159341678,-0.456159341678,
+-0.456159341678,-0.456158992451,-0.456137782119,-0.456083729957,
+-0.455996835964,-0.455877100141,-0.455724522488,-0.455539103004,
+-0.455320841689,-0.455069738545,-0.454785793569,-0.454469006763,
+-0.454119378127,-0.453736907661,-0.453321595363,-0.452873441236,
+-0.452392445278,-0.45187860749,-0.451331927871,-0.450752406421,
+-0.450140043142,-0.449494838031,-0.448816791091,-0.448105902319,
+-0.447362171718,-0.446585599286,-0.445776185023,-0.44493392893,
+-0.444058831007,-0.443150891253,-0.442210109669,-0.441236486254,
+-0.440230021009,-0.439190713934,-0.438118565028,-0.437013574291,
+-0.435875741724,-0.434705067327,-0.433501551099,-0.432265193041,
+-0.430995993152,-0.429693951433,-0.428359067883,-0.426991342503,
+-0.425590775292,-0.424157366251,-0.42269111538,-0.421192022678,
+-0.419660088146,-0.418095311783,-0.41649769359,-0.414867233566,
+-0.413203931712,-0.411507788027,-0.409778802512,-0.408016975167,
+-0.406222305991,-0.404394794985,-0.402534442148,-0.400641247481,
+-0.398715210983,-0.396756332655,-0.394764612496,-0.392740050507,
+-0.390682646688,-0.388592401038,-0.386469313557,-0.384313384247,
+-0.382124613105,-0.379903000134,-0.377648545331,-0.375361248699,
+-0.373041110236,-0.370688129942,-0.368302307818,-0.365883643864,
+-0.363432138079,-0.360947790464,-0.358430601018,-0.355880569742,
+-0.353297696635,-0.350681981698,-0.348033424931,-0.345352026333,
+-0.342637785904,-0.339890703645,-0.337110779556,-0.334298013636,
+-0.331452405886,-0.328573956305,-0.325662664894,-0.322718531653,
+-0.31974155658,-0.316731739678,-0.313689080945,-0.310613580382,
+-0.307505237988,-0.304364053764,-0.301190027709,-0.297983159824,
+-0.294743450108,-0.291470898562,-0.288165505186,-0.284827269979,
+-0.281456192941,-0.278052274074,-0.274615513375,-0.271145910846,
+-0.267643466487,-0.264108180298,-0.260540052278,-0.256939082427,
+-0.253305270746,-0.249638617235,-0.245939121893,-0.24220678472,
+-0.238441605718,-0.234643584885,-0.230812722221,-0.226949017727,
+-0.223052471402,-0.219123083247,-0.215160853262,-0.211165781446,
+-0.2071378678,-0.203077112323,-0.198983515015,-0.194857075878,
+-0.19069779491,-0.186505672111,-0.182280707482,-0.178022901023,
+-0.173732252733,-0.169408762612,-0.165052430661,-0.16066325688,
+-0.156241241268,-0.151786383826,-0.147298684554,-0.142778143451,
+-0.138224760517,-0.133638535753,-0.129019469159,-0.124367560734,
+-0.119682810479,-0.114965218393,-0.110214784477,-0.10543150873,
+-0.100615391153,-0.0957664317454,-0.0908846305074,-0.085969987439,
+-0.0810225025401,-0.0760421758107,-0.071029007251,-0.0659829968607,
+-0.0609041446401,-0.055792450589,-0.0506479147074,-0.0454705369954,
+-0.0402603174529,-0.03501725608,-0.0297413528766,-0.0244326078428,
+-0.0190910209786,-0.0137165922839,-0.00830932175873,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354200708881,-0.101090733276,
+-0.157247075929,-0.205174687044,-0.245998283109,-0.280700194838,
+-0.310136922399,-0.335053940887,-0.356098922001,-0.373833524004,
+-0.38874388915,-0.401249975797,-0.411713841378,-0.420446982177,
+-0.427716826377,-0.433752468152,-0.438749722526,-0.442875573311,
+-0.446272079641,-0.449059800346,-0.4513407897,-0.453201212791,
+-0.454713623977,-0.455938947476,-0.456928195156,-0.457723952907,
+-0.458361663675,-0.458870732218,-0.459275473903,-0.459595927383,
+-0.459848548762,-0.460046802837,-0.460201665169,-0.460322047134,
+-0.460415154609,-0.460486789647,-0.460541603332,-0.460583306946,
+-0.460614847667,-0.460638554172,-0.460656256829,-0.460669386464,
+-0.460679055187,-0.460686122208,-0.460691247182,-0.460694933219,
+-0.460697561376,-0.460699418163,-0.460700717344,-0.46070161712,
+-0.460702233564,-0.46070265107,-0.460702930407,-0.460703114886,
+-0.460703235041,-0.460703312148,-0.460703360851,-0.460703391092,
+-0.460703409528,-0.460703420545,-0.46070342699,-0.460703430672,
+-0.460703432723,-0.460703433834,-0.460703434417,-0.460703434714,
+-0.460703434858,-0.460703434926,-0.460703434957,-0.460703434969,
+-0.460703434975,-0.460703434977,-0.460703434977,-0.460703434977,
+-0.460703434977,-0.460703434977,-0.460703434977,-0.460703434977,
+-0.460703434977,-0.460703434977,-0.460703434977,-0.460703434977,
+-0.460703434977,-0.460703082272,-0.46068166065,-0.46062707004,
+-0.460539310441,-0.460418381853,-0.460264284277,-0.460077017711,
+-0.459856582157,-0.459602977614,-0.459316204083,-0.458996261562,
+-0.458643150053,-0.458256869554,-0.457837420067,-0.457384801592,
+-0.456899014127,-0.456380057673,-0.455827932231,-0.4552426378,
+-0.45462417438,-0.453972541972,-0.453287740574,-0.452569770188,
+-0.451818630813,-0.451034322449,-0.450216845096,-0.449366198755,
+-0.448482383424,-0.447565399105,-0.446615245797,-0.445631923501,
+-0.444615432215,-0.443565771941,-0.442482942678,-0.441366944426,
+-0.440217777185,-0.439035440955,-0.437819935737,-0.43657126153,
+-0.435289418334,-0.433974406149,-0.432626224976,-0.431244874813,
+-0.429830355662,-0.428382667522,-0.426901810393,-0.425387784275,
+-0.423840589169,-0.422260225074,-0.42064669199,-0.418999989917,
+-0.417320118855,-0.415607078805,-0.413860869765,-0.412081491737,
+-0.41026894472,-0.408423228715,-0.40654434372,-0.404632289737,
+-0.402687066765,-0.400708674804,-0.398697113854,-0.396652383916,
+-0.394574484988,-0.392463417072,-0.390319180167,-0.388141774273,
+-0.385931199391,-0.383687455519,-0.381410542659,-0.37910046081,
+-0.376757209972,-0.374380790146,-0.37197120133,-0.369528443526,
+-0.367052516733,-0.364543420951,-0.362001156181,-0.359425722421,
+-0.356817119673,-0.354175347936,-0.35150040721,-0.348792297495,
+-0.346051018792,-0.3432765711,-0.340468954419,-0.337628168749,
+-0.33475421409,-0.331847090442,-0.328906797806,-0.325933336181,
+-0.322926705567,-0.319886905964,-0.316813937373,-0.313707799792,
+-0.310568493223,-0.307396017665,-0.304190373118,-0.300951559583,
+-0.297679577059,-0.294374425545,-0.291036105043,-0.287664615552,
+-0.284259957073,-0.280822129604,-0.277351133147,-0.273846967701,
+-0.270309633266,-0.266739129843,-0.26313545743,-0.259498616029,
+-0.255828605639,-0.25212542626,-0.248389077892,-0.244619560536,
+-0.240816874191,-0.236981018856,-0.233111994534,-0.229209801222,
+-0.225274438921,-0.221305907632,-0.217304207354,-0.213269338087,
+-0.209201299831,-0.205100092587,-0.200965716353,-0.196798171131,
+-0.19259745692,-0.18836357372,-0.184096521532,-0.179796300354,
+-0.175462910188,-0.171096351033,-0.166696622889,-0.162263725757,
+-0.157797659635,-0.153298424525,-0.148766020426,-0.144200447338,
+-0.139601705261,-0.134969794196,-0.130304714142,-0.125606465099,
+-0.120875047067,-0.116110460046,-0.111312704037,-0.106481779038,
+-0.101617685051,-0.0967204220752,-0.0917899901105,-0.0868263891569,
+-0.0818296192146,-0.0767996802834,-0.0717365723635,-0.0666402954547,
+-0.0615108495572,-0.0563482346708,-0.0511524507956,-0.0459234979316,
+-0.0406613760788,-0.0353660852372,-0.0300376254068,-0.0246759965876,
+-0.0192811987796,-0.0138532319828,-0.00839209619713,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354335955789,-0.101206943226,
+-0.157542946865,-0.20570338547,-0.246793969869,-0.281782047051,
+-0.311512481909,-0.336721884476,-0.35805133702,-0.376057762698,
+-0.391224065694,-0.40396816178,-0.414651008151,-0.423583731909,
+-0.431033947933,-0.437231348784,-0.442372641869,-0.44662590225,
+-0.450134403146,-0.453019980371,-0.455385981614,-0.457319846541,
+-0.458895359225,-0.460174610283,-0.461209702318,-0.462044228857,
+-0.462714553807,-0.463250915639,-0.46367837787,-0.464017645101,
+-0.464285761723,-0.464496708462,-0.464661910222,-0.464790667102,
+-0.464890519048,-0.464967553362,-0.465026663125,-0.465071763611,
+-0.465105972848,-0.46513176168,-0.465151077999,-0.465165449137,
+-0.465176065907,-0.46518385126,-0.465189516101,-0.465193604443,
+-0.465196529738,-0.465198603946,-0.465200060666,-0.465201073418,
+-0.465201770002,-0.465202243703,-0.465202561968,-0.465202773066,
+-0.465202911174,-0.465203000213,-0.465203056721,-0.465203091984,
+-0.465203113591,-0.465203126574,-0.465203134211,-0.4652031386,
+-0.465203141059,-0.4652031424,-0.465203143109,-0.465203143471,
+-0.46520314365,-0.465203143734,-0.465203143772,-0.465203143788,
+-0.465203143795,-0.465203143797,-0.465203143798,-0.465203143798,
+-0.465203143798,-0.465203143798,-0.465203143798,-0.465203143798,
+-0.465203143798,-0.465203143798,-0.465203143798,-0.465203143798,
+-0.465203143798,-0.465202787648,-0.465181156801,-0.465126033002,
+-0.465037416251,-0.464915306549,-0.464759703895,-0.46457060829,
+-0.464348019733,-0.464091938224,-0.463802363764,-0.463479296352,
+-0.463122735989,-0.462732682673,-0.462309136406,-0.461852097188,
+-0.461361565018,-0.460837539896,-0.460280021823,-0.459689010797,
+-0.459064506821,-0.458406509892,-0.457715020012,-0.456990037181,
+-0.456231561397,-0.455439592662,-0.454614130976,-0.453755176338,
+-0.452862728748,-0.451936788206,-0.450977354713,-0.449984428268,
+-0.448958008872,-0.447898096524,-0.446804691224,-0.445677792973,
+-0.44451740177,-0.443323517615,-0.442096140509,-0.440835270451,
+-0.439540907441,-0.43821305148,-0.436851702567,-0.435456860702,
+-0.434028525886,-0.432566698118,-0.431071377399,-0.429542563728,
+-0.427980257105,-0.426384457531,-0.424755165005,-0.423092379527,
+-0.421396101098,-0.419666329717,-0.417903065384,-0.4161063081,
+-0.414276057864,-0.412412314676,-0.410515078537,-0.408584349446,
+-0.406620127404,-0.40462241241,-0.402591204464,-0.400526503567,
+-0.398428309718,-0.396296622917,-0.394131443165,-0.391932770461,
+-0.389700604805,-0.387434946198,-0.385135794639,-0.382803150129,
+-0.380437012666,-0.378037382253,-0.375604258887,-0.37313764257,
+-0.370637533301,-0.368103931081,-0.365536835909,-0.362936247785,
+-0.36030216671,-0.357634592683,-0.354933525704,-0.352198965774,
+-0.349430912892,-0.346629367059,-0.343794328273,-0.340925796537,
+-0.338023771848,-0.335088254208,-0.332119243616,-0.329116740073,
+-0.326080743578,-0.323011254131,-0.319908271733,-0.316771796383,
+-0.313601828081,-0.310398366828,-0.307161412623,-0.303890965466,
+-0.300587025358,-0.297249592298,-0.293878666287,-0.290474247324,
+-0.287036335409,-0.283564930543,-0.280060032725,-0.276521641955,
+-0.272949758234,-0.269344381561,-0.265705511936,-0.26203314936,
+-0.258327293832,-0.254587945352,-0.250815103921,-0.247008769538,
+-0.243168942204,-0.239295621918,-0.23538880868,-0.231448502491,
+-0.22747470335,-0.223467411257,-0.219426626213,-0.215352348217,
+-0.211244577269,-0.20710331337,-0.202928556519,-0.198720306716,
+-0.194478563962,-0.190203328256,-0.185894599599,-0.18155237799,
+-0.177176663429,-0.172767455916,-0.168324755452,-0.163848562037,
+-0.159338875669,-0.15479569635,-0.15021902408,-0.145608858858,
+-0.140965200684,-0.136288049558,-0.131577405481,-0.126833268452,
+-0.122055638472,-0.117244515539,-0.112399899656,-0.10752179082,
+-0.102610189033,-0.0976650942946,-0.0926865066042,-0.0876744259622,
+-0.0826288523686,-0.0775497858233,-0.0724372263264,-0.0672911738779,
+-0.0621116284777,-0.0568985901258,-0.0516520588224,-0.0463720345672,
+-0.0410585173605,-0.035711507202,-0.030331004092,-0.0249170080303,
+-0.019469519017,-0.013988537052,-0.00847406213534,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354467418955,-0.101320019204,
+-0.157831131952,-0.206218863869,-0.247570517633,-0.282838881888,
+-0.312857476361,-0.338354231252,-0.359963744643,-0.378238250104,
+-0.393657415832,-0.406637086675,-0.417537071047,-0.426668066083,
+-0.434297806378,-0.440656514209,-0.445941722279,-0.450322533647,
+-0.453943377675,-0.456927315376,-0.459378942606,-0.461386934928,
+-0.463026273799,-0.464360189832,-0.465441855392,-0.46631585551,
+-0.467019463166,-0.467583742282,-0.468034499323,-0.468393102151,
+-0.46867718277,-0.468901238738,-0.46907714639,-0.469214597482,
+-0.469321469537,-0.469404138942,-0.469467744758,-0.469516410229,
+-0.469553428093,-0.469581415022,-0.469602439833,-0.469618129473,
+-0.469629756257,-0.469638309361,-0.469644553118,-0.469649074327,
+-0.469652320443,-0.469654630242,-0.469656258293,-0.469657394375,
+-0.469658178784,-0.469658714318,-0.469659075591,-0.469659316225,
+-0.46965947434,-0.469659576737,-0.469659642025,-0.469659682963,
+-0.469659708175,-0.469659723402,-0.469659732408,-0.469659737613,
+-0.469659740547,-0.469659742156,-0.469659743013,-0.469659743454,
+-0.469659743672,-0.469659743776,-0.469659743824,-0.469659743844,
+-0.469659743852,-0.469659743856,-0.469659743857,-0.469659743857,
+-0.469659743857,-0.469659743857,-0.469659743857,-0.469659743857,
+-0.469659743857,-0.469659743857,-0.469659743857,-0.469659743857,
+-0.469659743857,-0.469659384294,-0.469637546226,-0.469581894347,
+-0.469492428656,-0.469369149156,-0.469212055844,-0.469021148721,
+-0.468796427788,-0.468537893044,-0.468245544489,-0.467919382123,
+-0.467559405946,-0.467165615959,-0.466738012161,-0.466276594552,
+-0.465781363132,-0.465252317902,-0.46468945886,-0.464092786008,
+-0.463462299345,-0.462797998871,-0.462099884587,-0.461367956491,
+-0.460602214585,-0.459802658868,-0.45896928934,-0.458102106001,
+-0.457201108852,-0.456266297892,-0.455297673121,-0.454295234539,
+-0.453258982146,-0.452188915943,-0.451085035929,-0.449947342103,
+-0.448775834468,-0.447570513021,-0.446331377763,-0.445058428695,
+-0.443751665816,-0.442411089126,-0.441036698626,-0.439628494314,
+-0.438186476192,-0.436710644259,-0.435200998515,-0.43365753896,
+-0.432080265595,-0.430469178418,-0.428824277431,-0.427145562633,
+-0.425433034025,-0.423686691605,-0.421906535375,-0.420092565334,
+-0.418244781482,-0.416363183819,-0.414447772345,-0.412498547061,
+-0.410515507966,-0.40849865506,-0.406447988343,-0.404363507816,
+-0.402245213477,-0.400093105328,-0.397907183368,-0.395687447597,
+-0.393433898016,-0.391146534623,-0.38882535742,-0.386470366406,
+-0.384081561581,-0.381658942946,-0.379202510499,-0.376712264242,
+-0.374188204174,-0.371630330295,-0.369038642606,-0.366413141105,
+-0.363753825794,-0.361060696672,-0.358333753739,-0.355572996996,
+-0.352778426441,-0.349950042076,-0.3470878439,-0.344191831913,
+-0.341262006115,-0.338298366507,-0.335300913088,-0.332269645857,
+-0.329204564817,-0.326105669965,-0.322972961302,-0.319806438829,
+-0.316606102545,-0.31337195245,-0.310103988544,-0.306802210828,
+-0.303466619301,-0.300097213963,-0.296693994814,-0.293256961854,
+-0.289786115083,-0.286281454502,-0.28274298011,-0.279170691907,
+-0.275564589893,-0.271924674069,-0.268250944433,-0.264543400987,
+-0.26080204373,-0.257026872663,-0.253217887784,-0.249375089095,
+-0.245498476595,-0.241588050284,-0.237643810162,-0.233665756229,
+-0.229653888486,-0.225608206932,-0.221528711567,-0.217415402391,
+-0.213268279404,-0.209087342607,-0.204872591999,-0.20062402758,
+-0.19634164935,-0.192025457309,-0.187675451458,-0.183291631796,
+-0.178873998323,-0.174422551039,-0.169937289944,-0.165418215039,
+-0.160865326322,-0.156278623795,-0.151658107458,-0.147003777309,
+-0.14231563335,-0.137593675579,-0.132837903998,-0.128048318606,
+-0.123224919404,-0.11836770639,-0.113476679566,-0.108551838931,
+-0.103593184485,-0.0986007162283,-0.0935744341608,-0.0885143382825,
+-0.0834204285934,-0.0782927050935,-0.0731311677828,-0.0679358166613,
+-0.0627066517289,-0.0574436729858,-0.0521468804319,-0.0468162740672,
+-0.0414518538916,-0.0360536199053,-0.0306215721082,-0.0251557105002,
+-0.0196560350815,-0.0141225458519,-0.0085552428116,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354595272159,-0.101430101022,
+-0.158111964006,-0.206721677545,-0.248328705752,-0.283871686404,
+-0.314173073691,-0.33995229813,-0.361837577602,-0.380376502899,
+-0.396045511237,-0.409258352029,-0.420373640594,-0.429701587565,
+-0.437509984296,-0.444029517766,-0.449458482068,-0.453966947688,
+-0.457700444363,-0.460783208223,-0.463321039314,-0.465403811307,
+-0.467107671262,-0.46849696368,-0.469625909787,-0.470540069893,
+-0.471277613938,-0.471870422742,-0.472345040162,-0.472723494254,
+-0.473024003579,-0.473261583061,-0.473448562203,-0.473595027043,
+-0.473709195903,-0.473797737853,-0.473866041713,-0.473918442508,
+-0.473958411413,-0.473988714487,-0.474011544799,-0.474028631966,
+-0.474041332576,-0.474050704494,-0.474057567653,-0.474062553525,
+-0.474066145194,-0.474068709627,-0.474070523518,-0.474071793865,
+-0.474072674247,-0.474073277613,-0.474073686259,-0.474073959559,
+-0.474074139898,-0.474074257197,-0.474074332326,-0.474074379656,
+-0.474074408946,-0.474074426727,-0.474074437298,-0.474074443441,
+-0.474074446924,-0.474074448846,-0.474074449876,-0.474074450409,
+-0.474074450676,-0.474074450804,-0.474074450862,-0.474074450888,
+-0.474074450898,-0.474074450902,-0.474074450903,-0.474074450904,
+-0.474074450904,-0.474074450904,-0.474074450904,-0.474074450904,
+-0.474074450904,-0.474074450904,-0.474074450904,-0.474074450904,
+-0.474074450904,-0.474074087962,-0.47405204462,-0.473995869624,
+-0.473905562974,-0.473781124671,-0.473622554713,-0.473429853102,
+-0.473203019838,-0.472942054919,-0.472646958346,-0.47231773012,
+-0.47195437024,-0.471556878706,-0.471125255518,-0.470659500676,
+-0.470159614181,-0.469625596032,-0.469057446229,-0.468455164772,
+-0.467818751661,-0.467148206896,-0.466443530478,-0.465704722406,
+-0.46493178268,-0.4641247113,-0.463283508267,-0.462408173579,
+-0.461498707238,-0.460555109243,-0.459577379594,-0.458565518291,
+-0.457519525335,-0.456439400724,-0.45532514446,-0.454176756542,
+-0.45299423697,-0.451777585745,-0.450526802865,-0.449241888332,
+-0.447922842145,-0.446569664304,-0.445182354809,-0.443760913661,
+-0.442305340858,-0.440815636402,-0.439291800292,-0.437733832528,
+-0.436141733111,-0.434515502039,-0.432855139314,-0.431160644935,
+-0.429432018902,-0.427669261215,-0.425872371875,-0.42404135088,
+-0.422176198232,-0.42027691393,-0.418343497975,-0.416375950365,
+-0.414374271101,-0.412338460184,-0.410268517613,-0.408164443388,
+-0.406026237509,-0.403853899977,-0.401647430791,-0.39940682995,
+-0.397132097456,-0.394823233309,-0.392480237507,-0.390103110051,
+-0.387691850942,-0.385246460179,-0.382766937762,-0.380253283692,
+-0.377705497967,-0.375123580589,-0.372507531556,-0.36985735087,
+-0.367173038531,-0.364454594537,-0.36170201889,-0.358915311588,
+-0.356094472633,-0.353239502024,-0.350350399762,-0.347427165845,
+-0.344469800275,-0.34147830305,-0.338452674172,-0.335392913641,
+-0.332299021455,-0.329170997616,-0.326008842122,-0.322812554975,
+-0.319582136174,-0.31631758572,-0.313018903611,-0.309686089849,
+-0.306319144432,-0.302918067362,-0.299482858639,-0.296013518261,
+-0.29251004623,-0.288972442544,-0.285400707205,-0.281794840212,
+-0.278154841565,-0.274480711265,-0.270772449311,-0.267030055702,
+-0.26325353044,-0.259442873525,-0.255598084955,-0.251719164731,
+-0.247806112854,-0.243858929323,-0.239877614138,-0.235862167299,
+-0.231812588807,-0.227728878661,-0.22361103686,-0.219459063406,
+-0.215272958298,-0.211052721537,-0.206798353121,-0.202509853052,
+-0.198187221329,-0.193830457952,-0.189439562921,-0.185014536237,
+-0.180555377898,-0.176062087906,-0.17153466626,-0.16697311296,
+-0.162377428007,-0.157747611399,-0.153083663138,-0.148385583223,
+-0.143653371654,-0.138887028431,-0.134086553555,-0.129251947024,
+-0.12438320884,-0.119480339002,-0.11454333751,-0.109572204365,
+-0.104566939565,-0.0995275431119,-0.0944540150048,-0.0893463552438,
+-0.0842045638291,-0.0790286407605,-0.0738185860382,-0.068574399662,
+-0.063296081632,-0.0579836319481,-0.0526370506105,-0.047256337619,
+-0.0418414929737,-0.0363925166746,-0.0309094087217,-0.0253921691149,
+-0.0198407978544,-0.01425529494,-0.0086356603718,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354719678185,-0.10153731986,
+-0.15838575582,-0.20721234924,-0.249069269077,-0.28488139279,
+-0.315460378659,-0.34151733272,-0.363674195262,-0.38247396217,
+-0.398389847299,-0.411833483611,-0.423162252929,-0.432685826804,
+-0.44067199418,-0.447351845166,-0.45292437436,-0.457560561669,
+-0.46140698354,-0.464589002788,-0.467213580918,-0.469371752801,
+-0.471140799893,-0.47258615479,-0.473763066779,-0.474718055164,
+-0.475490174558,-0.476112113849,-0.476611148413,-0.477009963082,
+-0.477327361562,-0.477578876322,-0.477777291447,-0.47793308957,
+-0.47805483277,-0.478149486159,-0.478222691894,-0.478279000427,
+-0.478322064968,-0.478354804414,-0.478379539338,-0.478398105031,
+-0.47841194508,-0.478422188491,-0.478429712959,-0.478435196522,
+-0.478439159522,-0.478441998507,-0.478444013471,-0.478445429609,
+-0.478446414585,-0.478447092156,-0.478447552827,-0.478447862146,
+-0.478448067091,-0.478448200963,-0.478448287084,-0.478448341587,
+-0.478448375475,-0.478448396149,-0.478448408503,-0.478448415721,
+-0.478448419837,-0.478448422121,-0.478448423352,-0.478448423994,
+-0.478448424317,-0.478448424473,-0.478448424545,-0.478448424577,
+-0.47844842459,-0.478448424595,-0.478448424597,-0.478448424597,
+-0.478448424598,-0.478448424598,-0.478448424598,-0.478448424598,
+-0.478448424598,-0.478448424598,-0.478448424598,-0.478448424598,
+-0.478448424598,-0.478448058307,-0.478425811585,-0.4783691183,
+-0.47827797845,-0.478152392036,-0.477992359058,-0.477797879515,
+-0.477568953409,-0.477305580738,-0.477007761503,-0.476675495704,
+-0.476308783341,-0.475907624414,-0.475472018922,-0.475001966866,
+-0.474497468246,-0.473958523062,-0.473385131314,-0.472777293002,
+-0.472135008125,-0.471458276684,-0.470747098679,-0.47000147411,
+-0.469221402977,-0.468406885279,-0.467557921017,-0.466674510192,
+-0.465756652802,-0.464804348847,-0.463817598329,-0.462796401246,
+-0.4617407576,-0.460650667389,-0.459526130613,-0.458367147274,
+-0.457173717371,-0.455945840903,-0.454683517871,-0.453386748275,
+-0.452055532115,-0.450689869391,-0.449289760102,-0.447855204249,
+-0.446386201832,-0.444882752851,-0.443344857306,-0.441772515197,
+-0.440165726523,-0.438524491285,-0.436848809483,-0.435138681117,
+-0.433394106187,-0.431615084692,-0.429801616633,-0.427953702011,
+-0.426071340824,-0.424154533072,-0.422203278757,-0.420217577877,
+-0.418197430434,-0.416142836426,-0.414053795854,-0.411930308717,
+-0.409772375017,-0.407579994752,-0.405353167923,-0.40309189453,
+-0.400796174573,-0.398466008052,-0.396101394966,-0.393702335316,
+-0.391268829103,-0.388800876324,-0.386298476982,-0.383761631076,
+-0.381190338605,-0.37858459957,-0.375944413971,-0.373269781808,
+-0.370560703081,-0.367817177789,-0.365039205934,-0.362226787514,
+-0.35937992253,-0.356498610982,-0.353582852869,-0.350632648193,
+-0.347647996952,-0.344628899147,-0.341575354778,-0.338487363845,
+-0.335364926347,-0.332208042285,-0.32901671166,-0.32579093447,
+-0.322530710715,-0.319236040397,-0.315906923515,-0.312543360068,
+-0.309145350057,-0.305712893482,-0.302245990343,-0.298744640639,
+-0.295208844372,-0.29163860154,-0.288033912144,-0.284394776184,
+-0.280721193659,-0.277013164571,-0.273270688918,-0.269493766701,
+-0.26568239792,-0.261836582575,-0.257956320666,-0.254041612192,
+-0.250092457154,-0.246108855553,-0.242090807386,-0.238038312656,
+-0.233951371362,-0.229829983503,-0.22567414908,-0.221483868093,
+-0.217259140542,-0.212999966427,-0.208706345747,-0.204378278504,
+-0.200015764696,-0.195618804324,-0.191187397387,-0.186721543887,
+-0.182221243822,-0.177686497194,-0.173117304001,-0.168513664244,
+-0.163875577922,-0.159203045037,-0.154496065587,-0.149754639573,
+-0.144978766995,-0.140168447853,-0.135323682147,-0.130444469876,
+-0.125530811041,-0.120582705642,-0.115600153679,-0.110583155152,
+-0.105531710061,-0.100445818405,-0.0953254801852,-0.0901706954012,
+-0.084981464053,-0.0797577861407,-0.0744996616642,-0.0692070906235,
+-0.0638800730186,-0.0585186088496,-0.0531226981163,-0.0476923408189,
+-0.0422275369574,-0.0367282865316,-0.0311945895417,-0.0256264459875,
+-0.0200238558692,-0.0143868191868,-0.00871533594011,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354840789704,-0.101641798949,
+-0.158652801691,-0.207691371572,-0.249792901206,-0.285868882284,
+-0.316720437253,-0.343050518043,-0.3654748885,-0.384531998326,
+-0.400691847965,-0.414363936126,-0.425904374338,-0.435622246195,
+-0.4437852826,-0.450624918477,-0.456340790919,-0.461104733696,
+-0.465064318316,-0.468345987454,-0.471057822564,-0.473291983685,
+-0.475126856051,-0.47662893489,-0.477854476877,-0.478850944002,
+-0.479658263106,-0.480309922087,-0.480833921671,-0.481253599723,
+-0.481588343352,-0.48185420242,-0.482064416685,-0.482229867406,
+-0.482359463107,-0.482460468075,-0.482538781188,-0.482599171808,
+-0.482645478639,-0.482680776767,-0.482707517438,-0.482727644566,
+-0.48274269143,-0.482753860601,-0.482762089692,-0.482768105195,
+-0.482772466349,-0.482775600686,-0.482777832686,-0.482779406733,
+-0.482780505404,-0.482781263933,-0.48278178158,-0.482782130501,
+-0.48278236261,-0.482782514852,-0.482782613211,-0.482782675735,
+-0.482782714791,-0.482782738731,-0.482782753108,-0.482782761553,
+-0.482782766394,-0.482782769096,-0.482782770561,-0.48278277133,
+-0.48278277172,-0.482782771909,-0.482782771997,-0.482782772036,
+-0.482782772053,-0.482782772059,-0.482782772061,-0.482782772062,
+-0.482782772062,-0.482782772062,-0.482782772062,-0.482782772062,
+-0.482782772062,-0.482782772062,-0.482782772062,-0.482782772062,
+-0.482782772062,-0.482782402453,-0.482759954194,-0.482702747314,
+-0.482610781813,-0.48248405769,-0.482322574945,-0.482126333579,
+-0.481895333591,-0.481629574981,-0.48132905775,-0.480993781898,
+-0.480623747423,-0.480218954328,-0.47977940261,-0.479305092271,
+-0.47879602331,-0.478252195728,-0.477673609524,-0.477060264699,
+-0.476412161252,-0.475729299183,-0.475011678493,-0.474259299181,
+-0.473472161248,-0.472650264693,-0.471793609517,-0.470902195718,
+-0.469976023299,-0.469015092257,-0.468019402594,-0.46698895431,
+-0.465923747404,-0.464823781876,-0.463689057727,-0.462519574956,
+-0.461315333563,-0.460076333549,-0.458802574914,-0.457494057656,
+-0.456150781778,-0.454772747277,-0.453359954155,-0.451912402411,
+-0.450430092046,-0.448913023059,-0.447361195451,-0.445774609221,
+-0.444153264369,-0.442497160896,-0.440806298802,-0.439080678085,
+-0.437320298747,-0.435525160788,-0.433695264207,-0.431830609004,
+-0.429931195179,-0.427997022734,-0.426028091666,-0.424024401977,
+-0.421985953666,-0.419912746734,-0.41780478118,-0.415662057005,
+-0.413484574208,-0.411272332789,-0.409025332749,-0.406743574087,
+-0.404427056803,-0.402075780898,-0.399689746372,-0.397268953224,
+-0.394813401454,-0.392323091062,-0.389798022049,-0.387238194415,
+-0.384643608159,-0.382014263281,-0.379350159782,-0.376651297661,
+-0.373917676918,-0.371149297554,-0.368346159568,-0.365508262961,
+-0.362635607732,-0.359728193882,-0.356786021409,-0.353809090316,
+-0.350797400601,-0.347750952264,-0.344669745305,-0.341553779725,
+-0.338403055524,-0.3352175727,-0.331997331255,-0.328742331189,
+-0.325452572501,-0.322128055191,-0.31876877926,-0.315374744707,
+-0.311945951533,-0.308482399737,-0.30498408932,-0.30145102028,
+-0.29788319262,-0.294280606337,-0.290643261433,-0.286971157908,
+-0.283264295761,-0.279522674992,-0.275746295602,-0.27193515759,
+-0.268089260956,-0.264208605701,-0.260293191825,-0.256343019326,
+-0.252358088206,-0.248338398465,-0.244283950102,-0.240194743117,
+-0.236070777511,-0.231912053283,-0.227718570434,-0.223490328963,
+-0.21922732887,-0.214929570156,-0.21059705282,-0.206229776863,
+-0.201827742284,-0.197390949083,-0.192919397261,-0.188413086818,
+-0.183872017752,-0.179296190065,-0.174685603757,-0.170040258827,
+-0.165360155275,-0.160645293102,-0.155895672307,-0.15111129289,
+-0.146292154852,-0.141438258193,-0.136549602911,-0.131626189009,
+-0.126668016484,-0.121675085338,-0.11664739557,-0.111584947181,
+-0.10648774017,-0.101355774538,-0.0961890502841,-0.0909875674085,
+-0.0857513259113,-0.0804803257925,-0.0751745670522,-0.0698340496902,
+-0.0644587737067,-0.0590487391016,-0.0536039458748,-0.0481243940265,
+-0.0426100835566,-0.0370610144651,-0.031477186752,-0.0258586004173,
+-0.020205255461,-0.0145171518832,-0.00879428968369,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0354958750071,-0.101743654175,
+-0.158913378812,-0.208159209251,-0.250500257452,-0.286834988751,
+-0.317954240715,-0.344552976848,-0.36724088418,-0.38655191561,
+-0.402952870214,-0.416851097569,-0.428601405465,-0.438512244103,
+-0.446851234055,-0.453850099812,-0.459709065683,-0.464600766084,
+-0.468673717876,-0.472055398327,-0.474854968523,-0.477165678514,
+-0.479066987278,-0.480626427561,-0.481901242919,-0.482939821705,
+-0.48378295043,-0.484464906734,-0.48501441026,-0.485455447871,
+-0.485807988011,-0.486088597479,-0.486310972498,-0.486486394699,
+-0.486624121492,-0.486731719246,-0.486815346749,-0.486879995594,
+-0.486929693308,-0.486967674411,-0.486996523917,-0.487018297244,
+-0.487034620019,-0.487046770777,-0.48705574919,-0.487062332094,
+-0.487067119265,-0.487070570634,-0.487073036366,-0.487074781047,
+-0.487076003,-0.487076849629,-0.487077429508,-0.487077821848,
+-0.487078083857,-0.487078256403,-0.487078368345,-0.487078439811,
+-0.487078484653,-0.487078512268,-0.487078528934,-0.487078538772,
+-0.487078544442,-0.487078547625,-0.48707854936,-0.487078550277,
+-0.487078550744,-0.487078550973,-0.48707855108,-0.487078551128,
+-0.487078551148,-0.487078551156,-0.487078551159,-0.487078551159,
+-0.48707855116,-0.48707855116,-0.48707855116,-0.48707855116,
+-0.48707855116,-0.48707855116,-0.48707855116,-0.48707855116,
+-0.48707855116,-0.487078178262,-0.48705553026,-0.486997814356,
+-0.486905030549,-0.486777178841,-0.48661425923,-0.486416271717,
+-0.486183216302,-0.485915092984,-0.485611901764,-0.485273642642,
+-0.484900315618,-0.484491920692,-0.484048457863,-0.483569927133,
+-0.483056328499,-0.482507661964,-0.481923927527,-0.481305125187,
+-0.480651254945,-0.479962316801,-0.479238310755,-0.478479236806,
+-0.477685094955,-0.476855885202,-0.475991607547,-0.475092261989,
+-0.47415784853,-0.473188367168,-0.472183817904,-0.471144200737,
+-0.470069515669,-0.468959762698,-0.467814941825,-0.466635053049,
+-0.465420096372,-0.464170071792,-0.46288497931,-0.461564818926,
+-0.46020959064,-0.458819294451,-0.45739393036,-0.455933498367,
+-0.454437998472,-0.452907430675,-0.451341794975,-0.449741091373,
+-0.448105319869,-0.446434480462,-0.444728573154,-0.442987597943,
+-0.44121155483,-0.439400443815,-0.437554264897,-0.435673018077,
+-0.433756703355,-0.431805320731,-0.429818870205,-0.427797351776,
+-0.425740765445,-0.423649111212,-0.421522389077,-0.41936059904,
+-0.4171637411,-0.414931815258,-0.412664821514,-0.410362759867,
+-0.408025630319,-0.405653432868,-0.403246167515,-0.40080383426,
+-0.398326433102,-0.395813964042,-0.39326642708,-0.390683822216,
+-0.38806614945,-0.385413408781,-0.38272560021,-0.380002723737,
+-0.377244779362,-0.374451767084,-0.371623686905,-0.368760538823,
+-0.365862322839,-0.362929038952,-0.359960687164,-0.356957267473,
+-0.35391877988,-0.350845224384,-0.347736600987,-0.344592909687,
+-0.341414150485,-0.338200323381,-0.334951428375,-0.331667465466,
+-0.328348434655,-0.324994335942,-0.321605169327,-0.318180934809,
+-0.314721632389,-0.311227262068,-0.307697823843,-0.304133317717,
+-0.300533743688,-0.296899101757,-0.293229391924,-0.289524614189,
+-0.285784768552,-0.282009855012,-0.27819987357,-0.274354824226,
+-0.270474706979,-0.266559521831,-0.26260926878,-0.258623947827,
+-0.254603558971,-0.250548102214,-0.246457577554,-0.242331984992,
+-0.238171324528,-0.233975596162,-0.229744799893,-0.225478935722,
+-0.221178003649,-0.216842003674,-0.212470935796,-0.208064800016,
+-0.203623596334,-0.19914732475,-0.194635985264,-0.190089577875,
+-0.185508102584,-0.180891559391,-0.176239948296,-0.171553269298,
+-0.166831522399,-0.162074707597,-0.157282824892,-0.152455874286,
+-0.147593855777,-0.142696769366,-0.137764615053,-0.132797392838,
+-0.127795102721,-0.122757744701,-0.117685318779,-0.112577824955,
+-0.107435263228,-0.1022576336,-0.0970449360686,-0.0917971706355,
+-0.0865143373002,-0.0811964360627,-0.0758434669229,-0.0704554298809,
+-0.0650323249367,-0.0595741520903,-0.0540809113416,-0.0485526026908,
+-0.0429892261377,-0.0373907816823,-0.0317572693248,-0.026088689065,
+-0.020385040903,-0.0146463248388,-0.0088725408724,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355073694039,-0.10184299464,
+-0.159167748539,-0.208616301094,-0.251191957544,-0.287780501953,
+-0.319162729239,-0.346025775591,-0.368973349274,-0.388534956266,
+-0.405174208172,-0.419296293248,-0.431254685193,-0.441357158601,
+-0.449871174546,-0.457028694749,-0.463030478045,-0.468049908518,
+-0.472236400541,-0.475718422216,-0.478606175113,-0.480993964999,
+-0.482962295153,-0.484579711095,-0.485904422918,-0.486985729052,
+-0.487865263019,-0.488578082756,-0.489153620151,-0.48961650675,
+-0.489987289982,-0.490283052822,-0.490517948468,-0.490703660403,
+-0.490849797118,-0.490964229753,-0.49105338001,-0.491122464871,
+-0.491175703886,-0.491216494149,-0.491247557447,-0.491271063533,
+-0.491288732991,-0.491301922691,-0.491311696494,-0.49131888346,
+-0.49132412555,-0.491327916512,-0.491330633411,-0.491332562055,
+-0.491333917373,-0.49133485964,-0.491335507318,-0.491335947138,
+-0.491336241969,-0.491336436891,-0.491336563863,-0.491336645267,
+-0.491336696569,-0.491336728306,-0.491336747549,-0.491336758966,
+-0.491336765579,-0.491336769312,-0.491336771359,-0.491336772446,
+-0.491336773004,-0.491336773279,-0.491336773409,-0.491336773467,
+-0.491336773492,-0.491336773501,-0.491336773505,-0.491336773506,
+-0.491336773507,-0.491336773507,-0.491336773507,-0.491336773507,
+-0.491336773507,-0.491336773507,-0.491336773507,-0.491336773507,
+-0.491336773507,-0.491336397349,-0.491313551349,-0.491255330871,
+-0.491161735914,-0.491032766478,-0.490868422563,-0.49066870417,
+-0.490433611297,-0.490163143946,-0.489857302115,-0.489516085806,
+-0.489139495018,-0.488727529751,-0.488280190005,-0.48779747578,
+-0.487279387076,-0.486725923893,-0.486137086231,-0.485512874091,
+-0.484853287471,-0.484158326373,-0.483427990796,-0.48266228074,
+-0.481861196205,-0.481024737191,-0.480152903698,-0.479245695726,
+-0.478303113275,-0.477325156346,-0.476311824937,-0.47526311905,
+-0.474179038684,-0.473059583839,-0.471904754515,-0.470714550712,
+-0.46948897243,-0.468228019669,-0.466931692429,-0.465599990711,
+-0.464232914513,-0.462830463837,-0.461392638682,-0.459919439047,
+-0.458410864934,-0.456866916342,-0.455287593271,-0.453672895722,
+-0.452022823693,-0.450337377185,-0.448616556199,-0.446860360733,
+-0.445068790789,-0.443241846366,-0.441379527464,-0.439481834083,
+-0.437548766223,-0.435580323884,-0.433576507066,-0.43153731577,
+-0.429462749994,-0.42735280974,-0.425207495006,-0.423026805794,
+-0.420810742103,-0.418559303933,-0.416272491284,-0.413950304156,
+-0.411592742549,-0.409199806464,-0.406771495899,-0.404307810856,
+-0.401808751333,-0.399274317332,-0.396704508852,-0.394099325893,
+-0.391458768455,-0.388782836538,-0.386071530142,-0.383324849268,
+-0.380542793914,-0.377725364082,-0.37487255977,-0.37198438098,
+-0.369060827711,-0.366101899963,-0.363107597736,-0.36007792103,
+-0.357012869845,-0.353912444181,-0.350776644039,-0.347605469417,
+-0.344398920317,-0.341156996737,-0.337879698679,-0.334567026142,
+-0.331218979126,-0.327835557631,-0.324416761657,-0.320962591205,
+-0.317473046273,-0.313948126863,-0.310387832973,-0.306792164605,
+-0.303161121758,-0.299494704432,-0.295792912626,-0.292055746343,
+-0.28828320558,-0.284475290338,-0.280632000617,-0.276753336418,
+-0.272839297739,-0.268889884582,-0.264905096946,-0.260884934831,
+-0.256829398237,-0.252738487164,-0.248612201612,-0.244450541581,
+-0.240253507071,-0.236021098083,-0.231753314615,-0.227450156669,
+-0.223111624244,-0.218737717339,-0.214328435956,-0.209883780094,
+-0.205403749754,-0.200888344934,-0.196337565635,-0.191751411858,
+-0.187129883601,-0.182472980866,-0.177780703651,-0.173053051958,
+-0.168290025786,-0.163491625135,-0.158657850005,-0.153788700396,
+-0.148884176309,-0.143944277742,-0.138969004697,-0.133958357172,
+-0.128912335169,-0.123830938687,-0.118714167725,-0.113562022285,
+-0.108374502367,-0.103151607969,-0.097893339092,-0.0925996957364,
+-0.0872706779018,-0.0819062855884,-0.0765065187961,-0.0710713775248,
+-0.0656008617747,-0.0600949715456,-0.0545537068377,-0.0489770676508,
+-0.0433650539851,-0.0377176658404,-0.0320349032169,-0.0263167661144,
+-0.0205632545331,-0.0147743684728,-0.00895010793366,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355185748415,-0.101939923161,
+-0.159416157543,-0.209063061873,-0.251868588107,-0.288706170546,
+-0.32034679535,-0.347469928076,-0.370673394654,-0.390482304373,
+-0.407357096925,-0.421700789507,-0.433865494247,-0.444158270923,
+-0.45284637489,-0.460161955501,-0.466306255894,-0.471453360977,
+-0.4757535366,-0.479336199392,-0.482312553402,-0.484777926669,
+-0.486813837933,-0.488489821112,-0.489865032695,-0.490989664939,
+-0.491906185655,-0.492650423473,-0.493252515642,-0.493737733822,
+-0.494127201803,-0.494438517702,-0.494686291926,-0.494882611036,
+-0.495037436562,-0.495158946895,-0.495253829469,-0.495327529658,
+-0.495384462103,-0.495428189505,-0.49546157335,-0.495486900493,
+-0.495505989035,-0.495520276531,-0.495530893138,-0.495538722016,
+-0.495544448957,-0.495548602953,-0.495551589193,-0.495553715746,
+-0.495555215012,-0.495556260856,-0.495556982219,-0.495557473829,
+-0.495557804593,-0.495558024109,-0.495558167668,-0.495558260084,
+-0.495558318573,-0.495558354917,-0.495558377057,-0.495558390254,
+-0.495558397938,-0.495558402297,-0.495558404701,-0.495558405986,
+-0.495558406649,-0.495558406978,-0.495558407134,-0.495558407205,
+-0.495558407235,-0.495558407247,-0.495558407252,-0.495558407253,
+-0.495558407254,-0.495558407254,-0.495558407254,-0.495558407254,
+-0.495558407254,-0.495558407254,-0.495558407254,-0.495558407254,
+-0.495558407254,-0.495558027864,-0.495534985568,-0.495476264852,
+-0.495381865714,-0.495251788155,-0.495086032174,-0.494884597772,
+-0.494647484949,-0.494374693705,-0.494066224039,-0.493722075952,
+-0.493342249443,-0.492926744513,-0.492475561162,-0.491988699389,
+-0.491466159196,-0.49090794058,-0.490314043544,-0.489684468086,
+-0.489019214207,-0.488318281906,-0.487581671184,-0.486809382041,
+-0.486001414477,-0.485157768491,-0.484278444083,-0.483363441255,
+-0.482412760005,-0.481426400334,-0.480404362241,-0.479346645727,
+-0.478253250792,-0.477124177436,-0.475959425658,-0.474758995458,
+-0.473522886838,-0.472251099796,-0.470943634333,-0.469600490448,
+-0.468221668142,-0.466807167415,-0.465356988267,-0.463871130697,
+-0.462349594705,-0.460792380293,-0.459199487459,-0.457570916204,
+-0.455906666527,-0.454206738429,-0.45247113191,-0.450699846969,
+-0.448892883607,-0.447050241824,-0.44517192162,-0.443257922994,
+-0.441308245946,-0.439322890478,-0.437301856588,-0.435245144277,
+-0.433152753544,-0.43102468439,-0.428860936815,-0.426661510818,
+-0.4244264064,-0.422155623561,-0.419849162301,-0.417507022619,
+-0.415129204515,-0.412715707991,-0.410266533045,-0.407781679678,
+-0.405261147889,-0.402704937679,-0.400113049048,-0.397485481995,
+-0.394822236521,-0.392123312626,-0.389388710309,-0.386618429571,
+-0.383812470412,-0.380970832832,-0.37809351683,-0.375180522406,
+-0.372231849562,-0.369247498296,-0.366227468609,-0.3631717605,
+-0.36008037397,-0.356953309019,-0.353790565646,-0.350592143852,
+-0.347358043637,-0.344088265,-0.340782807942,-0.337441672463,
+-0.334064858562,-0.33065236624,-0.327204195497,-0.323720346333,
+-0.320200818747,-0.316645612739,-0.313054728311,-0.309428165461,
+-0.305765924189,-0.302068004497,-0.298334406383,-0.294565129847,
+-0.290760174891,-0.286919541513,-0.283043229714,-0.279131239493,
+-0.275183570851,-0.271200223788,-0.267181198303,-0.263126494397,
+-0.25903611207,-0.254910051321,-0.250748312151,-0.24655089456,
+-0.242317798547,-0.238049024113,-0.233744571258,-0.229404439981,
+-0.225028630283,-0.220617142164,-0.216169975623,-0.211687130661,
+-0.207168607278,-0.202614405473,-0.198024525247,-0.1933989666,
+-0.188737729531,-0.184040814041,-0.17930822013,-0.174539947797,
+-0.169735997043,-0.164896367868,-0.160021060271,-0.155110074253,
+-0.150163409814,-0.145181066953,-0.140163045671,-0.135109345968,
+-0.130019967843,-0.124894911297,-0.11973417633,-0.114537762941,
+-0.109305671131,-0.1040379009,-0.0987344522474,-0.0933953251734,
+-0.088020519678,-0.0826100357614,-0.0771638734234,-0.071682032664,
+-0.0661645134833,-0.0606113158813,-0.055022439858,-0.0493978854133,
+-0.0437376525473,-0.0380417412599,-0.0323101515512,-0.0265428834212,
+-0.0207399368699,-0.0149013118972,-0.00902700850315,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355295032654,-0.102034536734,
+-0.159658838856,-0.209499883991,-0.252530704926,-0.289612704825,
+-0.321507287029,-0.348886398824,-0.372342078595,-0.392395089397,
+-0.409502716042,-0.424065797174,-0.436435058534,-0.446916808679,
+-0.455778053793,-0.463251083857,-0.469537578432,-0.474812276454,
+-0.479226250935,-0.48290982614,-0.485975171707,-0.488518605341,
+-0.490622632993,-0.492357752998,-0.493784048304,-0.494952588811,
+-0.495906663851,-0.496682863014,-0.49731202183,-0.497820047274,
+-0.498228636617,-0.498555901822,-0.498816910488,-0.499024153227,
+-0.499187946343,-0.499316777754,-0.49941760326,-0.499496099481,
+-0.499556879084,-0.499603673306,-0.499639486176,-0.499666724349,
+-0.499687305967,-0.499702751576,-0.499714259725,-0.499722769541,
+-0.499729012289,-0.499733553639,-0.499736828138,-0.499739167161,
+-0.499740821462,-0.499741979233,-0.499742780492,-0.499743328455,
+-0.499743698463,-0.499743944938,-0.499744106751,-0.499744211334,
+-0.499744277799,-0.499744319278,-0.499744344659,-0.49974435986,
+-0.499744368754,-0.499744373826,-0.499744376638,-0.499744378149,
+-0.499744378934,-0.499744379326,-0.499744379513,-0.499744379599,
+-0.499744379635,-0.49974437965,-0.499744379656,-0.499744379657,
+-0.499744379658,-0.499744379658,-0.499744379658,-0.499744379658,
+-0.499744379658,-0.499744379658,-0.499744379658,-0.499744379658,
+-0.499744379658,-0.499743997063,-0.49972076013,-0.499661543401,
+-0.499566346875,-0.499435170554,-0.499268014435,-0.499064878521,
+-0.49882576281,-0.498550667303,-0.498239592,-0.497892536901,
+-0.497509502005,-0.497090487313,-0.496635492824,-0.49614451854,
+-0.495617564459,-0.495054630582,-0.494455716908,-0.493820823438,
+-0.493149950172,-0.49244309711,-0.491700264251,-0.490921451597,
+-0.490106659145,-0.489255886898,-0.488369134854,-0.487446403014,
+-0.486487691378,-0.485492999946,-0.484462328717,-0.483395677692,
+-0.48229304687,-0.481154436253,-0.479979845839,-0.478769275629,
+-0.477522725622,-0.476240195819,-0.47492168622,-0.473567196825,
+-0.472176727633,-0.470750278645,-0.469287849861,-0.467789441281,
+-0.466255052904,-0.464684684731,-0.463078336762,-0.461436008996,
+-0.459757701435,-0.458043414076,-0.456293146922,-0.454506899971,
+-0.452684673225,-0.450826466681,-0.448932280342,-0.447002114206,
+-0.445035968274,-0.443033842546,-0.440995737021,-0.4389216517,
+-0.436811586583,-0.43466554167,-0.43248351696,-0.430265512454,
+-0.428011528152,-0.425721564053,-0.423395620158,-0.421033696467,
+-0.41863579298,-0.416201909696,-0.413732046616,-0.41122620374,
+-0.408684381068,-0.406106578599,-0.403492796334,-0.400843034272,
+-0.398157292415,-0.395435570761,-0.392677869311,-0.389884188064,
+-0.387054527022,-0.384188886183,-0.381287265547,-0.378349665116,
+-0.375376084888,-0.372366524864,-0.369320985043,-0.366239465427,
+-0.363121966014,-0.359968486805,-0.356779027799,-0.353553588997,
+-0.350292170399,-0.346994772005,-0.343661393814,-0.340292035828,
+-0.336886698044,-0.333445380465,-0.329968083089,-0.326454805917,
+-0.322905548949,-0.319320312184,-0.315699095624,-0.312041899266,
+-0.308348723113,-0.304619567163,-0.300854431417,-0.297053315875,
+-0.293216220537,-0.289343145402,-0.285434090471,-0.281489055743,
+-0.27750804122,-0.2734910469,-0.269438072784,-0.265349118871,
+-0.261224185163,-0.257063271658,-0.252866378356,-0.248633505259,
+-0.244364652365,-0.240059819675,-0.235719007188,-0.231342214906,
+-0.226929442827,-0.222480690952,-0.21799595928,-0.213475247812,
+-0.208918556548,-0.204325885488,-0.199697234631,-0.195032603978,
+-0.190331993529,-0.185595403284,-0.180822833242,-0.176014283404,
+-0.17116975377,-0.166289244339,-0.161372755112,-0.156420286089,
+-0.15143183727,-0.146407408654,-0.141347000242,-0.136250612034,
+-0.131118244029,-0.125949896229,-0.120745568631,-0.115505261238,
+-0.110228974048,-0.104916707063,-0.0995684602804,-0.0941842337019,
+-0.0887640273272,-0.0833078411562,-0.0778156751889,-0.0722875294253,
+-0.0667234038654,-0.0611232985093,-0.0554872133569,-0.0498151484082,
+-0.0441071036633,-0.038363079122,-0.0325830747845,-0.0267670906507,
+-0.0209151267206,-0.0150271829943,-0.00910325947162,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355401659397,-0.102126926951,
+-0.159896012838,-0.209927139027,-0.253178835018,-0.290500779256,
+-0.322645010569,-0.350276106166,-0.373980410005,-0.39427438947,
+-0.411612192835,-0.426392474758,-0.438964552238,-0.449633948838,
+-0.45866738071,-0.466297233925,-0.472725578808,-0.47812776348,
+-0.482655625464,-0.486440357136,-0.489595057918,-0.492217003399,
+-0.494389659092,-0.496184464153,-0.497662408277,-0.498875422914,
+-0.499867606118,-0.500676298594,-0.501333026901,-0.501864328321,
+-0.50229247049,-0.502636077673,-0.502910674398,-0.503129156072,
+-0.503302195286,-0.503438591562,-0.503545571532,-0.503629045755,
+-0.503693827736,-0.503743820071,-0.503782172091,-0.503811412886,
+-0.50383356311,-0.503850228584,-0.503862678315,-0.503871909253,
+-0.503878699781,-0.503883653682,-0.503887236098,-0.503889802774,
+-0.50389162371,-0.503892902171,-0.503893789869,-0.503894399009,
+-0.503894811772,-0.503895087727,-0.503895269575,-0.503895387566,
+-0.503895462857,-0.503895510042,-0.503895539041,-0.503895556489,
+-0.503895566746,-0.503895572625,-0.503895575902,-0.503895577672,
+-0.503895578597,-0.503895579062,-0.503895579285,-0.503895579388,
+-0.503895579432,-0.503895579451,-0.503895579457,-0.50389557946,
+-0.50389557946,-0.503895579461,-0.503895579461,-0.503895579461,
+-0.503895579461,-0.503895579461,-0.503895579461,-0.503895579461,
+-0.503895579461,-0.503895193688,-0.503871763734,-0.503812055112,
+-0.503716067822,-0.503583801865,-0.50341525724,-0.503210433948,
+-0.502969331987,-0.502691951359,-0.502378292064,-0.5020283541,
+-0.501642137469,-0.50121964217,-0.500760868203,-0.500265815569,
+-0.499734484267,-0.499166874297,-0.49856298566,-0.497922818354,
+-0.497246372381,-0.496533647741,-0.495784644432,-0.494999362456,
+-0.494177801812,-0.493319962501,-0.492425844522,-0.491495447875,
+-0.49052877256,-0.489525818577,-0.488486585927,-0.487411074609,
+-0.486299284624,-0.48515121597,-0.483966868649,-0.482746242661,
+-0.481489338004,-0.48019615468,-0.478866692688,-0.477500952028,
+-0.476098932701,-0.474660634706,-0.473186058043,-0.471675202713,
+-0.470128068714,-0.468544656048,-0.466924964715,-0.465268994713,
+-0.463576746044,-0.461848218707,-0.460083412703,-0.458282328031,
+-0.456444964691,-0.454571322683,-0.452661402007,-0.450715202664,
+-0.448732724653,-0.446713967975,-0.444658932629,-0.442567618615,
+-0.440440025933,-0.438276154583,-0.436076004566,-0.433839575881,
+-0.431566868529,-0.429257882508,-0.42691261782,-0.424531074464,
+-0.422113252441,-0.41965915175,-0.417168772391,-0.414642114364,
+-0.41207917767,-0.409479962307,-0.406844468278,-0.40417269558,
+-0.401464644215,-0.398720314182,-0.395939705481,-0.393122818113,
+-0.390269652077,-0.387380207373,-0.384454484001,-0.381492481962,
+-0.378494201255,-0.37545964188,-0.372388803838,-0.369281687127,
+-0.366138291749,-0.362958617704,-0.35974266499,-0.356490433609,
+-0.353201923561,-0.349877134844,-0.34651606746,-0.343118721408,
+-0.339685096688,-0.336215193301,-0.332709011246,-0.329166550523,
+-0.325587811132,-0.321972793074,-0.318321496348,-0.314633920955,
+-0.310910066893,-0.307149934164,-0.303353522767,-0.299520832702,
+-0.29565186397,-0.29174661657,-0.287805090502,-0.283827285767,
+-0.279813202364,-0.275762840293,-0.271676199554,-0.267553280148,
+-0.263394082074,-0.259198605332,-0.254966849923,-0.250698815845,
+-0.2463945031,-0.242053911688,-0.237677041607,-0.233263892859,
+-0.228814465443,-0.22432875936,-0.219806774609,-0.21524851119,
+-0.210653969103,-0.206023148349,-0.201356048926,-0.196652670837,
+-0.191913014079,-0.187137078654,-0.182324864561,-0.1774763718,
+-0.172591600372,-0.167670550275,-0.162713221511,-0.15771961408,
+-0.152689727981,-0.147623563213,-0.142521119779,-0.137382397676,
+-0.132207396906,-0.126996117468,-0.121748559362,-0.116464722589,
+-0.111144607148,-0.105788213039,-0.100395540263,-0.0949665888184,
+-0.0895013587064,-0.0839998499267,-0.0784620624793,-0.0728879963642,
+-0.0672776515813,-0.0616310281307,-0.0559481260125,-0.0502289452264,
+-0.0444734857727,-0.0386817476513,-0.0328537308621,-0.0269894354052,
+-0.0210888612806,-0.0151520084883,-0.00917887702823,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355505734964,-0.102217180381,
+-0.160127888051,-0.210345179147,-0.253813478546,-0.291371034794,
+-0.323760733224,-0.351639925106,-0.375589351411,-0.396121234431,
+-0.413686605393,-0.428681931422,-0.441455100708,-0.452310820497,
+-0.46151547851,-0.469301514679,-0.475871346557,-0.481400888478,
+-0.486042701415,-0.489928807656,-0.493173201654,-0.495874085921,
+-0.498115858465,-0.499970876073,-0.501501015709,-0.502759054379,
+-0.503789886052,-0.50463159261,-0.505316384245,-0.505871423337,
+-0.506319544551,-0.506679882687,-0.5069684187,-0.507198453315,
+-0.507381016713,-0.507525221907,-0.507638568649,-0.50772720399,
+-0.507796144955,-0.507849468216,-0.507890471084,-0.507921807653,
+-0.507945603512,-0.507963551999,-0.507976994629,-0.50798698802,
+-0.507994359308,-0.507999751828,-0.508003662565,-0.5080064727,
+-0.508008472385,-0.508009880718,-0.508010861734,-0.508011537142,
+-0.508011996378,-0.508012304491,-0.508012508277,-0.508012641006,
+-0.508012726036,-0.508012779544,-0.50801281257,-0.508012832529,
+-0.508012844318,-0.508012851108,-0.508012854912,-0.508012856978,
+-0.508012858064,-0.508012858613,-0.508012858879,-0.508012859001,
+-0.508012859055,-0.508012859077,-0.508012859085,-0.508012859088,
+-0.508012859089,-0.508012859089,-0.508012859089,-0.508012859089,
+-0.508012859089,-0.508012859089,-0.508012859089,-0.508012859089,
+-0.508012859089,-0.508012470164,-0.507988848766,-0.507928652272,
+-0.50783188068,-0.507698533991,-0.507528612205,-0.507322115322,
+-0.507079043342,-0.506799396265,-0.506483174091,-0.50613037682,
+-0.505741004452,-0.505315056987,-0.504852534425,-0.504353436765,
+-0.503817764009,-0.503245516156,-0.502636693206,-0.501991295158,
+-0.501309322014,-0.500590773773,-0.499835650434,-0.499043951999,
+-0.498215678466,-0.497350829837,-0.49644940611,-0.495511407287,
+-0.494536833366,-0.493525684348,-0.492477960234,-0.491393661022,
+-0.490272786713,-0.489115337308,-0.487921312805,-0.486690713205,
+-0.485423538508,-0.484119788714,-0.482779463824,-0.481402563836,
+-0.479989088751,-0.478539038569,-0.47705241329,-0.475529212914,
+-0.47396943744,-0.47237308687,-0.470740161203,-0.469070660439,
+-0.467364584578,-0.46562193362,-0.463842707564,-0.462026906412,
+-0.460174530163,-0.458285578816,-0.456360052373,-0.454397950832,
+-0.452399274195,-0.450364022461,-0.448292195629,-0.4461837937,
+-0.444038816675,-0.441857264552,-0.439639137333,-0.437384435016,
+-0.435093157602,-0.432765305092,-0.430400877484,-0.427999874779,
+-0.425562296977,-0.423088144078,-0.420577416082,-0.418030112989,
+-0.4154462348,-0.412825781513,-0.410168753129,-0.407475149647,
+-0.404744971069,-0.401978217394,-0.399174888622,-0.396334984753,
+-0.393458505787,-0.390545451724,-0.387595822563,-0.384609618306,
+-0.381586838952,-0.3785274845,-0.375431554952,-0.372299050307,
+-0.369129970564,-0.365924315725,-0.362682085788,-0.359403280755,
+-0.356087900624,-0.352735945396,-0.349347415072,-0.34592230965,
+-0.342460629131,-0.338962373516,-0.335427542803,-0.331856136993,
+-0.328248156086,-0.324603600082,-0.320922468982,-0.317204762784,
+-0.313450481489,-0.309659625097,-0.305832193608,-0.301968187022,
+-0.298067605339,-0.294130448559,-0.290156716681,-0.286146409707,
+-0.282099527636,-0.278016070468,-0.273896038203,-0.26973943084,
+-0.265546248381,-0.261316490825,-0.257050158171,-0.252747250421,
+-0.248407767573,-0.244031709629,-0.239619076587,-0.235169868449,
+-0.230684085213,-0.226161726881,-0.221602793451,-0.217007284924,
+-0.212375201301,-0.20770654258,-0.203001308762,-0.198259499848,
+-0.193481115836,-0.188666156727,-0.183814622521,-0.178926513218,
+-0.174001828818,-0.169040569321,-0.164042734727,-0.159008325036,
+-0.153937340248,-0.148829780363,-0.143685645381,-0.138504935302,
+-0.133287650126,-0.128033789852,-0.122743354482,-0.117416344015,
+-0.11205275845,-0.106652597789,-0.101215862031,-0.0957425511754,
+-0.090232665223,-0.0846862041735,-0.079103168027,-0.0734835567835,
+-0.0678273704429,-0.0621346090053,-0.0564052724707,-0.0506393608391,
+-0.0448368741104,-0.0389978122847,-0.0331221753619,-0.0272099633422,
+-0.0212611762254,-0.0152758140115,-0.00925387670067,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355607359805,-0.102305378921,
+-0.160354662064,-0.210754338398,-0.25443511057,-0.292224081023,
+-0.324855185643,-0.352978689963,-0.377169821729,-0.39793660864,
+-0.41572698539,-0.430935229741,-0.443907783135,-0.454948507478,
+-0.464323425955,-0.472264992335,-0.478975929884,-0.48463267795,
+-0.48938848144,-0.493376155627,-0.496710556275,-0.499490782648,
+-0.501802138776,-0.503717876288,-0.505300740188,-0.506604337151,
+-0.50767434427,-0.508549574598,-0.509262914417,-0.509842145826,
+-0.510310666985,-0.510688121236,-0.510990945246,-0.511232845365,
+-0.511425210468,-0.511577468757,-0.511697395231,-0.511791375834,
+-0.511864633673,-0.511921422111,-0.511965189025,-0.51199871602,
+-0.512024235992,-0.512043532004,-0.512058020104,-0.512068818406,
+-0.512076804433,-0.512082662509,-0.512086922711,-0.512089992735,
+-0.512092183805,-0.512093731616,-0.512094813172,-0.51209556021,
+-0.512096069849,-0.512096412962,-0.51209664071,-0.512096789598,
+-0.512096885348,-0.512096945844,-0.512096983339,-0.512097006099,
+-0.512097019603,-0.512097027418,-0.512097031818,-0.512097034221,
+-0.51209703549,-0.512097036136,-0.512097036451,-0.512097036597,
+-0.512097036661,-0.512097036688,-0.512097036698,-0.512097036701,
+-0.512097036703,-0.512097036703,-0.512097036703,-0.512097036703,
+-0.512097036703,-0.512097036703,-0.512097036703,-0.512097036703,
+-0.512097036703,-0.512096644651,-0.512072833349,-0.512012152903,
+-0.511914603315,-0.511780184583,-0.511608896708,-0.51140073969,
+-0.511155713529,-0.510873818225,-0.510555053777,-0.510199420187,
+-0.509806917453,-0.509377545577,-0.508911304557,-0.508408194394,
+-0.507868215088,-0.507291366639,-0.506677649047,-0.506027062311,
+-0.505339606433,-0.504615281411,-0.503854087246,-0.503056023939,
+-0.502221091488,-0.501349289894,-0.500440619156,-0.499495079276,
+-0.498512670253,-0.497493392086,-0.496437244776,-0.495344228324,
+-0.494214342728,-0.493047587989,-0.491843964107,-0.490603471082,
+-0.489326108913,-0.488011877602,-0.486660777147,-0.485272807549,
+-0.483847968809,-0.482386260925,-0.480887683898,-0.479352237727,
+-0.477779922414,-0.476170737958,-0.474524684358,-0.472841761616,
+-0.47112196973,-0.469365308701,-0.467571778529,-0.465741379214,
+-0.463874110756,-0.461969973154,-0.46002896641,-0.458051090522,
+-0.456036345492,-0.453984731318,-0.451896248001,-0.449770895541,
+-0.447608673938,-0.445409583192,-0.443173623302,-0.44090079427,
+-0.438591096094,-0.436244528775,-0.433861092314,-0.431440786709,
+-0.428983611961,-0.426489568069,-0.423958655035,-0.421390872858,
+-0.418786221537,-0.416144701073,-0.413466311467,-0.410751052717,
+-0.407998924824,-0.405209927788,-0.402384061608,-0.399521326286,
+-0.396621721821,-0.393685248212,-0.39071190546,-0.387701693566,
+-0.384654612528,-0.381570662347,-0.378449843022,-0.375292154555,
+-0.372097596945,-0.368866170191,-0.365597874295,-0.362292709255,
+-0.358950675072,-0.355571771746,-0.352155999277,-0.348703357665,
+-0.345213846909,-0.341687467011,-0.338124217969,-0.334524099785,
+-0.330887112457,-0.327213255986,-0.323502530372,-0.319754935615,
+-0.315970471715,-0.312149138671,-0.308290936485,-0.304395865155,
+-0.300463924682,-0.296495115067,-0.292489436308,-0.288446888406,
+-0.28436747136,-0.280251185172,-0.276098029841,-0.271908005366,
+-0.267681111748,-0.263417348988,-0.259116717084,-0.254779216037,
+-0.250404845847,-0.245993606513,-0.241545498037,-0.237060520418,
+-0.232538673655,-0.227979957749,-0.2233843727,-0.218751918509,
+-0.214082595173,-0.209376402695,-0.204633341074,-0.19985341031,
+-0.195036610402,-0.190182941351,-0.185292403158,-0.180364995821,
+-0.175400719341,-0.170399573718,-0.165361558952,-0.160286675042,
+-0.15517492199,-0.150026299794,-0.144840808456,-0.139618447974,
+-0.134359218349,-0.129063119581,-0.12373015167,-0.118360314615,
+-0.112953608418,-0.107510033078,-0.102029588594,-0.0965122749672,
+-0.0909580921974,-0.0853670402844,-0.0797391192283,-0.0740743290292,
+-0.0683726696868,-0.0626341412014,-0.0568587435729,-0.0510464768012,
+-0.0451973408865,-0.0393113358286,-0.0333884616276,-0.0274287182834,
+-0.0214321057962,-0.0153986241658,-0.00932827339238,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355706628906,-0.102391600117,
+-0.160576522191,-0.2111549339,-0.255044182658,-0.293060498133,
+-0.325929064119,-0.354293196819,-0.37872269883,-0.399721453597,
+-0.417734320697,-0.433153388274,-0.446323635056,-0.457548050726,
+-0.467092260012,-0.475188692577,-0.482040337787,-0.487824120531,
+-0.492693931594,-0.496783343547,-0.500208040747,-0.50306798982,
+-0.50544937493,-0.507426320163,-0.509062419583,-0.510412093788,
+-0.511521790218,-0.512431043032,-0.513173406954,-0.513777278258,
+-0.514266614871,-0.514661566487,-0.514979024564,-0.515233101178,
+-0.515435544805,-0.51559610036,-0.515722820052,-0.515822330979,
+-0.515900064764,-0.515960453977,-0.516007099564,-0.51604291308,
+-0.516070237047,-0.516090946425,-0.516106533794,-0.516118180577,
+-0.516126816309,-0.516133167738,-0.516137799292,-0.516141146264,
+-0.516143541874,-0.516145239201,-0.516146428864,-0.516147253169,
+-0.516147817358,-0.51614819848,-0.516148452344,-0.516148618907,
+-0.516148726428,-0.516148794627,-0.51614883707,-0.516148862942,
+-0.516148878361,-0.516148887326,-0.516148892398,-0.516148895183,
+-0.516148896662,-0.516148897419,-0.51614889779,-0.516148897963,
+-0.51614889804,-0.516148898072,-0.516148898084,-0.516148898089,
+-0.51614889809,-0.51614889809,-0.51614889809,-0.51614889809,
+-0.51614889809,-0.51614889809,-0.51614889809,-0.51614889809,
+-0.51614889809,-0.516148502937,-0.516124503232,-0.516063342665,
+-0.515965021236,-0.515829538944,-0.515656895789,-0.515447091772,
+-0.515200126892,-0.51491600115,-0.514594714545,-0.514236267078,
+-0.513840658748,-0.513407889556,-0.512937959501,-0.512430868583,
+-0.511886616803,-0.511305204161,-0.510686630655,-0.510030896288,
+-0.509338001057,-0.508607944965,-0.507840728009,-0.507036350191,
+-0.506194811511,-0.505316111968,-0.504400251562,-0.503447230294,
+-0.502457048163,-0.50142970517,-0.500365201314,-0.499263536596,
+-0.498124711015,-0.496948724572,-0.495735577266,-0.494485269097,
+-0.493197800066,-0.491873170173,-0.490511379417,-0.489112427798,
+-0.487676315317,-0.486203041973,-0.484692607766,-0.483145012698,
+-0.481560256766,-0.479938339972,-0.478279262315,-0.476583023796,
+-0.474849624415,-0.47307906417,-0.471271343064,-0.469426461094,
+-0.467544418263,-0.465625214568,-0.463668850011,-0.461675324592,
+-0.45964463831,-0.457576791165,-0.455471783158,-0.453329614288,
+-0.451150284556,-0.448933793961,-0.446680142504,-0.444389330184,
+-0.442061357001,-0.439696222956,-0.437293928049,-0.434854472279,
+-0.432377855646,-0.429864078151,-0.427313139793,-0.424725040573,
+-0.42209978049,-0.419437359544,-0.416737777737,-0.414001035066,
+-0.411227131533,-0.408416067137,-0.405567841879,-0.402682455759,
+-0.399759908775,-0.396800200929,-0.393803332221,-0.39076930265,
+-0.387698112217,-0.384589760921,-0.381444248762,-0.378261575741,
+-0.375041741857,-0.371784747111,-0.368490591503,-0.365159275031,
+-0.361790797697,-0.358385159501,-0.354942360442,-0.351462400521,
+-0.347945279736,-0.34439099809,-0.340799555581,-0.337170952209,
+-0.333505187975,-0.329802262878,-0.326062176919,-0.322284930097,
+-0.318470522412,-0.314618953865,-0.310730224456,-0.306804334184,
+-0.302841283049,-0.298841071052,-0.294803698192,-0.29072916447,
+-0.286617469885,-0.282468614438,-0.278282598128,-0.274059420955,
+-0.26979908292,-0.265501584023,-0.261166924262,-0.25679510364,
+-0.252386122154,-0.247939979807,-0.243456676596,-0.238936212523,
+-0.234378587588,-0.22978380179,-0.225151855129,-0.220482747606,
+-0.215776479221,-0.211033049973,-0.206252459862,-0.201434708889,
+-0.196579797053,-0.191687724354,-0.186758490793,-0.18179209637,
+-0.176788541084,-0.171747824935,-0.166669947924,-0.16155491005,
+-0.156402711314,-0.151213351715,-0.145986831254,-0.14072314993,
+-0.135422307744,-0.130084304695,-0.124709140783,-0.119296816009,
+-0.113847330373,-0.108360683873,-0.102836876512,-0.0972759082873,
+-0.0916777792005,-0.0860424892511,-0.0803700384392,-0.0746604267647,
+-0.0689136542277,-0.0631297208281,-0.057308626566,-0.0514503714413,
+-0.0455549554541,-0.0396223786043,-0.033652640892,-0.0276457423171,
+-0.0216016828797,-0.0155204625797,-0.00940208141715,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355803632172,-0.102475917458,
+-0.160793646171,-0.211547266946,-0.255641124382,-0.293880838736,
+-0.326983032678,-0.355584205786,-0.380248821913,-0.401476670371,
+-0.419709557812,-0.435337383958,-0.448703650677,-0.460110450571,
+-0.469822978024,-0.478073602621,-0.485065542051,-0.49097616889,
+-0.495959983174,-0.500151280273,-0.503666541389,-0.506606571892,
+-0.509058410762,-0.511097032567,-0.51278686172,-0.514183117122,
+-0.515333003833,-0.516276767011,-0.517048622066,-0.51767757376,
+-0.518188135893,-0.518600962124,-0.518933397587,-0.519199959988,
+-0.519412758133,-0.519581854994,-0.519715581796,-0.519820808916,
+-0.51990317881,-0.519967305659,-0.520016945906,-0.520055143421,
+-0.520084352625,-0.520106542504,-0.520123284142,-0.52013582407,
+-0.520145145448,-0.520152018885,-0.520157044415,-0.520160686022,
+-0.520163299852,-0.520165157163,-0.520166462853,-0.520167370346,
+-0.520167993453,-0.520168415766,-0.520168698028,-0.52016888388,
+-0.520169004295,-0.520169080965,-0.52016912887,-0.520169158193,
+-0.520169175745,-0.520169185997,-0.520169191825,-0.520169195041,
+-0.520169196758,-0.520169197641,-0.520169198077,-0.520169198282,
+-0.520169198374,-0.520169198412,-0.520169198427,-0.520169198432,
+-0.520169198434,-0.520169198434,-0.520169198434,-0.520169198435,
+-0.520169198435,-0.520169198435,-0.520169198435,-0.520169198435,
+-0.520169198435,-0.520168800203,-0.520144613564,-0.520082976615,
+-0.519983889357,-0.519847351789,-0.519673363911,-0.519461925724,
+-0.519213037227,-0.51892669842,-0.518602909304,-0.518241669878,
+-0.517842980142,-0.517406840096,-0.516933249741,-0.516422209076,
+-0.515873718101,-0.515287776817,-0.514664385223,-0.514003543319,
+-0.513305251106,-0.512569508583,-0.51179631575,-0.510985672607,
+-0.510137579155,-0.509252035393,-0.508329041321,-0.50736859694,
+-0.506370702249,-0.505335357248,-0.504262561937,-0.503152316317,
+-0.502004620387,-0.500819474148,-0.499596877598,-0.498336830739,
+-0.497039333571,-0.495704386092,-0.494331988304,-0.492922140206,
+-0.491474841799,-0.489990093082,-0.488467894055,-0.486908244718,
+-0.485311145072,-0.483676595116,-0.48200459485,-0.480295144275,
+-0.47854824339,-0.476763892195,-0.47494209069,-0.473082838876,
+-0.471186136752,-0.469251984319,-0.467280381575,-0.465271328522,
+-0.46322482516,-0.461140871487,-0.459019467505,-0.456860613213,
+-0.454664308612,-0.4524305537,-0.450159348479,-0.447850692949,
+-0.445504587108,-0.443121030958,-0.440700024499,-0.438241567729,
+-0.43574566065,-0.433212303261,-0.430641495563,-0.428033237554,
+-0.425387529236,-0.422704370609,-0.419983761671,-0.417225702424,
+-0.414430192868,-0.411597233001,-0.408726822825,-0.405818962339,
+-0.402873651544,-0.399890890438,-0.396870679023,-0.393813017299,
+-0.390717905264,-0.38758534292,-0.384415330266,-0.381207867303,
+-0.37796295403,-0.374680590447,-0.371360776554,-0.368003512352,
+-0.36460879784,-0.361176633018,-0.357707017887,-0.354199952446,
+-0.350655436695,-0.347073470635,-0.343454054264,-0.339797187585,
+-0.336102870595,-0.332371103296,-0.328601885687,-0.324795217768,
+-0.320951099539,-0.317069531001,-0.313150512154,-0.309194042996,
+-0.305200123529,-0.301168753752,-0.297099933665,-0.292993663269,
+-0.288849942563,-0.284668771547,-0.280450150222,-0.276194078587,
+-0.271900556642,-0.267569584387,-0.263201161823,-0.258795288949,
+-0.254351965766,-0.249871192272,-0.245352968469,-0.240797294357,
+-0.236204169934,-0.231573595202,-0.22690557016,-0.222200094809,
+-0.217457169147,-0.212676793176,-0.207858966896,-0.203003690305,
+-0.198110963405,-0.193180786196,-0.188213158676,-0.183208080847,
+-0.178165552708,-0.17308557426,-0.167968145501,-0.162813266433,
+-0.157620937056,-0.152391157368,-0.147123927371,-0.141819247065,
+-0.136477116448,-0.131097535522,-0.125680504286,-0.12022602274,
+-0.114734090885,-0.10920470872,-0.103637876246,-0.0980335934611,
+-0.092391860367,-0.0867126769633,-0.0809960432498,-0.0752419592266,
+-0.0694504248937,-0.0636214402511,-0.0577550052988,-0.0518511200368,
+-0.0459097844652,-0.0399309985838,-0.0339147623927,-0.0278610758919,
+-0.0217699390814,-0.0156413519612,-0.00947531453127,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355898454765,-0.102558400645,
+-0.16100620279,-0.211931624005,-0.256226344686,-0.294685629557,
+-0.328017725,-0.356852443107,-0.381748993722,-0.40320312186,
+-0.421653604132,-0.437488154342,-0.451048785056,-0.462636668822,
+-0.472516539723,-0.48092067316,-0.488052479103,-0.494089741528,
+-0.499187534448,-0.503480842689,-0.507086913502,-0.510107363126,
+-0.51263006061,-0.51473080944,-0.516474845929,-0.517918171819,
+-0.519108737106,-0.520087487816,-0.520889292204,-0.521543757707,
+-0.522075949932,-0.522507023952,-0.522854777264,-0.523134132937,
+-0.523357560644,-0.5235354426,-0.523676390701,-0.523787520587,
+-0.523874687744,-0.523942690276,-0.523995442456,-0.524036122778,
+-0.524067299771,-0.524091038544,-0.524108990629,-0.52412246944,
+-0.524132513371,-0.524139938318,-0.524145381186,-0.524149335739,
+-0.524152182,-0.5241542102,-0.524155640192,-0.524156637077,
+-0.524157323697,-0.524157790557,-0.524158103636,-0.524158310493,
+-0.524158445,-0.524158530963,-0.524158584884,-0.524158618024,
+-0.524158637945,-0.524158649632,-0.524158656308,-0.524158660009,
+-0.524158661996,-0.524158663023,-0.524158663533,-0.524158663774,
+-0.524158663883,-0.524158663929,-0.524158663946,-0.524158663953,
+-0.524158663955,-0.524158663956,-0.524158663956,-0.524158663956,
+-0.524158663956,-0.524158663956,-0.524158663956,-0.524158663956,
+-0.524158663956,-0.52415826267,-0.52413389053,-0.524071780854,
+-0.523971933641,-0.52383434889,-0.523659026603,-0.52344596678,
+-0.523195169419,-0.522906634521,-0.522580362087,-0.522216352116,
+-0.521814604607,-0.521375119562,-0.520897896981,-0.520382936862,
+-0.519830239206,-0.519239804014,-0.518611631285,-0.517945721019,
+-0.517242073216,-0.516500687876,-0.515721564999,-0.514904704585,
+-0.514050106635,-0.513157771148,-0.512227698124,-0.511259887563,
+-0.510254339465,-0.50921105383,-0.508130030658,-0.50701126995,
+-0.505854771705,-0.504660535923,-0.503428562604,-0.502158851748,
+-0.500851403355,-0.499506217425,-0.498123293959,-0.496702632956,
+-0.495244234416,-0.493748098339,-0.492214224725,-0.490642613574,
+-0.489033264886,-0.487386178662,-0.485701354901,-0.483978793603,
+-0.482218494768,-0.480420458396,-0.478584684487,-0.476711173041,
+-0.474799924059,-0.47285093754,-0.470864213484,-0.468839751891,
+-0.466777552761,-0.464677616094,-0.462539941891,-0.46036453015,
+-0.458151380873,-0.455900494059,-0.453611869708,-0.45128550782,
+-0.448921408395,-0.446519571434,-0.444079996935,-0.4416026849,
+-0.439087635328,-0.436534848219,-0.433944323573,-0.43131606139,
+-0.428650061671,-0.425946324414,-0.423204849621,-0.420425637291,
+-0.417608687424,-0.41475400002,-0.411861575079,-0.408931412602,
+-0.405963512587,-0.402957875036,-0.399914499948,-0.396833387323,
+-0.393714537161,-0.390557949462,-0.387363624227,-0.384131561454,
+-0.380861761145,-0.377554223299,-0.374208947916,-0.370825934996,
+-0.367405184539,-0.363946696546,-0.360450471015,-0.356916507948,
+-0.353344807344,-0.349735369203,-0.346088193525,-0.34240328031,
+-0.338680629559,-0.33492024127,-0.331122115445,-0.327286252083,
+-0.323412651184,-0.319501312748,-0.315552236775,-0.311565423266,
+-0.307540872219,-0.303478583636,-0.299378557516,-0.295240793859,
+-0.291065292665,-0.286852053934,-0.282601077667,-0.278312363862,
+-0.273985912521,-0.269621723643,-0.265219797228,-0.260780133276,
+-0.256302731787,-0.251787592761,-0.247234716199,-0.2426441021,
+-0.238015750464,-0.233349661291,-0.228645834581,-0.223904270334,
+-0.21912496855,-0.21430792923,-0.209453152373,-0.204560637979,
+-0.199630386048,-0.19466239658,-0.189656669575,-0.184613205033,
+-0.179532002955,-0.17441306334,-0.169256386188,-0.164061971499,
+-0.158829819273,-0.15355992951,-0.14825230221,-0.142906937374,
+-0.137523835001,-0.132102995091,-0.126644417644,-0.12114810266,
+-0.115614050139,-0.110042260081,-0.104432732487,-0.0987854673557,
+-0.0931004646875,-0.0873777244825,-0.0816172467407,-0.0758190314619,
+-0.0699830786464,-0.0641093882939,-0.0581979604046,-0.0522487949785,
+-0.0462618920155,-0.0402372515156,-0.0341748734789,-0.0280747579053,
+-0.0219369047949,-0.0157613141476,-0.00954798596345,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0355991177429,-0.102639115837,
+-0.161214352459,-0.21230827766,-0.256800233159,-0.295475372992,
+-0.329033746214,-0.358098603108,-0.383223982597,-0.4049016349,
+-0.423567330057,-0.439606599667,-0.453359956135,-0.465127630738,
+-0.475173869124,-0.483730820178,-0.491002051758,-0.497165724443,
+-0.502377452266,-0.506772877277,-0.510469982892,-0.513571169084,
+-0.516165110787,-0.518328419244,-0.520127124496,-0.521617995818,
+-0.522849715525,-0.523863920367,-0.524696123528,-0.525376529185,
+-0.52593075055,-0.526380441381,-0.526743850064,-0.527036304574,
+-0.52727063583,-0.527457546308,-0.527605930083,-0.527723149909,
+-0.527815276387,-0.52788729375,-0.527943276361,-0.527986539565,
+-0.528019768168,-0.528045125451,-0.528064345308,-0.528078809797,
+-0.528089614137,-0.528097620941,-0.528103505238,-0.52810779168,
+-0.528110885108,-0.528113095541,-0.52811465847,-0.528115751242,
+-0.5281165062,-0.528117021144,-0.528117367596,-0.528117597279,
+-0.528117747153,-0.528117843289,-0.528117903819,-0.52811794117,
+-0.528117963715,-0.528117977,-0.528117984622,-0.52811798887,
+-0.52811799116,-0.528117992352,-0.528117992946,-0.528117993229,
+-0.528117993357,-0.528117993412,-0.528117993433,-0.528117993441,
+-0.528117993444,-0.528117993444,-0.528117993445,-0.528117993445,
+-0.528117993445,-0.528117993445,-0.528117993445,-0.528117993445,
+-0.528117993445,-0.528117589127,-0.528093032888,-0.528030454055,
+-0.527929852627,-0.527791228605,-0.527614581989,-0.527399912778,
+-0.527147220973,-0.526856506574,-0.52652776958,-0.526161009992,
+-0.52575622781,-0.525313423033,-0.524832595662,-0.524313745697,
+-0.523756873138,-0.523161977984,-0.522529060235,-0.521858119893,
+-0.521149156956,-0.520402171425,-0.519617163299,-0.518794132579,
+-0.517933079265,-0.517034003356,-0.516096904854,-0.515121783756,
+-0.514108640065,-0.513057473779,-0.511968284899,-0.510841073424,
+-0.509675839355,-0.508472582692,-0.507231303435,-0.505952001583,
+-0.504634677137,-0.503279330096,-0.501885960461,-0.500454568232,
+-0.498985153409,-0.497477715991,-0.495932255979,-0.494348773373,
+-0.492727268172,-0.491067740377,-0.489370189987,-0.487634617003,
+-0.485861021425,-0.484049403253,-0.482199762486,-0.480312099125,
+-0.47838641317,-0.47642270462,-0.474420973476,-0.472381219738,
+-0.470303443405,-0.468187644478,-0.466033822957,-0.463841978841,
+-0.461612112131,-0.459344222827,-0.457038310928,-0.454694376435,
+-0.452312419348,-0.449892439666,-0.44743443739,-0.44493841252,
+-0.442404365055,-0.439832294996,-0.437222202343,-0.434574087095,
+-0.431887949254,-0.429163788817,-0.426401605787,-0.423601400162,
+-0.420763171943,-0.417886921129,-0.414972647721,-0.412020351719,
+-0.409030033122,-0.406001691932,-0.402935328146,-0.399830941767,
+-0.396688532793,-0.393508101225,-0.390289647062,-0.387033170305,
+-0.383738670954,-0.380406149009,-0.377035604469,-0.373627037335,
+-0.370180447606,-0.366695835284,-0.363173200366,-0.359612542855,
+-0.356013862749,-0.352377160049,-0.348702434755,-0.344989686866,
+-0.341238916383,-0.337450123306,-0.333623307634,-0.329758469368,
+-0.325855608507,-0.321914725053,-0.317935819004,-0.31391889036,
+-0.309863939123,-0.305770965291,-0.301639968864,-0.297470949843,
+-0.293263908228,-0.289018844019,-0.284735757215,-0.280414647818,
+-0.276055515825,-0.271658361239,-0.267223184058,-0.262749984282,
+-0.258238761913,-0.253689516949,-0.24910224939,-0.244476959238,
+-0.239813646491,-0.23511231115,-0.230372953214,-0.225595572684,
+-0.22078016956,-0.215926743841,-0.211035295529,-0.206105824621,
+-0.20113833112,-0.196132815024,-0.191089276334,-0.186007715049,
+-0.18088813117,-0.175730524697,-0.17053489563,-0.165301243968,
+-0.160029569712,-0.154719872861,-0.149372153416,-0.143986411377,
+-0.138562646744,-0.133100859516,-0.127601049694,-0.122063217277,
+-0.116487362267,-0.110873484661,-0.105221584462,-0.0995316616683,
+-0.0938037162802,-0.0880377482978,-0.0822337577211,-0.07639174455,
+-0.0705117087846,-0.0645936504249,-0.0586375694709,-0.0526434659225,
+-0.0466113397798,-0.0405411910428,-0.0344330197114,-0.0282868257857,
+-0.0221026092657,-0.0158803701514,-0.00962010844273,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356081876773,-0.102718125886,
+-0.161418247739,-0.212677487466,-0.257363161206,-0.29625054855,
+-0.330031674551,-0.359323350013,-0.384674524387,-0.406573002224,
+-0.425451570964,-0.441693584822,-0.455638046637,-0.467584226867,
+-0.477795856302,-0.486504926651,-0.493915130846,-0.500204972706,
+-0.505530573574,-0.510028201574,-0.513816547297,-0.516998768027,
+-0.519664320955,-0.521890604326,-0.523744424014,-0.525283301685,
+-0.526556639432,-0.527606754577,-0.528469797261,-0.529176562366,
+-0.529753206365,-0.530221878822,-0.530601277369,-0.530907134267,
+-0.531152641894,-0.531348823852,-0.531504857756,-0.531628355205,
+-0.531725603876,-0.531801776246,-0.531861108937,-0.531907056315,
+-0.531942421569,-0.531969468166,-0.531990014242,-0.532005512239,
+-0.532017115783,-0.532025735622,-0.532032086171,-0.532036724067,
+-0.532040079931,-0.532042484384,-0.532044189247,-0.532045384695,
+-0.532046213049,-0.532046779797,-0.532047162321,-0.532047416758,
+-0.532047583356,-0.5320476906,-0.532047758378,-0.532047800363,
+-0.532047825809,-0.532047840866,-0.532047849544,-0.532047854403,
+-0.532047857036,-0.532047858413,-0.532047859104,-0.532047859435,
+-0.532047859585,-0.53204785965,-0.532047859676,-0.532047859685,
+-0.532047859688,-0.532047859689,-0.532047859689,-0.532047859689,
+-0.532047859689,-0.532047859689,-0.532047859689,-0.532047859689,
+-0.532047859689,-0.532047452363,-0.532022713395,-0.531959668896,
+-0.531858318866,-0.531718663306,-0.531540702215,-0.531324435594,
+-0.531069863442,-0.53077698576,-0.530445802547,-0.530076313803,
+-0.529668519529,-0.529222419725,-0.52873801439,-0.528215303524,
+-0.527654287128,-0.527054965201,-0.526417337744,-0.525741404756,
+-0.525027166237,-0.524274622189,-0.523483772609,-0.522654617499,
+-0.521787156858,-0.520881390687,-0.519937318985,-0.518954941753,
+-0.51793425899,-0.516875270697,-0.515777976873,-0.514642377519,
+-0.513468472634,-0.512256262218,-0.511005746272,-0.509716924795,
+-0.508389797788,-0.50702436525,-0.505620627182,-0.504178583583,
+-0.502698234454,-0.501179579794,-0.499622619603,-0.498027353882,
+-0.496393782631,-0.494721905849,-0.493011723536,-0.491263235693,
+-0.489476442319,-0.487651343415,-0.48578793898,-0.483886229014,
+-0.481946213518,-0.479967892492,-0.477951265935,-0.475896333847,
+-0.473803096229,-0.47167155308,-0.469501704401,-0.467293550191,
+-0.46504709045,-0.46276232518,-0.460439254378,-0.458077878046,
+-0.455678196183,-0.45324020879,-0.450763915867,-0.448249317412,
+-0.445696413428,-0.443105203912,-0.440475688866,-0.43780786829,
+-0.435101742183,-0.432357310545,-0.429574573377,-0.426753530679,
+-0.42389418245,-0.42099652869,-0.4180605694,-0.415086304579,
+-0.412073734227,-0.409022858345,-0.405933676933,-0.40280618999,
+-0.399640397516,-0.396436299512,-0.393193895978,-0.389913186912,
+-0.386594172317,-0.38323685219,-0.379841226533,-0.376407295346,
+-0.372935058628,-0.36942451638,-0.365875668601,-0.362288515291,
+-0.358663056451,-0.35499929208,-0.351297222179,-0.347556846747,
+-0.343778165785,-0.339961179292,-0.336105887268,-0.332212289714,
+-0.32828038663,-0.324310178015,-0.320301663869,-0.316254844193,
+-0.312169718986,-0.308046288249,-0.303884551981,-0.299684510182,
+-0.295446162853,-0.291169509994,-0.286854551604,-0.282501287683,
+-0.278109718232,-0.27367984325,-0.269211662738,-0.264705176695,
+-0.260160385122,-0.255577288018,-0.250955885384,-0.246296177219,
+-0.241598163523,-0.236861844297,-0.23208721954,-0.227274289253,
+-0.222423053436,-0.217533512087,-0.212605665208,-0.207639512799,
+-0.202635054859,-0.197592291389,-0.192511222388,-0.187391847856,
+-0.182234167794,-0.177038182201,-0.171803891078,-0.166531294424,
+-0.16122039224,-0.155871184525,-0.15048367128,-0.145057852504,
+-0.139593728197,-0.13409129836,-0.128550562992,-0.122971522094,
+-0.117354175665,-0.111698523706,-0.106004566216,-0.100272303196,
+-0.0945017346451,-0.0886928605636,-0.0828456809516,-0.076960195809,
+-0.0710364051359,-0.0650743089322,-0.059073907198,-0.0530351999333,
+-0.0469581871379,-0.0408428688121,-0.0346892449557,-0.0284973155687,
+-0.0222670806512,-0.0159985402031,-0.00969169422453,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356170625544,-0.102795490541,
+-0.161618033836,-0.213039500747,-0.25791548314,-0.297011614195,
+-0.33101206289,-0.360527319633,-0.386101324239,-0.408217984293,
+-0.427307129051,-0.443749941158,-0.457883905855,-0.470007314776,
+-0.480383359048,-0.489243844143,-0.496792556749,-0.503208311926,
+-0.508647706835,-0.513247605551,-0.517127377721,-0.520390912221,
+-0.52312842541,-0.525418082188,-0.527327446646,-0.528914777876,
+-0.53023018528,-0.53131665662,-0.532210970972,-0.532944507787,
+-0.533543962341,-0.534031976978,-0.534427696777,-0.53474725751,
+-0.535004213066,-0.535209908891,-0.535373807368,-0.535503770531,
+-0.535606304998,-0.5356867735,-0.53574957701,-0.535798311014,
+-0.535835899138,-0.535864707001,-0.53588663884,-0.535903219191,
+-0.535915661659,-0.535924926536,-0.535931768881,-0.535936778424,
+-0.535940412521,-0.535943023225,-0.535944879387,-0.535946184596,
+-0.535947091644,-0.535947714104,-0.535948135543,-0.535948416772,
+-0.535948601533,-0.535948720886,-0.53594879659,-0.535948843664,
+-0.535948872308,-0.535948889328,-0.535948899181,-0.535948904722,
+-0.53594890774,-0.535948909326,-0.535948910126,-0.535948910512,
+-0.535948910688,-0.535948910764,-0.535948910795,-0.535948910806,
+-0.53594891081,-0.535948910811,-0.535948910811,-0.535948910811,
+-0.535948910811,-0.535948910811,-0.535948910811,-0.535948910811,
+-0.535948910811,-0.535948500499,-0.535923580141,-0.53586007339,
+-0.535757980248,-0.535617300713,-0.535438034786,-0.535220182467,
+-0.534963743756,-0.534668718652,-0.534335107157,-0.533962909269,
+-0.533552124989,-0.533102754316,-0.532614797252,-0.532088253795,
+-0.531523123947,-0.530919407706,-0.530277105072,-0.529596216047,
+-0.52887674063,-0.52811867882,-0.527322030618,-0.526486796024,
+-0.525612975037,-0.524700567659,-0.523749573888,-0.522759993726,
+-0.52173182717,-0.520665074223,-0.519559734884,-0.518415809152,
+-0.517233297028,-0.516012198512,-0.514752513604,-0.513454242304,
+-0.512117384611,-0.510741940527,-0.50932791005,-0.507875293181,
+-0.506384089919,-0.504854300266,-0.50328592422,-0.501678961783,
+-0.500033412953,-0.49834927773,-0.496626556116,-0.494865248109,
+-0.493065353711,-0.49122687292,-0.489349805736,-0.487434152161,
+-0.485479912194,-0.483487085834,-0.481455673082,-0.479385673938,
+-0.477277088402,-0.475129916473,-0.472944158153,-0.47071981344,
+-0.468456882335,-0.466155364838,-0.463815260948,-0.461436570667,
+-0.459019293993,-0.456563430927,-0.454068981469,-0.451535945619,
+-0.448964323376,-0.446354114741,-0.443705319715,-0.441017938295,
+-0.438291970484,-0.435527416281,-0.432724275685,-0.429882548697,
+-0.427002235317,-0.424083335545,-0.421125849381,-0.418129776824,
+-0.415095117876,-0.412021872535,-0.408910040802,-0.405759622676,
+-0.402570618159,-0.399343027249,-0.396076849947,-0.392772086253,
+-0.389428736167,-0.386046799689,-0.382626276818,-0.379167167555,
+-0.3756694719,-0.372133189853,-0.368558321414,-0.364944866582,
+-0.361292825358,-0.357602197743,-0.353872983734,-0.350105183334,
+-0.346298796542,-0.342453823357,-0.33857026378,-0.334648117811,
+-0.33068738545,-0.326688066697,-0.322650161551,-0.318573670013,
+-0.314458592083,-0.310304927761,-0.306112677047,-0.30188183994,
+-0.297612416442,-0.293304406551,-0.288957810268,-0.284572627592,
+-0.280148858525,-0.275686503065,-0.271185561214,-0.26664603297,
+-0.262067918333,-0.257451217305,-0.252795929884,-0.248102056072,
+-0.243369595867,-0.23859854927,-0.23378891628,-0.228940696899,
+-0.224053891125,-0.219128498959,-0.214164520401,-0.209161955451,
+-0.204120804108,-0.199041066374,-0.193922742247,-0.188765831728,
+-0.183570334817,-0.178336251514,-0.173063581818,-0.16775232573,
+-0.16240248325,-0.157014054378,-0.151587039114,-0.146121437457,
+-0.140617249409,-0.135074474968,-0.129493114135,-0.12387316691,
+-0.118214633292,-0.112517513283,-0.106781806881,-0.101007514087,
+-0.0951946349007,-0.0893431693224,-0.0834531173518,-0.0775244789891,
+-0.0715572542342,-0.0655514430871,-0.0595070455478,-0.0534240616164,
+-0.0473024912927,-0.0411423345769,-0.0349435914689,-0.0287062619686,
+-0.0224303460762,-0.0161158437917,-0.0097627551149,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356257492873,-0.102871266646,
+-0.16181384905,-0.213394553333,-0.258457537191,-0.297759007595,
+-0.33197544019,-0.361711120936,-0.387505058251,-0.409837311012,
+-0.429134775057,-0.4457764682,-0.460098351314,-0.472397720663,
+-0.482937204435,-0.491948394305,-0.499635140838,-0.50617653964,
+-0.511729633355,-0.516431852898,-0.520403219691,-0.523748329159,
+-0.526558134287,-0.52891154668,-0.530876871312,-0.532513089908,
+-0.533871006815,-0.534994270113,-0.535920279752,-0.536680993546,
+-0.537303640991,-0.537811354057,-0.538223723327,-0.538557287152,
+-0.53882596084,-0.539041412253,-0.539213389632,-0.539350006928,
+-0.53945799144,-0.539542898076,-0.539609294169,-0.539660918356,
+-0.5397008167,-0.5397314589,-0.539754837109,-0.539772549659,
+-0.539785871678,-0.539795814413,-0.539803174817,-0.53980857682,
+-0.53981250548,-0.539815335111,-0.539817352306,-0.539818774664,
+-0.539819765943,-0.539820448214,-0.53982091156,-0.539821221735,
+-0.539821426182,-0.539821558705,-0.539821643063,-0.539821695713,
+-0.539821727874,-0.539821747062,-0.539821758218,-0.53982176452,
+-0.539821767969,-0.53982176979,-0.539821770714,-0.539821771162,
+-0.539821771368,-0.539821771458,-0.539821771494,-0.539821771507,
+-0.539821771512,-0.539821771513,-0.539821771513,-0.539821771514,
+-0.539821771514,-0.539821771514,-0.539821771514,-0.539821771514,
+-0.539821771514,-0.539821358236,-0.539796257799,-0.539732292138,
+-0.539629461252,-0.539487765143,-0.539307203809,-0.53908777725,
+-0.538829485468,-0.538532328462,-0.538196306231,-0.537821418776,
+-0.537407666097,-0.536955048193,-0.536463565066,-0.535933216714,
+-0.535364003138,-0.534755924337,-0.534108980313,-0.533423171064,
+-0.532698496591,-0.531934956894,-0.531132551973,-0.530291281827,
+-0.529411146457,-0.528492145863,-0.527534280045,-0.526537549003,
+-0.525501952736,-0.524427491245,-0.52331416453,-0.522161972591,
+-0.520970915427,-0.51974099304,-0.518472205428,-0.517164552591,
+-0.515818034531,-0.514432651246,-0.513008402738,-0.511545289005,
+-0.510043310047,-0.508502465866,-0.50692275646,-0.50530418183,
+-0.503646741976,-0.501950436898,-0.500215266596,-0.498441231069,
+-0.496628330318,-0.494776564343,-0.492885933143,-0.49095643672,
+-0.488988075072,-0.4869808482,-0.484934756104,-0.482849798783,
+-0.480725976239,-0.47856328847,-0.476361735477,-0.474121317259,
+-0.471842033818,-0.469523885152,-0.467166871262,-0.464770992148,
+-0.462336247809,-0.459862638247,-0.45735016346,-0.454798823449,
+-0.452208618214,-0.449579547754,-0.446911612071,-0.444204811163,
+-0.441459145031,-0.438674613674,-0.435851217094,-0.432988955289,
+-0.43008782826,-0.427147836007,-0.42416897853,-0.421151255828,
+-0.418094667902,-0.414999214752,-0.411864896378,-0.408691712779,
+-0.405479663957,-0.40222874991,-0.398938970639,-0.395610326143,
+-0.392242816424,-0.38883644148,-0.385391201312,-0.38190709592,
+-0.378384125303,-0.374822289463,-0.371221588398,-0.367582022109,
+-0.363903590596,-0.360186293858,-0.356430131897,-0.352635104711,
+-0.3488012123,-0.344928454666,-0.341016831808,-0.337066343725,
+-0.333076990418,-0.329048771887,-0.324981688131,-0.320875739152,
+-0.316730924948,-0.31254724552,-0.308324700867,-0.304063290991,
+-0.29976301589,-0.295423875565,-0.291045870016,-0.286628999243,
+-0.282173263245,-0.277678662024,-0.273145195578,-0.268572863907,
+-0.263961667013,-0.259311604894,-0.254622677551,-0.249894884984,
+-0.245128227193,-0.240322704178,-0.235478315938,-0.230595062474,
+-0.225672943786,-0.220711959873,-0.215712110737,-0.210673396376,
+-0.205595816791,-0.200479371982,-0.195324061948,-0.190129886691,
+-0.184896846209,-0.179624940503,-0.174314169573,-0.168964533418,
+-0.163576032039,-0.158148665436,-0.152682433609,-0.147177336558,
+-0.141633374282,-0.136050546783,-0.130428854059,-0.12476829611,
+-0.119068872938,-0.113330584541,-0.10755343092,-0.101737412075,
+-0.095882528006,-0.0899887787125,-0.0840561641948,-0.0780846844529,
+-0.0720743394867,-0.0660251292963,-0.0599370538817,-0.0538101132429,
+-0.0476443073799,-0.0414396362927,-0.0351960999813,-0.0289136984456,
+-0.0225924316857,-0.0162322997016,-0.00983330249332,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356342544503,-0.10294550832,
+-0.162005825196,-0.213742870243,-0.258989646438,-0.298493147273,
+-0.332922312826,-0.362875337515,-0.388886375034,-0.411431683323,
+-0.430935249874,-0.447773935242,-0.462282170339,-0.47475624088,
+-0.485458190278,-0.494619370287,-0.502443666825,-0.509110426606,
+-0.514777108542,-0.519581682238,-0.523644794428,-0.527071722718,
+-0.529954134691,-0.532371669114,-0.534393354788,-0.53607888147,
+-0.537479736179,-0.538640217222,-0.539598337337,-0.540386626416,
+-0.541032843501,-0.541560606904,-0.541989950628,-0.542337814536,
+-0.542618475117,-0.542843923084,-0.543024193497,-0.54316765358,
+-0.543281252955,-0.543370740533,-0.543440851936,-0.543495470914,
+-0.543537767917,-0.543570318601,-0.54359520483,-0.543614100395,
+-0.54362834349,-0.543638997706,-0.543646903146,-0.543652719042,
+-0.543656959126,-0.54366002081,-0.543662209142,-0.54366375634,
+-0.543664837634,-0.543665584009,-0.543666092406,-0.543666433795,
+-0.543666659542,-0.543666806361,-0.543666900146,-0.543666958893,
+-0.543666994915,-0.543667016493,-0.54366702909,-0.543667036238,
+-0.543667040168,-0.543667042253,-0.543667043317,-0.543667043835,
+-0.543667044076,-0.54366704418,-0.543667044223,-0.543667044239,
+-0.543667044245,-0.543667044246,-0.543667044247,-0.543667044247,
+-0.543667044247,-0.543667044247,-0.543667044247,-0.543667044247,
+-0.543667044247,-0.543666628025,-0.543641348792,-0.543576927489,
+-0.543473364116,-0.543330658673,-0.54314881116,-0.542927821576,
+-0.542667689923,-0.5423684162,-0.542030000407,-0.541652442543,
+-0.54123574261,-0.540779900607,-0.540284916534,-0.53975079039,
+-0.539177522177,-0.538565111894,-0.537913559541,-0.537222865117,
+-0.536493028624,-0.535724050061,-0.534915929427,-0.534068666724,
+-0.533182261951,-0.532256715107,-0.531292026194,-0.53028819521,
+-0.529245222157,-0.528163107034,-0.52704184984,-0.525881450577,
+-0.524681909243,-0.52344322584,-0.522165400366,-0.520848432823,
+-0.51949232321,-0.518097071526,-0.516662677773,-0.515189141949,
+-0.513676464056,-0.512124644092,-0.510533682059,-0.508903577955,
+-0.507234331782,-0.505525943538,-0.503778413224,-0.501991740841,
+-0.500165926387,-0.498300969864,-0.49639687127,-0.494453630607,
+-0.492471247873,-0.490449723069,-0.488389056196,-0.486289247252,
+-0.484150296238,-0.481972203155,-0.479754968001,-0.477498590777,
+-0.475203071484,-0.47286841012,-0.470494606686,-0.468081661183,
+-0.465629573609,-0.463138343965,-0.460607972252,-0.458038458468,
+-0.455429802614,-0.45278200469,-0.450095064697,-0.447368982633,
+-0.444603758499,-0.441799392295,-0.438955884021,-0.436073233678,
+-0.433151441264,-0.43019050678,-0.427190430226,-0.424151211602,
+-0.421072850908,-0.417955348145,-0.414798703311,-0.411602916407,
+-0.408367987433,-0.405093916389,-0.401780703275,-0.398428348091,
+-0.395036850837,-0.391606211513,-0.388136430119,-0.384627506655,
+-0.381079441122,-0.377492233518,-0.373865883844,-0.3702003921,
+-0.366495758286,-0.362751982402,-0.358969064448,-0.355147004424,
+-0.35128580233,-0.347385458166,-0.343445971931,-0.339467343627,
+-0.335449573253,-0.331392660809,-0.327296606295,-0.323161409711,
+-0.318987071057,-0.314773590333,-0.310520967539,-0.306229202675,
+-0.30189829574,-0.297528246736,-0.293119055662,-0.288670722518,
+-0.284183247304,-0.27965663002,-0.275090870665,-0.270485969241,
+-0.265841925747,-0.261158740183,-0.256436412549,-0.251674942844,
+-0.24687433107,-0.242034577226,-0.237155681312,-0.232237643327,
+-0.227280463273,-0.222284141149,-0.217248676955,-0.21217407069,
+-0.207060322356,-0.201907431952,-0.196715399477,-0.191484224933,
+-0.186213908319,-0.180904449634,-0.17555584888,-0.170168106055,
+-0.164741221161,-0.159275194197,-0.153770025162,-0.148225714058,
+-0.142642260883,-0.137019665639,-0.131357928325,-0.12565704894,
+-0.119917027486,-0.114137863961,-0.108319558367,-0.102462110702,
+-0.0965655209678,-0.0906297891633,-0.0846549152888,-0.0786408993442,
+-0.0725877413297,-0.0664954412452,-0.0603639990906,-0.0541934148661,
+-0.0479836885715,-0.0417348202069,-0.0354468097724,-0.0291196572678,
+-0.0227533626932,-0.0163479260486,-0.00990334733396,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356425843001,-0.103018267121,
+-0.162194087991,-0.214084666321,-0.259512119685,-0.299214433686,
+-0.333853165831,-0.364020528955,-0.390245897155,-0.413001774702,
+-0.432709266057,-0.44974308285,-0.464436121528,-0.477083643361,
+-0.487947086513,-0.497257538055,-0.505218892033,-0.51201071803,
+-0.517790863078,-0.522697808265,-0.52685279996,-0.530361774231,
+-0.533317091758,-0.535799099309,-0.537877532752,-0.539612775456,
+-0.541056984942,-0.542255099696,-0.543245737137,-0.544061992894,
+-0.54473215078,-0.545280312055,-0.545726951932,-0.546089410577,
+-0.546382325289,-0.546618009935,-0.546806787227,-0.546957278907,
+-0.547076658455,-0.547170870519,-0.547244820858,-0.547302540238,
+-0.54734732538,-0.547381859743,-0.547408316651,-0.547428447003,
+-0.547443653577,-0.547455053695,-0.547463531851,-0.547469783692,
+-0.54747435259,-0.5474776599,-0.547480029848,-0.547481709886,
+-0.547482887225,-0.547483702196,-0.547484258942,-0.547484633934,
+-0.547484882683,-0.547485044994,-0.547485149028,-0.547485214428,
+-0.547485254679,-0.547485278884,-0.547485293073,-0.547485301159,
+-0.547485305625,-0.547485308006,-0.547485309227,-0.547485309826,
+-0.547485310104,-0.547485310227,-0.547485310277,-0.547485310296,
+-0.547485310303,-0.547485310305,-0.547485310305,-0.547485310305,
+-0.547485310305,-0.547485310305,-0.547485310305,-0.547485310305,
+-0.547485310305,-0.547484891161,-0.547459434387,-0.547394560642,
+-0.547290269926,-0.547146562238,-0.546963437579,-0.546740895948,
+-0.546478937346,-0.546177561773,-0.545836769228,-0.545456559712,
+-0.545036933224,-0.544577889765,-0.544079429334,-0.543541551932,
+-0.542964257559,-0.542347546214,-0.541691417898,-0.54099587261,
+-0.540260910351,-0.539486531121,-0.538672734919,-0.537819521746,
+-0.536926891601,-0.535994844485,-0.535023380397,-0.534012499338,
+-0.532962201308,-0.531872486306,-0.530743354333,-0.529574805388,
+-0.528366839472,-0.527119456584,-0.525832656725,-0.524506439895,
+-0.523140806093,-0.52173575532,-0.520291287575,-0.518807402859,
+-0.517284101172,-0.515721382513,-0.514119246883,-0.512477694281,
+-0.510796724708,-0.509076338163,-0.507316534647,-0.50551731416,
+-0.503678676701,-0.501800622271,-0.499883150869,-0.497926262496,
+-0.495929957152,-0.493894234836,-0.491819095549,-0.48970453929,
+-0.48755056606,-0.485357175858,-0.483124368685,-0.480852144541,
+-0.478540503425,-0.476189445338,-0.473798970279,-0.471369078249,
+-0.468899769247,-0.466391043274,-0.46384290033,-0.461255340414,
+-0.458628363527,-0.455961969668,-0.453256158838,-0.450510931037,
+-0.447726286264,-0.44490222452,-0.442038745804,-0.439135850117,
+-0.436193537458,-0.433211807828,-0.430190661227,-0.427130097654,
+-0.42403011711,-0.420890719594,-0.417711905107,-0.414493673649,
+-0.411236025219,-0.407938959817,-0.404602477445,-0.4012265781,
+-0.397811261785,-0.394356528498,-0.390862378239,-0.38732881101,
+-0.383755826808,-0.380143425636,-0.376491607492,-0.372800372376,
+-0.369069720289,-0.365299651231,-0.361490165201,-0.3576412622,
+-0.353752942227,-0.349825205283,-0.345858051368,-0.341851480481,
+-0.337805492622,-0.333720087793,-0.329595265992,-0.325431027219,
+-0.321227371475,-0.31698429876,-0.312701809073,-0.308379902415,
+-0.304018578785,-0.299617838184,-0.295177680611,-0.290698106067,
+-0.286179114552,-0.281620706065,-0.277022880607,-0.272385638178,
+-0.267708978777,-0.262992902404,-0.25823740906,-0.253442498745,
+-0.248608171458,-0.2437344272,-0.238821265971,-0.23386868777,
+-0.228876692597,-0.223845280454,-0.218774451338,-0.213664205252,
+-0.208514542194,-0.203325462164,-0.198096965163,-0.192829051191,
+-0.187521720247,-0.182174972332,-0.176788807446,-0.171363225588,
+-0.165898226758,-0.160393810957,-0.154849978185,-0.149266728442,
+-0.143644061726,-0.13798197804,-0.132280477382,-0.126539559753,
+-0.120759225152,-0.11493947358,-0.109080305036,-0.103181719521,
+-0.0972437170347,-0.0912662975768,-0.0852494611476,-0.0791932077469,
+-0.0730975373748,-0.0669624500312,-0.0607879457163,-0.0545740244299,
+-0.0483206861721,-0.0420279309429,-0.0356957587423,-0.0293241695702,
+-0.0229131634267,-0.0164627403119,-0.00997290022555,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.035650744795,-0.103089592203,
+-0.162378757412,-0.21442014682,-0.260025252265,-0.299923250231,
+-0.334768464057,-0.365147232111,-0.391584222498,-0.414548232562,
+-0.434457509242,-0.451684624263,-0.466560936126,-0.479380668962,
+-0.490404636498,-0.499863637647,-0.507961548598,-0.514878134713,
+-0.520771604032,-0.525780922814,-0.530027912158,-0.533619143511,
+-0.536647649648,-0.53919446658,-0.541330020756,-0.543115374929,
+-0.544603345072,-0.54583949984,-0.546863053218,-0.547707660178,
+-0.548402124448,-0.548971026733,-0.549435281126,-0.549812626763,
+-0.550118061246,-0.550364221773,-0.550561719424,-0.550719431587,
+-0.550844757036,-0.550943837798,-0.551021751542,-0.551082677882,
+-0.551130041646,-0.55116663589,-0.551194727119,-0.551216144962,
+-0.551232358282,-0.551244539507,-0.551253618763,-0.551260329212,
+-0.551265244844,-0.551268811802,-0.551271374223,-0.551273195407,
+-0.551274475076,-0.551275363333,-0.551275971886,-0.551276382991,
+-0.551276656539,-0.551276835603,-0.551276950761,-0.551277023406,
+-0.55127706828,-0.551277095368,-0.551277111311,-0.551277120435,
+-0.551277125496,-0.551277128208,-0.551277129606,-0.551277130294,
+-0.551277130617,-0.551277130759,-0.551277130818,-0.551277130841,
+-0.551277130848,-0.551277130851,-0.551277130851,-0.551277130852,
+-0.551277130852,-0.551277130852,-0.551277130852,-0.551277130852,
+-0.551277130852,-0.551276708804,-0.55125107572,-0.551185752667,
+-0.551080739645,-0.550936036654,-0.550751643695,-0.550527560766,
+-0.550263787869,-0.549960325003,-0.549617172168,-0.549234329364,
+-0.548811796591,-0.54834957385,-0.547847661139,-0.54730605846,
+-0.546724765812,-0.546103783195,-0.545443110609,-0.544742748055,
+-0.544002695531,-0.543222953039,-0.542403520578,-0.541544398148,
+-0.540645585749,-0.539707083381,-0.538728891044,-0.537711008739,
+-0.536653436465,-0.535556174222,-0.53441922201,-0.533242579829,
+-0.532026247679,-0.530770225561,-0.529474513473,-0.528139111417,
+-0.526764019392,-0.525349237398,-0.523894765435,-0.522400603504,
+-0.520866751603,-0.519293209734,-0.517679977896,-0.516027056089,
+-0.514334444313,-0.512602142568,-0.510830150855,-0.509018469172,
+-0.507167097521,-0.505276035901,-0.503345284312,-0.501374842754,
+-0.499364711228,-0.497314889732,-0.495225378268,-0.493096176835,
+-0.490927285433,-0.488718704062,-0.486470432722,-0.484182471414,
+-0.481854820136,-0.47948747889,-0.477080447675,-0.474633726491,
+-0.472147315338,-0.469621214216,-0.467055423126,-0.464449942066,
+-0.461804771038,-0.459119910041,-0.456395359075,-0.453631118141,
+-0.450827187237,-0.447983566365,-0.445100255523,-0.442177254713,
+-0.439214563934,-0.436212183186,-0.43317011247,-0.430088351784,
+-0.42696690113,-0.423805760506,-0.420604929914,-0.417364409353,
+-0.414084198824,-0.410764298325,-0.407404707857,-0.404005427421,
+-0.400566457016,-0.397087796642,-0.393569446299,-0.390011405987,
+-0.386413675707,-0.382776255457,-0.379099145239,-0.375382345052,
+-0.371625854896,-0.367829674771,-0.363993804678,-0.360118244615,
+-0.356202994584,-0.352248054583,-0.348253424614,-0.344219104676,
+-0.34014509477,-0.336031394894,-0.33187800505,-0.327684925236,
+-0.323452155454,-0.319179695703,-0.314867545983,-0.310515706295,
+-0.306124176637,-0.301692957011,-0.297222047416,-0.292711447851,
+-0.288161158319,-0.283571178817,-0.278941509346,-0.274272149907,
+-0.269563100498,-0.264814361121,-0.260025931775,-0.25519781246,
+-0.250330003177,-0.245422503924,-0.240475314703,-0.235488435512,
+-0.230461866353,-0.225395607225,-0.220289658128,-0.215144019063,
+-0.209958690028,-0.204733671025,-0.199468962053,-0.194164563112,
+-0.188820474202,-0.183436695323,-0.178013226475,-0.172550067659,
+-0.167047218874,-0.161504680119,-0.155922451396,-0.150300532705,
+-0.144638924044,-0.138937625414,-0.133196636816,-0.127415958249,
+-0.121595589713,-0.115735531208,-0.109835782734,-0.103896344291,
+-0.0979172158799,-0.0918983974996,-0.0858398891504,-0.0797416908324,
+-0.0736038025455,-0.0674262242898,-0.0612089560652,-0.0549519978718,
+-0.0486553497095,-0.0423190115784,-0.0359429834785,-0.0295272654097,
+-0.023071857372,-0.0165767593655,-0.0100419713901,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356587416134,-0.103159530456,
+-0.162559948037,-0.214749507956,-0.260529326798,-0.300619964177,
+-0.33566865326,-0.366255962302,-0.392901925534,-0.416071679567,
+-0.436180639471,-0.453599246721,-0.46865731933,-0.481648032727,
+-0.492831558228,-0.502438384341,-0.510672344598,-0.517713374142,
+-0.523720015904,-0.528831695873,-0.533170785719,-0.5368444698,
+-0.539946432489,-0.542558380657,-0.544751415139,-0.54658726404,
+-0.548119389845,-0.549393981424,-0.550450841211,-0.551324177085,
+-0.552043307756,-0.552633289776,-0.553115473671,-0.553507996093,
+-0.55382621432,-0.554083088933,-0.55428951998,-0.554454641513,
+-0.554586078936,-0.554690173212,-0.554772175615,-0.554836416371,
+-0.554886450198,-0.554925181499,-0.554954971649,-0.554977730597,
+-0.554994994779,-0.555007993089,-0.555017702518,-0.55502489485,
+-0.555030175663,-0.555034016743,-0.555036782868,-0.555038753819,
+-0.555040142355,-0.555041108795,-0.555041772771,-0.555042222625,
+-0.555042522862,-0.555042720016,-0.555042847223,-0.555042927744,
+-0.555042977661,-0.555043007906,-0.555043025777,-0.555043036047,
+-0.555043041769,-0.555043044849,-0.555043046444,-0.555043047234,
+-0.555043047607,-0.555043047772,-0.555043047841,-0.555043047867,
+-0.555043047876,-0.555043047879,-0.55504304788,-0.55504304788,
+-0.55504304788,-0.55504304788,-0.55504304788,-0.55504304788,
+-0.55504304788,-0.55504262295,-0.555016814759,-0.554951045467,
+-0.554845315074,-0.55469962358,-0.554513970984,-0.554288357287,
+-0.554022782489,-0.553717246589,-0.553371749588,-0.552986291486,
+-0.552560872282,-0.552095491977,-0.551590150571,-0.551044848063,
+-0.550459584454,-0.549834359744,-0.549169173933,-0.54846402702,
+-0.547718919006,-0.54693384989,-0.546108819673,-0.545243828355,
+-0.544338875936,-0.543393962415,-0.542409087793,-0.54138425207,
+-0.540319455245,-0.539214697319,-0.538069978292,-0.536885298163,
+-0.535660656933,-0.534396054602,-0.533091491169,-0.531746966635,
+-0.530362481,-0.528938034263,-0.527473626425,-0.525969257486,
+-0.524424927446,-0.522840636304,-0.521216384061,-0.519552170716,
+-0.51784799627,-0.516103860723,-0.514319764075,-0.512495706325,
+-0.510631687474,-0.508727707522,-0.506783766468,-0.504799864313,
+-0.502776001057,-0.500712176699,-0.49860839124,-0.49646464468,
+-0.494280937018,-0.492057268255,-0.489793638391,-0.487490047426,
+-0.485146495359,-0.482762982191,-0.480339507921,-0.47787607255,
+-0.475372676078,-0.472829318505,-0.47024599983,-0.467622720054,
+-0.464959479176,-0.462256277198,-0.459513114118,-0.456729989936,
+-0.453906904654,-0.45104385827,-0.448140850784,-0.445197882198,
+-0.44221495251,-0.439192061721,-0.43612920983,-0.433026396838,
+-0.429883622745,-0.42670088755,-0.423478191254,-0.420215533857,
+-0.416912915359,-0.413570335759,-0.410187795058,-0.406765293256,
+-0.403302830352,-0.399800406347,-0.39625802124,-0.392675675033,
+-0.389053367724,-0.385391099313,-0.381688869802,-0.377946679189,
+-0.374164527474,-0.370342414659,-0.366480340742,-0.362578305724,
+-0.358636309604,-0.354654352383,-0.350632434061,-0.346570554637,
+-0.342468714113,-0.338326912486,-0.334145149759,-0.32992342593,
+-0.325661741,-0.321360094969,-0.317018487836,-0.312636919602,
+-0.308215390267,-0.30375389983,-0.299252448292,-0.294711035653,
+-0.290129661912,-0.28550832707,-0.280847031127,-0.276145774082,
+-0.271404555936,-0.266623376689,-0.26180223634,-0.256941134891,
+-0.252040072339,-0.247099048687,-0.242118063933,-0.237097118078,
+-0.232036211122,-0.226935343064,-0.221794513905,-0.216613723644,
+-0.211392972283,-0.20613225982,-0.200831586255,-0.19549095159,
+-0.190110355823,-0.184689798954,-0.179229280985,-0.173728801914,
+-0.168188361742,-0.162607960468,-0.156987598093,-0.151327274617,
+-0.145626990039,-0.139886744361,-0.13410653758,-0.128286369699,
+-0.122426240716,-0.116526150632,-0.110586099447,-0.10460608716,
+-0.0985861137718,-0.0925261792824,-0.0864262836917,-0.0802864269997,
+-0.0741066092064,-0.0678868303117,-0.0616270903158,-0.0553273892185,
+-0.0489877270199,-0.04260810372,-0.0361885193187,-0.0297289738162,
+-0.0232294672123,-0.0166899995071,-0.0101105707006,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356665801699,-0.103228126641,
+-0.162737769346,-0.215072937414,-0.261024613893,-0.30130492754,
+-0.336554161108,-0.36734721443,-0.394199558508,-0.417572714858,
+-0.437879292442,-0.455487612705,-0.470725951508,-0.483886425075,
+-0.495228545488,-0.504982469769,-0.513351965114,-0.520517111509,
+-0.526636761608,-0.531850776535,-0.536282055089,-0.540038372675,
+-0.543214045253,-0.545891432558,-0.548142293892,-0.550029008878,
+-0.551605674699,-0.552919090539,-0.554009639173,-0.554912074914,
+-0.555656226457,-0.556267622508,-0.556768047479,-0.557176033965,
+-0.557507298177,-0.557775124013,-0.557990700974,-0.558163420694,
+-0.558301136444,-0.558410389589,-0.558496606631,-0.558564270107,
+-0.558617066354,-0.558658012828,-0.558689567424,-0.558713721983,
+-0.558732081974,-0.55874593411,-0.558756303472,-0.558764001565,
+-0.558769666533,-0.558773796656,-0.558776778098,-0.558778907751,
+-0.558780411947,-0.558781461672,-0.558782184854,-0.55878267622,
+-0.558783005135,-0.558783221787,-0.558783362024,-0.55878345109,
+-0.558783506498,-0.558783540194,-0.55878356018,-0.558783571713,
+-0.558783578166,-0.558783581655,-0.55878358347,-0.558783584374,
+-0.558783584803,-0.558783584994,-0.558783585074,-0.558783585105,
+-0.558783585116,-0.558783585119,-0.55878358512,-0.55878358512,
+-0.55878358512,-0.55878358512,-0.55878358512,-0.55878358512,
+-0.55878358512,-0.558783157326,-0.55875717521,-0.558690962686,
+-0.558584519757,-0.558437846421,-0.558250942678,-0.558023808529,
+-0.557756443973,-0.55744884901,-0.557101023642,-0.556712967866,
+-0.556284681684,-0.555816165096,-0.555307418101,-0.554758440699,
+-0.554169232891,-0.553539794677,-0.552870126056,-0.552160227028,
+-0.551410097594,-0.550619737753,-0.549789147506,-0.548918326852,
+-0.548007275792,-0.547055994325,-0.546064482451,-0.545032740171,
+-0.543960767485,-0.542848564392,-0.541696130892,-0.540503466986,
+-0.539270572674,-0.537997447955,-0.536684092829,-0.535330507297,
+-0.533936691358,-0.532502645013,-0.531028368261,-0.529513861103,
+-0.527959123538,-0.526364155567,-0.524728957189,-0.523053528404,
+-0.521337869213,-0.519581979616,-0.517785859612,-0.515949509201,
+-0.514072928384,-0.51215611716,-0.51019907553,-0.508201803493,
+-0.50616430105,-0.5040865682,-0.501968604944,-0.499810411281,
+-0.497611987212,-0.495373332736,-0.493094447854,-0.490775332565,
+-0.488415986869,-0.486016410767,-0.483576604258,-0.481096567343,
+-0.478576300022,-0.476015802294,-0.473415074159,-0.470774115618,
+-0.46809292667,-0.465371507315,-0.462609857555,-0.459807977387,
+-0.456965866813,-0.454083525833,-0.451160954446,-0.448198152652,
+-0.445195120452,-0.442151857846,-0.439068364833,-0.435944641413,
+-0.432780687587,-0.429576503354,-0.426332088715,-0.423047443669,
+-0.419722568217,-0.416357462358,-0.412952126093,-0.409506559421,
+-0.406020762342,-0.402494734858,-0.398928476966,-0.395321988668,
+-0.391675269963,-0.387988320852,-0.384261141335,-0.380493731411,
+-0.37668609108,-0.372838220343,-0.368950119199,-0.365021787649,
+-0.361053225692,-0.357044433328,-0.352995410559,-0.348906157382,
+-0.344776673799,-0.34060695981,-0.336397015414,-0.332146840611,
+-0.327856435402,-0.323525799786,-0.319154933764,-0.314743837336,
+-0.3102925105,-0.305800953259,-0.30126916561,-0.296697147555,
+-0.292084899094,-0.287432420226,-0.282739710952,-0.278006771271,
+-0.273233601183,-0.268420200689,-0.263566569789,-0.258672708482,
+-0.253738616768,-0.248764294648,-0.243749742121,-0.238694959188,
+-0.233599945848,-0.228464702102,-0.223289227949,-0.21807352339,
+-0.212817588424,-0.207521423052,-0.202185027273,-0.196808401087,
+-0.191391544495,-0.185934457497,-0.180437140092,-0.17489959228,
+-0.169321814062,-0.163703805437,-0.158045566406,-0.152347096968,
+-0.146608397124,-0.140829466873,-0.135010306216,-0.129150915152,
+-0.123251293682,-0.117311441805,-0.111331359521,-0.105311046831,
+-0.0992505037346,-0.0931497302315,-0.0870087263219,-0.0808274920058,
+-0.0746060272831,-0.0683443321539,-0.0620424066182,-0.0557002506759,
+-0.0493178643271,-0.0428952475718,-0.0364324004099,-0.0299293228415,
+-0.0233860148666,-0.0168024764851,-0.0101787076971,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356742656314,-0.103295423513,
+-0.162912326018,-0.21539061482,-0.261511372799,-0.301978477894,
+-0.337425398134,-0.368421464026,-0.395477652558,-0.419051915218,
+-0.439554080683,-0.457350361106,-0.472767489348,-0.486096512922,
+-0.497596268939,-0.507496562957,-0.516001073239,-0.52329000068,
+-0.529522483407,-0.534838793895,-0.539362335333,-0.543201452894,
+-0.546451074592,-0.549194195403,-0.551503217465,-0.553441158278,
+-0.555062738033,-0.556415356397,-0.55753996839,-0.558471868255,
+-0.559241389616,-0.55987452956,-0.560393503735,-0.560817239002,
+-0.561161809646,-0.561440822707,-0.561665757516,-0.561846264098,
+-0.561990424737,-0.562104982589,-0.562195540922,-0.562266736223,
+-0.562322388121,-0.562365628789,-0.562399014257,-0.562424619798,
+-0.562444121362,-0.562458864815,-0.562469924547,-0.562478152881,
+-0.562484221501,-0.56248865604,-0.56249186479,-0.562494162396,
+-0.562495789307,-0.562496927628,-0.562497713963,-0.562498249733,
+-0.562498609415,-0.562498847049,-0.562499001352,-0.562499099674,
+-0.56249916105,-0.56249919851,-0.562499220813,-0.562499233733,
+-0.562499240993,-0.562499244936,-0.562499246997,-0.562499248029,
+-0.56249924852,-0.562499248741,-0.562499248834,-0.56249924887,
+-0.562499248883,-0.562499248887,-0.562499248888,-0.562499248888,
+-0.562499248888,-0.562499248888,-0.562499248888,-0.562499248888,
+-0.562499248888,-0.56249881825,-0.562472663363,-0.562406010556,
+-0.562298859828,-0.562151211179,-0.561963064609,-0.561734420118,
+-0.561465277706,-0.561155637373,-0.56080549912,-0.560414862945,
+-0.559983728849,-0.559512096833,-0.558999966895,-0.558447339037,
+-0.557854213257,-0.557220589557,-0.556546467935,-0.555831848393,
+-0.55507673093,-0.554281115546,-0.553445002241,-0.552568391014,
+-0.551651281867,-0.550693674799,-0.54969556981,-0.548656966901,
+-0.54757786607,-0.546458267318,-0.545298170645,-0.544097576052,
+-0.542856483537,-0.541574893101,-0.540252804745,-0.538890218467,
+-0.537487134269,-0.53604355215,-0.534559472109,-0.533034894148,
+-0.531469818266,-0.529864244463,-0.528218172739,-0.526531603093,
+-0.524804535527,-0.523036970041,-0.521228906633,-0.519380345304,
+-0.517491286054,-0.515561728883,-0.513591673792,-0.511581120779,
+-0.509530069845,-0.507438520991,-0.505306474215,-0.503133929519,
+-0.500920886902,-0.498667346363,-0.496373307904,-0.494038771524,
+-0.491663737223,-0.489248205,-0.486792174857,-0.484295646793,
+-0.481758620808,-0.479181096902,-0.476563075076,-0.473904555328,
+-0.471205537659,-0.468466022069,-0.465686008559,-0.462865497127,
+-0.460004487775,-0.457102980501,-0.454160975307,-0.451178472191,
+-0.448155471155,-0.445091972198,-0.441987975319,-0.43884348052,
+-0.4356584878,-0.432432997159,-0.429167008597,-0.425860522114,
+-0.42251353771,-0.419126055385,-0.415698075139,-0.412229596973,
+-0.408720620885,-0.405171146876,-0.401581174947,-0.397950705096,
+-0.394279737325,-0.390568271632,-0.386816308019,-0.383023846484,
+-0.379190887029,-0.375317429653,-0.371403474356,-0.367449021138,
+-0.363454069998,-0.359418620938,-0.355342673957,-0.351226229056,
+-0.347069286233,-0.342871845489,-0.338633906824,-0.334355470238,
+-0.330036535732,-0.325677103304,-0.321277172955,-0.316836744686,
+-0.312355818495,-0.307834394384,-0.303272472352,-0.298670052398,
+-0.294027134524,-0.289343718729,-0.284619805013,-0.279855393376,
+-0.275050483818,-0.270205076339,-0.265319170939,-0.260392767618,
+-0.255425866376,-0.250418467213,-0.245370570129,-0.240282175125,
+-0.235153282199,-0.229983891353,-0.224774002585,-0.219523615897,
+-0.214232731287,-0.208901348757,-0.203529468305,-0.198117089933,
+-0.19266421364,-0.187170839426,-0.181636967291,-0.176062597235,
+-0.170447729258,-0.16479236336,-0.159096499541,-0.153360137801,
+-0.14758327814,-0.141765920558,-0.135908065056,-0.130009711632,
+-0.124070860287,-0.118091511022,-0.112071663835,-0.106011318728,
+-0.0999104756996,-0.0937691347503,-0.08758729588,-0.0813649590888,
+-0.0751021243766,-0.0687987917435,-0.0624549611894,-0.0560706327144,
+-0.0496458063184,-0.0431804820015,-0.0366746597636,-0.0301283396048,
+-0.0235415215251,-0.0169142055243,-0.0102463916027,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356818029314,-0.103361461932,
+-0.163083718197,-0.21570271219,-0.261989852022,-0.302640939139,
+-0.338282758615,-0.369479168229,-0.396736718758,-0.42050983615,
+-0.441205594652,-0.459188108328,-0.474782566947,-0.488278940741,
+-0.499935377142,-0.509981311319,-0.518620311027,-0.526032675107,
+-0.532377803791,-0.537796357903,-0.542412222959,-0.5463342932,
+-0.549658089623,-0.552467225194,-0.554834729532,-0.556824244579,
+-0.558491101971,-0.559883292095,-0.561042334137,-0.562004055751,
+-0.562799290379,-0.563454499638,-0.563992327675,-0.564432093834,
+-0.564790229509,-0.565080664599,-0.565315168535,-0.565503650449,
+-0.56565442269,-0.565774431503,-0.565869458397,-0.565944295383,
+-0.566002896997,-0.566048511751,-0.566083795388,-0.566110908128,
+-0.566131597829,-0.566147270828,-0.566159052037,-0.566167835686,
+-0.566174327977,-0.566179082754,-0.566182531185,-0.566185006313,
+-0.566186763253,-0.566187995694,-0.566188849298,-0.566189432499,
+-0.566189825138,-0.566190085316,-0.566190254778,-0.566190363108,
+-0.566190430959,-0.566190472517,-0.566190497352,-0.566190511795,
+-0.566190519944,-0.56619052439,-0.566190526724,-0.566190527898,
+-0.56619052846,-0.566190528715,-0.566190528822,-0.566190528864,
+-0.566190528879,-0.566190528884,-0.566190528885,-0.566190528886,
+-0.566190528886,-0.566190528886,-0.566190528886,-0.566190528886,
+-0.566190528886,-0.566190095421,-0.566163768899,-0.566096678697,
+-0.565988824816,-0.565840207254,-0.565650826013,-0.565420681092,
+-0.565149772491,-0.56483810021,-0.56448566425,-0.564092464609,
+-0.563658501289,-0.563183774289,-0.562668283609,-0.56211202925,
+-0.56151501121,-0.560877229491,-0.560198684092,-0.559479375013,
+-0.558719302254,-0.557918465816,-0.557076865697,-0.556194501899,
+-0.555271374421,-0.554307483263,-0.553302828426,-0.552257409908,
+-0.551171227711,-0.550044281834,-0.548876572277,-0.54766809904,
+-0.546418862123,-0.545128861527,-0.543798097251,-0.542426569295,
+-0.541014277659,-0.539561222343,-0.538067403348,-0.536532820673,
+-0.534957474317,-0.533341364282,-0.531684490568,-0.529986853173,
+-0.528248452099,-0.526469287345,-0.52464935891,-0.522788666797,
+-0.520887211003,-0.518944991529,-0.516962008376,-0.514938261543,
+-0.51287375103,-0.510768476837,-0.508622438965,-0.506435637412,
+-0.50420807218,-0.501939743268,-0.499630650676,-0.497280794404,
+-0.494890174453,-0.492458790822,-0.48998664351,-0.487473732519,
+-0.484920057849,-0.482325619498,-0.479690417468,-0.477014451757,
+-0.474297722367,-0.471540229297,-0.468741972548,-0.465902952118,
+-0.463023168009,-0.46010262022,-0.457141308751,-0.454139233602,
+-0.451096394773,-0.448012792265,-0.444888426077,-0.441723296209,
+-0.438517402661,-0.435270745433,-0.431983324525,-0.428655139938,
+-0.425286191671,-0.421876479724,-0.418426004097,-0.414934764791,
+-0.411402761804,-0.407829995138,-0.404216464792,-0.400562170766,
+-0.39686711306,-0.393131291675,-0.389354706609,-0.385537357864,
+-0.381679245439,-0.377780369334,-0.37384072955,-0.369860326085,
+-0.365839158941,-0.361777228117,-0.357674533613,-0.353531075429,
+-0.349346853565,-0.345121868022,-0.340856118799,-0.336549605896,
+-0.332202329313,-0.32781428905,-0.323385485108,-0.318915917486,
+-0.314405586183,-0.309854491202,-0.30526263254,-0.300630010198,
+-0.295956624177,-0.291242474476,-0.286487561095,-0.281691884034,
+-0.276855443293,-0.271978238873,-0.267060270772,-0.262101538992,
+-0.257102043532,-0.252061784392,-0.246980761573,-0.241858975073,
+-0.236696424894,-0.231493111035,-0.226249033496,-0.220964192278,
+-0.215638587379,-0.210272218801,-0.204865086543,-0.199417190605,
+-0.193928530987,-0.188399107689,-0.182828920712,-0.177217970055,
+-0.171566255718,-0.165873777701,-0.160140536004,-0.154366530628,
+-0.148551761571,-0.142696228835,-0.136799932419,-0.130862872323,
+-0.124885048548,-0.118866461092,-0.112807109957,-0.106706995142,
+-0.100566116647,-0.0943844744723,-0.0881620686178,-0.0818988990835,
+-0.0755949658693,-0.0692502689753,-0.0628648084015,-0.0564385841479,
+-0.0499715962144,-0.0434638446012,-0.0369153293081,-0.0303260503352,
+-0.0236960076825,-0.0170252013499,-0.0103136313376,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356891967832,-0.103426280977,
+-0.163252041742,-0.216009394338,-0.262460289893,-0.303292622211,
+-0.339126621407,-0.37052076671,-0.397977249105,-0.421947012905,
+-0.442834403778,-0.461001449322,-0.476771796829,-0.490434331557,
+-0.502246497523,-0.512437341582,-0.52121030039,-0.52874574869,
+-0.535203326304,-0.54072406016,-0.545432296697,-0.549437459074,
+-0.552835642665,-0.555711061535,-0.55813735771,-0.560178784336,
+-0.561891273066,-0.563323395317,-0.564517226389,-0.565509120812,
+-0.566330406688,-0.567008006249,-0.567564989313,-0.568021065829,
+-0.568393023234,-0.568695113899,-0.568939397526,-0.569136042973,
+-0.569293593615,-0.569419200008,-0.5695188233,-0.569597412535,
+-0.569659058727,-0.569707128294,-0.569744378244,-0.569773055225,
+-0.569794980406,-0.569811621908,-0.56982415636,-0.569833520991,
+-0.569840457489,-0.569845548773,-0.569849249638,-0.569851912178,
+-0.569853806726,-0.569855139025,-0.569856064186,-0.569856697978,
+-0.56985712587,-0.569857410232,-0.569857596007,-0.569857715141,
+-0.569857790005,-0.569857836017,-0.569857863614,-0.569857879724,
+-0.569857888851,-0.569857893851,-0.569857896489,-0.569857897822,
+-0.569857898463,-0.569857898755,-0.56985789888,-0.569857898929,
+-0.569857898946,-0.569857898952,-0.569857898953,-0.569857898954,
+-0.569857898954,-0.569857898954,-0.569857898954,-0.569857898954,
+-0.569857898954,-0.569857462681,-0.569830965635,-0.569763440872,
+-0.569654888391,-0.569505308194,-0.569314700278,-0.569083064646,
+-0.568810401297,-0.56849671023,-0.568141991446,-0.567746244944,
+-0.567309470726,-0.56683166879,-0.566312839136,-0.565752981766,
+-0.565152096678,-0.564510183873,-0.563827243351,-0.563103275112,
+-0.562338279155,-0.561532255481,-0.56068520409,-0.559797124981,
+-0.558868018155,-0.557897883612,-0.556886721352,-0.555834531374,
+-0.55474131368,-0.553607068267,-0.552431795138,-0.551215494291,
+-0.549958165728,-0.548659809446,-0.547320425448,-0.545940013732,
+-0.544518574299,-0.543056107149,-0.541552612282,-0.540008089697,
+-0.538422539395,-0.536795961376,-0.535128355639,-0.533419722186,
+-0.531670061015,-0.529879372126,-0.528047655521,-0.526174911198,
+-0.524261139158,-0.5223063394,-0.520310511926,-0.518273656734,
+-0.516195773825,-0.514076863198,-0.511916924855,-0.509715958794,
+-0.507473965016,-0.50519094352,-0.502866894308,-0.500501817378,
+-0.49809571273,-0.495648580366,-0.493160420284,-0.490631232485,
+-0.488061016969,-0.485449773735,-0.482797502785,-0.480104204117,
+-0.477369877731,-0.474594523629,-0.471778141809,-0.468920732272,
+-0.466022295017,-0.463082830046,-0.460102337357,-0.457080816951,
+-0.454018268827,-0.450914692987,-0.447770089429,-0.444584458154,
+-0.441357799161,-0.438090112451,-0.434781398024,-0.43143165588,
+-0.428040886019,-0.42460908844,-0.421136263144,-0.417622410131,
+-0.4140675294,-0.410471620952,-0.406834684787,-0.403156720905,
+-0.399437729305,-0.395677709988,-0.391876662954,-0.388034588203,
+-0.384151485734,-0.380227355548,-0.376262197645,-0.372256012025,
+-0.368208798687,-0.364120557632,-0.35999128886,-0.35582099237,
+-0.351609668164,-0.34735731624,-0.343063936598,-0.33872952924,
+-0.334354094164,-0.329937631371,-0.325480140861,-0.320981622633,
+-0.316442076688,-0.311861503026,-0.307239901647,-0.30257727255,
+-0.297873615736,-0.293128931205,-0.288343218957,-0.283516478991,
+-0.278648711308,-0.273739915908,-0.26879009279,-0.263799241956,
+-0.258767363404,-0.253694457135,-0.248580523148,-0.243425561444,
+-0.238229572023,-0.232992554885,-0.227714510029,-0.222395437457,
+-0.217035337167,-0.211634209159,-0.206192053435,-0.200708869993,
+-0.195184658834,-0.189619419957,-0.184013153364,-0.178365859053,
+-0.172677537025,-0.166948187279,-0.161177809816,-0.155366404636,
+-0.149513971739,-0.143620511125,-0.137686022793,-0.131710506744,
+-0.125693962978,-0.119636391494,-0.113537792293,-0.107398165375,
+-0.10121751074,-0.0949958283875,-0.0887331183177,-0.0824293805306,
+-0.0760846150262,-0.0696988218046,-0.0632720008657,-0.0568041522096,
+-0.0502952758362,-0.0437453717455,-0.0371544399376,-0.0305224804124,
+-0.0238494931699,-0.0171354782102,-0.0103804355332,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0356964516924,-0.103489918036,
+-0.163417388464,-0.216310819264,-0.262922915104,-0.303933825747,
+-0.339957350723,-0.371546682533,-0.399199717444,-0.423363961438,
+-0.444441057437,-0.46279095857,-0.478735770914,-0.492563287894,
+-0.504530237292,-0.514865260676,-0.523771643946,-0.531429816596,
+-0.537999636336,-0.543622474682,-0.548423118233,-0.552511499456,
+-0.555984269942,-0.558926228326,-0.561411614239,-0.563505278997,
+-0.565263742975,-0.56673614901,-0.567965120495,-0.56898753229,
+-0.569835201965,-0.570535508382,-0.571111944126,-0.571584607783,
+-0.571970641671,-0.572284620145,-0.572538893255,-0.572743890105,
+-0.572908385976,-0.573039736875,-0.573144084917,-0.573226537628,
+-0.573291324012,-0.573341929926,-0.573381215147,-0.573411514212,
+-0.573434722985,-0.573452372659,-0.573465692774,-0.573475664636,
+-0.573483066395,-0.573488510901,-0.573492477337,-0.573495337497,
+-0.573497377499,-0.573498815609,-0.57349981679,-0.57350050447,
+-0.573500970016,-0.573501280285,-0.573501483587,-0.573501614364,
+-0.573501696812,-0.573501747658,-0.573501778262,-0.573501796195,
+-0.573501806395,-0.573501812006,-0.573501814979,-0.573501816489,
+-0.573501817219,-0.573501817553,-0.573501817696,-0.573501817753,
+-0.573501817774,-0.57350181778,-0.573501817782,-0.573501817783,
+-0.573501817783,-0.573501817783,-0.573501817783,-0.573501817783,
+-0.573501817783,-0.57350137872,-0.573474712241,-0.573406755695,
+-0.573297509083,-0.573146972404,-0.572955145659,-0.572722028848,
+-0.572447621971,-0.572131925027,-0.571774938017,-0.57137666094,
+-0.570937093798,-0.570456236589,-0.569934089314,-0.569370651972,
+-0.568765924564,-0.56811990709,-0.56743259955,-0.566704001943,
+-0.56593411427,-0.565122936531,-0.564270468725,-0.563376710853,
+-0.562441662915,-0.56146532491,-0.560447696839,-0.559388778702,
+-0.558288570499,-0.557147072229,-0.555964283893,-0.554740205491,
+-0.553474837022,-0.552168178487,-0.550820229886,-0.549430991218,
+-0.548000462485,-0.546528643684,-0.545015534818,-0.543461135885,
+-0.541865446886,-0.540228467821,-0.538550198689,-0.536830639491,
+-0.535069790227,-0.533267650897,-0.5314242215,-0.529539502037,
+-0.527613492507,-0.525646192911,-0.523637603249,-0.521587723521,
+-0.519496553726,-0.517364093866,-0.515190343938,-0.512975303945,
+-0.510718973885,-0.508421353759,-0.506082443566,-0.503702243308,
+-0.501280752983,-0.498817972591,-0.496313902134,-0.49376854161,
+-0.49118189102,-0.488553950363,-0.48588471964,-0.483174198851,
+-0.480422387996,-0.477629287074,-0.474794896086,-0.471919215032,
+-0.469002243911,-0.466043982724,-0.463044431471,-0.460003590151,
+-0.456921458766,-0.453798037313,-0.450633325795,-0.44742732421,
+-0.444180032559,-0.440891450842,-0.437561579058,-0.434190417208,
+-0.430777965292,-0.42732422331,-0.423829191261,-0.420292869146,
+-0.416715256964,-0.413096354717,-0.409436162403,-0.405734680022,
+-0.401991907576,-0.398207845063,-0.394382492484,-0.390515849838,
+-0.386607917126,-0.382658694348,-0.378668181504,-0.374636378593,
+-0.370563285616,-0.366448902573,-0.362293229463,-0.358096266287,
+-0.353858013045,-0.349578469736,-0.345257636362,-0.340895512921,
+-0.336492099413,-0.332047395839,-0.327561402199,-0.323034118493,
+-0.318465544721,-0.313855680882,-0.309204526976,-0.304512083005,
+-0.299778348967,-0.295003324863,-0.290187010693,-0.285329406456,
+-0.280430512153,-0.275490327784,-0.270508853348,-0.265486088846,
+-0.260422034278,-0.255316689643,-0.250170054943,-0.244982130176,
+-0.239752915342,-0.234482410442,-0.229170615476,-0.223817530444,
+-0.218423155346,-0.212987490181,-0.207510534949,-0.201992289652,
+-0.196432754288,-0.190831928858,-0.185189813362,-0.179506407799,
+-0.17378171217,-0.168015726475,-0.162208450713,-0.156359884885,
+-0.150470028991,-0.144538883031,-0.138566447004,-0.132552720911,
+-0.126497704751,-0.120401398526,-0.114263802234,-0.108084915875,
+-0.101864739451,-0.0956032729598,-0.0893005164026,-0.0829564697792,
+-0.0765711330894,-0.0701445063333,-0.0636765895109,-0.0571673826222,
+-0.0506168856672,-0.0440250986459,-0.0373920215584,-0.0307176544045,
+-0.0240019971843,-0.0172450498978,-0.010446812545,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357035719688,-0.103552408907,
+-0.16357984634,-0.216607138515,-0.263377947209,-0.304564836717,
+-0.340775296861,-0.372557322967,-0.400404580331,-0.424761179318,
+-0.446026085876,-0.464557191001,-0.480675061429,-0.494666392663,
+-0.506787184304,-0.517265656566,-0.526304925827,-0.534085456033,
+-0.540767301865,-0.546492158619,-0.551385232904,-0.555556947417,
+-0.559104492243,-0.562113234408,-0.564657996623,-0.566804215536,
+-0.568608989093,-0.570122022018,-0.571386477812,-0.572439745118,
+-0.573314125745,-0.57403745115,-0.574633633702,-0.575123158573,
+-0.575523521705,-0.575849618861,-0.576114090412,-0.57632762615,
+-0.57649923405,-0.576636476636,-0.576745678245,-0.576832106279,
+-0.576900129185,-0.576953353751,-0.576994743993,-0.577026723766,
+-0.577051264988,-0.577069963205,-0.577084102045,-0.577094707967,
+-0.57710259655,-0.577108411441,-0.577112656966,-0.577115725278,
+-0.577117918844,-0.57711946894,-0.577120550777,-0.577121295782,
+-0.577121801494,-0.577122139474,-0.57712236158,-0.577122504888,
+-0.577122595523,-0.577122651603,-0.577122685476,-0.577122705398,
+-0.577122716773,-0.577122723057,-0.577122726401,-0.577122728107,
+-0.577122728936,-0.577122729317,-0.577122729482,-0.577122729547,
+-0.577122729571,-0.577122729579,-0.577122729581,-0.577122729582,
+-0.577122729582,-0.577122729582,-0.577122729582,-0.577122729582,
+-0.577122729582,-0.577122287748,-0.577095452904,-0.577027067302,
+-0.57691713094,-0.57676564382,-0.576572605941,-0.576338017303,
+-0.576061877906,-0.57574418775,-0.575384946835,-0.574984155161,
+-0.574541812729,-0.574057919537,-0.573532475587,-0.572965480877,
+-0.572356935409,-0.571706839182,-0.571015192196,-0.570281994451,
+-0.569507245947,-0.568690946684,-0.567833096662,-0.566933695882,
+-0.565992744342,-0.565010242043,-0.563986188986,-0.56292058517,
+-0.561813430594,-0.56066472526,-0.559474469167,-0.558242662315,
+-0.556969304704,-0.555654396334,-0.554297937206,-0.552899927318,
+-0.551460366671,-0.549979255266,-0.548456593102,-0.546892380178,
+-0.545286616496,-0.543639302055,-0.541950436855,-0.540220020896,
+-0.538448054178,-0.536634536701,-0.534779468466,-0.532882849471,
+-0.530944679717,-0.528964959205,-0.526943687934,-0.524880865903,
+-0.522776493114,-0.520630569566,-0.518443095259,-0.516214070193,
+-0.513943494368,-0.511631367784,-0.509277690442,-0.50688246234,
+-0.50444568348,-0.50196735386,-0.499447473482,-0.496886042345,
+-0.494283060448,-0.491638527793,-0.488952444379,-0.486224810207,
+-0.483455625275,-0.480644889584,-0.477792603134,-0.474898765926,
+-0.471963377958,-0.468986439232,-0.465967949747,-0.462907909502,
+-0.459806318499,-0.456663176737,-0.453478484216,-0.450252240936,
+-0.446984446898,-0.4436751021,-0.440324206543,-0.436931760228,
+-0.433497763153,-0.43002221532,-0.426505116728,-0.422946467377,
+-0.419346267266,-0.415704516397,-0.412021214769,-0.408296362383,
+-0.404529959237,-0.400722005332,-0.396872500669,-0.392981445246,
+-0.389048839065,-0.385074682124,-0.381058974425,-0.377001715967,
+-0.37290290675,-0.368762546774,-0.364580636039,-0.360357174545,
+-0.356092162293,-0.351785599281,-0.34743748551,-0.343047820981,
+-0.338616605693,-0.334143839645,-0.329629522839,-0.325073655274,
+-0.32047623695,-0.315837267867,-0.311156748025,-0.306434677424,
+-0.301671056065,-0.296865883946,-0.292019161068,-0.287130887432,
+-0.282201063037,-0.277229687882,-0.272216761969,-0.267162285297,
+-0.262066257866,-0.256928679676,-0.251749550727,-0.24652887102,
+-0.241266640553,-0.235962859327,-0.230617527343,-0.2252306446,
+-0.219802211097,-0.214332226836,-0.208820691816,-0.203267606037,
+-0.197672969499,-0.192036782202,-0.186359044146,-0.180639755331,
+-0.174878915758,-0.169076525425,-0.163232584334,-0.157347092483,
+-0.151420049874,-0.145451456506,-0.139441312379,-0.133389617493,
+-0.127296371848,-0.121161575444,-0.114985228281,-0.10876733036,
+-0.102507881679,-0.0962068822395,-0.089864332041,-0.0834802310837,
+-0.0770545793675,-0.0705873768923,-0.0640786236582,-0.0575283196652,
+-0.0509364649133,-0.0443030594025,-0.0376281031328,-0.0309115961041,
+-0.0241535383165,-0.0173539297701,-0.0105127704647,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357105617369,-0.10361378788,
+-0.163739499722,-0.216898497522,-0.263825597093,-0.305185931006,
+-0.341580796893,-0.37355308025,-0.401592277858,-0.426139146577,
+-0.44759000108,-0.466300682867,-0.482590221768,-0.496744210007,
+-0.50901790788,-0.519639099041,-0.528810712436,-0.53671322698,
+-0.543506874161,-0.549333652931,-0.554319170359,-0.558574320802,
+-0.562196815549,-0.565272574181,-0.567876988236,-0.570076067059,
+-0.571927475149,-0.573481469673,-0.574781746298,-0.575866200905,
+-0.576767614283,-0.577514266397,-0.57813048635,-0.57863714377,
+-0.579052086878,-0.579390532172,-0.579665410243,-0.57988767191,
+-0.580066558559,-0.580209840213,-0.580324024628,-0.580414540403,
+-0.580485896843,-0.580541823103,-0.580585388878,-0.580619108741,
+-0.580645032004,-0.580664819822,-0.580679811082,-0.580691078466,
+-0.580699475946,-0.580705678828,-0.580710217339,-0.580713504658,
+-0.580715860169,-0.580717528644,-0.580718695954,-0.580719501863,
+-0.580720050361,-0.580720417944,-0.580720660193,-0.580720816965,
+-0.580720916425,-0.580720978167,-0.580721015588,-0.580721037676,
+-0.580721050336,-0.580721057358,-0.58072106111,-0.580721063034,
+-0.580721063973,-0.580721064408,-0.580721064596,-0.580721064672,
+-0.580721064699,-0.580721064708,-0.580721064711,-0.580721064712,
+-0.580721064712,-0.580721064712,-0.580721064712,-0.580721064712,
+-0.580721064712,-0.580720620123,-0.580693617965,-0.580624805981,
+-0.580514184172,-0.580361752536,-0.580167511074,-0.579931459786,
+-0.579653598672,-0.579333927732,-0.578972446965,-0.578569156373,
+-0.578124055954,-0.57763714571,-0.577108425639,-0.576537895742,
+-0.57592555602,-0.575271406471,-0.574575447096,-0.573837677895,
+-0.573058098867,-0.572236710014,-0.571373511335,-0.570468502829,
+-0.569521684498,-0.56853305634,-0.567502618356,-0.566430370547,
+-0.565316312911,-0.564160445449,-0.562962768161,-0.561723281046,
+-0.560441984106,-0.55911887734,-0.557753960747,-0.556347234329,
+-0.554898698084,-0.553408352014,-0.551876196117,-0.550302230394,
+-0.548686454845,-0.54702886947,-0.545329474269,-0.543588269241,
+-0.541805254388,-0.539980429709,-0.538113795203,-0.536205350872,
+-0.534255096714,-0.53226303273,-0.53022915892,-0.528153475284,
+-0.526035981822,-0.523876678534,-0.52167556542,-0.51943264248,
+-0.517147909713,-0.514821367121,-0.512453014702,-0.510042852457,
+-0.507590880387,-0.50509709849,-0.502561506767,-0.499984105218,
+-0.497364893843,-0.494703872641,-0.492001041614,-0.489256400761,
+-0.486469950081,-0.483641689576,-0.480771619244,-0.477859739086,
+-0.474906049102,-0.471910549292,-0.468873239656,-0.465794120194,
+-0.462673190906,-0.459510451792,-0.456305902851,-0.453059544085,
+-0.449771375492,-0.446441397074,-0.443069608829,-0.439656010758,
+-0.436200602861,-0.432703385138,-0.429164357589,-0.425583520214,
+-0.421960873013,-0.418296415985,-0.414590149132,-0.410842072452,
+-0.407052185947,-0.403220489615,-0.399346983457,-0.395431667473,
+-0.391474541663,-0.387475606027,-0.383434860565,-0.379352305277,
+-0.375227940163,-0.371061765222,-0.366853780456,-0.362603985863,
+-0.358312381444,-0.353978967199,-0.349603743129,-0.345186709232,
+-0.340727865508,-0.336227211959,-0.331684748584,-0.327100475383,
+-0.322474392355,-0.317806499502,-0.313096796822,-0.308345284317,
+-0.303551961985,-0.298716829827,-0.293839887843,-0.288921136033,
+-0.283960574397,-0.278958202934,-0.273914021646,-0.268828030532,
+-0.263700229591,-0.258530618825,-0.253319198232,-0.248065967813,
+-0.242770927568,-0.237434077497,-0.2320554176,-0.226634947877,
+-0.221172668328,-0.215668578953,-0.210122679751,-0.204534970724,
+-0.19890545187,-0.193234123191,-0.187520984685,-0.181766036353,
+-0.175969278195,-0.170130710211,-0.164250332401,-0.158328144765,
+-0.152364147303,-0.146358340014,-0.1403107229,-0.134221295959,
+-0.128090059192,-0.1219170126,-0.115702156181,-0.109445489936,
+-0.103147013865,-0.0968067279679,-0.0904246322447,-0.0840007266954,
+-0.0775350113201,-0.0710274861186,-0.0644781510911,-0.0578870062374,
+-0.0512540515577,-0.0445792870519,-0.03786271272,-0.031104328562,
+-0.0243041345779,-0.0174621307678,-0.0105783171315,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357174249463,-0.103674087819,
+-0.163896429526,-0.217185035915,-0.264266067408,-0.305797373968,
+-0.342374175305,-0.374534332307,-0.402763234421,-0.427498326518,
+-0.449133297596,-0.468021952567,-0.484481787309,-0.498797286098,
+-0.511222959583,-0.521986140467,-0.531289553174,-0.539313672883,
+-0.54621888846,-0.552147483039,-0.557225445181,-0.561564122839,
+-0.565261731624,-0.568404728186,-0.571069058896,-0.573321293366,
+-0.57521965177,-0.576814934366,-0.578151361084,-0.579267328504,
+-0.580196091121,-0.580966373268,-0.581602917676,-0.582126976215,
+-0.582556747963,-0.582907769398,-0.583193261132,-0.583424435279,
+-0.583610767261,-0.583760235519,-0.58387953235,-0.583974248818,
+-0.584049036444,-0.584107748147,-0.584153560704,-0.584189080775,
+-0.584216436383,-0.584237355537,-0.584253233537,-0.58426519035,
+-0.584274119305,-0.584280728225,-0.584285574002,-0.584289091505,
+-0.584291617613,-0.584293411082,-0.584294668862,-0.584295539398,
+-0.584296133416,-0.584296532577,-0.584296796378,-0.584296967596,
+-0.584297076554,-0.584297144409,-0.584297185674,-0.584297210118,
+-0.58429722418,-0.58429723201,-0.584297236213,-0.584297238377,
+-0.584297239439,-0.584297239932,-0.584297240148,-0.584297240234,
+-0.584297240266,-0.584297240277,-0.58429724028,-0.584297240281,
+-0.584297240281,-0.584297240281,-0.584297240281,-0.584297240281,
+-0.584297240281,-0.584296792954,-0.584269624513,-0.584200388774,
+-0.584089085737,-0.583935715402,-0.583740277769,-0.583502772838,
+-0.58322320061,-0.582901561084,-0.58253785426,-0.582132080138,
+-0.581684238718,-0.58119433,-0.580662353984,-0.580088310671,
+-0.57947220006,-0.578814022151,-0.578113776944,-0.577371464439,
+-0.576587084636,-0.575760637535,-0.574892123137,-0.573981541441,
+-0.573028892447,-0.572034176155,-0.570997392565,-0.569918541677,
+-0.568797623492,-0.567634638008,-0.566429585227,-0.565182465148,
+-0.563893277771,-0.562562023096,-0.561188701123,-0.559773311853,
+-0.558315855284,-0.556816331418,-0.555274740254,-0.553691081792,
+-0.552065356032,-0.550397562974,-0.548687702619,-0.546935774965,
+-0.545141780014,-0.543305717765,-0.541427588218,-0.539507391373,
+-0.537545127231,-0.53554079579,-0.533494397052,-0.531405931015,
+-0.529275397681,-0.527102797049,-0.52488812912,-0.522631393892,
+-0.520332591366,-0.517991721543,-0.515608784422,-0.513183780003,
+-0.510716708286,-0.508207569271,-0.505656362958,-0.503063089348,
+-0.500427748439,-0.497750340233,-0.495030864729,-0.492269321927,
+-0.489465711827,-0.486620034429,-0.483732289734,-0.48080247774,
+-0.477830598449,-0.47481665186,-0.471760637973,-0.468662556788,
+-0.465522408306,-0.462340192525,-0.459115909447,-0.455849559071,
+-0.452541141396,-0.449190656425,-0.445798104155,-0.442363484587,
+-0.438886797722,-0.435368043558,-0.431807222097,-0.428204333338,
+-0.424559377281,-0.420872353926,-0.417143263273,-0.413372105323,
+-0.409558880075,-0.405703587528,-0.401806227684,-0.397866800542,
+-0.393885306103,-0.389861744365,-0.385796115329,-0.381688418996,
+-0.377538655365,-0.373346824436,-0.369112926209,-0.364836960684,
+-0.360518927861,-0.356158827741,-0.351756660322,-0.347312425606,
+-0.342826123592,-0.33829775428,-0.33372731767,-0.329114813763,
+-0.324460242557,-0.319763604054,-0.315024898253,-0.310244125154,
+-0.305421284757,-0.300556377062,-0.295649402069,-0.290700359779,
+-0.28570925019,-0.280676073304,-0.27560082912,-0.270483517638,
+-0.265324138858,-0.260122692781,-0.254879179405,-0.249593598732,
+-0.244265950761,-0.238896235492,-0.233484452925,-0.22803060306,
+-0.222534685897,-0.216996701437,-0.211416649679,-0.205794530622,
+-0.200130344268,-0.194424090616,-0.188675769667,-0.182885381419,
+-0.177052925874,-0.17117840303,-0.165261812889,-0.15930315545,
+-0.153302430713,-0.147259638678,-0.141174779346,-0.135047852715,
+-0.128878858787,-0.122667797561,-0.116414669037,-0.110119473215,
+-0.103782210095,-0.0974028796774,-0.0909814819619,-0.0845180169486,
+-0.0780124846374,-0.0714648850284,-0.0648752181215,-0.0582434839167,
+-0.0515696824141,-0.0448538136137,-0.0380958775154,-0.0312958741192,
+-0.0244538034251,-0.0175696654332,-0.0106434601435,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357241653809,-0.103733340237,
+-0.164050713409,-0.21746688782,-0.26469955299,-0.30639942094,
+-0.34315574461,-0.375501443423,-0.403917859443,-0.428839166469,
+-0.450656453307,-0.469721501424,-0.486350276184,-0.500826149893,
+-0.513402873949,-0.524307316495,-0.533741981121,-0.541887321316,
+-0.548903864592,-0.554934159433,-0.560104557484,-0.564526842711,
+-0.568299718579,-0.571510163652,-0.574234665409,-0.576540341492,
+-0.578485957018,-0.580122846075,-0.581495744998,-0.582643544547,
+-0.583599967622,-0.584394178751,-0.585051331122,-0.585593056567,
+-0.586037903521,-0.586401727602,-0.586698039162,-0.586938311794,
+-0.587132255511,-0.587288058013,-0.587412597197,-0.587511627802,
+-0.587589944872,-0.587651526446,-0.587699657743,-0.587737038856,
+-0.58776587781,-0.587787970695,-0.587804770369,-0.587817445139,
+-0.587826928645,-0.587833962091,-0.587839129794,-0.587842888983,
+-0.58784559461,-0.587847519915,-0.587848873341,-0.587849812373,
+-0.58785045476,-0.587850887565,-0.58785117439,-0.587851361087,
+-0.587851480254,-0.5878515547,-0.587851600123,-0.587851627123,
+-0.587851642714,-0.587851651429,-0.587851656126,-0.587851658554,
+-0.587851659752,-0.587851660312,-0.587851660557,-0.587851660656,
+-0.587851660693,-0.587851660706,-0.587851660709,-0.58785166071,
+-0.58785166071,-0.58785166071,-0.58785166071,-0.58785166071,
+-0.58785166071,-0.587851210662,-0.587823876949,-0.587754220032,
+-0.587642239912,-0.587487936588,-0.587291310062,-0.587052360332,
+-0.586771087398,-0.586447491261,-0.586081571921,-0.585673329378,
+-0.585222763631,-0.584729874681,-0.584194662528,-0.583617127171,
+-0.582997268611,-0.582335086847,-0.581630581881,-0.580883753711,
+-0.580094602337,-0.57926312776,-0.57838932998,-0.577473208997,
+-0.57651476481,-0.57551399742,-0.574470906827,-0.57338549303,
+-0.57225775603,-0.571087695827,-0.56987531242,-0.56862060581,
+-0.567323575996,-0.56598422298,-0.56460254676,-0.563178547336,
+-0.561712224709,-0.560203578879,-0.558652609846,-0.557059317609,
+-0.555423702169,-0.553745763526,-0.552025501679,-0.550262916629,
+-0.548458008376,-0.546610776919,-0.544721222259,-0.542789344396,
+-0.540815143329,-0.538798619059,-0.536739771586,-0.534638600909,
+-0.532495107029,-0.530309289946,-0.528081149659,-0.525810686169,
+-0.523497899475,-0.521142789579,-0.518745356479,-0.516305600175,
+-0.513823520669,-0.511299117959,-0.508732392045,-0.506123342929,
+-0.503471970609,-0.500778275085,-0.498042256359,-0.495263914429,
+-0.492443249295,-0.489580260959,-0.486674949419,-0.483727314675,
+-0.480737356729,-0.477705075579,-0.474630471225,-0.471513543669,
+-0.468354292909,-0.465152718946,-0.461908821779,-0.458622601409,
+-0.455294057836,-0.451923191059,-0.448510001079,-0.445054487896,
+-0.441556651509,-0.438016491919,-0.434434009126,-0.430809203129,
+-0.427142073929,-0.423432621526,-0.419680845919,-0.415886747109,
+-0.412050325096,-0.408171579879,-0.404250511459,-0.400287119836,
+-0.39628140501,-0.39223336698,-0.388143005746,-0.38401032131,
+-0.37983531367,-0.375617982827,-0.37135832878,-0.36705635153,
+-0.362712051077,-0.35832542742,-0.35389648056,-0.349425210497,
+-0.34491161723,-0.34035570076,-0.335757461087,-0.331116898211,
+-0.326434012131,-0.321708802847,-0.316941270361,-0.312131414671,
+-0.307279235778,-0.302384733681,-0.297447908381,-0.292468759878,
+-0.287447288171,-0.282383493261,-0.277277375148,-0.272128933832,
+-0.266938169312,-0.261705081589,-0.256429670662,-0.251111936532,
+-0.245751879199,-0.240349498662,-0.234904794922,-0.229417767979,
+-0.223888417833,-0.218316744483,-0.21270274793,-0.207046428173,
+-0.201347785213,-0.19560681905,-0.189823529683,-0.183997917113,
+-0.17812998134,-0.172219722364,-0.166267140184,-0.160272234801,
+-0.154235006214,-0.148155454424,-0.142033579431,-0.135869381235,
+-0.129662859835,-0.123414015232,-0.117122847425,-0.110789356415,
+-0.104413542202,-0.0979954047854,-0.0915349441656,-0.0850321603424,
+-0.0784870533159,-0.071899623086,-0.0652698696529,-0.0585977930164,
+-0.0518833931765,-0.0451266701334,-0.0383276238869,-0.031486254437,
+-0.0246025617839,-0.0176765459274,-0.0107082068675,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357307866679,-0.103791575368,
+-0.16420242594,-0.217744182139,-0.265126241244,-0.306992317733,
+-0.343925805913,-0.376454764885,-0.405056548067,-0.430162098504,
+-0.452159930165,-0.47139981442,-0.488196190011,-0.502831313853,
+-0.515558169189,-0.526603146737,-0.536168513685,-0.544434684603,
+-0.55156230759,-0.557694178257,-0.562956993471,-0.567462956104,
+-0.571311241406,-0.574589335023,-0.57737425208,-0.579733646215,
+-0.581726816896,-0.58340562287,-0.58481530908,-0.585995253951,
+-0.586979643484,-0.587798078187,-0.588476118483,-0.589035773824,
+-0.589495940418,-0.58987279211,-0.590180128636,-0.590429685169,
+-0.590631406792,-0.590793691238,-0.590923602995,-0.591027061634,
+-0.591109006975,-0.59117354349,-0.591224066172,-0.591263369852,
+-0.591293743834,-0.591317053495,-0.591334810383,-0.591348232188,
+-0.591358293819,-0.591365770715,-0.591371275384,-0.591375288084,
+-0.591378182426,-0.591380246632,-0.591381701068,-0.59138271261,
+-0.591383406331,-0.591383874937,-0.591384186328,-0.591384389589,
+-0.59138451971,-0.591384601252,-0.591384651167,-0.591384680938,
+-0.591384698191,-0.591384707872,-0.591384713111,-0.591384715831,
+-0.591384717179,-0.591384717812,-0.591384718091,-0.591384718205,
+-0.591384718248,-0.591384718262,-0.591384718266,-0.591384718267,
+-0.591384718267,-0.591384718267,-0.591384718267,-0.591384718267,
+-0.591384718267,-0.591384265514,-0.591356767522,-0.591286691959,
+-0.591174038825,-0.591018808121,-0.590820999845,-0.590580613999,
+-0.590297650582,-0.589972109595,-0.589603991036,-0.589193294907,
+-0.588740021208,-0.588244169937,-0.587705741096,-0.587124734684,
+-0.586501150701,-0.585834989147,-0.585126250023,-0.584374933327,
+-0.583581039062,-0.582744567225,-0.581865517818,-0.580943890839,
+-0.57997968629,-0.578972904171,-0.57792354448,-0.576831607219,
+-0.575697092387,-0.574519999984,-0.573300330011,-0.572038082467,
+-0.570733257352,-0.569385854666,-0.56799587441,-0.566563316582,
+-0.565088181184,-0.563570468216,-0.562010177676,-0.560407309566,
+-0.558761863885,-0.557073840633,-0.55534323981,-0.553570061417,
+-0.551754305453,-0.549895971918,-0.547995060813,-0.546051572136,
+-0.544065505889,-0.542036862071,-0.539965640683,-0.537851841723,
+-0.535695465193,-0.533496511092,-0.531254979421,-0.528970870178,
+-0.526644183365,-0.524274918981,-0.521863077027,-0.519408657501,
+-0.516911660405,-0.514372085738,-0.511789933501,-0.509165203692,
+-0.506497896313,-0.503788011363,-0.501035548842,-0.498240508751,
+-0.495402891089,-0.492522695856,-0.489599923052,-0.486634572677,
+-0.483626644732,-0.480576139216,-0.477483056129,-0.474347395472,
+-0.471169157244,-0.467948341445,-0.464684948075,-0.461378977134,
+-0.458030428623,-0.454639302541,-0.451205598888,-0.447729317664,
+-0.44421045887,-0.440649022505,-0.437045008569,-0.433398417063,
+-0.429709247985,-0.425977501337,-0.422203177118,-0.418386275329,
+-0.414526795968,-0.410624739037,-0.406680104535,-0.402692892462,
+-0.398663102819,-0.394590735605,-0.39047579082,-0.386318268464,
+-0.382118168538,-0.377875491041,-0.373590235973,-0.369262403334,
+-0.364891993124,-0.360479005344,-0.356023439993,-0.351525297072,
+-0.346984576579,-0.342401278516,-0.337775402882,-0.333106949677,
+-0.328395918901,-0.323642310555,-0.318846124638,-0.31400736115,
+-0.309126020092,-0.304202101462,-0.299235605262,-0.294226531492,
+-0.28917488015,-0.284080651238,-0.278943844755,-0.273764460701,
+-0.268542499076,-0.263277959881,-0.257970843115,-0.252621148778,
+-0.24722887687,-0.241794027392,-0.236316600343,-0.230796595723,
+-0.225234013532,-0.219628853771,-0.213981116438,-0.208290801535,
+-0.202557909062,-0.196782439017,-0.190964391402,-0.185103766216,
+-0.179200563459,-0.173254783132,-0.167266425234,-0.161235489765,
+-0.155161976725,-0.149045886114,-0.142887217933,-0.136685972181,
+-0.130442148858,-0.124155747965,-0.117826769501,-0.111455213466,
+-0.10504107986,-0.0985843686832,-0.0920850799359,-0.0855432136178,
+-0.078958769729,-0.0723317482694,-0.0656621492391,-0.058949972638,
+-0.0521952184661,-0.0453978867235,-0.0385579774101,-0.031675490526,
+-0.0247504260711,-0.0177827840455,-0.0107725644491,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.035737292286,-0.103848822233,
+-0.164351638755,-0.218017042808,-0.26554631251,-0.307576301085,
+-0.344684649449,-0.377394635578,-0.406179681794,-0.431467540119,
+-0.453644174884,-0.473057360898,-0.490020014583,-0.504813274617,
+-0.517689347847,-0.528874135405,-0.538569653225,-0.546956260419,
+-0.554194708258,-0.560428021856,-0.56578322597,-0.570372925725,
+-0.574296752479,-0.577642684452,-0.580488251207,-0.582901630539,
+-0.584942645824,-0.586663671392,-0.588110453049,-0.589322850397,
+-0.590335507214,-0.591178455752,-0.591877660392,-0.592455505801,
+-0.592931234316,-0.593321337014,-0.593639902577,-0.593898927792,
+-0.594108593216,-0.594277507318,-0.594412922111,-0.594520923095,
+-0.59460659607,-0.594674173212,-0.594727160578,-0.594768449026,
+-0.59480041038,-0.594824980496,-0.594843730731,-0.594857929197,
+-0.594868593017,-0.594876532722,-0.594882389776,-0.594886668137,
+-0.594889760662,-0.594891971062,-0.594893532056,-0.594894620273,
+-0.59489536841,-0.594895875066,-0.594896212635,-0.594896433596,
+-0.594896575459,-0.59489666463,-0.594896719388,-0.594896752158,
+-0.594896771216,-0.59489678195,-0.594896787782,-0.594896790824,
+-0.594896792338,-0.594896793052,-0.594896793368,-0.594896793498,
+-0.594896793547,-0.594896793564,-0.594896793569,-0.59489679357,
+-0.59489679357,-0.59489679357,-0.59489679357,-0.59489679357,
+-0.59489679357,-0.594896338128,-0.594868676833,-0.59479818511,
+-0.594684862959,-0.594528710381,-0.594329727376,-0.594087913942,
+-0.593803270082,-0.593475795793,-0.593105491078,-0.592692355934,
+-0.592236390364,-0.591737594365,-0.591195967939,-0.590611511086,
+-0.589984223805,-0.589314106096,-0.58860115796,-0.587845379397,
+-0.587046770406,-0.586205330987,-0.585321061141,-0.584393960867,
+-0.583424030166,-0.582411269037,-0.581355677481,-0.580257255497,
+-0.579116003086,-0.577931920247,-0.57670500698,-0.575435263286,
+-0.574122689165,-0.572767284616,-0.571369049639,-0.569927984235,
+-0.568444088403,-0.566917362144,-0.565347805457,-0.563735418343,
+-0.562080200801,-0.560382152832,-0.558641274435,-0.55685756561,
+-0.555031026358,-0.553161656679,-0.551249456572,-0.549294426037,
+-0.547296565075,-0.545255873686,-0.543172351868,-0.541045999624,
+-0.538876816951,-0.536664803852,-0.534409960324,-0.53211228637,
+-0.529771781987,-0.527388447177,-0.52496228194,-0.522493286275,
+-0.519981460182,-0.517426803662,-0.514829316715,-0.512188999339,
+-0.509505851537,-0.506779873307,-0.504011064649,-0.501199425564,
+-0.498344956051,-0.49544765611,-0.492507525743,-0.489524564947,
+-0.486498773724,-0.483430152074,-0.480318699996,-0.47716441749,
+-0.473967304557,-0.470727361196,-0.467444587408,-0.464118983193,
+-0.460750548549,-0.457339283479,-0.45388518798,-0.450388262054,
+-0.446848505701,-0.44326591892,-0.439640501712,-0.435972254076,
+-0.432261176012,-0.428507267521,-0.424710528603,-0.420870959256,
+-0.416988559483,-0.413063329282,-0.409095268653,-0.405084377597,
+-0.401030656113,-0.396934104201,-0.392794721863,-0.388612509096,
+-0.384387465902,-0.380119592281,-0.375808888232,-0.371455353755,
+-0.367058988851,-0.362619793519,-0.35813776776,-0.353612911574,
+-0.349045224959,-0.344434707918,-0.339781360448,-0.335085182552,
+-0.330346174227,-0.325564335475,-0.320739666296,-0.315872166689,
+-0.310961836654,-0.306008676192,-0.301012685303,-0.295973863986,
+-0.290892212241,-0.285767730069,-0.280600417469,-0.275390274442,
+-0.270137300987,-0.264841497105,-0.259502862795,-0.254121398057,
+-0.248697102893,-0.2432299773,-0.23772002128,-0.232167234833,
+-0.226571617957,-0.220933170655,-0.215251892925,-0.209527784767,
+-0.203760846182,-0.197951077169,-0.192098477729,-0.186203047861,
+-0.180264787566,-0.174283696843,-0.168259775692,-0.162193024114,
+-0.156083442109,-0.149931029676,-0.143735786815,-0.137497713527,
+-0.131216809811,-0.124893075668,-0.118526511098,-0.112117116099,
+-0.105664890674,-0.0991698348202,-0.0926319485394,-0.086051231831,
+-0.0794276846951,-0.0727613071316,-0.0660520991406,-0.0593000607221,
+-0.0525051918761,-0.0456674926025,-0.0387869629013,-0.0318636027727,
+-0.0248974122164,-0.0178883912327,-0.0108365398214,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357436855732,-0.1039051087,
+-0.164498420705,-0.218285589044,-0.2659599404,-0.308151599099,
+-0.345432555092,-0.378321382551,-0.407287629101,-0.432755894869,
+-0.455109619596,-0.47469459522,-0.491822220528,-0.50677251365,
+-0.519796897427,-0.531120771919,-0.540945887634,-0.549452532346,
+-0.556801543717,-0.563136159308,-0.568583714943,-0.573257201798,
+-0.577256692038,-0.580670642269,-0.583577083536,-0.586044706152,
+-0.588133847095,-0.589897387307,-0.591381565763,-0.592626716777,
+-0.593667936588,-0.594535684913,-0.59525632678,-0.595852619605,
+-0.596344150139,-0.596747725628,-0.597077723198,-0.597346401197,
+-0.597564175996,-0.597739867438,-0.597880915933,-0.597993573946,
+-0.59808307442,-0.59815377846,-0.598209304445,-0.59825264051,
+-0.598286242225,-0.598312117097,-0.598331897398,-0.598346902688,
+-0.598358193248,-0.598366615553,-0.598372840786,-0.598377397282,
+-0.598380697733,-0.598383061849,-0.598384735136,-0.598385904346,
+-0.598386710103,-0.598387257148,-0.598387622581,-0.598387862433,
+-0.598388016863,-0.598388114223,-0.598388174198,-0.598388210209,
+-0.598388231224,-0.598388243105,-0.598388249584,-0.598388252978,
+-0.598388254675,-0.598388255479,-0.598388255837,-0.598388255985,
+-0.598388256041,-0.598388256061,-0.598388256066,-0.598388256068,
+-0.598388256068,-0.598388256068,-0.598388256068,-0.598388256068,
+-0.598388256068,-0.598387797953,-0.598359974313,-0.598289068872,
+-0.598175081632,-0.598018012591,-0.597817861749,-0.597574629108,
+-0.597288314666,-0.596958918424,-0.596586440381,-0.596170880539,
+-0.595712238896,-0.595210515453,-0.594665710209,-0.594077823166,
+-0.593446854322,-0.592772803677,-0.592055671233,-0.591295456988,
+-0.590492160943,-0.589645783098,-0.588756323452,-0.587823782006,
+-0.58684815876,-0.585829453714,-0.584767666867,-0.583662798221,
+-0.582514847773,-0.581323815526,-0.580089701478,-0.57881250563,
+-0.577492227982,-0.576128868534,-0.574722427285,-0.573272904236,
+-0.571780299387,-0.570244612737,-0.568665844287,-0.567043994037,
+-0.565379061987,-0.563671048136,-0.561919952485,-0.560125775034,
+-0.558288515783,-0.556408174731,-0.554484751879,-0.552518247227,
+-0.550508660774,-0.548455992522,-0.546360242469,-0.544221410615,
+-0.542039496962,-0.539814501508,-0.537546424254,-0.5352352652,
+-0.532881024345,-0.53048370169,-0.528043297235,-0.52555981098,
+-0.523033242924,-0.520463593068,-0.517850861412,-0.515195047955,
+-0.512496152699,-0.509754175642,-0.506969116784,-0.504140976127,
+-0.501269753669,-0.498355449411,-0.495398063353,-0.492397595494,
+-0.489354045835,-0.486267414376,-0.483137701117,-0.479964906057,
+-0.476749029197,-0.473490070537,-0.470188030077,-0.466842907816,
+-0.463454703755,-0.460023417894,-0.456549050232,-0.45303160077,
+-0.449471069508,-0.445867456446,-0.442220761583,-0.43853098492,
+-0.434798126457,-0.431022186194,-0.42720316413,-0.423341060266,
+-0.419435874602,-0.415487607138,-0.411496257873,-0.407461826808,
+-0.403384313943,-0.399263719277,-0.395100042812,-0.390893284546,
+-0.386643444479,-0.382350522613,-0.378014518946,-0.373635433479,
+-0.369213266211,-0.364748017144,-0.360239686276,-0.355688273608,
+-0.351093779139,-0.34645620287,-0.341775544801,-0.337051804932,
+-0.332284983263,-0.327475079793,-0.322622094523,-0.317726027453,
+-0.312786878582,-0.307804647911,-0.30277933544,-0.297710941169,
+-0.292599465097,-0.287444907225,-0.282247267553,-0.277006546081,
+-0.271722742808,-0.266395857735,-0.261025890862,-0.255612842188,
+-0.250156711714,-0.24465749944,-0.239115205366,-0.233529829492,
+-0.227901371817,-0.222229832342,-0.216515211066,-0.210757507991,
+-0.204956723115,-0.199112856439,-0.193225907962,-0.187295877686,
+-0.181322765609,-0.175306571731,-0.169247296054,-0.163144938576,
+-0.156999499298,-0.15081097822,-0.144579375341,-0.138304690662,
+-0.131986924183,-0.125626075904,-0.119222145824,-0.112775133945,
+-0.106285040264,-0.099751864784,-0.0931756075033,-0.0865562684224,
+-0.0798938475411,-0.0731883448597,-0.0664397603779,-0.0596480940959,
+-0.0528133460136,-0.0459355161311,-0.0390146044483,-0.0320506109652,
+-0.0250435356819,-0.0179933785983,-0.0109001397144,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357499697338,-0.103960461546,
+-0.164642837993,-0.218549935572,-0.266367292127,-0.308718431639,
+-0.346169792831,-0.379235321557,-0.408380746013,-0.434027552979,
+-0.456556682474,-0.476311957391,-0.493603263926,-0.508709497855,
+-0.521881290993,-0.533343531485,-0.543297690895,-0.551923970418,
+-0.559383277924,-0.565819046919,-0.571358907966,-0.576116222525,
+-0.580191488646,-0.58367362743,-0.586641158708,-0.58916327386,
+-0.591300813308,-0.593107155729,-0.594629025642,-0.595907225633,
+-0.596977299075,-0.597870128861,-0.598612477309,-0.599227472061,
+-0.599735042511,-0.600152310943,-0.600493942343,-0.600772456513,
+-0.600998505901,-0.601181122297,-0.601327935318,-0.601445365385,
+-0.601538793691,-0.601612711456,-0.601670850601,-0.601716297763,
+-0.601751593458,-0.601778817995,-0.601799665656,-0.601815508464,
+-0.601827450795,-0.60183637592,-0.601842985502,-0.601847832931,
+-0.601851351325,-0.601853876908,-0.601855668413,-0.601856923083,
+-0.601857789785,-0.601858379657,-0.601858774711,-0.6018590347,
+-0.601859202564,-0.601859308705,-0.60185937429,-0.601859413797,
+-0.601859436932,-0.601859450058,-0.601859457244,-0.601859461024,
+-0.601859462922,-0.601859463826,-0.60185946423,-0.601859464399,
+-0.601859464463,-0.601859464485,-0.601859464491,-0.601859464493,
+-0.601859464493,-0.601859464493,-0.601859464493,-0.601859464493,
+-0.601859464493,-0.601859003721,-0.601831018678,-0.60175970192,
+-0.601645053447,-0.601487073259,-0.601285761357,-0.60104111774,
+-0.600753142408,-0.600421835361,-0.6000471966,-0.599629226124,
+-0.599167923933,-0.598663290027,-0.598115324406,-0.597524027071,
+-0.596889398021,-0.596211437256,-0.595490144776,-0.594725520582,
+-0.593917564673,-0.593066277049,-0.59217165771,-0.591233706657,
+-0.590252423888,-0.589227809405,-0.588159863207,-0.587048585295,
+-0.585893975667,-0.584696034325,-0.583454761268,-0.582170156496,
+-0.58084222001,-0.579470951809,-0.578056351892,-0.576598420262,
+-0.575097156916,-0.573552561856,-0.57196463508,-0.57033337659,
+-0.568658786386,-0.566940864466,-0.565179610832,-0.563375025483,
+-0.561527108419,-0.55963585964,-0.557701279147,-0.555723366939,
+-0.553702123016,-0.551637547378,-0.549529640026,-0.547378400958,
+-0.545183830176,-0.54294592768,-0.540664693468,-0.538340127542,
+-0.5359722299,-0.533561000544,-0.531106439474,-0.528608546688,
+-0.526067322188,-0.523482765973,-0.520854878043,-0.518183658399,
+-0.515469107039,-0.512711223965,-0.509910009176,-0.507065462672,
+-0.504177584454,-0.501246374521,-0.498271832873,-0.49525395951,
+-0.492192754432,-0.48908821764,-0.485940349133,-0.482749148911,
+-0.479514616974,-0.476236753323,-0.472915557956,-0.469551030875,
+-0.46614317208,-0.462691981569,-0.459197459344,-0.455659605404,
+-0.452078419749,-0.448453902379,-0.444786053295,-0.441074872495,
+-0.437320359981,-0.433522515753,-0.429681339809,-0.425796832151,
+-0.421868992778,-0.41789782169,-0.413883318887,-0.40982548437,
+-0.405724318137,-0.40157982019,-0.397391990529,-0.393160829152,
+-0.388886336061,-0.384568511255,-0.380207354734,-0.375802866498,
+-0.371355046548,-0.366863894883,-0.362329411503,-0.357751596408,
+-0.353130449598,-0.348465971074,-0.343758160835,-0.339007018881,
+-0.334212545212,-0.329374739829,-0.324493602731,-0.319569133918,
+-0.31460133339,-0.309590201147,-0.30453573719,-0.299437941518,
+-0.294296814131,-0.28911235503,-0.283884564213,-0.278613441682,
+-0.273298987436,-0.267941201475,-0.2625400838,-0.25709563441,
+-0.251607853304,-0.246076740485,-0.24050229595,-0.234884519701,
+-0.229223411736,-0.223518972057,-0.217771200664,-0.211980097555,
+-0.206145662732,-0.200267896194,-0.194346797941,-0.188382367973,
+-0.182374606291,-0.176323512894,-0.170229087782,-0.164091330955,
+-0.157910242414,-0.151685822158,-0.145418070187,-0.139106986501,
+-0.1327525711,-0.126354823985,-0.119913745155,-0.11342933461,
+-0.10690159235,-0.100330518375,-0.0937161126862,-0.0870583752822,
+-0.0803573061634,-0.0736129053298,-0.0668251727814,-0.0599941085183,
+-0.0531197125404,-0.0462019848477,-0.0392409254402,-0.032236534318,
+-0.0251888114809,-0.0180977569291,-0.0109633706626,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357561478454,-0.104014906508,
+-0.164784954307,-0.218810192846,-0.266768528804,-0.309277010721,
+-0.346896623218,-0.380136757553,-0.409459376652,-0.435282891912,
+-0.457985768318,-0.477909873656,-0.495363586905,-0.510624680151,
+-0.523942987733,-0.535542875646,-0.545625523616,-0.554371031632,
+-0.561940362163,-0.568477128696,-0.57410924069,-0.578950414542,
+-0.583101559619,-0.586652047944,-0.58968087567,-0.592257723995,
+-0.594443926771,-0.596293351633,-0.597853201078,-0.599164739555,
+-0.600263952252,-0.601182140925,-0.601946461783,-0.602580410136,
+-0.603104256177,-0.603535436037,-0.603888901916,-0.604177434886,
+-0.604411923673,-0.604601612528,-0.604754321025,-0.604876638474,
+-0.604974095381,-0.605051314225,-0.605112141654,-0.605159764004,
+-0.605196807906,-0.605225427614,-0.60524738049,-0.605264092035,
+-0.605276711645,-0.605286160235,-0.60529317071,-0.605298322193,
+-0.605302068824,-0.605304763855,-0.605306679691,-0.605308024447,
+-0.605308955541,-0.605309590774,-0.605310017281,-0.605310298709,
+-0.605310480916,-0.605310596458,-0.605310668068,-0.605310711343,
+-0.605310736769,-0.605310751246,-0.605310759203,-0.605310763405,
+-0.605310765524,-0.605310766537,-0.605310766993,-0.605310767184,
+-0.605310767257,-0.605310767282,-0.60531076729,-0.605310767292,
+-0.605310767292,-0.605310767292,-0.605310767292,-0.605310767292,
+-0.605310767292,-0.605310303878,-0.605282158357,-0.60521043264,
+-0.605095126727,-0.604936240618,-0.604733774313,-0.604487727812,
+-0.604198101114,-0.60386489422,-0.60348810713,-0.603067739844,
+-0.602603792362,-0.602096264684,-0.601545156809,-0.600950468739,
+-0.600312200472,-0.599630352009,-0.59890492335,-0.598135914495,
+-0.597323325443,-0.596467156196,-0.595567406752,-0.594624077112,
+-0.593637167276,-0.592606677244,-0.591532607015,-0.590414956591,
+-0.58925372597,-0.588048915153,-0.586800524141,-0.585508552931,
+-0.584173001526,-0.582793869925,-0.581371158127,-0.579904866133,
+-0.578394993944,-0.576841541558,-0.575244508975,-0.573603896197,
+-0.571919703223,-0.570191930052,-0.568420576685,-0.566605643122,
+-0.564747129363,-0.562845035408,-0.560899361256,-0.558910106909,
+-0.556877272365,-0.554800857625,-0.552680862689,-0.550517287557,
+-0.548310132229,-0.546059396704,-0.543765080984,-0.541427185067,
+-0.539045708954,-0.536620652645,-0.53415201614,-0.531639799438,
+-0.529084002541,-0.526484625447,-0.523841668157,-0.521155130671,
+-0.518425012989,-0.515651315111,-0.512834037036,-0.509973178765,
+-0.507068740299,-0.504120721636,-0.501129122777,-0.498093943721,
+-0.49501518447,-0.491892845022,-0.488726925379,-0.485517425539,
+-0.482264345503,-0.478967685271,-0.475627444842,-0.472243624218,
+-0.468816223397,-0.465345242381,-0.461830681168,-0.458272539759,
+-0.454670818153,-0.451025516352,-0.447336634354,-0.443604172161,
+-0.439828129771,-0.436008507185,-0.432145304403,-0.428238521424,
+-0.42428815825,-0.420294214879,-0.416256691312,-0.41217558755,
+-0.40805090359,-0.403882639435,-0.399670795084,-0.395415370536,
+-0.391116365793,-0.386773780853,-0.382387615717,-0.377957870385,
+-0.373484544856,-0.368967639132,-0.364407153211,-0.359803087094,
+-0.355155440781,-0.350464214272,-0.345729407567,-0.340951020666,
+-0.336129053568,-0.331263506275,-0.326354378785,-0.321401671099,
+-0.316405383217,-0.311365515138,-0.306282066864,-0.301155038393,
+-0.295984429726,-0.290770240864,-0.285512471804,-0.280211122549,
+-0.274866193098,-0.26947768345,-0.264045593607,-0.258569923567,
+-0.253050673331,-0.247487842899,-0.24188143227,-0.236231441446,
+-0.230537870425,-0.224800719208,-0.219019987796,-0.213195676187,
+-0.207327784381,-0.20141631238,-0.195461260182,-0.189462627789,
+-0.183420415199,-0.177334622413,-0.171205249431,-0.165032296252,
+-0.158815762878,-0.152555649307,-0.146251955541,-0.139904681578,
+-0.133513827419,-0.127079393063,-0.120601378512,-0.114079783765,
+-0.107514608821,-0.100905853681,-0.094253518345,-0.0875576028129,
+-0.0808181070846,-0.0740350311602,-0.0672083750396,-0.0603381387228,
+-0.0534243222099,-0.0464669255008,-0.0394659485956,-0.0324213914942,
+-0.0253332541967,-0.0182015367031,-0.0110262390132,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357622228656,-0.104068468336,
+-0.164924830939,-0.219066467252,-0.267163805728,-0.309827540872,
+-0.3476132978,-0.38102598518,-0.410523853751,-0.436522276915,
+-0.459397269113,-0.479488757064,-0.497103618199,-0.512518500028,
+-0.525982433497,-0.537719252803,-0.547929833532,-0.556794160428,
+-0.564473235515,-0.571110836806,-0.576835137278,-0.581760193333,
+-0.585987311442,-0.58960630127,-0.592696623077,-0.595328436814,
+-0.597563559895,-0.599456340238,-0.601054450818,-0.602399611572,
+-0.603528244187,-0.604472064953,-0.605258620545,-0.605911771324,
+-0.606452126396,-0.606897434478,-0.607262934276,-0.607561667882,
+-0.607804760442,-0.60800166911,-0.608160404119,-0.608287724548,
+-0.608389311229,-0.608469919006,-0.608533510403,-0.608583372616,
+-0.608622219551,-0.608652280514,-0.608675377018,-0.608692989031,
+-0.608706311899,-0.608716305021,-0.608723733306,-0.608729202286,
+-0.608733187721,-0.608736060415,-0.608738106889,-0.608739546508,
+-0.608740545568,-0.608741228793,-0.608741688662,-0.608741992889,
+-0.608742190391,-0.608742315986,-0.60874239406,-0.608742441388,
+-0.608742469288,-0.608742485229,-0.608742494024,-0.608742498686,
+-0.608742501047,-0.608742502182,-0.608742502695,-0.60874250291,
+-0.608742502994,-0.608742503022,-0.608742503031,-0.608742503033,
+-0.608742503034,-0.608742503034,-0.608742503034,-0.608742503034,
+-0.608742503034,-0.608742036992,-0.608713731904,-0.608641599547,
+-0.608525639921,-0.608365853026,-0.608162238863,-0.607914797431,
+-0.60762352873,-0.60728843276,-0.606909509522,-0.606486759015,
+-0.606020181239,-0.605509776194,-0.60495554388,-0.604357484298,
+-0.603715597447,-0.603029883327,-0.602300341939,-0.601526973281,
+-0.600709777355,-0.59984875416,-0.598943903696,-0.597995225964,
+-0.597002720963,-0.595966388693,-0.594886229154,-0.593762242346,
+-0.59259442827,-0.591382786925,-0.590127318311,-0.588828022428,
+-0.587484899277,-0.586097948857,-0.584667171168,-0.58319256621,
+-0.581674133983,-0.580111874488,-0.578505787724,-0.576855873691,
+-0.575162132389,-0.573424563819,-0.57164316798,-0.569817944872,
+-0.567948894495,-0.56603601685,-0.564079311935,-0.562078779752,
+-0.560034420301,-0.55794623358,-0.555814219591,-0.553638378333,
+-0.551418709806,-0.54915521401,-0.546847890946,-0.544496740612,
+-0.54210176301,-0.53966295814,-0.537180326,-0.534653866592,
+-0.532083579915,-0.529469465969,-0.526811524754,-0.524109756271,
+-0.521364160519,-0.518574737498,-0.515741487208,-0.51286440965,
+-0.509943504822,-0.506978772726,-0.503970213361,-0.500917826728,
+-0.497821612825,-0.494681571654,-0.491497703214,-0.488270007506,
+-0.484998484528,-0.481683134282,-0.478323956767,-0.474920951983,
+-0.471474119931,-0.46798346061,-0.464448974019,-0.460870660161,
+-0.457248519033,-0.453582550637,-0.449872754971,-0.446119132037,
+-0.442321681835,-0.438480404363,-0.434595299623,-0.430666367614,
+-0.426693608336,-0.42267702179,-0.418616607974,-0.41451236689,
+-0.410364298537,-0.406172402915,-0.401936680025,-0.397657129866,
+-0.393333752438,-0.388966547741,-0.384555515776,-0.380100656541,
+-0.375601970038,-0.371059456266,-0.366473115226,-0.361842946916,
+-0.357168951338,-0.352451128491,-0.347689478375,-0.342884000991,
+-0.338034696338,-0.333141564416,-0.328204605225,-0.323223818765,
+-0.318199205037,-0.31313076404,-0.308018495774,-0.302862400239,
+-0.297662477436,-0.292418727363,-0.287131150022,-0.281799745413,
+-0.276424513534,-0.271005454387,-0.265542567971,-0.260035854286,
+-0.254485313332,-0.24889094511,-0.243252749619,-0.237570726859,
+-0.23184487683,-0.226075199533,-0.220261694966,-0.214404363131,
+-0.208503204027,-0.202558217655,-0.196569404013,-0.190536763103,
+-0.184460294924,-0.178339999477,-0.17217587676,-0.165967926775,
+-0.159716149521,-0.153420544998,-0.147081113207,-0.140697854146,
+-0.134270767817,-0.12779985422,-0.121285113353,-0.114726545217,
+-0.108124149813,-0.10147792714,-0.0947878771986,-0.0880539999881,
+-0.0812762955089,-0.0744547637608,-0.067589404744,-0.0606802184584,
+-0.053727204904,-0.0467303640809,-0.039689695989,-0.0326052006283,
+-0.0254768779989,-0.0183047281006,-0.0110887509337,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357681976372,-0.104121170843,
+-0.165062526904,-0.219318861296,-0.267553272656,-0.310370219466,
+-0.348320059515,-0.381903289213,-0.411574499146,-0.437746061531,
+-0.460791564563,-0.481049007999,-0.49882377368,-0.514391384071,
+-0.528000061315,-0.539873098712,-0.55021105599,-0.559193789163,
+-0.566982325304,-0.573720592001,-0.579537010824,-0.584545963641,
+-0.588849140165,-0.592536774708,-0.595688779665,-0.598375782866,
+-0.600660075558,-0.602596477374,-0.604233124332,-0.605612185516,
+-0.606770513807,-0.607740235687,-0.608549284842,-0.609221884025,
+-0.609778979315,-0.6102386307,-0.610616362617,-0.610925477871,
+-0.611177338098,-0.611381613752,-0.611546506359,-0.6116789456,
+-0.611784763604,-0.611868848638,-0.61193528022,-0.611987447543,
+-0.612028152912,-0.612059701784,-0.612083980868,-0.612102525592,
+-0.612116578161,-0.612127137301,-0.612135000682,-0.612140800924,
+-0.612145036009,-0.61214809481,-0.612150278419,-0.612151817839,
+-0.612152888564,-0.612153622514,-0.61215411773,-0.612154446175,
+-0.612154659967,-0.6121547963,-0.612154881297,-0.612154932981,
+-0.612154963548,-0.612154981074,-0.612154990778,-0.612154995942,
+-0.612154998568,-0.612154999836,-0.612155000412,-0.612155000656,
+-0.61215500075,-0.612155000783,-0.612155000793,-0.612155000796,
+-0.612155000796,-0.612155000796,-0.612155000796,-0.612155000796,
+-0.612155000796,-0.612154532142,-0.612126068381,-0.612053531663,
+-0.611936921989,-0.611776239359,-0.611571483772,-0.611322655229,
+-0.61102975373,-0.610692779274,-0.610311731862,-0.609886611494,
+-0.609417418169,-0.608904151888,-0.608346812651,-0.607745400457,
+-0.607099915308,-0.606410357201,-0.605676726139,-0.60489902212,
+-0.604077245145,-0.603211395213,-0.602301472325,-0.601347476481,
+-0.60034940768,-0.599307265924,-0.59822105121,-0.597090763541,
+-0.595916402915,-0.594697969333,-0.593435462794,-0.5921288833,
+-0.590778230848,-0.589383505441,-0.587944707077,-0.586461835757,
+-0.584934891481,-0.583363874248,-0.581748784059,-0.580089620913,
+-0.578386384812,-0.576639075753,-0.574847693739,-0.573012238768,
+-0.571132710841,-0.569209109958,-0.567241436118,-0.565229689322,
+-0.56317386957,-0.561073976861,-0.558930011196,-0.556741972575,
+-0.554509860997,-0.552233676463,-0.549913418973,-0.547549088526,
+-0.545140685123,-0.542688208764,-0.540191659448,-0.537651037176,
+-0.535066341948,-0.532437573763,-0.529764732622,-0.527047818525,
+-0.524286831471,-0.521481771461,-0.518632638495,-0.515739432572,
+-0.512802153694,-0.509820801858,-0.506795377067,-0.503725879319,
+-0.500612308615,-0.497454664954,-0.494252948337,-0.491007158764,
+-0.487717296234,-0.484383360749,-0.481005352306,-0.477583270908,
+-0.474117116553,-0.470606889242,-0.467052588974,-0.463454215751,
+-0.45981176957,-0.456125250434,-0.452394658341,-0.448619993292,
+-0.444801255287,-0.440938444325,-0.437031560407,-0.433080603532,
+-0.429085573702,-0.425046470914,-0.420963295171,-0.416836046471,
+-0.412664724815,-0.408449330203,-0.404189862634,-0.399886322109,
+-0.395538708628,-0.39114702219,-0.386711262796,-0.382231430446,
+-0.377707525139,-0.373139546876,-0.368527495657,-0.363871371481,
+-0.359171174349,-0.354426904261,-0.349638561216,-0.344806145215,
+-0.339929656258,-0.335009094344,-0.330044459474,-0.325035751648,
+-0.319982970865,-0.314886117126,-0.309745190431,-0.304560190779,
+-0.299331118172,-0.294057972607,-0.288740754087,-0.28337946261,
+-0.277974098177,-0.272524660787,-0.267031150441,-0.261493567139,
+-0.255911910881,-0.250286181666,-0.244616379494,-0.238902504367,
+-0.233144556283,-0.227342535243,-0.221496441246,-0.215606274294,
+-0.209672034385,-0.203693721519,-0.197671335697,-0.191604876919,
+-0.185494345185,-0.179339740494,-0.173141062847,-0.166898312243,
+-0.160611488684,-0.154280592168,-0.147905622695,-0.141486580266,
+-0.135023464881,-0.12851627654,-0.121965015242,-0.115369680988,
+-0.108730273778,-0.102046793611,-0.0953192404881,-0.0885476144087,
+-0.0817319153731,-0.074872143381,-0.0679682984327,-0.0610203805281,
+-0.0540283896671,-0.0469923258498,-0.0399121890761,-0.0327879793461,
+-0.0256196966599,-0.0184073410172,-0.0111509124183,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357740748945,-0.104173036947,
+-0.165198099044,-0.21956747379,-0.267937074052,-0.310905237054,
+-0.349017143075,-0.382768944991,-0.412611624237,-0.438954588092,
+-0.462169022586,-0.482591014691,-0.500524456868,-0.51624374646,
+-0.529996291878,-0.542004836963,-0.552469614402,-0.561570338546,
+-0.569468047525,-0.576306804034,-0.582215263746,-0.587308119849,
+-0.59168743177,-0.595443845764,-0.598657714615,-0.601400123348,
+-0.603733827461,-0.605714109834,-0.607389562161,-0.608802796372,
+-0.609991091247,-0.610986979111,-0.611818777179,-0.612511067899,
+-0.61308513233,-0.613559340361,-0.613949501331,-0.614269178383,
+-0.614529969664,-0.614741759256,-0.614912940564,-0.615050614652,
+-0.61516076587,-0.615248416931,-0.615317765427,-0.615372303655,
+-0.615414923419,-0.615448007408,-0.615473508559,-0.615493018733,
+-0.615507827907,-0.615518974965,-0.615527291096,-0.615533436688,
+-0.61553793254,-0.615541186127,-0.615543513565,-0.615545157881,
+-0.615546304098,-0.615547091606,-0.615547624233,-0.615547978375,
+-0.615548209498,-0.615548357287,-0.615548449692,-0.61554850605,
+-0.615548539489,-0.615548558726,-0.615548569415,-0.615548575126,
+-0.615548578042,-0.615548579457,-0.615548580102,-0.615548580376,
+-0.615548580483,-0.615548580521,-0.615548580532,-0.615548580535,
+-0.615548580536,-0.615548580536,-0.615548580536,-0.615548580536,
+-0.615548580536,-0.615548109284,-0.615519487729,-0.615446548892,
+-0.615329292774,-0.615167719373,-0.614961828691,-0.614711620727,
+-0.614417095481,-0.614078252954,-0.613695093144,-0.613267616053,
+-0.612795821679,-0.612279710024,-0.611719281087,-0.611114534868,
+-0.610465471368,-0.609772090585,-0.609034392521,-0.608252377174,
+-0.607426044546,-0.606555394636,-0.605640427444,-0.604681142971,
+-0.603677541215,-0.602629622178,-0.601537385859,-0.600400832258,
+-0.599219961375,-0.59799477321,-0.596725267763,-0.595411445035,
+-0.594053305025,-0.592650847732,-0.591204073158,-0.589712981302,
+-0.588177572165,-0.586597845745,-0.584973802044,-0.58330544106,
+-0.581592762795,-0.579835767248,-0.57803445442,-0.576188824309,
+-0.574298876916,-0.572364612242,-0.570386030286,-0.568363131048,
+-0.566295914528,-0.564184380726,-0.562028529642,-0.559828361277,
+-0.557583875629,-0.5552950727,-0.552961952489,-0.550584514996,
+-0.548162760221,-0.545696688165,-0.543186298826,-0.540631592206,
+-0.538032568304,-0.53538922712,-0.532701568654,-0.529969592906,
+-0.527193299877,-0.524372689565,-0.521507761972,-0.518598517097,
+-0.51564495494,-0.512647075501,-0.50960487878,-0.506518364778,
+-0.503387533494,-0.500212384927,-0.496992919079,-0.493729135949,
+-0.490421035537,-0.487068617844,-0.483671882868,-0.480230830611,
+-0.476745461072,-0.473215774251,-0.469641770148,-0.466023448763,
+-0.462360810097,-0.458653854148,-0.454902580918,-0.451106990406,
+-0.447267082612,-0.443382857536,-0.439454315178,-0.435481455539,
+-0.431464278617,-0.427402784414,-0.423296972929,-0.419146844162,
+-0.414952398113,-0.410713634782,-0.40643055417,-0.402103156275,
+-0.397731441099,-0.393315408641,-0.388855058901,-0.384350391879,
+-0.379801407576,-0.37520810599,-0.370570487123,-0.365888550974,
+-0.361162297543,-0.35639172683,-0.351576838835,-0.346717633559,
+-0.341814111,-0.33686627116,-0.331874114038,-0.326837639634,
+-0.321756847948,-0.31663173898,-0.311462312731,-0.306248569199,
+-0.300990508386,-0.295688130291,-0.290341434914,-0.284950422255,
+-0.279515092315,-0.274035445092,-0.268511480588,-0.262943198802,
+-0.257330599733,-0.251673683384,-0.245972449752,-0.240226898838,
+-0.234437030643,-0.228602845165,-0.222724342406,-0.216801522365,
+-0.210834385042,-0.204822930438,-0.198767158551,-0.192667069383,
+-0.186522662932,-0.1803339392,-0.174100898186,-0.16782353989,
+-0.161501864313,-0.155135871453,-0.148725561312,-0.142270933889,
+-0.135771989184,-0.129228727197,-0.122641147928,-0.116009251377,
+-0.109333037545,-0.10261250643,-0.0958476580341,-0.0890384923561,
+-0.0821850093962,-0.0752872091545,-0.0683450916309,-0.0613586568254,
+-0.0543279047381,-0.0472528353689,-0.0401334487179,-0.0329697447851,
+-0.0257617235704,-0.0185093850738,-0.0112127292954,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357798572683,-0.104224088715,
+-0.165331602132,-0.219812400021,-0.268315349334,-0.31143277766,
+-0.349704775323,-0.38362321882,-0.413635530426,-0.440148188173,
+-0.463529999796,-0.484115153699,-0.50220605941,-0.518075989444,
+-0.531971534009,-0.544114879426,-0.554705920686,-0.563924218062,
+-0.57193080725,-0.578869872048,-0.584870288168,-0.59004704635,
+-0.594502562535,-0.598327882494,-0.601603787891,-0.604401810443,
+-0.606785160457,-0.608809575701,-0.610524096246,-0.611971770605,
+-0.613190298182,-0.614212612785,-0.615067411652,-0.615779634196,
+-0.616370894419,-0.616859870685,-0.617262656347,-0.617593074461,
+-0.617862959638,-0.618082409865,-0.618260010961,-0.618403036102,
+-0.61851762274,-0.618608929015,-0.618681271643,-0.618738247097,
+-0.618782837764,-0.618817504618,-0.618844267843,-0.6188647767,
+-0.618880369836,-0.618892127124,-0.618900914025,-0.618907419373,
+-0.618912187388,-0.618915644672,-0.618918122825,-0.618919877293,
+-0.618921102958,-0.618921946959,-0.618922519142,-0.618922900522,
+-0.618923150062,-0.618923310058,-0.618923410379,-0.618923471748,
+-0.618923508274,-0.618923529357,-0.618923541114,-0.618923547419,
+-0.618923550652,-0.618923552226,-0.618923552948,-0.618923553257,
+-0.618923553377,-0.61892355342,-0.618923553433,-0.618923553437,
+-0.618923553438,-0.618923553438,-0.618923553438,-0.618923553438,
+-0.618923553438,-0.618923079601,-0.618894301118,-0.618820962368,
+-0.618703063349,-0.618540604063,-0.618333584509,-0.618082004687,
+-0.617785864597,-0.61744516424,-0.617059903615,-0.616630082722,
+-0.616155701562,-0.615636760133,-0.615073258437,-0.614465196474,
+-0.613812574242,-0.613115391743,-0.612373648976,-0.611587345941,
+-0.610756482638,-0.609881059068,-0.60896107523,-0.607996531124,
+-0.606987426751,-0.605933762109,-0.6048355372,-0.603692752023,
+-0.602505406579,-0.601273500866,-0.599997034886,-0.598676008639,
+-0.597310422123,-0.59590027534,-0.594445568289,-0.59294630097,
+-0.591402473383,-0.589814085529,-0.588181137407,-0.586503629017,
+-0.584781560359,-0.583014931434,-0.581203742241,-0.57934799278,
+-0.577447683052,-0.575502813055,-0.573513382791,-0.571479392259,
+-0.56940084146,-0.567277730393,-0.565110059058,-0.562897827455,
+-0.560641035584,-0.558339683446,-0.55599377104,-0.553603298366,
+-0.551168265424,-0.548688672215,-0.546164518738,-0.543595804993,
+-0.54098253098,-0.5383246967,-0.535622302152,-0.532875347336,
+-0.530083832253,-0.527247756901,-0.524367121282,-0.521441925395,
+-0.518472169241,-0.515457852818,-0.512398976128,-0.509295539171,
+-0.506147541945,-0.502954984452,-0.499717866691,-0.496436188662,
+-0.493109950365,-0.489739151801,-0.486323792969,-0.482863873869,
+-0.479359394501,-0.475810354866,-0.472216754963,-0.468578594792,
+-0.464895874353,-0.461168593647,-0.457396752673,-0.453580351431,
+-0.449719389922,-0.445813868144,-0.441863786099,-0.437869143786,
+-0.433829941206,-0.429746178357,-0.425617855241,-0.421444971857,
+-0.417227528206,-0.412965524286,-0.408658960099,-0.404307835644,
+-0.399912150922,-0.395471905931,-0.390987100673,-0.386457735148,
+-0.381883809354,-0.377265323293,-0.372602276963,-0.367894670367,
+-0.363142503502,-0.35834577637,-0.35350448897,-0.348618641302,
+-0.343688233366,-0.338713265163,-0.333693736692,-0.328629647953,
+-0.323520998946,-0.318367789672,-0.31317002013,-0.30792769032,
+-0.302640800242,-0.297309349897,-0.291933339284,-0.286512768403,
+-0.281047637254,-0.275537945838,-0.269983694154,-0.264384882202,
+-0.258741509982,-0.253053577495,-0.24732108474,-0.241544031717,
+-0.235722418426,-0.229856244868,-0.223945511042,-0.217990216948,
+-0.211990362586,-0.205945947957,-0.19985697306,-0.193723437895,
+-0.187545342462,-0.181322686762,-0.175055470794,-0.168743694558,
+-0.162387358054,-0.155986461283,-0.149541004244,-0.143050986937,
+-0.136516409362,-0.12993727152,-0.12331357341,-0.116645315032,
+-0.109932496386,-0.103175117473,-0.0963731782916,-0.0895266788428,
+-0.0826356191261,-0.0756999991417,-0.0687198188896,-0.0616950783697,
+-0.0546257775821,-0.0475119165267,-0.0403534952036,-0.0331505136127,
+-0.025902971754,-0.0186108696276,-0.0112742072335,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.035785547291,-0.104274347405,
+-0.165463088971,-0.220053731912,-0.268688233093,-0.311953019075,
+-0.35038317558,-0.384466368355,-0.414646509537,-0.441327183041,
+-0.464874841955,-0.485621790369,-0.503868961539,-0.519888503797,
+-0.533926185106,-0.546203626686,-0.556920375683,-0.566255826374,
+-0.574370999014,-0.581410184949,-0.58750246628,-0.592763117895,
+-0.597294899372,-0.601189243843,-0.604527350567,-0.607381187639,
+-0.609814410873,-0.611883204666,-0.613637050244,-0.615119426479,
+-0.61636844814,-0.617417446159,-0.618295494269,-0.619027886084,
+-0.619636566465,-0.620140520782,-0.62055612546,-0.62089746298,
+-0.621176604319,-0.621403861594,-0.621588013515,-0.621736506056,
+-0.621855630606,-0.621950681676,-0.622026096117,-0.622085575629,
+-0.622132194232,-0.622168492226,-0.622196558046,-0.622218099302,
+-0.622234504204,-0.62224689444,-0.622256170495,-0.622263050323,
+-0.622268102171,-0.622271772298,-0.62227440825,-0.622276278286,
+-0.622277587486,-0.622278491018,-0.622279104983,-0.622279515204,
+-0.622279784295,-0.622279957285,-0.622280066055,-0.622280132788,
+-0.62228017263,-0.622280195702,-0.622280208613,-0.622280215562,
+-0.62228021914,-0.62228022089,-0.622280221696,-0.622280222042,
+-0.622280222179,-0.622280222227,-0.622280222242,-0.622280222246,
+-0.622280222247,-0.622280222247,-0.622280222247,-0.622280222247,
+-0.622280222247,-0.622279745841,-0.622250811281,-0.622177074785,
+-0.622058536353,-0.621895195985,-0.621687053682,-0.621434109442,
+-0.621136363267,-0.620793815156,-0.62040646511,-0.619974313127,
+-0.619497359209,-0.618975603354,-0.618409045564,-0.617797685838,
+-0.617141524177,-0.616440560579,-0.615694795046,-0.614904227577,
+-0.614068858172,-0.613188686831,-0.612263713554,-0.611293938342,
+-0.610279361193,-0.609219982109,-0.608115801089,-0.606966818134,
+-0.605773033242,-0.604534446415,-0.603251057652,-0.601922866952,
+-0.600549874318,-0.599132079747,-0.59766948324,-0.596162084798,
+-0.59460988442,-0.593012882106,-0.591371077856,-0.589684471671,
+-0.587953063549,-0.586176853492,-0.584355841499,-0.58249002757,
+-0.580579411705,-0.578623993905,-0.576623774169,-0.574578752496,
+-0.572488928888,-0.570354303345,-0.568174875865,-0.56595064645,
+-0.563681615098,-0.561367781811,-0.559009146588,-0.55660570943,
+-0.554157470335,-0.551664429305,-0.549126586338,-0.546543941436,
+-0.543916494599,-0.541244245825,-0.538527195115,-0.53576534247,
+-0.532958687889,-0.530107231372,-0.527210972919,-0.524269912531,
+-0.521284050206,-0.518253385946,-0.51517791975,-0.512057651618,
+-0.508892581551,-0.505682709547,-0.502428035608,-0.499128559733,
+-0.495784281922,-0.492395202175,-0.488961320492,-0.485482636874,
+-0.48195915132,-0.478390863829,-0.474777774404,-0.471119883042,
+-0.467417189744,-0.463669694511,-0.459877397342,-0.456040298237,
+-0.452158397196,-0.448231694219,-0.444260189307,-0.440243882459,
+-0.436182773674,-0.432076862955,-0.427926150299,-0.423730635707,
+-0.41949031918,-0.415205200717,-0.410875280318,-0.406500557983,
+-0.402081033712,-0.397616707506,-0.393107579363,-0.388553649285,
+-0.383954917271,-0.379311383321,-0.374623047436,-0.369889909614,
+-0.365111969857,-0.360289228164,-0.355421684535,-0.35050933897,
+-0.34555219147,-0.340550242034,-0.335503490661,-0.330411937353,
+-0.32527558211,-0.32009442493,-0.314868465815,-0.309597704763,
+-0.304282141776,-0.298921776853,-0.293516609995,-0.2880666412,
+-0.28257187047,-0.277032297803,-0.271447923201,-0.265818746664,
+-0.26014476819,-0.25442598778,-0.248662405435,-0.242854021154,
+-0.237000834937,-0.231102846784,-0.225160056696,-0.219172464671,
+-0.213140070711,-0.207062874815,-0.200940876983,-0.194774077215,
+-0.188562475512,-0.182306071873,-0.176004866297,-0.169658858786,
+-0.16326804934,-0.156832437957,-0.150352024639,-0.143826809384,
+-0.137256792194,-0.130641973068,-0.123982352007,-0.117277929009,
+-0.110528704076,-0.103734677206,-0.0968958484015,-0.0900122176606,
+-0.083083784984,-0.0761105503715,-0.0690925138232,-0.0620296753391,
+-0.0549220349192,-0.0477695925634,-0.0405723482718,-0.0333303020444,
+-0.0260434538812,-0.0187118037822,-0.0113353517473,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357911474013,-0.104323833503,
+-0.16559261048,-0.220291558174,-0.269055855315,-0.312466133124,
+-0.351052555958,-0.385298642968,-0.415644844207,-0.442491884064,
+-0.466203884405,-0.487111279272,-0.505513532514,-0.521681669246,
+-0.535860631558,-0.548271468452,-0.559113369553,-0.568565551711,
+-0.576789007188,-0.583928121769,-0.590112170685,-0.59545669993,
+-0.600064800152,-0.604028279957,-0.607428745143,-0.610338590037,
+-0.612821906811,-0.614935318331,-0.616728739826,-0.618246074355,
+-0.619525846807,-0.620601780877,-0.621503323251,-0.622256118947,
+-0.622882441566,-0.623401581962,-0.623830198637,-0.624182632961,
+-0.624471192124,-0.624706402542,-0.624897236246,-0.625051312645,
+-0.625175077857,-0.625273963671,-0.625352528049,-0.625414578938,
+-0.625463283023,-0.625501260947,-0.625530670381,-0.625553278228,
+-0.625570523144,-0.625583569448,-0.6255933534,-0.62560062275,
+-0.625605970376,-0.625609862726,-0.625612663756,-0.625614654938,
+-0.625616051892,-0.625617018102,-0.625617676157,-0.625618116885,
+-0.625618406708,-0.625618593513,-0.625618711291,-0.62561878376,
+-0.625618827158,-0.625618852371,-0.625618866528,-0.625618874176,
+-0.625618878129,-0.625618880071,-0.625618880969,-0.625618881357,
+-0.62561888151,-0.625618881565,-0.625618881583,-0.625618881587,
+-0.625618881588,-0.625618881588,-0.625618881588,-0.625618881588,
+-0.625618881588,-0.625618402626,-0.625589312826,-0.625515180719,
+-0.625396006305,-0.625231789583,-0.625022530554,-0.624768229217,
+-0.624468885574,-0.624124499623,-0.623735071365,-0.623300600799,
+-0.622821087926,-0.622296532746,-0.621726935259,-0.621112295465,
+-0.620452613363,-0.619747888954,-0.618998122237,-0.618203313214,
+-0.617363461883,-0.616478568244,-0.615548632299,-0.614573654046,
+-0.613553633486,-0.612488570619,-0.611378465444,-0.610223317962,
+-0.609023128173,-0.607777896077,-0.606487621673,-0.605152304962,
+-0.603771945944,-0.602346544619,-0.600876100986,-0.599360615046,
+-0.597800086798,-0.596194516244,-0.594543903382,-0.592848248213,
+-0.591107550736,-0.589321810953,-0.587491028862,-0.585615204463,
+-0.583694337758,-0.581728428745,-0.579717477425,-0.577661483798,
+-0.575560447863,-0.573414369621,-0.571223249072,-0.568987086216,
+-0.566705881052,-0.564379633581,-0.562008343803,-0.559592011717,
+-0.557130637324,-0.554624220624,-0.552072761617,-0.549476260302,
+-0.54683471668,-0.544148130751,-0.541416502515,-0.538639831971,
+-0.53581811912,-0.532951363962,-0.530039566496,-0.527082726723,
+-0.524080844643,-0.521033920256,-0.517941953561,-0.514804944559,
+-0.51162289325,-0.508395799633,-0.50512366371,-0.501806485479,
+-0.49844426494,-0.495037002095,-0.491584696942,-0.488087349482,
+-0.484544959714,-0.48095752764,-0.477325053258,-0.473647536569,
+-0.469924977572,-0.466157376268,-0.462344732657,-0.458487046739,
+-0.454584318513,-0.45063654798,-0.44664373514,-0.442605879993,
+-0.438522982538,-0.434395042776,-0.430222060707,-0.42600403633,
+-0.421740969647,-0.417432860656,-0.413079709357,-0.408681515752,
+-0.404238279839,-0.399750001619,-0.395216681091,-0.390638318256,
+-0.386014913114,-0.381346465665,-0.376632975909,-0.371874443845,
+-0.367070869474,-0.362222252795,-0.35732859381,-0.352389892517,
+-0.347406148917,-0.342377363009,-0.337303534794,-0.332184664272,
+-0.327020751443,-0.321811796307,-0.316557798863,-0.311258759112,
+-0.305914677053,-0.300525552688,-0.295091386015,-0.289612177034,
+-0.284087925747,-0.278518632152,-0.27290429625,-0.267244918041,
+-0.261540497524,-0.2557910347,-0.249996529569,-0.244156982131,
+-0.238272392385,-0.232342760332,-0.226368085972,-0.220348369304,
+-0.21428361033,-0.208173809048,-0.202018965458,-0.195819079562,
+-0.189574151358,-0.183284180847,-0.176949168028,-0.170569112903,
+-0.16414401547,-0.157673875729,-0.151158693682,-0.144598469327,
+-0.137993202665,-0.131342893696,-0.124647542419,-0.117907148835,
+-0.111121712944,-0.104291234745,-0.0974157142398,-0.0904951514268,
+-0.0835295463065,-0.076518898879,-0.0694632091441,-0.062362477102,
+-0.0552167027527,-0.048025886096,-0.0407900271321,-0.0335091258609,
+-0.0261831822825,-0.0188121963967,-0.0113961682037,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0357966599484,-0.104372566756,
+-0.165720215784,-0.22052596445,-0.269418341578,-0.312972285929,
+-0.351713121674,-0.386120284089,-0.416630808265,-0.443642593115,
+-0.467517452476,-0.488583964618,-0.50714013103,-0.523455854884,
+-0.537775249157,-0.550318783949,-0.561285282158,-0.570853772227,
+-0.579185206334,-0.586424052002,-0.592699764726,-0.598128148913,
+-0.602812614016,-0.606845332492,-0.610308305834,-0.613274344646,
+-0.615807968435,-0.617966230491,-0.619799472966,-0.621352016975,
+-0.622662792305,-0.623765911059,-0.624691189316,-0.625464620675,
+-0.626108805318,-0.626643338019,-0.627085158313,-0.627448865868,
+-0.627747003885,-0.627990313194,-0.628187959529,-0.628347736325,
+-0.62847624518,-0.628579056028,-0.62866084889,-0.628725538946,
+-0.628776386554,-0.628816093698,-0.628846888256,-0.628870597352,
+-0.628888710965,-0.628902436857,-0.628912747806,-0.628920422037,
+-0.62892607766,-0.628930201847,-0.628933175431,-0.628935293502,
+-0.628936782561,-0.628937814698,-0.628938519236,-0.628938992203,
+-0.628939303989,-0.628939505467,-0.628939632839,-0.628939711434,
+-0.628939758642,-0.628939786155,-0.628939801656,-0.62893981006,
+-0.628939814421,-0.628939816571,-0.628939817571,-0.628939818004,
+-0.628939818177,-0.628939818239,-0.628939818259,-0.628939818264,
+-0.628939818265,-0.628939818266,-0.628939818266,-0.628939818266,
+-0.628939818266,-0.628939336761,-0.628910092545,-0.628835566927,
+-0.628715759906,-0.628550671482,-0.628340301655,-0.628084650426,
+-0.627783717793,-0.627437503758,-0.62704600832,-0.62660923148,
+-0.626127173237,-0.625599833591,-0.625027212542,-0.62440931009,
+-0.623746126236,-0.623037660979,-0.622283914319,-0.621484886256,
+-0.620640576791,-0.619750985923,-0.618816113652,-0.617835959978,
+-0.616810524902,-0.615739808423,-0.614623810541,-0.613462531256,
+-0.612255970568,-0.611004128478,-0.609707004985,-0.60836460009,
+-0.606976913791,-0.60554394609,-0.604065696986,-0.602542166479,
+-0.600973354569,-0.599359261257,-0.597699886542,-0.595995230424,
+-0.594245292904,-0.59245007398,-0.590609573654,-0.588723791925,
+-0.586792728794,-0.584816384259,-0.582794758322,-0.580727850982,
+-0.57861566224,-0.576458192094,-0.574255440546,-0.572007407595,
+-0.569714093241,-0.567375497485,-0.564991620326,-0.562562461764,
+-0.560088021799,-0.557568300431,-0.555003297661,-0.552393013488,
+-0.549737447912,-0.547036600934,-0.544290472553,-0.541499062769,
+-0.538662371582,-0.535780398992,-0.532853145,-0.529880609605,
+-0.526862792807,-0.523799694606,-0.520691315003,-0.517537653997,
+-0.514338711588,-0.511094487776,-0.507804982562,-0.504470195944,
+-0.501090127925,-0.497664778502,-0.494194147676,-0.490678235448,
+-0.487117041817,-0.483510566783,-0.479858810347,-0.476161772508,
+-0.472419453266,-0.468631852621,-0.464798970573,-0.460920807123,
+-0.45699736227,-0.453028636014,-0.449014628356,-0.444955339294,
+-0.44085076883,-0.436700916963,-0.432505783694,-0.428265369021,
+-0.423979672946,-0.419648695468,-0.415272436587,-0.410850896304,
+-0.406384074618,-0.401871971529,-0.397314587037,-0.392711921143,
+-0.388063973846,-0.383370745146,-0.378632235043,-0.373848443537,
+-0.369019370629,-0.364145016318,-0.359225380604,-0.354260463488,
+-0.349250264968,-0.344194785046,-0.339094023721,-0.333947980994,
+-0.328756656863,-0.32352005133,-0.318238164395,-0.312910996056,
+-0.307538546315,-0.30212081517,-0.296657802623,-0.291149508674,
+-0.285595933321,-0.279997076566,-0.274352938408,-0.268663518848,
+-0.262928817884,-0.257148835518,-0.251323571749,-0.245453026577,
+-0.239537200003,-0.233576092025,-0.227569702645,-0.221518031862,
+-0.215421079677,-0.209278846089,-0.203091331098,-0.196858534704,
+-0.190580456907,-0.184257097708,-0.177888457106,-0.171474535101,
+-0.165015331693,-0.158510846883,-0.15196108067,-0.145366033054,
+-0.138725704035,-0.132040093614,-0.125309201789,-0.118533028562,
+-0.111711573933,-0.1048448379,-0.0979328204651,-0.0909755216271,
+-0.0839729413863,-0.0769250797428,-0.0698319366966,-0.0626935122475,
+-0.0555098063957,-0.0482808191412,-0.0410065504839,-0.0336870004238,
+-0.026322168961,-0.0189120560954,-0.011456661827,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0358020871964,-0.104420566212,
+-0.16584595229,-0.220757033453,-0.269775813248,-0.313471638147,
+-0.352365071333,-0.386931525532,-0.417604667084,-0.444779602943,
+-0.468815861875,-0.490040180654,-0.508749105619,-0.525211419563,
+-0.539670403475,-0.552345942296,-0.563436483421,-0.57312085636,
+-0.58155996154,-0.588898335931,-0.595265602806,-0.600777812619,
+-0.605538681669,-0.609640734896,-0.613166358859,-0.616188770656,
+-0.618772908249,-0.620976247411,-0.622849550209,-0.624437549732,
+-0.625779575471,-0.62691012358,-0.62785937596,-0.628653671944,
+-0.629315936101,-0.629866065516,-0.63032127967,-0.630696435889,
+-0.631004313129,-0.631255866701,-0.631460456378,-0.631626050163,
+-0.631759405847,-0.631866232339,-0.631951332629,-0.632018730095,
+-0.632071779746,-0.632113265886,-0.632145487557,-0.63217033302,
+-0.632189344442,-0.632203773835,-0.632214631238,-0.632222726022,
+-0.632228702134,-0.632233068008,-0.63223622182,-0.632238472685,
+-0.632240058335,-0.632241159759,-0.632241913256,-0.632242420258,
+-0.632242755289,-0.632242972335,-0.632243109914,-0.632243195044,
+-0.632243246329,-0.632243276311,-0.63224329326,-0.632243302481,
+-0.632243307284,-0.632243309662,-0.632243310773,-0.632243311256,
+-0.63224331145,-0.63224331152,-0.632243311543,-0.632243311549,
+-0.63224331155,-0.63224331155,-0.63224331155,-0.63224331155,
+-0.63224331155,-0.632242827517,-0.632213429696,-0.632138512634,
+-0.632018076328,-0.631852120781,-0.631640645991,-0.631383651959,
+-0.631081138684,-0.630733106167,-0.630339554408,-0.629900483406,
+-0.629415893162,-0.628885783675,-0.628310154946,-0.627689006975,
+-0.627022339761,-0.626310153305,-0.625552447607,-0.624749222666,
+-0.623900478483,-0.623006215057,-0.622066432389,-0.621081130479,
+-0.620050309326,-0.618973968931,-0.617852109293,-0.616684730413,
+-0.615471832291,-0.614213414926,-0.612909478319,-0.61156002247,
+-0.610165047378,-0.608724553043,-0.607238539467,-0.605707006648,
+-0.604129954586,-0.602507383283,-0.600839292737,-0.599125682948,
+-0.597366553917,-0.595561905644,-0.593711738128,-0.59181605137,
+-0.589874845369,-0.587888120127,-0.585855875641,-0.583778111914,
+-0.581654828944,-0.579486026731,-0.577271705277,-0.575011864579,
+-0.57270650464,-0.570355625458,-0.567959227034,-0.565517309367,
+-0.563029872458,-0.560496916306,-0.557918440913,-0.555294446276,
+-0.552624932398,-0.549909899277,-0.547149346913,-0.544343275308,
+-0.541491684459,-0.538594574369,-0.535651945036,-0.532663796461,
+-0.529630128643,-0.526550941583,-0.523426235281,-0.520256009736,
+-0.517040264948,-0.513779000919,-0.510472217647,-0.507119915133,
+-0.503722093376,-0.500278752377,-0.496789892135,-0.493255512651,
+-0.489675613925,-0.486050195956,-0.482379258745,-0.478662802292,
+-0.474900826596,-0.471093331658,-0.467240317477,-0.463341784054,
+-0.459397731389,-0.455408159481,-0.451373068331,-0.447292457938,
+-0.443166328303,-0.438994679426,-0.434777511306,-0.430514823944,
+-0.42620661734,-0.421852891493,-0.417453646404,-0.413008882072,
+-0.408518598498,-0.403982795682,-0.399401473623,-0.394774632322,
+-0.390102271779,-0.385384391993,-0.380620992964,-0.375812074694,
+-0.370957637181,-0.366057680425,-0.361112204427,-0.356121209187,
+-0.351084694705,-0.34600266098,-0.340875108012,-0.335702035803,
+-0.33048344435,-0.325219333656,-0.319909703719,-0.31455455454,
+-0.309153886118,-0.303707698454,-0.298215991548,-0.292678765399,
+-0.287096020008,-0.281467755374,-0.275793971498,-0.27007466838,
+-0.264309846019,-0.258499504416,-0.25264364357,-0.246742263482,
+-0.240795364152,-0.23480294558,-0.228765007765,-0.222681550707,
+-0.216552574407,-0.210378078865,-0.204158064081,-0.197892530054,
+-0.191581476784,-0.185224904272,-0.178822812518,-0.172375201522,
+-0.165882071283,-0.159343421802,-0.152759253078,-0.146129565112,
+-0.139454357904,-0.132733631453,-0.12596738576,-0.119155620824,
+-0.112298336646,-0.105395533226,-0.0984472105631,-0.091453368658,
+-0.0844140075105,-0.0773291271206,-0.0701987274884,-0.0630228086137,
+-0.0558013704967,-0.0485344131373,-0.0412219365355,-0.0338639406913,
+-0.0264604256047,-0.0190113912758,-0.0115168377045,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0358074313282,-0.104467850245,
+-0.165969865772,-0.22098484509,-0.270128387656,-0.313964345206,
+-0.353008597207,-0.387732593812,-0.418566677924,-0.445903197532,
+-0.47009941906,-0.49148025204,-0.510340795027,-0.526948712266,
+-0.541546450239,-0.554353302859,-0.565567333676,-0.575367163162,
+-0.583913628743,-0.591351324944,-0.597810030684,-0.603406030436,
+-0.608243335669,-0.612414812689,-0.616003222709,-0.619082179706,
+-0.621717031361,-0.623965668085,-0.625879264934,-0.627502960933,
+-0.628876480111,-0.630034698322,-0.631008159711,-0.63182354647,
+-0.632504105334,-0.633070034048,-0.633538830907,-0.633925610205,
+-0.634243386349,-0.634503329153,-0.634714992716,-0.634886520112,
+-0.635024825991,-0.63513575903,-0.635224246071,-0.635294419621,
+-0.635349730299,-0.635393045687,-0.635426736928,-0.635452754327,
+-0.635472693092,-0.635487850289,-0.635499273954,-0.635507805277,
+-0.635514114644,-0.635518732287,-0.6355220742,-0.635524463931,
+-0.635526150791,-0.63552732497,-0.63552812999,-0.635528672892,
+-0.635529032497,-0.635529266045,-0.635529414471,-0.635529506567,
+-0.635529562208,-0.635529594838,-0.635529613343,-0.635529623447,
+-0.635529628728,-0.635529631355,-0.635529632586,-0.635529633125,
+-0.635529633342,-0.635529633421,-0.635529633447,-0.635529633454,
+-0.635529633455,-0.635529633455,-0.635529633455,-0.635529633455,
+-0.635529633455,-0.635529146906,-0.635499596279,-0.635424289807,
+-0.635303227489,-0.635136409325,-0.634923835316,-0.634665505461,
+-0.63436141976,-0.634011578213,-0.633615980821,-0.633174627583,
+-0.632687518499,-0.632154653569,-0.631576032794,-0.630951656173,
+-0.630281523706,-0.629565635394,-0.628803991235,-0.627996591231,
+-0.627143435382,-0.626244523686,-0.625299856145,-0.624309432758,
+-0.623273253526,-0.622191318447,-0.621063627523,-0.619890180753,
+-0.618670978138,-0.617406019677,-0.61609530537,-0.614738835217,
+-0.613336609218,-0.611888627374,-0.610394889684,-0.608855396149,
+-0.607270146767,-0.60563914154,-0.603962380467,-0.602239863549,
+-0.600471590785,-0.598657562174,-0.596797777719,-0.594892237417,
+-0.59294094127,-0.590943889277,-0.588901081438,-0.586812517754,
+-0.584678198224,-0.582498122848,-0.580272291626,-0.578000704559,
+-0.575683361646,-0.573320262887,-0.570911408283,-0.568456797832,
+-0.565956431536,-0.563410309395,-0.560818431407,-0.558180797574,
+-0.555497407895,-0.55276826237,-0.549993361,-0.547172703784,
+-0.544306290722,-0.541394121814,-0.538436197061,-0.535432516462,
+-0.532383080017,-0.529287887727,-0.526146939591,-0.522960235609,
+-0.519727775781,-0.516449560108,-0.513125588588,-0.509755861224,
+-0.506340378013,-0.502879138957,-0.499372144055,-0.495819393307,
+-0.492220886713,-0.488576624274,-0.484886605989,-0.481150831858,
+-0.477369301882,-0.47354201606,-0.469668974392,-0.465750176878,
+-0.461785623519,-0.457775314314,-0.453719249263,-0.449617428366,
+-0.445469851624,-0.441276519036,-0.437037430602,-0.432752586323,
+-0.428421986197,-0.424045630226,-0.41962351841,-0.415155650747,
+-0.410642027239,-0.406082647885,-0.401477512686,-0.39682662164,
+-0.392129974749,-0.387387572012,-0.38259941343,-0.377765499002,
+-0.372885828728,-0.367960402608,-0.362989220642,-0.357972282831,
+-0.352909589174,-0.347801139672,-0.342646934323,-0.337446973129,
+-0.332201256089,-0.326909783204,-0.321572554473,-0.316189569896,
+-0.310760829473,-0.305286333204,-0.29976608109,-0.29420007313,
+-0.288588309324,-0.282930789673,-0.277227514176,-0.271478482833,
+-0.265683695644,-0.25984315261,-0.25395685373,-0.248024799004,
+-0.242046988433,-0.236023422015,-0.229954099752,-0.223839021644,
+-0.217678187689,-0.211471597889,-0.205219252243,-0.198921150751,
+-0.192577293414,-0.186187680231,-0.179752311202,-0.173271186328,
+-0.166744305607,-0.160171669041,-0.15355327663,-0.146889128372,
+-0.140179224269,-0.13342356432,-0.126622148525,-0.119774976885,
+-0.112882049399,-0.105943366067,-0.0989589268892,-0.0919287318658,
+-0.0848527809968,-0.077731074282,-0.0705636117214,-0.0633503933152,
+-0.0560914190632,-0.0487866889655,-0.041436203022,-0.0340399612328,
+-0.0265979635979,-0.0191102101173,-0.0115767007909,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0358126944491,-0.10451443659,
+-0.166092000432,-0.221209476589,-0.270476178277,-0.314450557524,
+-0.353643885496,-0.388523708435,-0.419517090251,-0.447013652448,
+-0.471368421592,-0.492904494212,-0.511915528576,-0.528668072467,
+-0.543403735674,-0.556341215596,-0.567678183998,-0.577593042623,
+-0.586246555044,-0.593783361828,-0.600333385765,-0.606013133637,
+-0.610926900693,-0.61516788373,-0.618819208405,-0.621954876142,
+-0.624640635729,-0.626934784484,-0.628888903597,-0.630548532045,
+-0.631953783251,-0.633139908428,-0.63413781038,-0.634974511269,
+-0.635673577732,-0.636255506497,-0.636738073489,-0.637136649243,
+-0.637464483263,-0.637732959841,-0.637951827641,-0.638129405269,
+-0.638272764862,-0.638387895625,-0.638479849097,-0.63855286782,
+-0.638610498956,-0.638655694303,-0.638690898031,-0.638718123375,
+-0.638739019437,-0.638754929125,-0.638766939209,-0.638775923366,
+-0.638782579026,-0.638787458756,-0.638790996841,-0.638793531675,
+-0.638795324503,-0.638796575013,-0.638797434206,-0.638798014939,
+-0.638798400504,-0.638798651526,-0.638798811468,-0.638798910978,
+-0.63879897127,-0.638799006736,-0.638799026914,-0.638799037968,
+-0.638799043768,-0.638799046664,-0.638799048027,-0.638799048627,
+-0.63879904887,-0.638799048959,-0.638799048987,-0.638799048995,
+-0.638799048997,-0.638799048997,-0.638799048997,-0.638799048997,
+-0.638799048997,-0.638798559945,-0.638768857298,-0.63869316342,
+-0.638571478309,-0.638403801967,-0.638190134393,-0.637930475587,
+-0.637624825549,-0.637273184279,-0.636875551777,-0.636431928044,
+-0.635942313078,-0.635406706881,-0.634825109452,-0.634197520791,
+-0.633523940898,-0.632804369773,-0.632038807416,-0.631227253828,
+-0.630369709007,-0.629466172955,-0.628516645671,-0.627521127155,
+-0.626479617407,-0.625392116427,-0.624258624215,-0.623079140771,
+-0.621853666096,-0.620582200188,-0.619264743049,-0.617901294678,
+-0.616491855075,-0.61503642424,-0.613535002173,-0.611987588875,
+-0.610394184344,-0.608754788582,-0.607069401587,-0.605338023361,
+-0.603560653903,-0.601737293213,-0.599867941291,-0.597952598138,
+-0.595991263752,-0.593983938134,-0.591930621285,-0.589831313204,
+-0.587686013891,-0.585494723346,-0.583257441569,-0.58097416856,
+-0.578644904319,-0.576269648847,-0.573848402143,-0.571381164206,
+-0.568867935038,-0.566308714638,-0.563703503006,-0.561052300142,
+-0.558355106047,-0.555611920719,-0.55282274416,-0.549987576368,
+-0.547106417345,-0.54417926709,-0.541206125603,-0.538186992884,
+-0.535121868934,-0.532010753751,-0.528853647337,-0.52565054969,
+-0.522401460812,-0.519106380702,-0.51576530936,-0.512378246786,
+-0.50894519298,-0.505466147943,-0.501941111673,-0.498370084172,
+-0.494753065438,-0.491090055473,-0.487381054276,-0.483626061847,
+-0.479825078187,-0.475978103294,-0.472085137169,-0.468146179813,
+-0.464161231225,-0.460130291404,-0.456053360352,-0.451930438068,
+-0.447761524553,-0.443546619805,-0.439285723825,-0.434978836614,
+-0.43062595817,-0.426227088495,-0.421782227588,-0.417291375449,
+-0.412754532078,-0.408171697475,-0.403542871641,-0.398868054574,
+-0.394147246276,-0.389380446746,-0.384567655983,-0.379708873989,
+-0.374804100764,-0.369853336306,-0.364856580616,-0.359813833695,
+-0.354725095541,-0.349590366156,-0.344409645539,-0.339182933689,
+-0.333910230609,-0.328591536296,-0.323226850751,-0.317816173974,
+-0.312359505966,-0.306856846726,-0.301308196253,-0.295713554549,
+-0.290072921613,-0.284386297445,-0.278653682046,-0.272875075414,
+-0.26705047755,-0.261179888455,-0.255263308128,-0.249300736569,
+-0.243292173778,-0.237237619755,-0.2311370745,-0.224990538013,
+-0.218798010295,-0.212559491344,-0.206274981162,-0.199944479748,
+-0.193567987102,-0.187145503224,-0.180677028114,-0.174162561772,
+-0.167602104199,-0.160995655393,-0.154343215356,-0.147644784087,
+-0.140900361585,-0.134109947852,-0.127273542888,-0.120391146691,
+-0.113462759262,-0.106488380602,-0.0994680107093,-0.092401649585,
+-0.0852892972288,-0.0781309536408,-0.0709266188209,-0.0636762927691,
+-0.0563799754854,-0.0490376669699,-0.0416493672225,-0.0342150762431,
+-0.0267347940319,-0.0192085205889,-0.0116362559139,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0358178785904,-0.104560342369,
+-0.16621239898,-0.221431002612,-0.270819294886,-0.314930420713,
+-0.354271116573,-0.389305082178,-0.420456146045,-0.448111235157,
+-0.472623158473,-0.494313213718,-0.513473626503,-0.530369830471,
+-0.545242596842,-0.558310021384,-0.569769376523,-0.579798835974,
+-0.588559078997,-0.596194781056,-0.602835997379,-0.608599445655,
+-0.613589693798,-0.617900258463,-0.621614619751,-0.624807157254,
+-0.627544012404,-0.629883881795,-0.631878745971,-0.633574537928,
+-0.635011755367,-0.636226020537,-0.637248591302,-0.638106826884,
+-0.638824611544,-0.639422739267,-0.639919262396,-0.640329806922,
+-0.640667857057,-0.640945011496,-0.641171213666,-0.641354958122,
+-0.64150347508,-0.641622894993,-0.641718394913,-0.641794328294,
+-0.641854339752,-0.641901466219,-0.641938225796,-0.64196669553,
+-0.641988579251,-0.642005266499,-0.642017883504,-0.642027337098,
+-0.64203435236,-0.64203950473,-0.642043247257,-0.642045933597,
+-0.642047837287,-0.642049167817,-0.642050083921,-0.642050704487,
+-0.642051117448,-0.642051386955,-0.642051559111,-0.642051666505,
+-0.642051731759,-0.642051770257,-0.64205179223,-0.642051804309,
+-0.642051810669,-0.642051813857,-0.642051815364,-0.64205181603,
+-0.642051816301,-0.642051816401,-0.642051816433,-0.642051816442,
+-0.642051816444,-0.642051816445,-0.642051816445,-0.642051816445,
+-0.642051816445,-0.642051324902,-0.642021471009,-0.641945391697,
+-0.641823086966,-0.641654556815,-0.641439801244,-0.641178820255,
+-0.640871613846,-0.640518182017,-0.640118524769,-0.639672642101,
+-0.639180534014,-0.638642200508,-0.638057641582,-0.637426857237,
+-0.636749847473,-0.636026612289,-0.635257151685,-0.634441465662,
+-0.63357955422,-0.632671417358,-0.631717055077,-0.630716467376,
+-0.629669654256,-0.628576615717,-0.627437351758,-0.62625186238,
+-0.625020147582,-0.623742207365,-0.622418041728,-0.621047650672,
+-0.619631034197,-0.618168192302,-0.616659124988,-0.615103832254,
+-0.613502314101,-0.611854570528,-0.610160601536,-0.608420407125,
+-0.606633987294,-0.604801342044,-0.602922471374,-0.600997375285,
+-0.599026053777,-0.597008506849,-0.594944734501,-0.592834736734,
+-0.590678513548,-0.588476064942,-0.586227390917,-0.583932491473,
+-0.581591366609,-0.579204016325,-0.576770440623,-0.5742906395,
+-0.571764612959,-0.569192360998,-0.566573883617,-0.563909180817,
+-0.561198252598,-0.558441098959,-0.555637719901,-0.552788115423,
+-0.549892285526,-0.54695023021,-0.543961949474,-0.540927443318,
+-0.537846711744,-0.534719754749,-0.531546572336,-0.528327164503,
+-0.52506153125,-0.521749672578,-0.518391588487,-0.514987278976,
+-0.511536744046,-0.508039983696,-0.504496997927,-0.500907786739,
+-0.497272350131,-0.493590688104,-0.489862800657,-0.486088687791,
+-0.482268349505,-0.4784017858,-0.474488996676,-0.470529982132,
+-0.466524742168,-0.462473276786,-0.458375585984,-0.454231669762,
+-0.450041528121,-0.445805161061,-0.441522568581,-0.437193750681,
+-0.432818707363,-0.428397438625,-0.423929944467,-0.41941622489,
+-0.414856279894,-0.410250109478,-0.405597713642,-0.400899092388,
+-0.396154245714,-0.39136317362,-0.386525876107,-0.381642353175,
+-0.376712604823,-0.371736631052,-0.366714431861,-0.361646007251,
+-0.356531357221,-0.351370481772,-0.346163380904,-0.340910054616,
+-0.335610502909,-0.330264725782,-0.324872723236,-0.319434495271,
+-0.313950041886,-0.308419363081,-0.302842458857,-0.297219329214,
+-0.291549974152,-0.285834393669,-0.280072587768,-0.274264556447,
+-0.268410299707,-0.262509817547,-0.256563109968,-0.250570176969,
+-0.244531018551,-0.238445634713,-0.232314025457,-0.22613619078,
+-0.219912130684,-0.213641845169,-0.207325334235,-0.200962597881,
+-0.194553636107,-0.188098448914,-0.181597036302,-0.17504939827,
+-0.168455534819,-0.161815445948,-0.155129131658,-0.148396591949,
+-0.14161782682,-0.134792836272,-0.127921620304,-0.121004178917,
+-0.11404051211,-0.107030619884,-0.0999745022386,-0.0928721591738,
+-0.0857235906895,-0.0785287967857,-0.0712877774626,-0.06400053272,
+-0.056667062558,-0.0492873669766,-0.0418614459757,-0.0343892995554,
+-0.0268709277157,-0.0193063304566,-0.011695507778,0.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,10.0,
+10.0,10.0,10.0,9.96668468745,
+9.89032259655,9.81396050565,9.73759841475,9.66123632385,
+9.58487423295,9.50851214205,9.43215005115,9.35578796025,
+9.27942586935,9.20306377845,9.12670168755,9.05033959665,
+8.97397750575,8.89761541485,8.82125332395,8.74489123305,
+8.66852914215,8.59216705125,8.51580496035,8.43944286945,
+8.36308077855,8.28671868765,8.21035659675,8.13399450585,
+8.05763241495,7.98127032405,7.90490823315,7.82854614225,
+7.75218405135,7.67582196045,7.59945986955,7.52309777865,
+7.44673568775,7.37037359685,7.29401150595,7.21764941505,
+7.14128732415,7.06492523325,6.98856314235,6.91220105145,
+6.83583896055,6.75947686965,6.68311477875,6.60675268785,
+6.53039059695,6.45402850605,6.37766641515,6.30130432425,
+6.22494223335,6.14858014245,6.07221805155,5.99585596065,
+5.91949386975,5.84313177885,5.76676968795,5.69040759705,
+5.61404550615,5.53768341525,5.46132132435,5.38495923345,
+5.30859714255,5.23223505165,5.15587296075,5.07951086985,
+5.00314877895,4.92678668805,4.85042459715,4.77406250625,
+4.69770041535,4.62133832445,4.54497623355,4.46861414265,
+4.39225205175,4.31588996085,4.23952786995,4.16316577905,
+4.08680368815,4.01044159725,3.93407950635,3.85771741545,
+3.78135532455,3.70499323365,3.62863114275,3.55226905185,
+3.47590696095,3.39954487005,3.32318277915,3.24682068825,
+3.17045859735,3.09409650645,3.01773441555,2.94137232465,
+2.86501023375,2.78864814285,2.71228605195,2.63592396105,
+2.55956187015,2.48319977925,2.40683768835,2.33047559745,
+2.25411350655,2.17775141565,2.10138932475,2.02502723385,
+1.94866514295,1.87230305205,1.79594096115,1.71957887025,
+1.64321677935,1.56685468845,1.49049259755,1.41413050665,
+1.33776841575,1.26140632485,1.18504423395,1.10868214305,
+1.03232005215,0.95595796125,0.87959587035,0.80323377945,
+0.72687168855,0.65050959765,0.57414750675,0.49778541585,
+0.42142332495,0.34506123405,0.26869914315,0.19233705225,
+0.11597496135,0.03961287045,-0.0358229857129,-0.10460558412,
+-0.16633110269,-0.221649495363,-0.271157843718,-0.315404075782,
+-0.35489046522,-0.390076921359,-0.421384080089,-0.449196205338,
+-0.473863910463,-0.495706708553,-0.515015400295,-0.53205430774,
+-0.547063361963,-0.560260052331,-0.571841244747,-0.581984875983,
+-0.590851530899,-0.598585909063,-0.605318187042,-0.611165282334,
+-0.616232024669,-0.620612240166,-0.624389753561,-0.627639313515,
+-0.630427445763,-0.632813238648,-0.634849065369,-0.63658124706,
+-0.638050660618,-0.639293295006,-0.640340759555,-0.641220747624,
+-0.641957458782,-0.642571982523,-0.643082646346,-0.643505330886,
+-0.643853754619,-0.644139730527,-0.644373396958,-0.644563424789,
+-0.64471720287,-0.644841003586,-0.644940130289,-0.645019048193,
+-0.645081500253,-0.645130609435,-0.64516896866,-0.645198719653,
+-0.6452216218,-0.645239112052,-0.645252356823,-0.645262296766,
+-0.645269685209,-0.645275121003,-0.645279076443,-0.645281920859,
+-0.645283940443,-0.645285354795,-0.645286330638,-0.645286993106,
+-0.645287434953,-0.645287723998,-0.645287909095,-0.645288024867,
+-0.645288095406,-0.645288137145,-0.645288161042,-0.645288174221,
+-0.645288181187,-0.645288184691,-0.645288186355,-0.645288187093,
+-0.645288187395,-0.645288187507,-0.645288187544,-0.645288187554,
+-0.645288187556,-0.645288187556,-0.645288187557,-0.645288187557,
+-0.645288187557,-0.645287693536,-0.64525768916,-0.645181226357,
+-0.645058305128,-0.644888925472,-0.64467308739,-0.644410790881,
+-0.644102035946,-0.643746822584,-0.643345150796,-0.642897020581,
+-0.64240243194,-0.641861384872,-0.641273879378,-0.640639915457,
+-0.63995949311,-0.639232612337,-0.638459273136,-0.63763947551,
+-0.636773219457,-0.635860504977,-0.634901332071,-0.633895700738,
+-0.632843610979,-0.631745062793,-0.630600056181,-0.629408591142,
+-0.628170667677,-0.626886285786,-0.625555445468,-0.624178146723,
+-0.622754389552,-0.621284173954,-0.61976749993,-0.61820436748,
+-0.616594776602,-0.614938727299,-0.613236219569,-0.611487253412,
+-0.609691828829,-0.60784994582,-0.605961604383,-0.604026804521,
+-0.602045546232,-0.600017829516,-0.597943654374,-0.595823020806,
+-0.593655928811,-0.591442378389,-0.589182369541,-0.586875902266,
+-0.584522976565,-0.582123592438,-0.579677749884,-0.577185448903,
+-0.574646689496,-0.572061471663,-0.569429795403,-0.566751660716,
+-0.564027067603,-0.561256016064,-0.558438506098,-0.555574537705,
+-0.552664110886,-0.549707225641,-0.546703881969,-0.543654079871,
+-0.540557819346,-0.537415100394,-0.534225923016,-0.530990287212,
+-0.527708192981,-0.524379640323,-0.521004629239,-0.517583159729,
+-0.514115231792,-0.510600845429,-0.507040000639,-0.503432697422,
+-0.499778935779,-0.49607871571,-0.492332037214,-0.488538900292,
+-0.484699304943,-0.480813251167,-0.476880738966,-0.472901768337,
+-0.468876339282,-0.464804451801,-0.460686105893,-0.456521301559,
+-0.452310038798,-0.448052317611,-0.443748137997,-0.439397499956,
+-0.435000403489,-0.430556848596,-0.426066835276,-0.42153036353,
+-0.416947433357,-0.412318044758,-0.407642197732,-0.40291989228,
+-0.398151128401,-0.393335906096,-0.388474225364,-0.383566086206,
+-0.378611488621,-0.37361043261,-0.368562918172,-0.363468945307,
+-0.358328514017,-0.353141624299,-0.347908276156,-0.342628469585,
+-0.337302204589,-0.331929481165,-0.326510299316,-0.321044659039,
+-0.315532560337,-0.309974003207,-0.304368987652,-0.29871751367,
+-0.293019581261,-0.287275190426,-0.281484341164,-0.275647033476,
+-0.269763267361,-0.26383304282,-0.257856359852,-0.251833218458,
+-0.245763618637,-0.23964756039,-0.233485043716,-0.227276068616,
+-0.22102063509,-0.214718743136,-0.208370392757,-0.201975583951,
+-0.195534316718,-0.189046591059,-0.182512406973,-0.175931764461,
+-0.169304663522,-0.162631104157,-0.155911086366,-0.149144610148,
+-0.142331675503,-0.135472282432,-0.128566430934,-0.12161412101,
+-0.11461535266,-0.107570125883,-0.100478440679,-0.0933402970488,
+-0.0861556949923,-0.0789246345092,-0.0716471155996,-0.0643231382636,
+-0.056952702501,-0.049535808312,-0.0420724556964,-0.0345626446544,
+-0.0270063751858,-0.0194036472908,-0.0117544609693,0.0};
+}
+
+namespace promod3{ namespace sidechain{
+
+void Particle::GetTransformedCopy(const geom::Transform& t,Particle* p) const{
+
+  geom::Vec3 transformed_pos = t.Apply(pos_);
+  *p = Particle(transformed_pos,polytope_radius_,r_,emin_,charge_,name_);
+  
+  if(is_hbond_acceptor_){
+    geom::Vec3 temp;
+    for(std::vector<geom::Vec3>::const_iterator i = lone_pairs_.begin(); 
+        i != lone_pairs_.end(); ++i){
+      temp = pos_ + (*i);
+      temp = t.Apply(temp);
+      p->AddLonePair(temp-transformed_pos);
+    }
+  }
+
+  if(is_hbond_donor_){
+    geom::Vec3 temp = pos_ + polar_direction_;
+    temp = t.Apply(temp);
+    p->SetPolarDirection(temp-transformed_pos);
+  }
+}
+
+Particle::Particle(const Particle& particle){
+  pos_ = particle.pos_;
+  r_ = particle.r_;
+  polytope_radius_ = particle.polytope_radius_;
+  emin_ = particle.emin_;
+  charge_ = particle.charge_;
+  name_ = particle.name_;
+  is_hbond_donor_ = particle.is_hbond_donor_;
+  is_hbond_acceptor_ = particle.is_hbond_acceptor_;
+  lone_pairs_ = particle.lone_pairs_;
+  polar_direction_ = particle.polar_direction_;
+}
+
+float Particle::PairwiseEnergy(const Particle* other) const{
+
+  if(is_hbond_donor_){
+    if(other->is_hbond_acceptor_){
+
+      float a = pos_[0]-other->pos_[0];
+      float d = a*a;
+      a = pos_[1]-other->pos_[1];
+      d += a*a;
+      a = pos_[2]-other->pos_[2];
+      d += a*a;
+      d = sqrt(d);
+      a = 750.0188 * d / (r_+other->r_);
+
+      float squared_emin = emin_*other->emin_-0.0018;
+      squared_emin = (squared_emin<0)?0.0:squared_emin;
+      int bin = (240.0205 * squared_emin<99)?240.0205 * squared_emin:99;
+      bin*=1000;
+      bin+=(a<999)?a:999;
+
+      float e = ENERGY_LOOKUP[bin];
+
+      float distance_term = 0.44890 - (d-2.08)*(d-2.08);
+
+      if(distance_term < 0) return e;
+
+      d = 1.0/d;
+
+      float n[] = {(pos_[0]-other->pos_[0])*d,(pos_[1]-other->pos_[1])*d,(pos_[2]-other->pos_[2])*d};
+
+      float cos_a_term = -n[0]*polar_direction_[0]-n[1]*polar_direction_[1]-n[2]*polar_direction_[2] - 0.79864;
+
+      if(cos_a_term < 0) return e;
+
+      //find lone pair, that gives maximal value to the final nominator term
+      float cos_b_term = n[0]*other->lone_pairs_[0][0] + n[1]*other->lone_pairs_[0][1]+n[2]*other->lone_pairs_[0][2]-0.65606;
+      for(uint i = 1; i < other->lone_pairs_.size(); ++i){
+        d = n[0]*other->lone_pairs_[i][0] + n[1]*other->lone_pairs_[i][1] + n[2]*other->lone_pairs_[i][2] - 0.65606;
+        cos_b_term = (cos_b_term < d)?d:cos_b_term;
+      }
+      if(cos_b_term < 0) return e;
+
+      d = sqrt(distance_term*cos_a_term*cos_b_term)*6.5904;
+      return (1.0-d)*e + d*35.0*charge_*other->charge_;
+    }
+
+    float a = pos_[0]-other->pos_[0];
+    float d = a * a;
+    a = pos_[1]-other->pos_[1];
+    d += a*a;
+    a = pos_[2]-other->pos_[2];
+    d += a*a;
+    d = sqrt(d);
+    a = 750.0188 * d / (r_ + other->r_);
+
+    d = emin_*other->emin_-0.0018;
+    d = 240.0205 * ((d<0)?0.0:d);
+    int bin = (d<99)?d:99;
+    bin*=1000;
+    bin+=(a<999)?a:999;
+    return ENERGY_LOOKUP[bin];
+  }
+
+  if(is_hbond_acceptor_){
+    if(other->is_hbond_donor_){
+
+      float a = pos_[0]-other->pos_[0];
+      float d = a * a;
+      a = pos_[1]-other->pos_[1];
+      d += a * a;
+      a = pos_[2]-other->pos_[2];
+      d += a * a;
+      d = sqrt(d);
+      float frac = 750.0188 * d / (r_+other->r_);
+      float squared_emin = emin_*other->emin_-0.0018;
+      squared_emin = 240.0205 * ((squared_emin<0)?0.0:squared_emin);
+      int bin = (squared_emin<99)?squared_emin:99;
+      bin*=1000;
+      bin+=(frac<999)?frac:999;
+
+      float e = ENERGY_LOOKUP[bin];
+
+      float distance_term = 0.44890 - (d-2.08)*(d-2.08);
+      
+      if(distance_term < 0) return e;
+
+      d = 1.0 / d;
+      float n[] = {(other->pos_[0]-pos_[0])*d,(other->pos_[1]-pos_[1])*d,(other->pos_[2]-pos_[2])*d};
+
+      float cos_a_term = -n[0]*other->polar_direction_[0]-n[1]*other->polar_direction_[1]-n[2]*other->polar_direction_[2] - 0.79864;
+
+      if(cos_a_term < 0) return e;
+
+      //find lone pair, that gives maximal value to the final nominator term
+      float cos_b_term = n[0]*lone_pairs_[0][0]+n[1]*lone_pairs_[0][1]+n[2]*lone_pairs_[0][2] - 0.65606;
+
+      for(uint i = 1; i < lone_pairs_.size(); ++i){
+        d = n[0]*lone_pairs_[i][0] + n[1]*lone_pairs_[i][1] + n[2]*lone_pairs_[i][2] - 0.65606; 
+        cos_b_term = (cos_b_term < d)?d:cos_b_term;
+      }
+
+      if(cos_b_term < 0) return e;
+
+      d = sqrt(distance_term*cos_a_term*cos_b_term)*6.5904;
+      return (1.0-d)*e + d*35.0*charge_*other->charge_;
+    }
+  }
+
+  float a = pos_[0]-other->pos_[0];
+  float d = a*a;
+  a = pos_[1]-other->pos_[1];
+  d += a*a;
+  a = pos_[2]-other->pos_[2];
+  d += a*a;
+  d = sqrt(d);
+  a = 750.0188 * d / (r_ + other->r_);
+  d = emin_*other->emin_-0.0018;
+  d = 240.0205 * ((d<0)?0.0:d);
+  int bin = (d<99)?d:99;
+  bin*=1000;
+  bin+=(a<999)?a:999;
+
+  return ENERGY_LOOKUP[bin];
+}
+
+float Particle::PairwiseEnergy(const ParticlePtr other) const{
+  return this->PairwiseEnergy(other.get());
+}
+
+}}//ns
diff --git a/sidechain/src/particle.hh b/sidechain/src/particle.hh
new file mode 100644
index 0000000000000000000000000000000000000000..900008ea1af9d59631a0136c97998d3eb37267f1
--- /dev/null
+++ b/sidechain/src/particle.hh
@@ -0,0 +1,96 @@
+#ifndef PROMOD3_PARTICLE_HH
+#define PROMOD3_PARTICLE_HH
+
+#include <math.h>
+#include <map>
+
+#include <boost/shared_ptr.hpp>
+
+#include <ost/geom/transform.hh>
+
+#include <promod3/sidechain/tetrahedral_polytope.hh>
+#include <promod3/sidechain/pairwise_terms.hh>
+
+namespace promod3{ namespace sidechain{
+
+class Particle;
+typedef boost::shared_ptr<Particle> ParticlePtr;
+
+class Particle : public TetrahedralPolytope{
+
+public:
+
+  Particle() { }
+
+  Particle(const geom::Vec3& pos, Real radius, Real r, Real emin, 
+                                  Real charge, String name = ""):
+                                  TetrahedralPolytope(pos,radius),
+                                  pos_(pos),
+                                  r_(r),
+                                  polytope_radius_(radius),
+                                  emin_(emin),
+                                  charge_(charge),
+                                  name_(name),
+                                  is_hbond_donor_(false),
+                                  is_hbond_acceptor_(false) { }
+
+  Particle(const Particle& particle);
+
+  virtual ~Particle() { }
+
+
+  void GetTransformedCopy(const geom::Transform& t,Particle* p) const;
+
+  Real PairwiseEnergy(const Particle* other) const;
+
+  Real PairwiseEnergy(const ParticlePtr other) const;
+
+  geom::Vec3 GetPos() { return pos_; }
+
+  Real GetRadius() { return r_; }
+
+  Real GetEMin() { return emin_; }
+
+  Real GetCharge() { return charge_; }
+
+  String GetName() { return name_; }
+
+  bool IsHBondDonor() const { return is_hbond_donor_; }
+
+  bool IsHBondAcceptor() const { return is_hbond_acceptor_; }
+
+  const std::vector<geom::Vec3>& GetLonePairs() const { return lone_pairs_; }
+
+  const geom::Vec3& GetPolarDirection() const { return polar_direction_; }
+
+  void AddLonePair(const geom::Vec3& lone_pair){
+    is_hbond_acceptor_ = true;
+    lone_pairs_.push_back(geom::Normalize(lone_pair));
+  }
+
+  void SetPolarDirection(const geom::Vec3& dir){
+    is_hbond_donor_ = true;
+    polar_direction_ = geom::Normalize(dir);
+  }
+
+  virtual geom::Vec3 GetCenter() const { return pos_; }
+
+private:
+
+  //inline Real VDWE(ParticlePtr other, Real& d) const;
+
+  geom::Vec3 pos_;
+  Real r_;
+  Real polytope_radius_;
+  Real emin_;
+  Real charge_;
+  String name_; 
+  bool is_hbond_donor_;
+  bool is_hbond_acceptor_; 
+  std::vector<geom::Vec3> lone_pairs_;
+  geom::Vec3 polar_direction_;
+};
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/rotamer.cc b/sidechain/src/rotamer.cc
new file mode 100644
index 0000000000000000000000000000000000000000..e298dd71d77a9fae39c2d8983de49e8dcae910fc
--- /dev/null
+++ b/sidechain/src/rotamer.cc
@@ -0,0 +1,212 @@
+#include <promod3/sidechain/rotamer.hh>
+
+namespace promod3{ namespace sidechain{
+
+
+RRMRotamer::RRMRotamer(Particle* particles, size_t n_particles, 
+                       Real probability, Real internal_e_prefactor):
+                       particles_(particles), n_particles_(n_particles), internal_energy_(0.0), 
+                       frame_energy_(0.0), probability_(probability),
+                       internal_e_prefactor_(internal_e_prefactor){ }
+
+RRMRotamerPtr RRMRotamer::GetTransformedCopy(const geom::Transform& t) const{
+
+  Particle* transformed_particles = new Particle[n_particles_];
+
+  Particle* p_ptr = transformed_particles;
+
+  for(uint i = 0; i < n_particles_; ++i){
+    particles_[i].GetTransformedCopy(t,p_ptr);
+    ++p_ptr;
+  }
+  
+  RRMRotamerPtr return_rot(new RRMRotamer(transformed_particles,n_particles_,probability_,
+                                          internal_e_prefactor_));
+
+  return_rot->SetInternalEnergy(internal_energy_);
+  return_rot->SetFrameEnergy(frame_energy_);
+  return return_rot;
+}
+
+RRMRotamer::~RRMRotamer(){
+  delete [] particles_;
+}
+
+void RRMRotamer::ApplyOnResidue(ost::mol::ResidueHandle& res, bool consider_hydrogens,
+                                const String& new_res_name) const{
+
+  ost::mol::XCSEditor ed = res.GetEntity().EditXCS(ost::mol::BUFFERED_EDIT);
+  std::vector<unsigned long> backbone_atoms;
+
+  ost::mol::AtomHandle n,ca,cb,c,o;
+
+  n = res.FindAtom("N");
+  ca = res.FindAtom("CA");
+  cb = res.FindAtom("CB");
+  c = res.FindAtom("C");
+  o = res.FindAtom("O");
+
+  if(!n.IsValid() || !ca.IsValid() || !c.IsValid() || !o.IsValid()){
+    throw promod3::Error("Require all backbone atoms to apply rotamer on residue!");
+  }
+
+  backbone_atoms.push_back(n.GetHashCode());
+  backbone_atoms.push_back(ca.GetHashCode());
+  backbone_atoms.push_back(c.GetHashCode());
+  backbone_atoms.push_back(o.GetHashCode());
+
+  if(!cb.IsValid() && n_particles_ > 0){
+    geom::Vec3 cb_pos = ost::mol::alg::CBetaPosition(n.GetPos(),ca.GetPos(),c.GetPos());
+    cb = ed.InsertAtom(res,"CB",cb_pos,"C");
+  }
+
+  if(cb.IsValid()) backbone_atoms.push_back(cb.GetHashCode());
+
+  //let's strip away all atoms
+  ost::mol::AtomHandleList atom_list = res.GetAtomList();
+  for(ost::mol::AtomHandleList::iterator i = atom_list.begin();
+      i != atom_list.end(); ++i){
+    if(std::find(backbone_atoms.begin(),backbone_atoms.end(),
+                 i->GetHashCode()) != backbone_atoms.end()) continue;
+    ed.DeleteAtom(*i);
+  }  
+
+  //and refill sidechain with rotamer atoms
+  for(iterator i = this->begin(); i != this->end(); ++i){
+    String particle_name = i->GetName();
+    if(particle_name[0] == 'H' && !consider_hydrogens) continue;
+    ed.InsertAtom(res,particle_name,i->GetCenter(),particle_name.substr(0,1));
+  }
+
+  if(new_res_name != ""){
+    ed.RenameResidue(res,new_res_name);
+    res.SetOneLetterCode(ost::conop::ResidueNameToOneLetterCode(new_res_name));
+  }
+  ed.UpdateICS();
+}
+
+void RRMRotamer::CalculateInternalEnergy(Real normalization_factor){
+  internal_energy_ = -internal_e_prefactor_*log(probability_/normalization_factor);
+}
+
+FRMRotamer::FRMRotamer(Particle* particles, size_t n_particles, Real T, 
+                       Real probability, Real internal_e_prefactor):
+                       particles_(particles), n_particles_(n_particles),
+                       internal_energy_(0.0),frame_energy_(0.0), 
+                       T_(T), probability_(probability),
+                       internal_e_prefactor_(internal_e_prefactor){
+
+  subrotamer_associations_.resize(n_particles_,std::vector<int>());
+
+}
+
+FRMRotamer::~FRMRotamer(){
+  delete [] particles_;
+}
+
+FRMRotamerPtr FRMRotamer::GetTransformedCopy(const geom::Transform& t) const{
+
+  Particle* transformed_particles = new Particle[n_particles_];
+
+  Particle* p_ptr = transformed_particles;
+
+  for(uint i = 0; i < n_particles_; ++i){
+    particles_[i].GetTransformedCopy(t,p_ptr);
+    ++p_ptr;
+  }
+
+  FRMRotamerPtr return_rot = boost::make_shared<FRMRotamer>(transformed_particles,
+                                                            n_particles_,
+                                                            T_,probability_,
+                                                            internal_e_prefactor_);
+
+  //FRMRotamerPtr return_rot(new FRMRotamer(transformed_particles,n_particles_,T_,
+   //                                       probability_,internal_e_prefactor_));
+  return_rot->SetInternalEnergy(internal_energy_);
+  return_rot->SetFrameEnergy(frame_energy_);
+
+  for(const_subrotamer_iterator i = subrotamers_begin();
+      i != subrotamers_end(); ++i){
+    return_rot->AddSubrotamerDefinition(*i);
+  }
+
+  for(uint i = 0; i < subrotamer_definitions_.size(); ++i){
+    return_rot->SetFrameEnergy(frame_energies_[i],i);
+  }
+
+  return return_rot;
+}
+
+void FRMRotamer::AddSubrotamerDefinition(const std::vector<int>& definition){
+  uint subrotamer_index = subrotamer_definitions_.size();
+  subrotamer_definitions_.push_back(definition);
+  for(std::vector<int>::const_iterator i = definition.begin(); 
+      i != definition.end();++i){
+    subrotamer_associations_[*i].push_back(subrotamer_index);
+  }
+  frame_energies_.push_back(0.0);
+}
+
+void FRMRotamer::ApplyOnResidue(ost::mol::ResidueHandle& res, bool consider_hydrogens,
+                                const String& new_res_name) const {
+
+  if(subrotamer_definitions_.empty()){
+    throw promod3::Error("At least one subrotamer must be set in FRM rotamer!");
+  }
+
+  ost::mol::XCSEditor ed = res.GetEntity().EditXCS(ost::mol::BUFFERED_EDIT);
+  std::vector<unsigned long> backbone_atoms;
+
+  ost::mol::AtomHandle n,ca,cb,c,o;
+
+  n = res.FindAtom("N");
+  ca = res.FindAtom("CA");
+  cb = res.FindAtom("CB");
+  c = res.FindAtom("C");
+  o = res.FindAtom("O");
+
+  if(!n.IsValid() || !ca.IsValid() || !c.IsValid() || !o.IsValid()){
+    throw promod3::Error("Require all backbone atoms to apply rotamer on residue!");
+  }
+
+  backbone_atoms.push_back(n.GetHashCode());
+  backbone_atoms.push_back(ca.GetHashCode());
+  backbone_atoms.push_back(c.GetHashCode());
+  backbone_atoms.push_back(o.GetHashCode());
+
+  if(!cb.IsValid() && n_particles_ > 0){
+    geom::Vec3 cb_pos = ost::mol::alg::CBetaPosition(n.GetPos(),ca.GetPos(),c.GetPos());
+    cb = ed.InsertAtom(res,"CB",cb_pos,"C");
+  }
+
+  if(cb.IsValid()) backbone_atoms.push_back(cb.GetHashCode());
+
+  //let's strip away all atoms
+  ost::mol::AtomHandleList atom_list = res.GetAtomList();
+  for(ost::mol::AtomHandleList::iterator i = atom_list.begin();
+      i != atom_list.end(); ++i){
+    if(std::find(backbone_atoms.begin(),backbone_atoms.end(),
+                 i->GetHashCode()) != backbone_atoms.end()) continue;
+    ed.DeleteAtom(*i);
+  }  
+
+  //and refill sidechain with rotamer atoms
+  for(uint i = 0; i < subrotamer_definitions_[0].size(); ++i){
+    String particle_name = particles_[subrotamer_definitions_[0][i]].GetName();
+    if(particle_name[0] == 'H' && !consider_hydrogens) continue;
+    ed.InsertAtom(res,particle_name,particles_[subrotamer_definitions_[0][i]].GetCenter(),particle_name.substr(0,1));
+  }
+
+  if(new_res_name != ""){
+    ed.RenameResidue(res,new_res_name);
+    res.SetOneLetterCode(ost::conop::ResidueNameToOneLetterCode(new_res_name));
+  }
+  ed.UpdateICS();
+}
+
+void FRMRotamer::CalculateInternalEnergy(Real normalization_factor){
+  internal_energy_ = -internal_e_prefactor_*log(probability_/normalization_factor);
+}
+
+
+}}//ns
diff --git a/sidechain/src/rotamer.hh b/sidechain/src/rotamer.hh
new file mode 100644
index 0000000000000000000000000000000000000000..b9288b7230def3a77bb0cfc6a55856c4c6815400
--- /dev/null
+++ b/sidechain/src/rotamer.hh
@@ -0,0 +1,178 @@
+#ifndef PROMOD3_ROTAMER_HH
+#define PROMOD3_ROTAMER_HH
+
+#include <math.h>
+#include <vector>
+#include <limits>
+
+#include <boost/shared_ptr.hpp>
+#include <boost/make_shared.hpp>
+
+#include <promod3/sidechain/tetrahedral_polytope.hh>
+#include <promod3/sidechain/pairwise_terms.hh>
+#include <promod3/sidechain/particle.hh>
+#include <promod3/sidechain/rotamer_id.hh>
+#include <promod3/core/message.hh>
+
+#include <ost/mol/atom_handle.hh>
+#include <ost/mol/residue_handle.hh>
+#include <ost/mol/xcs_editor.hh>
+#include <ost/conop/amino_acids.hh>
+#include <ost/mol/alg/construct_cbeta.hh>
+#include <ost/geom/transform.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+class RRMRotamer;
+class FRMRotamer;
+typedef boost::shared_ptr<RRMRotamer> RRMRotamerPtr;
+typedef boost::shared_ptr<FRMRotamer> FRMRotamerPtr;
+
+
+class RRMRotamer{
+
+public:
+
+  RRMRotamer(Particle* particles, size_t n_particles, 
+             Real probability = 1.0, Real internal_e_prefactor = 1.0);
+
+  ~RRMRotamer();
+
+  void ApplyOnResidue(ost::mol::ResidueHandle& res, bool consider_hydrogens = false,
+                     const String& new_res_name = "") const;
+
+  RRMRotamerPtr GetTransformedCopy(const geom::Transform& t) const;
+
+  void CalculateInternalEnergy(Real normalization_factor);
+
+  Real GetInternalEnergy() const { return internal_energy_; }
+
+  Real GetFrameEnergy() const { return frame_energy_; }
+
+  Real GetSelfEnergy() const { return internal_energy_ + frame_energy_; }
+
+  Real GetProbability() const { return probability_; }
+
+  void SetInternalEnergy(Real e) { internal_energy_ = e; }
+
+  void SetFrameEnergy(Real e) { frame_energy_ = e; }
+
+  void AddFrameEnergy(Real e) { frame_energy_ += e; }
+
+  void SetProbability(Real p) { probability_ = p; }
+
+  Particle* operator[](size_t index) { return particles_ + index; }
+
+  size_t size() const { return n_particles_; }
+
+  typedef Particle* iterator;
+  
+  iterator begin() const { return particles_; }
+  iterator end() const { return particles_ + n_particles_; }
+
+private:
+
+  Particle* particles_;
+  size_t n_particles_;
+  Real internal_energy_;
+  Real frame_energy_;
+  Real probability_;
+  Real internal_e_prefactor_;
+};
+
+
+
+class FRMRotamer{
+
+public:
+
+  FRMRotamer(Particle* particles, size_t n_particles, Real T, 
+             Real probability = 1.0, Real internal_e_prefactor = 1.0);
+
+  ~FRMRotamer();
+
+  void ApplyOnResidue(ost::mol::ResidueHandle& res, bool consider_hydrogens = false,
+                      const String& new_res_name = "") const;
+
+  FRMRotamerPtr GetTransformedCopy(const geom::Transform& t) const;
+
+  void AddSubrotamerDefinition(const std::vector<int>& definition);
+
+  //this function expects the frame energy to be set!!!
+  //Real PairwiseEnergy(const FRMRotamerPtr other) const;
+
+  void CalculateInternalEnergy(Real normalization_factor);
+
+  Real GetInternalEnergy() const { return internal_energy_; }
+
+  Real GetFrameEnergy() const { return frame_energy_; }
+
+  Real GetFrameEnergy(int index) const { return frame_energies_[index]; }
+
+  Real GetSelfEnergy() const { return internal_energy_ + frame_energy_; }
+
+  Real GetTemperature() const { return T_; }
+
+  Real GetProbability() const { return probability_; }
+
+  void SetInternalEnergy(Real e) { internal_energy_ = e; }
+
+  void SetFrameEnergy(Real e) { frame_energy_ = e; }
+
+  void SetFrameEnergy(Real e, int index) { frame_energies_[index] = e; }
+
+  void AddFrameEnergy(Real e) { frame_energy_ += e; }
+
+  void AddFrameEnergy(Real e, int index) { frame_energies_[index] += e; }
+
+  void SetTemperature(Real T) { T_ = T; }
+
+  void SetProbability(Real p) { probability_ = p; }
+  
+  Particle* operator[](size_t index) { return particles_ + index; }
+
+  size_t size() const { return n_particles_; }
+
+  size_t subrotamer_size() const { return subrotamer_definitions_.size(); }
+
+  typedef Particle* iterator;
+
+  typedef std::vector<std::vector<int> >::const_iterator const_subrotamer_iterator;
+  typedef std::vector<std::vector<int> >::iterator subrotamer_iterator;
+
+  typedef std::vector<int>::const_iterator const_subrotamer_association_iterator;
+  typedef std::vector<int>::iterator subrotamer_association_iterator;
+  
+  iterator begin() { return particles_; }
+  iterator end() { return particles_ + n_particles_; }
+
+  subrotamer_iterator subrotamers_begin() { return subrotamer_definitions_.begin(); }
+  subrotamer_iterator subrotamers_end() { return subrotamer_definitions_.end(); }
+
+  const_subrotamer_iterator subrotamers_begin() const { return subrotamer_definitions_.begin(); }
+  const_subrotamer_iterator subrotamers_end() const { return subrotamer_definitions_.end(); }
+
+  subrotamer_association_iterator subrotamer_association_begin(int i) { return subrotamer_associations_[i].begin(); }
+  subrotamer_association_iterator subrotamer_association_end(int i) { return subrotamer_associations_[i].end(); }
+
+  const_subrotamer_association_iterator subrotamer_association_begin(int i) const { return subrotamer_associations_[i].begin(); }
+  const_subrotamer_association_iterator subrotamer_association_end(int i) const { return subrotamer_associations_[i].end(); }
+
+private:
+
+  Particle* particles_;
+  size_t n_particles_;
+  std::vector<std::vector<int> > subrotamer_definitions_;
+  std::vector<std::vector<int> > subrotamer_associations_;
+  Real internal_energy_;
+  Real frame_energy_;
+  std::vector<Real> frame_energies_;
+  Real T_;
+  Real probability_;
+  Real internal_e_prefactor_;
+};
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/rotamer_constructor.cc b/sidechain/src/rotamer_constructor.cc
new file mode 100644
index 0000000000000000000000000000000000000000..89452b83143f07fbffc39d7b0877bd551c392b8d
--- /dev/null
+++ b/sidechain/src/rotamer_constructor.cc
@@ -0,0 +1,8786 @@
+#include <promod3/sidechain/rotamer_constructor.hh>
+
+
+using namespace promod3::sidechain;
+
+namespace{
+
+RRMRotamerPtr ConstructRRMARG(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real chi2, Real chi3, Real chi4){
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[11];
+    particles = new Particle[11];
+  }
+  else{
+    positions = new geom::Vec3[6];
+    particles = new Particle[6];
+  }
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,1.5475,2.0237,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],1.5384,1.5475,1.9898,
+                   chi2,positions[1]);
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],1.5034,1.5384,1.8691,
+                   chi3,positions[2]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.3401,1.5034,2.1476,chi4,positions[3]);
+
+  //construct NH1
+  ConstructAtomPos(positions[1],positions[2],positions[3],
+                   1.3311,1.3401,2.0605,M_PI,positions[4]);
+
+  //construct NH2
+  ConstructAtomPos(positions[1],positions[2],positions[3],
+                   1.3292,1.3401,2.1317,0.0,positions[5]);
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1142,0.00,"CG");    
+
+    particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1142,0.10,"CD");
+
+    particles[2] = Particle(positions[2],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.40,"NE");
+
+    particles[3] = Particle(positions[3],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.50,"CZ");
+
+    particles[4] = Particle(positions[4],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.45,"NH1");
+
+    particles[5] = Particle(positions[5],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.45,"NH2");
+
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,6,probability,
+                                     settings->internal_e_prefactor_ARG);
+
+    delete [] positions;
+    return rot;   
+  }
+
+  //construct HE
+  ConstructAtomPos(positions[3],positions[1],
+                   positions[2],
+                   1.0065,1.5034,1.9747,M_PI,positions[6]);
+
+  //construct HH11
+  ConstructAtomPos(positions[2],positions[3],
+                   positions[4],
+                   0.9903,1.3311,2.1050,-3.1116,positions[7]);
+
+  //construct HH12
+  ConstructAtomPos(positions[7],positions[3],
+                   positions[4],
+                   1.0023,1.3311,2.0296,2.9878,positions[8]);
+
+  //construct HH21
+  ConstructAtomPos(positions[2],positions[3],
+                   positions[5],
+                   0.9899,1.3292,2.0928,-3.0393,positions[9]);
+
+  //construct HH22  
+  ConstructAtomPos(positions[9],positions[3],
+                   positions[5],
+                   0.9914,1.3292,2.0399,2.9000,positions[10]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");    
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.10,"CD");
+
+  particles[2] = Particle(positions[2],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[5] = Particle(positions[5],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.45,"NH2");
+
+  particles[6] = Particle(positions[6],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE");
+  particles[6].SetPolarDirection(positions[6] - positions[2]);
+
+  particles[7] = Particle(positions[7],settings->H_max_radius,
+                         settings->H_radius,-0.0498,0.35,"HH11");
+  particles[7].SetPolarDirection(positions[7] - positions[4]);
+
+  particles[8] = Particle(positions[8],settings->H_max_radius,
+                         settings->H_radius,-0.0498,0.35,"HH12");
+  particles[8].SetPolarDirection(positions[8] - positions[4]);
+
+  particles[9] = Particle(positions[9],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HH21");
+  particles[9].SetPolarDirection(positions[9] - positions[5]);
+
+  particles[10] = Particle(positions[10],settings->H_max_radius,
+                           settings->H_radius,-0.0498,0.35,"HH22");                                     
+  particles[10].SetPolarDirection(positions[10] - positions[5]);
+
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,11,probability,
+                                   settings->internal_e_prefactor_ARG);
+
+  delete [] positions;
+
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMASN(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, Real probability, 
+                              RotamerSettingsPtr settings, Real chi1, Real chi2){
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[5];
+    particles = new Particle[5];
+  }
+  else{
+    positions = new geom::Vec3[3];
+    particles = new Particle[3];
+  }
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5319,1.9949,chi1,positions[0]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2323,1.5319,2.1391,chi2,positions[1]);
+
+  //construct ND2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3521,1.5319,2.0272,chi2+M_PI,positions[2]);
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1142,0.55,"CG");
+
+    particles[1] = Particle(positions[1],settings->O_max_radius,
+                            settings->O_radius,-0.1591,-0.55,"OD1");
+
+    particles[2] = Particle(positions[2],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.6,"ND2");
+     
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,3,probability,
+                                     settings->internal_e_prefactor_ASN);
+
+    delete [] positions;
+    return rot;
+  }
+
+  //construct HD21
+  ConstructAtomPos(positions[1], positions[0], positions[2],
+                   0.9963,1.3521,2.0481,M_PI,positions[3]);
+
+  //construct HD22
+  ConstructAtomPos(positions[1], positions[0], positions[2],
+                   0.9951,1.3521,2.0953,0,positions[4]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.55,"CG");
+
+  particles[1] = Particle(positions[1],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OD1");
+
+  particles[2] = Particle(positions[2],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.6,"ND2");
+
+  particles[3] = Particle(positions[3],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HD21");
+  particles[3].SetPolarDirection(positions[3]-positions[2]);
+
+  particles[4] = Particle(positions[4],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HD22");
+  particles[4].SetPolarDirection(positions[4]-positions[2]);
+
+
+  //construct electron lonepairs for od1
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(cb_pos, positions[0], positions[1],
+                   1.00,1.2323,2.0944,M_PI,lone_pair_center_one);
+  ConstructAtomPos(cb_pos, positions[0], positions[1],
+                   1.00,1.2323,2.0944, 0.0,lone_pair_center_two);
+  particles[1].AddLonePair(lone_pair_center_one-positions[1]);
+  particles[1].AddLonePair(lone_pair_center_two-positions[1]);
+
+   
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,5,probability,
+                                   settings->internal_e_prefactor_ASN);
+
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMASP(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, Real probability, 
+                              RotamerSettingsPtr settings, Real chi1, Real chi2){
+  Particle* particles = new Particle[3];
+  geom::Vec3* positions = new geom::Vec3[3];
+
+ //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5218,1.9652,chi1,positions[0]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2565,1.5218,2.0593,chi2,positions[1]);
+
+  //construct OD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2541,1.5218,2.0543,chi2+M_PI,positions[2]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CG");
+
+  particles[1] = Particle(positions[1],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD1");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD2");
+
+  if(!settings->consider_hbonds){
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 3, probability,
+                                     settings->internal_e_prefactor_ASP);
+    delete [] positions;
+    return rot;
+  }
+
+  //construct electron lone pairs
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.00,1.2565,2.0944,M_PI,lone_pair_center_one);
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.00,1.2565,2.0944,0.0,lone_pair_center_two);
+  particles[1].AddLonePair(lone_pair_center_one-positions[1]);
+  particles[1].AddLonePair(lone_pair_center_two-positions[1]);
+
+  ConstructAtomPos(cb_pos,positions[0],positions[2],
+                   1.00,1.2541,2.0944,M_PI,lone_pair_center_one);
+  ConstructAtomPos(cb_pos,positions[0],positions[2],
+                   1.00,1.2541,2.0944,0.0,lone_pair_center_two);
+  particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+  particles[2].AddLonePair(lone_pair_center_two-positions[2]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,3,probability,
+                                   settings->internal_e_prefactor_ASP);
+
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMGLN(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, Real probability, 
+                              RotamerSettingsPtr settings, Real chi1, Real chi2, Real chi3){
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){ 
+    positions = new geom::Vec3[6];
+    particles = new Particle[6];
+  }
+  else{
+    positions = new geom::Vec3[4];
+    particles = new Particle[4];
+  }
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5534,2.0162,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.532,1.5534,1.9635,chi2,positions[1]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2294,1.532,2.1209,chi3,positions[2]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.3530,1.532,2.0392,chi3+M_PI,positions[3]);
+
+  if(!settings->consider_hbonds){
+ 
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1142,0.00,"CG");
+
+    particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.55,"CD");
+
+    particles[2] = Particle(positions[2],settings->O_max_radius,
+                            settings->O_radius,-0.1591,-0.55,"OE1");
+
+    particles[3] = Particle(positions[3],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.60,"NE2");
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,4,probability,
+                                     settings->internal_e_prefactor_GLN);
+
+    delete [] positions;
+    return rot;
+  }
+
+  //construct HE21
+  ConstructAtomPos(positions[2], positions[1], positions[3],
+                   0.9959,1.3530,2.0396,M_PI,positions[4]);
+
+  //construct HE22
+  ConstructAtomPos(positions[2], positions[1], positions[3],
+                   0.9943,1.3530,2.0914,0,positions[5]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.55,"CD");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[3] = Particle(positions[3],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  particles[4] = Particle(positions[4],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE21");
+  particles[4].SetPolarDirection(positions[4]-positions[3]);
+
+  particles[5] = Particle(positions[5],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE22");
+  particles[5].SetPolarDirection(positions[5]-positions[3]);
+
+  //construct electron lone pairs of oe1
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+  particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+  particles[2].AddLonePair(lone_pair_center_two-positions[2]);
+
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,6,probability,
+                                   settings->internal_e_prefactor_GLN);
+
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMGLU(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, Real probability, 
+                              RotamerSettingsPtr settings,Real chi1, Real chi2, Real chi3){
+  Particle* particles = new Particle[4];
+  geom::Vec3* positions = new geom::Vec3[4];
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5557,2.0192,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5307,1.5557,2.0199,chi2,positions[1]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2590,1.5307,2.0070,chi3,positions[2]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2532,1.5307,2.0958,chi3+M_PI,positions[3]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,-0.16,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CD");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[3] = Particle(positions[3],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OE2");
+
+  if(!settings->consider_hbonds){
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 4, probability,
+                                     settings->internal_e_prefactor_GLU);
+    delete [] positions;
+    return rot;
+  }
+
+  //construct electron lone pairs
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.00,1.2590,2.0944,M_PI,lone_pair_center_one);
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.00,1.2590,2.0944,0.0,lone_pair_center_two);
+
+  particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+  particles[2].AddLonePair(lone_pair_center_two-positions[2]);  
+
+  ConstructAtomPos(positions[0],positions[1],positions[3],
+                   1.00,1.2532,2.0944,M_PI,lone_pair_center_one);
+  ConstructAtomPos(positions[0],positions[1],positions[3],
+                   1.00,1.2532,2.0944,0.0,lone_pair_center_two);
+
+  particles[3].AddLonePair(lone_pair_center_one-positions[3]);
+  particles[3].AddLonePair(lone_pair_center_two-positions[3]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 4,probability,
+                                   settings->internal_e_prefactor_GLU);
+
+  delete [] positions;
+  return rot;
+}
+
+RRMRotamerPtr ConstructRRMLYS(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real chi2, Real chi3, Real chi4){
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[7];
+    particles = new Particle[7];
+  }
+  else{ 
+    positions = new geom::Vec3[4];
+    particles = new Particle[4];
+  }
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5435,2.0204,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5397,1.5435,1.9771,chi2,positions[1]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.5350,1.5397,1.9605,chi3,positions[2]);
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.4604,1.5350,1.9279,chi4,positions[3]);
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1142,0.00,"CG");
+
+    particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1142,0.00,"CD");
+
+    particles[2] = Particle(positions[2],settings->C_max_radius,
+                            settings->C_radius,-0.1142,0.25,"CE");
+
+    particles[3] = Particle(positions[3],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.30,"NZ");
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 4, probability,
+                                     settings->internal_e_prefactor_LYS);
+
+    delete [] positions;
+    return rot;
+  }
+
+  //construct HZ1
+  ConstructAtomPos(positions[1],positions[2],positions[3],
+                   1.04,1.4604,1.9111,M_PI,positions[4]);
+
+  //construct HZ2
+  ConstructAtomPos(positions[1],positions[2],positions[3],
+                   1.04,1.4604,1.9111,M_PI+2.0944,positions[5]);
+
+  //construct HZ3
+  ConstructAtomPos(positions[1],positions[2],positions[3],
+                   1.04,1.4604,1.9111,M_PI-2.0944,positions[6]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CD");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[3] = Particle(positions[3],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[4] = Particle(positions[4],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HZ1");
+  particles[4].SetPolarDirection(positions[4]-positions[3]);
+
+  particles[5] = Particle(positions[5],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HZ2");
+  particles[5].SetPolarDirection(positions[5]-positions[3]);
+
+  particles[6] = Particle(positions[6],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.35,"HZ3");
+  particles[6].SetPolarDirection(positions[6]-positions[3]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 7, probability,
+                                   settings->internal_e_prefactor_LYS);
+  
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMSER(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, Real probability, 
+                              RotamerSettingsPtr settings,Real chi1, Real chi2){
+  
+  Particle* particles;
+
+  if(settings->consider_hbonds){
+    particles = new Particle[2];
+  }
+  else{ 
+    particles = new Particle[1];
+  }
+
+  geom::Vec3 pos;
+
+  //construct OG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4341,1.9626,chi1,pos);
+
+  particles[0] = Particle(pos,settings->O_max_radius,
+                          settings->O_radius,-0.1142,-0.65,"OG");
+
+  if(!settings->consider_hbonds){
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 1, probability,
+                                     settings->internal_e_prefactor_SER);
+    return rot;   
+  }
+
+  //the dihedral angle to construct the hydrogen is not necessarily given...
+  if(chi2 != chi2) chi2 = M_PI;
+
+  //construct HG
+  ConstructAtomPos(ca_pos,cb_pos,particles[0].GetCenter(),
+                   0.9655,1.4341,1.8689,chi2,pos);
+
+  particles[1] = Particle(pos,settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.40,"HG");
+
+  particles[1].SetPolarDirection(pos - particles[0].GetCenter());
+
+  //create a center point between the two lone pair clouds with distance to OG equals 1
+  geom::Vec3 center_point = particles[0].GetCenter() + 
+                            geom::Normalize((particles[0].GetCenter()-particles[1].GetCenter())/0.9655 + 
+                                            (particles[0].GetCenter()-cb_pos)/1.4341);
+
+  //the two lone pair representatives can now be calculated. Note, that they have tetrahedral
+  //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(cb_pos,particles[0].GetCenter(),center_point,
+                   1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+  ConstructAtomPos(cb_pos,particles[0].GetCenter(),center_point,
+                   1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+  particles[0].AddLonePair(lone_pair_center_one-particles[0].GetCenter());
+  particles[0].AddLonePair(lone_pair_center_two-particles[0].GetCenter());
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles,2,probability,
+                                   settings->internal_e_prefactor_SER);
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMCYS(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos,  
+                              Real probability, RotamerSettingsPtr settings, Real chi1){
+  Particle* particles = new Particle[1];
+  geom::Vec3 pos;
+
+  //construct SG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.8359,1.9874,chi1,pos);
+  particles[0] = Particle(pos,settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.19,"SG");
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 1, probability,
+                                   settings->internal_e_prefactor_CYS);
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMMET(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos,
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real chi2, Real chi3){
+  Particle* particles = new Particle[3];
+  geom::Vec3* positions = new geom::Vec3[3];
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5460,2.0232,chi1,positions[0]);
+
+  //construct SD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.8219,1.5460,1.9247,chi2,positions[1]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.8206,1.8219,1.7268,chi3,positions[2]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.06,"CG");
+  
+  particles[1] = Particle(positions[1],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.12,"SD");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 3, probability,
+                                   settings->internal_e_prefactor_MET);
+ 
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMTRP(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos,
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real chi2){
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){ 
+    positions = new geom::Vec3[10];
+    particles = new Particle[10];
+  }
+  else{
+    positions = new geom::Vec3[9];
+    particles = new Particle[9];
+  } 
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5233, 2.0096,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3679,1.5233, 2.2546,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.4407,1.5233,2.1633,chi2+M_PI,positions[2]);
+
+  //construct CE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.4126,1.4407,1.8614,0.0,positions[3]);
+
+  //construct NE1
+  ConstructAtomPos(positions[0],positions[2],positions[3],
+                   1.3746,1.4126,1.8827,0.0,positions[4]);
+
+  //construct CE3
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.4011,1.4407,2.3133,M_PI,positions[5]);
+
+  //construct CZ3
+  ConstructAtomPos(positions[3],positions[2],positions[5],
+                   1.4017,1.4011,2.0623,0.0,positions[6]);
+
+  //construct CH2
+  ConstructAtomPos(positions[2],positions[5],positions[6],
+                   1.4019,1.4017,2.1113,0.0,positions[7]);
+
+  //construct CZ2
+  ConstructAtomPos(positions[5],positions[6],positions[7],
+                   1.4030,1.4019,2.1096,0.0,positions[8]);
+
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1200,-0.03,"CG");
+
+    particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.06,"CD1");
+
+    particles[2] = Particle(positions[2],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.10,"CD2");
+
+    particles[3] = Particle(positions[3],settings->C_max_radius,
+                            settings->C_radius,-0.1200,-0.04,"CE2");
+
+    particles[4] = Particle(positions[4],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.36,"NE1");
+
+    particles[5] = Particle(positions[5],settings->C_max_radius,
+                            settings->C_radius,-0.1200,-0.03,"CE3");
+
+    particles[6] = Particle(positions[6],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CZ3");
+
+    particles[7] = Particle(positions[7],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CH2");
+
+    particles[8] = Particle(positions[8],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CZ2");
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 9, probability,
+                                     settings->internal_e_prefactor_TRP);
+
+    delete [] positions;
+    return rot;    
+  }
+
+  //construct HE1
+  ConstructAtomPos(positions[8],positions[3],positions[4],
+                   0.9767,1.3746,2.1761,0.0,positions[9]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,-0.03,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.06,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,-0.04,"CE2");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.36,"NE1");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,-0.03,"CE3");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CZ3");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CH2");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CZ2");
+
+  particles[9] = Particle(positions[9],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE1");
+
+  particles[9].SetPolarDirection(positions[9]-positions[4]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 10, probability,
+                                   settings->internal_e_prefactor_TRP);
+
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMTYR(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                           const geom::Vec3& cb_pos, 
+                           Real probability, RotamerSettingsPtr settings, 
+                           Real chi1, Real chi2, Real chi3){
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[8];
+    particles = new Particle[8];
+  }
+  else{
+    positions = new geom::Vec3[7];
+    particles = new Particle[7];
+  } 
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5113,1.9712,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.40,1.38,2.0944,0.0,positions[3]);
+
+  //construct CE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.40,1.38,2.0944,0.0,positions[4]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[3],
+                   1.40,1.40,2.0944,0.0,positions[5]);
+
+  //construct OH
+  ConstructAtomPos(positions[1],positions[3],positions[5],
+                   1.40,1.40,2.0944,M_PI,positions[6]);
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CG");
+
+    particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CD1");
+
+    particles[2] = Particle(positions[2],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CD2");
+
+    particles[3] = Particle(positions[3],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CE1");
+
+    particles[4] = Particle(positions[4],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CE2");
+
+    particles[5] = Particle(positions[5],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.25,"CZ");
+
+    particles[6] = Particle(positions[6],settings->O_max_radius,
+                            settings->O_radius,-0.1591,-0.65,"OH");
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 7, probability,
+                                     settings->internal_e_prefactor_TYR);
+    delete [] positions;
+    return rot;    
+  }
+
+  if(chi3 != chi3) chi3 = M_PI;
+
+  //construct HH
+  ConstructAtomPos(positions[3],positions[5],positions[6],
+                   0.9594,1.40,1.8757,chi3,positions[7]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.25,"CZ");
+
+  particles[6] = Particle(positions[6],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.65,"OH");
+  
+  particles[7] = Particle(positions[7],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.40,"HH");
+  particles[7].SetPolarDirection(positions[7]-positions[6]);
+
+  //create a center point between the two lone pair clouds with distance to OH equals 1
+  geom::Vec3 center_point = positions[6] + geom::Normalize((positions[6]-positions[7])/0.9594 + 
+                                                           (positions[6]-positions[5])/1.40);
+
+  //the two lone pair representatives can now be calculated. Note, that they have
+  //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(positions[7],positions[6],center_point,
+                   1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+  ConstructAtomPos(positions[7],positions[6],center_point,
+                   1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+  particles[6].AddLonePair(lone_pair_center_one-positions[6]);
+  particles[6].AddLonePair(lone_pair_center_two-positions[6]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 8, probability,
+                                   settings->internal_e_prefactor_TYR);
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMTHR(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, Real probability, 
+                              RotamerSettingsPtr settings,
+                              Real chi1, Real chi2){
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[3];
+    particles = new Particle[3];
+  }
+  else{
+    positions = new geom::Vec3[2];
+    particles = new Particle[2]; 
+  }
+
+  //construct OG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4252,1.9576,chi1,positions[0]);
+
+  //construct CG2
+  ConstructAtomPos(positions[0],ca_pos,cb_pos,
+                   1.5324,2.0230,-2.1665,positions[1]);
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->O_max_radius,
+                            settings->O_radius,-0.1591,-0.65,"OG1");
+
+    particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CG2");
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 2, probability,
+                                     settings->internal_e_prefactor_THR);
+    delete [] positions;
+    return rot;    
+  }
+
+  if(chi2 != chi2) chi2 = M_PI;
+
+  //construct HG1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   0.9633,1.4252,1.8404,chi2,positions[2]);
+
+  particles[0] = Particle(positions[0],settings->O_max_radius,
+                                  settings->O_radius,-0.1591,-0.65,"OG1");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                                  settings->C_radius,-0.1200,0.00,"CG2");
+
+  particles[2] = Particle(positions[2],settings->H_max_radius,
+                                  settings->H_radius,-0.0498,0.40,"HG1");
+
+  particles[2].SetPolarDirection(positions[2]-positions[0]);
+
+  //create a center point between the two lone pair clouds with distance to OH equals 1
+  geom::Vec3 center_point = positions[0] + geom::Normalize((positions[0]-positions[2])/0.9633 + 
+                                                           (positions[0]-cb_pos)/1.4252);
+
+  //the two lone pair representatives can now be calculated. Note, that they have
+  //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+  geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+  ConstructAtomPos(positions[2],positions[0],center_point,
+                   1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+  ConstructAtomPos(positions[2],positions[0],center_point,
+                   1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+  particles[0].AddLonePair(lone_pair_center_one-positions[0]);
+  particles[0].AddLonePair(lone_pair_center_two-positions[0]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 3, probability,
+                                   settings->internal_e_prefactor_THR);
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMVAL(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1){
+  Particle* particles = new Particle[2];
+  geom::Vec3* positions = new geom::Vec3[2];
+
+  //constructing CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5441,1.9892,chi1,positions[0]);
+
+  //constructing CG2
+  ConstructAtomPos(positions[0],ca_pos,cb_pos,
+                   1.5414,1.9577,2.1640,positions[1]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG1");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+  
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 2, probability,
+                                   settings->internal_e_prefactor_VAL);
+  delete [] positions;
+  return rot;
+}
+
+
+RRMRotamerPtr ConstructRRMILE(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real chi2){
+  Particle* particles = new Particle[3];
+  geom::Vec3* positions = new geom::Vec3[3];
+
+  //construct CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5498,1.9832,chi1,positions[0]);
+
+  //construct CG2
+  ConstructAtomPos(positions[0], ca_pos, cb_pos,
+                   1.5452,1.9885,-2.2696,positions[1]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5381,1.5498,1.9912,chi2,positions[2]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG1");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 3, probability,
+                                   settings->internal_e_prefactor_ILE);
+  delete [] positions;
+  return rot;
+}
+
+RRMRotamerPtr ConstructRRMLEU(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real chi2){
+  Particle* particles = new Particle[3];
+  geom::Vec3* positions = new geom::Vec3[3];
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5472,2.0501,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5361,1.5472,1.9282,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(positions[1],cb_pos,positions[0],
+                   1.5360,1.5472,1.9647,2.0944,positions[2]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.0486,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD2");
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 3, probability,
+                                   settings->internal_e_prefactor_LEU);
+
+  delete [] positions;
+  return rot;
+}
+
+RRMRotamerPtr ConstructRRMPRO(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real chi2){
+  Particle* particles = new Particle[2];
+  geom::Vec3* positions = new geom::Vec3[2];
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5322,1.8219,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5317,1.5322,1.8014,chi2,positions[1]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.10,"CD");
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 2, probability,
+                                   settings->internal_e_prefactor_PRO);
+  delete [] positions;
+  return rot;
+}
+
+RRMRotamerPtr ConstructRRMHSD(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                             const geom::Vec3& cb_pos, 
+                             Real probability, RotamerSettingsPtr settings,
+                             Real chi1, Real chi2){
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[6];
+    particles = new Particle[6];
+  }
+  else{
+    positions = new geom::Vec3[5];
+    particles = new Particle[5];
+  }
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5041,1.9905,chi1,positions[0]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3783,1.5041,2.1660,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3597,1.5041,2.2619,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.3549,1.3783,1.8680,0.0,positions[3]);
+
+  //construct NE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.3817,1.3597,1.9204,0.0,positions[4]);
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.10,"CG");
+
+    particles[1] = Particle(positions[1],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.40,"ND1");
+
+    particles[2] = Particle(positions[2],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.10,"CD2");
+
+    particles[3] = Particle(positions[3],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.30,"CE1");
+
+    particles[4] = Particle(positions[4],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.40,"NE2");
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 5, probability,
+                                     settings->internal_e_prefactor_HIS);
+
+    delete [] positions;
+    return rot;
+  }
+
+
+  //construct HD1
+  ConstructAtomPos(positions[2],positions[0], positions[1],
+                   1.0005,1.3783,2.2037,M_PI,positions[5]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[1] = Particle(positions[1],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  geom::Vec3 lone_pair_dir = geom::Normalize(positions[4]-positions[3])+
+                             (positions[4]-positions[2])/1.3817;
+  particles[4].AddLonePair(lone_pair_dir);
+
+  particles[5] = Particle(positions[5],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HD1");
+  particles[5].SetPolarDirection(positions[5]-positions[1]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 6, probability,
+                                   settings->internal_e_prefactor_HIS);
+  delete [] positions;
+  return rot;
+}
+
+RRMRotamerPtr ConstructRRMHSE(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real chi2){
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[6];
+    particles = new Particle[6];
+  }
+  else{
+    positions = new geom::Vec3[5];
+    particles = new Particle[5];
+  }
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.509,2.0410,chi1,positions[0]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3859,1.509,2.0974,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3596,1.509,2.2639,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.3170,1.3859,1.8361,0.0,positions[3]);
+
+  //construct NE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.3782,1.3596,1.8466,0.0,positions[4]);
+
+  if(!settings->consider_hbonds){
+
+    particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.10,"CG");
+
+    particles[1] = Particle(positions[1],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.40,"ND1");
+
+    particles[2] = Particle(positions[2],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.10,"CD2");
+
+    particles[3] = Particle(positions[3],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.30,"CE1");
+
+    particles[4] = Particle(positions[4],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.40,"NE2");
+
+    RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 5, probability,
+                                     settings->internal_e_prefactor_HIS);
+
+    delete [] positions;
+    return rot;
+  }
+
+  //construct HE2
+  ConstructAtomPos(positions[0],positions[2],positions[4],
+                   0.9996,1.3782,2.1967,M_PI,positions[5]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[1] = Particle(positions[1],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+  geom::Vec3 lone_pair_dir = (positions[1]-positions[0])/1.3859+
+                             (positions[1]-positions[3])/1.3170;
+  particles[1].AddLonePair(lone_pair_dir);
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[5] = Particle(positions[5],settings->H_max_radius,
+                          settings->H_radius,-0.0498,0.30,"HE2");
+  particles[5].SetPolarDirection(positions[5]-positions[4]);
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 6, probability,
+                                   settings->internal_e_prefactor_HIS);
+  delete [] positions;
+  return rot;
+}
+
+RRMRotamerPtr ConstructRRMPHE(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos,
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real chi2){
+
+  Particle* particles = new Particle[6];
+  geom::Vec3* positions = new geom::Vec3[6];
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5109,1.9680,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.40,1.38,2.0944,0.0,positions[3]);
+
+  //construct CE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.40,1.38,2.0944,0.0,positions[4]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[3],
+                   1.40,1.40,2.0944,0.0,positions[5]);
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CZ");
+
+  RRMRotamerPtr rot = boost::make_shared<RRMRotamer>(particles, 6, probability,
+                                   settings->internal_e_prefactor_PHE);
+
+  delete [] positions;
+  return rot;
+}
+
+
+
+
+
+FRMRotamerPtr ConstructFRMARG(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability,RotamerSettingsPtr settings,
+                              Real chi1, Real sig1, Real chi2, Real sig2, 
+                              Real chi3, Real sig3, Real chi4, Real sig4){
+
+  Real dev1 = sig1*settings->FRM_delta1_ARG;
+  Real dev2 = sig2*settings->FRM_delta2_ARG;
+  Real dev3 = sig3*settings->FRM_delta3_ARG;
+  Real dev4 = sig4*settings->FRM_delta4_ARG;
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[85];
+    particles = new Particle[85];
+  }
+  else{
+    positions = new geom::Vec3[42];
+    particles = new Particle[42];
+  }
+
+
+  //all dihedral angles withouth sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,1.5475,2.0237,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],1.5384,1.5475,1.9898,
+                   chi2,positions[1]);
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],1.5034,1.5384,1.8691,
+                   chi3,positions[2]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.3401,1.5034,2.1476,chi4,positions[3]);
+
+  //construct NH1
+  ConstructAtomPos(positions[1],positions[2],positions[3],
+                   1.3311,1.3401,2.0605,M_PI,positions[4]);
+
+  //construct NH2
+  ConstructAtomPos(positions[1],positions[2],positions[3],
+                   1.3292,1.3401,2.1317,0.0,positions[5]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,1.5475,2.0237,chi1-dev1,positions[6]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],1.5384,1.5475,1.9898,
+                   chi2,positions[7]);
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[6],positions[7],1.5034,1.5384,1.8691,
+                   chi3,positions[8]);
+
+  //construct CZ
+  ConstructAtomPos(positions[6],positions[7],positions[8],
+                   1.3401,1.5034,2.1476,chi4,positions[9]);
+
+  //construct NH1
+  ConstructAtomPos(positions[7],positions[8],positions[9],
+                   1.3311,1.3401,2.0605,M_PI,positions[10]);
+
+  //construct NH2
+  ConstructAtomPos(positions[7],positions[8],positions[9],
+                   1.3292,1.3401,2.1317,0.0,positions[11]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,1.5475,2.0237,chi1+dev1,positions[12]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[12],1.5384,1.5475,1.9898,
+                   chi2,positions[13]);
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[12],positions[13],1.5034,1.5384,1.8691,
+                   chi3,positions[14]);
+
+  //construct CZ
+  ConstructAtomPos(positions[12],positions[13],positions[14],
+                   1.3401,1.5034,2.1476,chi4,positions[15]);
+
+  //construct NH1
+  ConstructAtomPos(positions[13],positions[14],positions[15],
+                   1.3311,1.3401,2.0605,M_PI,positions[16]);
+
+  //construct NH2
+  ConstructAtomPos(positions[13],positions[14],positions[15],
+                   1.3292,1.3401,2.1317,0.0,positions[17]);
+
+  //chi2-dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],1.5384,1.5475,1.9898,
+                   chi2-dev2,positions[18]);
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[0],positions[18],1.5034,1.5384,1.8691,
+                   chi3,positions[19]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[18],positions[19],
+                   1.3401,1.5034,2.1476,chi4,positions[20]);
+
+  //construct NH1
+  ConstructAtomPos(positions[18],positions[19],positions[20],
+                   1.3311,1.3401,2.0605,M_PI,positions[21]);
+
+  //construct NH2
+  ConstructAtomPos(positions[18],positions[19],positions[20],
+                   1.3292,1.3401,2.1317,0.0,positions[22]);
+
+  //chi2+dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],1.5384,1.5475,1.9898,
+                   chi2+dev2,positions[23]);
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[0],positions[23],1.5034,1.5384,1.8691,
+                   chi3,positions[24]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[23],positions[24],
+                   1.3401,1.5034,2.1476,chi4,positions[25]);
+
+  //construct NH1
+  ConstructAtomPos(positions[23],positions[24],positions[25],
+                   1.3311,1.3401,2.0605,M_PI,positions[26]);
+
+  //construct NH2
+  ConstructAtomPos(positions[23],positions[24],positions[25],
+                   1.3292,1.3401,2.1317,0.0,positions[27]);
+
+
+  //chi3-dev3
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],1.5034,1.5384,1.8691,
+                   chi3-dev3,positions[28]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[28],
+                   1.3401,1.5034,2.1476,chi4,positions[29]);
+
+  //construct NH1
+  ConstructAtomPos(positions[1],positions[28],positions[29],
+                   1.3311,1.3401,2.0605,M_PI,positions[30]);
+
+  //construct NH2
+  ConstructAtomPos(positions[1],positions[28],positions[29],
+                   1.3292,1.3401,2.1317,0.0,positions[31]);
+
+  //chi3+dev3
+
+  //construct NE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],1.5034,1.5384,1.8691,
+                   chi3+dev3,positions[32]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[32],
+                   1.3401,1.5034,2.1476,chi4,positions[33]);
+
+  //construct NH1
+  ConstructAtomPos(positions[1],positions[32],positions[33],
+                   1.3311,1.3401,2.0605,M_PI,positions[34]);
+
+  //construct NH2
+  ConstructAtomPos(positions[1],positions[32],positions[33],
+                   1.3292,1.3401,2.1317,0.0,positions[35]);
+
+
+  //chi4-dev4
+
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.3401,1.5034,2.1476,chi4-dev4,positions[36]);
+
+  //construct NH1
+  ConstructAtomPos(positions[1],positions[2],positions[36],
+                   1.3311,1.3401,2.0605,M_PI,positions[37]);
+
+  //construct NH2
+  ConstructAtomPos(positions[1],positions[2],positions[36],
+                   1.3292,1.3401,2.1317,0.0,positions[38]);
+
+  //chi4+dev4
+
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.3401,1.5034,2.1476,chi4+dev4,positions[39]);
+
+  //construct NH1
+  ConstructAtomPos(positions[1],positions[2],positions[39],
+                   1.3311,1.3401,2.0605,M_PI,positions[40]);
+
+  //construct NH2
+  ConstructAtomPos(positions[1],positions[2],positions[39],
+                   1.3292,1.3401,2.1317,0.0,positions[41]);
+
+
+  //without sigma
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");    
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.10,"CD");
+
+  particles[2] = Particle(positions[2],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[5] = Particle(positions[5],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi1-dev1
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");    
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.10,"CD");
+
+  particles[8] = Particle(positions[8],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[10] = Particle(positions[10],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[11] = Particle(positions[11],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi1-dev1
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.00,"CG");    
+
+  particles[13] = Particle(positions[13],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.10,"CD");
+
+  particles[14] = Particle(positions[14],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[15] = Particle(positions[15],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[16] = Particle(positions[16],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[17] = Particle(positions[17],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi2-dev2  
+
+  particles[18] = Particle(positions[18],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.10,"CD");
+
+  particles[19] = Particle(positions[19],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[20] = Particle(positions[20],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[21] = Particle(positions[21],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[22] = Particle(positions[22],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi2+dev2  
+
+  particles[23] = Particle(positions[23],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.10,"CD");
+
+  particles[24] = Particle(positions[24],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[25] = Particle(positions[25],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[26] = Particle(positions[26],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[27] = Particle(positions[27],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi3-dev3
+
+  particles[28] = Particle(positions[28],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[29] = Particle(positions[29],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[30] = Particle(positions[30],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[31] = Particle(positions[31],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi3+dev3
+
+  particles[32] = Particle(positions[32],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE");
+
+  particles[33] = Particle(positions[33],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[34] = Particle(positions[34],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[35] = Particle(positions[35],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi4-dev4
+
+  particles[36] = Particle(positions[36],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[37] = Particle(positions[37],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[38] = Particle(positions[38],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+  //chi4+dev4
+
+  particles[39] = Particle(positions[39],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.50,"CZ");
+
+  particles[40] = Particle(positions[40],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH1");
+
+  particles[41] = Particle(positions[41],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.45,"NH2");
+
+
+
+  if(settings->consider_hbonds){
+    //hydrogens without sigma
+
+    //construct HE
+    ConstructAtomPos(positions[3],positions[1],
+                     positions[2],
+                     1.0065,1.5034,1.9747,M_PI,positions[42]);
+
+    //construct HH11
+    ConstructAtomPos(positions[2],positions[3],
+                     positions[4],
+                     0.9903,1.3311,2.1050,-3.1116,positions[43]);
+
+    //construct HH12
+    ConstructAtomPos(positions[43],positions[3],
+                     positions[4],
+                     1.0023,1.3311,2.0296,2.9878,positions[44]);
+
+    //construct HH21
+    ConstructAtomPos(positions[2],positions[3],
+                     positions[5],
+                     0.9899,1.3292,2.0928,-3.0393,positions[45]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[45],positions[3],
+                     positions[5],
+                     0.9914,1.3292,2.0399,2.9000,positions[46]);
+
+
+    //hydrogens chi1-dev1
+
+    //construct HE
+    ConstructAtomPos(positions[9],positions[7],
+                     positions[8],
+                     1.0065,1.5034,1.9747,M_PI,positions[47]);
+
+    //construct HH11
+    ConstructAtomPos(positions[8],positions[9],
+                     positions[10],
+                     0.9903,1.3311,2.1050,-3.1116,positions[48]);
+
+    //construct HH12
+    ConstructAtomPos(positions[48],positions[9],
+                     positions[10],
+                     1.0023,1.3311,2.0296,2.9878,positions[49]);
+
+    //construct HH21
+    ConstructAtomPos(positions[8],positions[9],
+                     positions[11],
+                     0.9899,1.3292,2.0928,-3.0393,positions[50]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[50],positions[9],
+                     positions[11],
+                     0.9914,1.3292,2.0399,2.9000,positions[51]);
+
+    //hydrogens chi1+dev1
+
+
+    //construct HE
+    ConstructAtomPos(positions[15],positions[13],
+                     positions[14],
+                     1.0065,1.5034,1.9747,M_PI,positions[52]);
+
+    //construct HH11
+    ConstructAtomPos(positions[14],positions[15],
+                     positions[16],
+                     0.9903,1.3311,2.1050,-3.1116,positions[53]);
+
+    //construct HH12
+    ConstructAtomPos(positions[53],positions[15],
+                     positions[16],
+                     1.0023,1.3311,2.0296,2.9878,positions[54]);
+
+    //construct HH21
+    ConstructAtomPos(positions[14],positions[15],
+                     positions[17],
+                     0.9899,1.3292,2.0928,-3.0393,positions[55]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[55],positions[15],
+                     positions[17],
+                     0.9914,1.3292,2.0399,2.9000,positions[56]);
+
+
+
+    //hydrogens chi2-dev2
+
+    //construct HE
+    ConstructAtomPos(positions[20],positions[18],
+                     positions[19],
+                     1.0065,1.5034,1.9747,M_PI,positions[57]);
+
+    //construct HH11
+    ConstructAtomPos(positions[19],positions[20],
+                     positions[21],
+                     0.9903,1.3311,2.1050,-3.1116,positions[58]);
+
+    //construct HH12
+    ConstructAtomPos(positions[58],positions[20],
+                     positions[21],
+                     1.0023,1.3311,2.0296,2.9878,positions[59]);
+
+    //construct HH21
+    ConstructAtomPos(positions[19],positions[20],
+                     positions[22],
+                     0.9899,1.3292,2.0928,-3.0393,positions[60]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[60],positions[20],
+                     positions[22],
+                     0.9914,1.3292,2.0399,2.9000,positions[61]);
+
+    //hydrogens chi2+dev2
+
+    //construct HE
+    ConstructAtomPos(positions[25],positions[23],
+                     positions[24],
+                     1.0065,1.5034,1.9747,M_PI,positions[62]);
+
+    //construct HH11
+    ConstructAtomPos(positions[24],positions[25],
+                     positions[26],
+                     0.9903,1.3311,2.1050,-3.1116,positions[63]);
+
+    //construct HH12
+    ConstructAtomPos(positions[63],positions[25],
+                     positions[26],
+                     1.0023,1.3311,2.0296,2.9878,positions[64]);
+
+    //construct HH21
+    ConstructAtomPos(positions[24],positions[25],
+                     positions[27],
+                     0.9899,1.3292,2.0928,-3.0393,positions[65]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[65],positions[25],
+                     positions[27],
+                     0.9914,1.3292,2.0399,2.9000,positions[66]);
+
+    //hydrogens chi3-dev3
+
+    //construct HE
+    ConstructAtomPos(positions[29],positions[1],
+                     positions[28],
+                     1.0065,1.5034,1.9747,M_PI,positions[67]);
+
+    //construct HH11
+    ConstructAtomPos(positions[28],positions[29],
+                     positions[30],
+                     0.9903,1.3311,2.1050,-3.1116,positions[68]);
+
+    //construct HH12
+    ConstructAtomPos(positions[68],positions[29],
+                     positions[30],
+                     1.0023,1.3311,2.0296,2.9878,positions[69]);
+
+    //construct HH21
+    ConstructAtomPos(positions[28],positions[29],
+                     positions[31],
+                     0.9899,1.3292,2.0928,-3.0393,positions[70]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[70],positions[29],
+                     positions[31],
+                     0.9914,1.3292,2.0399,2.9000,positions[71]);
+
+    
+    //hydrogens chi3+dev3
+
+    //construct HE
+    ConstructAtomPos(positions[33],positions[1],
+                     positions[32],
+                     1.0065,1.5034,1.9747,M_PI,positions[72]);
+
+    //construct HH11
+    ConstructAtomPos(positions[32],positions[33],
+                     positions[34],
+                     0.9903,1.3311,2.1050,-3.1116,positions[73]);
+
+    //construct HH12
+    ConstructAtomPos(positions[73],positions[33],
+                     positions[34],
+                     1.0023,1.3311,2.0296,2.9878,positions[74]);
+
+    //construct HH21
+    ConstructAtomPos(positions[32],positions[33],
+                     positions[35],
+                     0.9899,1.3292,2.0928,-3.0393,positions[75]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[75],positions[33],
+                     positions[35],
+                     0.9914,1.3292,2.0399,2.9000,positions[76]);
+
+
+    //hydrogens chi4-dev4
+
+    //construct HH11
+    ConstructAtomPos(positions[2],positions[36],
+                     positions[37],
+                     0.9903,1.3311,2.1050,-3.1116,positions[77]);
+
+    //construct HH12
+    ConstructAtomPos(positions[77],positions[36],
+                     positions[37],
+                     1.0023,1.3311,2.0296,2.9878,positions[78]);
+
+    //construct HH21
+    ConstructAtomPos(positions[2],positions[36],
+                     positions[38],
+                     0.9899,1.3292,2.0928,-3.0393,positions[79]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[79],positions[36],
+                     positions[38],
+                     0.9914,1.3292,2.0399,2.9000,positions[80]);
+
+    //hydrogens chi4+dev4
+
+    //construct HH11
+    ConstructAtomPos(positions[2],positions[39],
+                     positions[40],
+                     0.9903,1.3311,2.1050,-3.1116,positions[81]);
+
+    //construct HH12
+    ConstructAtomPos(positions[81],positions[39],
+                     positions[40],
+                     1.0023,1.3311,2.0296,2.9878,positions[82]);
+
+    //construct HH21
+    ConstructAtomPos(positions[2],positions[39],
+                     positions[41],
+                     0.9899,1.3292,2.0928,-3.0393,positions[83]);
+
+    //construct HH22  
+    ConstructAtomPos(positions[83],positions[39],
+                     positions[41],
+                     0.9914,1.3292,2.0399,2.9000,positions[84]);
+
+    //without sigma
+
+    particles[42] = Particle(positions[42],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE");
+    particles[42].SetPolarDirection(positions[42] - positions[2]);
+
+    particles[43] = Particle(positions[43],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[43].SetPolarDirection(positions[43] - positions[4]);
+
+    particles[44] = Particle(positions[44],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[44].SetPolarDirection(positions[44] - positions[4]);
+
+    particles[45] = Particle(positions[45],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[45].SetPolarDirection(positions[45] - positions[5]);
+
+    particles[46] = Particle(positions[46],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[46].SetPolarDirection(positions[46] - positions[5]);
+
+    //chi1-dev1
+
+    particles[47] = Particle(positions[47],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE");
+    particles[47].SetPolarDirection(positions[47] - positions[8]);
+
+    particles[48] = Particle(positions[48],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[48].SetPolarDirection(positions[48] - positions[10]);
+
+    particles[49] = Particle(positions[49],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[49].SetPolarDirection(positions[49] - positions[10]);
+
+    particles[50] = Particle(positions[50],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[50].SetPolarDirection(positions[50] - positions[11]);
+
+    particles[51] = Particle(positions[51],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[51].SetPolarDirection(positions[51] - positions[11]);
+
+    //chi1+dev1
+
+    particles[52] = Particle(positions[52],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE");
+    particles[52].SetPolarDirection(positions[52] - positions[14]);
+
+    particles[53] = Particle(positions[53],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[53].SetPolarDirection(positions[53] - positions[16]);
+
+    particles[54] = Particle(positions[54],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[54].SetPolarDirection(positions[54] - positions[16]);
+
+    particles[55] = Particle(positions[55],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[55].SetPolarDirection(positions[55] - positions[17]);
+
+    particles[56] = Particle(positions[56],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[56].SetPolarDirection(positions[56] - positions[17]);
+
+    //chi2-dev2
+
+    particles[57] = Particle(positions[57],settings->H_max_radius,
+                                    settings->H_radius,-0.0498,0.30,"HE");
+    particles[57].SetPolarDirection(positions[57] - positions[19]);
+
+    particles[58] = Particle(positions[58],settings->H_max_radius,
+                                   settings->H_radius,-0.0498,0.35,"HH11");
+    particles[58].SetPolarDirection(positions[58] - positions[21]);
+
+    particles[59] = Particle(positions[59],settings->H_max_radius,
+                                   settings->H_radius,-0.0498,0.35,"HH12");
+    particles[59].SetPolarDirection(positions[59] - positions[21]);
+
+    particles[60] = Particle(positions[60],settings->H_max_radius,
+                                   settings->H_radius,-0.0498,0.35,"HH21");
+    particles[60].SetPolarDirection(positions[60] - positions[22]);
+
+    particles[61] = Particle(positions[61],settings->H_max_radius,
+                                     settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[61].SetPolarDirection(positions[61] - positions[22]);
+
+    //chi2+dev2
+
+    particles[62] = Particle(positions[62],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE");
+    particles[62].SetPolarDirection(positions[62] - positions[24]);
+
+    particles[63] = Particle(positions[63],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[63].SetPolarDirection(positions[63] - positions[26]);
+
+    particles[64] = Particle(positions[64],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[64].SetPolarDirection(positions[64] - positions[26]);
+
+    particles[65] = Particle(positions[65],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[65].SetPolarDirection(positions[65] - positions[27]);
+
+    particles[66] = Particle(positions[66],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[66].SetPolarDirection(positions[66] - positions[27]);
+
+    //chi3-dev3
+
+    particles[67] = Particle(positions[67],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE");
+    particles[67].SetPolarDirection(positions[67] - positions[28]);
+
+    particles[68] = Particle(positions[68],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[68].SetPolarDirection(positions[68] - positions[30]);
+
+    particles[69] = Particle(positions[69],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[69].SetPolarDirection(positions[69] - positions[30]);
+
+    particles[70] = Particle(positions[70],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[70].SetPolarDirection(positions[70] - positions[31]);
+
+    particles[71] = Particle(positions[71],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[71].SetPolarDirection(positions[71] - positions[31]);
+
+    //chi3+dev3
+
+    particles[72] = Particle(positions[72],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE");
+    particles[72].SetPolarDirection(positions[72] - positions[32]);
+
+    particles[73] = Particle(positions[73],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[73].SetPolarDirection(positions[73] - positions[34]);
+
+    particles[74] = Particle(positions[74],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[74].SetPolarDirection(positions[74] - positions[34]);
+
+    particles[75] = Particle(positions[75],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[75].SetPolarDirection(positions[75] - positions[35]);
+
+    particles[76] = Particle(positions[76],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[76].SetPolarDirection(positions[76] - positions[35]);
+
+    //chi4-dev4
+
+    particles[77] = Particle(positions[77],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[77].SetPolarDirection(positions[77] - positions[37]);
+
+    particles[78] = Particle(positions[78],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[78].SetPolarDirection(positions[78] - positions[37]);
+
+    particles[79] = Particle(positions[79],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[79].SetPolarDirection(positions[79] - positions[38]);
+
+    particles[80] = Particle(positions[80],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[80].SetPolarDirection(positions[80] - positions[38]);
+
+    //chi4+dev4
+
+    particles[81] = Particle(positions[81],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH11");
+    particles[81].SetPolarDirection(positions[81] - positions[40]);
+
+    particles[82] = Particle(positions[82],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH12");
+    particles[82].SetPolarDirection(positions[82] - positions[40]);
+
+    particles[83] = Particle(positions[83],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH21");
+    particles[83].SetPolarDirection(positions[83] - positions[41]);
+
+    particles[84] = Particle(positions[84],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HH22");                                     
+    particles[84].SetPolarDirection(positions[84] - positions[41]);
+
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,85,settings->FRM_T_ARG,
+                                     probability,settings->internal_e_prefactor_ARG);
+
+    std::vector<int> subrotamer_definition(11);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 4;
+    subrotamer_definition[5] = 5;
+    subrotamer_definition[6] = 42;
+    subrotamer_definition[7] = 43;
+    subrotamer_definition[8] = 44;
+    subrotamer_definition[9] = 45;
+    subrotamer_definition[10] = 46;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 6;
+    subrotamer_definition[1] = 7;
+    subrotamer_definition[2] = 8;
+    subrotamer_definition[3] = 9;
+    subrotamer_definition[4] = 10;
+    subrotamer_definition[5] = 11;
+    subrotamer_definition[6] = 47;
+    subrotamer_definition[7] = 48;
+    subrotamer_definition[8] = 49;
+    subrotamer_definition[9] = 50;
+    subrotamer_definition[10] = 51;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 12;
+    subrotamer_definition[1] = 13;
+    subrotamer_definition[2] = 14;
+    subrotamer_definition[3] = 15;
+    subrotamer_definition[4] = 16;
+    subrotamer_definition[5] = 17;
+    subrotamer_definition[6] = 52;
+    subrotamer_definition[7] = 53;
+    subrotamer_definition[8] = 54;
+    subrotamer_definition[9] = 55;
+    subrotamer_definition[10] = 56;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 18;
+    subrotamer_definition[2] = 19;
+    subrotamer_definition[3] = 20;
+    subrotamer_definition[4] = 21;
+    subrotamer_definition[5] = 22;
+    subrotamer_definition[6] = 57;
+    subrotamer_definition[7] = 58;
+    subrotamer_definition[8] = 59;
+    subrotamer_definition[9] = 60;
+    subrotamer_definition[10] = 61;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 23;
+    subrotamer_definition[2] = 24;
+    subrotamer_definition[3] = 25;
+    subrotamer_definition[4] = 26;
+    subrotamer_definition[5] = 27;
+    subrotamer_definition[6] = 62;
+    subrotamer_definition[7] = 63;
+    subrotamer_definition[8] = 64;
+    subrotamer_definition[9] = 65;
+    subrotamer_definition[10] = 66;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3-dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 28;
+    subrotamer_definition[3] = 29;
+    subrotamer_definition[4] = 30;
+    subrotamer_definition[5] = 31;
+    subrotamer_definition[6] = 67;
+    subrotamer_definition[7] = 68;
+    subrotamer_definition[8] = 69;
+    subrotamer_definition[9] = 70;
+    subrotamer_definition[10] = 71;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3+dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 32;
+    subrotamer_definition[3] = 33;
+    subrotamer_definition[4] = 34;
+    subrotamer_definition[5] = 35;
+    subrotamer_definition[6] = 72;
+    subrotamer_definition[7] = 73;
+    subrotamer_definition[8] = 74;
+    subrotamer_definition[9] = 75;
+    subrotamer_definition[10] = 76;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi4-dev4
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 36;
+    subrotamer_definition[4] = 37;
+    subrotamer_definition[5] = 38;
+    subrotamer_definition[6] = 42;
+    subrotamer_definition[7] = 77;
+    subrotamer_definition[8] = 78;
+    subrotamer_definition[9] = 79;
+    subrotamer_definition[10] = 80;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi4+dev4
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 39;
+    subrotamer_definition[4] = 40;
+    subrotamer_definition[5] = 41;
+    subrotamer_definition[6] = 42;
+    subrotamer_definition[7] = 81;
+    subrotamer_definition[8] = 82;
+    subrotamer_definition[9] = 83;
+    subrotamer_definition[10] = 84;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    
+    return rot;
+  }
+
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,42,settings->FRM_T_ARG,
+                                   probability,settings->internal_e_prefactor_ARG);
+
+  std::vector<int> subrotamer_definition(6);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+  subrotamer_definition[4] = 4;
+  subrotamer_definition[5] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 6;
+  subrotamer_definition[1] = 7;
+  subrotamer_definition[2] = 8;
+  subrotamer_definition[3] = 9;
+  subrotamer_definition[4] = 10;
+  subrotamer_definition[5] = 11;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 12;
+  subrotamer_definition[1] = 13;
+  subrotamer_definition[2] = 14;
+  subrotamer_definition[3] = 15;
+  subrotamer_definition[4] = 16;
+  subrotamer_definition[5] = 17;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 18;
+  subrotamer_definition[2] = 19;
+  subrotamer_definition[3] = 20;
+  subrotamer_definition[4] = 21;
+  subrotamer_definition[5] = 22;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 23;
+  subrotamer_definition[2] = 24;
+  subrotamer_definition[3] = 25;
+  subrotamer_definition[4] = 26;
+  subrotamer_definition[5] = 27;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3-dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 28;
+  subrotamer_definition[3] = 29;
+  subrotamer_definition[4] = 30;
+  subrotamer_definition[5] = 31;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3+dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 32;
+  subrotamer_definition[3] = 33;
+  subrotamer_definition[4] = 34;
+  subrotamer_definition[5] = 35;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi4-dev4
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 36;
+  subrotamer_definition[4] = 37;
+  subrotamer_definition[5] = 38;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi4+dev4
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 39;
+  subrotamer_definition[4] = 40;
+  subrotamer_definition[5] = 41;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+  
+  delete [] positions;
+
+  return rot;
+}
+
+FRMRotamerPtr ConstructFRMASN(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+
+  Real dev1 = sig1*settings->FRM_delta1_ASN;
+  Real dev2 = sig2*settings->FRM_delta2_ASN;  
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[23];
+    particles = new Particle[23];
+  }  
+  else{
+    positions = new geom::Vec3[13];
+    particles = new Particle[13];
+  }
+
+  //no sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5319,1.9949,chi1,positions[0]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2323,1.5319,2.1391,chi2,positions[1]);
+
+  //construct ND2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3521,1.5319,2.0272,chi2+M_PI,positions[2]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5319,1.9949,chi1-dev1,positions[3]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[3],
+                   1.2323,1.5319,2.1391,chi2,positions[4]);
+
+  //construct ND2
+  ConstructAtomPos(ca_pos,cb_pos,positions[3],
+                   1.3521,1.5319,2.0272,chi2+M_PI,positions[5]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5319,1.9949,chi1+dev1,positions[6]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.2323,1.5319,2.1391,chi2,positions[7]);
+
+  //construct ND2
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.3521,1.5319,2.0272,chi2+M_PI,positions[8]);
+
+  //chi2-dev2
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2323,1.5319,2.1391,chi2-dev2,positions[9]);
+
+  //construct ND2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3521,1.5319,2.0272,chi2-dev2+M_PI,positions[10]);
+
+  //chi2+dev2
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2323,1.5319,2.1391,chi2+dev2,positions[11]);
+
+  //construct ND2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3521,1.5319,2.0272,chi2+dev2+M_PI,positions[12]);
+
+
+  //without sigma
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.55,"CG");
+
+  particles[1] = Particle(positions[1],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OD1");
+
+  particles[2] = Particle(positions[2],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.6,"ND2");
+
+  //chi1-dev1
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.55,"CG");
+
+  particles[4] = Particle(positions[4],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OD1");
+
+  particles[5] = Particle(positions[5],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.6,"ND2");
+
+  //chi1+dev1
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.55,"CG");
+
+  particles[7] = Particle(positions[7],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OD1");
+
+  particles[8] = Particle(positions[8],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.6,"ND2");
+
+  //chi2-dev2
+
+  particles[9] = Particle(positions[9],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OD1");
+
+  particles[10] = Particle(positions[10],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.6,"ND2");
+
+  //chi2+dev2
+
+  particles[11] = Particle(positions[11],settings->O_max_radius,
+                                  settings->O_radius,-0.1591,-0.55,"OD1");
+
+  particles[12] = Particle(positions[12],settings->N_max_radius,
+                                  settings->N_radius,-0.2384,-0.6,"ND2");
+
+
+  if(settings->consider_hbonds){
+
+    //no sigma
+
+    //construct HD21
+    ConstructAtomPos(positions[1], positions[0], positions[2],
+                     0.9963,1.3521,2.0481,M_PI,positions[13]);
+
+    //construct HD22
+    ConstructAtomPos(positions[1], positions[0], positions[2],
+                     0.9951,1.3521,2.0953,0,positions[14]);
+
+    //chi1-dev1
+
+    //construct HD21
+    ConstructAtomPos(positions[4], positions[3], positions[5],
+                     0.9963,1.3521,2.0481,M_PI,positions[15]);
+
+    //construct HD22
+    ConstructAtomPos(positions[4], positions[3], positions[5],
+                     0.9951,1.3521,2.0953,0,positions[16]);
+
+    //chi1+dev1
+
+    //construct HD21
+    ConstructAtomPos(positions[7], positions[6], positions[8],
+                     0.9963,1.3521,2.0481,M_PI,positions[17]);
+
+    //construct HD22
+    ConstructAtomPos(positions[7], positions[6], positions[8],
+                     0.9951,1.3521,2.0953,0,positions[18]);
+
+    //chi2-dev2
+
+    //construct HD21
+    ConstructAtomPos(positions[9], positions[0], positions[10],
+                     0.9963,1.3521,2.0481,M_PI,positions[19]);
+
+    //construct HD22
+    ConstructAtomPos(positions[9], positions[0], positions[10],
+                     0.9951,1.3521,2.0953,0,positions[20]);
+
+    //chi2+dev2
+
+    //construct HD21
+    ConstructAtomPos(positions[11], positions[0], positions[12],
+                     0.9963,1.3521,2.0481,M_PI,positions[21]);
+
+    //construct HD22
+    ConstructAtomPos(positions[11], positions[0], positions[12],
+                     0.9951,1.3521,2.0953,0,positions[22]);
+
+    //without sigma
+
+    particles[13] = Particle(positions[13],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD21");
+    particles[13].SetPolarDirection(positions[13]-positions[2]);
+
+    particles[14] = Particle(positions[14],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD22");
+    particles[14].SetPolarDirection(positions[14]-positions[2]);
+
+    //chi1-dev1
+
+    particles[15] = Particle(positions[15],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD21");
+    particles[15].SetPolarDirection(positions[15]-positions[5]);
+
+    particles[16] = Particle(positions[16],settings->H_max_radius,
+                                    settings->H_radius,-0.0498,0.30,"HD22");
+    particles[16].SetPolarDirection(positions[16]-positions[5]);
+
+    //chi1+dev1
+
+    particles[17] = Particle(positions[17],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD21");
+    particles[17].SetPolarDirection(positions[17]-positions[8]);
+
+    particles[18] = Particle(positions[18],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD22");
+    particles[18].SetPolarDirection(positions[18]-positions[8]);
+
+    //chi2-dev2
+
+    particles[19] = Particle(positions[19],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD21");
+    particles[19].SetPolarDirection(positions[19]-positions[10]);
+
+    particles[20] = Particle(positions[20],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD22");
+    particles[20].SetPolarDirection(positions[20]-positions[10]);
+
+    //chi2+dev2
+
+    particles[21] = Particle(positions[21],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD21");
+    particles[21].SetPolarDirection(positions[21]-positions[12]);
+
+    particles[22] = Particle(positions[22],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD22");
+    particles[22].SetPolarDirection(positions[22]-positions[12]);
+
+    //electron lonepairs for od1 without sigma
+
+    geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+    ConstructAtomPos(cb_pos, positions[0], positions[1],
+                     1.00,1.2323,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos, positions[0], positions[1],
+                     1.00,1.2323,2.0944, 0.0,lone_pair_center_two);
+    particles[1].AddLonePair(lone_pair_center_one-positions[1]);
+    particles[1].AddLonePair(lone_pair_center_two-positions[1]);
+
+    //chi1-dev1
+
+    ConstructAtomPos(cb_pos, positions[3], positions[4],
+                     1.00,1.2323,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos, positions[3], positions[4],
+                     1.00,1.2323,2.0944, 0.0,lone_pair_center_two);
+    particles[4].AddLonePair(lone_pair_center_one-positions[4]);
+    particles[4].AddLonePair(lone_pair_center_two-positions[4]);
+
+    //chi1+dev1
+    
+    ConstructAtomPos(cb_pos, positions[6], positions[7],
+                     1.00,1.2323,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos, positions[6], positions[7],
+                     1.00,1.2323,2.0944, 0.0,lone_pair_center_two);
+    particles[7].AddLonePair(lone_pair_center_one-positions[7]);
+    particles[7].AddLonePair(lone_pair_center_two-positions[7]);
+
+    //chi2-dev2
+    
+    ConstructAtomPos(cb_pos, positions[0], positions[9],
+                     1.00,1.2323,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos, positions[0], positions[9],
+                     1.00,1.2323,2.0944, 0.0,lone_pair_center_two);
+    particles[9].AddLonePair(lone_pair_center_one-positions[9]);
+    particles[9].AddLonePair(lone_pair_center_two-positions[9]);
+
+    //chi2+dev2
+    
+    ConstructAtomPos(cb_pos, positions[0], positions[11],
+                     1.00,1.2323,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos, positions[0], positions[11],
+                     1.00,1.2323,2.0944, 0.0,lone_pair_center_two);
+    particles[11].AddLonePair(lone_pair_center_one-positions[11]);
+    particles[11].AddLonePair(lone_pair_center_two-positions[11]);
+
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,23,settings->FRM_T_ASN,
+                                     probability,settings->internal_e_prefactor_ASN);
+
+
+    std::vector<int> subrotamer_definition(5);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 13;
+    subrotamer_definition[4] = 14;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 3;
+    subrotamer_definition[1] = 4;
+    subrotamer_definition[2] = 5;
+    subrotamer_definition[3] = 15;
+    subrotamer_definition[4] = 16;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 6;
+    subrotamer_definition[1] = 7;
+    subrotamer_definition[2] = 8;
+    subrotamer_definition[3] = 17;
+    subrotamer_definition[4] = 18;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 9;
+    subrotamer_definition[2] = 10;
+    subrotamer_definition[3] = 19;
+    subrotamer_definition[4] = 20;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 11;
+    subrotamer_definition[2] = 12;
+    subrotamer_definition[3] = 21;
+    subrotamer_definition[4] = 22;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot;
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,13,settings->FRM_T_ASN,
+                                   probability,settings->internal_e_prefactor_ASN);
+
+
+  std::vector<int> subrotamer_definition(3);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 3;
+  subrotamer_definition[1] = 4;
+  subrotamer_definition[2] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 6;
+  subrotamer_definition[1] = 7;
+  subrotamer_definition[2] = 8;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 9;
+  subrotamer_definition[2] = 10;
+
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 11;
+  subrotamer_definition[2] = 12;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+
+  return rot;
+}
+
+FRMRotamerPtr ConstructFRMASP(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+
+  Real dev1 = sig1*settings->FRM_delta1_ASP;
+  Real dev2 = sig2*settings->FRM_delta2_ASP;
+
+
+  Particle* particles = new Particle[13];
+  geom::Vec3* positions = new geom::Vec3[13];
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5218,1.9652,chi1,positions[0]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2565,1.5218,2.0593,chi2,positions[1]);
+
+  //construct OD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2541,1.5218,2.0543,chi2+M_PI,positions[2]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5218,1.9652,chi1-dev1,positions[3]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[3],
+                   1.2565,1.5218,2.0593,chi2,positions[4]);
+
+  //construct OD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[3],
+                   1.2541,1.5218,2.0543,chi2+M_PI,positions[5]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5218,1.9652,chi1+dev1,positions[6]);
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.2565,1.5218,2.0593,chi2,positions[7]);
+
+  //construct OD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.2541,1.5218,2.0543,chi2+M_PI,positions[8]);
+
+  //chi2-dev2
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2565,1.5218,2.0593,chi2-dev2,positions[9]);
+
+  //construct OD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2541,1.5218,2.0543,chi2-dev2+M_PI,positions[10]);
+
+  //chi2+dev2
+
+  //construct OD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2565,1.5218,2.0593,chi2+dev2,positions[11]);
+
+  //construct OD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.2541,1.5218,2.0543,chi2+dev2+M_PI,positions[12]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CG");
+
+  particles[1] = Particle(positions[1],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD1");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CG");
+
+  particles[4] = Particle(positions[4],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD1");
+
+  particles[5] = Particle(positions[5],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD2");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CG");
+
+  particles[7] = Particle(positions[7],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD1");
+
+  particles[8] = Particle(positions[8],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD2");
+
+  particles[9] = Particle(positions[9],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OD1");
+
+  particles[10] = Particle(positions[10],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OD2");
+
+  particles[11] = Particle(positions[11],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OD1");
+
+  particles[12] = Particle(positions[12],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OD2");
+
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,13,settings->FRM_T_ASP,
+                                   probability,settings->internal_e_prefactor_ASP);
+
+
+  std::vector<int> subrotamer_definition(3);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 3;
+  subrotamer_definition[1] = 4;
+  subrotamer_definition[2] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 6;
+  subrotamer_definition[1] = 7;
+  subrotamer_definition[2] = 8;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 9;
+  subrotamer_definition[2] = 10;
+
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 11;
+  subrotamer_definition[2] = 12;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+
+  if(settings->consider_hbonds){
+
+    //construct electron lone pairs no sigma
+    geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+    ConstructAtomPos(cb_pos,positions[0],positions[1],
+                     1.00,1.2565,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[0],positions[1],
+                     1.00,1.2565,2.0944,0.0,lone_pair_center_two);
+    particles[1].AddLonePair(lone_pair_center_one-positions[1]);
+    particles[1].AddLonePair(lone_pair_center_two-positions[1]);
+
+    ConstructAtomPos(cb_pos,positions[0],positions[2],
+                     1.00,1.2541,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[0],positions[2],
+                     1.00,1.2541,2.0944,0.0,lone_pair_center_two);
+    particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+    particles[2].AddLonePair(lone_pair_center_two-positions[2]);
+
+    //chi1-dev1
+    ConstructAtomPos(cb_pos,positions[3],positions[4],
+                     1.00,1.2565,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[3],positions[4],
+                     1.00,1.2565,2.0944,0.0,lone_pair_center_two);
+    particles[4].AddLonePair(lone_pair_center_one-positions[4]);
+    particles[4].AddLonePair(lone_pair_center_two-positions[4]);
+
+    ConstructAtomPos(cb_pos,positions[3],positions[5],
+                     1.00,1.2541,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[3],positions[5],
+                     1.00,1.2541,2.0944,0.0,lone_pair_center_two);
+    particles[5].AddLonePair(lone_pair_center_one-positions[5]);
+    particles[5].AddLonePair(lone_pair_center_two-positions[5]);
+
+    //chi1+dev1
+    ConstructAtomPos(cb_pos,positions[6],positions[7],
+                     1.00,1.2565,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[6],positions[7],
+                     1.00,1.2565,2.0944,0.0,lone_pair_center_two);
+    particles[7].AddLonePair(lone_pair_center_one-positions[7]);
+    particles[7].AddLonePair(lone_pair_center_two-positions[7]);
+
+    ConstructAtomPos(cb_pos,positions[6],positions[8],
+                     1.00,1.2541,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[6],positions[8],
+                     1.00,1.2541,2.0944,0.0,lone_pair_center_two);
+    particles[8].AddLonePair(lone_pair_center_one-positions[8]);
+    particles[8].AddLonePair(lone_pair_center_two-positions[8]);
+
+    //chi2-dev2
+    ConstructAtomPos(cb_pos,positions[0],positions[9],
+                     1.00,1.2565,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[0],positions[9],
+                     1.00,1.2565,2.0944,0.0,lone_pair_center_two);
+    particles[9].AddLonePair(lone_pair_center_one-positions[9]);
+    particles[9].AddLonePair(lone_pair_center_two-positions[9]);
+
+    ConstructAtomPos(cb_pos,positions[0],positions[10],
+                     1.00,1.2541,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[0],positions[10],
+                     1.00,1.2541,2.0944,0.0,lone_pair_center_two);
+    particles[10].AddLonePair(lone_pair_center_one-positions[10]);
+    particles[10].AddLonePair(lone_pair_center_two-positions[10]);
+
+    //chi2+dev2
+    ConstructAtomPos(cb_pos,positions[0],positions[11],
+                     1.00,1.2565,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[0],positions[11],
+                     1.00,1.2565,2.0944,0.0,lone_pair_center_two);
+    particles[11].AddLonePair(lone_pair_center_one-positions[11]);
+    particles[11].AddLonePair(lone_pair_center_two-positions[11]);
+
+    ConstructAtomPos(cb_pos,positions[0],positions[12],
+                     1.00,1.2541,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[0],positions[12],
+                     1.00,1.2541,2.0944,0.0,lone_pair_center_two);
+    particles[12].AddLonePair(lone_pair_center_one-positions[12]);
+    particles[12].AddLonePair(lone_pair_center_two-positions[12]);
+  }
+
+  delete [] positions;
+  return rot;
+}
+
+FRMRotamerPtr ConstructFRMGLN(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos,
+                              Real probability,RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, 
+                              Real sig2, Real chi3, Real sig3){
+
+  Real dev1 = sig1*settings->FRM_delta1_GLN;
+  Real dev2 = sig2*settings->FRM_delta2_GLN;
+  Real dev3 = sig3*settings->FRM_delta3_GLN;
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[36];
+    particles = new Particle[36];
+  }
+  else{
+    positions = new geom::Vec3[22];
+    particles = new Particle[22];
+  }
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5534,2.0162,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.532,1.5534,1.9635,chi2,positions[1]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2294,1.532,2.1209,chi3,positions[2]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.3530,1.532,2.0392,chi3+M_PI,positions[3]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5534,2.0162,chi1-dev1,positions[4]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[4],
+                   1.532,1.5534,1.9635,chi2,positions[5]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[4],positions[5],
+                   1.2294,1.532,2.1209,chi3,positions[6]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[4],positions[5],
+                   1.3530,1.532,2.0392,chi3+M_PI,positions[7]);
+
+  //chi11+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5534,2.0162,chi1+dev1,positions[8]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[8],
+                   1.532,1.5534,1.9635,chi2,positions[9]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[8],positions[9],
+                   1.2294,1.532,2.1209,chi3,positions[10]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[8],positions[9],
+                   1.3530,1.532,2.0392,chi3+M_PI,positions[11]);
+
+  //chi12-dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.532,1.5534,1.9635,chi2-dev2,positions[12]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[12],
+                   1.2294,1.532,2.1209,chi3,positions[13]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[0],positions[12],
+                   1.3530,1.532,2.0392,chi3+M_PI,positions[14]);
+
+  //chi12+dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.532,1.5534,1.9635,chi2+dev2,positions[15]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[15],
+                   1.2294,1.532,2.1209,chi3,positions[16]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[0],positions[15],
+                   1.3530,1.532,2.0392,chi3+M_PI,positions[17]);
+
+  //chi13-dev3
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2294,1.532,2.1209,chi3-dev3,positions[18]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.3530,1.532,2.0392,chi3-dev3+M_PI,positions[19]);
+
+  //chi13+dev3
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2294,1.532,2.1209,chi3+dev3,positions[20]);
+
+  //construct NE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.3530,1.532,2.0392,chi3+dev3+M_PI,positions[21]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.55,"CD");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[3] = Particle(positions[3],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.55,"CD");
+
+  particles[6] = Particle(positions[6],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[7] = Particle(positions[7],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.55,"CD");
+
+  particles[10] = Particle(positions[10],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[11] = Particle(positions[11],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.55,"CD");
+
+  particles[13] = Particle(positions[13],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[14] = Particle(positions[14],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  particles[15] = Particle(positions[15],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.55,"CD");
+
+  particles[16] = Particle(positions[16],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[17] = Particle(positions[17],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  particles[18] = Particle(positions[18],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[19] = Particle(positions[19],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+  particles[20] = Particle(positions[20],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.55,"OE1");
+
+  particles[21] = Particle(positions[21],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.60,"NE2");
+
+
+
+  if(settings->consider_hbonds){
+
+    //without sigma
+
+    //construct HE21
+    ConstructAtomPos(positions[2], positions[1], positions[3],
+                     0.9959,1.3530,2.0396,M_PI,positions[22]);
+
+    //construct HE22
+    ConstructAtomPos(positions[2], positions[1], positions[3],
+                     0.9943,1.3530,2.0914,0,positions[23]);
+
+    //chi1-dev1
+
+    //construct HE21
+    ConstructAtomPos(positions[6], positions[5], positions[7],
+                     0.9959,1.3530,2.0396,M_PI,positions[24]);
+
+    //construct HE22
+    ConstructAtomPos(positions[6], positions[5], positions[7],
+                     0.9943,1.3530,2.0914,0,positions[25]);
+
+    //chi1+dev1
+
+    //construct HE21
+    ConstructAtomPos(positions[10], positions[9], positions[11],
+                     0.9959,1.3530,2.0396,M_PI,positions[26]);
+
+    //construct HE22
+    ConstructAtomPos(positions[10], positions[9], positions[11],
+                     0.9943,1.3530,2.0914,0,positions[27]);
+
+    //chi2-dev2
+
+    //construct HE21
+    ConstructAtomPos(positions[13], positions[12], positions[14],
+                     0.9959,1.3530,2.0396,M_PI,positions[28]);
+
+    //construct HE22
+    ConstructAtomPos(positions[13], positions[12], positions[14],
+                     0.9943,1.3530,2.0914,0,positions[29]);
+
+    //chi2+dev2
+
+    //construct HE21
+    ConstructAtomPos(positions[16], positions[15], positions[17],
+                     0.9959,1.3530,2.0396,M_PI,positions[30]);
+
+    //construct HE22
+    ConstructAtomPos(positions[16], positions[15], positions[17],
+                     0.9943,1.3530,2.0914,0,positions[31]);
+
+    //chi3-dev3
+
+    //construct HE21
+    ConstructAtomPos(positions[18], positions[1], positions[19],
+                     0.9959,1.3530,2.0396,M_PI,positions[32]);
+
+    //construct HE22
+    ConstructAtomPos(positions[18], positions[1], positions[19],
+                     0.9943,1.3530,2.0914,0,positions[33]);
+
+    //chi3+dev3
+
+    //construct HE21
+    ConstructAtomPos(positions[20], positions[1], positions[21],
+                     0.9959,1.3530,2.0396,M_PI,positions[34]);
+
+    //construct HE22
+    ConstructAtomPos(positions[20], positions[1], positions[21],
+                     0.9943,1.3530,2.0914,0,positions[35]);
+
+    //without sigma
+    particles[22] = Particle(positions[22],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE21");
+    particles[22].SetPolarDirection(positions[22]-positions[3]);
+
+    particles[23] = Particle(positions[23],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE22");
+    particles[23].SetPolarDirection(positions[23]-positions[3]);
+
+    //chi1-dev1
+
+    particles[24] = Particle(positions[24],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE21");
+    particles[24].SetPolarDirection(positions[24]-positions[7]);
+
+    particles[25] = Particle(positions[25],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE22");
+    particles[25].SetPolarDirection(positions[25]-positions[7]);
+
+    //chi1+dev1
+
+    particles[26] = Particle(positions[26],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE21");
+    particles[26].SetPolarDirection(positions[26]-positions[11]);
+
+    particles[27] = Particle(positions[27],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE22");
+    particles[27].SetPolarDirection(positions[27]-positions[11]);
+
+    //chi2-dev2
+
+    particles[28] = Particle(positions[28],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE21");
+    particles[28].SetPolarDirection(positions[28]-positions[14]);
+
+    particles[29] = Particle(positions[29],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE22");
+    particles[29].SetPolarDirection(positions[29]-positions[14]);
+
+    //chi2+dev2
+
+    particles[30] = Particle(positions[30],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE21");
+    particles[30].SetPolarDirection(positions[30]-positions[17]);
+
+    particles[31] = Particle(positions[31],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE22");
+    particles[31].SetPolarDirection(positions[31]-positions[17]);
+
+    //chi3-dev3
+
+    particles[32] = Particle(positions[32],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE21");
+    particles[32].SetPolarDirection(positions[32]-positions[19]);
+
+    particles[33] = Particle(positions[33],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE22");
+    particles[33].SetPolarDirection(positions[33]-positions[19]);
+
+    //chi3+dev3
+
+    particles[34] = Particle(positions[34],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE21");
+    particles[34].SetPolarDirection(positions[34]-positions[21]);
+
+    particles[35] = Particle(positions[35],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE22");
+    particles[35].SetPolarDirection(positions[35]-positions[21]);
+
+    //construct electron lone pairs of oe1
+
+    //without sigma
+
+    geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+    ConstructAtomPos(positions[0],positions[1],positions[2],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[2],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+    particles[2].AddLonePair(lone_pair_center_two-positions[2]);    
+
+    //chi1-dev1
+
+    ConstructAtomPos(positions[4],positions[5],positions[6],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[4],positions[5],positions[6],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[6].AddLonePair(lone_pair_center_one-positions[6]);
+    particles[6].AddLonePair(lone_pair_center_two-positions[6]); 
+
+    //chi1+dev1
+
+    ConstructAtomPos(positions[8],positions[9],positions[10],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[8],positions[9],positions[10],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[10].AddLonePair(lone_pair_center_one-positions[10]);
+    particles[10].AddLonePair(lone_pair_center_two-positions[10]);  
+
+    //chi2-dev2
+
+    ConstructAtomPos(positions[0],positions[12],positions[13],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[12],positions[13],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[13].AddLonePair(lone_pair_center_one-positions[13]);
+    particles[13].AddLonePair(lone_pair_center_two-positions[13]);  
+
+    //chi2+dev2
+
+    ConstructAtomPos(positions[0],positions[15],positions[16],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[15],positions[16],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[16].AddLonePair(lone_pair_center_one-positions[16]);
+    particles[16].AddLonePair(lone_pair_center_two-positions[16]); 
+
+    //chi3-dev3
+
+    ConstructAtomPos(positions[0],positions[1],positions[18],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[18],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[18].AddLonePair(lone_pair_center_one-positions[18]);
+    particles[18].AddLonePair(lone_pair_center_two-positions[18]);
+
+    //chi3-dev3
+
+    ConstructAtomPos(positions[0],positions[1],positions[20],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[20],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[20].AddLonePair(lone_pair_center_one-positions[20]);
+    particles[20].AddLonePair(lone_pair_center_two-positions[20]);
+
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,36,settings->FRM_T_GLN,
+                                     probability,settings->internal_e_prefactor_GLN);
+
+
+    std::vector<int> subrotamer_definition(6);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 22;
+    subrotamer_definition[5] = 23;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 4;
+    subrotamer_definition[1] = 5;
+    subrotamer_definition[2] = 6;
+    subrotamer_definition[3] = 7;
+    subrotamer_definition[4] = 24;
+    subrotamer_definition[5] = 25;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 8;
+    subrotamer_definition[1] = 9;
+    subrotamer_definition[2] = 10;
+    subrotamer_definition[3] = 11;
+    subrotamer_definition[4] = 26;
+    subrotamer_definition[5] = 27;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 12;
+    subrotamer_definition[2] = 13;
+    subrotamer_definition[3] = 14;
+    subrotamer_definition[4] = 28;
+    subrotamer_definition[5] = 29;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 15;
+    subrotamer_definition[2] = 16;
+    subrotamer_definition[3] = 17;
+    subrotamer_definition[4] = 30;
+    subrotamer_definition[5] = 31;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3-dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 18;
+    subrotamer_definition[3] = 19;
+    subrotamer_definition[4] = 32;
+    subrotamer_definition[5] = 33;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3+dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 20;
+    subrotamer_definition[3] = 21;
+    subrotamer_definition[4] = 34;
+    subrotamer_definition[5] = 35;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot;
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,22,settings->FRM_T_GLN,
+                                   probability,settings->internal_e_prefactor_GLN);
+
+
+  std::vector<int> subrotamer_definition(4);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 4;
+  subrotamer_definition[1] = 5;
+  subrotamer_definition[2] = 6;
+  subrotamer_definition[3] = 7;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 8;
+  subrotamer_definition[1] = 9;
+  subrotamer_definition[2] = 10;
+  subrotamer_definition[3] = 11;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 12;
+  subrotamer_definition[2] = 13;
+  subrotamer_definition[3] = 14;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 15;
+  subrotamer_definition[2] = 16;
+  subrotamer_definition[3] = 17;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3-dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 18;
+  subrotamer_definition[3] = 19;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3+dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 20;
+  subrotamer_definition[3] = 21;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+
+  return rot;
+}
+
+
+FRMRotamerPtr ConstructFRMGLU(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability,RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, 
+                              Real sig2, Real chi3, Real sig3){
+
+  Real dev1 = sig1*settings->FRM_delta1_GLU;
+  Real dev2 = sig2*settings->FRM_delta2_GLU;
+  Real dev3 = sig3*settings->FRM_delta3_GLU;
+
+  Particle* particles = new Particle[22];
+  geom::Vec3* positions = new geom::Vec3[22];
+
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5557,2.0192,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5307,1.5557,2.0199,chi2,positions[1]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2590,1.5307,2.0070,chi3,positions[2]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2532,1.5307,2.0958,chi3+M_PI,positions[3]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5557,2.0192,chi1-dev1,positions[4]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[4],
+                   1.5307,1.5557,2.0199,chi2,positions[5]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[4],positions[5],
+                   1.2590,1.5307,2.0070,chi3,positions[6]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[4],positions[5],
+                   1.2532,1.5307,2.0958,chi3+M_PI,positions[7]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5557,2.0192,chi1+dev1,positions[8]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[8],
+                   1.5307,1.5557,2.0199,chi2,positions[9]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[8],positions[9],
+                   1.2590,1.5307,2.0070,chi3,positions[10]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[8],positions[9],
+                   1.2532,1.5307,2.0958,chi3+M_PI,positions[11]);
+
+  //chi2-dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5307,1.5557,2.0199,chi2-dev2,positions[12]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[12],
+                   1.2590,1.5307,2.0070,chi3,positions[13]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[0],positions[12],
+                   1.2532,1.5307,2.0958,chi3+M_PI,positions[14]);
+
+  //chi2+dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5307,1.5557,2.0199,chi2+dev2,positions[15]);
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[15],
+                   1.2590,1.5307,2.0070,chi3,positions[16]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[0],positions[15],
+                   1.2532,1.5307,2.0958,chi3+M_PI,positions[17]);
+
+  //chi3-dev3
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2590,1.5307,2.0070,chi3-dev3,positions[18]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2532,1.5307,2.0958,chi3-dev3+M_PI,positions[19]);
+
+  //chi3-dev3
+
+  //construct OE1
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2590,1.5307,2.0070,chi3+dev3,positions[20]);
+
+  //construct OE2
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.2532,1.5307,2.0958,chi3+dev3+M_PI,positions[21]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,-0.16,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CD");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[3] = Particle(positions[3],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OE2");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1142,-0.16,"CG");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CD");
+
+  particles[6] = Particle(positions[6],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[7] = Particle(positions[7],settings->O_max_radius,
+                          settings->O_radius,-0.6469,-0.60,"OE2");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1142,-0.16,"CG");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.36,"CD");
+
+  particles[10] = Particle(positions[10],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[11] = Particle(positions[11],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OE2");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.36,"CD");
+
+  particles[13] = Particle(positions[13],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[14] = Particle(positions[14],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OE2");
+
+  particles[15] = Particle(positions[15],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.36,"CD");
+
+  particles[16] = Particle(positions[16],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[17] = Particle(positions[17],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OE2");
+
+  particles[18] = Particle(positions[18],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[19] = Particle(positions[19],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OE2");
+
+  particles[20] = Particle(positions[20],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.60,"OE1");
+
+  particles[21] = Particle(positions[21],settings->O_max_radius,
+                           settings->O_radius,-0.6469,-0.60,"OE2");
+
+  if(settings->consider_hbonds){
+
+    //constructing electron lone pairs
+
+    //without sigma
+
+    geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+    ConstructAtomPos(positions[0],positions[1],positions[2],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[2],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+    particles[2].AddLonePair(lone_pair_center_two-positions[2]);
+
+    ConstructAtomPos(positions[0],positions[1],positions[3],
+                     1.00,1.2532,2.0944,M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[3],
+                     1.00,1.2532,2.0944,0.0,lone_pair_center_two);
+
+    particles[3].AddLonePair(lone_pair_center_one-positions[3]);
+    particles[3].AddLonePair(lone_pair_center_two-positions[3]);    
+
+    //chi1-dev1
+
+    ConstructAtomPos(positions[4],positions[5],positions[6],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[4],positions[5],positions[6],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[6].AddLonePair(lone_pair_center_one-positions[6]);
+    particles[6].AddLonePair(lone_pair_center_two-positions[6]); 
+
+    ConstructAtomPos(positions[4],positions[5],positions[7],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[4],positions[5],positions[7],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[7].AddLonePair(lone_pair_center_one-positions[7]);
+    particles[7].AddLonePair(lone_pair_center_two-positions[7]); 
+
+    //chi1+dev1
+
+    ConstructAtomPos(positions[8],positions[9],positions[10],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[8],positions[9],positions[10],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[10].AddLonePair(lone_pair_center_one-positions[10]);
+    particles[10].AddLonePair(lone_pair_center_two-positions[10]); 
+
+    ConstructAtomPos(positions[8],positions[9],positions[11],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[8],positions[9],positions[11],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[11].AddLonePair(lone_pair_center_one-positions[11]);
+    particles[11].AddLonePair(lone_pair_center_two-positions[11]); 
+
+    //chi2-dev2
+
+    ConstructAtomPos(positions[0],positions[12],positions[13],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[12],positions[13],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[13].AddLonePair(lone_pair_center_one-positions[13]);
+    particles[13].AddLonePair(lone_pair_center_two-positions[13]);  
+
+    ConstructAtomPos(positions[0],positions[12],positions[14],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[12],positions[14],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[14].AddLonePair(lone_pair_center_one-positions[14]);
+    particles[14].AddLonePair(lone_pair_center_two-positions[14]);
+
+    //chi2+dev2
+
+    ConstructAtomPos(positions[0],positions[15],positions[16],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[15],positions[16],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[16].AddLonePair(lone_pair_center_one-positions[16]);
+    particles[16].AddLonePair(lone_pair_center_two-positions[16]); 
+
+    ConstructAtomPos(positions[0],positions[15],positions[17],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[15],positions[17],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[17].AddLonePair(lone_pair_center_one-positions[17]);
+    particles[17].AddLonePair(lone_pair_center_two-positions[17]); 
+
+    //chi3-dev3
+
+    ConstructAtomPos(positions[0],positions[1],positions[18],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[18],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[18].AddLonePair(lone_pair_center_one-positions[18]);
+    particles[18].AddLonePair(lone_pair_center_two-positions[18]);
+
+    ConstructAtomPos(positions[0],positions[1],positions[19],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[19],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[19].AddLonePair(lone_pair_center_one-positions[19]);
+    particles[19].AddLonePair(lone_pair_center_two-positions[19]);
+
+    //chi3-dev3
+
+    ConstructAtomPos(positions[0],positions[1],positions[20],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[20],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[20].AddLonePair(lone_pair_center_one-positions[20]);
+    particles[20].AddLonePair(lone_pair_center_two-positions[20]);
+
+    ConstructAtomPos(positions[0],positions[1],positions[21],
+                     1.00,1.2294,2.0944, M_PI,lone_pair_center_one);
+    ConstructAtomPos(positions[0],positions[1],positions[21],
+                     1.00,1.2294,2.0944,0.0,lone_pair_center_two);
+    particles[21].AddLonePair(lone_pair_center_one-positions[21]);
+    particles[21].AddLonePair(lone_pair_center_two-positions[21]);
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,22,settings->FRM_T_GLU,
+                                   probability,settings->internal_e_prefactor_GLU);
+
+
+  std::vector<int> subrotamer_definition(4);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 4;
+  subrotamer_definition[1] = 5;
+  subrotamer_definition[2] = 6;
+  subrotamer_definition[3] = 7;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 8;
+  subrotamer_definition[1] = 9;
+  subrotamer_definition[2] = 10;
+  subrotamer_definition[3] = 11;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 12;
+  subrotamer_definition[2] = 13;
+  subrotamer_definition[3] = 14;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 15;
+  subrotamer_definition[2] = 16;
+  subrotamer_definition[3] = 17;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3-dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 18;
+  subrotamer_definition[3] = 19;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3+dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 20;
+  subrotamer_definition[3] = 21;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;
+}
+
+
+FRMRotamerPtr ConstructFRMLYS(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, Real sig2, 
+                              Real chi3, Real sig3, Real chi4, Real sig4){
+  Real dev1 = sig1*settings->FRM_delta1_LYS;
+  Real dev2 = sig2*settings->FRM_delta2_LYS;
+  Real dev3 = sig3*settings->FRM_delta3_LYS;
+  Real dev4 = sig4*settings->FRM_delta4_LYS;
+
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[51];
+    particles = new Particle[51];
+  }
+  else{
+    positions = new geom::Vec3[24];
+    particles = new Particle[24];
+  }
+
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5435,2.0204,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5397,1.5435,1.9771,chi2,positions[1]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.5350,1.5397,1.9605,chi3,positions[2]);
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.4604,1.5350,1.9279,chi4,positions[3]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5435,2.0204,chi1-dev1,positions[4]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[4],
+                   1.5397,1.5435,1.9771,chi2,positions[5]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[4],positions[5],
+                   1.5350,1.5397,1.9605,chi3,positions[6]);
+
+  //construct NZ
+  ConstructAtomPos(positions[4],positions[5],positions[6],
+                   1.4604,1.5350,1.9279,chi4,positions[7]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5435,2.0204,chi1+dev1,positions[8]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[8],
+                   1.5397,1.5435,1.9771,chi2,positions[9]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[8],positions[9],
+                   1.5350,1.5397,1.9605,chi3,positions[10]);
+
+  //construct NZ
+  ConstructAtomPos(positions[8],positions[9],positions[10],
+                   1.4604,1.5350,1.9279,chi4,positions[11]);
+
+  //chi2-dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5397,1.5435,1.9771,chi2-dev2,positions[12]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[12],
+                   1.5350,1.5397,1.9605,chi3,positions[13]);
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[12],positions[13],
+                   1.4604,1.5350,1.9279,chi4,positions[14]);
+
+  //chi2+dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5397,1.5435,1.9771,chi2+dev2,positions[15]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[15],
+                   1.5350,1.5397,1.9605,chi3,positions[16]);
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[15],positions[16],
+                   1.4604,1.5350,1.9279,chi4,positions[17]);
+
+  //chi3-dev3
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.5350,1.5397,1.9605,chi3-dev3,positions[18]);
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[1],positions[18],
+                   1.4604,1.5350,1.9279,chi4,positions[19]);
+
+  //chi3+dev3
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.5350,1.5397,1.9605,chi3+dev3,positions[20]);
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[1],positions[20],
+                   1.4604,1.5350,1.9279,chi4,positions[21]);
+
+  //chi4-dev4
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.4604,1.5350,1.9279,chi4-dev4,positions[22]);
+
+  //chi4+dev4
+
+  //construct NZ
+  ConstructAtomPos(positions[0],positions[1],positions[2],
+                   1.4604,1.5350,1.9279,chi4+dev4,positions[23]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CD");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[3] = Particle(positions[3],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CD");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[7] = Particle(positions[7],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CD");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[11] = Particle(positions[11],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.00,"CD");
+
+  particles[13] = Particle(positions[13],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[14] = Particle(positions[14],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[15] = Particle(positions[15],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.00,"CD");
+
+  particles[16] = Particle(positions[16],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[17] = Particle(positions[17],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[18] = Particle(positions[18],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[19] = Particle(positions[19],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[20] = Particle(positions[20],settings->C_max_radius,
+                           settings->C_radius,-0.1142,0.25,"CE");
+
+  particles[21] = Particle(positions[21],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[22] = Particle(positions[22],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  particles[23] = Particle(positions[23],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.30,"NZ"); 
+
+  if(settings->consider_hbonds){
+
+    //without sigma
+
+    //construct HZ1
+    ConstructAtomPos(positions[1],positions[2],positions[3],
+                     1.04,1.4604,1.9111,M_PI,positions[24]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[1],positions[2],positions[3],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[25]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[1],positions[2],positions[3],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[26]);
+
+    //chi1-dev1
+
+    //construct HZ1
+    ConstructAtomPos(positions[5],positions[6],positions[7],
+                     1.04,1.4604,1.9111,M_PI,positions[27]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[5],positions[6],positions[7],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[28]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[5],positions[6],positions[7],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[29]);
+
+    //chi1+dev1
+
+    //construct HZ1
+    ConstructAtomPos(positions[9],positions[10],positions[11],
+                     1.04,1.4604,1.9111,M_PI,positions[30]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[9],positions[10],positions[11],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[31]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[9],positions[10],positions[11],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[32]);
+
+    //chi2-dev2
+
+    //construct HZ1
+    ConstructAtomPos(positions[12],positions[13],positions[14],
+                     1.04,1.4604,1.9111,M_PI,positions[33]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[12],positions[13],positions[14],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[34]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[12],positions[13],positions[14],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[35]);
+
+    //chi2+dev2
+
+    //construct HZ1
+    ConstructAtomPos(positions[15],positions[16],positions[17],
+                     1.04,1.4604,1.9111,M_PI,positions[36]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[15],positions[16],positions[17],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[37]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[15],positions[16],positions[17],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[38]);
+
+    //chi3-dev3
+
+    //construct HZ1
+    ConstructAtomPos(positions[1],positions[18],positions[19],
+                     1.04,1.4604,1.9111,M_PI,positions[39]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[1],positions[18],positions[19],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[40]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[1],positions[18],positions[19],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[41]);
+
+    //chi3+dev3
+
+    //construct HZ1
+    ConstructAtomPos(positions[1],positions[20],positions[21],
+                     1.04,1.4604,1.9111,M_PI,positions[42]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[1],positions[20],positions[21],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[43]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[1],positions[20],positions[21],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[44]);
+
+    //chi4-dev4
+
+    //construct HZ1
+    ConstructAtomPos(positions[1],positions[2],positions[22],
+                     1.04,1.4604,1.9111,M_PI,positions[45]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[1],positions[2],positions[22],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[46]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[1],positions[2],positions[22],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[47]);
+
+    //chi4-dev4
+
+    //construct HZ1
+    ConstructAtomPos(positions[1],positions[2],positions[23],
+                     1.04,1.4604,1.9111,M_PI,positions[48]);
+
+    //construct HZ2
+    ConstructAtomPos(positions[1],positions[2],positions[23],
+                     1.04,1.4604,1.9111,M_PI+2.0944,positions[49]);
+
+    //construct HZ3
+    ConstructAtomPos(positions[1],positions[2],positions[23],
+                     1.04,1.4604,1.9111,M_PI-2.0944,positions[50]);
+
+
+    particles[24] = Particle(positions[24],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[24].SetPolarDirection(positions[24]-positions[3]);
+
+    particles[25] = Particle(positions[25],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[25].SetPolarDirection(positions[25]-positions[3]);
+
+    particles[26] = Particle(positions[26],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[26].SetPolarDirection(positions[26]-positions[3]);   
+
+    particles[27] = Particle(positions[27],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[27].SetPolarDirection(positions[27]-positions[7]);
+
+    particles[28] = Particle(positions[28],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[28].SetPolarDirection(positions[28]-positions[7]);
+
+    particles[29] = Particle(positions[29],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[29].SetPolarDirection(positions[29]-positions[7]); 
+
+    particles[30] = Particle(positions[30],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[30].SetPolarDirection(positions[30]-positions[11]);
+
+    particles[31] = Particle(positions[31],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[31].SetPolarDirection(positions[31]-positions[11]);
+
+    particles[32] = Particle(positions[32],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[32].SetPolarDirection(positions[32]-positions[11]); 
+
+    particles[33] = Particle(positions[33],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[33].SetPolarDirection(positions[33]-positions[14]);
+
+    particles[34] = Particle(positions[34],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[34].SetPolarDirection(positions[34]-positions[14]);
+
+    particles[35] = Particle(positions[35],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[35].SetPolarDirection(positions[35]-positions[14]); 
+
+    particles[36] = Particle(positions[36],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[36].SetPolarDirection(positions[36]-positions[17]);
+
+    particles[37] = Particle(positions[37],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[37].SetPolarDirection(positions[37]-positions[17]);
+
+    particles[38] = Particle(positions[38],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[38].SetPolarDirection(positions[38]-positions[17]); 
+
+    particles[39] = Particle(positions[39],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[39].SetPolarDirection(positions[39]-positions[19]);
+
+    particles[40] = Particle(positions[40],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[40].SetPolarDirection(positions[40]-positions[19]);
+
+    particles[41] = Particle(positions[41],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[41].SetPolarDirection(positions[41]-positions[19]); 
+
+    particles[42] = Particle(positions[42],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[42].SetPolarDirection(positions[42]-positions[21]);
+
+    particles[43] = Particle(positions[43],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[43].SetPolarDirection(positions[43]-positions[21]);
+
+    particles[44] = Particle(positions[44],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[44].SetPolarDirection(positions[44]-positions[21]); 
+
+    particles[45] = Particle(positions[45],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[45].SetPolarDirection(positions[45]-positions[19]);
+
+    particles[46] = Particle(positions[46],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[46].SetPolarDirection(positions[46]-positions[19]);
+
+    particles[47] = Particle(positions[47],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[47].SetPolarDirection(positions[47]-positions[19]); 
+
+    particles[48] = Particle(positions[48],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ1");
+    particles[48].SetPolarDirection(positions[48]-positions[21]);
+
+    particles[49] = Particle(positions[49],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ2");
+    particles[49].SetPolarDirection(positions[49]-positions[22]);
+
+    particles[50] = Particle(positions[50],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.35,"HZ3");
+    particles[50].SetPolarDirection(positions[50]-positions[23]);
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,51,settings->FRM_T_LYS,
+                                     probability,settings->internal_e_prefactor_LYS);
+
+    std::vector<int> subrotamer_definition(7);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 24;
+    subrotamer_definition[5] = 25;
+    subrotamer_definition[6] = 26;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 4;
+    subrotamer_definition[1] = 5;
+    subrotamer_definition[2] = 6;
+    subrotamer_definition[3] = 7;
+    subrotamer_definition[4] = 27;
+    subrotamer_definition[5] = 28;
+    subrotamer_definition[6] = 29;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 8;
+    subrotamer_definition[1] = 9;
+    subrotamer_definition[2] = 10;
+    subrotamer_definition[3] = 11;
+    subrotamer_definition[4] = 30;
+    subrotamer_definition[5] = 31;
+    subrotamer_definition[6] = 32;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 12;
+    subrotamer_definition[2] = 13;
+    subrotamer_definition[3] = 14;
+    subrotamer_definition[4] = 33;
+    subrotamer_definition[5] = 34;
+    subrotamer_definition[6] = 35;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 15;
+    subrotamer_definition[2] = 16;
+    subrotamer_definition[3] = 17;
+    subrotamer_definition[4] = 36;
+    subrotamer_definition[5] = 37;
+    subrotamer_definition[6] = 38;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3-dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 18;
+    subrotamer_definition[3] = 19;
+    subrotamer_definition[4] = 39;
+    subrotamer_definition[5] = 40;
+    subrotamer_definition[6] = 41;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3+dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 20;
+    subrotamer_definition[3] = 21;
+    subrotamer_definition[4] = 42;
+    subrotamer_definition[5] = 43;
+    subrotamer_definition[6] = 44;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi4-dev4
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 22;
+    subrotamer_definition[4] = 45;
+    subrotamer_definition[5] = 46;
+    subrotamer_definition[6] = 47;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi4+dev4
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 23;
+    subrotamer_definition[4] = 48;
+    subrotamer_definition[5] = 49;
+    subrotamer_definition[6] = 50;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot;
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,24,settings->FRM_T_LYS,
+                                   probability,settings->internal_e_prefactor_LYS);
+
+  std::vector<int> subrotamer_definition(4);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 4;
+  subrotamer_definition[1] = 5;
+  subrotamer_definition[2] = 6;
+  subrotamer_definition[3] = 7;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 8;
+  subrotamer_definition[1] = 9;
+  subrotamer_definition[2] = 10;
+  subrotamer_definition[3] = 11;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 12;
+  subrotamer_definition[2] = 13;
+  subrotamer_definition[3] = 14;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 15;
+  subrotamer_definition[2] = 16;
+  subrotamer_definition[3] = 17;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3-dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 18;
+  subrotamer_definition[3] = 19;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi3+dev3
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 20;
+  subrotamer_definition[3] = 21;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi4-dev4
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 22;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi4+dev4
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 23;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  
+  return rot;
+}
+
+FRMRotamerPtr ConstructFRMSER(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2){
+  Real dev1 = sig1*settings->FRM_delta1_SER;
+  //heuristic value of 10 degrees for sig, as described in SCWRL 4 paper
+  //note, that the lone pair directions of the oxygen is dependent
+  //on the hydrogen position... it would therefore be necessary to
+  //also adjust them when the hydrogen position is varied... 
+  //This is not done for approximative reasons
+  Real dev2 = 0.17453*settings->FRM_delta2_SER;
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[8];
+    particles = new Particle[8];
+  }
+  else{
+    positions = new geom::Vec3[3];
+    particles = new Particle[3];
+  }
+
+  //without sigma
+
+  //construct OG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4341,1.9626,chi1,positions[0]);
+
+  //chi1-dev1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4341,1.9626,chi1-dev1,positions[1]);
+
+  //chi1+dev1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4341,1.9626,chi1+dev1,positions[2]);
+
+
+  particles[0] = Particle(positions[0],settings->O_max_radius,
+                          settings->O_radius,-0.1142,-0.65,"OG");
+
+  particles[1] = Particle(positions[1],settings->O_max_radius,
+                          settings->O_radius,-0.1142,-0.65,"OG");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.1142,-0.65,"OG");
+
+  if(settings->consider_hbonds){
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                     0.9655,1.4341,1.8689,chi2,positions[3]);
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[1],
+                     0.9655,1.4341,1.8689,chi2,positions[4]);
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[2],
+                     0.9655,1.4341,1.8689,chi2,positions[5]);
+
+
+    //chi2-dev2
+    ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                     0.9655,1.4341,1.8689,chi2-dev2,positions[6]);
+
+    //chi2+dev2
+    ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                     0.9655,1.4341,1.8689,chi2+dev2,positions[7]);
+
+
+    particles[3] = Particle(positions[3],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG");
+    particles[3].SetPolarDirection(positions[3]-positions[0]);
+
+    particles[4] = Particle(positions[4],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG");
+    particles[4].SetPolarDirection(positions[4]-positions[1]);
+
+    particles[5] = Particle(positions[5],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG");
+    particles[5].SetPolarDirection(positions[5]-positions[2]);
+
+    particles[6] = Particle(positions[6],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG");
+    particles[6].SetPolarDirection(positions[6]-positions[0]);
+
+    particles[7] = Particle(positions[7],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG");
+    particles[7].SetPolarDirection(positions[7]-positions[0]);
+
+
+    //create a center point between the two lone pair clouds with distance to OG equals 1
+    geom::Vec3 center_point = positions[0] + 
+                              geom::Normalize((positions[0]-positions[3])/0.9655 + 
+                                              (positions[0]-cb_pos)/1.4341);
+
+    //the two lone pair representatives can now be calculated. Note, that they have tetrahedral
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+    ConstructAtomPos(cb_pos,positions[0],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[0],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[0].AddLonePair(lone_pair_center_one-positions[0]);
+    particles[0].AddLonePair(lone_pair_center_two-positions[0]);
+
+    center_point = positions[1] + 
+                   geom::Normalize((positions[1]-positions[4])/0.9655 + 
+                                   (positions[1]-cb_pos)/1.4341);
+
+    ConstructAtomPos(cb_pos,positions[1],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[1],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[1].AddLonePair(lone_pair_center_one-positions[1]);
+    particles[1].AddLonePair(lone_pair_center_two-positions[1]);
+
+    center_point = positions[2] + 
+                   geom::Normalize((positions[2]-positions[5])/0.9655 + 
+                                   (positions[2]-cb_pos)/1.4341);
+
+    ConstructAtomPos(cb_pos,positions[2],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(cb_pos,positions[2],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+    particles[2].AddLonePair(lone_pair_center_two-positions[2]);
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,8,settings->FRM_T_SER,
+                                     probability,settings->internal_e_prefactor_SER);
+
+    std::vector<int> subrotamer_definition(2);
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 3;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    subrotamer_definition[0] = 1;
+    subrotamer_definition[1] = 4;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    subrotamer_definition[0] = 2;
+    subrotamer_definition[1] = 5;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 6;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 7;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot;
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,3,settings->FRM_T_SER,
+                                   probability,settings->internal_e_prefactor_SER);
+
+  std::vector<int> subrotamer_definition(1);
+  subrotamer_definition[0] = 0;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 1;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 2;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+
+  return rot;
+}
+
+
+FRMRotamerPtr ConstructFRMCYS(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real sig1){
+
+  Real dev1 = sig1*settings->FRM_delta1_CYS;
+
+  Particle* particles = new Particle[3];
+  geom::Vec3* positions = new geom::Vec3[3];
+
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.8359,1.9874,chi1,positions[0]);
+
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.8359,1.9874,chi1-dev1,positions[1]);
+
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.8359,1.9874,chi1+dev1,positions[2]);
+
+  particles[0] = Particle(positions[0],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.19,"SG");
+
+  particles[1] = Particle(positions[1],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.19,"SG");
+
+  particles[2] = Particle(positions[2],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.19,"SG");
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,3,settings->FRM_T_CYS,
+                                   probability,settings->internal_e_prefactor_CYS);
+
+  std::vector<int> subrotamer_definition(1);
+  subrotamer_definition[0] = 0;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 1;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 2;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;
+}
+
+
+FRMRotamerPtr ConstructFRMMET(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos,
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, 
+                              Real sig2, Real chi3, Real sig3){
+
+  Real dev1 = sig1*settings->FRM_delta1_MET;
+  Real dev2 = sig2*settings->FRM_delta2_MET;
+  Real dev3 = sig3*settings->FRM_delta3_MET;
+
+  Particle* particles = new Particle[15];
+  geom::Vec3* positions = new geom::Vec3[15];
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5460,2.0232,chi1,positions[0]);
+
+  //construct SD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.8219,1.5460,1.9247,chi2,positions[1]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.8206,1.8219,1.7268,chi3,positions[2]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5460,2.0232,chi1-dev1,positions[3]);
+
+  //construct SD
+  ConstructAtomPos(ca_pos,cb_pos,positions[3],
+                   1.8219,1.5460,1.9247,chi2,positions[4]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[3],positions[4],
+                   1.8206,1.8219,1.7268,chi3,positions[5]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5460,2.0232,chi1+dev1,positions[6]);
+
+  //construct SD
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.8219,1.5460,1.9247,chi2,positions[7]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[6],positions[7],
+                   1.8206,1.8219,1.7268,chi3,positions[8]);
+
+  //chi2-dev2
+
+  //construct SD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.8219,1.5460,1.9247,chi2-dev2,positions[9]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[9],
+                   1.8206,1.8219,1.7268,chi3,positions[10]);
+
+  //chi2+dev2
+
+  //construct SD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.8219,1.5460,1.9247,chi2+dev2,positions[11]);
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[11],
+                   1.8206,1.8219,1.7268,chi3,positions[12]);
+
+  //chi3-dev3
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.8206,1.8219,1.7268,chi3-dev3,positions[13]);
+
+  //chi3-dev3
+
+  //construct CE
+  ConstructAtomPos(cb_pos,positions[0],positions[1],
+                   1.8206,1.8219,1.7268,chi3+dev3,positions[14]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.06,"CG");
+  
+  particles[1] = Particle(positions[1],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.12,"SD");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.06,"CG");
+  
+  particles[4] = Particle(positions[4],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.12,"SD");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.06,"CG");
+  
+  particles[7] = Particle(positions[7],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.12,"SD");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  particles[9] = Particle(positions[9],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.12,"SD");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  particles[11] = Particle(positions[11],settings->S_max_radius,
+                          settings->S_radius,-0.0430,-0.12,"SD");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  particles[13] = Particle(positions[13],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  particles[14] = Particle(positions[14],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.06,"CE");
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,15,settings->FRM_T_MET,
+                                   probability,settings->internal_e_prefactor_MET);
+
+  std::vector<int> subrotamer_definition(3);
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 3;
+  subrotamer_definition[1] = 4;
+  subrotamer_definition[2] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 6;
+  subrotamer_definition[1] = 7;
+  subrotamer_definition[2] = 8;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 9;
+  subrotamer_definition[2] = 10;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 11;
+  subrotamer_definition[2] = 12;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 13;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 14;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+
+  delete [] positions;
+  return rot;
+}
+
+
+FRMRotamerPtr ConstructFRMTRP(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+  Real dev1 = sig1*settings->FRM_delta1_TRP;
+  Real dev2 = sig2*settings->FRM_delta2_TRP;  
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[48];
+    particles = new Particle[48];
+  }
+  else{
+    positions = new geom::Vec3[43]; 
+    particles = new Particle[43];
+  }
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5233, 2.0096,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3679,1.5233, 2.2546,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.4407,1.5233,2.1633,chi2+M_PI,positions[2]);
+
+  //construct CE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.4126,1.4407,1.8614,0.0,positions[3]);
+
+  //construct NE1
+  ConstructAtomPos(positions[0],positions[2],positions[3],
+                   1.3746,1.4126,1.8827,0.0,positions[4]);
+
+  //construct CE3
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.4011,1.4407,2.3133,M_PI,positions[5]);
+
+  //construct CZ3
+  ConstructAtomPos(positions[3],positions[2],positions[5],
+                   1.4017,1.4011,2.0623,0.0,positions[6]);
+
+  //construct CH2
+  ConstructAtomPos(positions[2],positions[5],positions[6],
+                   1.4019,1.4017,2.1113,0.0,positions[7]);
+
+  //construct CZ2
+  ConstructAtomPos(positions[5],positions[6],positions[7],
+                   1.4030,1.4019,2.1096,0.0,positions[8]);
+
+  //chi1-dev1
+  
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5233, 2.0096,chi1-dev1,positions[9]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[9],
+                   1.3679,1.5233, 2.2546,chi2,positions[10]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[9],
+                   1.4407,1.5233,2.1633,chi2+M_PI,positions[11]);
+
+  //construct CE2
+  ConstructAtomPos(positions[10],positions[9],positions[11],
+                   1.4126,1.4407,1.8614,0.0,positions[12]);
+
+  //construct NE1
+  ConstructAtomPos(positions[9],positions[11],positions[12],
+                   1.3746,1.4126,1.8827,0.0,positions[13]);
+
+  //construct CE3
+  ConstructAtomPos(positions[10],positions[9],positions[11],
+                   1.4011,1.4407,2.3133,M_PI,positions[14]);
+
+  //construct CZ3
+  ConstructAtomPos(positions[12],positions[11],positions[14],
+                   1.4017,1.4011,2.0623,0.0,positions[15]);
+
+  //construct CH2
+  ConstructAtomPos(positions[11],positions[14],positions[15],
+                   1.4019,1.4017,2.1113,0.0,positions[16]);
+
+  //construct CZ2
+  ConstructAtomPos(positions[14],positions[15],positions[16],
+                   1.4030,1.4019,2.1096,0.0,positions[17]);
+
+  //chi1+dev1
+  
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5233, 2.0096,chi1+dev1,positions[18]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[18],
+                   1.3679,1.5233, 2.2546,chi2,positions[19]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[18],
+                   1.4407,1.5233,2.1633,chi2+M_PI,positions[20]);
+
+  //construct CE2
+  ConstructAtomPos(positions[19],positions[18],positions[20],
+                   1.4126,1.4407,1.8614,0.0,positions[21]);
+
+  //construct NE1
+  ConstructAtomPos(positions[18],positions[20],positions[21],
+                   1.3746,1.4126,1.8827,0.0,positions[22]);
+
+  //construct CE3
+  ConstructAtomPos(positions[19],positions[18],positions[20],
+                   1.4011,1.4407,2.3133,M_PI,positions[23]);
+
+  //construct CZ3
+  ConstructAtomPos(positions[21],positions[20],positions[23],
+                   1.4017,1.4011,2.0623,0.0,positions[24]);
+
+  //construct CH2
+  ConstructAtomPos(positions[20],positions[23],positions[24],
+                   1.4019,1.4017,2.1113,0.0,positions[25]);
+
+  //construct CZ2
+  ConstructAtomPos(positions[23],positions[24],positions[25],
+                   1.4030,1.4019,2.1096,0.0,positions[26]);
+
+  //chi2-dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3679,1.5233, 2.2546,chi2-dev2,positions[27]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.4407,1.5233,2.1633,chi2-dev2+M_PI,positions[28]);
+
+  //construct CE2
+  ConstructAtomPos(positions[27],positions[0],positions[28],
+                   1.4126,1.4407,1.8614,0.0,positions[29]);
+
+  //construct NE1
+  ConstructAtomPos(positions[0],positions[28],positions[29],
+                   1.3746,1.4126,1.8827,0.0,positions[30]);
+
+  //construct CE3
+  ConstructAtomPos(positions[27],positions[0],positions[28],
+                   1.4011,1.4407,2.3133,M_PI,positions[31]);
+
+  //construct CZ3
+  ConstructAtomPos(positions[29],positions[28],positions[31],
+                   1.4017,1.4011,2.0623,0.0,positions[32]);
+
+  //construct CH2
+  ConstructAtomPos(positions[28],positions[31],positions[32],
+                   1.4019,1.4017,2.1113,0.0,positions[33]);
+
+  //construct CZ2
+  ConstructAtomPos(positions[31],positions[32],positions[33],
+                   1.4030,1.4019,2.1096,0.0,positions[34]);
+
+  //chi2+dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3679,1.5233, 2.2546,chi2+dev2,positions[35]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.4407,1.5233,2.1633,chi2+dev2+M_PI,positions[36]);
+
+  //construct CE2
+  ConstructAtomPos(positions[35],positions[0],positions[36],
+                   1.4126,1.4407,1.8614,0.0,positions[37]);
+
+  //construct NE1
+  ConstructAtomPos(positions[0],positions[36],positions[37],
+                   1.3746,1.4126,1.8827,0.0,positions[38]);
+
+  //construct CE3
+  ConstructAtomPos(positions[35],positions[0],positions[36],
+                   1.4011,1.4407,2.3133,M_PI,positions[39]);
+
+  //construct CZ3
+  ConstructAtomPos(positions[37],positions[36],positions[39],
+                   1.4017,1.4011,2.0623,0.0,positions[40]);
+
+  //construct CH2
+  ConstructAtomPos(positions[36],positions[39],positions[40],
+                   1.4019,1.4017,2.1113,0.0,positions[41]);
+
+  //construct CZ2
+  ConstructAtomPos(positions[39],positions[40],positions[41],
+                   1.4030,1.4019,2.1096,0.0,positions[42]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1200,-0.03,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.06,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                            settings->C_radius,-0.1200,-0.04,"CE2");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                            settings->N_radius,-0.2384,-0.36,"NE1");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                            settings->C_radius,-0.1200,-0.03,"CE3");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CZ3");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CH2");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CZ2");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                            settings->C_radius,-0.1200,-0.03,"CG");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.06,"CD1");
+
+  particles[11] = Particle(positions[11],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.04,"CE2");
+
+  particles[13] = Particle(positions[13],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.36,"NE1");
+
+  particles[14] = Particle(positions[14],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.03,"CE3");
+
+  particles[15] = Particle(positions[15],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ3");
+
+  particles[16] = Particle(positions[16],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CH2");
+
+  particles[17] = Particle(positions[17],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ2");
+
+  particles[18] = Particle(positions[18],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.03,"CG");
+
+  particles[19] = Particle(positions[19],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.06,"CD1");
+
+  particles[20] = Particle(positions[20],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[21] = Particle(positions[21],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.04,"CE2");
+
+  particles[22] = Particle(positions[22],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.36,"NE1");
+
+  particles[23] = Particle(positions[23],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.03,"CE3");
+
+  particles[24] = Particle(positions[24],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ3");
+
+  particles[25] = Particle(positions[25],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CH2");
+
+  particles[26] = Particle(positions[26],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ2");
+
+  particles[27] = Particle(positions[27],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.06,"CD1");
+
+  particles[28] = Particle(positions[28],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[29] = Particle(positions[29],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.04,"CE2");
+
+  particles[30] = Particle(positions[30],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.36,"NE1");
+
+  particles[31] = Particle(positions[31],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.03,"CE3");
+
+  particles[32] = Particle(positions[32],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ3");
+
+  particles[33] = Particle(positions[33],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CH2");
+
+  particles[34] = Particle(positions[34],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ2");
+
+  particles[35] = Particle(positions[35],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.06,"CD1");
+
+  particles[36] = Particle(positions[36],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[37] = Particle(positions[37],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.04,"CE2");
+
+  particles[38] = Particle(positions[38],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.36,"NE1");
+
+  particles[39] = Particle(positions[39],settings->C_max_radius,
+                           settings->C_radius,-0.1200,-0.03,"CE3");
+
+  particles[40] = Particle(positions[40],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ3");
+
+  particles[41] = Particle(positions[41],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CH2");
+
+  particles[42] = Particle(positions[42],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ2");
+
+
+
+  if(settings->consider_hbonds){
+
+    //construct HE1
+    ConstructAtomPos(positions[8],positions[3],positions[4],
+                     0.9767,1.3746,2.1761,0.0,positions[43]);
+
+    //construct HE1
+    ConstructAtomPos(positions[17],positions[12],positions[13],
+                     0.9767,1.3746,2.1761,0.0,positions[44]);
+
+    //construct HE1
+    ConstructAtomPos(positions[26],positions[21],positions[22],
+                     0.9767,1.3746,2.1761,0.0,positions[45]);
+
+    //construct HE1
+    ConstructAtomPos(positions[34],positions[29],positions[30],
+                     0.9767,1.3746,2.1761,0.0,positions[46]);
+
+    //construct HE1
+    ConstructAtomPos(positions[42],positions[37],positions[38],
+                     0.9767,1.3746,2.1761,0.0,positions[47]);
+
+
+    particles[43] = Particle(positions[43],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE1");
+    particles[43].SetPolarDirection(positions[43]-positions[4]);    
+
+    particles[44] = Particle(positions[44],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE1");
+    particles[44].SetPolarDirection(positions[44]-positions[13]);
+
+    particles[45] = Particle(positions[45],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE1");
+    particles[45].SetPolarDirection(positions[45]-positions[22]);
+
+    particles[46] = Particle(positions[46],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE1");
+    particles[46].SetPolarDirection(positions[46]-positions[30]);
+
+    particles[47] = Particle(positions[47],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE1");
+    particles[47].SetPolarDirection(positions[47]-positions[38]);
+
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,48,settings->FRM_T_TRP,
+                                     probability,settings->internal_e_prefactor_TRP);
+
+    std::vector<int> subrotamer_definition(10);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 4;
+    subrotamer_definition[5] = 5;
+    subrotamer_definition[6] = 6;
+    subrotamer_definition[7] = 7;
+    subrotamer_definition[8] = 8;
+    subrotamer_definition[9] = 43;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 9;
+    subrotamer_definition[1] = 10;
+    subrotamer_definition[2] = 11;
+    subrotamer_definition[3] = 12;
+    subrotamer_definition[4] = 13;
+    subrotamer_definition[5] = 14;
+    subrotamer_definition[6] = 15;
+    subrotamer_definition[7] = 16;
+    subrotamer_definition[8] = 17;
+    subrotamer_definition[9] = 44;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 18;
+    subrotamer_definition[1] = 19;
+    subrotamer_definition[2] = 20;
+    subrotamer_definition[3] = 21;
+    subrotamer_definition[4] = 22;
+    subrotamer_definition[5] = 23;
+    subrotamer_definition[6] = 24;
+    subrotamer_definition[7] = 25;
+    subrotamer_definition[8] = 26;
+    subrotamer_definition[9] = 45;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 27;
+    subrotamer_definition[2] = 28;
+    subrotamer_definition[3] = 29;
+    subrotamer_definition[4] = 30;
+    subrotamer_definition[5] = 31;
+    subrotamer_definition[6] = 32;
+    subrotamer_definition[7] = 33;
+    subrotamer_definition[8] = 34;
+    subrotamer_definition[9] = 46;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 35;
+    subrotamer_definition[2] = 36;
+    subrotamer_definition[3] = 37;
+    subrotamer_definition[4] = 38;
+    subrotamer_definition[5] = 39;
+    subrotamer_definition[6] = 40;
+    subrotamer_definition[7] = 41;
+    subrotamer_definition[8] = 42;
+    subrotamer_definition[9] = 47;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot;
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,43,settings->FRM_T_TRP,
+                                   probability,settings->internal_e_prefactor_TRP);
+
+  std::vector<int> subrotamer_definition(9);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+  subrotamer_definition[4] = 4;
+  subrotamer_definition[5] = 5;
+  subrotamer_definition[6] = 6;
+  subrotamer_definition[7] = 7;
+  subrotamer_definition[8] = 8;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 9;
+  subrotamer_definition[1] = 10;
+  subrotamer_definition[2] = 11;
+  subrotamer_definition[3] = 12;
+  subrotamer_definition[4] = 13;
+  subrotamer_definition[5] = 14;
+  subrotamer_definition[6] = 15;
+  subrotamer_definition[7] = 16;
+  subrotamer_definition[8] = 17;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 18;
+  subrotamer_definition[1] = 19;
+  subrotamer_definition[2] = 20;
+  subrotamer_definition[3] = 21;
+  subrotamer_definition[4] = 22;
+  subrotamer_definition[5] = 23;
+  subrotamer_definition[6] = 24;
+  subrotamer_definition[7] = 25;
+  subrotamer_definition[8] = 26;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 27;
+  subrotamer_definition[2] = 28;
+  subrotamer_definition[3] = 29;
+  subrotamer_definition[4] = 30;
+  subrotamer_definition[5] = 31;
+  subrotamer_definition[6] = 32;
+  subrotamer_definition[7] = 33;
+  subrotamer_definition[8] = 34;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 35;
+  subrotamer_definition[2] = 36;
+  subrotamer_definition[3] = 37;
+  subrotamer_definition[4] = 38;
+  subrotamer_definition[5] = 39;
+  subrotamer_definition[6] = 40;
+  subrotamer_definition[7] = 41;
+  subrotamer_definition[8] = 42;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  
+  return rot;
+}
+
+
+FRMRotamerPtr ConstructFRMTYR(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, Real sig2, Real chi3){
+
+  Real dev1 = sig1*settings->FRM_delta1_TYR;
+  Real dev2 = sig2*settings->FRM_delta2_TYR;
+
+  //heuristic value of 10 degrees for sig, as described in SCWRL 4 paper
+  //note, that the lone pair directions of the oxygen is dependent
+  //on the hydrogen position... it would therefore be necessary to
+  //also adjust them when the hydrogen position is varied... 
+  //This is not done for approximative reasons
+  Real dev3 = 0.17453*settings->FRM_delta3_TYR;
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[40];
+    particles = new Particle[40];
+  }
+  else{
+    positions = new geom::Vec3[33]; 
+    particles = new Particle[33];
+  }
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5113,1.9712,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.40,1.38,2.0944,0.0,positions[3]);
+
+  //construct CE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.40,1.38,2.0944,0.0,positions[4]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[3],
+                   1.40,1.40,2.0944,0.0,positions[5]);
+
+  //construct OH
+  ConstructAtomPos(positions[1],positions[3],positions[5],
+                   1.40,1.40,2.0944,M_PI,positions[6]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5113,1.9712,chi1-dev1,positions[7]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[7],
+                   1.38,1.5113,2.0944,chi2,positions[8]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[7],
+                   1.38,1.5113,2.0944,chi2+M_PI,positions[9]);
+
+  //construct CE1
+  ConstructAtomPos(positions[9],positions[7],positions[8],
+                   1.40,1.38,2.0944,0.0,positions[10]);
+
+  //construct CE2
+  ConstructAtomPos(positions[8],positions[7],positions[9],
+                   1.40,1.38,2.0944,0.0,positions[11]);
+
+  //construct CZ
+  ConstructAtomPos(positions[7],positions[8],positions[10],
+                   1.40,1.40,2.0944,0.0,positions[12]);
+
+  //construct OH
+  ConstructAtomPos(positions[8],positions[10],positions[12],
+                   1.40,1.40,2.0944,M_PI,positions[13]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5113,1.9712,chi1+dev1,positions[14]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[14],
+                   1.38,1.5113,2.0944,chi2,positions[15]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[14],
+                   1.38,1.5113,2.0944,chi2+M_PI,positions[16]);
+
+  //construct CE1
+  ConstructAtomPos(positions[16],positions[14],positions[15],
+                   1.40,1.38,2.0944,0.0,positions[17]);
+
+  //construct CE2
+  ConstructAtomPos(positions[15],positions[14],positions[16],
+                   1.40,1.38,2.0944,0.0,positions[18]);
+
+  //construct CZ
+  ConstructAtomPos(positions[14],positions[15],positions[17],
+                   1.40,1.40,2.0944,0.0,positions[19]);
+
+  //construct OH
+  ConstructAtomPos(positions[15],positions[17],positions[19],
+                   1.40,1.40,2.0944,M_PI,positions[20]);
+
+  //chi2-dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2-dev2,positions[21]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2-dev2+M_PI,positions[22]);
+
+  //construct CE1
+  ConstructAtomPos(positions[22],positions[0],positions[21],
+                   1.40,1.38,2.0944,0.0,positions[23]);
+
+  //construct CE2
+  ConstructAtomPos(positions[21],positions[0],positions[22],
+                   1.40,1.38,2.0944,0.0,positions[24]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[21],positions[23],
+                   1.40,1.40,2.0944,0.0,positions[25]);
+
+  //construct OH
+  ConstructAtomPos(positions[21],positions[23],positions[25],
+                   1.40,1.40,2.0944,M_PI,positions[26]);
+
+  //chi2+dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2+dev2,positions[27]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5113,2.0944,chi2+dev2+M_PI,positions[28]);
+
+  //construct CE1
+  ConstructAtomPos(positions[28],positions[0],positions[27],
+                   1.40,1.38,2.0944,0.0,positions[29]);
+
+  //construct CE2
+  ConstructAtomPos(positions[27],positions[0],positions[28],
+                   1.40,1.38,2.0944,0.0,positions[30]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[27],positions[29],
+                   1.40,1.40,2.0944,0.0,positions[31]);
+
+  //construct OH
+  ConstructAtomPos(positions[27],positions[29],positions[31],
+                   1.40,1.40,2.0944,M_PI,positions[32]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.25,"CZ");
+
+  particles[6] = Particle(positions[6],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.65,"OH");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[11] = Particle(positions[11],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.25,"CZ");
+
+  particles[13] = Particle(positions[13],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.65,"OH");
+
+  particles[14] = Particle(positions[14],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[15] = Particle(positions[15],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[16] = Particle(positions[16],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[17] = Particle(positions[17],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[18] = Particle(positions[18],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[19] = Particle(positions[19],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.25,"CZ");
+
+  particles[20] = Particle(positions[20],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.65,"OH");
+
+  particles[21] = Particle(positions[21],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[22] = Particle(positions[22],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[23] = Particle(positions[23],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[24] = Particle(positions[24],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[25] = Particle(positions[25],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.25,"CZ");
+
+  particles[26] = Particle(positions[26],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.65,"OH");
+
+  particles[27] = Particle(positions[27],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[28] = Particle(positions[28],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[29] = Particle(positions[29],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[30] = Particle(positions[30],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[31] = Particle(positions[31],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.25,"CZ");
+
+  particles[32] = Particle(positions[32],settings->O_max_radius,
+                           settings->O_radius,-0.1591,-0.65,"OH");
+
+  if(settings->consider_hbonds){
+
+    if(chi3 != chi3) chi3 = M_PI;
+
+    ConstructAtomPos(positions[3],positions[5],positions[6],
+                     0.9594,1.40,1.8757,chi3,positions[33]);
+
+    ConstructAtomPos(positions[10],positions[12],positions[13],
+                     0.9594,1.40,1.8757,chi3,positions[34]);
+
+    ConstructAtomPos(positions[17],positions[19],positions[20],
+                     0.9594,1.40,1.8757,chi3,positions[35]);
+
+    ConstructAtomPos(positions[23],positions[25],positions[26],
+                     0.9594,1.40,1.8757,chi3,positions[36]);
+
+    ConstructAtomPos(positions[29],positions[31],positions[32],
+                     0.9594,1.40,1.8757,chi3,positions[37]);
+
+    ConstructAtomPos(positions[3],positions[5],positions[6],
+                     0.9594,1.40,1.8757,chi3-dev3,positions[38]);
+
+    ConstructAtomPos(positions[3],positions[5],positions[6],
+                     0.9594,1.40,1.8757,chi3+dev3,positions[39]);
+
+
+    particles[33] = Particle(positions[33],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.40,"HH");
+    particles[33].SetPolarDirection(positions[33]-positions[6]);
+
+    particles[34] = Particle(positions[34],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.40,"HH");
+    particles[34].SetPolarDirection(positions[34]-positions[13]);
+
+    particles[35] = Particle(positions[35],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.40,"HH");
+    particles[35].SetPolarDirection(positions[35]-positions[20]);
+
+    particles[36] = Particle(positions[36],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.40,"HH");
+    particles[36].SetPolarDirection(positions[36]-positions[26]);
+
+    particles[37] = Particle(positions[37],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.40,"HH");
+    particles[37].SetPolarDirection(positions[37]-positions[32]);
+
+    particles[38] = Particle(positions[38],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.40,"HH");
+    particles[38].SetPolarDirection(positions[38]-positions[6]);
+
+    particles[39] = Particle(positions[39],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.40,"HH");
+    particles[39].SetPolarDirection(positions[39]-positions[6]);
+
+
+    //create a center point between the two lone pair clouds with distance to OH equals 1
+    geom::Vec3 center_point = positions[6] + geom::Normalize((positions[6]-positions[33])/0.9594 + 
+                                                             (positions[6]-positions[5])/1.40);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+    ConstructAtomPos(positions[33],positions[6],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[33],positions[6],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[6].AddLonePair(lone_pair_center_one-positions[6]);
+    particles[6].AddLonePair(lone_pair_center_two-positions[6]);
+
+
+    center_point = positions[13] + geom::Normalize((positions[13]-positions[34])/0.9594 + 
+                                                             (positions[13]-positions[12])/1.40);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    ConstructAtomPos(positions[34],positions[13],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[34],positions[13],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[13].AddLonePair(lone_pair_center_one-positions[13]);
+    particles[13].AddLonePair(lone_pair_center_two-positions[13]);
+
+
+    center_point = positions[20] + geom::Normalize((positions[20]-positions[35])/0.9594 + 
+                                                   (positions[20]-positions[19])/1.40);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    ConstructAtomPos(positions[35],positions[20],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[35],positions[20],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[20].AddLonePair(lone_pair_center_one-positions[20]);
+    particles[20].AddLonePair(lone_pair_center_two-positions[20]);
+
+
+    center_point = positions[26] + geom::Normalize((positions[26]-positions[36])/0.9594 + 
+                                                   (positions[26]-positions[25])/1.40);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    ConstructAtomPos(positions[36],positions[26],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[36],positions[26],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[26].AddLonePair(lone_pair_center_one-positions[26]);
+    particles[26].AddLonePair(lone_pair_center_two-positions[26]);
+
+    center_point = positions[32] + geom::Normalize((positions[32]-positions[37])/0.9594 + 
+                                                   (positions[32]-positions[31])/1.40);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    ConstructAtomPos(positions[37],positions[32],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[37],positions[32],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[32].AddLonePair(lone_pair_center_one-positions[32]);
+    particles[32].AddLonePair(lone_pair_center_two-positions[32]);
+
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,40,settings->FRM_T_TYR,
+                                     probability,settings->internal_e_prefactor_TYR);
+
+    std::vector<int> subrotamer_definition(8);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 4;
+    subrotamer_definition[5] = 5;
+    subrotamer_definition[6] = 6;
+    subrotamer_definition[7] = 33;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 7;
+    subrotamer_definition[1] = 8;
+    subrotamer_definition[2] = 9;
+    subrotamer_definition[3] = 10;
+    subrotamer_definition[4] = 11;
+    subrotamer_definition[5] = 12;
+    subrotamer_definition[6] = 13;
+    subrotamer_definition[7] = 34;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 14;
+    subrotamer_definition[1] = 15;
+    subrotamer_definition[2] = 16;
+    subrotamer_definition[3] = 17;
+    subrotamer_definition[4] = 18;
+    subrotamer_definition[5] = 19;
+    subrotamer_definition[6] = 20;
+    subrotamer_definition[7] = 35;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 21;
+    subrotamer_definition[2] = 22;
+    subrotamer_definition[3] = 23;
+    subrotamer_definition[4] = 24;
+    subrotamer_definition[5] = 25;
+    subrotamer_definition[6] = 26;
+    subrotamer_definition[7] = 36;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 27;
+    subrotamer_definition[2] = 28;
+    subrotamer_definition[3] = 29;
+    subrotamer_definition[4] = 30;
+    subrotamer_definition[5] = 31;
+    subrotamer_definition[6] = 32;
+    subrotamer_definition[7] = 37;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3-dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 4;
+    subrotamer_definition[5] = 5;
+    subrotamer_definition[6] = 6;
+    subrotamer_definition[7] = 38;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi3+dev3
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 4;
+    subrotamer_definition[5] = 5;
+    subrotamer_definition[6] = 6;
+    subrotamer_definition[7] = 39;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot;    
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,33,settings->FRM_T_TYR,
+                                   probability,settings->internal_e_prefactor_TYR);
+
+  std::vector<int> subrotamer_definition(7);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+  subrotamer_definition[4] = 4;
+  subrotamer_definition[5] = 5;
+  subrotamer_definition[6] = 6;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 7;
+  subrotamer_definition[1] = 8;
+  subrotamer_definition[2] = 9;
+  subrotamer_definition[3] = 10;
+  subrotamer_definition[4] = 11;
+  subrotamer_definition[5] = 12;
+  subrotamer_definition[6] = 13;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 14;
+  subrotamer_definition[1] = 15;
+  subrotamer_definition[2] = 16;
+  subrotamer_definition[3] = 17;
+  subrotamer_definition[4] = 18;
+  subrotamer_definition[5] = 19;
+  subrotamer_definition[6] = 20;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 21;
+  subrotamer_definition[2] = 22;
+  subrotamer_definition[3] = 23;
+  subrotamer_definition[4] = 24;
+  subrotamer_definition[5] = 25;
+  subrotamer_definition[6] = 26;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 27;
+  subrotamer_definition[2] = 28;
+  subrotamer_definition[3] = 29;
+  subrotamer_definition[4] = 30;
+  subrotamer_definition[5] = 31;
+  subrotamer_definition[6] = 32;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot; 
+}
+
+
+FRMRotamerPtr ConstructFRMTHR(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2){
+ 
+  Real dev1 = sig1*settings->FRM_delta1_THR;
+  //heuristic value of 10 degrees for sig, as described in SCWRL 4 paper
+  //note, that the lone pair directions of the oxygen is dependent
+  //on the hydrogen position... it would therefore be necessary to
+  //also adjust them when the hydrogen position is varied... 
+  //This is not done for approximative reasons
+  Real dev2 = 0.17453*settings->FRM_delta2_THR;
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[11];
+    particles = new Particle[11];
+  }
+  else{
+    positions = new geom::Vec3[6]; 
+    particles = new Particle[6];
+  }
+
+  //without sigma
+
+  //construct OG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4252,1.9576,chi1,positions[0]);
+
+  //construct CG2
+  ConstructAtomPos(positions[0],ca_pos,cb_pos,
+                   1.5324,2.0230,-2.1665,positions[1]);
+
+  //chi1-sig1
+
+  //construct OG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4252,1.9576,chi1-dev1,positions[2]);
+
+  //construct CG2
+  ConstructAtomPos(positions[2],ca_pos,cb_pos,
+                   1.5324,2.0230,-2.1665,positions[3]);
+
+  //chi1+sig1
+
+  //construct OG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.4252,1.9576,chi1+dev1,positions[4]);
+
+  //construct CG2
+  ConstructAtomPos(positions[4],ca_pos,cb_pos,
+                   1.5324,2.0230,-2.1665,positions[5]);
+
+  particles[0] = Particle(positions[0],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.65,"OG1");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG2");
+
+  particles[2] = Particle(positions[2],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.65,"OG1");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG2");
+
+  particles[4] = Particle(positions[4],settings->O_max_radius,
+                          settings->O_radius,-0.1591,-0.65,"OG1");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.00,"CG2");
+
+  if(settings->consider_hbonds){
+    
+    if(chi2 != chi2) chi2 = M_PI;
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                     0.9633,1.4252,1.8404,chi2,positions[6]);
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[2],
+                     0.9633,1.4252,1.8404,chi2,positions[7]);
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[4],
+                     0.9633,1.4252,1.8404,chi2,positions[8]); 
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                     0.9633,1.4252,1.8404,chi2-dev2,positions[9]); 
+
+    ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                     0.9633,1.4252,1.8404,chi2+dev2,positions[10]); 
+
+
+    particles[6] = Particle(positions[6],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG1");
+    particles[6].SetPolarDirection(positions[6]-positions[0]);
+
+    particles[7] = Particle(positions[7],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG1");
+    particles[7].SetPolarDirection(positions[7]-positions[2]);
+
+    particles[8] = Particle(positions[8],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG1");
+    particles[8].SetPolarDirection(positions[8]-positions[4]);
+
+    particles[9] = Particle(positions[9],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG1");
+    particles[9].SetPolarDirection(positions[9]-positions[0]);
+
+    particles[10] = Particle(positions[10],settings->H_max_radius,
+                            settings->H_radius,-0.0498,0.40,"HG1");
+    particles[10].SetPolarDirection(positions[10]-positions[0]);
+
+
+    //create a center point between the two lone pair clouds with distance to OH equals 1
+    geom::Vec3 center_point = positions[0] + geom::Normalize((positions[0]-positions[6])/0.9633 + 
+                                                             (positions[0]-cb_pos)/1.4252);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    geom::Vec3 lone_pair_center_one, lone_pair_center_two;
+    ConstructAtomPos(positions[6],positions[0],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[6],positions[0],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[0].AddLonePair(lone_pair_center_one-positions[0]);
+    particles[0].AddLonePair(lone_pair_center_two-positions[0]);
+
+
+
+    //create a center point between the two lone pair clouds with distance to OH equals 1
+    center_point = positions[2] + geom::Normalize((positions[2]-positions[7])/0.9633 + 
+                                                             (positions[2]-cb_pos)/1.4252);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    ConstructAtomPos(positions[7],positions[2],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[7],positions[2],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[2].AddLonePair(lone_pair_center_one-positions[2]);
+    particles[2].AddLonePair(lone_pair_center_two-positions[2]);
+
+
+    //create a center point between the two lone pair clouds with distance to OH equals 1
+    center_point = positions[4] + geom::Normalize((positions[4]-positions[8])/0.9633 + 
+                                                             (positions[4]-cb_pos)/1.4252);
+
+    //the two lone pair representatives can now be calculated. Note, that they have
+    //tetrahedral conformation => a bond length of 1.4150 does the trick... (tan(109.5/2))                          
+    ConstructAtomPos(positions[8],positions[4],center_point,
+                     1.4150,1.0,M_PI/2,M_PI/2,lone_pair_center_one);
+    ConstructAtomPos(positions[8],positions[4],center_point,
+                     1.4150,1.0,M_PI/2,-M_PI/2,lone_pair_center_two);
+    particles[4].AddLonePair(lone_pair_center_one-positions[4]);
+    particles[4].AddLonePair(lone_pair_center_two-positions[4]);
+
+
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,11,settings->FRM_T_THR,
+                                     probability,settings->internal_e_prefactor_THR);
+
+    std::vector<int> subrotamer_definition(3);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 6;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 2;
+    subrotamer_definition[1] = 3;
+    subrotamer_definition[2] = 7;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 4;
+    subrotamer_definition[1] = 5;
+    subrotamer_definition[2] = 8;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 9;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 10;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+
+    delete [] positions;
+    return rot;
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,6,settings->FRM_T_THR,
+                                   probability,settings->internal_e_prefactor_THR);
+
+  std::vector<int> subrotamer_definition(2);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 2;
+  subrotamer_definition[1] = 3;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 4;
+  subrotamer_definition[1] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;
+}                                                                        
+
+
+FRMRotamerPtr ConstructFRMVAL(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1){
+
+  Real dev1 = sig1*settings->FRM_delta1_VAL;
+
+  Particle* particles = new Particle[6];
+  geom::Vec3* positions = new geom::Vec3[6];
+
+  //without sigma
+
+  //constructing CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5441,1.9892,chi1,positions[0]);
+
+  //constructing CG2
+  ConstructAtomPos(positions[0],ca_pos,cb_pos,
+                   1.5414,1.9577,2.1640,positions[1]);
+
+  //chi1-dev1
+
+  //constructing CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5441,1.9892,chi1-dev1,positions[2]);
+
+  //constructing CG2
+  ConstructAtomPos(positions[2],ca_pos,cb_pos,
+                   1.5414,1.9577,2.1640,positions[3]);
+
+  //chi1+dev1
+
+  //constructing CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5441,1.9892,chi1+dev1,positions[4]);
+
+  //constructing CG2
+  ConstructAtomPos(positions[4],ca_pos,cb_pos,
+                   1.5414,1.9577,2.1640,positions[5]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG1");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG1");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG1");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,6,settings->FRM_T_VAL,
+                                   probability,settings->internal_e_prefactor_VAL);
+
+  std::vector<int> subrotamer_definition(2);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 2;
+  subrotamer_definition[1] = 3;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 4;
+  subrotamer_definition[1] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;  
+}
+
+
+FRMRotamerPtr ConstructFRMILE(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+  Real dev1 = sig1*settings->FRM_delta1_ILE;
+  Real dev2 = sig2*settings->FRM_delta2_ILE;
+
+
+  Particle* particles = new Particle[11];
+  geom::Vec3* positions = new geom::Vec3[11];
+
+  //without sigma
+
+  //construct CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5498,1.9832,chi1,positions[0]);
+
+  //construct CG2
+  ConstructAtomPos(positions[0], ca_pos, cb_pos,
+                   1.5452,1.9885,-2.2696,positions[1]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5381,1.5498,1.9912,chi2,positions[2]);
+
+  //chi1-dev1
+
+  //construct CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5498,1.9832,chi1-dev1,positions[3]);
+
+  //construct CG2
+  ConstructAtomPos(positions[3], ca_pos, cb_pos,
+                   1.5452,1.9885,-2.2696,positions[4]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[3],
+                   1.5381,1.5498,1.9912,chi2,positions[5]);
+
+  //chi1+dev1
+
+  //construct CG1
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5498,1.9832,chi1+dev1,positions[6]);
+
+  //construct CG2
+  ConstructAtomPos(positions[6], ca_pos, cb_pos,
+                   1.5452,1.9885,-2.2696,positions[7]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.5381,1.5498,1.9912,chi2,positions[8]);
+
+  //chi2-dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5381,1.5498,1.9912,chi2-dev2,positions[9]);
+
+  //chi2+dev2
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5381,1.5498,1.9912,chi2+dev2,positions[10]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG1");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG1");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG1");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CG2");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,11,settings->FRM_T_ILE,
+                                   probability,settings->internal_e_prefactor_ILE);
+
+  std::vector<int> subrotamer_definition(3);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 3;
+  subrotamer_definition[1] = 4;
+  subrotamer_definition[2] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 6;
+  subrotamer_definition[1] = 7;
+  subrotamer_definition[2] = 8;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 9;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 10;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;  
+}
+
+FRMRotamerPtr ConstructFRMLEU(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+
+  Real dev1 = sig1*settings->FRM_delta1_LEU;
+  Real dev2 = sig2*settings->FRM_delta2_LEU;
+
+  Particle* particles = new Particle[13];
+  geom::Vec3* positions = new geom::Vec3[13];
+
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5472,2.0501,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5361,1.5472,1.9282,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(positions[1],cb_pos,positions[0],
+                   1.5360,1.5472,1.9647,2.0944,positions[2]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5472,2.0501,chi1-dev1,positions[3]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[3],
+                   1.5361,1.5472,1.9282,chi2,positions[4]);
+
+  //construct CD2
+  ConstructAtomPos(positions[4],cb_pos,positions[3],
+                   1.5360,1.5472,1.9647,2.0944,positions[5]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5472,2.0501,chi1+dev1,positions[6]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.5361,1.5472,1.9282,chi2,positions[7]);
+
+  //construct CD2
+  ConstructAtomPos(positions[7],cb_pos,positions[6],
+                   1.5360,1.5472,1.9647,2.0944,positions[8]);
+
+  //chi2-dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5361,1.5472,1.9282,chi2-dev2,positions[9]);
+
+  //construct CD2
+  ConstructAtomPos(positions[9],cb_pos,positions[0],
+                   1.5360,1.5472,1.9647,2.0944,positions[10]);
+
+  //chi2+dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5361,1.5472,1.9282,chi2+dev2,positions[11]);
+
+  //construct CD2
+  ConstructAtomPos(positions[11],cb_pos,positions[0],
+                   1.5360,1.5472,1.9647,2.0944,positions[12]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.0486,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.0486,0.00,"CG");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD2");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                          settings->C_radius,-0.0486,0.00,"CG");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD2");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                          settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                           settings->C_radius,-0.1811,0.00,"CD2");
+
+  particles[11] = Particle(positions[11],settings->C_max_radius,
+                           settings->C_radius,-0.1811,0.00,"CD1");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1811,0.00,"CD2");
+
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,13,settings->FRM_T_LEU,
+                                   probability,settings->internal_e_prefactor_LEU);
+
+  std::vector<int> subrotamer_definition(3);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 3;
+  subrotamer_definition[1] = 4;
+  subrotamer_definition[2] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 6;
+  subrotamer_definition[1] = 7;
+  subrotamer_definition[2] = 8;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 9;
+  subrotamer_definition[2] = 10;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 11;
+  subrotamer_definition[2] = 12;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;  
+}
+
+FRMRotamerPtr ConstructFRMPRO(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+
+  //large scale benchmarks showed, that varying around the chi angles in proline 
+  //has a negative effect on the performance =>reduce to one single subrotamer
+
+
+  //Real dev1 = sig1*settings->FRM_delta1_PRO;
+  //Real dev2 = sig2*settings->FRM_delta2_PRO;
+
+  //Particle* particles = new Particle[8];
+  //geom::Vec3* positions = new geom::Vec3[8];
+
+  Particle* particles = new Particle[2];
+  geom::Vec3* positions = new geom::Vec3[2];
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5322,1.8219,chi1,positions[0]);
+
+  //construct CD
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.5317,1.5322,1.8014,chi2,positions[1]);
+
+  //chi1-dev1
+
+  //construct CG
+  //ConstructAtomPos(n_pos,ca_pos,cb_pos,
+  //                 1.5322,1.8219,chi1-dev1,positions[2]);
+
+  //construct CD
+  //ConstructAtomPos(ca_pos,cb_pos,positions[2],
+  //                 1.5317,1.5322,1.8014,chi2,positions[3]);
+
+  //chi1+dev1
+
+  //construct CG
+  //ConstructAtomPos(n_pos,ca_pos,cb_pos,
+  //                 1.5322,1.8219,chi1+dev1,positions[4]);
+
+  //construct CD
+  //ConstructAtomPos(ca_pos,cb_pos,positions[4],
+  //                 1.5317,1.5322,1.8014,chi2,positions[5]);
+
+  //chi2-dev2
+
+  //construct CD
+  //ConstructAtomPos(ca_pos,cb_pos,positions[0],
+  //                 1.5317,1.5322,1.8014,chi2-dev2,positions[6]);
+
+  //chi2+dev2
+
+  //construct CD
+  //ConstructAtomPos(ca_pos,cb_pos,positions[0],
+  //                 1.5317,1.5322,1.8014,chi2+dev2,positions[7]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                          settings->C_radius,-0.1142,0.10,"CD");
+
+  //particles[2] = Particle(positions[2],settings->C_max_radius,
+  //                        settings->C_radius,-0.1142,0.00,"CG");
+
+  //particles[3] = Particle(positions[3],settings->C_max_radius,
+  //                        settings->C_radius,-0.1142,0.10,"CD");
+
+  //particles[4] = Particle(positions[4],settings->C_max_radius,
+  //                        settings->C_radius,-0.1142,0.00,"CG");
+
+  //particles[5] = Particle(positions[5],settings->C_max_radius,
+  //                        settings->C_radius,-0.1142,0.10,"CD");
+
+  //particles[6] = Particle(positions[6],settings->C_max_radius,
+  //                        settings->C_radius,-0.1142,0.10,"CD");
+
+  //particles[7] = Particle(positions[7],settings->C_max_radius,
+  //                        settings->C_radius,-0.1142,0.10,"CD");
+
+
+  //FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,8,settings->FRM_T_PRO,
+  //                                 probability,settings->internal_e_prefactor_PRO);
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,2,settings->FRM_T_PRO,
+                                   probability,settings->internal_e_prefactor_PRO);
+
+
+  std::vector<int> subrotamer_definition(2);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+  //chi1-dev1
+
+  //subrotamer_definition[0] = 2;
+  //subrotamer_definition[1] = 3;
+
+  //rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  //subrotamer_definition[0] = 4;
+  //subrotamer_definition[1] = 5;
+
+  //rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  //subrotamer_definition[0] = 0;
+  //subrotamer_definition[1] = 6;
+
+  //rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  //subrotamer_definition[0] = 0;
+  //subrotamer_definition[1] = 7;
+
+  //rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;  
+}
+
+FRMRotamerPtr ConstructFRMHSD(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+
+  Real dev1 = sig1*settings->FRM_delta1_HIS;
+  Real dev2 = sig2*settings->FRM_delta2_HIS;
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[28];
+    particles = new Particle[28];
+  }
+  else{
+    positions = new geom::Vec3[23]; 
+    particles = new Particle[23];
+  }
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5041,1.9905,chi1,positions[0]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3783,1.5041,2.1660,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3597,1.5041,2.2619,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.3549,1.3783,1.8680,0.0,positions[3]);
+
+  //construct NE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.3817,1.3597,1.9204,0.0,positions[4]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5041,1.9905,chi1-dev1,positions[5]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[5],
+                   1.3783,1.5041,2.1660,chi2,positions[6]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[5],
+                   1.3597,1.5041,2.2619,chi2+M_PI,positions[7]);
+
+  //construct CE1
+  ConstructAtomPos(positions[7],positions[5],positions[6],
+                   1.3549,1.3783,1.8680,0.0,positions[8]);
+
+  //construct NE2
+  ConstructAtomPos(positions[6],positions[5],positions[7],
+                   1.3817,1.3597,1.9204,0.0,positions[9]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5041,1.9905,chi1+dev1,positions[10]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[10],
+                   1.3783,1.5041,2.1660,chi2,positions[11]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[10],
+                   1.3597,1.5041,2.2619,chi2+M_PI,positions[12]);
+
+  //construct CE1
+  ConstructAtomPos(positions[12],positions[10],positions[11],
+                   1.3549,1.3783,1.8680,0.0,positions[13]);
+
+  //construct NE2
+  ConstructAtomPos(positions[11],positions[10],positions[12],
+                   1.3817,1.3597,1.9204,0.0,positions[14]);
+
+  //chi2-dev2
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3783,1.5041,2.1660,chi2-dev2,positions[15]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3597,1.5041,2.2619,chi2-dev2+M_PI,positions[16]);
+
+  //construct CE1
+  ConstructAtomPos(positions[16],positions[0],positions[15],
+                   1.3549,1.3783,1.8680,0.0,positions[17]);
+
+  //construct NE2
+  ConstructAtomPos(positions[15],positions[0],positions[16],
+                   1.3817,1.3597,1.9204,0.0,positions[18]);
+
+  //chi2-dev2
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3783,1.5041,2.1660,chi2+dev2,positions[19]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3597,1.5041,2.2619,chi2+dev2+M_PI,positions[20]);
+
+  //construct CE1
+  ConstructAtomPos(positions[20],positions[0],positions[19],
+                   1.3549,1.3783,1.8680,0.0,positions[21]);
+
+  //construct NE2
+  ConstructAtomPos(positions[19],positions[0],positions[20],
+                   1.3817,1.3597,1.9204,0.0,positions[22]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[1] = Particle(positions[1],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[6] = Particle(positions[6],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[9] = Particle(positions[9],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[11] = Particle(positions[11],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[13] = Particle(positions[13],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[14] = Particle(positions[14],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[15] = Particle(positions[15],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[16] = Particle(positions[16],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[17] = Particle(positions[17],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[18] = Particle(positions[18],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[19] = Particle(positions[19],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[20] = Particle(positions[20],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[21] = Particle(positions[21],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[22] = Particle(positions[22],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE2");
+
+  if(settings->consider_hbonds){
+
+    ConstructAtomPos(positions[2],positions[0], positions[1],
+                     1.0005,1.3783,2.2037,M_PI,positions[23]);
+
+    ConstructAtomPos(positions[7],positions[5], positions[6],
+                     1.0005,1.3783,2.2037,M_PI,positions[24]);
+
+    ConstructAtomPos(positions[12],positions[10], positions[11],
+                     1.0005,1.3783,2.2037,M_PI,positions[25]);
+
+    ConstructAtomPos(positions[16],positions[0], positions[15],
+                     1.0005,1.3783,2.2037,M_PI,positions[26]);
+
+    ConstructAtomPos(positions[20],positions[0], positions[19],
+                     1.0005,1.3783,2.2037,M_PI,positions[27]);
+
+
+    particles[23] = Particle(positions[23],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD1");
+    particles[23].SetPolarDirection(positions[23]-positions[1]);
+
+    particles[24] = Particle(positions[24],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD1");
+    particles[24].SetPolarDirection(positions[24]-positions[6]);
+
+    particles[25] = Particle(positions[25],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD1");
+    particles[25].SetPolarDirection(positions[25]-positions[11]);
+
+    particles[26] = Particle(positions[26],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HD1");
+    particles[26].SetPolarDirection(positions[26]-positions[15]);
+
+    particles[27] = Particle(positions[27],settings->H_max_radius,
+                           settings->H_radius,-0.0498,0.30,"HD1");
+    particles[27].SetPolarDirection(positions[27]-positions[19]);
+
+
+    geom::Vec3 lone_pair_dir = geom::Normalize(positions[4]-positions[3])+
+                                              (positions[4]-positions[2])/1.3817;
+    particles[4].AddLonePair(lone_pair_dir);
+
+
+    lone_pair_dir = geom::Normalize(positions[9]-positions[8])+
+                                              (positions[9]-positions[7])/1.3817;
+    particles[9].AddLonePair(lone_pair_dir);
+
+
+    lone_pair_dir = geom::Normalize(positions[14]-positions[13])+
+                                              (positions[14]-positions[12])/1.3817;
+    particles[14].AddLonePair(lone_pair_dir);
+
+
+    lone_pair_dir = geom::Normalize(positions[18]-positions[17])+
+                                              (positions[18]-positions[16])/1.3817;
+    particles[18].AddLonePair(lone_pair_dir);
+
+
+    lone_pair_dir = geom::Normalize(positions[22]-positions[21])+
+                                              (positions[22]-positions[20])/1.3817;
+    particles[22].AddLonePair(lone_pair_dir);
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,28,settings->FRM_T_HIS,
+                                     probability,settings->internal_e_prefactor_HIS);
+
+    std::vector<int> subrotamer_definition(6);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 4;
+    subrotamer_definition[5] = 23;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 5;
+    subrotamer_definition[1] = 6;
+    subrotamer_definition[2] = 7;
+    subrotamer_definition[3] = 8;
+    subrotamer_definition[4] = 9;
+    subrotamer_definition[5] = 24;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 10;
+    subrotamer_definition[1] = 11;
+    subrotamer_definition[2] = 12;
+    subrotamer_definition[3] = 13;
+    subrotamer_definition[4] = 14;
+    subrotamer_definition[5] = 25;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 15;
+    subrotamer_definition[2] = 16;
+    subrotamer_definition[3] = 17;
+    subrotamer_definition[4] = 18;
+    subrotamer_definition[5] = 26;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 19;
+    subrotamer_definition[2] = 20;
+    subrotamer_definition[3] = 21;
+    subrotamer_definition[4] = 22;
+    subrotamer_definition[5] = 27;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot; 
+  }
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,23,settings->FRM_T_HIS,
+                                   probability,settings->internal_e_prefactor_HIS);
+
+  std::vector<int> subrotamer_definition(5);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+  subrotamer_definition[4] = 4;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 5;
+  subrotamer_definition[1] = 6;
+  subrotamer_definition[2] = 7;
+  subrotamer_definition[3] = 8;
+  subrotamer_definition[4] = 9;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 10;
+  subrotamer_definition[1] = 11;
+  subrotamer_definition[2] = 12;
+  subrotamer_definition[3] = 13;
+  subrotamer_definition[4] = 14;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 15;
+  subrotamer_definition[2] = 16;
+  subrotamer_definition[3] = 17;
+  subrotamer_definition[4] = 18;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 19;
+  subrotamer_definition[2] = 20;
+  subrotamer_definition[3] = 21;
+  subrotamer_definition[4] = 22;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;                                                                        
+}
+
+FRMRotamerPtr ConstructFRMHSE(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos,
+                              Real probability, RotamerSettingsPtr settings,
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+
+  Real dev1 = sig1*settings->FRM_delta1_HIS;
+  Real dev2 = sig2*settings->FRM_delta2_HIS;
+
+  Particle* particles;
+  geom::Vec3* positions;
+
+  if(settings->consider_hbonds){
+    positions = new geom::Vec3[28];
+    particles = new Particle[28];
+  }
+  else{
+    positions = new geom::Vec3[23];
+    particles = new Particle[23];
+  } 
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5041,1.9905,chi1,positions[0]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3783,1.5041,2.1660,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3597,1.5041,2.2619,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.3549,1.3783,1.8680,0.0,positions[3]);
+
+  //construct NE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.3817,1.3597,1.9204,0.0,positions[4]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5041,1.9905,chi1-dev1,positions[5]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[5],
+                   1.3783,1.5041,2.1660,chi2,positions[6]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[5],
+                   1.3597,1.5041,2.2619,chi2+M_PI,positions[7]);
+
+  //construct CE1
+  ConstructAtomPos(positions[7],positions[5],positions[6],
+                   1.3549,1.3783,1.8680,0.0,positions[8]);
+
+  //construct NE2
+  ConstructAtomPos(positions[6],positions[5],positions[7],
+                   1.3817,1.3597,1.9204,0.0,positions[9]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5041,1.9905,chi1+dev1,positions[10]);
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[10],
+                   1.3783,1.5041,2.1660,chi2,positions[11]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[10],
+                   1.3597,1.5041,2.2619,chi2+M_PI,positions[12]);
+
+  //construct CE1
+  ConstructAtomPos(positions[12],positions[10],positions[11],
+                   1.3549,1.3783,1.8680,0.0,positions[13]);
+
+  //construct NE2
+  ConstructAtomPos(positions[11],positions[10],positions[12],
+                   1.3817,1.3597,1.9204,0.0,positions[14]);
+
+  //chi2-dev2
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3783,1.5041,2.1660,chi2-dev2,positions[15]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3597,1.5041,2.2619,chi2-dev2+M_PI,positions[16]);
+
+  //construct CE1
+  ConstructAtomPos(positions[16],positions[0],positions[15],
+                   1.3549,1.3783,1.8680,0.0,positions[17]);
+
+  //construct NE2
+  ConstructAtomPos(positions[15],positions[0],positions[16],
+                   1.3817,1.3597,1.9204,0.0,positions[18]);
+
+  //chi2-dev2
+
+  //construct ND1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3783,1.5041,2.1660,chi2+dev2,positions[19]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.3597,1.5041,2.2619,chi2+dev2+M_PI,positions[20]);
+
+  //construct CE1
+  ConstructAtomPos(positions[20],positions[0],positions[19],
+                   1.3549,1.3783,1.8680,0.0,positions[21]);
+
+  //construct NE2
+  ConstructAtomPos(positions[19],positions[0],positions[20],
+                   1.3817,1.3597,1.9204,0.0,positions[22]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[1] = Particle(positions[1],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[4] = Particle(positions[4],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[6] = Particle(positions[6],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[9] = Particle(positions[9],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CG");
+
+  particles[11] = Particle(positions[11],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[13] = Particle(positions[13],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[14] = Particle(positions[14],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[15] = Particle(positions[15],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[16] = Particle(positions[16],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[17] = Particle(positions[17],settings->C_max_radius,
+                          settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[18] = Particle(positions[18],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"NE2");
+
+  particles[19] = Particle(positions[19],settings->N_max_radius,
+                          settings->N_radius,-0.2384,-0.40,"ND1");
+
+  particles[20] = Particle(positions[20],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.10,"CD2");
+
+  particles[21] = Particle(positions[21],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.30,"CE1");
+
+  particles[22] = Particle(positions[22],settings->N_max_radius,
+                           settings->N_radius,-0.2384,-0.40,"NE2");
+
+  if(settings->consider_hbonds){
+
+    ConstructAtomPos(positions[0],positions[2], positions[4],
+                     1.0005,1.3783,2.2037,M_PI,positions[23]);
+
+    ConstructAtomPos(positions[5],positions[7], positions[9],
+                     1.0005,1.3783,2.2037,M_PI,positions[24]);
+
+    ConstructAtomPos(positions[10],positions[12], positions[14],
+                     1.0005,1.3783,2.2037,M_PI,positions[25]);
+
+    ConstructAtomPos(positions[0],positions[16], positions[18],
+                     1.0005,1.3783,2.2037,M_PI,positions[26]);
+
+    ConstructAtomPos(positions[0],positions[20], positions[22],
+                     1.0005,1.3783,2.2037,M_PI,positions[27]);
+
+    particles[23] = Particle(positions[23],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE2");
+    particles[23].SetPolarDirection(positions[23]-positions[4]);
+
+    particles[24] = Particle(positions[24],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE2");
+    particles[24].SetPolarDirection(positions[24]-positions[9]);
+
+    particles[25] = Particle(positions[25],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE2");
+    particles[25].SetPolarDirection(positions[25]-positions[14]);
+
+    particles[26] = Particle(positions[26],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE2");
+    particles[26].SetPolarDirection(positions[26]-positions[18]);
+
+    particles[27] = Particle(positions[27],settings->H_max_radius,
+                             settings->H_radius,-0.0498,0.30,"HE2");
+    particles[27].SetPolarDirection(positions[27]-positions[22]);
+
+ 
+    geom::Vec3 lone_pair_dir = (positions[1]-positions[0])/1.3859+
+                               (positions[1]-positions[3])/1.3170;
+    particles[1].AddLonePair(lone_pair_dir);
+
+    lone_pair_dir = (positions[6]-positions[5])/1.3859+
+                    (positions[6]-positions[8])/1.3170;
+    particles[6].AddLonePair(lone_pair_dir);
+
+    lone_pair_dir = (positions[11]-positions[10])/1.3859+
+                    (positions[11]-positions[13])/1.3170;
+    particles[11].AddLonePair(lone_pair_dir);
+
+    lone_pair_dir = (positions[15]-positions[0])/1.3859+
+                    (positions[15]-positions[17])/1.3170;
+    particles[15].AddLonePair(lone_pair_dir);
+
+    lone_pair_dir = (positions[19]-positions[0])/1.3859+
+                    (positions[19]-positions[21])/1.3170;
+    particles[19].AddLonePair(lone_pair_dir);
+
+
+    FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,28,settings->FRM_T_HIS,
+                                     probability,settings->internal_e_prefactor_HIS);
+
+    std::vector<int> subrotamer_definition(6);
+
+    //without sigma
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 1;
+    subrotamer_definition[2] = 2;
+    subrotamer_definition[3] = 3;
+    subrotamer_definition[4] = 4;
+    subrotamer_definition[5] = 23;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1-dev1
+
+    subrotamer_definition[0] = 5;
+    subrotamer_definition[1] = 6;
+    subrotamer_definition[2] = 7;
+    subrotamer_definition[3] = 8;
+    subrotamer_definition[4] = 9;
+    subrotamer_definition[5] = 24;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi1+dev1
+
+    subrotamer_definition[0] = 10;
+    subrotamer_definition[1] = 11;
+    subrotamer_definition[2] = 12;
+    subrotamer_definition[3] = 13;
+    subrotamer_definition[4] = 14;
+    subrotamer_definition[5] = 25;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2-dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 15;
+    subrotamer_definition[2] = 16;
+    subrotamer_definition[3] = 17;
+    subrotamer_definition[4] = 18;
+    subrotamer_definition[5] = 26;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    //chi2+dev2
+
+    subrotamer_definition[0] = 0;
+    subrotamer_definition[1] = 19;
+    subrotamer_definition[2] = 20;
+    subrotamer_definition[3] = 21;
+    subrotamer_definition[4] = 22;
+    subrotamer_definition[5] = 27;
+
+    rot->AddSubrotamerDefinition(subrotamer_definition);
+
+    delete [] positions;
+    return rot; 
+  }
+
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,23,settings->FRM_T_HIS,
+                                   probability,settings->internal_e_prefactor_HIS);
+
+  std::vector<int> subrotamer_definition(5);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+  subrotamer_definition[4] = 4;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 5;
+  subrotamer_definition[1] = 6;
+  subrotamer_definition[2] = 7;
+  subrotamer_definition[3] = 8;
+  subrotamer_definition[4] = 9;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 10;
+  subrotamer_definition[1] = 11;
+  subrotamer_definition[2] = 12;
+  subrotamer_definition[3] = 13;
+  subrotamer_definition[4] = 14;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 15;
+  subrotamer_definition[2] = 16;
+  subrotamer_definition[3] = 17;
+  subrotamer_definition[4] = 18;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 19;
+  subrotamer_definition[2] = 20;
+  subrotamer_definition[3] = 21;
+  subrotamer_definition[4] = 22;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot; 
+}
+
+
+FRMRotamerPtr ConstructFRMPHE(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                              const geom::Vec3& cb_pos, 
+                              Real probability, RotamerSettingsPtr settings, 
+                              Real chi1, Real sig1, Real chi2, Real sig2){
+ 
+  Real dev1 = sig1*settings->FRM_delta1_PHE;
+  Real dev2 = sig2*settings->FRM_delta2_PHE;
+
+
+  Particle* particles = new Particle[28];
+  geom::Vec3* positions = new geom::Vec3[28];
+
+
+  //without sigma
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5109,1.9680,chi1,positions[0]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2,positions[1]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2+M_PI,positions[2]);
+
+  //construct CE1
+  ConstructAtomPos(positions[2],positions[0],positions[1],
+                   1.40,1.38,2.0944,0.0,positions[3]);
+
+  //construct CE2
+  ConstructAtomPos(positions[1],positions[0],positions[2],
+                   1.40,1.38,2.0944,0.0,positions[4]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[1],positions[3],
+                   1.40,1.40,2.0944,0.0,positions[5]);
+
+  //chi1-dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5109,1.9680,chi1-dev1,positions[6]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.38,1.5109,2.0944,chi2,positions[7]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[6],
+                   1.38,1.5109,2.0944,chi2+M_PI,positions[8]);
+
+  //construct CE1
+  ConstructAtomPos(positions[8],positions[6],positions[7],
+                   1.40,1.38,2.0944,0.0,positions[9]);
+
+  //construct CE2
+  ConstructAtomPos(positions[7],positions[6],positions[8],
+                   1.40,1.38,2.0944,0.0,positions[10]);
+
+  //construct CZ
+  ConstructAtomPos(positions[6],positions[7],positions[9],
+                   1.40,1.40,2.0944,0.0,positions[11]);
+
+  //chi1+dev1
+
+  //construct CG
+  ConstructAtomPos(n_pos,ca_pos,cb_pos,
+                   1.5109,1.9680,chi1+dev1,positions[12]);
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[12],
+                   1.38,1.5109,2.0944,chi2,positions[13]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[12],
+                   1.38,1.5109,2.0944,chi2+M_PI,positions[14]);
+
+  //construct CE1
+  ConstructAtomPos(positions[14],positions[12],positions[13],
+                   1.40,1.38,2.0944,0.0,positions[15]);
+
+  //construct CE2
+  ConstructAtomPos(positions[13],positions[12],positions[14],
+                   1.40,1.38,2.0944,0.0,positions[16]);
+
+  //construct CZ
+  ConstructAtomPos(positions[12],positions[13],positions[15],
+                   1.40,1.40,2.0944,0.0,positions[17]);
+
+  //chi2-dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2-dev2,positions[18]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2-dev2+M_PI,positions[19]);
+
+  //construct CE1
+  ConstructAtomPos(positions[19],positions[0],positions[18],
+                   1.40,1.38,2.0944,0.0,positions[20]);
+
+  //construct CE2
+  ConstructAtomPos(positions[18],positions[0],positions[19],
+                   1.40,1.38,2.0944,0.0,positions[21]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[18],positions[20],
+                   1.40,1.40,2.0944,0.0,positions[22]);
+
+  //chi2+dev2
+
+  //construct CD1
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2+dev2,positions[23]);
+
+  //construct CD2
+  ConstructAtomPos(ca_pos,cb_pos,positions[0],
+                   1.38,1.5109,2.0944,chi2+dev2+M_PI,positions[24]);
+
+  //construct CE1
+  ConstructAtomPos(positions[24],positions[0],positions[23],
+                   1.40,1.38,2.0944,0.0,positions[25]);
+
+  //construct CE2
+  ConstructAtomPos(positions[23],positions[0],positions[24],
+                   1.40,1.38,2.0944,0.0,positions[26]);
+
+  //construct CZ
+  ConstructAtomPos(positions[0],positions[23],positions[25],
+                   1.40,1.40,2.0944,0.0,positions[27]);
+
+
+  particles[0] = Particle(positions[0],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[1] = Particle(positions[1],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[2] = Particle(positions[2],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[3] = Particle(positions[3],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[4] = Particle(positions[4],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[5] = Particle(positions[5],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CZ");
+
+  particles[6] = Particle(positions[6],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[7] = Particle(positions[7],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[8] = Particle(positions[8],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[9] = Particle(positions[9],settings->C_max_radius,
+                            settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[10] = Particle(positions[10],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[11] = Particle(positions[11],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ");
+
+  particles[12] = Particle(positions[12],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CG");
+
+  particles[13] = Particle(positions[13],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[14] = Particle(positions[14],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[15] = Particle(positions[15],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[16] = Particle(positions[16],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[17] = Particle(positions[17],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ");
+
+  particles[18] = Particle(positions[18],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[19] = Particle(positions[19],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[20] = Particle(positions[20],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[21] = Particle(positions[21],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[22] = Particle(positions[22],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ");
+
+  particles[23] = Particle(positions[23],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD1");
+
+  particles[24] = Particle(positions[24],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CD2");
+
+  particles[25] = Particle(positions[25],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE1");
+
+  particles[26] = Particle(positions[26],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CE2");
+
+  particles[27] = Particle(positions[27],settings->C_max_radius,
+                           settings->C_radius,-0.1200,0.00,"CZ");
+
+  FRMRotamerPtr  rot = boost::make_shared<FRMRotamer>(particles,28,settings->FRM_T_PHE,
+                                   probability,settings->internal_e_prefactor_PHE);
+
+  std::vector<int> subrotamer_definition(6);
+
+  //without sigma
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 1;
+  subrotamer_definition[2] = 2;
+  subrotamer_definition[3] = 3;
+  subrotamer_definition[4] = 4;
+  subrotamer_definition[5] = 5;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1-dev1
+
+  subrotamer_definition[0] = 6;
+  subrotamer_definition[1] = 7;
+  subrotamer_definition[2] = 8;
+  subrotamer_definition[3] = 9;
+  subrotamer_definition[4] = 10;
+  subrotamer_definition[5] = 11;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi1+dev1
+
+  subrotamer_definition[0] = 12;
+  subrotamer_definition[1] = 13;
+  subrotamer_definition[2] = 14;
+  subrotamer_definition[3] = 15;
+  subrotamer_definition[4] = 16;
+  subrotamer_definition[5] = 17;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2-dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 18;
+  subrotamer_definition[2] = 19;
+  subrotamer_definition[3] = 20;
+  subrotamer_definition[4] = 21;
+  subrotamer_definition[5] = 22;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  //chi2+dev2
+
+  subrotamer_definition[0] = 0;
+  subrotamer_definition[1] = 23;
+  subrotamer_definition[2] = 24;
+  subrotamer_definition[3] = 25;
+  subrotamer_definition[4] = 26;
+  subrotamer_definition[5] = 27;
+
+  rot->AddSubrotamerDefinition(subrotamer_definition);
+
+  delete [] positions;
+  return rot;  
+}
+
+void RotamerAnchorFromResidue(const ost::mol::ResidueHandle& res, geom::Vec3& n_pos, 
+                              geom::Vec3& ca_pos, geom::Vec3& cb_pos){
+
+  ost::mol::AtomHandle n = res.FindAtom("N");
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+
+  if(!n.IsValid() || !ca.IsValid()){
+    throw promod3::Error("Could not find all required backbone atoms in given residue when constructing Rotamer.");
+  }
+
+  n_pos = n.GetPos();
+  ca_pos = ca.GetPos();
+  
+  if(!cb.IsValid()){
+    //cb atom is not necessarily required, since it can be reconstructed using the backbone as anchor
+    ost::mol::AtomHandle c = res.FindAtom("C");
+    if(!c.IsValid()){
+      throw promod3::Error("Could not find all required backbone atoms in given residue when constructing Rotamer.");
+    }
+    cb_pos = ost::mol::alg::CBetaPosition(n.GetPos(),ca.GetPos(),c.GetPos());
+  }else{
+    cb_pos = cb.GetPos();
+  }
+}
+
+}
+
+
+namespace promod3{ namespace sidechain{
+
+
+RRMRotamerPtr ConstructRRMRotamer(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                               const geom::Vec3& cb_pos, RotamerID id,
+                               RotamerSettingsPtr settings, Real probability,
+                               Real chi1, Real chi2, Real chi3, Real chi4){
+
+  switch (id){
+    case ARG :{     
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3 || chi4!=chi4){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMARG(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2, chi3, chi4);
+    }
+
+    case ASN :{ 
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMASN(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case ASP :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMASP(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case GLN :{
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMGLN(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2, chi3);
+    }
+
+    case GLU :{
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMGLU(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2, chi3);
+    }
+
+    case LYS :{
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3 || chi4!=chi4){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMLYS(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2, chi3, chi4);
+    }
+
+    case SER :{
+      if(chi1 != chi1){
+        //chi2 is optional, since it defines the orientation of the constructed hydrogen.
+        //if its not set, chi2 will be pi
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMSER(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case CYS :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMCYS(n_pos, ca_pos, cb_pos, probability, settings, chi1);
+    }
+
+    case CYD :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMCYS(n_pos, ca_pos, cb_pos, probability, settings, chi1);
+    }
+
+    case CYH :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMCYS(n_pos, ca_pos, cb_pos, probability, settings, chi1);
+    }
+
+    case MET : {
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMMET(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2, chi3);
+    }
+
+    case TRP :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMTRP(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case TYR :{
+      if(chi1 != chi1 || chi2!=chi2){
+        //chi3 is optional, since it defines the orientation of the constructed hydrogen.
+        //if its not set, chi3 will be pi
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMTYR(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2, chi3);
+    }
+
+    case THR :{
+      if(chi1 != chi1){
+        //chi2 is optional, since it defines the orientation of the constructed hydrogen.
+        //if its not set, chi2 will be pi
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMTHR(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case VAL :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMVAL(n_pos, ca_pos, cb_pos, probability, settings, chi1);
+    }
+
+    case ILE :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMILE(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case LEU :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMLEU(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case PRO :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMPRO(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case CPR :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMPRO(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case TPR :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMPRO(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case HSD :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMHSD(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case HSE :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMHSE(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    case PHE :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing rotamer.");
+      }
+      return ConstructRRMPHE(n_pos, ca_pos, cb_pos, probability, settings, chi1, 
+                          chi2);
+    }
+
+    default : 
+      throw promod3::Error("Cannot construct this type of rotamer...");
+  }
+}
+
+RRMRotamerPtr ConstructRRMRotamer(const ost::mol::ResidueHandle& res, RotamerID id,
+                                  RotamerSettingsPtr settings, 
+                                  Real probability, 
+                                  Real chi1, Real chi2, Real chi3, Real chi4){
+  geom::Vec3 n_pos,ca_pos,cb_pos;
+  RotamerAnchorFromResidue(res, n_pos, ca_pos, cb_pos);
+  return ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,chi2,chi3,chi4);
+}
+
+
+FRMRotamerPtr ConstructFRMRotamer(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                               const geom::Vec3& cb_pos, RotamerID id,
+                               RotamerSettingsPtr settings, Real probability,
+                               Real chi1, Real sig1, Real chi2, Real sig2, 
+                               Real chi3, Real sig3, Real chi4, Real sig4){
+
+  switch (id){
+    case ARG :{     
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3 || chi4!=chi4){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2 || sig3!=sig3 || sig4!=sig4){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMARG(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2, chi3, sig3, chi4, sig4);
+    }
+
+    case ASN :{ 
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMASN(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case ASP :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMASP(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case GLN :{
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2 || sig3!=sig3){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMGLN(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2, chi3, sig3);
+    }
+
+    case GLU :{
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2 || sig3!=sig3){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMGLU(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2, chi3, sig3);
+    }
+
+    case LYS :{
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3 || chi4!=chi4){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2 || sig3!=sig3 || sig4!=sig4){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMLYS(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2, chi3, sig3, chi4, sig4);
+    }
+
+    case SER :{
+      if(chi1 != chi1){
+        //chi2 is optional, since it defines the orientation of the constructed hydrogen.
+        //if its not set, chi2 will be pi
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMSER(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1,
+                          chi2);
+    }
+
+    case CYS :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMCYS(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1);
+    }
+
+    case CYD :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMCYS(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1);
+    }
+
+    case CYH :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMCYS(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1);
+    }
+
+    case MET : {
+      if(chi1 != chi1 || chi2!=chi2 || chi3!=chi3){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2 || sig3!=sig3){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMMET(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1,
+                          chi2, sig2, chi3, sig3);
+    }
+
+    case TRP :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMTRP(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case TYR :{
+      if(chi1 != chi1 || chi2!=chi2){
+        //chi3 is optional, since it defines the orientation of the constructed hydrogen.
+        //if its not set, chi3 will be pi
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMTYR(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2, chi3);
+    }
+
+    case THR :{
+      if(chi1 != chi1){
+        //chi2 is optional, since it defines the orientation of the constructed hydrogen.
+        //if its not set, chi2 will be pi
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMTHR(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2);
+    }
+
+    case VAL :{
+      if(chi1 != chi1){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMVAL(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1);
+    }
+
+    case ILE :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMILE(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1,
+                          chi2, sig2);
+    }
+
+    case LEU :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMLEU(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case PRO :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }      
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMPRO(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case CPR :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }      
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMPRO(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case TPR :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }      
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMPRO(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case HSD :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMHSD(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1, 
+                          chi2, sig2);
+    }
+
+    case HSE :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMHSE(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1,
+                          chi2, sig2);
+    }
+
+    case PHE :{
+      if(chi1 != chi1 || chi2!=chi2){
+        throw promod3::Error("All necessary dihedrals must be set when constructing frm rotamer.");
+      }
+      if(sig1 != sig1 || sig2!=sig2){
+        throw promod3::Error("All necessary sigma parameters must be set when constructing frm rotamer.");
+      }
+      return ConstructFRMPHE(n_pos, ca_pos, cb_pos, probability, settings, chi1, sig1,
+                          chi2, sig2);
+    }
+
+    default : 
+      throw promod3::Error("Cannot construct this type of rotamer...");
+  }
+}
+
+FRMRotamerPtr ConstructFRMRotamer(const ost::mol::ResidueHandle& res, RotamerID id, 
+                                  RotamerSettingsPtr settings, Real probability, 
+                                  Real chi1, Real sig1, Real chi2, Real sig2, 
+                                  Real chi3, Real sig3, Real chi4, Real sig4){
+  geom::Vec3 n_pos,ca_pos,cb_pos;
+  RotamerAnchorFromResidue(res, n_pos, ca_pos, cb_pos);
+  return ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,
+                             chi1,sig1,chi2,sig2,chi3,sig3,chi4,sig4);
+}
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                            const geom::Vec3& cb_pos, RotamerID id,
+                                            uint residue_index, BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi, Real psi){
+
+  std::vector<RRMRotamerPtr> rotamers;
+  Real chi1,chi2,chi3,chi4, probability;
+  Real summed_prob = 0.0;
+  std::pair<RotamerLibEntry*,uint> lib_entries = rot_lib->QueryLib(id, phi, psi);
+
+  if(settings->sample_polar_hydrogens && ( id == SER || id == TYR || id == THR)){
+    switch(id){
+      case SER:{
+        for(uint i = 0; i < lib_entries.second; ++i){
+          probability = lib_entries.first->probability;
+          summed_prob += probability;
+          chi1 = lib_entries.first->chi1;
+          chi2 = lib_entries.first->chi2;
+          chi3 = lib_entries.first->chi3;
+          chi4 = lib_entries.first->chi4;
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,M_PI,chi3,chi4));
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,M_PI/3,chi3,chi4));
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,-M_PI/3,chi3,chi4));
+          if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+          ++lib_entries.first;
+        }  
+        break;
+      }
+      case TYR:{
+        for(uint i = 0; i < lib_entries.second; ++i){
+          probability = lib_entries.first->probability;
+          summed_prob += probability;
+          chi1 = lib_entries.first->chi1;
+          chi2 = lib_entries.first->chi2;
+          chi3 = lib_entries.first->chi3;
+          chi4 = lib_entries.first->chi4;
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,chi2,M_PI,chi4));
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,chi2,0.0,chi4));
+          if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+          ++lib_entries.first;
+        }  
+        break;
+      }
+      case THR:{
+        for(uint i = 0; i < lib_entries.second; ++i){
+          probability = lib_entries.first->probability;
+          summed_prob += probability;
+          chi1 = lib_entries.first->chi1;
+          chi2 = lib_entries.first->chi2;
+          chi3 = lib_entries.first->chi3;
+          chi4 = lib_entries.first->chi4;
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,M_PI,chi3,chi4));
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,M_PI/3,chi3,chi4));
+          rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,-M_PI/3,chi3,chi4));
+          if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+          ++lib_entries.first;
+        }  
+        break;
+      }
+      default:
+        throw promod3::Error("I should never reach this point!");
+    }
+  }
+  else if(id == HIS){
+    for(uint i = 0; i < lib_entries.second; ++i){
+      probability = lib_entries.first->probability;
+      summed_prob += probability;
+      chi1 = lib_entries.first->chi1;
+      chi2 = lib_entries.first->chi2;
+      chi3 = lib_entries.first->chi3;
+      chi4 = lib_entries.first->chi4;
+      rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,HSE,settings,probability,chi1,chi2,chi3,chi4));
+      rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,HSD,settings,probability,chi1,chi2,chi3,chi4));
+      if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+      ++lib_entries.first;
+    } 
+  }
+  else{
+    for(uint i = 0; i < lib_entries.second; ++i){
+      probability = lib_entries.first->probability;
+      summed_prob += probability;
+      chi1 = lib_entries.first->chi1;
+      chi2 = lib_entries.first->chi2;
+      chi3 = lib_entries.first->chi3;
+      chi4 = lib_entries.first->chi4;
+      rotamers.push_back(ConstructRRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,chi2,chi3,chi4));
+      if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+      ++lib_entries.first;
+    } 
+  }
+  RRMRotamerGroupPtr p(new RRMRotamerGroup(rotamers,residue_index));
+  return p;
+}
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup(const ost::mol::ResidueHandle& res, RotamerID id,
+                                            uint residue_index, BBDepRotamerLibPtr rot_lib, RotamerSettingsPtr settings,
+                                            Real phi, Real psi){
+  geom::Vec3 n_pos,ca_pos,cb_pos;
+  RotamerAnchorFromResidue(res, n_pos, ca_pos, cb_pos);
+  RRMRotamerGroupPtr p = ConstructRRMRotamerGroup(n_pos,ca_pos,cb_pos,id,residue_index,rot_lib,settings,phi,psi);
+  return p;
+}
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup(const ost::mol::ResidueHandle& res,
+                                            uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi, Real psi){
+  String res_name = res.GetName();
+  RotamerID id = TLCToRotID(res_name);
+
+  if(id == HIS){
+    RRMRotamerGroupPtr p_hsd = ConstructRRMRotamerGroup(res,HSD,residue_index,rot_lib,settings,phi,psi);
+    RRMRotamerGroupPtr p_hse = ConstructRRMRotamerGroup(res,HSE,residue_index,rot_lib,settings,phi,psi);
+    p_hsd->Merge(p_hse);
+    return p_hsd;
+  }
+  RRMRotamerGroupPtr p = ConstructRRMRotamerGroup(res,id,residue_index,rot_lib,settings,phi,psi);
+  return p;
+}
+
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                            const geom::Vec3& cb_pos, RotamerID id, uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib, RotamerSettingsPtr settings,
+                                            Real phi, Real psi){
+
+  std::vector<FRMRotamerPtr> rotamers;
+
+  Real chi1,chi2,chi3,chi4,sig1,sig2,sig3,sig4,probability;
+  Real summed_prob = 0.0;
+  std::pair<RotamerLibEntry*,uint> lib_entries = rot_lib->QueryLib(id, phi, psi);
+
+  if(settings->sample_polar_hydrogens && ( id == SER || id == TYR || id == THR)){
+    switch(id){
+      case SER:{
+        for(uint i = 0; i < lib_entries.second; ++i){
+          probability = lib_entries.first->probability;
+          summed_prob += probability;
+          chi1 = lib_entries.first->chi1;
+          chi2 = lib_entries.first->chi2;
+          chi3 = lib_entries.first->chi3;
+          chi4 = lib_entries.first->chi4;
+          sig1 = lib_entries.first->sig1;
+          sig2 = lib_entries.first->sig2;
+          sig3 = lib_entries.first->sig3;
+          sig4 = lib_entries.first->sig4;
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,M_PI,sig2,chi3,sig3,chi4,sig4));
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,M_PI/3,sig2,chi3,sig3,chi4,sig4));
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,-M_PI/3,sig2,chi3,sig3,chi4,sig4));
+          if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+          ++lib_entries.first;
+        }  
+        break;
+      }
+      case TYR:{
+        for(uint i = 0; i < lib_entries.second; ++i){
+          probability = lib_entries.first->probability;
+          summed_prob += probability;
+          chi1 = lib_entries.first->chi1;
+          chi2 = lib_entries.first->chi2;
+          chi3 = lib_entries.first->chi3;
+          chi4 = lib_entries.first->chi4;
+          sig1 = lib_entries.first->sig1;
+          sig2 = lib_entries.first->sig2;
+          sig3 = lib_entries.first->sig3;
+          sig4 = lib_entries.first->sig4;
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,chi2,sig2,M_PI,sig3,chi4,sig3));
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,chi2,sig2,0.0,sig3,chi4,sig3));
+          if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+          ++lib_entries.first;
+        }  
+        break;
+      }
+      case THR:{
+        for(uint i = 0; i < lib_entries.second; ++i){
+          probability = lib_entries.first->probability;
+          summed_prob += probability;
+          chi1 = lib_entries.first->chi1;
+          chi2 = lib_entries.first->chi2;
+          chi3 = lib_entries.first->chi3;
+          chi4 = lib_entries.first->chi4;
+          sig1 = lib_entries.first->sig1;
+          sig2 = lib_entries.first->sig2;
+          sig3 = lib_entries.first->sig3;
+          sig4 = lib_entries.first->sig4;
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,M_PI,sig2,chi3,sig3,chi4,sig4));
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,M_PI/3,sig2,chi3,sig3,chi4,sig4));
+          rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,-M_PI/3,sig2,chi3,sig3,chi4,sig4));
+          if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+          ++lib_entries.first;
+        }  
+        break;
+      }
+      default:
+        throw promod3::Error("I should never reach this point!");
+    }
+  }
+  else if(id == HIS){
+    for(uint i = 0; i < lib_entries.second; ++i){
+      probability = lib_entries.first->probability;
+      summed_prob += probability;
+      chi1 = lib_entries.first->chi1;
+      chi2 = lib_entries.first->chi2;
+      chi3 = lib_entries.first->chi3;
+      chi4 = lib_entries.first->chi4;
+      sig1 = lib_entries.first->sig1;
+      sig2 = lib_entries.first->sig2;
+      sig3 = lib_entries.first->sig3;
+      sig4 = lib_entries.first->sig4;
+      rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,HSE,settings,probability,chi1,sig1,chi2,sig2,chi3,sig3,chi4,sig4));
+      rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,HSD,settings,probability,chi1,sig1,chi2,sig2,chi3,sig3,chi4,sig4));
+      if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+      ++lib_entries.first;
+    } 
+  }
+  else{
+    for(uint i = 0; i < lib_entries.second; ++i){
+      probability = lib_entries.first->probability;
+      summed_prob += probability;
+      chi1 = lib_entries.first->chi1;
+      chi2 = lib_entries.first->chi2;
+      chi3 = lib_entries.first->chi3;
+      chi4 = lib_entries.first->chi4;
+      sig1 = lib_entries.first->sig1;
+      sig2 = lib_entries.first->sig2;
+      sig3 = lib_entries.first->sig3;
+      sig4 = lib_entries.first->sig4;
+      rotamers.push_back(ConstructFRMRotamer(n_pos,ca_pos,cb_pos,id,settings,probability,chi1,sig1,chi2,sig2,chi3,sig3,chi4,sig4));
+      if(summed_prob >= settings->probability_cutoff && !rotamers.empty()) break;
+      ++lib_entries.first;
+    } 
+  }
+  return FRMRotamerGroupPtr(new FRMRotamerGroup(rotamers,residue_index));
+}
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup(const ost::mol::ResidueHandle& res, RotamerID id,
+                                            uint residue_index, BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi, Real psi){
+  geom::Vec3 n_pos,ca_pos,cb_pos;
+  RotamerAnchorFromResidue(res, n_pos, ca_pos, cb_pos);
+  return ConstructFRMRotamerGroup(n_pos,ca_pos,cb_pos,id,residue_index,rot_lib,settings,phi,psi);
+}
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup(const ost::mol::ResidueHandle& res,
+                                            uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi, Real psi){
+  String res_name = res.GetName();
+  RotamerID id = TLCToRotID(res_name);
+
+  if(id == HIS){
+    FRMRotamerGroupPtr p_hsd = ConstructFRMRotamerGroup(res,HSD,residue_index,rot_lib,settings,phi,psi);
+    FRMRotamerGroupPtr p_hse = ConstructFRMRotamerGroup(res,HSE,residue_index,rot_lib,settings,phi,psi);
+    p_hsd->Merge(p_hse);
+    return p_hsd;
+  }
+
+  return ConstructFRMRotamerGroup(res,id,residue_index,rot_lib,settings,phi,psi);
+}
+
+}}//ns
diff --git a/sidechain/src/rotamer_constructor.hh b/sidechain/src/rotamer_constructor.hh
new file mode 100644
index 0000000000000000000000000000000000000000..a8006f8d82dd5c8876a37c5cd9c6c7cd19ea5d27
--- /dev/null
+++ b/sidechain/src/rotamer_constructor.hh
@@ -0,0 +1,113 @@
+#ifndef PROMOD3_ROTAMER_CONSTRUCTOR_HH
+#define PROMOD3_ROTAMER_CONSTRUCTOR_HH
+
+#include <vector>
+#include <limits>
+
+#include <boost/make_shared.hpp>
+
+#include <promod3/sidechain/rotamer_id.hh>
+#include <promod3/sidechain/rotamer.hh>
+#include <promod3/sidechain/rotamer_group.hh>
+#include <promod3/core/message.hh>
+#include <promod3/sidechain/particle.hh>
+#include <promod3/sidechain/bb_dep_rotamer_lib.hh>
+#include <promod3/sidechain/settings.hh>
+#include <promod3/sidechain/construct_atom.hh>
+
+#include <ost/mol/residue_handle.hh>
+#include <ost/mol/atom_handle.hh>
+#include <ost/mol/alg/construct_cbeta.hh>
+
+namespace promod3{ namespace sidechain{
+
+RRMRotamerPtr ConstructRRMRotamer(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                               const geom::Vec3& cb_pos, RotamerID id,
+                               RotamerSettingsPtr settings,
+                               Real probability = 0.0, 
+                               Real chi1 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi2 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi3 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi4 = std::numeric_limits<Real>::quiet_NaN());
+
+RRMRotamerPtr ConstructRRMRotamer(const ost::mol::ResidueHandle& res, RotamerID id, 
+                               RotamerSettingsPtr settings,Real probability = 0.0,
+                               Real chi1 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi2 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi3 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi4 = std::numeric_limits<Real>::quiet_NaN());
+
+
+FRMRotamerPtr ConstructFRMRotamer(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                               const geom::Vec3& cb_pos, RotamerID id,
+                               RotamerSettingsPtr settings,
+                               Real probability = 0.0, 
+                               Real chi1 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig1 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi2 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig2 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi3 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig3 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi4 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig4 = std::numeric_limits<Real>::quiet_NaN());
+
+FRMRotamerPtr ConstructFRMRotamer(const ost::mol::ResidueHandle& res, RotamerID id, 
+                               RotamerSettingsPtr settings,Real probability = 0.0,
+                               Real chi1 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig1 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi2 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig2 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi3 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig3 = std::numeric_limits<Real>::quiet_NaN(), 
+                               Real chi4 = std::numeric_limits<Real>::quiet_NaN(),
+                               Real sig4 = std::numeric_limits<Real>::quiet_NaN());
+
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                            const geom::Vec3& cb_pos, RotamerID id, uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib,
+                                            RotamerSettingsPtr settings,
+                                            Real phi = -1.0472, 
+                                            Real psi =  1.0472);
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup(const ost::mol::ResidueHandle& res, RotamerID id,
+                                            uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi = -1.0472, 
+                                            Real psi =  1.0472);
+
+RRMRotamerGroupPtr ConstructRRMRotamerGroup(const ost::mol::ResidueHandle& res,
+                                            uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi = -1.0472, 
+                                            Real psi =  1.0472);
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, 
+                                            const geom::Vec3& cb_pos, RotamerID id,
+                                            uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib,
+                                            RotamerSettingsPtr settings,
+                                            Real phi = -1.0472, 
+                                            Real psi =  1.0472);
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup(const ost::mol::ResidueHandle& res, RotamerID id,
+                                            uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi = -1.0472, 
+                                            Real psi =  1.0472);
+
+FRMRotamerGroupPtr ConstructFRMRotamerGroup(const ost::mol::ResidueHandle& res,
+                                            uint residue_index,
+                                            BBDepRotamerLibPtr rot_lib, 
+                                            RotamerSettingsPtr settings,
+                                            Real phi = -1.0472, 
+                                            Real psi =  1.0472);
+
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/rotamer_group.cc b/sidechain/src/rotamer_group.cc
new file mode 100644
index 0000000000000000000000000000000000000000..771b0a05d320f57a865dff9033c5811babd99372
--- /dev/null
+++ b/sidechain/src/rotamer_group.cc
@@ -0,0 +1,518 @@
+#include <promod3/sidechain/rotamer_group.hh>
+
+
+namespace{
+
+inline float LogSumExp(double* values, double avg, int n){
+
+  double sum = 0.0;
+  double* value_ptr = values;
+  for(int i = 0; i < n; ++i){
+    sum += std::exp((*value_ptr)-avg);
+    ++value_ptr;
+  }
+  return std::log(sum) + avg;
+}
+
+}
+
+namespace promod3{ namespace sidechain{
+
+RRMRotamerGroup::RRMRotamerGroup(const std::vector<RRMRotamerPtr>& rotamers, uint residue_index):
+                                 rotamers_(rotamers), residue_index_(residue_index){
+  int overall_size = 0;
+  for(std::vector<RRMRotamerPtr>::const_iterator i = rotamers.begin(); 
+      i != rotamers.end(); ++i){
+    overall_size += (*i)->size();
+  }
+
+  particles_.resize(overall_size);
+  rotamer_indices_.resize(overall_size);
+
+  int actual_position = 0;
+  int actual_rotamer = 0;
+
+  for(std::vector<RRMRotamerPtr>::const_iterator i = rotamers.begin(); 
+      i != rotamers.end(); ++i){
+    for(RRMRotamer::iterator j = (*i)->begin();
+        j != (*i)->end(); ++j){
+      particles_[actual_position] = j;
+      rotamer_indices_[actual_position] = actual_rotamer;
+      ++actual_position;
+    }
+    ++actual_rotamer;
+  }
+  this->ResetTetrahedralPolytopeTree(std::vector<TetrahedralPolytope*>(particles_.begin(), particles_.end()));
+}
+
+void RRMRotamerGroup::ApplyOnResidue(uint rotamer_index, ost::mol::ResidueHandle& res, 
+                                     bool consider_hydrogens, const String& new_res_name) const{
+  if(rotamer_index >= rotamers_.size()){
+    throw promod3::Error("Invalid rotamer index");
+  }
+  rotamers_[rotamer_index]->ApplyOnResidue(res,consider_hydrogens,new_res_name);
+}
+
+RRMRotamerGroupPtr RRMRotamerGroup::GetTransformedCopy(const geom::Transform& t) const{
+  std::vector<RRMRotamerPtr> transformed_rotamers;
+  for(std::vector<RRMRotamerPtr>::const_iterator i = rotamers_.begin();
+      i != rotamers_.end(); ++i){
+    transformed_rotamers.push_back((*i)->GetTransformedCopy(t));
+  }
+  RRMRotamerGroupPtr return_group(new RRMRotamerGroup(transformed_rotamers,residue_index_));
+  return return_group;
+}
+
+float* RRMRotamerGroup::CalculatePairwiseEnergies(RRMRotamerGroupPtr other, Real threshold){
+
+  if(!this->Overlap(other.get())) return NULL;
+  std::vector<std::pair<int,int> > overlapping_particles;
+  overlapping_particles.reserve(4000);
+  this->OverlappingPolytopes(other,overlapping_particles);
+  if(overlapping_particles.empty()) return NULL;
+  
+  int this_size = this->size();
+  int other_size = other->size();
+  float* data = new float[this_size * other_size];
+  memset(data,0,this_size*other_size*sizeof(float));
+  float energy;
+
+  for(std::vector<std::pair<int,int> >::iterator i = overlapping_particles.begin(),
+      e = overlapping_particles.end(); i!= e; ++i){
+    energy = particles_[i->first]->PairwiseEnergy(other->particles_[i->second]);
+    if(energy == 0) continue;
+    data[rotamer_indices_[i->first]*other_size+other->rotamer_indices_[i->second]] += energy;
+  }
+
+  float max_e = 0.0;
+  for(int i = 0; i < this_size*other_size; ++i){
+    max_e = (max_e<data[i])?data[i]:max_e;
+  }
+
+  if(max_e < threshold){
+    delete [] data;
+    return NULL;
+  }
+
+  return data;
+}
+
+void RRMRotamerGroup::CalculateInternalEnergies(){
+  Real max_p = this->GetMaxP();
+  for(iterator i = rotamers_.begin();i != this->end(); ++i){
+    (*i)->CalculateInternalEnergy(max_p);
+  }  
+}
+
+Real RRMRotamerGroup::GetMaxP() const{
+  Real max_p = std::numeric_limits<Real>::min();
+  for(const_iterator i = this->begin(); i != this->end(); ++i){
+    max_p = std::max(max_p,(*i)->GetProbability());
+  }
+  return max_p;
+}
+
+
+void RRMRotamerGroup::ApplySelfEnergyThresh(Real self_energy_thresh){
+
+  if(rotamers_.size() <= 1) return;
+
+  //find the lowest energy
+  Real e_min = std::numeric_limits<Real>::max();
+  for(std::vector<RRMRotamerPtr>::iterator i = rotamers_.begin();
+      i != rotamers_.end(); ++i){
+    if( (*i)->GetSelfEnergy() < e_min) e_min = (*i)->GetSelfEnergy();
+  }
+
+  //define threshold relative to it
+  Real thresh = e_min + self_energy_thresh;
+
+  //kill all rotamers with self energies worse than thresh
+  for(std::vector<RRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    if((*i)->GetSelfEnergy() > thresh){
+      i = rotamers_.erase(i);
+      --i;
+    }
+  }
+
+  int overall_size = 0;
+  for(std::vector<RRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    overall_size += (*i)->size();
+  }
+
+  particles_.resize(overall_size);
+  rotamer_indices_.resize(overall_size);
+
+  int actual_position = 0;
+  int actual_rotamer = 0;
+
+  for(std::vector<RRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    for(RRMRotamer::iterator j = (*i)->begin();
+        j != (*i)->end(); ++j){
+      particles_[actual_position] = j;
+      rotamer_indices_[actual_position] = actual_rotamer;
+      ++actual_position;
+    }
+    ++actual_rotamer;
+  }
+  this->ResetTetrahedralPolytopeTree(std::vector<TetrahedralPolytope*>(particles_.begin(), particles_.end()));
+}
+
+void RRMRotamerGroup::Merge(const RRMRotamerGroupPtr other){
+  for(RRMRotamerGroup::const_iterator i = other->begin(); i != other->end(); ++i){
+    rotamers_.push_back(*i);
+  }
+  int overall_size = 0;
+  for(std::vector<RRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    overall_size += (*i)->size();
+  }
+
+  particles_.resize(overall_size);
+  rotamer_indices_.resize(overall_size);
+
+  int actual_position = 0;
+  int actual_rotamer = 0;
+
+  for(std::vector<RRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    for(RRMRotamer::iterator j = (*i)->begin();
+        j != (*i)->end(); ++j){
+      particles_[actual_position] = j;
+      rotamer_indices_[actual_position] = actual_rotamer;
+      ++actual_position;
+    }
+    ++actual_rotamer;
+  }
+  this->ResetTetrahedralPolytopeTree(std::vector<TetrahedralPolytope*>(particles_.begin(), particles_.end()));
+}
+
+FRMRotamerGroup::FRMRotamerGroup(const std::vector<FRMRotamerPtr>& rotamers, uint residue_index):
+                                 rotamers_(rotamers), residue_index_(residue_index){
+
+  int overall_size = 0;
+  for(std::vector<FRMRotamerPtr>::const_iterator i = rotamers.begin(); 
+      i != rotamers.end(); ++i){
+    overall_size += (*i)->size();
+  }
+
+  particles_.resize(overall_size);
+  rotamer_indices_.resize(overall_size);
+  ass_ind_b_.resize(overall_size);
+  ass_ind_e_.resize(overall_size);
+
+  int actual_position = 0;
+  int actual_rotamer = 0;
+  int actual_internal_index;
+
+  for(std::vector<FRMRotamerPtr>::const_iterator i = rotamers.begin(); 
+      i != rotamers.end(); ++i){
+    actual_internal_index = 0;
+    for(FRMRotamer::iterator j = (*i)->begin();
+        j != (*i)->end(); ++j){
+      particles_[actual_position] = j;
+      rotamer_indices_[actual_position] = actual_rotamer;
+      ass_ind_b_[actual_position] = (*i)->subrotamer_association_begin(actual_internal_index);
+      ass_ind_e_[actual_position] = (*i)->subrotamer_association_end(actual_internal_index);
+      ++actual_position;
+      ++actual_internal_index;
+    }
+    ++actual_rotamer;
+  }
+  this->ResetTetrahedralPolytopeTree(std::vector<TetrahedralPolytope*>(particles_.begin(), particles_.end()));
+}
+
+void FRMRotamerGroup::ApplyOnResidue(uint rotamer_index, ost::mol::ResidueHandle& res, 
+                                     bool consider_hydrogens, const String& new_res_name) const{
+  if(rotamer_index >= rotamers_.size()){
+    throw promod3::Error("Invalid rotamer index");
+  }
+  rotamers_[rotamer_index]->ApplyOnResidue(res,consider_hydrogens,new_res_name);
+}
+
+FRMRotamerGroupPtr FRMRotamerGroup::GetTransformedCopy(const geom::Transform& t) const{
+  std::vector<FRMRotamerPtr> transformed_rotamers;
+  for(std::vector<FRMRotamerPtr>::const_iterator i = rotamers_.begin();
+      i != rotamers_.end(); ++i){
+    transformed_rotamers.push_back((*i)->GetTransformedCopy(t));
+  }
+  FRMRotamerGroupPtr return_group(new FRMRotamerGroup(transformed_rotamers,residue_index_));
+  return return_group;
+}
+
+void FRMRotamerGroup::Merge(const FRMRotamerGroupPtr other){
+  for(FRMRotamerGroup::const_iterator i = other->begin(); i != other->end(); ++i){
+    rotamers_.push_back(*i);
+  }
+  int overall_size = 0;
+  for(std::vector<FRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    overall_size += (*i)->size();
+  }
+
+  particles_.resize(overall_size);
+  rotamer_indices_.resize(overall_size);
+  ass_ind_b_.resize(overall_size);
+  ass_ind_e_.resize(overall_size);
+
+
+  int actual_position = 0;
+  int actual_rotamer = 0;
+  int actual_internal_index;
+
+  for(std::vector<FRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    actual_internal_index = 0;
+    for(FRMRotamer::iterator j = (*i)->begin();
+        j != (*i)->end(); ++j){
+      particles_[actual_position] = j;
+      rotamer_indices_[actual_position] = actual_rotamer;
+      ass_ind_b_[actual_position] = (*i)->subrotamer_association_begin(actual_internal_index);
+      ass_ind_e_[actual_position] = (*i)->subrotamer_association_end(actual_internal_index);
+      ++actual_position;
+      ++actual_internal_index;
+    }
+    ++actual_rotamer;
+  }
+  this->ResetTetrahedralPolytopeTree(std::vector<TetrahedralPolytope*>(particles_.begin(), particles_.end()));
+}
+
+float* FRMRotamerGroup::CalculatePairwiseEnergies(FRMRotamerGroupPtr other, Real threshold){
+
+
+  if(!this->Overlap(other.get())) return NULL;
+
+  std::vector<std::pair<int,int> > overlapping_particles;
+  overlapping_particles.reserve(100000);
+  this->OverlappingPolytopes(other.get(),overlapping_particles);
+
+  if(overlapping_particles.empty()) return NULL;
+
+  int this_size = this->size();
+  int other_size = other->size();
+  int rotamer_combinations = this_size * other_size;
+  float* data = new float[rotamer_combinations];
+
+  int other_subrotamer_sizes[other_size];
+  int total_other_subrotamers = 0;
+  for(int i = 0; i < other_size; ++i){
+    other_subrotamer_sizes[i] = other->rotamers_[i]->subrotamer_size();   
+    total_other_subrotamers += other_subrotamer_sizes[i];
+  }
+
+  int subrotamer_combinations[rotamer_combinations];
+  int max_subrotamer_combinations=0;
+  int* int_ptr = &subrotamer_combinations[0];
+  int temp;
+
+  for(int i = 0; i < this_size; ++i){
+    temp = rotamers_[i]->subrotamer_size();
+    for(int j = 0; j < other_size; ++j){
+      *int_ptr = temp * other_subrotamer_sizes[j];
+      max_subrotamer_combinations = (max_subrotamer_combinations<(*int_ptr))?(*int_ptr):max_subrotamer_combinations;
+      ++int_ptr;
+    }
+  }
+
+  float** subrotamer_energies = new float*[rotamer_combinations];
+  for(int i = 0; i < rotamer_combinations; ++i){
+    subrotamer_energies[i] = new float[subrotamer_combinations[i]];
+    memset(subrotamer_energies[i],0,subrotamer_combinations[i]*sizeof(float));
+  }
+
+  float energy;
+  int r_index_j;
+  int other_subrotamer_size;
+  float* e_ptr;
+
+  FRMRotamer::subrotamer_association_iterator j_b,j_e,k_b,k_e,temp_it;
+
+  for(std::vector<std::pair<int,int> >::iterator i = overlapping_particles.begin(),
+      e = overlapping_particles.end(); i != e; ++i){
+    
+    energy = particles_[i->first]->PairwiseEnergy(other->particles_[i->second]);
+
+    if(energy == 0.0) continue;
+
+    r_index_j = other->rotamer_indices_[i->second];
+
+    other_subrotamer_size = other_subrotamer_sizes[r_index_j];
+
+    j_b = ass_ind_b_[i->first];
+    j_e = ass_ind_e_[i->first];
+    temp_it = other->ass_ind_b_[i->second];
+    k_e = other->ass_ind_e_[i->second];
+
+    e_ptr = subrotamer_energies[rotamer_indices_[i->first]*other_size+r_index_j];
+
+    for(;j_b != j_e; ++j_b){
+      k_b = temp_it;
+      temp = (*j_b)*other_subrotamer_size;
+      for(;k_b != k_e; ++k_b){
+        e_ptr[temp+(*k_b)] += energy;
+      }
+    }
+  }
+
+  float max_e = 0.0;
+  for(int i = 0; i < rotamer_combinations; ++i){
+    e_ptr = subrotamer_energies[i];
+    for(int j = 0; j < subrotamer_combinations[i]; ++j){
+      max_e = (max_e<std::abs(e_ptr[j]))?std::abs(e_ptr[j]):max_e;
+    }
+  }
+  if(max_e < threshold){
+    for(int i = 0; i < rotamer_combinations; ++i){
+      delete [] subrotamer_energies[i];
+    }
+    delete [] subrotamer_energies;
+    delete [] data;
+    return NULL;
+  }
+
+  double exponent_buffer[max_subrotamer_combinations];
+  float* energy_ptr;
+  float* data_ptr = &data[0];
+  double avg_exp;
+  double* double_ptr;
+  float* float_ptr;
+  int a,b;
+  float T;
+  float one_over_T;
+  float T_i;
+
+  float i_frame_energy;
+  float k_subrotamer_frame_energy;
+  float j_frame_energies[other_size];
+  float j_temperatures[other_size];
+  float other_subrotamer_frame_energies[total_other_subrotamers];
+
+  a = 0;
+  float_ptr = &other_subrotamer_frame_energies[0];
+  for(iterator i = other->begin(); i != other->end(); ++i,++a){
+    j_frame_energies[a] = (*i)->GetFrameEnergy();
+    j_temperatures[a] = (*i)->GetTemperature();
+
+    for(uint j = 0; j < (*i)->subrotamer_size(); ++j){
+      *float_ptr = (*i)->GetFrameEnergy(j);
+      ++float_ptr;
+    }
+  }
+
+  for(int i = 0; i < this_size; ++i){
+    i_frame_energy = rotamers_[i]->GetFrameEnergy();
+    a = rotamers_[i]->subrotamer_size();
+    T_i = rotamers_[i]->GetTemperature();
+    temp = i*other_size;
+    float_ptr = &other_subrotamer_frame_energies[0];
+    for(int j = 0; j < other_size; ++j){
+      energy_ptr = subrotamer_energies[temp+j];
+      T = 0.5 * (T_i + j_temperatures[j]);
+      one_over_T = 1.0/T;
+      double_ptr = &exponent_buffer[0];
+      avg_exp = 0.0;
+      b = other_subrotamer_sizes[j];
+
+      for(int k = 0; k < a; ++k){
+        k_subrotamer_frame_energy = rotamers_[i]->GetFrameEnergy(k);
+        for(int l = 0; l < b; ++l){
+          *double_ptr = -(k_subrotamer_frame_energy+float_ptr[l]+(*energy_ptr))*one_over_T;
+          avg_exp += *double_ptr;
+          ++double_ptr;
+          ++energy_ptr;
+        }
+      }
+
+      avg_exp /= (a*b);
+      *data_ptr = -T*LogSumExp(exponent_buffer,avg_exp,a*b) - i_frame_energy - j_frame_energies[j];
+      ++data_ptr;
+      float_ptr+=b;
+    }
+  }
+
+  for(int i = 0; i < rotamer_combinations; ++i){
+    delete [] subrotamer_energies[i];
+  }
+  delete [] subrotamer_energies;
+
+  return data;
+}
+
+void FRMRotamerGroup::CalculateInternalEnergies(){
+  Real max_p = this->GetMaxP();
+  for(iterator i = rotamers_.begin();i != this->end(); ++i){
+    (*i)->CalculateInternalEnergy(max_p);
+  }
+}
+
+Real FRMRotamerGroup::GetMaxP() const{
+  Real max_p = std::numeric_limits<Real>::min();
+  for(const_iterator i = this->begin(); i != this->end(); ++i){
+    max_p = std::max(max_p,(*i)->GetProbability());
+  }
+  return max_p;
+}
+
+void FRMRotamerGroup::ApplySelfEnergyThresh(Real self_energy_thresh){
+
+  if(rotamers_.size() <= 1) return;
+
+  bool something_happened = false;
+  //find the lowest energy
+  Real e_min = std::numeric_limits<Real>::max();
+  for(std::vector<FRMRotamerPtr>::iterator i = rotamers_.begin();
+      i != rotamers_.end(); ++i){
+    e_min = std::min(e_min,(*i)->GetSelfEnergy());
+  }
+
+  //define threshold relative to it
+  Real thresh = e_min + self_energy_thresh;
+
+  //kill all rotamers with self energies worse than thresh
+  for(std::vector<FRMRotamerPtr>::iterator i = rotamers_.begin(); 
+      i != rotamers_.end(); ++i){
+    if((*i)->GetSelfEnergy() > thresh){
+      i = rotamers_.erase(i);
+      --i;
+      something_happened = true;
+    }
+  }
+
+  if(something_happened){
+    int overall_size = 0;
+    for(std::vector<FRMRotamerPtr>::iterator i = rotamers_.begin(); 
+        i != rotamers_.end(); ++i){
+      overall_size += (*i)->size();
+    }
+
+    particles_.resize(overall_size);
+    rotamer_indices_.resize(overall_size);
+    ass_ind_b_.resize(overall_size);
+    ass_ind_e_.resize(overall_size);
+
+    int actual_position = 0;
+    int actual_rotamer = 0;
+    int actual_internal_index;
+
+    for(std::vector<FRMRotamerPtr>::iterator i = rotamers_.begin(); 
+        i != rotamers_.end(); ++i){
+      actual_internal_index = 0;
+      for(FRMRotamer::iterator j = (*i)->begin();
+          j != (*i)->end(); ++j){
+        particles_[actual_position] = j;
+        rotamer_indices_[actual_position] = actual_rotamer;
+        ass_ind_b_[actual_position] = (*i)->subrotamer_association_begin(actual_internal_index);
+        ass_ind_e_[actual_position] = (*i)->subrotamer_association_end(actual_internal_index);
+        ++actual_position;
+        ++actual_internal_index;
+      }
+      ++actual_rotamer;
+    }
+    this->ResetTetrahedralPolytopeTree(std::vector<TetrahedralPolytope*>(particles_.begin(), particles_.end()));
+  }
+}
+
+}}//ns
diff --git a/sidechain/src/rotamer_group.hh b/sidechain/src/rotamer_group.hh
new file mode 100644
index 0000000000000000000000000000000000000000..e778ee94b6a2ade60eda9aa60eee143f824f8116
--- /dev/null
+++ b/sidechain/src/rotamer_group.hh
@@ -0,0 +1,132 @@
+#ifndef PROMOD3_ROTAMER_GROUP_HH
+#define PROMOD3_ROTAMER_GROUP_HH
+
+#include <math.h>
+#include <vector>
+#include <limits>
+
+#include <boost/shared_ptr.hpp>
+
+#include <promod3/sidechain/tetrahedral_polytope.hh>
+#include <promod3/sidechain/pairwise_terms.hh>
+#include <promod3/sidechain/rotamer.hh>
+#include <promod3/core/message.hh>
+
+#include <ost/mol/residue_handle.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+class RRMRotamerGroup;
+class FRMRotamerGroup;
+typedef boost::shared_ptr<RRMRotamerGroup> RRMRotamerGroupPtr;
+typedef boost::shared_ptr<FRMRotamerGroup> FRMRotamerGroupPtr;
+
+
+class RRMRotamerGroup : public TetrahedralPolytopeTree{
+
+public:
+
+  RRMRotamerGroup(const std::vector<RRMRotamerPtr>& rotamers, uint residue_index);
+
+  void Merge(const RRMRotamerGroupPtr other);
+
+  void ApplyOnResidue(uint rotamer_index, ost::mol::ResidueHandle& res, 
+                      bool consider_hydrogens = false, 
+                      const String& new_res_name = "") const;
+
+  RRMRotamerGroupPtr GetTransformedCopy(const geom::Transform& t) const;
+
+  float* CalculatePairwiseEnergies(RRMRotamerGroupPtr other, Real threshold);
+
+  void CalculateInternalEnergies();
+
+  Real GetMaxP() const;
+
+  void ApplySelfEnergyThresh(Real self_energy_thresh);
+
+  uint GetResidueIndex(){ return residue_index_; }
+ 
+  RRMRotamerPtr operator[](size_t index) { return rotamers_.at(index); }
+
+  size_t size() const { return rotamers_.size(); }
+
+  typedef std::vector<RRMRotamerPtr>::const_iterator const_iterator;
+  typedef std::vector<RRMRotamerPtr>::iterator iterator;
+  
+  iterator begin() { return rotamers_.begin(); }
+  iterator end() { return rotamers_.end(); }
+
+  const_iterator begin() const { return rotamers_.begin(); }
+  const_iterator end() const { return rotamers_.end(); }
+
+  const std::vector<int>& GetRotamerIndices() { return rotamer_indices_; }
+  const std::vector<Particle*>& GetParticles() { return particles_; }
+
+private:
+  std::vector<RRMRotamerPtr> rotamers_;
+  std::vector<Particle*> particles_;
+  std::vector<int> rotamer_indices_;
+  uint residue_index_;
+
+};
+
+class FRMRotamerGroup : public TetrahedralPolytopeTree{
+
+public:
+
+  FRMRotamerGroup(const std::vector<FRMRotamerPtr>& rotamers, uint residue_index);
+
+  virtual ~FRMRotamerGroup() { rotamers_.clear(); }
+
+  void Merge(const FRMRotamerGroupPtr other);
+
+  void ApplyOnResidue(uint rotamer_index, ost::mol::ResidueHandle& res, 
+                      bool consider_hydrogens = false, 
+                      const String& new_res_name = "") const;
+
+  FRMRotamerGroupPtr GetTransformedCopy(const geom::Transform& t) const;
+
+  float* CalculatePairwiseEnergies(FRMRotamerGroupPtr other, Real threshold);
+
+  void CalculateInternalEnergies();
+
+  Real GetMaxP() const;
+
+  void ApplySelfEnergyThresh(Real self_energy_thresh);
+
+  uint GetResidueIndex() const { return residue_index_; }
+
+  FRMRotamerPtr operator[](size_t index) { return rotamers_.at(index); }
+
+  size_t size() const { return rotamers_.size(); }
+
+  typedef std::vector<FRMRotamerPtr>::const_iterator const_iterator;
+  typedef std::vector<FRMRotamerPtr>::iterator iterator;
+  
+  iterator begin() { return rotamers_.begin(); }
+  iterator end() { return rotamers_.end(); }
+
+  const_iterator begin() const { return rotamers_.begin(); }
+  const_iterator end() const { return rotamers_.end(); }
+
+  const std::vector<int>& GetRotamerIndices() { return rotamer_indices_; }
+  const std::vector<Particle*>& GetParticles() { return particles_; }
+  const std::vector<FRMRotamerPtr>& GetRotamers() { return rotamers_; }
+  const std::vector<FRMRotamer::subrotamer_association_iterator> GetSubrotamerAssociationIndB(){return ass_ind_b_;}
+  const std::vector<FRMRotamer::subrotamer_association_iterator> GetSubrotamerAssociationIndE(){return ass_ind_e_;}
+
+private:
+  std::vector<FRMRotamerPtr> rotamers_;
+  std::vector<Particle*> particles_;
+  std::vector<int> rotamer_indices_;
+  std::vector<FRMRotamer::subrotamer_association_iterator> ass_ind_b_;
+  std::vector<FRMRotamer::subrotamer_association_iterator> ass_ind_e_;
+  uint residue_index_;
+};
+
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/rotamer_id.hh b/sidechain/src/rotamer_id.hh
new file mode 100644
index 0000000000000000000000000000000000000000..3eab11c9246c5dbf7e0617c9864a0d1a5ba3225a
--- /dev/null
+++ b/sidechain/src/rotamer_id.hh
@@ -0,0 +1,155 @@
+#ifndef PROMOD3_ROTAMER_ID_HH
+#define PROMOD3_ROTAMER_ID_HH
+
+#include <ost/base.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+typedef enum  {
+  ARG, ASN, ASP, 
+  GLN, GLU, LYS, 
+  SER, CYS, CYH, 
+  CYD, MET, TRP, 
+  TYR, THR, VAL, 
+  ILE, LEU, PRO,
+  CPR, TPR, HSD, 
+  HSE, HIS, PHE, 
+  GLY, ALA, XXX
+} RotamerID;
+
+//if not inlined, a linking error occurs... (Multiple definition...)
+//must find better solution
+inline RotamerID TLCToRotID(const String& tlc){
+
+  switch(tlc[0]){
+
+    case 'A':{
+      if(tlc == "ARG"){
+        return ARG;
+      }
+      if(tlc == "ASN"){
+        return ASN;
+      }
+      if(tlc == "ASP"){
+        return ASP;
+      }
+      if(tlc == "ALA"){
+        return ALA;
+      }
+      break;
+    }
+
+    case 'C':{
+      if(tlc == "CYS"){
+        return CYS;
+      }
+      if(tlc == "CYH"){
+        return CYH;
+      }
+      if(tlc == "CYD"){
+        return CYD;
+      }
+      if(tlc == "CPR"){
+        return CPR;
+      }
+      break;
+    }
+
+    case 'G':{
+      if(tlc == "GLU"){
+        return GLU;
+      }
+      if(tlc == "GLN"){
+        return GLN;
+      }
+      if(tlc == "GLY"){
+        return GLY;
+      }
+      break;
+    }
+
+    case 'H':{
+      if(tlc == "HIS"){
+        return HIS;
+      }
+      if(tlc == "HSE"){
+        return HSE;
+      }
+      if(tlc == "HSD"){
+        return HSD;
+      }
+      break;
+    }
+
+    case 'I':{
+      if(tlc == "ILE"){
+        return ILE;
+      }
+      break;
+    }
+
+    case 'L':{
+      if(tlc == "LEU"){
+        return LEU;
+      }
+      if(tlc == "LYS"){
+        return LYS;        
+      }
+      break;
+    }
+
+    case 'M':{
+      if(tlc == "MET"){
+        return MET;
+      }
+      break;
+    }
+
+    case 'P':{
+      if(tlc == "PRO"){
+        return PRO;
+      }
+      if(tlc == "PHE"){
+        return PHE;
+      }
+      break;
+    }
+
+    case 'S':{
+      if(tlc == "SER"){
+        return SER;
+      }
+      break;
+    }
+
+    case 'T':{
+      if(tlc == "THR"){
+        return THR;
+      }
+      if(tlc == "TYR"){
+        return TYR;
+      }
+      if(tlc == "TRP"){
+        return TRP;
+      }
+      if(tlc == "TPR"){
+        return TPR;
+      }
+      break;
+    }
+
+    case 'V':{
+      if(tlc == "VAL"){
+        return VAL;
+      }
+      break;
+    }
+  }  
+  return XXX;
+}
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/rotamer_lib.hh b/sidechain/src/rotamer_lib.hh
new file mode 100644
index 0000000000000000000000000000000000000000..907bfa3feb57d683457cc7dc4e4f082a6488020e
--- /dev/null
+++ b/sidechain/src/rotamer_lib.hh
@@ -0,0 +1,31 @@
+#ifndef PROMOD3_ROTAMER_LIB_HH
+#define PROMOD3_ROTAMER_LIB_HH
+
+#include <ost/base.hh>
+
+#include <boost/shared_ptr.hpp>
+#include <vector>
+
+#include <promod3/sidechain/rotamer_id.hh>
+#include <promod3/sidechain/rotamer_lib_entry.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+class RotamerLib;
+typedef boost::shared_ptr<RotamerLib> RotamerLibPtr;
+
+
+class RotamerLib{
+
+public:
+
+  virtual ~RotamerLib() { }
+
+  virtual std::pair<RotamerLibEntry*,uint> QueryLib(RotamerID id) const = 0;
+
+};
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/rotamer_lib_entry.hh b/sidechain/src/rotamer_lib_entry.hh
new file mode 100644
index 0000000000000000000000000000000000000000..89dfa70d496de418ce5c0da543b7664c357fca24
--- /dev/null
+++ b/sidechain/src/rotamer_lib_entry.hh
@@ -0,0 +1,44 @@
+#ifndef PROMOd3_ROTAMER_LIB_HH
+#define PROMOd3_ROTAMER_LIB_HH
+
+#include <ost/base.hh>
+
+#include <boost/shared_ptr.hpp>
+
+namespace promod3{ namespace sidechain{
+
+
+struct RotamerLibEntry;
+typedef boost::shared_ptr<RotamerLibEntry> RotamerLibEntryPtr;
+
+struct RotamerLibEntry{
+
+  RotamerLibEntry(Real p, Real c1, Real c2, Real c3, Real c4, 
+                  Real s1, Real s2, Real s3, Real s4): probability(p),
+                                                   chi1(c1),
+                                                   chi2(c2),
+                                                   chi3(c3),
+                                                   chi4(c4),
+                                                   sig1(s1),
+                                                   sig2(s2),
+                                                   sig3(s3),
+                                                   sig4(s4) { }
+
+  RotamerLibEntry(): probability(0.0), chi1(0.0), chi2(0.0), chi3(0.0), chi4(0.0),
+                     sig1(0.0), sig2(0.0), sig3(0.0), sig4(0.0) { }
+
+  Real probability;
+  Real chi1;
+  Real chi2;
+  Real chi3;
+  Real chi4;
+  Real sig1;
+  Real sig2;
+  Real sig3;
+  Real sig4;
+};
+
+
+}} //ns
+
+#endif
diff --git a/sidechain/src/rotamer_lib_reader.cc b/sidechain/src/rotamer_lib_reader.cc
new file mode 100644
index 0000000000000000000000000000000000000000..753e00b85ec02539d5545b6d9844f78150f206aa
--- /dev/null
+++ b/sidechain/src/rotamer_lib_reader.cc
@@ -0,0 +1,102 @@
+#include <promod3/sidechain/rotamer_lib_reader.hh>
+
+namespace promod3{ namespace sidechain{
+
+DunbrackLibPtr ReadDunbrackFile(const String& filename){
+  
+  std::ifstream file;
+  file.open((filename.c_str()));
+
+  if(!file){
+    std::stringstream ss;
+    ss<<"Could not read file. File '";
+    ss<<filename<<"' does not exist!";
+    throw promod3::Error(ss.str());
+  }
+
+  DunbrackLibPtr lib(new DunbrackLib(36,36));
+
+  String line;
+  ost::StringRef stringref_line;
+  std::vector<ost::StringRef> split_line;
+
+
+  String name;
+  RotamerID id;
+  Real chi1,chi2,chi3,chi4,sig1,sig2,sig3,sig4,probability,phi,psi;
+  uint r1,r2,r3,r4;
+
+  while(file.good()){
+    std::getline(file,line);
+    stringref_line = ost::StringRef(line.c_str(),line.length());
+    split_line = stringref_line.split();
+    if(split_line.empty()) continue;
+    if(split_line[0][0] == '#') continue;
+    if(split_line.size() != 17){
+      std::stringstream ss;
+      ss<<"Failed in parsing: "<<line<<"\n\n";
+      ss<<"Expected exactly 17 columns.";
+      throw promod3::Error(ss.str());
+    }
+
+    name = split_line[0].str();
+    id = TLCToRotID(name);
+    if(id == XXX) continue;
+    phi = boost::lexical_cast<Real>(split_line[1].str())/180.0*M_PI;
+    psi = boost::lexical_cast<Real>(split_line[2].str())/180.0*M_PI;
+    //the dunbrack 2010 library is kind of circular...
+    if(phi > (M_PI-0.0001) || psi > (M_PI - 0.0001)) continue;
+    r1  = boost::lexical_cast<uint>(split_line[4].str());
+    r2  = boost::lexical_cast<uint>(split_line[5].str());
+    r3  = boost::lexical_cast<uint>(split_line[6].str());
+    r4  = boost::lexical_cast<uint>(split_line[7].str());
+    probability = boost::lexical_cast<Real>(split_line[8].str());
+
+    if(r1 == 0){
+      chi1 = std::numeric_limits<Real>::quiet_NaN();
+      sig1 = std::numeric_limits<Real>::quiet_NaN();
+    }
+    else{
+      chi1 = boost::lexical_cast<Real>(split_line[9].str())/180.0*M_PI;
+      sig1 = boost::lexical_cast<Real>(split_line[13].str())/180.0*M_PI;
+    }
+
+    if(r2 == 0){
+      chi2 = std::numeric_limits<Real>::quiet_NaN();
+      sig2 = std::numeric_limits<Real>::quiet_NaN();
+    }
+    else{
+      chi2 = boost::lexical_cast<Real>(split_line[10].str())/180.0*M_PI;
+      sig2 = boost::lexical_cast<Real>(split_line[14].str())/180.0*M_PI;
+    }
+
+    if(r3 == 0){
+      chi3 = std::numeric_limits<Real>::quiet_NaN();
+      sig3 = std::numeric_limits<Real>::quiet_NaN();
+    }
+    else{
+      chi3 = boost::lexical_cast<Real>(split_line[11].str())/180.0*M_PI;
+      sig3 = boost::lexical_cast<Real>(split_line[15].str())/180.0*M_PI;
+    }
+   
+    if(r4 == 0){
+      chi4 = std::numeric_limits<Real>::quiet_NaN();
+      sig4 = std::numeric_limits<Real>::quiet_NaN();
+    }
+    else{
+      chi4 = boost::lexical_cast<Real>(split_line[12].str())/180.0*M_PI;
+      sig4 = boost::lexical_cast<Real>(split_line[16].str())/180.0*M_PI;
+    }   
+
+    RotamerLibEntry new_rotamer(probability,chi1,chi2,chi3,chi4,
+                                sig1,sig2,sig3,sig4);
+
+    lib->AddRotamer(id, r1, r2, r3, r4, phi, psi, new_rotamer);
+  }
+
+  lib->MakeStatic();
+
+  return lib;
+}
+
+}}
diff --git a/sidechain/src/rotamer_lib_reader.hh b/sidechain/src/rotamer_lib_reader.hh
new file mode 100644
index 0000000000000000000000000000000000000000..56db4d1bd9f27c89cb7fb0be86c3f42c778b2d3e
--- /dev/null
+++ b/sidechain/src/rotamer_lib_reader.hh
@@ -0,0 +1,23 @@
+#ifndef PROMOD3_ROTAMER_LIB_READER_HH
+#define PROMOD3_ROTAMER_LIB_READER_HH
+
+#include <limits>
+
+#include <promod3/sidechain/bb_dep_rotamer_lib.hh>
+#include <promod3/sidechain/dunbrack_lib.hh>
+
+#include <ost/string_ref.hh>
+
+#include <boost/filesystem.hpp>
+#include <boost/lexical_cast.hpp>
+
+#include <fstream>
+
+
+namespace promod3{ namespace sidechain{
+
+  DunbrackLibPtr ReadDunbrackFile(const String& filename);
+
+}}
+
+#endif
diff --git a/sidechain/src/settings.hh b/sidechain/src/settings.hh
new file mode 100644
index 0000000000000000000000000000000000000000..3e1e0b1a994b79c88de4e45d3a3ff7291ccb8043
--- /dev/null
+++ b/sidechain/src/settings.hh
@@ -0,0 +1,233 @@
+#ifndef PROMOD3_ROTAMER_SETTINGS_HH
+#define PROMOD3_ROTAMER_SETTINGS_HH
+
+#include <ost/base.hh>
+
+#include <boost/shared_ptr.hpp>
+
+
+
+namespace promod3{ namespace sidechain{
+
+struct RotamerSettings;
+typedef boost::shared_ptr<RotamerSettings> RotamerSettingsPtr;
+
+
+struct RotamerSettings{
+
+  RotamerSettings(): FRM_T_ARG(1.23),
+                     FRM_T_ASN(1.41),
+                     FRM_T_ASP(1.48),
+                     FRM_T_GLN(1.32),
+                     FRM_T_GLU(0.94),
+                     FRM_T_LYS(1.27),
+                     FRM_T_SER(3.53),
+                     FRM_T_CYS(1.69),
+                     FRM_T_MET(1.77),
+                     FRM_T_TRP(0.99),
+                     FRM_T_TYR(1.96),
+                     FRM_T_THR(1.11),
+                     FRM_T_VAL(2.20),
+                     FRM_T_ILE(2.03),
+                     FRM_T_LEU(2.55),
+                     FRM_T_PRO(2.62),
+                     FRM_T_HIS(1.35),
+                     FRM_T_PHE(1.07),
+                     FRM_delta1_ARG(0.87),
+                     FRM_delta2_ARG(1.62),
+                     FRM_delta3_ARG(1.67),
+                     FRM_delta4_ARG(0.78),
+                     FRM_delta1_ASN(0.62),
+                     FRM_delta2_ASN(1.93),
+                     FRM_delta1_ASP(1.59),
+                     FRM_delta2_ASP(0.63),
+                     FRM_delta1_GLN(1.55),
+                     FRM_delta2_GLN(0.68),
+                     FRM_delta3_GLN(1.88),
+                     FRM_delta1_GLU(0.82),
+                     FRM_delta2_GLU(1.57),
+                     FRM_delta3_GLU(0.78),
+                     FRM_delta1_LYS(1.62),
+                     FRM_delta2_LYS(0.99),
+                     FRM_delta3_LYS(0.96),
+                     FRM_delta4_LYS(1.48),
+                     FRM_delta1_SER(0.65),
+                     FRM_delta2_SER(2.98),
+                     FRM_delta1_CYS(1.69),
+                     FRM_delta1_MET(0.97),
+                     FRM_delta2_MET(1.54),
+                     FRM_delta3_MET(1.21),
+                     FRM_delta1_TRP(1.28),
+                     FRM_delta2_TRP(1.48),
+                     FRM_delta1_TYR(1.48),
+                     FRM_delta2_TYR(0.73),
+                     FRM_delta3_TYR(0.96),
+                     FRM_delta1_THR(0.88),
+                     FRM_delta2_THR(0.88),
+                     FRM_delta1_VAL(2.08),
+                     FRM_delta1_ILE(1.23),
+                     FRM_delta2_ILE(0.98),
+                     FRM_delta1_LEU(1.15),
+                     FRM_delta2_LEU(1.48),
+                     FRM_delta1_PRO(0.78),
+                     FRM_delta2_PRO(1.27),
+                     FRM_delta1_HIS(1.84),
+                     FRM_delta2_HIS(0.85),
+                     FRM_delta1_PHE(1.45),
+                     FRM_delta2_PHE(1.35),
+                     internal_e_prefactor_ARG(2.27),
+                     internal_e_prefactor_ASN(1.80),
+                     internal_e_prefactor_ASP(2.44),
+                     internal_e_prefactor_GLN(1.61),
+                     internal_e_prefactor_GLU(1.85),
+                     internal_e_prefactor_LYS(2.13),
+                     internal_e_prefactor_SER(2.78),
+                     internal_e_prefactor_CYS(4.07),
+                     internal_e_prefactor_MET(1.95),
+                     internal_e_prefactor_TRP(3.24),
+                     internal_e_prefactor_TYR(2.00),
+                     internal_e_prefactor_THR(2.96),
+                     internal_e_prefactor_VAL(1.62),
+                     internal_e_prefactor_ILE(2.18),
+                     internal_e_prefactor_LEU(2.25),
+                     internal_e_prefactor_PRO(0.76),
+                     internal_e_prefactor_HIS(2.01),
+                     internal_e_prefactor_PHE(1.71),
+                     probability_cutoff(0.98),
+                     consider_hbonds(true),
+                     sample_polar_hydrogens(true),
+                     H_radius(0.49),
+                     C_radius(1.68),
+                     S_radius(1.71),
+                     N_radius(1.28),
+                     O_radius(1.29),
+                     H_max_radius(1.0300), //ideal max radius for vdw interaction
+                     C_max_radius(2.2400), //would be radius*4/3. the max radius for 
+                     S_max_radius(2.2800), //hydrogens has been increased to 1.03,
+                     N_max_radius(1.7067), //since they can participate in hbonds
+                     O_max_radius(1.7200) //being nonzero up to 2.75A
+                     { }
+
+
+  Real FRM_T_ARG;
+  Real FRM_T_ASN;
+  Real FRM_T_ASP;
+  Real FRM_T_GLN;
+  Real FRM_T_GLU;
+  Real FRM_T_LYS;
+  Real FRM_T_SER;
+  Real FRM_T_CYS;
+  Real FRM_T_MET;
+  Real FRM_T_TRP;
+  Real FRM_T_TYR;
+  Real FRM_T_THR;
+  Real FRM_T_VAL;
+  Real FRM_T_ILE;
+  Real FRM_T_LEU;
+  Real FRM_T_PRO;
+  Real FRM_T_HIS;
+  Real FRM_T_PHE;
+
+  Real FRM_delta1_ARG;
+  Real FRM_delta2_ARG;
+  Real FRM_delta3_ARG;
+  Real FRM_delta4_ARG;
+
+  Real FRM_delta1_ASN;
+  Real FRM_delta2_ASN;
+
+  Real FRM_delta1_ASP;
+  Real FRM_delta2_ASP;
+
+  Real FRM_delta1_GLN;
+  Real FRM_delta2_GLN;
+  Real FRM_delta3_GLN;
+
+  Real FRM_delta1_GLU;
+  Real FRM_delta2_GLU;
+  Real FRM_delta3_GLU;
+
+  Real FRM_delta1_LYS;
+  Real FRM_delta2_LYS;
+  Real FRM_delta3_LYS;
+  Real FRM_delta4_LYS;
+
+  Real FRM_delta1_SER;
+  Real FRM_delta2_SER;
+  
+  Real FRM_delta1_CYS;
+
+  Real FRM_delta1_MET;
+  Real FRM_delta2_MET;
+  Real FRM_delta3_MET;
+
+  Real FRM_delta1_TRP;
+  Real FRM_delta2_TRP;
+
+  Real FRM_delta1_TYR;
+  Real FRM_delta2_TYR;
+  Real FRM_delta3_TYR;
+
+  Real FRM_delta1_THR;
+  Real FRM_delta2_THR;
+
+  Real FRM_delta1_VAL;
+
+  Real FRM_delta1_ILE;
+  Real FRM_delta2_ILE;
+
+  Real FRM_delta1_LEU;
+  Real FRM_delta2_LEU;
+
+  Real FRM_delta1_PRO;
+  Real FRM_delta2_PRO;
+
+  Real FRM_delta1_HIS;
+  Real FRM_delta2_HIS;
+
+  Real FRM_delta1_PHE;
+  Real FRM_delta2_PHE;
+
+  Real internal_e_prefactor_ARG;
+  Real internal_e_prefactor_ASN;
+  Real internal_e_prefactor_ASP;
+  Real internal_e_prefactor_GLN;
+  Real internal_e_prefactor_GLU;
+  Real internal_e_prefactor_LYS;
+  Real internal_e_prefactor_SER;
+  Real internal_e_prefactor_CYS;
+  Real internal_e_prefactor_MET;
+  Real internal_e_prefactor_TRP;
+  Real internal_e_prefactor_TYR;
+  Real internal_e_prefactor_THR;
+  Real internal_e_prefactor_VAL;
+  Real internal_e_prefactor_ILE;
+  Real internal_e_prefactor_LEU;
+  Real internal_e_prefactor_PRO;
+  Real internal_e_prefactor_HIS;
+  Real internal_e_prefactor_PHE;
+
+  Real probability_cutoff;
+
+  bool consider_hbonds;
+  bool sample_polar_hydrogens;
+
+  Real H_radius;
+  Real C_radius;
+  Real S_radius;
+  Real N_radius;
+  Real O_radius;
+
+  Real H_max_radius;
+  Real C_max_radius;
+  Real S_max_radius;
+  Real N_max_radius;
+  Real O_max_radius;
+
+};
+
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/sidechain_connector.cc b/sidechain/src/sidechain_connector.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0a05319d8416b7db31b9ebb25c6d9082b357ce9d
--- /dev/null
+++ b/sidechain/src/sidechain_connector.cc
@@ -0,0 +1,464 @@
+#include <promod3/sidechain/sidechain_connector.hh>
+
+
+namespace{
+
+void ConnectARG(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle ne = res.FindAtom("NE");
+  ost::mol::AtomHandle cz = res.FindAtom("CZ");
+  ost::mol::AtomHandle nh1 = res.FindAtom("NH1");
+  ost::mol::AtomHandle nh2 = res.FindAtom("NH2");
+  ost::mol::AtomHandle he = res.FindAtom("HE");
+  ost::mol::AtomHandle hh11 = res.FindAtom("HH11");
+  ost::mol::AtomHandle hh12 = res.FindAtom("HH12");
+  ost::mol::AtomHandle hh21 = res.FindAtom("HH21");
+  ost::mol::AtomHandle hh22 = res.FindAtom("HH22");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd.IsValid()) ed.Connect(cg,cd);
+  if(cd.IsValid() && ne.IsValid()) ed.Connect(cd,ne);
+  if(ne.IsValid() && cz.IsValid()) ed.Connect(ne,cz);
+  if(cz.IsValid() && nh1.IsValid()) ed.Connect(cz,nh1);
+  if(cz.IsValid() && nh2.IsValid()) ed.Connect(cz,nh2);
+  if(ne.IsValid() && he.IsValid()) ed.Connect(ne,he);
+  if(nh1.IsValid() && hh11.IsValid()) ed.Connect(nh1,hh11);
+  if(nh1.IsValid() && hh12.IsValid()) ed.Connect(nh1,hh12);
+  if(nh2.IsValid() && hh21.IsValid()) ed.Connect(nh2,hh21);
+  if(nh2.IsValid() && hh22.IsValid()) ed.Connect(nh2,hh22);
+}
+
+void ConnectASN(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle od1 = res.FindAtom("OD1");
+  ost::mol::AtomHandle nd2 = res.FindAtom("ND2");
+  ost::mol::AtomHandle hd21 = res.FindAtom("HD21");
+  ost::mol::AtomHandle hd22 = res.FindAtom("HD22");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && od1.IsValid()) ed.Connect(cg,od1);
+  if(cg.IsValid() && nd2.IsValid()) ed.Connect(cg,nd2);
+  if(nd2.IsValid() && hd21.IsValid()) ed.Connect(nd2,hd21);
+  if(nd2.IsValid() && hd22.IsValid()) ed.Connect(nd2,hd22);
+}
+       
+void ConnectASP(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle od1 = res.FindAtom("OD1");
+  ost::mol::AtomHandle od2 = res.FindAtom("OD2");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && od1.IsValid()) ed.Connect(cg,od1);
+  if(cg.IsValid() && od2.IsValid()) ed.Connect(cg,od2);
+}
+      
+void ConnectGLN(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle oe1 = res.FindAtom("OE1");
+  ost::mol::AtomHandle ne2 = res.FindAtom("NE2");
+  ost::mol::AtomHandle he21 = res.FindAtom("HE21");
+  ost::mol::AtomHandle he22 = res.FindAtom("HE22");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd.IsValid()) ed.Connect(cg,cd);
+  if(cd.IsValid() && oe1.IsValid()) ed.Connect(cd,oe1);
+  if(cd.IsValid() && ne2.IsValid()) ed.Connect(cd,ne2);
+  if(ne2.IsValid() && he21.IsValid()) ed.Connect(ne2,he21);
+  if(ne2.IsValid() && he22.IsValid()) ed.Connect(ne2,he22);
+}
+      
+void ConnectGLU(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle oe1 = res.FindAtom("OE1");
+  ost::mol::AtomHandle oe2 = res.FindAtom("OE2");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd.IsValid()) ed.Connect(cg,cd);
+  if(cd.IsValid() && oe1.IsValid()) ed.Connect(cd,oe1);
+  if(cd.IsValid() && oe2.IsValid()) ed.Connect(cd,oe2);
+}
+      
+void ConnectLYS(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd = res.FindAtom("CD");
+  ost::mol::AtomHandle ce = res.FindAtom("CE");
+  ost::mol::AtomHandle nz = res.FindAtom("NZ");
+  ost::mol::AtomHandle hz1 = res.FindAtom("HZ1");
+  ost::mol::AtomHandle hz2 = res.FindAtom("HZ2");
+  ost::mol::AtomHandle hz3 = res.FindAtom("HZ3");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd.IsValid()) ed.Connect(cg,cd);
+  if(cd.IsValid() && ce.IsValid()) ed.Connect(cd,ce);
+  if(ce.IsValid() && nz.IsValid()) ed.Connect(ce,nz);
+  if(nz.IsValid() && hz1.IsValid()) ed.Connect(nz,hz1);
+  if(nz.IsValid() && hz2.IsValid()) ed.Connect(nz,hz2);
+  if(nz.IsValid() && hz3.IsValid()) ed.Connect(nz,hz3);
+}
+      
+void ConnectSER(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle og = res.FindAtom("OG");
+  ost::mol::AtomHandle hg = res.FindAtom("HG");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && og.IsValid()) ed.Connect(cb,og);  
+  if(og.IsValid() && hg.IsValid()) ed.Connect(og,hg);
+}
+      
+void ConnectCYS(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle sg = res.FindAtom("SG");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && sg.IsValid()) ed.Connect(cb,sg);
+}
+      
+void ConnectMET(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle sd = res.FindAtom("SD");
+  ost::mol::AtomHandle ce = res.FindAtom("CE");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && sd.IsValid()) ed.Connect(cg,sd);
+  if(sd.IsValid() && ce.IsValid()) ed.Connect(sd,ce); 
+}
+      
+void ConnectTRP(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce2 = res.FindAtom("CE2");
+  ost::mol::AtomHandle ne1 = res.FindAtom("NE1");
+  ost::mol::AtomHandle ce3 = res.FindAtom("CE3");
+  ost::mol::AtomHandle cz3 = res.FindAtom("CZ3");
+  ost::mol::AtomHandle ch2 = res.FindAtom("CH2");
+  ost::mol::AtomHandle cz2 = res.FindAtom("CZ2");
+  ost::mol::AtomHandle he1 = res.FindAtom("HE1");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd1.IsValid()) ed.Connect(cg,cd1);
+  if(cg.IsValid() && cd2.IsValid()) ed.Connect(cg,cd2);
+  if(cd1.IsValid() && ne1.IsValid()) ed.Connect(cd1,ne1);
+  if(ne1.IsValid() && ce2.IsValid()) ed.Connect(ne1,ce2);
+  if(ce2.IsValid() && cd2.IsValid()) ed.Connect(ce2,cd2);
+  if(cd2.IsValid() && ce3.IsValid()) ed.Connect(cd2,ce3);
+  if(ce3.IsValid() && cz3.IsValid()) ed.Connect(ce3,cz3);
+  if(cz3.IsValid() && ch2.IsValid()) ed.Connect(cz3,ch2);
+  if(ch2.IsValid() && cz2.IsValid()) ed.Connect(ch2,cz2);
+  if(cz2.IsValid() && ce2.IsValid()) ed.Connect(cz2,ce2);
+  if(ne1.IsValid() && he1.IsValid()) ed.Connect(ne1,he1);
+}
+      
+void ConnectTYR(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+ 
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce1 = res.FindAtom("CE1");
+  ost::mol::AtomHandle ce2 = res.FindAtom("CE2");
+  ost::mol::AtomHandle cz = res.FindAtom("CZ");
+  ost::mol::AtomHandle oh = res.FindAtom("OH");
+  ost::mol::AtomHandle hh = res.FindAtom("HH");
+
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd1.IsValid()) ed.Connect(cg,cd1);
+  if(cg.IsValid() && cd2.IsValid()) ed.Connect(cg,cd2);
+  if(cd1.IsValid() && ce1.IsValid()) ed.Connect(cd1,ce1);
+  if(cd2.IsValid() && ce2.IsValid()) ed.Connect(cd2,ce2);
+  if(ce1.IsValid() && cz.IsValid()) ed.Connect(ce1,cz);
+  if(ce2.IsValid() && cz.IsValid()) ed.Connect(ce2,cz);
+  if(cz.IsValid() && oh.IsValid()) ed.Connect(cz,oh);
+  if(oh.IsValid() && hh.IsValid()) ed.Connect(oh,hh);
+}
+      
+void ConnectTHR(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+  
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle og1 = res.FindAtom("OG1");
+  ost::mol::AtomHandle cg2 = res.FindAtom("CG2");
+  ost::mol::AtomHandle hg1 = res.FindAtom("HG1");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && og1.IsValid()) ed.Connect(cb,og1);
+  if(cb.IsValid() && cg2.IsValid()) ed.Connect(cb,cg2);
+  if(og1.IsValid() && hg1.IsValid()) ed.Connect(og1,hg1);
+}
+      
+void ConnectVAL(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg1 = res.FindAtom("CG1");
+  ost::mol::AtomHandle cg2 = res.FindAtom("CG2");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg1.IsValid()) ed.Connect(cb,cg1);
+  if(cb.IsValid() && cg2.IsValid()) ed.Connect(cb,cg2);
+}
+      
+void ConnectILE(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg1 = res.FindAtom("CG1");
+  ost::mol::AtomHandle cg2 = res.FindAtom("CG2");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg1.IsValid()) ed.Connect(cb,cg1);
+  if(cb.IsValid() && cg2.IsValid()) ed.Connect(cb,cg2);
+  if(cg1.IsValid() && cd1.IsValid()) ed.Connect(cg1,cd1);
+}
+      
+void ConnectLEU(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd1.IsValid()) ed.Connect(cg,cd1);
+  if(cg.IsValid() && cd2.IsValid()) ed.Connect(cg,cd2);
+}
+      
+void ConnectPRO(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle n = res.FindAtom("N");
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && n.IsValid()) ed.Connect(cg,n);
+}
+      
+void ConnectHIS(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle nd1 = res.FindAtom("ND1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce1 = res.FindAtom("CE1");
+  ost::mol::AtomHandle ne2 = res.FindAtom("NE2");
+  ost::mol::AtomHandle hd1 = res.FindAtom("HD1");
+  ost::mol::AtomHandle he2 = res.FindAtom("HE2");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && nd1.IsValid()) ed.Connect(cg,nd1);
+  if(cg.IsValid() && cd2.IsValid()) ed.Connect(cg,cd2);
+  if(cd2.IsValid() && ne2.IsValid()) ed.Connect(cd2,ne2);
+  if(nd1.IsValid() && ce1.IsValid()) ed.Connect(nd1,ce1);
+  if(ce1.IsValid() && ne2.IsValid()) ed.Connect(ce1,ne2);
+  if(nd1.IsValid() && hd1.IsValid()) ed.Connect(nd1,hd1);
+  if(ne2.IsValid() && he2.IsValid()) ed.Connect(ne2,he2);
+}
+      
+void ConnectPHE(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+  ost::mol::AtomHandle cg = res.FindAtom("CG");
+  ost::mol::AtomHandle cd1 = res.FindAtom("CD1");
+  ost::mol::AtomHandle cd2 = res.FindAtom("CD2");
+  ost::mol::AtomHandle ce1 = res.FindAtom("CE1");
+  ost::mol::AtomHandle ce2 = res.FindAtom("CE2");
+  ost::mol::AtomHandle cz = res.FindAtom("CZ");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+  if(cb.IsValid() && cg.IsValid()) ed.Connect(cb,cg);
+  if(cg.IsValid() && cd1.IsValid()) ed.Connect(cg,cd1);
+  if(cg.IsValid() && cd2.IsValid()) ed.Connect(cg,cd2);
+  if(cd1.IsValid() && ce1.IsValid()) ed.Connect(cd1,ce1);
+  if(cd2.IsValid() && ce2.IsValid()) ed.Connect(cd2,ce2);
+  if(ce1.IsValid() && cz.IsValid()) ed.Connect(ce1,cz);
+  if(ce2.IsValid() && cz.IsValid()) ed.Connect(ce2,cz);
+}
+      
+void ConnectALA(ost::mol::ResidueHandle& res, ost::mol::XCSEditor& ed){
+  ost::mol::AtomHandle ca = res.FindAtom("CA");
+  ost::mol::AtomHandle cb = res.FindAtom("CB");
+
+  if(ca.IsValid() && cb.IsValid()) ed.Connect(ca,cb);
+}
+
+
+}//ns
+
+
+
+namespace promod3{ namespace sidechain{
+
+void ConnectSidechain(ost::mol::ResidueHandle& res, RotamerID id){
+
+  ost::mol::XCSEditor ed = res.GetEntity().EditXCS();
+
+  switch (id){
+    case ARG :{     
+      ConnectARG(res,ed);
+      break;
+    }
+
+    case ASN :{ 
+      ConnectASN(res,ed);
+      break;
+    }
+
+    case ASP :{
+      ConnectASP(res,ed);
+      break;
+    }
+
+    case GLN :{
+      ConnectGLN(res,ed);
+      break;
+    }
+
+    case GLU :{
+      ConnectGLU(res,ed);
+      break;
+    }
+
+    case LYS :{
+      ConnectLYS(res,ed);
+      break;
+    }
+
+    case SER :{
+      ConnectSER(res,ed);
+      break;
+    }
+
+    case CYS :{
+      ConnectCYS(res,ed);
+      break;
+    }
+
+    case MET : {
+      ConnectMET(res,ed);
+      break;
+    }
+
+    case TRP :{
+      ConnectTRP(res,ed);
+      break;
+    }
+
+    case TYR :{
+      ConnectTYR(res,ed);
+      break;
+    }
+
+    case THR :{
+      ConnectTHR(res,ed);
+      break;
+    }
+
+    case VAL :{
+      ConnectVAL(res,ed);
+      break;
+    }
+
+    case ILE :{
+      ConnectILE(res,ed);
+      break;
+    }
+
+    case LEU :{
+      ConnectLEU(res,ed);
+      break;
+    }
+
+    case PRO :{
+      ConnectPRO(res,ed);
+      break;
+    }
+
+    case HSD :{
+      ConnectHIS(res,ed);
+      break;
+    }
+
+    case HSE :{
+      ConnectHIS(res,ed);
+      break;
+    }
+
+    case PHE :{
+      ConnectPHE(res,ed);
+      break;
+    }
+
+    case ALA :{
+      ConnectALA(res,ed);
+      break;
+    }
+
+    case GLY :{
+      break;
+    }
+
+    default : 
+      break;
+  }
+}
+
+
+
+
+
+
+
+
+
+}}
+
diff --git a/sidechain/src/sidechain_connector.hh b/sidechain/src/sidechain_connector.hh
new file mode 100644
index 0000000000000000000000000000000000000000..4a74884544e0ea68cc52d148159d0b85e5e1e482
--- /dev/null
+++ b/sidechain/src/sidechain_connector.hh
@@ -0,0 +1,17 @@
+#ifndef PROMOD3_SIDECHAIN_CONNECTOR_HH
+#define PROMOD3_SIDECHAIN_CONNECTOR_HH
+
+#include <ost/mol/bond_handle.hh>
+#include <ost/mol/atom_handle.hh>
+#include <ost/mol/residue_handle.hh>
+#include <ost/mol/xcs_editor.hh>
+#include <promod3/sidechain/rotamer_id.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+  void ConnectSidechain(ost::mol::ResidueHandle& res, RotamerID rot_id);
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/sidechain_object_loader.cc b/sidechain/src/sidechain_object_loader.cc
new file mode 100644
index 0000000000000000000000000000000000000000..efd13e39ebcb97d5b0728438890dcf2c0ecf2cdf
--- /dev/null
+++ b/sidechain/src/sidechain_object_loader.cc
@@ -0,0 +1,11 @@
+#include <promod3/sidechain/sidechain_object_loader.hh>
+
+namespace promod3{ namespace sidechain{
+
+DunbrackLibPtr LoadDunbrackLib(){
+  String path = (boost::filesystem::path(PROMOD3_SHARED_DATA_PATH) / "sidechain_data" / "2010DunbrackLib.dat").string();
+  DunbrackLibPtr p = DunbrackLib::Load(path);
+  return p;  
+}
+
+}}//ns 
diff --git a/sidechain/src/sidechain_object_loader.hh b/sidechain/src/sidechain_object_loader.hh
new file mode 100644
index 0000000000000000000000000000000000000000..ce8c6ea215ef7e745370b0eff5d31931914e54b5
--- /dev/null
+++ b/sidechain/src/sidechain_object_loader.hh
@@ -0,0 +1,15 @@
+#ifndef PROMOD3_SIDECHAIN_OBJECT_LOADER_HH
+#define PROMOD3_SIDECHAIN_OBJECT_LOADER_HH
+
+#include <boost/filesystem/path.hpp>
+
+#include <promod3/config.hh>
+#include <promod3/sidechain/dunbrack_lib.hh>
+
+
+namespace promod3 { namespace sidechain{
+
+DunbrackLibPtr LoadDunbrackLib();
+
+}} //ns
+#endif
diff --git a/sidechain/src/tetrahedral_polytope.cc b/sidechain/src/tetrahedral_polytope.cc
new file mode 100644
index 0000000000000000000000000000000000000000..15f24698ccf7ab8acc6c6b880e1367b9c5cdeb6a
--- /dev/null
+++ b/sidechain/src/tetrahedral_polytope.cc
@@ -0,0 +1,405 @@
+#include <promod3/sidechain/tetrahedral_polytope.hh>
+
+namespace promod3{ namespace sidechain{
+
+
+void TetrahedralPolytopeTreeBag::SetIndex(int i){
+  index = i;
+}
+
+void TetrahedralPolytopeTreeBag::SetChildren(TetrahedralPolytopeTreeBag* l,
+                                             TetrahedralPolytopeTreeBag* r){
+  is_leaf = false;
+  left = l;
+  right = r;
+}
+
+bool TetrahedralPolytopeTreeBag::Overlap(const TetrahedralPolytopeTreeBag* other) const{
+
+  return !(e1min > other->e1max || e2min > other->e2max || e3min > other->e3max || e4min > other->e4max ||
+           e1max < other->e1min || e2max < other->e2min || e3max < other->e3min || e4max < other->e4min);
+}
+
+TetrahedralPolytopeTree::TetrahedralPolytopeTree(const std::vector<TetrahedralPolytopePtr>& subpolytopes){
+
+  int subpolytopes_size = subpolytopes.size();
+
+  x_component_.resize(subpolytopes_size);
+  y_component_.resize(subpolytopes_size);
+  z_component_.resize(subpolytopes_size);
+
+  std::vector<int> members(subpolytopes_size);
+
+  geom::Vec3 center;
+  for(int i = 0; i < subpolytopes_size; ++i){
+    center = subpolytopes[i]->GetCenter();
+    x_component_[i] = center[0];
+    y_component_[i] = center[1];
+    z_component_[i] = center[2];
+    members[i] = i;
+  }
+  //most likely, there will be more,
+  //lets just allocate the first few
+  tree_bags_.reserve(subpolytopes_size);
+  root_ = this->Generate(members,subpolytopes);
+}
+
+TetrahedralPolytopeTree::TetrahedralPolytopeTree(const std::vector<TetrahedralPolytope*>& subpolytopes){
+
+  int subpolytopes_size = subpolytopes.size();
+
+  x_component_.resize(subpolytopes_size);
+  y_component_.resize(subpolytopes_size);
+  z_component_.resize(subpolytopes_size);
+
+  std::vector<int> members(subpolytopes_size);
+
+  geom::Vec3 center;
+  for(int i = 0; i < subpolytopes_size; ++i){
+    center = subpolytopes[i]->GetCenter();
+    x_component_[i] = center[0];
+    y_component_[i] = center[1];
+    z_component_[i] = center[2];
+    members[i] = i;
+  }
+  //most likely, there will be more,
+  //lets just allocate the first few
+  tree_bags_.reserve(subpolytopes_size);
+  root_ = this->Generate(members,subpolytopes);
+
+  x_component_.clear();
+  y_component_.clear();
+  z_component_.clear();
+}
+
+TetrahedralPolytopeTree::~TetrahedralPolytopeTree(){
+  for(std::vector<TetrahedralPolytopeTreeBag*>::iterator i = tree_bags_.begin(),
+      e = tree_bags_.end(); i != e; ++i){
+    delete *i;
+  }
+}
+
+void TetrahedralPolytopeTree::ResetTetrahedralPolytopeTree(const std::vector<TetrahedralPolytopePtr>& subpolytopes){
+
+  for(std::vector<TetrahedralPolytopeTreeBag*>::iterator i = tree_bags_.begin(),
+      e = tree_bags_.end(); i != e; ++i){
+    delete *i;
+  }
+  tree_bags_.clear();
+
+  int subpolytopes_size = subpolytopes.size();
+
+  x_component_.resize(subpolytopes_size);
+  y_component_.resize(subpolytopes_size);
+  z_component_.resize(subpolytopes_size);
+
+  std::vector<int> members(subpolytopes_size);
+
+  geom::Vec3 center;
+  for(int i = 0; i < subpolytopes_size; ++i){
+    center = subpolytopes[i]->GetCenter();
+    x_component_[i] = center[0];
+    y_component_[i] = center[1];
+    z_component_[i] = center[2];
+    members[i] = i;
+  }
+
+  root_ = this->Generate(members,subpolytopes); 
+
+  x_component_.clear();
+  y_component_.clear();
+  z_component_.clear();
+}
+
+void TetrahedralPolytopeTree::ResetTetrahedralPolytopeTree(const std::vector<TetrahedralPolytope*>& subpolytopes){
+
+  for(std::vector<TetrahedralPolytopeTreeBag*>::iterator i = tree_bags_.begin(),
+      e = tree_bags_.end(); i != e; ++i){
+    delete *i;
+  }
+  tree_bags_.clear();
+
+  int subpolytopes_size = subpolytopes.size();
+
+  x_component_.resize(subpolytopes_size);
+  y_component_.resize(subpolytopes_size);
+  z_component_.resize(subpolytopes_size);
+
+  std::vector<int> members(subpolytopes_size);
+
+  geom::Vec3 center;
+  for(int i = 0; i < subpolytopes_size; ++i){
+    center = subpolytopes[i]->GetCenter();
+    x_component_[i] = center[0];
+    y_component_[i] = center[1];
+    z_component_[i] = center[2];
+    members[i] = i;
+  }
+
+  root_ = this->Generate(members,subpolytopes); 
+}
+
+void TetrahedralPolytopeTree::OverlappingPolytopes(const TetrahedralPolytopeTree* other,
+                                                   std::vector<std::pair<int,int> >& result) const{
+  TraverseTree(root_,other->root_,result);
+}
+
+
+TetrahedralPolytopeTreeBag* TetrahedralPolytopeTree::Generate(const std::vector<int>& members,
+                                                              const std::vector<TetrahedralPolytopePtr>& polytopes){
+
+  if(members.size() == 1){
+    TetrahedralPolytopeTreeBag* ptr = new TetrahedralPolytopeTreeBag(polytopes[members[0]]->e1max_,
+                                                                     polytopes[members[0]]->e1min_,
+                                                                     polytopes[members[0]]->e2max_,
+                                                                     polytopes[members[0]]->e2min_,
+                                                                     polytopes[members[0]]->e3max_,
+                                                                     polytopes[members[0]]->e3min_,
+                                                                     polytopes[members[0]]->e4max_,
+                                                                     polytopes[members[0]]->e4min_,
+                                                                     members[0]);
+    tree_bags_.push_back(ptr);
+    return ptr;
+  }
+
+  Real initial_min = std::numeric_limits<Real>::max(); 
+  Real initial_max = -std::numeric_limits<Real>::max(); 
+
+  Real e1max = initial_max;
+  Real e1min = initial_min;
+  Real e2max = initial_max;
+  Real e2min = initial_min;
+  Real e3max = initial_max;
+  Real e3min = initial_min;
+  Real e4max = initial_max;
+  Real e4min = initial_min;
+
+  TetrahedralPolytopePtr polytope;
+
+  for(std::vector<int>::const_iterator i = members.begin(),
+      e = members.end(); i != e; ++i){
+    polytope = polytopes[*i];
+    e1max = (polytope->e1max_<e1max)?e1max:polytope->e1max_;
+    e1min = (polytope->e1min_<e1min)?polytope->e1min_:e1min;
+    e2max = (polytope->e2max_<e2max)?e2max:polytope->e2max_;
+    e2min = (polytope->e2min_<e2min)?polytope->e2min_:e2min;
+    e3max = (polytope->e3max_<e3max)?e3max:polytope->e3max_;
+    e3min = (polytope->e3min_<e3min)?polytope->e3min_:e3min;
+    e4max = (polytope->e4max_<e4max)?e4max:polytope->e4max_;
+    e4min = (polytope->e4min_<e4min)?polytope->e4min_:e4min;
+  }
+
+  TetrahedralPolytopeTreeBag* ptr = new TetrahedralPolytopeTreeBag(e1max,e1min,
+                                                                   e2max,e2min,
+                                                                   e3max,e3min,
+                                                                   e4max,e4min,0);
+
+  std::vector<int> l,r;
+  l.reserve(members.size());
+  r.reserve(members.size());
+  this->Separate(members,l,r);
+  ptr->SetChildren(this->Generate(l,polytopes),this->Generate(r,polytopes));
+  tree_bags_.push_back(ptr);
+  return ptr;
+}
+
+TetrahedralPolytopeTreeBag* TetrahedralPolytopeTree::Generate(const std::vector<int>& members,
+                                                              const std::vector<TetrahedralPolytope*>& polytopes){
+
+  if(members.size() == 1){
+    TetrahedralPolytopeTreeBag* ptr = new TetrahedralPolytopeTreeBag(polytopes[members[0]]->e1max_,
+                                                                     polytopes[members[0]]->e1min_,
+                                                                     polytopes[members[0]]->e2max_,
+                                                                     polytopes[members[0]]->e2min_,
+                                                                     polytopes[members[0]]->e3max_,
+                                                                     polytopes[members[0]]->e3min_,
+                                                                     polytopes[members[0]]->e4max_,
+                                                                     polytopes[members[0]]->e4min_,
+                                                                     members[0]);
+    tree_bags_.push_back(ptr);
+    return ptr;
+  }
+
+  Real initial_min = std::numeric_limits<Real>::max(); 
+  Real initial_max = -std::numeric_limits<Real>::max(); 
+
+  Real e1max = initial_max;
+  Real e1min = initial_min;
+  Real e2max = initial_max;
+  Real e2min = initial_min;
+  Real e3max = initial_max;
+  Real e3min = initial_min;
+  Real e4max = initial_max;
+  Real e4min = initial_min;
+
+  TetrahedralPolytope* polytope;
+
+  for(std::vector<int>::const_iterator i = members.begin(), e = members.end(); 
+      i != e; ++i){
+    polytope = polytopes[*i];
+
+    e1max = (polytope->e1max_<e1max)?e1max:polytope->e1max_;
+    e1min = (polytope->e1min_<e1min)?polytope->e1min_:e1min;
+    e2max = (polytope->e2max_<e2max)?e2max:polytope->e2max_;
+    e2min = (polytope->e2min_<e2min)?polytope->e2min_:e2min;
+    e3max = (polytope->e3max_<e3max)?e3max:polytope->e3max_;
+    e3min = (polytope->e3min_<e3min)?polytope->e3min_:e3min;
+    e4max = (polytope->e4max_<e4max)?e4max:polytope->e4max_;
+    e4min = (polytope->e4min_<e4min)?polytope->e4min_:e4min;
+  }
+
+  TetrahedralPolytopeTreeBag* ptr = new TetrahedralPolytopeTreeBag(e1max,e1min,
+                                                                   e2max,e2min,
+                                                                   e3max,e3min,
+                                                                   e4max,e4min,0);
+
+  std::vector<int> l,r;
+  l.reserve(members.size());
+  r.reserve(members.size());
+  this->Separate(members,l,r);
+  ptr->SetChildren(this->Generate(l,polytopes),this->Generate(r,polytopes));
+  tree_bags_.push_back(ptr);
+  return ptr;
+}
+
+void TetrahedralPolytopeTree::Separate(const std::vector<int>& members, 
+                                       std::vector<int>& l,
+                                       std::vector<int>& r){
+
+  Real x_mean, x_variance, y_mean, y_variance, z_mean, z_variance;
+
+  this->Variance(members,x_component_,x_mean,x_variance);
+  this->Variance(members,y_component_,y_mean,y_variance);
+  this->Variance(members,z_component_,z_mean,z_variance);
+
+  if(x_variance > y_variance && x_variance > z_variance){
+    this->Fill(members,x_component_,x_mean,l,r);
+    return;
+  }
+
+  if(y_variance > z_variance){
+    this->Fill(members,y_component_,y_mean,l,r);
+    return;    
+  }
+  
+  this->Fill(members,z_component_,z_mean,l,r);
+}
+
+
+inline void TetrahedralPolytopeTree::Variance(const std::vector<int>& members, 
+                                              const std::vector<Real>& values,
+                                              Real& mean,
+                                              Real& variance){
+
+  Real v;
+
+  Real max = -std::numeric_limits<Real>::max();
+  Real min = std::numeric_limits<Real>::max();
+
+  for(std::vector<int>::const_iterator i = members.begin(),
+      e = members.end(); i != e; ++i){
+    v = values[*i];
+    max = (v<max)?max:v;
+    min = (v<min)?v:min;
+  }
+
+  variance = max-min;
+  mean = min + max;
+  mean /= 2;
+}
+
+inline void TetrahedralPolytopeTree::Fill(const std::vector<int>& members,
+                                          const std::vector<Real>& values,
+                                          Real boundary,
+                                          std::vector<int>& l,
+                                          std::vector<int>& r){
+
+  for(std::vector<int>::const_iterator i = members.begin(),
+      e = members.end(); i != e; ++i){
+    if(values[*i] < boundary) l.push_back(*i);
+    else r.push_back(*i);
+  }
+
+  //HACK, has to be improved
+  if(l.empty()){
+    l.push_back(r.back());
+    r.pop_back();
+    return;
+  }
+  if(r.empty()){
+    r.push_back(l.back());
+    l.pop_back();
+  }
+}
+
+void TetrahedralPolytopeTree::TraverseTree(const TetrahedralPolytopeTreeBag* one,
+                                           const TetrahedralPolytopeTreeBag* two,
+                                           std::vector<std::pair<int,int> >& result) const{
+  
+  if(!one->Overlap(two)) return;
+  if(one->is_leaf){
+    if(two->is_leaf){
+      result.push_back(std::make_pair(one->index,two->index));
+      return;
+    }
+    TraverseTree(one,two->left,result);
+    TraverseTree(one,two->right,result);
+    return;
+  }
+  TraverseTree(one->left,two,result);
+  TraverseTree(one->right,two,result); 
+}
+
+TetrahedralPolytope::TetrahedralPolytope(const geom::Vec3& center, Real radius):
+    e1max_((center[0]+radius*0.8165)*0.8165 + (center[2]+radius*0.57735)*0.57735),
+    e1min_((center[0]-radius*0.8165)*0.8165 + (center[2]-radius*0.57735)*0.57735),
+    e2max_(-(center[0]-radius*0.8165)*0.8165 + (center[2]+radius*0.57735)*0.57735),
+    e2min_(-(center[0]+radius*0.8165)*0.8165 + (center[2]-radius*0.57735)*0.57735),
+    e3max_((center[1]+radius*0.8165)*0.8165 - (center[2]-radius*0.57735)*0.57735),
+    e3min_((center[1]-radius*0.8165)*0.8165 - (center[2]+radius*0.57735)*0.57735),
+    e4max_(-(center[1]-radius*0.8165)*0.8165 - (center[2]-radius*0.57735)*0.57735),
+    e4min_(-(center[1]+radius*0.8165)*0.8165 - (center[2]+radius*0.57735)*0.57735){
+}
+
+TetrahedralPolytope::TetrahedralPolytope(const std::vector<TetrahedralPolytopePtr>& subpolytopes){
+  this->UpdateExtents(subpolytopes);
+}
+
+void TetrahedralPolytope::UpdateExtents(const std::vector<TetrahedralPolytopePtr>& subpolytopes){
+
+  if(subpolytopes.empty()){
+    throw promod3::Error("Require more data to initialize tetrahedral polytope!");
+  }
+  
+  Real initial_min = std::numeric_limits<Real>::max(); 
+  Real initial_max = -std::numeric_limits<Real>::max(); 
+
+  e1max_ = initial_max;
+  e1min_ = initial_min;
+  e2max_ = initial_max;
+  e2min_ = initial_min;
+  e3max_ = initial_max;
+  e3min_ = initial_min;
+  e4max_ = initial_max;
+  e4min_ = initial_min;
+
+  for(std::vector<TetrahedralPolytopePtr>::const_iterator i = subpolytopes.begin(),
+      e = subpolytopes.end(); i != e; ++i){
+    e1max_ = ((*i)->e1max_<e1max_)?e1max_:(*i)->e1max_;
+    e1min_ = ((*i)->e1min_<e1min_)?(*i)->e1min_:e1min_;
+    e2max_ = ((*i)->e2max_<e2max_)?e2max_:(*i)->e2max_;
+    e2min_ = ((*i)->e2min_<e2min_)?(*i)->e2min_:e2min_;
+    e3max_ = ((*i)->e3max_<e3max_)?e3max_:(*i)->e3max_;
+    e3min_ = ((*i)->e3min_<e3min_)?(*i)->e3min_:e3min_;
+    e4max_ = ((*i)->e4max_<e4max_)?e4max_:(*i)->e4max_;
+    e4min_ = ((*i)->e4min_<e4min_)?(*i)->e4min_:e4min_;
+  }
+}
+
+bool TetrahedralPolytope::Overlap(const TetrahedralPolytopePtr other) const{
+
+  return !(e1min_ > other->e1max_ || e2min_ > other->e2max_ || e3min_ > other->e3max_ || e4min_ > other->e4max_ ||
+           e1max_ < other->e1min_ || e2max_ < other->e2min_ || e3max_ < other->e3min_ || e4max_ < other->e4min_);
+}
+
+}}//ns
diff --git a/sidechain/src/tetrahedral_polytope.hh b/sidechain/src/tetrahedral_polytope.hh
new file mode 100644
index 0000000000000000000000000000000000000000..d0fcbc42393e0e97db40d8071fbf9421940c343b
--- /dev/null
+++ b/sidechain/src/tetrahedral_polytope.hh
@@ -0,0 +1,165 @@
+#ifndef PROMOD3_TETRAHEDRAL_POLYTOPE_HH
+#define PROMOD3_TETRAHEDRAL_POLYTOPE_HH
+
+#include <math.h>
+#include <limits>
+#include <vector>
+
+#include <ost/base.hh>
+#include <ost/geom/vecmat3_op.hh>
+
+#include <boost/shared_ptr.hpp>
+
+#include <promod3/core/message.hh>
+
+namespace promod3{ namespace sidechain{
+
+class TetrahedralPolytope;
+class TetrahedralPolytopeTree;
+typedef boost::shared_ptr<TetrahedralPolytope> TetrahedralPolytopePtr;
+typedef boost::shared_ptr<TetrahedralPolytopeTree> TetrahedralPolytopeTreePtr;
+
+
+struct TetrahedralPolytopeTreeBag{
+
+  TetrahedralPolytopeTreeBag(Real a,Real b,
+                             Real c,Real d,
+                             Real e,Real f,
+                             Real g,Real h,
+                             int i):e1max(a),
+                                    e1min(b),
+                                    e2max(c),
+                                    e2min(d),
+                                    e3max(e),
+                                    e3min(f),
+                                    e4max(g),
+                                    e4min(h),
+                                    is_leaf(true),
+                                    index(i) { }
+
+  void SetIndex(int i);
+
+  int GetIndex() const { return index; }
+
+  void SetChildren(TetrahedralPolytopeTreeBag* l,
+                   TetrahedralPolytopeTreeBag* r);
+
+  TetrahedralPolytopeTreeBag* GetLeftChild() const { return left; }
+
+  TetrahedralPolytopeTreeBag* GetRightChild() const { return right; }
+
+  bool Overlap(const TetrahedralPolytopeTreeBag* other) const;
+
+  bool IsLeaf() const { return is_leaf; }
+
+  TetrahedralPolytopeTreeBag* left;
+  TetrahedralPolytopeTreeBag* right;
+  Real e1max;
+  Real e1min;
+  Real e2max;
+  Real e2min;
+  Real e3max;
+  Real e3min;
+  Real e4max;
+  Real e4min;
+  bool is_leaf;
+  int index;
+};
+
+
+class TetrahedralPolytopeTree{
+public:
+  TetrahedralPolytopeTree(const std::vector<TetrahedralPolytopePtr>& subpolytopes);
+
+  TetrahedralPolytopeTree(const std::vector<TetrahedralPolytope*>& subpolytopes);
+
+  TetrahedralPolytopeTree() { }
+
+  void ResetTetrahedralPolytopeTree(const std::vector<TetrahedralPolytopePtr>& subpolytopes);
+
+  void ResetTetrahedralPolytopeTree(const std::vector<TetrahedralPolytope*>& subpolytopes);
+
+  ~TetrahedralPolytopeTree();
+
+  void OverlappingPolytopes(const TetrahedralPolytopeTree* other,
+                            std::vector<std::pair<int,int> >& result) const;
+
+  void OverlappingPolytopes(const TetrahedralPolytopeTreePtr p,
+                            std::vector<std::pair<int,int> >& result) const{ 
+                              this->OverlappingPolytopes(p.get(),result); }
+
+  bool Overlap(const TetrahedralPolytopeTree* other){ return root_->Overlap(other->root_); }
+
+  bool Overlap(const TetrahedralPolytopeTreePtr other){ return root_->Overlap(other->root_); }
+
+private:
+
+  TetrahedralPolytopeTreeBag* Generate(const std::vector<int>& members,
+                                       const std::vector<TetrahedralPolytopePtr>& polytopes);
+
+  TetrahedralPolytopeTreeBag* Generate(const std::vector<int>& members,
+                                       const std::vector<TetrahedralPolytope*>& polytopes);
+
+
+  void Separate(const std::vector<int>& members, 
+                std::vector<int>& l,
+                std::vector<int>& r);
+
+  void Variance(const std::vector<int>& members, 
+                const std::vector<Real>& values,
+                Real& mean,
+                Real& variance);
+
+  void Fill(const std::vector<int>& members,
+            const std::vector<Real>& values,
+            Real boundary,
+            std::vector<int>& l,
+            std::vector<int>& r);
+
+  void TraverseTree(const TetrahedralPolytopeTreeBag* one,
+                    const TetrahedralPolytopeTreeBag* two,
+                    std::vector<std::pair<int,int> >& result) const;
+
+
+  std::vector<TetrahedralPolytopeTreeBag*> tree_bags_;
+  TetrahedralPolytopeTreeBag* root_;
+  std::vector<Real> x_component_;
+  std::vector<Real> y_component_;
+  std::vector<Real> z_component_;
+};
+
+
+class TetrahedralPolytope{
+public:
+
+  virtual ~TetrahedralPolytope() { }
+
+  TetrahedralPolytope() { } //you should not call this
+
+  TetrahedralPolytope(const geom::Vec3& center, Real radius);
+
+  TetrahedralPolytope(const std::vector<TetrahedralPolytopePtr>& subpolytopes);
+
+  void UpdateExtents(const std::vector<TetrahedralPolytopePtr>& subpolytopes);
+
+  bool Overlap(const TetrahedralPolytopePtr other) const;
+
+  virtual geom::Vec3 GetCenter() const = 0;
+
+  friend class TetrahedralPolytopeTree;
+
+private:
+  Real e1max_;
+  Real e1min_;
+  Real e2max_;
+  Real e2min_;
+  Real e3max_;
+  Real e3min_;
+  Real e4max_;
+  Real e4min_;
+};
+
+
+}}//ns
+
+#endif
diff --git a/sidechain/src/tree.cc b/sidechain/src/tree.cc
new file mode 100644
index 0000000000000000000000000000000000000000..5e949efedff6e54eb7e6d15e44e198ed38657f89
--- /dev/null
+++ b/sidechain/src/tree.cc
@@ -0,0 +1,910 @@
+#include <promod3/sidechain/tree.hh>
+
+namespace{
+
+  struct Enumerator{
+    Enumerator(std::vector<int>& init, int* max_val):
+      counter_(0),enumerations_(0),val_(init),max_val_(max_val){
+      if(!init.empty()){
+        int enum_counter = 1;
+        for(uint i = 0; i < init.size(); ++i){
+          enum_counter *= max_val_[i];
+        }
+        enumerations_ = enum_counter;
+      }
+      else enumerations_ = 0;
+    }
+
+    void Next(){
+      actual_pos_ = val_.size()-1;
+      while(actual_pos_ >= 0){
+        ++val_[actual_pos_];
+        if(val_[actual_pos_] >= max_val_[actual_pos_]){
+          val_[actual_pos_] = 0;
+          --actual_pos_;
+        }
+        else{
+          break;
+        }
+      }
+      ++counter_;
+    }
+
+    int GetMaxEnumerations() { return enumerations_; }
+     
+    int actual_pos_;
+    int counter_;
+    int enumerations_;
+    std::vector<int>& val_;
+    int* max_val_;
+
+  };
+
+
+  //sums up every row to give an estimate of how many connections
+  //each node has. Be aware, that the diagonal element is one as well...
+  void SummedConnections(int* adjacency, int* sum, int n){
+    int row_sum;
+    int* data_ptr = adjacency;
+    int j;
+
+    for(int i =0; i < n; ++i){
+      row_sum = 0;
+      for(j = 0; j < n; ++j){
+        row_sum += *data_ptr;
+        ++data_ptr;
+      }
+      sum[i] = row_sum;
+    }
+  }
+
+  //clears node idx by setting the corresponding row and col to zero
+  void ClearNode(int* adjacency, int idx, int n){
+    //clear row
+    memset(&adjacency[idx*n],0,n*sizeof(int));
+    //clear col
+    int* col_ptr = & adjacency[idx];
+    for(int i = 0; i < n; ++i){
+      *col_ptr = 0;
+      col_ptr += n;
+    }
+  }
+
+  void BuildClique(int* adjacency, const std::vector<int>& indices, int n){
+    //let's connect them all
+    for(uint i = 0; i < indices.size(); ++i){
+      for(uint j = i+1; j < indices.size(); ++j){
+        adjacency[indices[i]*n+indices[j]] = 1;
+        adjacency[indices[j]*n+indices[i]] = 1;        
+      }
+    }
+  }
+
+  promod3::sidechain::BagPtr TreePostProcessing(std::vector<std::pair<int,promod3::sidechain::BagPtr> >& bags){
+
+    bool something_happened = true;
+    promod3::sidechain::BagPtr actual_bag;
+    promod3::sidechain::Bag* actual_parent;
+
+    while(something_happened){
+      something_happened = false;
+      for(std::vector<std::pair<int, promod3::sidechain::BagPtr> >::iterator i = bags.begin();
+          i != bags.end(); ++i){
+        actual_bag = i->second;
+        actual_parent = actual_bag->GetParent();
+        if(actual_parent != NULL){
+          //if all members in actual bag are contained in the parent, we can
+          //delete the actual bag and attach all children to the parent
+          bool everything_there = true;
+          for(promod3::sidechain::Bag::member_iterator j = actual_bag->members_begin();
+              j != actual_bag->members_end(); ++j){
+            if(!actual_parent->HasMember(*j)){
+              everything_there = false;
+              break;
+            }
+          }
+          if(everything_there){
+            for(promod3::sidechain::Bag::child_iterator j = actual_bag->children_begin();
+                j != actual_bag->children_end(); ++j){
+              actual_parent->AttachBag(*j);
+            }
+            actual_parent->RemoveBag(actual_bag);
+            i = bags.erase(i);
+            something_happened = true;
+            if(i == bags.end()) break;
+            //we start with the second check already in the same iteration!
+            actual_bag = i->second;
+            actual_parent = actual_bag->GetParent();
+          }
+        }
+        if(actual_parent != NULL){
+          //if all members in actual parent are contained in actual bag, the actual parent
+          //can be replaced by actual_bag
+          bool everything_there = true;
+          for(promod3::sidechain::Bag::member_iterator j = actual_parent->members_begin();
+              j != actual_parent->members_end(); ++j){
+            if(!actual_bag->HasMember(*j)){
+              everything_there = false;
+              break;
+            }
+          }
+          if(everything_there){
+            //let's attach all children of parent to actual_bag (except itself)
+            for(promod3::sidechain::Bag::child_iterator j = actual_parent->children_begin();
+                j != actual_parent->children_end(); ++j){
+              if(*j == actual_bag) continue;
+              actual_bag->AttachBag(*j);
+            }
+            //lets find the index of the parent
+            bool found_parent = false;
+            for(uint j = 0; j < bags.size(); ++j){
+              if(bags[j].second.get() == actual_parent){
+                //place the actual_bag there
+                promod3::sidechain::Bag* parents_parent = actual_parent->GetParent();
+                if(parents_parent != NULL){
+                  parents_parent->RemoveBag(actual_parent);
+                  parents_parent->AttachBag(actual_bag);
+                }
+                else{
+                  actual_bag->SetParent(NULL);
+                }
+                i = bags.erase(bags.begin()+j);
+                something_happened = true;
+                found_parent = true;
+                break;
+              }
+            }
+
+            --i;
+            if(!found_parent){
+              throw "fuuuuuuck";
+            }
+          }
+        }
+      }
+    }
+
+    for(std::vector<std::pair<int, promod3::sidechain::BagPtr> >::iterator i = bags.begin();
+        i != bags.end(); ++i){
+      if(i->second->GetParent() == NULL) return i->second;
+    }
+
+    throw "fuuuuck";
+
+
+  }
+
+  void ConnectedComponents(int* adjacency, int n, 
+                           std::vector<std::vector<int> >& components){
+
+    components.clear();
+
+    bool visited[n];
+    memset(visited,0,n*sizeof(bool));
+
+    for(int i = 0; i < n; ++i){
+      if(visited[i]) continue;
+      //it's not visited, so let's start with a new connected component...
+      components.push_back(std::vector<int>());
+      std::stack<int> queue;
+      queue.push(i);
+      int actual_element;
+      while(!queue.empty()){
+        actual_element = queue.top();
+        queue.pop();
+        if(!visited[actual_element]){
+          //the actual element is not yet visited
+          // =>let's add it to the actual component and
+          //put all nodes it is connected to at the back of the
+          //queue
+          visited[actual_element] = true;
+          components.back().push_back(actual_element);
+          int* adj_ptr = &adjacency[actual_element * n];
+          for(int j = 0; j < n; ++j){
+            if(*adj_ptr == 1) queue.push(j);
+            ++adj_ptr;
+          }
+        }
+      }
+      std::sort(components.back().begin(), components.back().end());
+    }
+  }
+
+  promod3::sidechain::BagPtr TreeDecomp(int* matrix, int n){
+
+    //bags, that will be produced in a first stage of the algorithm
+    std::stack<promod3::sidechain::BagPtr> bags;
+
+    //some variable needed in the while loop
+    int min_sum;
+    int idx;
+    int* int_ptr;
+    std::vector<int> bag_members;
+
+    //the number of adjacent nodes will be saved in here
+    int* sum = new int[n];
+   
+    while(true){
+      //lets get the number of adjacent edges for every node
+      SummedConnections(matrix,sum,n);
+      //find the minimal value and the corresponding node index
+      min_sum = std::numeric_limits<int>::max();
+      int_ptr = sum;
+      for(int i = 0; i < n; ++i, ++int_ptr){
+        if(*int_ptr == 0) continue; // the node is deactivated
+        if(*int_ptr < min_sum){
+          min_sum = *int_ptr;
+          idx = i;
+        }
+      }
+      //check, whether there are any active edges remaining
+      if(min_sum == std::numeric_limits<int>::max()) break;
+      //let's add all nodes connected to the selected node to the same bag
+      bag_members.clear();
+      int_ptr = &matrix[idx * n];
+      for(int i = 0; i < n; ++i, ++int_ptr){
+        if(*int_ptr == 1) bag_members.push_back(i);
+      }
+
+      //let's connect all neighbouring vertices to a clique
+      BuildClique(matrix,bag_members,n);
+      //let's remove everything regarding node idx from matrix
+      ClearNode(matrix,idx,n);
+      //and finally add everything to the other bags
+      bags.push(promod3::sidechain::BagPtr(new promod3::sidechain::Bag(bag_members)));
+    }
+
+    //this won't be needed anymore
+    delete [] sum;
+
+    //we need to know which nodes are already added, to ensure a valid
+    //tree construction
+    std::set<int> nodes_in_tree;
+
+    //in here we store all bags, where childs can be connected
+    //To ensure a low depth, they are sorted by the distance to
+    //the top bag => the root
+    std::vector<std::pair<int, promod3::sidechain::BagPtr> > bags_to_attach;
+    bags_to_attach.push_back(std::make_pair(0,bags.top()));
+    for(promod3::sidechain::Bag::member_iterator i = bags.top()->members_begin();
+        i != bags.top()->members_end(); ++i){
+      nodes_in_tree.insert(*i);
+    }
+    bags.pop();
+
+    std::vector<int> common_nodes;
+    while(!bags.empty()){
+      promod3::sidechain::BagPtr actual_bag = bags.top();
+      bags.pop();
+      //we first need to know which of the bags node are already in the tree
+      common_nodes.clear();
+      for(promod3::sidechain::Bag::member_iterator i = actual_bag->members_begin();
+          i != actual_bag->members_end(); ++i){
+        if(nodes_in_tree.find(*i) != nodes_in_tree.end()) common_nodes.push_back(*i);
+      }
+      //find first possible bag to attach actual bag
+      uint parent_bag_index = 0;
+      for(std::vector<std::pair<int,promod3::sidechain::BagPtr> >::iterator i = bags_to_attach.begin();
+           i != bags_to_attach.end(); ++i){
+        //all nodes in common_nodes must be present in parent bag
+        bool add = true;
+        for(std::vector<int>::iterator j = common_nodes.begin();
+            j != common_nodes.end(); ++j){
+          if(!i->second->HasMember(*j)){
+            add = false;
+            break;
+          }
+        }
+        if(add) break; //thats the bag
+        ++parent_bag_index;
+      }
+      if(parent_bag_index == bags_to_attach.size()){
+        throw "fuck";
+      }
+      //attach the actual_bag
+      int depth = bags_to_attach[parent_bag_index].first + 1;
+      bags_to_attach[parent_bag_index].second->AttachBag(actual_bag);
+
+      //insert the actual bag into the bags to attach vector
+      //insertion depends on the depth...
+      bool inserted_bag = false;
+      for(std::vector<std::pair<int,promod3::sidechain::BagPtr> >::iterator i = bags_to_attach.begin();
+          i != bags_to_attach.end(); ++i){
+        if(i->first > depth){
+          bags_to_attach.insert(i,std::make_pair(depth,actual_bag));
+          inserted_bag = true;
+          break;
+        }
+      }
+      if(!inserted_bag) bags_to_attach.push_back(std::make_pair(depth,actual_bag));
+
+      //we have to update the nodes present in the tree
+      for(promod3::sidechain::Bag::member_iterator i = actual_bag->members_begin();
+          i != actual_bag->members_end(); ++i){
+        nodes_in_tree.insert(*i);
+      }
+    }
+
+    promod3::sidechain::BagPtr root = TreePostProcessing(bags_to_attach);
+
+    return root;
+  }
+
+}
+
+
+namespace promod3{ namespace sidechain{
+
+Tree::~Tree(){
+  for(std::vector<float*>::iterator i = self_energies_.begin();
+      i != self_energies_.end(); ++i){
+    delete [] *i;
+  }
+  for(std::vector<std::map<int,float*> >::iterator i = pairwise_energies_.begin();
+      i != pairwise_energies_.end(); ++i){
+    for(std::map<int,float*>::iterator j = i->begin(); j != i->end(); ++j){
+      delete [] j->second;
+    }
+  }
+  //note, that we don't have to delete anything in the bags, since
+  //they only contain pointers to the memory adresses just deleted
+}
+
+uint64_t Tree::GenerateTree(Graph* graph){
+  if(graph->GetNumNodes() != num_nodes_){
+    std::stringstream ss;
+    ss << "Cannot do the tree decomposition, given graph object differs in number of nodes ";
+    ss << "to the graph object the tree object has been created with";
+    throw promod3::Error(ss.str());
+  }
+
+  components_.clear();
+  root_bags_.clear();
+  isolated_residues_.clear();
+
+  //let's first generate an overall adjacency matrix
+  int* adjacency_matrix = new int[num_nodes_*num_nodes_];
+  memset(adjacency_matrix,0,num_nodes_*num_nodes_*sizeof(int));
+  //the diagonal elements get set to one, setting them to zero
+  //will be equivalent to deactivate the corresponging nodes
+  //in later calculation steps
+  for(uint i = 0; i < num_nodes_; ++i){
+    adjacency_matrix[i*num_nodes_+i] = 1;
+  }
+
+  //to generate the matrix we need a ptr/index mapper...
+  //could be implemented a bit more efficient
+  std::map<Node*,int> ptr_index_map;
+  int counter = 0;
+  for(Graph::node_iterator i = graph->nodes_begin();
+      i != graph->nodes_end(); ++i){
+    ptr_index_map[*i] = counter;
+    ++counter;
+  }
+
+  int a,b;
+  for(Graph::edge_iterator i = graph->edges_begin();
+      i != graph->edges_end(); ++i){
+    if(!(*i)->IsActive()) continue;
+    a = ptr_index_map[(*i)->GetNode1()];
+    b = ptr_index_map[(*i)->GetNode2()];
+    adjacency_matrix[a*num_nodes_+b] = 1;
+    adjacency_matrix[b*num_nodes_+a] = 1;
+  }
+
+  //every connected component gets solved separately
+  ConnectedComponents(adjacency_matrix, num_nodes_, components_);
+
+  //we build up an adjacency matrix for every component
+  size_t adjacency_matrices_size = 0;
+  for(std::vector<std::vector<int> >::iterator i = components_.begin();
+      i != components_.end(); ++i){
+    adjacency_matrices_size += i->size() * i->size();
+  }
+  int* adjacency_matrices = new int[adjacency_matrices_size];
+
+  if(components_.size() == 1){
+    memcpy(adjacency_matrices, adjacency_matrix, 
+           adjacency_matrices_size * sizeof(int));
+  }
+  else{
+    memset(adjacency_matrices, 0, adjacency_matrices_size*sizeof(int));
+    //lets copy over the values from the overall adjacency matrix
+    int component_start = 0;
+    for(std::vector<std::vector<int> >::iterator i = components_.begin();
+        i != components_.end(); ++i){
+      for(uint j = 0; j < i->size(); ++j){
+        for(uint k = j; k < i->size(); ++k){
+          int value = adjacency_matrix[(*i)[j]*num_nodes_ + (*i)[k]];
+          if(value == 0) continue;
+          adjacency_matrices[component_start + j*i->size() + k] = value;
+          adjacency_matrices[component_start + k*i->size() + j] = value;
+        }
+      }
+      component_start += (i->size()*i->size());
+    }
+  }
+
+  int actual_pos = 0;
+  for(std::vector<std::vector<int> >::iterator i = components_.begin();
+      i != components_.end(); ++i){
+    if(i->size() == 1){
+      isolated_residues_.push_back((*i)[0]);
+      i = components_.erase(i);
+      --i;
+      ++actual_pos;
+    }
+    else{
+      root_bags_.push_back(TreeDecomp(&adjacency_matrices[actual_pos],i->size()));
+      actual_pos += i->size()*i->size();
+    }
+  }
+
+  delete [] adjacency_matrix;
+  delete [] adjacency_matrices;
+  //let's finally calculate the complexity for the return value
+  uint64_t complexity = 0;
+  std::vector<int> num_rotamers;
+  graph->GetNumActiveRotamers(num_rotamers);
+  for(uint i = 0; i < root_bags_.size(); ++i){
+    complexity += root_bags_[i]->GetComplexity(num_rotamers,components_[i]);
+  }
+
+  return complexity;
+}
+
+void Tree::Solve(Graph* graph, std::vector<int>& overall_solution){
+  if(graph->GetNumNodes() != num_nodes_){
+    std::stringstream ss;
+    ss << "Cannot get complexity, given graph object differs in number of nodes ";
+    ss << "to the graph object the tree has been created with";
+    throw promod3::Error(ss.str());
+  }
+
+  self_energies_.resize(num_nodes_);
+  pairwise_energies_.resize(num_nodes_);
+
+  std::vector<int> num_rotamers;
+  graph->GetNumActiveRotamers(num_rotamers);
+
+  //fill up self energies
+  uint pos = 0;
+  for(Graph::const_node_iterator i = graph->nodes_begin();
+      i != graph->nodes_end(); ++i, ++pos){
+    float* self_energies = new float[num_rotamers[pos]];
+    (*i)->FillActiveSelfEnergies(self_energies);
+    self_energies_[pos] = self_energies;
+  }
+
+  //fill up pairwise energies
+  for(uint i = 0; i < num_nodes_; ++i){
+    pairwise_energies_[i].clear();
+  }
+  std::map<Node*,int> ptr_index_map;
+  int counter = 0;
+  for(Graph::node_iterator i = graph->nodes_begin();
+      i != graph->nodes_end(); ++i){
+    ptr_index_map[*i] = counter;
+    ++counter;
+  } 
+  int a,b;
+  for(Graph::edge_iterator i = graph->edges_begin();
+      i != graph->edges_end(); ++i){
+    if(!(*i)->IsActive()) continue;
+    a = ptr_index_map[(*i)->GetNode1()];
+    b = ptr_index_map[(*i)->GetNode2()];
+    float* energies = new float[num_rotamers[a] * num_rotamers[b]];
+    (*i)->FillActiveEnergies(energies);
+    pairwise_energies_[a][b] = energies;
+  }
+
+  //fill required data into bags
+  for(uint i = 0; i < root_bags_.size(); ++i){
+    root_bags_[i]->FillData(pairwise_energies_,self_energies_,
+                            num_rotamers,components_[i]);
+  }
+
+  //solve the thing
+  for(std::vector<BagPtr>::iterator i = root_bags_.begin(); 
+      i != root_bags_.end(); ++i){
+    (*i)->Enumerate();
+  }
+
+  //fill the results from the trees into the solution vector
+  for(uint i = 0; i < components_.size(); ++i){
+    std::vector<int> subtree_solution(components_[i].size(),0);
+    root_bags_[i]->FillSolution(subtree_solution);
+    for(uint j = 0; j < components_[i].size(); ++j){
+      overall_solution[components_[i][j]] = subtree_solution[j];
+    }
+  }
+
+  //fill the results for the isolated residues into the solution vector
+  float e_min;
+  int index;
+  for(std::vector<int>::iterator i = isolated_residues_.begin();
+      i != isolated_residues_.begin(); ++i){
+    e_min = std::numeric_limits<float>::max();
+    for(int j = 0; j < num_rotamers[*i]; ++j){
+      if(self_energies_[*i][j] < e_min){
+        e_min = self_energies_[*i][j];
+        index = j;
+      }
+    }
+    overall_solution[*i] = index;
+  }
+
+}
+
+Bag::Bag(const std::vector<int>& members, Bag* parent): members_(members),
+                                           parent_(parent) { 
+  std::sort(members_.begin(), members_.end()); // just to be really sure!
+}
+
+void Bag::FillData(const std::vector<std::map<int,float*> >& pairwise_energies,
+                   const std::vector<float*>& self_energies,
+                   const std::vector<int>& num_rotamers,
+                   const std::vector<int>& component_mapping){
+  //just to be sure...
+  lset_.clear();
+  rset_.clear();
+  r_self_energies_.clear();
+
+  lr_energies_.clear();
+  lr_index_in_I_.clear();
+  lr_index_in_R_.clear();
+  lr_num_rot_.clear();
+
+  rl_energies_.clear();
+  rl_index_in_I_.clear();
+  rl_index_in_R_.clear();
+  rl_num_rot_.clear();
+
+  rr_energies_.clear();
+  rr_index_in_R_one_.clear();
+  rr_index_in_R_two_.clear();
+  rr_num_rot_.clear();
+
+  es_mapper_l_.clear();
+  es_mapper_r_.clear();
+
+  num_rotamers_.clear();
+
+  if(parent_ != NULL){
+    //not root
+    for(uint i = 0; i < members_.size(); ++i){
+      if(parent_->HasMember(members_[i])) lset_.push_back(i);
+      else rset_.push_back(i);
+    }
+  }
+  else{
+    for(uint i = 0; i < members_.size(); ++i){
+      rset_.push_back(i);
+    }
+  }
+
+  //we need a mapping...
+  //the energy data comes from the overall graph. This overall graph gets separated
+  //into connected components. Every tree refers to one of those components.
+  //The problem is, that the indices in these components start from one again,
+  //so we need a mapping, the definition of this particular component respectively
+  int ind[members_.size()];
+  for(uint i = 0; i < members_.size(); ++i) ind[i] = component_mapping[members_[i]];
+
+  //we need the self energies for all residues in r
+  for(std::vector<int>::iterator i = rset_.begin(); i < rset_.end(); ++i){
+    r_self_energies_.push_back(self_energies[ind[*i]]);
+  }
+
+  //the number of rotamers is required for all members
+  for(uint i = 0; i < members_.size(); ++i){
+    num_rotamers_.push_back(num_rotamers[ind[i]]);
+  }
+
+  //let's specify all pairwise energies from l to r, r to l respectively
+  for(uint i = 0; i < lset_.size(); ++i){
+    for(uint j = 0; j < rset_.size(); ++j){
+      std::map<int,float*>::const_iterator k = pairwise_energies[ind[lset_[i]]].find(ind[rset_[j]]);
+      if(k != pairwise_energies[ind[lset_[i]]].end()){
+        //let's add it!!
+        lr_energies_.push_back(k->second);
+        lr_index_in_I_.push_back(i);
+        lr_index_in_R_.push_back(j);
+        lr_num_rot_.push_back(num_rotamers_[rset_[j]]);
+      }
+    }
+  }
+
+  for(uint i = 0; i < rset_.size(); ++i){
+    for(uint j = 0; j < lset_.size(); ++j){
+      std::map<int,float*>::const_iterator k = pairwise_energies[ind[rset_[i]]].find(ind[lset_[j]]);
+      if(k != pairwise_energies[ind[rset_[i]]].end()){
+        //let's add it!!
+        rl_energies_.push_back(k->second);
+        rl_index_in_I_.push_back(j);
+        rl_index_in_R_.push_back(i);
+        rl_num_rot_.push_back(num_rotamers_[lset_[j]]);
+      }
+    }
+  }
+
+  //let's specify all pairwise energies within r
+  for(uint i = 0; i < rset_.size(); ++i){
+    for(uint j = i+1; j < rset_.size(); ++j){
+      std::map<int,float*>::const_iterator k = pairwise_energies[ind[rset_[i]]].find(ind[rset_[j]]);
+      if(k != pairwise_energies[ind[rset_[i]]].end()){
+        //let's add it
+        rr_energies_.push_back(k->second);
+        rr_index_in_R_one_.push_back(i);
+        rr_index_in_R_two_.push_back(j);
+        rr_num_rot_.push_back(num_rotamers_[rset_[j]]);
+      }
+    }
+  }
+
+  //let's call the function for all children
+  for(child_iterator i = this->children_begin(); i < this->children_end(); ++i){
+    (*i)->FillData(pairwise_energies, self_energies,
+                   num_rotamers,component_mapping);
+  }
+
+  for(child_iterator i = this->children_begin(); 
+      i != this->children_end(); ++i){
+    std::vector<std::pair<int,int> > current_es_l;
+    std::vector<std::pair<int,int> > current_es_r;
+    int index_in_l;
+    for(uint j = 0; j < lset_.size(); ++j){
+      (*i)->IndexInL(members_[lset_[j]],index_in_l);
+      if(index_in_l != -1){
+        current_es_l.push_back(std::make_pair(j,index_in_l));
+      }
+    }
+    for(uint j = 0; j < rset_.size(); ++j){
+      (*i)->IndexInL(members_[rset_[j]],index_in_l);
+      if(index_in_l != -1){
+        current_es_r.push_back(std::make_pair(j,index_in_l));
+      }
+    }
+
+    es_mapper_l_.push_back(current_es_l);
+    es_mapper_r_.push_back(current_es_r);
+  }
+
+  solution_index_multiplicator_.resize(lset_.size(),1);
+  num_solutions_ = 1;
+  for(uint i = 0; i < lset_.size(); ++i){
+    int actual_num = 1;
+    for(uint j = i+1; j < lset_.size(); ++j){
+      actual_num *= num_rotamers_[lset_[j]];
+    }
+    solution_index_multiplicator_[i] = actual_num;
+    num_solutions_ *= num_rotamers_[lset_[i]];
+  }
+
+  solutions_.resize(num_solutions_); 
+  r_memory_size_ = sizeof(int)*rset_.size();
+}
+
+void Bag::AttachBag(BagPtr bag){
+  bag->SetParent(this);
+  children_.push_back(bag);
+}
+
+void Bag::RemoveBag(BagPtr bag){
+  for(child_iterator i = this->children_begin();
+      i != this->children_end(); ++i){
+    if(*i == bag){
+      children_.erase(i);
+      break;
+    }
+  }
+}
+
+void Bag::RemoveBag(Bag* bag){
+  for(child_iterator i = this->children_begin();
+      i != this->children_end(); ++i){
+    if(i->get() == bag){
+      children_.erase(i);
+      break;
+    }
+  }
+}
+
+bool Bag::HasMember(int member) const{
+  return std::find(members_.begin(), members_.end(), member) != members_.end();
+}
+
+uint64_t Bag::GetComplexity(const std::vector<int>& num_rotamers,
+                            const std::vector<int>& component_mapping) const{
+  uint64_t local_complexity = 1;
+  for(const_member_iterator i = this->members_begin(); 
+      i != this->members_end(); ++i){
+    local_complexity *= num_rotamers[component_mapping[*i]];
+  }
+
+  if(this->IsLeaf()) return local_complexity;
+
+  for(const_child_iterator i = this->children_begin(); i != children_end(); ++i){
+    local_complexity += (*i)->GetComplexity(num_rotamers, component_mapping);
+  }
+
+  return local_complexity;
+}
+
+void Bag::Enumerate(){
+  
+  for(child_iterator i = this->children_begin();
+      i != this->children_end(); ++i){
+    (*i)->Enumerate();
+  }
+
+  std::vector<int> I(lset_.size(),0);
+  std::vector<int> R(rset_.size(),0);
+  int num[rset_.size()];
+  for(uint i = 0; i < rset_.size(); ++i){
+    num[i] = num_rotamers_[rset_[i]];
+  }
+  Enumerator r_enumerator(R,&num[0]);
+
+  int* r_partial_indices = new int[children_.size() * r_enumerator.GetMaxEnumerations()];
+  int* l_partial_indices = new int[children_.size()];
+
+  int* data_ptr = r_partial_indices;
+  for(int i = 0; i < r_enumerator.GetMaxEnumerations(); ++i){
+    for(uint j = 0; j < children_.size(); ++j){
+      children_[j]->PartialSolutionIndex(es_mapper_r_[j],R,*data_ptr);
+      ++data_ptr;
+    }
+    r_enumerator.Next();
+  }
+
+  if(parent_!=NULL){
+
+    int num[lset_.size()];
+    for(uint i = 0; i < lset_.size(); ++i){
+      num[i] = num_rotamers_[lset_[i]];
+    }  
+    Enumerator enumerator(I,&num[0]);
+
+    for(int i = 0; i < num_solutions_; ++i){
+
+      for(uint j = 0; j < children_.size(); ++j){
+        children_[j]->PartialSolutionIndex(es_mapper_l_[j],I,l_partial_indices[j]);
+      }
+
+      this->OptimizeR(I,solutions_[i].first,solutions_[i].second,
+                      l_partial_indices,r_partial_indices);
+      enumerator.Next();
+    }
+  }
+  else{
+
+    for(uint i = 0; i < children_.size(); ++i){
+      children_[i]->PartialSolutionIndex(es_mapper_l_[i],I,l_partial_indices[i]);
+    }
+
+    this->OptimizeR(I,solutions_[0].first,solutions_[0].second,
+                    l_partial_indices,r_partial_indices);
+  }
+
+  delete [] r_partial_indices;
+  delete [] l_partial_indices;
+}
+
+void Bag::FillSolution(std::vector<int>& solution){
+  std::vector<int> I(lset_.size(),0);
+  for(uint i = 0; i < lset_.size(); ++i){
+    I[i] = solution[members_[lset_[i]]];
+  }
+
+  int index = 0;
+  for(uint i = 0; i < I.size(); ++i){
+    index += solution_index_multiplicator_[i]*I[i];
+  }
+  
+  std::pair<std::vector<int>,float> local_solution = solutions_[index];
+  for(uint i = 0; i < local_solution.first.size(); ++i){
+    solution[members_[rset_[i]]] = local_solution.first[i];
+  }
+
+  for(child_iterator i = this->children_begin();
+      i != this->children_end(); ++i){
+    (*i)->FillSolution(solution);
+  }
+}
+
+void Bag::AddE(int solution_index, float& e) const{
+  e += solutions_[solution_index].second;
+}
+
+void Bag::PartialSolutionIndex(const std::vector<std::pair<int,int> >& mapper,
+                               const std::vector<int>& values, int& index){
+  index = 0;
+  for(uint i = 0; i < mapper.size(); ++i){
+    index += solution_index_multiplicator_[mapper[i].second] * values[mapper[i].first];
+  }
+}
+
+void Bag::IndexInL(int member, int& index) const{
+  for(uint i = 0; i < lset_.size(); ++i){
+    if(members_[lset_[i]] == member){
+      index = i;
+      return;
+    }
+  }
+  index = -1;
+}
+
+void Bag::OptimizeR(const std::vector<int>& I, std::vector<int>& final_R, float& final_e,
+                    int* l_partial_indices, int* r_partial_indices) const{
+
+  if(rset_.size() == 0){
+    final_e = 0;
+    final_R.clear();
+    return;
+  }
+
+  final_e = std::numeric_limits<float>::max();
+  float actual_e;
+
+  int lr_const_value[lr_energies_.size()];
+  for(uint i = 0; i < lr_energies_.size(); ++i){
+    lr_const_value[i] = I[lr_index_in_I_[i]]*lr_num_rot_[i];
+  }
+
+  int* R_temp[rset_.size()];
+  memset(R_temp,0,r_memory_size_);
+  std::vector<int> R(rset_.size(),0);
+  int num[rset_.size()];
+  for(uint i = 0; i < rset_.size(); ++i){
+    num[i] = num_rotamers_[rset_[i]];
+  }
+  Enumerator enumerator(R,&num[0]);
+
+  int* r_data_ptr = r_partial_indices;
+
+  for(int enum_counter = 0; enum_counter < enumerator.GetMaxEnumerations(); ++enum_counter){
+    actual_e = 0.0;
+
+    //evaluate EL term
+
+    //let's add the lr pairwise energies
+    for(uint i = 0; i < lr_energies_.size(); ++i){
+      actual_e += lr_energies_[i][lr_const_value[i]+R[lr_index_in_R_[i]]];
+    }
+
+    //let's add the rl pairwise energies
+    for(uint i = 0; i < rl_energies_.size(); ++i){
+      actual_e += rl_energies_[i][R[rl_index_in_R_[i]]*rl_num_rot_[i]+I[rl_index_in_I_[i]]];
+    }
+
+    //evaluate ER term
+
+    //let's add the self energies
+    for(uint i = 0; i < rset_.size(); ++i){
+      actual_e += r_self_energies_[i][R[i]];
+    }
+    //let's add the pairwise energies
+    for(uint i = 0; i < rr_energies_.size(); ++i){
+      actual_e += rr_energies_[i][R[rr_index_in_R_one_[i]]*rr_num_rot_[i]+R[rr_index_in_R_two_[i]]];
+    }
+
+    //evaluate ES term
+
+    for(uint i = 0; i < children_.size(); ++i){
+      children_[i]->AddE(l_partial_indices[i]+(*r_data_ptr),actual_e);
+      ++r_data_ptr;
+    }    
+    if(actual_e < final_e){
+      memcpy(R_temp, &R[0], r_memory_size_);
+      final_e = actual_e;
+    }
+    enumerator.Next();
+  }
+
+  final_R.resize(rset_.size());
+  memcpy(&final_R[0],R_temp,r_memory_size_);
+}
+
+
+}} //ns
diff --git a/sidechain/src/tree.hh b/sidechain/src/tree.hh
new file mode 100644
index 0000000000000000000000000000000000000000..77bfcfe27d3fe1c5a8def72a91094ace30b55c8d
--- /dev/null
+++ b/sidechain/src/tree.hh
@@ -0,0 +1,164 @@
+#ifndef PROMOD3_TREE_HH
+#define PROMOD3_TREE_HH
+
+#include <math.h>
+#include <vector>
+#include <stack>
+#include <map>
+#include <set>
+#include <algorithm>
+#include <limits.h>
+#include <ctime>
+
+#include <boost/shared_ptr.hpp>
+#include <promod3/sidechain/graph.hh>
+
+
+namespace promod3{ namespace sidechain{
+
+class Tree;
+class Bag;
+typedef boost::shared_ptr<Tree> TreePtr;
+typedef boost::shared_ptr<Bag> BagPtr;
+
+class Tree{
+
+public:
+  Tree(Graph* graph): num_nodes_(graph->GetNumNodes()) { }
+
+  ~Tree();
+
+  size_t GetNumNodes() const { return num_nodes_; }
+
+  uint64_t GenerateTree(Graph* graph);
+
+  void Solve(Graph* graph, std::vector<int>& overall_solution);
+
+private:
+  uint num_nodes_;
+  std::vector<std::vector<int> > components_;
+  std::vector<float*> self_energies_;
+  std::vector<std::map<int,float*> > pairwise_energies_;
+  std::vector<BagPtr> root_bags_;
+  std::vector<int> isolated_residues_;
+};
+
+class Bag{
+public:
+
+  Bag(const std::vector<int>& members, Bag* parent = NULL);
+
+  void FillData(const std::vector<std::map<int,float*> >& pairwise_energies,
+                const std::vector<float*>& self_energies,
+                const std::vector<int>& num_rotamers,
+                const std::vector<int>& component_mapping);
+
+  void SetParent(Bag* parent) { parent_ = parent; }
+
+  Bag* GetParent() { return parent_; }
+
+  void AttachBag(BagPtr bag);
+
+  void RemoveBag(BagPtr bag);
+
+  void RemoveBag(Bag* bag);
+
+  bool IsLeaf() const { return children_.empty(); }
+
+  bool HasMember(int member) const;
+
+  uint64_t GetComplexity(const std::vector<int>& num_rotamers,
+                         const std::vector<int>& component_mapping) const;
+
+  void Enumerate();
+
+  void FillSolution(std::vector<int>& solution);
+
+  typedef std::vector<int>::iterator member_iterator;
+  typedef std::vector<int>::const_iterator const_member_iterator;
+
+  typedef std::vector<BagPtr>::iterator child_iterator;
+  typedef std::vector<BagPtr>::const_iterator const_child_iterator;
+
+  member_iterator members_begin() { return members_.begin(); }
+
+  member_iterator members_end() { return members_.end(); }
+
+  const_member_iterator members_begin() const { return members_.begin(); }
+
+  const_member_iterator members_end() const { return members_.end(); }
+
+  child_iterator children_begin() { return children_.begin(); }
+
+  child_iterator children_end() { return children_.end(); }
+
+  const_child_iterator children_begin() const { return children_.begin(); }
+
+  const_child_iterator children_end() const { return children_.end(); }
+
+private:
+
+  void AddE(int solution_index, float& e) const;
+
+  void PartialSolutionIndex(const std::vector<std::pair<int,int> >& mapper,
+                           const std::vector<int>& values, int& index);
+
+  void IndexInL(int member, int& index) const;
+
+  void OptimizeR(const std::vector<int>& I, std::vector<int>& final_R, 
+                 float& final_e, int* l_partial_indices,
+                 int* r_partial_indices) const;
+
+  //members of bag as global indices
+  std::vector<int> members_;
+
+  //members of the two sets, all members in l are also present in parent
+  //lset_ and rset_ contain the corresponding indices in members_ not the
+  //global members
+  std::vector<int> lset_;
+  std::vector<int> rset_;
+
+  //solution for all possible l combinations
+  std::vector<std::pair<std::vector<int>,float> > solutions_;
+
+  //self explaining
+  std::vector<float*> r_self_energies_;
+
+  //stuff for lr pairwise energies
+  std::vector<float*> lr_energies_;
+  std::vector<int> lr_index_in_I_;
+  std::vector<int> lr_index_in_R_;
+  std::vector<int> lr_num_rot_;
+
+  //stuff for rl pairwise energies
+  std::vector<float*> rl_energies_;
+  std::vector<int> rl_index_in_I_;
+  std::vector<int> rl_index_in_R_;
+  std::vector<int> rl_num_rot_;
+
+  //stuff for rr pairwise energies
+  std::vector<float*> rr_energies_;
+  std::vector<int> rr_index_in_R_one_;
+  std::vector<int> rr_index_in_R_two_;
+  std::vector<int> rr_num_rot_;
+
+  //stores for every child node the indices of their l members
+  //in the current bags l and r set
+  std::vector<std::vector<std::pair<int,int> > > es_mapper_l_;
+  std::vector<std::vector<std::pair<int,int> > > es_mapper_r_;
+
+  //self explaining stuff
+  std::vector<int> num_rotamers_;
+  Bag* parent_; //raw pointer 
+  std::vector<BagPtr> children_;
+
+  //helper variables
+  int r_memory_size_;
+  std::vector<int> solution_index_multiplicator_;
+  int num_solutions_;
+
+};
+
+}}//ns
+
+#endif
diff --git a/sidechain/tests/CMakeLists.txt b/sidechain/tests/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391